计算机毕业设计 高校实习信息发布网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

news2024/11/27 0:36:42

🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系

👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》

目录

1.技术选型

2.数据库表结构

3.开发工具

4.功能

4.1【角色】

4.2【前台功能模块】

4.3【后台功能模块】

5.项目演示截图

5.1 前台登录

5.2 论坛

5.3 公告

5.4 企业

5.5 个人中心

5.6 实习申请

5.7 基础数据管理

5.8 简历管理

5.9 实习申请管理

5.10 就业分布统计报表

6.数据库文件设计

7.核心代码 

7.1 实习申请Controller

7.2 实习申请Service

7.3 实习申请ServiceImpl

7.4 实习申请DAO

8.参考文档


1.技术选型

springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8

2.数据库表结构

14张 

3.开发工具

idea、navicat

4.功能

4.1【角色】

管理员、用户

4.2【前台功能模块】

  • 登录注册
  • 首页
  • 论坛
  • 公告
  • 企业
  • 职位实习
  • 个人中心

4.3【后台功能模块】

  • 登录
  • 首页
  • 个人中心
  • 管理员管理
  • 基础数据管理
  • 论坛管理
  • 公告管理
  • 简历管理
  • 企业管理
  • 职位实习管理
  • 实习申请管理
  • 用户管理
  • 轮播图管理

5.项目演示截图

5.1 前台登录

5.2 论坛

 

5.3 公告

 

5.4 企业

 

5.5 个人中心

 

5.6 实习申请

 

5.7 基础数据管理

 

5.8 简历管理

 

5.9 实习申请管理

 

5.10 就业分布统计报表

 

6.数据库文件设计


CREATE TABLE `forum` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `forum_name` varchar(200) DEFAULT NULL COMMENT '帖子标题  Search111 ',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `qiye_id` int(11) DEFAULT NULL COMMENT '企业',
  `users_id` int(11) DEFAULT NULL COMMENT '管理员',
  `forum_content` longtext COMMENT '发布内容',
  `super_ids` int(11) DEFAULT NULL COMMENT '父id',
  `forum_types` int(11) DEFAULT NULL COMMENT '帖子类型  Search111 ',
  `forum_state_types` int(11) DEFAULT NULL COMMENT '帖子状态',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '发帖时间',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show2',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='论坛';


CREATE TABLE `gonggao` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111  ',
  `gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
  `gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '公告发布时间 ',
  `gonggao_content` text COMMENT '公告详情 ',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告';



