yetang307

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
package com.itheima.mapper;

import com.itheima.pojo.Seeker;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface SeekerMapper {
    @Select("select * from seeker where name = #{username} and password = #{password}")
    Seeker loginSeeker(@Param("username") String username, @Param("password") String password);

    @Select("select * from seeker where name = #{username}")
    Seeker selectByName(String username);


    @Insert("insert into seeker values(null,#{name},#{phone},#{birthday},#{degree},#{password},#{workingHours},#{hopePost},#{hopeSalary},#{skill},#{advantage},#{experienced})")
    void insertSeeker(Seeker seeker);

    @Update("update seeker set name=#{name},phone=#{phone},birthday=#{birthday},degree=#{degree},password=#{password},workingHours=#{workingHours},hopePost=#{hopePost},hopeSalary=#{hopeSalary},skill=#{skill},advantage=#{advantage},experienced=#{experienced} where id=#{id}")
    void updateSeeker(Seeker seeker);

    List<Seeker> selectAllByCondition(Seeker seeker);

    @Select("SELECT * from seeker where id=#{id}")
    Seeker selectSeekerById(Integer id);

}

SQl

package com.itheima.web;

import com.alibaba.fastjson.JSON;
import com.itheima.pojo.Post;
import com.itheima.pojo.Seeker;
import com.itheima.pojoComplex.PageBeen;
import com.itheima.service.SeekerService;
import com.itheima.service.impl.SeekerServiceImpl;
import com.itheima.util.Hashmap;
import com.itheima.util.MyTextComparator;
import com.itheima.util.PDFReader;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@WebServlet("/seeker/*")
public class SeekerServlet extends BaseServlet {
    private SeekerService service = new SeekerServiceImpl();

