• 计算机毕业设计 基于SpringBoot高校竞赛管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试


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

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

    目录

    1.技术选型

    2.数据库表结构

    3.开发工具

    4.功能

    4.1【角色】

    4.2【前台功能模块】

    4.3【后台功能模块】

    5.项目演示截图

    5.1 赛事信息

    5.2 公告信息

    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.数据库表结构

    16张 

    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 专家功能展示

     

    6.数据库文件设计

    1. CREATE TABLE `config` (
    2. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    3. `name` varchar(100) NOT NULL COMMENT '配置参数名称',
    4. `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
    5. PRIMARY KEY (`id`)
    6. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
    7. CREATE TABLE `dictionary` (
    8. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    9. `dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
    10. `dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
    11. `code_index` int(11) DEFAULT NULL COMMENT '编码',
    12. `index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',
    13. `super_id` int(11) DEFAULT NULL COMMENT '父字段id',
    14. `beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
    15. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    16. PRIMARY KEY (`id`)
    17. ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='字典';
    18. CREATE TABLE `forum` (
    19. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    20. `forum_name` varchar(200) DEFAULT NULL COMMENT '帖子标题 Search111 ',
    21. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    22. `laoshi_id` int(11) DEFAULT NULL COMMENT '老师',
    23. `zhuanjia_id` int(11) DEFAULT NULL COMMENT '专家',
    24. `users_id` int(11) DEFAULT NULL COMMENT '管理员',
    25. `forum_content` longtext COMMENT '发布内容',
    26. `super_ids` int(11) DEFAULT NULL COMMENT '父id',
    27. `forum_state_types` int(11) DEFAULT NULL COMMENT '帖子状态',
    28. `insert_time` timestamp NULL DEFAULT NULL COMMENT '发帖时间',
    29. `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
    30. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show2',
    31. PRIMARY KEY (`id`)
    32. ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='论坛';
    33. CREATE TABLE `gonggao` (
    34. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    35. `gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111 ',
    36. `gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
    37. `gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
    38. `insert_time` timestamp NULL DEFAULT NULL COMMENT '公告发布时间 ',
    39. `gonggao_content` longtext COMMENT '公告详情 ',
    40. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
    41. PRIMARY KEY (`id`)
    42. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='竞赛公告';
    43. CREATE TABLE `huojiang` (
    44. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    45. `huojiang_name` varchar(200) DEFAULT NULL COMMENT '获奖名称 Search111 ',
    46. `huojiang_uuid_number` varchar(200) DEFAULT NULL COMMENT '获奖编号',
    47. `huojiang_photo` varchar(200) DEFAULT NULL COMMENT '获奖照片',
    48. `huojiang_types` int(11) DEFAULT NULL COMMENT '获奖类型 Search111',
    49. `huojiang_xues` int(11) DEFAULT NULL COMMENT '学生排名',
    50. `huojiang_content` longtext COMMENT '获奖介绍 ',
    51. `huojiang_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    52. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    53. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
    54. PRIMARY KEY (`id`)
    55. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='获奖';
    56. CREATE TABLE `laoshi` (
    57. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    58. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    59. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    60. `laoshi_name` varchar(200) DEFAULT NULL COMMENT '老师姓名 Search111 ',
    61. `laoshi_phone` varchar(200) DEFAULT NULL COMMENT '老师手机号',
    62. `laoshi_id_number` varchar(200) DEFAULT NULL COMMENT '老师身份证号',
    63. `laoshi_photo` varchar(200) DEFAULT NULL COMMENT '老师头像',
    64. `sex_types` int(11) DEFAULT NULL COMMENT '性别',
    65. `laoshi_email` varchar(200) DEFAULT NULL COMMENT '老师邮箱',
    66. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    67. PRIMARY KEY (`id`)
    68. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='老师';
    69. CREATE TABLE `pingshen` (
    70. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    71. `pingshen_uuid_number` varchar(200) DEFAULT NULL COMMENT '报名唯一编号 Search111 ',
    72. `saishi_tijiao_id` int(11) DEFAULT NULL COMMENT '赛事提交',
    73. `laoshi_id` int(11) DEFAULT NULL COMMENT '老师',
    74. `pingshen_file` varchar(200) DEFAULT NULL COMMENT '参赛作品',
    75. `pingshen_zhidao` varchar(200) DEFAULT NULL COMMENT '指导老师',
    76. `pingshen_text` text COMMENT '内容',
    77. `insert_time` timestamp NULL DEFAULT NULL COMMENT '赛事提交时间',
    78. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    79. PRIMARY KEY (`id`)
    80. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='评审';
    81. CREATE TABLE `pingshen_fenpei` (
    82. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    83. `pingshen_fenpei_uuid_number` varchar(200) DEFAULT NULL COMMENT '报名唯一编号 Search111 ',
    84. `pingshen_id` int(11) DEFAULT NULL COMMENT '评审',
    85. `zhuanjia_id` int(11) DEFAULT NULL COMMENT '专家',
    86. `pingshen_fenpei_text` text COMMENT '内容',
    87. `insert_time` timestamp NULL DEFAULT NULL COMMENT '分配时间',
    88. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    89. PRIMARY KEY (`id`)
    90. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='评审分配';
    91. CREATE TABLE `pingshen_pingfen` (
    92. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    93. `pingshen_pingfen_uuid_number` varchar(200) DEFAULT NULL COMMENT '报名唯一编号 Search111 ',
    94. `pingshen_fenpei_id` int(11) DEFAULT NULL COMMENT '评审分配',
    95. `zhuanjia_id` int(11) DEFAULT NULL COMMENT '专家',
    96. `pingshen_pingfen_pingfen` int(11) DEFAULT NULL COMMENT '打分',
    97. `pingshen_pingfen_text` text COMMENT '内容',
    98. `insert_time` timestamp NULL DEFAULT NULL COMMENT '分配时间',
    99. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    100. PRIMARY KEY (`id`)
    101. ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='评审打分';
    102. CREATE TABLE `saishi` (
    103. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    104. `saishi_name` varchar(200) DEFAULT NULL COMMENT '赛事名称 Search111 ',
    105. `saishi_uuid_number` varchar(200) DEFAULT NULL COMMENT '赛事编号',
    106. `saishi_photo` varchar(200) DEFAULT NULL COMMENT '赛事照片',
    107. `saishi_address` varchar(200) DEFAULT NULL COMMENT '赛事地点',
    108. `saishi_types` int(11) DEFAULT NULL COMMENT '赛事类型 Search111',
    109. `saishi_content` longtext COMMENT '赛事介绍 ',
    110. `saishi_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    111. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    112. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
    113. PRIMARY KEY (`id`)
    114. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='赛事';
    115. CREATE TABLE `token` (
    116. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    117. `userid` bigint(20) NOT NULL COMMENT '儿童id',
    118. `username` varchar(100) NOT NULL COMMENT '儿童名',
    119. `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
    120. `role` varchar(100) DEFAULT NULL COMMENT '角色',
    121. `token` varchar(200) NOT NULL COMMENT '密码',
    122. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    123. `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
    124. PRIMARY KEY (`id`)
    125. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';
    126. CREATE TABLE `users` (
    127. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    128. `username` varchar(100) NOT NULL COMMENT '儿童名',
    129. `password` varchar(100) NOT NULL COMMENT '密码',
    130. `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
    131. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    132. PRIMARY KEY (`id`)
    133. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';
    134. CREATE TABLE `yonghu` (
    135. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    136. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    137. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    138. `yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',
    139. `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
    140. `yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',
    141. `yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',
    142. `sex_types` int(11) DEFAULT NULL COMMENT '性别',
    143. `yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',
    144. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    145. PRIMARY KEY (`id`)
    146. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户';
    147. CREATE TABLE `zhuanjia` (
    148. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    149. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    150. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    151. `zhuanjia_name` varchar(200) DEFAULT NULL COMMENT '专家姓名 Search111 ',
    152. `zhuanjia_phone` varchar(200) DEFAULT NULL COMMENT '专家手机号',
    153. `zhuanjia_id_number` varchar(200) DEFAULT NULL COMMENT '专家身份证号',
    154. `zhuanjia_photo` varchar(200) DEFAULT NULL COMMENT '专家头像',
    155. `sex_types` int(11) DEFAULT NULL COMMENT '性别',
    156. `zhuanjia_email` varchar(200) DEFAULT NULL COMMENT '专家邮箱',
    157. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    158. PRIMARY KEY (`id`)
    159. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='专家';

    7.核心代码 

    7.1 评审Controller

    1. package com.controller;
    2. /**
    3. * 评审
    4. * 后端接口
    5. * @author 计算机编程-吉哥
    6. * @email
    7. */
    8. @RestController
    9. @Controller
    10. @RequestMapping("/pingshen")
    11. public class PingshenController {
    12. private static final Logger logger = LoggerFactory.getLogger(PingshenController.class);
    13. private static final String TABLE_NAME = "pingshen";
    14. @Autowired
    15. private PingshenService pingshenService;
    16. @Autowired
    17. private TokenService tokenService;
    18. @Autowired
    19. private DictionaryService dictionaryService;//字典
    20. @Autowired
    21. private ForumService forumService;//论坛
    22. @Autowired
    23. private GonggaoService gonggaoService;//竞赛公告
    24. @Autowired
    25. private HuojiangService huojiangService;//获奖
    26. @Autowired
    27. private LaoshiService laoshiService;//老师
    28. @Autowired
    29. private PingshenFenpeiService pingshenFenpeiService;//评审分配
    30. @Autowired
    31. private PingshenPingfenService pingshenPingfenService;//评审打分
    32. @Autowired
    33. private SaishiService saishiService;//赛事
    34. @Autowired
    35. private SaishiTijiaoService saishiTijiaoService;//赛事提交
    36. @Autowired
    37. private SaishiYuyueService saishiYuyueService;//赛事报名
    38. @Autowired
    39. private YonghuService yonghuService;//用户
    40. @Autowired
    41. private ZhuanjiaService zhuanjiaService;//专家
    42. @Autowired
    43. private UsersService usersService;//管理员
    44. /**
    45. * 后端列表
    46. */
    47. @RequestMapping("/page")
    48. public R page(@RequestParam Map params, HttpServletRequest request){
    49. logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    50. String role = String.valueOf(request.getSession().getAttribute("role"));
    51. if(false)
    52. return R.error(511,"永不会进入");
    53. else if("用户".equals(role))
    54. params.put("yonghuId",request.getSession().getAttribute("userId"));
    55. else if("老师".equals(role))
    56. params.put("laoshiId",request.getSession().getAttribute("userId"));
    57. else if("专家".equals(role))
    58. params.put("zhuanjiaId",request.getSession().getAttribute("userId"));
    59. CommonUtil.checkMap(params);
    60. PageUtils page = pingshenService.queryPage(params);
    61. //字典表数据转换
    62. List list =(List)page.getList();
    63. for(PingshenView c:list){
    64. //修改对应字典表字段
    65. dictionaryService.dictionaryConvert(c, request);
    66. }
    67. return R.ok().put("data", page);
    68. }
    69. /**
    70. * 后端详情
    71. */
    72. @RequestMapping("/info/{id}")
    73. public R info(@PathVariable("id") Long id, HttpServletRequest request){
    74. logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    75. PingshenEntity pingshen = pingshenService.selectById(id);
    76. if(pingshen !=null){
    77. //entity转view
    78. PingshenView view = new PingshenView();
    79. BeanUtils.copyProperties( pingshen , view );//把实体数据重构到view中
    80. //级联表 赛事提交
    81. //级联表
    82. SaishiTijiaoEntity saishiTijiao = saishiTijiaoService.selectById(pingshen.getSaishiTijiaoId());
    83. if(saishiTijiao != null){
    84. BeanUtils.copyProperties( saishiTijiao , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "laoshiId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
    85. view.setSaishiTijiaoId(saishiTijiao.getId());
    86. }
    87. //级联表 老师
    88. //级联表
    89. LaoshiEntity laoshi = laoshiService.selectById(pingshen.getLaoshiId());
    90. if(laoshi != null){
    91. BeanUtils.copyProperties( laoshi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "laoshiId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
    92. view.setLaoshiId(laoshi.getId());
    93. }
    94. //修改对应字典表字段
    95. dictionaryService.dictionaryConvert(view, request);
    96. return R.ok().put("data", view);
    97. }else {
    98. return R.error(511,"查不到数据");
    99. }
    100. }
    101. /**
    102. * 后端保存
    103. */
    104. @RequestMapping("/save")
    105. public R save(@RequestBody PingshenEntity pingshen, HttpServletRequest request){
    106. logger.debug("save方法:,,Controller:{},,pingshen:{}",this.getClass().getName(),pingshen.toString());
    107. String role = String.valueOf(request.getSession().getAttribute("role"));
    108. if(false)
    109. return R.error(511,"永远不会进入");
    110. else if("老师".equals(role))
    111. pingshen.setLaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    112. Wrapper queryWrapper = new EntityWrapper()
    113. .eq("saishi_tijiao_id", pingshen.getSaishiTijiaoId())
    114. .eq("laoshi_id", pingshen.getLaoshiId())
    115. .eq("pingshen_zhidao", pingshen.getPingshenZhidao())
    116. ;
    117. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    118. PingshenEntity pingshenEntity = pingshenService.selectOne(queryWrapper);
    119. if(pingshenEntity==null){
    120. pingshen.setInsertTime(new Date());
    121. pingshen.setCreateTime(new Date());
    122. pingshenService.insert(pingshen);
    123. return R.ok();
    124. }else {
    125. return R.error(511,"表中有相同数据");
    126. }
    127. }
    128. /**
    129. * 后端修改
    130. */
    131. @RequestMapping("/update")
    132. public R update(@RequestBody PingshenEntity pingshen, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
    133. logger.debug("update方法:,,Controller:{},,pingshen:{}",this.getClass().getName(),pingshen.toString());
    134. PingshenEntity oldPingshenEntity = pingshenService.selectById(pingshen.getId());//查询原先数据
    135. String role = String.valueOf(request.getSession().getAttribute("role"));
    136. // if(false)
    137. // return R.error(511,"永远不会进入");
    138. // else if("老师".equals(role))
    139. // pingshen.setLaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    140. if("".equals(pingshen.getPingshenFile()) || "null".equals(pingshen.getPingshenFile())){
    141. pingshen.setPingshenFile(null);
    142. }
    143. pingshenService.updateById(pingshen);//根据id更新
    144. return R.ok();
    145. }
    146. /**
    147. * 删除
    148. */
    149. @RequestMapping("/delete")
    150. public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
    151. logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
    152. List oldPingshenList =pingshenService.selectBatchIds(Arrays.asList(ids));//要删除的数据
    153. pingshenService.deleteBatchIds(Arrays.asList(ids));
    154. return R.ok();
    155. }
    156. /**
    157. * 批量上传
    158. */
    159. @RequestMapping("/batchInsert")
    160. public R save( String fileName, HttpServletRequest request){
    161. logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
    162. Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
    163. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    164. //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
    165. try {
    166. List pingshenList = new ArrayList<>();//上传的东西
    167. Map> seachFields= new HashMap<>();//要查询的字段
    168. Date date = new Date();
    169. int lastIndexOf = fileName.lastIndexOf(".");
    170. if(lastIndexOf == -1){
    171. return R.error(511,"该文件没有后缀");
    172. }else{
    173. String suffix = fileName.substring(lastIndexOf);
    174. if(!".xls".equals(suffix)){
    175. return R.error(511,"只支持后缀为xls的excel文件");
    176. }else{
    177. URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
    178. File file = new File(resource.getFile());
    179. if(!file.exists()){
    180. return R.error(511,"找不到上传文件,请联系管理员");
    181. }else{
    182. List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
    183. dataList.remove(0);//删除第一行,因为第一行是提示
    184. for(List data:dataList){
    185. //循环
    186. PingshenEntity pingshenEntity = new PingshenEntity();
    187. pingshenList.add(pingshenEntity);
    188. //把要查询是否重复的字段放入map中
    189. //报名唯一编号
    190. if(seachFields.containsKey("pingshenUuidNumber")){
    191. List pingshenUuidNumber = seachFields.get("pingshenUuidNumber");
    192. pingshenUuidNumber.add(data.get(0));//要改的
    193. }else{
    194. List pingshenUuidNumber = new ArrayList<>();
    195. pingshenUuidNumber.add(data.get(0));//要改的
    196. seachFields.put("pingshenUuidNumber",pingshenUuidNumber);
    197. }
    198. }
    199. //查询是否重复
    200. //报名唯一编号
    201. List pingshenEntities_pingshenUuidNumber = pingshenService.selectList(new EntityWrapper().in("pingshen_uuid_number", seachFields.get("pingshenUuidNumber")));
    202. if(pingshenEntities_pingshenUuidNumber.size() >0 ){
    203. ArrayList repeatFields = new ArrayList<>();
    204. for(PingshenEntity s:pingshenEntities_pingshenUuidNumber){
    205. repeatFields.add(s.getPingshenUuidNumber());
    206. }
    207. return R.error(511,"数据库的该表中的 [报名唯一编号] 字段已经存在 存在数据为:"+repeatFields.toString());
    208. }
    209. pingshenService.insertBatch(pingshenList);
    210. return R.ok();
    211. }
    212. }
    213. }
    214. }catch (Exception e){
    215. e.printStackTrace();
    216. return R.error(511,"批量插入数据异常,请联系管理员");
    217. }
    218. }
    219. /**
    220. * 前端列表
    221. */
    222. @IgnoreAuth
    223. @RequestMapping("/list")
    224. public R list(@RequestParam Map params, HttpServletRequest request){
    225. logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    226. CommonUtil.checkMap(params);
    227. PageUtils page = pingshenService.queryPage(params);
    228. //字典表数据转换
    229. List list =(List)page.getList();
    230. for(PingshenView c:list)
    231. dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
    232. return R.ok().put("data", page);
    233. }
    234. /**
    235. * 前端详情
    236. */
    237. @RequestMapping("/detail/{id}")
    238. public R detail(@PathVariable("id") Long id, HttpServletRequest request){
    239. logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    240. PingshenEntity pingshen = pingshenService.selectById(id);
    241. if(pingshen !=null){
    242. //entity转view
    243. PingshenView view = new PingshenView();
    244. BeanUtils.copyProperties( pingshen , view );//把实体数据重构到view中
    245. //级联表
    246. SaishiTijiaoEntity saishiTijiao = saishiTijiaoService.selectById(pingshen.getSaishiTijiaoId());
    247. if(saishiTijiao != null){
    248. BeanUtils.copyProperties( saishiTijiao , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
    249. view.setSaishiTijiaoId(saishiTijiao.getId());
    250. }
    251. //级联表
    252. LaoshiEntity laoshi = laoshiService.selectById(pingshen.getLaoshiId());
    253. if(laoshi != null){
    254. BeanUtils.copyProperties( laoshi , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
    255. view.setLaoshiId(laoshi.getId());
    256. }
    257. //修改对应字典表字段
    258. dictionaryService.dictionaryConvert(view, request);
    259. return R.ok().put("data", view);
    260. }else {
    261. return R.error(511,"查不到数据");
    262. }
    263. }
    264. /**
    265. * 前端保存
    266. */
    267. @RequestMapping("/add")
    268. public R add(@RequestBody PingshenEntity pingshen, HttpServletRequest request){
    269. logger.debug("add方法:,,Controller:{},,pingshen:{}",this.getClass().getName(),pingshen.toString());
    270. Wrapper queryWrapper = new EntityWrapper()
    271. .eq("pingshen_uuid_number", pingshen.getPingshenUuidNumber())
    272. .eq("saishi_tijiao_id", pingshen.getSaishiTijiaoId())
    273. .eq("laoshi_id", pingshen.getLaoshiId())
    274. .eq("pingshen_zhidao", pingshen.getPingshenZhidao())
    275. .eq("pingshen_text", pingshen.getPingshenText())
    276. // .notIn("pingshen_types", new Integer[]{102})
    277. ;
    278. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    279. PingshenEntity pingshenEntity = pingshenService.selectOne(queryWrapper);
    280. if(pingshenEntity==null){
    281. pingshen.setInsertTime(new Date());
    282. pingshen.setCreateTime(new Date());
    283. pingshenService.insert(pingshen);
    284. return R.ok();
    285. }else {
    286. return R.error(511,"表中有相同数据");
    287. }
    288. }
    289. }

    7.2 评审Service

    1. package com.service;
    2. import com.baomidou.mybatisplus.service.IService;
    3. import com.utils.PageUtils;
    4. import com.entity.PingshenEntity;
    5. import java.util.Map;
    6. import javax.servlet.http.HttpServletRequest;
    7. import org.springframework.lang.Nullable;
    8. import java.util.List;
    9. /**
    10. * 评审 服务类
    11. */
    12. public interface PingshenService extends IService {
    13. /**
    14. * @param params 查询参数
    15. * @return 带分页的查询出来的数据
    16. */
    17. PageUtils queryPage(Map params);
    18. }

    7.3 评审ServiceImpl

    1. package com.service.impl;
    2. /**
    3. * 评审 服务实现类
    4. */
    5. @Service("pingshenService")
    6. @Transactional
    7. public class PingshenServiceImpl extends ServiceImpl implements PingshenService {
    8. @Override
    9. public PageUtils queryPage(Map params) {
    10. Page page =new Query(params).getPage();
    11. page.setRecords(baseMapper.selectListView(page,params));
    12. return new PageUtils(page);
    13. }
    14. }

    7.4 评审DAO

    1. package com.dao;
    2. import com.entity.PingshenEntity;
    3. import com.baomidou.mybatisplus.mapper.BaseMapper;
    4. import java.util.List;
    5. import java.util.Map;
    6. import com.baomidou.mybatisplus.plugins.pagination.Pagination;
    7. import org.apache.ibatis.annotations.Param;
    8. import com.entity.view.PingshenView;
    9. /**
    10. * 评审 Dao 接口
    11. *
    12. * @author
    13. */
    14. public interface PingshenDao extends BaseMapper {
    15. List selectListView(Pagination page,@Param("params")Map params);
    16. }

    8.参考文档

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

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

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

  • 相关阅读:
    CC1,3,6回顾
    Vue笔记_01双向数据绑定原理
    TCP/IP 三次握手&四次挥手详解,以及异常状态分析
    【c++】如何有效地利用命名空间?
    第十一周周报
    C#:实现权重轮询调度算法(附完整源码)
    跨域问题详解:CORS问题+解决办法
    java EE初阶 — 计算机工作原理
    机器学习算法——聚类3(k均值算法)
    在rt-thread中使用iperf触发断言卡死
  • 原文地址:https://blog.csdn.net/weixin_51966461/article/details/134085186