CREATE TABLE `jianli` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `jianli_uuid_number` varchar(200) DEFAULT NULL COMMENT '简历唯一编号 ',
  `jianli_name` varchar(200) DEFAULT NULL COMMENT '简历标题',
  `jianli_xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
  `jianli_types` int(11) DEFAULT NULL COMMENT '求职意向 Search111',
  `jianli_xinzi` varchar(200) DEFAULT NULL COMMENT '期望工资 Search111',
  `jianli_xueli` varchar(200) DEFAULT NULL COMMENT '学历 Search111',
  `jianli_jingli` varchar(200) DEFAULT NULL COMMENT '工作经历 Search111',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别',
  `jianli_file` varchar(200) DEFAULT NULL COMMENT '简历文件',
  `jianli_phone` varchar(200) DEFAULT NULL COMMENT '手机号',
  `jianli_photo` varchar(200) DEFAULT NULL COMMENT '照片',
  `jianli_address` varchar(200) DEFAULT NULL COMMENT '现在位置',
  `jiaoyu_text` text COMMENT '教育经历',
  `shixi_text` text COMMENT '实习或工作经历',
  `geren_text` text COMMENT '个人介绍',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='简历';


CREATE TABLE `qiye` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `username` varchar(200) DEFAULT NULL COMMENT '账户 ',
  `password` varchar(200) DEFAULT NULL COMMENT '密码 ',
  `qiye_name` varchar(200) DEFAULT NULL COMMENT '企业名称 Search111 ',
  `qiye_types` int(11) DEFAULT NULL COMMENT '企业类型',
  `qiye_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `qiye_email` varchar(200) DEFAULT NULL COMMENT '邮箱',
  `qiye_photo` varchar(200) DEFAULT NULL COMMENT '企业logo',
  `qiye_chenglishijian_time` timestamp NULL DEFAULT NULL COMMENT '企业成立时间',
  `qiye_content` text COMMENT '企业介绍',
  `qiye_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='企业';



CREATE TABLE `shixijilu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `shixijilu_uuid_number` varchar(200) DEFAULT NULL COMMENT '实习记录编号 ',
  `shixijilu_name` varchar(200) DEFAULT NULL COMMENT '实习单位名称',
  `shixizhiwei_types` int(11) DEFAULT NULL COMMENT '实习职位 Search111',
  `danwei_address` varchar(200) DEFAULT NULL COMMENT '单位位置',
  `danwei_lianxiren` varchar(200) DEFAULT NULL COMMENT '联系人',
  `danwei_lianxi_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `shixijilu_xinzi` decimal(10,2) DEFAULT NULL COMMENT '实习薪资',
  `shixijilu_kaishi_time` timestamp NULL DEFAULT NULL COMMENT '实习开始时间',
  `shixijilu_jieshu_time` timestamp NULL DEFAULT NULL COMMENT '实习结束时间',
  `shixijilu_content` text COMMENT '实习内容',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '上传时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='实习记录';


CREATE TABLE `shixizhiwei` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `qiye_id` int(11) DEFAULT NULL COMMENT '企业',
  `shixizhiwei_name` varchar(200) DEFAULT NULL COMMENT '实习信息名称  Search111 ',
  `shixizhiwei_photo` varchar(200) DEFAULT NULL COMMENT '实习信息照片',
  `shixizhiwei_daiyu` varchar(200) DEFAULT NULL COMMENT '薪资待遇',
  `shixizhiwei_address` varchar(200) DEFAULT NULL COMMENT '上班地点',
  `lianxiren_name` varchar(200) DEFAULT NULL COMMENT '联系人',
  `shixizhiwei_phone` varchar(200) DEFAULT NULL COMMENT '实习电话',
  `shixizhiwei_types` int(11) DEFAULT NULL COMMENT '实习职位 Search111',
  `shixizhiwei_renshu_number` int(11) DEFAULT NULL COMMENT '实习人数',
  `shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',
  `shixizhiwei_content` text COMMENT '实习信息详情',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='职位实习';


CREATE TABLE `shixizhiwei_collection` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `shixizhiwei_id` int(11) DEFAULT NULL COMMENT '职位',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `shixizhiwei_collection_types` int(11) DEFAULT NULL COMMENT '类型',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='职位收藏';



CREATE TABLE `shixizhiwei_liuyan` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `shixizhiwei_id` int(11) DEFAULT NULL COMMENT '职位',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `shixizhiwei_liuyan_text` text COMMENT '留言内容',
  `reply_text` text COMMENT '回复内容',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='职位留言';


CREATE TABLE `shixizhiwei_toudi` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `jianli_id` int(11) DEFAULT NULL COMMENT '简历',
  `shixizhiwei_id` int(11) DEFAULT NULL COMMENT '实习',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '投递时间',
  `shixizhiwei_toudi_yesno_types` int(11) DEFAULT NULL COMMENT '审核状态 Search111',
  `shixizhiwei_toudi_yesno_text` text COMMENT '投递回复',
  `shixizhiwei_toudi_shenhe_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 COMMENT='实习申请';



CREATE TABLE `token` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `userid` bigint(20) NOT NULL COMMENT '学生id',
  `username` varchar(100) NOT NULL COMMENT '学生名',
  `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
  `role` varchar(100) DEFAULT NULL COMMENT '角色',
  `token` varchar(200) NOT NULL COMMENT '密码',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';


CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(100) NOT NULL COMMENT '学生名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';



CREATE TABLE `yonghu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(200) DEFAULT NULL COMMENT '账户',
  `password` varchar(200) DEFAULT NULL COMMENT '密码',
  `yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',
  `yonghu_photo` varchar(255) DEFAULT NULL COMMENT '头像',
  `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
  `yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号 ',
  `yonghu_email` varchar(200) DEFAULT NULL COMMENT '邮箱',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111 ',
  `yonghu_delete` int(11) DEFAULT '1' COMMENT '假删',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户';

7.核心代码 

7.1 实习申请Controller