    public void loginSeeker(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
        System.out.println("loginSeeker...");

        BufferedReader br = request.getReader();
        String params = br.readLine();
        PageBeen pageBeen = JSON.parseObject(params, PageBeen.class);

        Seeker seeker = service.loginSeeker(pageBeen.getUsername(), pageBeen.getPassword());
        //System.out.println("login"+seeker);
        response.setContentType("text/json;charset=utf-8");

        if(seeker != null){
            String jsonString = JSON.toJSONString(seeker);
            response.getWriter().write(jsonString);
        }else{
            System.out.println("error");
            response.getWriter().write("error");
        }
    }
    public void seekerRegister(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException {
        System.out.println("seekerRegister...");
        BufferedReader br = request.getReader();
        String params = br.readLine();
        System.out.println(br.readLine());
        Seeker seeker = JSON.parseObject(params, Seeker.class);
        //System.out.println(params);
        String[] split = seeker.getBirthday().split("T");
        SimpleDateFormat f =  new SimpleDateFormat("yyyy-MM-dd");
        Date d  =  new Date(f.parse(split[0]).getTime()+24*3600*1000);
        String format = f.format(d);
        // System.out.println(format);
        seeker.setBirthday(format);
        service.insertSeeker(seeker);

        response.setContentType("text/json;charset=utf-8");
        response.getWriter().write("success");
    }
    public void seekerRegisterupload(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException {
        // 检测是否为多媒体上传
        System.out.println("seekerRegisterupload");
        if (!ServletFileUpload.isMultipartContent(request)) {
            // 如果不是则停止
            PrintWriter writer = response.getWriter();
            writer.println("Error: 表单必须包含 enctype=multipart/form-data");
            writer.flush();
            return;
        }
        System.out.println("1");
        // 构造临时路径来存储上传的文件
        // 这个路径相对当前应用的目录
        String uploadPath = getServletContext().getRealPath("/") + File.separator + "upload";
        // 如果目录不存在则创建
        File uploadDir = new File(uploadPath);
        if (!uploadDir.exists()) {
            uploadDir.mkdir();
        }
        //1、创建一个DiskFileItemFactory工厂
        DiskFileItemFactory factory = new DiskFileItemFactory();
        //2、创建一个文件上传解析器
        ServletFileUpload upload = new ServletFileUpload(factory);
        //3、解决上传文件名的中文乱码
        upload.setHeaderEncoding("UTF-8");
        System.out.println("2");

        try {
            // 解析请求的内容提取文件数据
            @SuppressWarnings("unchecked")
            List<FileItem> fileItems = upload.parseRequest(request);

            System.out.println(fileItems);
            if (fileItems != null && fileItems.size() > 0) {
                for (FileItem item : fileItems) {
                    //如果fileitem中封装的不是普通输入项的数据
                    if (!item.isFormField()) {
                        //字段名称
                        System.out.println("2-2");
                        String fieldName = item.getFieldName(); //文件对应字段名称,就是input中name的值
                        //文件 XXX.doc
                        String fileName = item.getName();
                        //获取文件后缀名
                        String suffix = fileName.substring(fileName.lastIndexOf('.')); //.doc
                        //获取时间戳作为文件名
                        long id = new Date().getTime();

                        SimpleDateFormat formatter= new SimpleDateFormat("yyMMddHHmmss");
                        Date date = new Date(System.currentTimeMillis());
                        System.out.println(formatter.format(date));
                        //构建文件路径
                        System.out.println(File.separator);
                        String fileUrl = "E:\\pic\\"  + formatter.format(date)  + suffix;
                        //新建文件
                        File file = new File(fileUrl);
                        System.out.println("3");

                        try {
                            //文件写入
                            item.write(file);
                            System.out.println("4");
                            Seeker seeker=new Seeker();
//                            System.out.println(PictureReader.Reader(fileUrl));
                            String[] strings = PDFReader.readFile(fileUrl);
                            for (int i = 0; i < strings.length; i++) {
                                System.out.println(strings[i]);
                                seeker.setPassword("123");
                                if(strings[i].contains("姓名"))
                                {
                                    String[] split = strings[i].split(":");
                                    seeker.setName(split[1]);
                                }
                                if(strings[i].contains("电话"))
                                {
                                    String[] split = strings[i].split(":");
                                    seeker.setPhone(split[1]);
                                }
                                if(strings[i].contains("年龄"))
                                {
                                    String[] split = strings[i].split(":");
                                    String s = String.valueOf(2023 - Integer.parseInt(split[1]));
                                    seeker.setBirthday(s+"-06-14");
                                }
                                if(strings[i].contains("学历学位"))
                                {
                                    String[] split = strings[i].split(":");
                                    seeker.setDegree(split[1]);
                                }
                                if(strings[i].contains("工作经验"))
                                {
                                    String[] split = strings[i].split(":");
                                    String 年 = split[1].replace("年", "");
                                    seeker.setWorkingHours(年);
                                }
                                if(strings[i].contains("从事职业"))
                                {
                                    String[] split = strings[i].split(":");
                                    seeker.setHopePost(split[1]);
                                }
                                if(strings[i].contains("期望月薪"))
                                {
                                    String[] split = strings[i].split(":");
                                    seeker.setHopeSalary(split[1]);
                                }
                                if(strings[i].contains("技能"))
                                {
                                    String s="";
                                    for (int j = i+1; j <strings.length ; j++) {
                                        if (strings[j].equals("工作经历"))
                                            break;
                                        s+=strings[j];
                                    }
                                    seeker.setSkill(s);
                                }
                                if(strings[i].contains("工作经历"))
                                {
                                    String s="";
                                    for (int j = i+1; j <strings.length ; j++) {
                                        if (strings[j].equals("自我评价"))
                                            break;
                                        s+=strings[j];
                                    }
                                    seeker.setAdvantage(s);
                                }
                                if(strings[i].contains("自我评价"))
                                {
                                    String s="";
                                    for (int j = i+1; j <strings.length ; j++) {

                                        s+=strings[j];
                                    }
                                    seeker.setExperienced(s);
                                }
                            }
                            System.out.println(seeker);
                            service.insertSeeker(seeker);


                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                        /**
                         * 图片访问地址:
                         * http://XXX:8080/javaewb/img/id+suffix
                         */

                    } else {
                        //普通字段
                        String fieldName = item.getFieldName();
                        String value = item.getString("UTF-8");
                        System.out.println(fieldName + "->" + value);
                    }
                }
            }
        }catch (FileUploadException e) {
            e.printStackTrace();
        }


    }


    public void selectPeoInformation(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
        System.out.println("selectPeoInformation...");
        BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8));

//        BufferedReader br = request.getReader();
        String name = br.readLine();
//        String name = JSON.parseObject(params, String.class);

        Seeker seeker = service.selectByName(name);
        //System.out.println("login"+seeker);
        response.setContentType("text/json;charset=utf-8");

        if(seeker != null){
            String jsonString = JSON.toJSONString(seeker);
            response.getWriter().write(jsonString);
        }else{
            System.out.println("error");
            response.getWriter().write("error");
        }
    }
    public void updateSeeker(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException {
        System.out.println("updateSeeker...");

        BufferedReader br = request.getReader();
        String params = br.readLine();
        Seeker seeker = JSON.parseObject(params, Seeker.class);
        String[] split = seeker.getBirthday().split("T");

        SimpleDateFormat f =  new SimpleDateFormat("yyyy-MM-dd");
        Date d  =  new Date(f.parse(split[0]).getTime()+24*3600*1000);
        String format = f.format(d);
        // System.out.println(format);
        seeker.setBirthday(format);
        service.updateSeeker(seeker);
        //System.out.println("login"+seeker);
        response.setContentType("text/json;charset=utf-8");


    }
    public void selectSeekerById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException {
        System.out.println("selectSeekerById...");

        BufferedReader br = request.getReader();
        String params = br.readLine();
        Integer integer = JSON.parseObject(params, Integer.class);

        Seeker seeker = service.selectSeekerById(integer);
        //System.out.println("login"+seeker);
        response.setContentType("text/json;charset=utf-8");
        String jsonString = JSON.toJSONString(seeker);
        response.getWriter().write(jsonString);

    }
}

SQL实现

今日完成:

1.消息的SQL的编写

2.SQL语句的实现和对于所有信息的展示,三个表尽心关联

3.完成对于页面的统一化风格

4.对于个性功能之间的测试

5.解决交互逻辑问题

6.完善,整理业务流程

明日目标:

1.完成最后的测试和优化

2.对于第一阶段的冲刺进行总结

 

 

posted on 2023-04-23 15:50  椰糖  阅读(84)  评论(0)    收藏  举报