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


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

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

    1.技术选型

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

    2.数据库表结构

    10张 

    3.开发工具

    idea、navicat

    4.功能

    4.1【角色】

    管理员、用户、教师

    4.2【用户功能模块】

    • 登录注册
    • 首页
    • 个人中心
    • 项目申报管理
    • 选题审核管理
    • 项目进度管理
    • 公告信息管理

    4.3【教师功能模块】

    • 登录注册
    • 首页
    • 个人中心
    • 学生管理
    • 项目申报管理
    • 选题审核管理
    • 项目进度管理
    • 公告信息管理

    4.4【管理员功能模块】

    • 登录
    • 首页
    • 个人中心
    • 管理员管理
    • 指导教师管理
    • 学生管理
    • 项目申报管理
    • 选题审核管理
    • 项目进度管理
    • 基础数据管理
    • 公告信息管理

    5.项目演示截图

    5.1 登录

    5.2 指导教师管理

     

    5.3 项目申报管理

     

    5.4 选题审核管理

     

    5.5 项目进度管理

     

    5.6 项目类型管理

     

    6.数据库文件设计

    1. CREATE TABLE `config` (
    2. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    3. `name` varchar(100) DEFAULT NULL COMMENT '配置参数名称',
    4. `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
    5. PRIMARY KEY (`id`)
    6. ) ENGINE=InnoDB 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=22 DEFAULT CHARSET=utf8 COMMENT='字典';
    18. CREATE TABLE `jiaoshi` (
    19. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    20. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    21. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    22. `jiaoshi_name` varchar(200) DEFAULT NULL COMMENT '教师名称 Search111 ',
    23. `jiaoshi_phone` varchar(200) DEFAULT NULL COMMENT '教师手机号',
    24. `jiaoshi_photo` varchar(200) DEFAULT NULL COMMENT '教师头像',
    25. `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
    26. `jiaoshi_email` varchar(200) DEFAULT NULL COMMENT '教师邮箱',
    27. `jiaoshi_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    28. `jiaoshi_time` date DEFAULT NULL COMMENT '入职时间',
    29. `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    30. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    31. PRIMARY KEY (`id`)
    32. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='指导教师';
    33. CREATE TABLE `news` (
    34. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    35. `news_name` varchar(200) DEFAULT NULL COMMENT '公告标题 Search111 ',
    36. `news_types` int(11) DEFAULT NULL COMMENT '公告类型 Search111 ',
    37. `news_photo` varchar(200) DEFAULT NULL COMMENT '公告图片',
    38. `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    39. `news_content` longtext COMMENT '公告详情',
    40. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    41. PRIMARY KEY (`id`)
    42. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告信息';
    43. CREATE TABLE `token` (
    44. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    45. `userid` bigint(20) NOT NULL COMMENT '管理id',
    46. `username` varchar(100) NOT NULL COMMENT '管理名',
    47. `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
    48. `role` varchar(100) DEFAULT NULL COMMENT '角色',
    49. `token` varchar(200) NOT NULL COMMENT '密码',
    50. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    51. `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
    52. PRIMARY KEY (`id`)
    53. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';
    54. CREATE TABLE `users` (
    55. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    56. `username` varchar(100) NOT NULL COMMENT '医院名',
    57. `password` varchar(100) NOT NULL COMMENT '密码',
    58. `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
    59. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    60. PRIMARY KEY (`id`)
    61. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';
    62. CREATE TABLE `xiangmujindu` (
    63. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    64. `xuantishenhe_id` int(11) DEFAULT NULL COMMENT '选题审核',
    65. `xiangmujindu_file` varchar(200) DEFAULT NULL COMMENT '项目文件',
    66. `xiangmujindu_content` longtext COMMENT '项目详情',
    67. `xiangmujindu_yesno_types` int(11) DEFAULT NULL COMMENT '进度审核 Search111',
    68. `xiangmujindu_yesno_text` longtext COMMENT '审核结果 ',
    69. `xiangmujindu_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    70. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    71. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    72. PRIMARY KEY (`id`)
    73. ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COMMENT='项目进度';
    74. CREATE TABLE `xuantishenhe` (
    75. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    76. `xiangmu_id` int(11) DEFAULT NULL COMMENT '项目',
    77. `yonghu_id` int(11) DEFAULT NULL COMMENT '学生',
    78. `xuantishenhe_yesno_types` int(11) DEFAULT NULL COMMENT '选题申请 Search111',
    79. `xuantishenhe_yesno_text` longtext COMMENT '申请结果',
    80. `xuantishenhe_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    81. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    82. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    83. PRIMARY KEY (`id`)
    84. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='选题审核';
    85. CREATE TABLE `yonghu` (
    86. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    87. `yonghu_uuid_number` varchar(200) DEFAULT NULL COMMENT '学号',
    88. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    89. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    90. `yonghu_name` varchar(200) DEFAULT NULL COMMENT '学生名称 Search111 ',
    91. `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '学生手机号',
    92. `yonghu_photo` varchar(200) DEFAULT NULL COMMENT '学生头像',
    93. `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
    94. `yonghu_email` varchar(200) DEFAULT NULL COMMENT '学生邮箱',
    95. `yonghu_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    96. `yonghu_time` date DEFAULT NULL COMMENT '入职时间',
    97. `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    98. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    99. PRIMARY KEY (`id`)
    100. ) 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("/jiaoshi")
    11. public class JiaoshiController {
    12. private static final Logger logger = LoggerFactory.getLogger(JiaoshiController.class);
    13. private static final String TABLE_NAME = "jiaoshi";
    14. @Autowired
    15. private JiaoshiService jiaoshiService;
    16. @Autowired
    17. private TokenService tokenService;
    18. @Autowired
    19. private DictionaryService dictionaryService;//字典
    20. @Autowired
    21. private NewsService newsService;//公告信息
    22. @Autowired
    23. private XiangmuService xiangmuService;//项目申报
    24. @Autowired
    25. private XiangmujinduService xiangmujinduService;//项目进度
    26. @Autowired
    27. private XuantishenheService xuantishenheService;//选题审核
    28. @Autowired
    29. private YonghuService yonghuService;//学生
    30. @Autowired
    31. private UsersService usersService;//管理员
    32. /**
    33. * 后端列表
    34. */
    35. @RequestMapping("/page")
    36. public R page(@RequestParam Map params, HttpServletRequest request){
    37. logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    38. String role = String.valueOf(request.getSession().getAttribute("role"));
    39. if(false)
    40. return R.error(511,"永不会进入");
    41. else if("学生".equals(role))
    42. params.put("yonghuId",request.getSession().getAttribute("userId"));
    43. else if("指导教师".equals(role))
    44. params.put("jiaoshiId",request.getSession().getAttribute("userId"));
    45. params.put("jiaoshiDeleteStart",1);params.put("jiaoshiDeleteEnd",1);
    46. CommonUtil.checkMap(params);
    47. PageUtils page = jiaoshiService.queryPage(params);
    48. //字典表数据转换
    49. List list =(List)page.getList();
    50. for(JiaoshiView c:list){
    51. //修改对应字典表字段
    52. dictionaryService.dictionaryConvert(c, request);
    53. }
    54. return R.ok().put("data", page);
    55. }
    56. /**
    57. * 后端详情
    58. */
    59. @RequestMapping("/info/{id}")
    60. public R info(@PathVariable("id") Long id, HttpServletRequest request){
    61. logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    62. JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
    63. if(jiaoshi !=null){
    64. //entity转view
    65. JiaoshiView view = new JiaoshiView();
    66. BeanUtils.copyProperties( jiaoshi , view );//把实体数据重构到view中
    67. //修改对应字典表字段
    68. dictionaryService.dictionaryConvert(view, request);
    69. return R.ok().put("data", view);
    70. }else {
    71. return R.error(511,"查不到数据");
    72. }
    73. }
    74. /**
    75. * 后端保存
    76. */
    77. @RequestMapping("/save")
    78. public R save(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
    79. logger.debug("save方法:,,Controller:{},,jiaoshi:{}",this.getClass().getName(),jiaoshi.toString());
    80. String role = String.valueOf(request.getSession().getAttribute("role"));
    81. if(false)
    82. return R.error(511,"永远不会进入");
    83. Wrapper queryWrapper = new EntityWrapper()
    84. .eq("username", jiaoshi.getUsername())
    85. .or()
    86. .eq("jiaoshi_phone", jiaoshi.getJiaoshiPhone())
    87. .eq("jiaoshi_delete", 1)
    88. ;
    89. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    90. JiaoshiEntity jiaoshiEntity = jiaoshiService.selectOne(queryWrapper);
    91. if(jiaoshiEntity==null){
    92. jiaoshi.setJiaoshiDelete(1);
    93. jiaoshi.setInsertTime(new Date());
    94. jiaoshi.setCreateTime(new Date());
    95. jiaoshi.setPassword("123456");
    96. jiaoshiService.insert(jiaoshi);
    97. return R.ok();
    98. }else {
    99. return R.error(511,"账户或者教师手机号已经被使用");
    100. }
    101. }
    102. /**
    103. * 后端修改
    104. */
    105. @RequestMapping("/update")
    106. public R update(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
    107. logger.debug("update方法:,,Controller:{},,jiaoshi:{}",this.getClass().getName(),jiaoshi.toString());
    108. JiaoshiEntity oldJiaoshiEntity = jiaoshiService.selectById(jiaoshi.getId());//查询原先数据
    109. String role = String.valueOf(request.getSession().getAttribute("role"));
    110. // if(false)
    111. // return R.error(511,"永远不会进入");
    112. if("".equals(jiaoshi.getJiaoshiPhoto()) || "null".equals(jiaoshi.getJiaoshiPhoto())){
    113. jiaoshi.setJiaoshiPhoto(null);
    114. }
    115. jiaoshiService.updateById(jiaoshi);//根据id更新
    116. return R.ok();
    117. }
    118. /**
    119. * 删除
    120. */
    121. @RequestMapping("/delete")
    122. public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
    123. logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
    124. List oldJiaoshiList =jiaoshiService.selectBatchIds(Arrays.asList(ids));//要删除的数据
    125. ArrayList list = new ArrayList<>();
    126. for(Integer id:ids){
    127. JiaoshiEntity jiaoshiEntity = new JiaoshiEntity();
    128. jiaoshiEntity.setId(id);
    129. jiaoshiEntity.setJiaoshiDelete(2);
    130. list.add(jiaoshiEntity);
    131. }
    132. if(list != null && list.size() >0){
    133. jiaoshiService.updateBatchById(list);
    134. }
    135. return R.ok();
    136. }
    137. /**
    138. * 批量上传
    139. */
    140. @RequestMapping("/batchInsert")
    141. public R save( String fileName, HttpServletRequest request){
    142. logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
    143. Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
    144. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    145. //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
    146. try {
    147. List jiaoshiList = new ArrayList<>();//上传的东西
    148. Map> seachFields= new HashMap<>();//要查询的字段
    149. Date date = new Date();
    150. int lastIndexOf = fileName.lastIndexOf(".");
    151. if(lastIndexOf == -1){
    152. return R.error(511,"该文件没有后缀");
    153. }else{
    154. String suffix = fileName.substring(lastIndexOf);
    155. if(!".xls".equals(suffix)){
    156. return R.error(511,"只支持后缀为xls的excel文件");
    157. }else{
    158. URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
    159. File file = new File(resource.getFile());
    160. if(!file.exists()){
    161. return R.error(511,"找不到上传文件,请联系管理员");
    162. }else{
    163. List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
    164. dataList.remove(0);//删除第一行,因为第一行是提示
    165. for(List data:dataList){
    166. //循环
    167. JiaoshiEntity jiaoshiEntity = new JiaoshiEntity();
    168. jiaoshiList.add(jiaoshiEntity);
    169. //把要查询是否重复的字段放入map中
    170. //账户
    171. if(seachFields.containsKey("username")){
    172. List username = seachFields.get("username");
    173. username.add(data.get(0));//要改的
    174. }else{
    175. List username = new ArrayList<>();
    176. username.add(data.get(0));//要改的
    177. seachFields.put("username",username);
    178. }
    179. //教师手机号
    180. if(seachFields.containsKey("jiaoshiPhone")){
    181. List jiaoshiPhone = seachFields.get("jiaoshiPhone");
    182. jiaoshiPhone.add(data.get(0));//要改的
    183. }else{
    184. List jiaoshiPhone = new ArrayList<>();
    185. jiaoshiPhone.add(data.get(0));//要改的
    186. seachFields.put("jiaoshiPhone",jiaoshiPhone);
    187. }
    188. }
    189. //查询是否重复
    190. //账户
    191. List jiaoshiEntities_username = jiaoshiService.selectList(new EntityWrapper().in("username", seachFields.get("username")).eq("jiaoshi_delete", 1));
    192. if(jiaoshiEntities_username.size() >0 ){
    193. ArrayList repeatFields = new ArrayList<>();
    194. for(JiaoshiEntity s:jiaoshiEntities_username){
    195. repeatFields.add(s.getUsername());
    196. }
    197. return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
    198. }
    199. //教师手机号
    200. List jiaoshiEntities_jiaoshiPhone = jiaoshiService.selectList(new EntityWrapper().in("jiaoshi_phone", seachFields.get("jiaoshiPhone")).eq("jiaoshi_delete", 1));
    201. if(jiaoshiEntities_jiaoshiPhone.size() >0 ){
    202. ArrayList repeatFields = new ArrayList<>();
    203. for(JiaoshiEntity s:jiaoshiEntities_jiaoshiPhone){
    204. repeatFields.add(s.getJiaoshiPhone());
    205. }
    206. return R.error(511,"数据库的该表中的 [教师手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
    207. }
    208. jiaoshiService.insertBatch(jiaoshiList);
    209. return R.ok();
    210. }
    211. }
    212. }
    213. }catch (Exception e){
    214. e.printStackTrace();
    215. return R.error(511,"批量插入数据异常,请联系管理员");
    216. }
    217. }
    218. /**
    219. * 登录
    220. */
    221. @IgnoreAuth
    222. @RequestMapping(value = "/login")
    223. public R login(String username, String password, String captcha, HttpServletRequest request) {
    224. JiaoshiEntity jiaoshi = jiaoshiService.selectOne(new EntityWrapper().eq("username", username));
    225. if(jiaoshi==null || !jiaoshi.getPassword().equals(password))
    226. return R.error("账号或密码不正确");
    227. else if(jiaoshi.getJiaoshiDelete() != 1)
    228. return R.error("账户已被删除");
    229. String token = tokenService.generateToken(jiaoshi.getId(),username, "jiaoshi", "指导教师");
    230. R r = R.ok();
    231. r.put("token", token);
    232. r.put("role","指导教师");
    233. r.put("username",jiaoshi.getJiaoshiName());
    234. r.put("tableName","jiaoshi");
    235. r.put("userId",jiaoshi.getId());
    236. return r;
    237. }
    238. /**
    239. * 注册
    240. */
    241. @IgnoreAuth
    242. @PostMapping(value = "/register")
    243. public R register(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request) {
    244. // ValidatorUtils.validateEntity(user);
    245. Wrapper queryWrapper = new EntityWrapper()
    246. .eq("username", jiaoshi.getUsername())
    247. .or()
    248. .eq("jiaoshi_phone", jiaoshi.getJiaoshiPhone())
    249. .andNew()
    250. .eq("jiaoshi_delete", 1)
    251. ;
    252. JiaoshiEntity jiaoshiEntity = jiaoshiService.selectOne(queryWrapper);
    253. if(jiaoshiEntity != null)
    254. return R.error("账户或者教师手机号已经被使用");
    255. jiaoshi.setJiaoshiDelete(1);
    256. jiaoshi.setInsertTime(new Date());
    257. jiaoshi.setCreateTime(new Date());
    258. jiaoshiService.insert(jiaoshi);
    259. return R.ok();
    260. }
    261. /**
    262. * 重置密码
    263. */
    264. @GetMapping(value = "/resetPassword")
    265. public R resetPassword(Integer id, HttpServletRequest request) {
    266. JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
    267. jiaoshi.setPassword("123456");
    268. jiaoshiService.updateById(jiaoshi);
    269. return R.ok();
    270. }
    271. /**
    272. * 修改密码
    273. */
    274. @GetMapping(value = "/updatePassword")
    275. public R updatePassword(String oldPassword, String newPassword, HttpServletRequest request) {
    276. JiaoshiEntity jiaoshi = jiaoshiService.selectById((Integer)request.getSession().getAttribute("userId"));
    277. if(newPassword == null){
    278. return R.error("新密码不能为空") ;
    279. }
    280. if(!oldPassword.equals(jiaoshi.getPassword())){
    281. return R.error("原密码输入错误");
    282. }
    283. if(newPassword.equals(jiaoshi.getPassword())){
    284. return R.error("新密码不能和原密码一致") ;
    285. }
    286. jiaoshi.setPassword(newPassword);
    287. jiaoshiService.updateById(jiaoshi);
    288. return R.ok();
    289. }
    290. /**
    291. * 忘记密码
    292. */
    293. @IgnoreAuth
    294. @RequestMapping(value = "/resetPass")
    295. public R resetPass(String username, HttpServletRequest request) {
    296. JiaoshiEntity jiaoshi = jiaoshiService.selectOne(new EntityWrapper().eq("username", username));
    297. if(jiaoshi!=null){
    298. jiaoshi.setPassword("123456");
    299. jiaoshiService.updateById(jiaoshi);
    300. return R.ok();
    301. }else{
    302. return R.error("账号不存在");
    303. }
    304. }
    305. /**
    306. * 获取用户的session用户信息
    307. */
    308. @RequestMapping("/session")
    309. public R getCurrJiaoshi(HttpServletRequest request){
    310. Integer id = (Integer)request.getSession().getAttribute("userId");
    311. JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
    312. if(jiaoshi !=null){
    313. //entity转view
    314. JiaoshiView view = new JiaoshiView();
    315. BeanUtils.copyProperties( jiaoshi , view );//把实体数据重构到view中
    316. //修改对应字典表字段
    317. dictionaryService.dictionaryConvert(view, request);
    318. return R.ok().put("data", view);
    319. }else {
    320. return R.error(511,"查不到数据");
    321. }
    322. }
    323. /**
    324. * 退出
    325. */
    326. @GetMapping(value = "logout")
    327. public R logout(HttpServletRequest request) {
    328. request.getSession().invalidate();
    329. return R.ok("退出成功");
    330. }
    331. }

    7.2 教师Service

    1. package com.service;
    2. import com.baomidou.mybatisplus.service.IService;
    3. import com.utils.PageUtils;
    4. import com.entity.JiaoshiEntity;
    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 JiaoshiService extends IService {
    13. /**
    14. * @param params 查询参数
    15. * @return 带分页的查询出来的数据
    16. */
    17. PageUtils queryPage(Map params);
    18. }

    7.3 教师ServiceImpl

    1. package com.service.impl;
    2. import com.utils.StringUtil;
    3. import com.service.DictionaryService;
    4. import com.utils.ClazzDiff;
    5. import org.springframework.beans.BeanUtils;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.stereotype.Service;
    8. import java.lang.reflect.Field;
    9. import java.util.*;
    10. import com.baomidou.mybatisplus.plugins.Page;
    11. import com.baomidou.mybatisplus.service.impl.ServiceImpl;
    12. import org.springframework.transaction.annotation.Transactional;
    13. import com.utils.PageUtils;
    14. import com.utils.Query;
    15. import org.springframework.web.context.ContextLoader;
    16. import javax.servlet.ServletContext;
    17. import javax.servlet.http.HttpServletRequest;
    18. import org.springframework.lang.Nullable;
    19. import org.springframework.util.Assert;
    20. import com.dao.JiaoshiDao;
    21. import com.entity.JiaoshiEntity;
    22. import com.service.JiaoshiService;
    23. import com.entity.view.JiaoshiView;
    24. /**
    25. * 指导教师 服务实现类
    26. */
    27. @Service("jiaoshiService")
    28. @Transactional
    29. public class JiaoshiServiceImpl extends ServiceImpl implements JiaoshiService {
    30. @Override
    31. public PageUtils queryPage(Map params) {
    32. Page page =new Query(params).getPage();
    33. page.setRecords(baseMapper.selectListView(page,params));
    34. return new PageUtils(page);
    35. }
    36. }

    7.4 教师DAO

    1. package com.dao;
    2. import com.entity.JiaoshiEntity;
    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.JiaoshiView;
    9. /**
    10. * 指导教师 Dao 接口
    11. *
    12. * @author
    13. */
    14. public interface JiaoshiDao extends BaseMapper {
    15. List selectListView(Pagination page,@Param("params")Map params);
    16. }

    8.参考文档

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

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

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

  • 相关阅读:
    上6休3上3休2……这烧脑的调休安排,国内外AI都算不明白,集体大“翻车”!...
    CesiumJS 2022^ 原理[4] - 最复杂的地球皮肤 影像与地形的渲染与下载过程
    王道 第二章物理层
    【UCIe】UCIe Runtime Link Test Using Parity
    程序员越老越容易失业?码农的出路到底在哪里
    【开发小记】vue项目打包可视化
    字符串常量池-StringTable
    小红书怎么推广引流?怎么样在小红书上引流?
    Zookeeper经典应用场景实战(一)
    全同态加密:CKKS
  • 原文地址:https://blog.csdn.net/weixin_51966461/article/details/134084762