package com.controller;

/**
 * 实习申请
 * 后端接口
 * @author 计算机编程-吉哥
 * @email
*/
@RestController
@Controller
@RequestMapping("/shixizhiweiToudi")
public class ShixizhiweiToudiController {
    private static final Logger logger = LoggerFactory.getLogger(ShixizhiweiToudiController.class);

    private static final String TABLE_NAME = "shixizhiweiToudi";

    @Autowired
    private ShixizhiweiToudiService shixizhiweiToudiService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private DictionaryService dictionaryService;//字典表
    @Autowired
    private ForumService forumService;//论坛
    @Autowired
    private GonggaoService gonggaoService;//公告
    @Autowired
    private JianliService jianliService;//简历
    @Autowired
    private QiyeService qiyeService;//企业
    @Autowired
    private ShixizhiweiService shixizhiweiService;//职位实习
    @Autowired
    private ShixizhiweiCollectionService shixizhiweiCollectionService;//职位收藏
    @Autowired
    private ShixizhiweiLiuyanService shixizhiweiLiuyanService;//职位留言
    @Autowired
    private YonghuService yonghuService;//用户
    @Autowired
    private UsersService usersService;//管理员


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("企业".equals(role))
            params.put("qiyeId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = shixizhiweiToudiService.queryPage(params);

        //字典表数据转换
        List<ShixizhiweiToudiView> list =(List<ShixizhiweiToudiView>)page.getList();
        for(ShixizhiweiToudiView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ShixizhiweiToudiEntity shixizhiweiToudi = shixizhiweiToudiService.selectById(id);
        if(shixizhiweiToudi !=null){
            //entity转view
            ShixizhiweiToudiView view = new ShixizhiweiToudiView();
            BeanUtils.copyProperties( shixizhiweiToudi , view );//把实体数据重构到view中
            //级联表 简历
            //级联表
            JianliEntity jianli = jianliService.selectById(shixizhiweiToudi.getJianliId());
            if(jianli != null){
            BeanUtils.copyProperties( jianli , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setJianliId(jianli.getId());
            }
            //级联表 职位实习
            //级联表
            ShixizhiweiEntity shixizhiwei = shixizhiweiService.selectById(shixizhiweiToudi.getShixizhiweiId());
            if(shixizhiwei != null){
            BeanUtils.copyProperties( shixizhiwei , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setShixizhiweiId(shixizhiwei.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody ShixizhiweiToudiEntity shixizhiweiToudi, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,shixizhiweiToudi:{}",this.getClass().getName(),shixizhiweiToudi.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");

        Wrapper<ShixizhiweiToudiEntity> queryWrapper = new EntityWrapper<ShixizhiweiToudiEntity>()
            .eq("jianli_id", shixizhiweiToudi.getJianliId())
            .eq("shixizhiwei_id", shixizhiweiToudi.getShixizhiweiId())
            .in("shixizhiwei_toudi_yesno_types", new Integer[]{1,2})
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ShixizhiweiToudiEntity shixizhiweiToudiEntity = shixizhiweiToudiService.selectOne(queryWrapper);
        if(shixizhiweiToudiEntity==null){
            shixizhiweiToudi.setInsertTime(new Date());
            shixizhiweiToudi.setShixizhiweiToudiYesnoTypes(1);
            shixizhiweiToudi.setCreateTime(new Date());
            shixizhiweiToudiService.insert(shixizhiweiToudi);
            return R.ok();
        }else {
            if(shixizhiweiToudiEntity.getShixizhiweiToudiYesnoTypes()==1)
                return R.error(511,"有相同的待审核的数据");
            else if(shixizhiweiToudiEntity.getShixizhiweiToudiYesnoTypes()==2)
                return R.error(511,"有相同的审核通过的数据");
            else
                return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody ShixizhiweiToudiEntity shixizhiweiToudi, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,shixizhiweiToudi:{}",this.getClass().getName(),shixizhiweiToudi.toString());
        ShixizhiweiToudiEntity oldShixizhiweiToudiEntity = shixizhiweiToudiService.selectById(shixizhiweiToudi.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
            shixizhiweiToudiService.updateById(shixizhiweiToudi);//根据id更新
            return R.ok();
    }


    /**
    * 审核
    */
    @RequestMapping("/shenhe")
    public R shenhe(@RequestBody ShixizhiweiToudiEntity shixizhiweiToudiEntity, HttpServletRequest request){
        logger.debug("shenhe方法:,,Controller:{},,shixizhiweiToudiEntity:{}",this.getClass().getName(),shixizhiweiToudiEntity.toString());

        ShixizhiweiToudiEntity oldShixizhiweiToudi = shixizhiweiToudiService.selectById(shixizhiweiToudiEntity.getId());//查询原先数据

        shixizhiweiToudiEntity.setShixizhiweiToudiShenheTime(new Date());//回复时间
        shixizhiweiToudiService.updateById(shixizhiweiToudiEntity);//审核

        return R.ok();
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<ShixizhiweiToudiEntity> oldShixizhiweiToudiList =shixizhiweiToudiService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        shixizhiweiToudiService.deleteBatchIds(Arrays.asList(ids));

        return R.ok();
    }


    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName, HttpServletRequest request){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
        try {
            List<ShixizhiweiToudiEntity> shixizhiweiToudiList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            ShixizhiweiToudiEntity shixizhiweiToudiEntity = new ShixizhiweiToudiEntity();
                            shixizhiweiToudiList.add(shixizhiweiToudiEntity);

                            //把要查询是否重复的字段放入map中
                        }

                        //查询是否重复
                        shixizhiweiToudiService.insertBatch(shixizhiweiToudiList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }




    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        CommonUtil.checkMap(params);
        PageUtils page = shixizhiweiToudiService.queryPage(params);

        //字典表数据转换
        List<ShixizhiweiToudiView> list =(List<ShixizhiweiToudiView>)page.getList();
        for(ShixizhiweiToudiView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段

        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ShixizhiweiToudiEntity shixizhiweiToudi = shixizhiweiToudiService.selectById(id);
            if(shixizhiweiToudi !=null){


                //entity转view
                ShixizhiweiToudiView view = new ShixizhiweiToudiView();
                BeanUtils.copyProperties( shixizhiweiToudi , view );//把实体数据重构到view中

                //级联表
                    JianliEntity jianli = jianliService.selectById(shixizhiweiToudi.getJianliId());
                if(jianli != null){
                    BeanUtils.copyProperties( jianli , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setJianliId(jianli.getId());
                }
                //级联表
                    ShixizhiweiEntity shixizhiwei = shixizhiweiService.selectById(shixizhiweiToudi.getShixizhiweiId());
                if(shixizhiwei != null){
                    BeanUtils.copyProperties( shixizhiwei , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setShixizhiweiId(shixizhiwei.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody ShixizhiweiToudiEntity shixizhiweiToudi, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,shixizhiweiToudi:{}",this.getClass().getName(),shixizhiweiToudi.toString());
        Wrapper<ShixizhiweiToudiEntity> queryWrapper = new EntityWrapper<ShixizhiweiToudiEntity>()
            .eq("jianli_id", shixizhiweiToudi.getJianliId())
            .eq("shixizhiwei_id", shixizhiweiToudi.getShixizhiweiId())
            .in("shixizhiwei_toudi_yesno_types", new Integer[]{1,2})
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ShixizhiweiToudiEntity shixizhiweiToudiEntity = shixizhiweiToudiService.selectOne(queryWrapper);
        if(shixizhiweiToudiEntity==null){
            shixizhiweiToudi.setInsertTime(new Date());
            shixizhiweiToudi.setShixizhiweiToudiYesnoTypes(1);
            shixizhiweiToudi.setCreateTime(new Date());
        shixizhiweiToudiService.insert(shixizhiweiToudi);

            return R.ok();
        }else {
            if(shixizhiweiToudiEntity.getShixizhiweiToudiYesnoTypes()==1)
                return R.error(511,"您已经申请了该岗位的实习,请等待审核");
            else if(shixizhiweiToudiEntity.getShixizhiweiToudiYesnoTypes()==2)
                return R.error(511,"您已经通过了该岗位的实习,不能重复申请");
            else
                return R.error(511,"表中有相同数据");
        }
    }

}

7.2 实习申请Service

package com.service;

import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.ShixizhiweiToudiEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;

/**
 * 实习申请 服务类
 */
public interface ShixizhiweiToudiService extends IService<ShixizhiweiToudiEntity> {

    /**
    * @param params 查询参数
    * @return 带分页的查询出来的数据
    */
     PageUtils queryPage(Map<String, Object> params);

}

7.3 实习申请ServiceImpl

package com.service.impl;

/**
 * 实习申请 服务实现类
 */
@Service("shixizhiweiToudiService")
@Transactional
public class ShixizhiweiToudiServiceImpl extends ServiceImpl<ShixizhiweiToudiDao, ShixizhiweiToudiEntity> implements ShixizhiweiToudiService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        Page<ShixizhiweiToudiView> page =new Query<ShixizhiweiToudiView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }


}

7.4 实习申请DAO

package com.dao;

import com.entity.ShixizhiweiToudiEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;

import org.apache.ibatis.annotations.Param;
import com.entity.view.ShixizhiweiToudiView;

/**
 * 实习申请 Dao 接口
 *
 * @author 
 */
public interface ShixizhiweiToudiDao extends BaseMapper<ShixizhiweiToudiEntity> {

   List<ShixizhiweiToudiView> selectListView(Pagination page,@Param("params")Map<String,Object> params);

}

8.参考文档

 

你可能还有感兴趣的项目👇🏻👇🏻👇🏻

更多项目推荐:计算机毕业设计项目

如果大家有任何疑虑,请在下方咨询或评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1092640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宝塔使用腾讯COS存储实现自动备份服务器网站数据图文教程

一、进入宝塔安装腾讯COS 点击设置打开后需要配置以下cos参数 二、腾讯云创建COS存储桶 选择私有读写&#xff0c;其他默认就行 三、创建访问密钥 四、配置宝塔中腾讯COS相关设置 很多人是配置错误导致无法正常链接cos region为cos存储桶所属地域 Bucker为存储桶名称 五、…

力扣-461.汉明距离

Method 1 直接比较x&#xff0c;y二进制中的每一位&#xff0c;如果不同则cnt加一&#xff0c;并且x&#xff0c;y每次右移一位 class Solution { public:int hammingDistance(int x, int y) {int cnt 0;while(x > 0 && y > 0) {if((x & 1) ! (y & 1)…

MySQL 2023 MySQL Summit 大会感受,我们距离MySQL 新技术越来越远

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群&#xff0c;群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;…

2023.10.14 培训总结

培训内容 数字模型联合仿真及集成测试技术 MBSE(Model-Based-System-Engiaeering&#xff09; 参数化建模参数化仿真 产生的疑问 支持面向对象支持CAE CFD工具优化工具 飞机的业务功能 开发分布式架构 新技术 WSDL协议DDS 发布/订阅SAOPCORBA 明显开发者 Chris Garrett 美…

c# xml 参数配置表的使用

使用简介 实际使用界面 配置表管理界面 进入 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…

挖机技术哪家强

挖机技术哪家强&#xff0c;中国山东找蓝翔&#xff0c;开挖机是我曾经的梦想&#xff0c;每个男人心中都有一台自己的挖机&#xff0c;近半年做的项目就是关于挖机销售CRM&ERP系统&#xff0c; 今天我们聊聊关于挖机的基本知识。 注&#xff1a;此文并非广告&#xff0c;…

Lua 协程

一、协程 Lua 中使用半协程的方式进行组织代码。 和线程的最大区别在于&#xff0c;一个多线程程序可以并行运行多个线程&#xff0c;而协程却需要彼此协作运行&#xff0c;即任意指定时刻只能一个协程运行&#xff0c;且只有当正在运行的协程显式地要求被挂起时&#xff0c;…

Net6 用imagesharp 实现跨平台图片处理并存入oss

项目要求&#xff1a;生成电子证书 一、模板文件在OSS中&#xff0c;直接加载 二、向模板文件添加二维码 三、向模板文件添加多行文字 四、生成二维码&#xff0c;存入本地&#xff0c; 五、向模板文件添加二维码 代码实现步骤 一、建立.net 6 API项目&#xff0c;安装N…

SpringBoot-黑马程序员-学习笔记(五)

74.自定义bean属性绑定以及第三方bean属性绑定 自定义bean属性绑定 1.自定义一个bean Data Component public class ServerConfig {private String ipAddress;private int port;private long timeout; } 2.在yml配置文件中中定义一组值 3.在bean中进行属性绑定 加上这个注…

【Linux】:Linux环境与版本

以下哪个命令输出Linux内核的版本信息 A.uname -r B.vmstat C.sar D.stat uname -r 查看linux内核版本信息 vmstat 报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息 sar 主要帮助我们掌握系统资源的使用情况&#xff0c;特别是内存和CPU的使用情况 stat 用于显示…

【从零开始学习Redis | 第二篇】Redis中的数据类型和相关命令

前言&#xff1a; Redis是一种快速、高效的开源内存数据库&#xff0c;被广泛用于构建各种类型的应用程序。其被设计成支持多种数据类型&#xff0c;这使得Redis在处理各种场景的数据存储和操作中非常灵活。Redis的数据类型提供了对不同数据结构的直接支持&#xff0c;包括字符…

并查集维护集合 ac240食物链

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std; const int N50010; int p[N],d[N]; int n,m;int find(int x){if(p[x]!x){ int ufind(p[x]);d[x] d[p[x]];p[x]u;}return p[x]; }int main(){scanf("%d%d",&n,&m);fo…

Java设计模式之六大设计原则

为什么要学习设计模式&#xff1f; 要知道设计模式就是软件工程的方法经验的总结&#xff0c;也是可以认为是过去一段时间软件工程的一个最佳实践&#xff0c;要理解&#xff0c;不要死记硬背。掌握这些方法后&#xff0c;可以让你的程序获得以下好处&#xff1a; 代码重用性…

SpringCloud-Hystrix

一、介绍 &#xff08;1&#xff09;避免单个服务出现故障导致整个应用崩溃。 &#xff08;2&#xff09;服务降级&#xff1a;服务超时、服务异常、服务宕机时&#xff0c;执行定义好的方法。&#xff08;做别的&#xff09; &#xff08;3&#xff09;服务熔断&#xff1a;达…

学习记忆——题型篇——写作——记忆宫殿法

1&#xff0e;什么是数字记忆法? 答&#xff1a; 数字记忆就是把每一个数字转换成图片编码后再进行联想速记。 2&#xff0e;数字记忆法的用途有哪些&#xff1f; 答&#xff1a; 可以记忆学科知识&#xff0c;如地理、历史等所有学科或考试中的数据信息&#xff1b;可以速记生…

给ChuanhuChatGPT 配上讯飞星火spark大模型V2.0(一)

ChuanhuChatGPT 拥有多端、比较好看的Gradio界面&#xff0c;开发比较完整&#xff1b; 刚好讯飞星火非常大气&#xff0c;免费可以领取大概20w&#xff08;&#xff01;&#xff01;&#xff01;&#xff09;的token&#xff0c;这波必须不亏&#xff0c;整上。 重要参考&am…

中断机制-中断协商机制、中断方法

4.1 线程中断机制 4.1.1 从阿里蚂蚁金服面试题讲起 Java.lang.Thread下的三个方法: 4.1.2 什么是中断机制 首先&#xff0c;一个线程不应该由其他线程来强制中断或停止&#xff0c;而是应该由线程自己自行停止&#xff0c;自己来决定自己的命运&#xff0c;所以&#xff0c;…

创意无限,动画随心——Adobe Animate 2024正式发布!

Adobe Animate 2024是一款全新的多平台动画和互动设计工具&#xff0c;它为用户提供了强大的工具和功能&#xff0c;以创造出各种类型的动画作品。无论是短片、广告、游戏还是交互式应用程序&#xff0c;Animate都能够满足您的需求。 Animate 2024的主要特点包括&#xff1a; …

mysql面试题48:MySQL中 Innodb的事务与日志的实现方式

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官: Innodb的事务与日志的实现方式 以下是InnoDB事务和日志的实现方式的详细说明: 事务日志(Transaction Log): InnoDB使用事务日志来保证事务的…

windows TBB的使用

windows TBB的使用 1. Install with GUI 1. Install with GUI To install oneTBB using GUI, complete the following steps: Go to the Download page.Select the preferred installer Online installer has a smaller file size but requires a permanent Internet connec…