Java?實(shí)戰(zhàn)項(xiàng)目之學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)流程
一、項(xiàng)目簡述
功能包括: 用戶的登錄注冊,學(xué)生信息管理,教師信息管理,班級信 息管理,采用mvcx項(xiàng)目架構(gòu),覆蓋增刪改查,包括學(xué)生, 教幣班級的信息導(dǎo)出上傳導(dǎo)入等等功能。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + maven等等。
用戶信息管理控制器:
/** * 用戶管理控制器 */ @RequestMapping("/user/") @Controller public class UserController { @Autowired private IUserService userService; @Autowired private IRoleService roleService; @Resource private ProcessEngineConfiguration configuration; @Resource private ProcessEngine engine; @GetMapping("/index") @ApiOperation("跳轉(zhuǎn)用戶頁接口") @PreAuthorize("hasRole('管理員')") public String index(String menuid,Model model){ List<Role> roles = queryAllRole(); model.addAttribute("roles",roles); model.addAttribute("menuid",menuid); //用戶首頁 return "views/user/user_list"; } @GetMapping("/listpage") @ApiOperation("查詢用戶分頁數(shù)據(jù)接口") @ApiImplicitParams({ @ApiImplicitParam(name = "UserQuery", value = "用戶查詢對象", defaultValue = "userQuery對象") }) @ResponseBody @PreAuthorize("hasRole('管理員')") public PageList listpage(UserQuery userQuery){ return userService.listpage(userQuery); } //添加用戶 @PostMapping("/addUser") @ApiOperation("添加用戶接口") @ResponseBody public Map<String,Object> addUser(User user){ Map<String, Object> ret = new HashMap<>(); ret.put("code",-1); if(StringUtils.isEmpty(user.getUsername())){ ret.put("msg","請?zhí)顚懹脩裘?); return ret; } if(StringUtils.isEmpty(user.getPassword())){ ret.put("msg","請?zhí)顚懨艽a"); return ret; } if(StringUtils.isEmpty(user.getEmail())){ ret.put("msg","請?zhí)顚戉]箱"); return ret; } if(StringUtils.isEmpty(user.getTel())){ ret.put("msg","請?zhí)顚懯謾C(jī)號"); return ret; } if(StringUtils.isEmpty(user.getHeadImg())){ ret.put("msg","請上傳頭像"); return ret; } if(userService.addUser(user)<=0) { ret.put("msg", "添加用戶失敗"); return ret; } ret.put("code",0); ret.put("msg","添加用戶成功"); return ret; } /** * 修改用戶信息操作 * @param user * @return */ @PostMapping("/editSaveUser") @ApiOperation("修改用戶接口") @PreAuthorize("hasRole('管理員')") @ResponseBody public Message editSaveUser(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("請?zhí)顚懹脩裘?); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("請?zhí)顚戉]箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("請?zhí)顚懯謾C(jī)號"); } try { userService.editSaveUser(user); return Message.success(); } catch (Exception e) { e.printStackTrace(); return Message.error("修改用戶信息失敗"); } } //添加用戶 @GetMapping("/deleteUser") @ApiOperation("刪除用戶接口") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "如:88",required = true) }) @PreAuthorize("hasRole('管理員')") @ResponseBody public AjaxResult deleteUser(@RequestParam(required = true) Long id){ AjaxResult ajaxResult = new AjaxResult(); try { userService.deleteUser(id); } catch (Exception e) { e.printStackTrace(); return new AjaxResult("刪除失敗"); } return ajaxResult; } @PostMapping(value="/deleteBatchUser") @ApiOperation("批量刪除用戶接口") @PreAuthorize("hasRole('管理員')") @ResponseBody public AjaxResult deleteBatchUser(String ids){ String[] idsArr = ids.split(","); List list = new ArrayList(); for(int i=0;i<idsArr.length;i++){ list.add(idsArr[i]); } try{ userService.batchRemove(list); return new AjaxResult(); }catch(Exception e){ return new AjaxResult("批量刪除失敗"); } } //查詢所有角色 public List<Role> queryAllRole(){ return roleService.queryAll(); } //添加用戶的角色 @PostMapping("/addUserRole") @ApiOperation("添加用戶角色接口") @ApiImplicitParams({ @ApiImplicitParam(name = "paramMap", value = "如:{userId:1,[1,2,3,4]]}") }) @ResponseBody public AjaxResult addUserRole(@RequestBody Map paramMap){ AjaxResult ajaxResult = new AjaxResult(); String userId = (String)paramMap.get("userId"); List roleIds = (List) paramMap.get("roleIds"); try { //添加用戶對應(yīng)的角色 roleService.addUserRole(userId,roleIds); return ajaxResult; }catch (Exception e){ e.printStackTrace(); return new AjaxResult("保存角色失敗"); } } //添加用戶 @RequestMapping("/regSaveUser") @ResponseBody public Long addTeacher(User user){ System.out.println("保存用戶...."+user); userService.addUser(user); //保存工作流程操作 IdentityService is = engine.getIdentityService(); // 添加用戶組 org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername()); // 添加用戶對應(yīng)的組關(guān)系 Group stuGroup = new GroupEntityImpl(); stuGroup.setId("stuGroup"); Group tGroup = new GroupEntityImpl(); tGroup.setId("tGroup"); if(user.getType() == 2) { //保存老師組 userService.saveRel(is, userInfo, tGroup); } if(user.getType() == 3) { //保存學(xué)生組 userService.saveRel(is, userInfo, stuGroup); } Long userId = user.getId(); return userId; } /** * 修改密碼頁面 * @return */ @RequestMapping(value="/update_pwd",method=RequestMethod.GET) public String updatePwd(){ return "views/user/update_pwd"; } /** * 修改密碼操作 * @param oldPwd * @param newPwd * @return */ @ResponseBody @PostMapping("/update_pwd") public Message updatePassword(@RequestParam(name="oldPwd",required=true)String oldPwd, @RequestParam(name="newPwd",required=true)String newPwd){ String username = CommonUtils.getLoginUser().getUsername(); User userByUserName = userService.findUserByUserName(username); if(userByUserName!=null){ String password = userByUserName.getPassword(); BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(); boolean matches = bCryptPasswordEncoder.matches(oldPwd, password); if(!matches){ return Message.error("舊密碼不正確");//true } userByUserName.setPassword(bCryptPasswordEncoder.encode(newPwd)); if(userService.editUserPassword(userByUserName)<=0){ return Message.error("密碼修改失敗"); } } return Message.success(); } /** * 清除緩存 * @param request * @param response * @return */ @ResponseBody @PostMapping("/clear_cache") public Message clearCache(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Cache-Control","no-store"); response.setHeader("Pragrma","no-cache"); response.setDateHeader("Expires",0); return Message.success(); } }
教師管理接口控制器:
@RequestMapping("/teacher") @Controller @Api(tags = "教師管理接口") public class TeacherController { @Autowired private IUserService userService; @Autowired private IClassesService classesService; @Resource private ProcessEngine engine; @Autowired private IOperaterLogService operaterLogService; //老師列表 @RequestMapping("/index") public String index(Model model){ //用戶首頁 model.addAttribute("classes",classesService.queryAll()); return "views/teacher/teacher_list"; } @RequestMapping("/listpage") @ResponseBody public PageList listpage(UserQuery userQuery){ userQuery.setType(2L);//2表示老師 return userService.listpage(userQuery); } /** * 添加教師操作 * @param user * @return */ @PostMapping("/addTeacher") @ApiOperation("添加教師接口") @ResponseBody @PreAuthorize("hasRole('管理員')") public Message addTeacher(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("請?zhí)顚懹脩裘?); } if(StringUtils.isEmpty(user.getPassword())){ return Message.error("請?zhí)顚懨艽a"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("請?zhí)顚戉]箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("請?zhí)顚懯謾C(jī)號"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ return Message.error("用戶名已存在"); } user.setType(2); if(userService.addUser(user)<=0){ return Message.error("教師添加失敗"); } //保存工作流程操作 IdentityService is = engine.getIdentityService(); // 添加用戶組 org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername()); Group tGroup = new GroupEntityImpl(); tGroup.setId("tGroup"); userService.saveRel(is, userInfo, tGroup); operaterLogService.add("添加教師成功,教師名稱:"+user.getUsername()); return Message.success(); } /** * 修改教師操作 * @param user * @return */ @PostMapping("/editSaveStu") @ApiOperation("修改教師接口") @PreAuthorize("hasRole('管理員')") @ResponseBody public Message editSaveStu(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("請?zhí)顚懹脩裘?); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("請?zhí)顚戉]箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("請?zhí)顚懯謾C(jī)號"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ if(!userByUserName.getId().equals(user.getId())){ return Message.error("該用戶名已存在"); } } try { userService.editSaveUser(user); operaterLogService.add("編輯教師成功,教師名稱:"+user.getUsername()); return Message.success(); } catch (Exception e) { e.printStackTrace(); return Message.error("教師信息編輯失敗"); } } }
學(xué)生管理接口控制器:
@RequestMapping("/student") @Controller @Api(tags = "學(xué)生管理接口") public class StudentController { @Autowired private IUserService userService; @Autowired private ICourseService courseService; @Autowired private IClassesService classesService; @Resource private ProcessEngine engine; @Autowired private IOperaterLogService operaterLogService; //老師列表 //后臺查詢學(xué)生列表 @RequestMapping("/index") public String index(Model model){ //用戶首頁 model.addAttribute("courses",courseService.queryAll()); model.addAttribute("classes",classesService.queryAll()); return "views/student/student_list"; } @RequestMapping("/listpage") @ResponseBody public PageList listpage(UserQuery userQuery){ userQuery.setType(3L);//2表示老學(xué)生 return userService.listpage(userQuery); } /** * 添加學(xué)生操作 * @param user * @return */ @PostMapping("/addSaveStu") @ApiOperation("添加學(xué)生接口") @PreAuthorize("hasRole('管理員')") @ResponseBody public Message addSaveStudent(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("請?zhí)顚懹脩裘?); } if(StringUtils.isEmpty(user.getPassword())){ return Message.error("請?zhí)顚懨艽a"); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("請?zhí)顚戉]箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("請?zhí)顚懯謾C(jī)號"); } if(StringUtils.isEmpty(user.getStunum())){ return Message.error("請?zhí)顚憣W(xué)號"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ return Message.error("用戶名已存在"); } if(userService.findByStuNum(user.getStunum())!=null){ return Message.error("該學(xué)號已存在"); } user.setType(3); if(userService.addUser(user)<=0){ return Message.error("學(xué)生添加失敗"); } //保存工作流程操作 IdentityService is = engine.getIdentityService(); // 添加用戶組 org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername()); // 添加用戶對應(yīng)的組關(guān)系 Group stuGroup = new GroupEntityImpl(); stuGroup.setId("stuGroup"); userService.saveRel(is, userInfo, stuGroup); operaterLogService.add("添加學(xué)生成功,學(xué)生名稱:"+user.getUsername()); return Message.success(); } //修改用戶editSaveUser @PostMapping("/editSaveStu") @ApiOperation("修改學(xué)生接口") @PreAuthorize("hasRole('管理員')") @ResponseBody public Message editSaveStu(User user){ if(StringUtils.isEmpty(user.getUsername())){ return Message.error("請?zhí)顚懹脩裘?); } if(StringUtils.isEmpty(user.getEmail())){ return Message.error("請?zhí)顚戉]箱"); } if(StringUtils.isEmpty(user.getTel())){ return Message.error("請?zhí)顚懯謾C(jī)號"); } User userByUserName = userService.findUserByUserName(user.getUsername()); if(userByUserName!=null){ if(!userByUserName.getId().equals(user.getId())){ return Message.error("該用戶名已存在"); } } try { userService.editSaveUser(user); operaterLogService.add("編輯學(xué)生成功,學(xué)生名稱:"+user.getUsername()); return Message.success(); } catch (Exception e) { e.printStackTrace(); return Message.error("學(xué)生編輯失敗"); } } //editSaveStuXk @PostMapping("/editSaveStuXk") @ApiOperation("修改用戶接口") @ApiImplicitParams({ @ApiImplicitParam(name = "User", value = "學(xué)生選課") }) @ResponseBody public AjaxResult editSaveStuXk(User user){ try { userService.editSaveXk(user); operaterLogService.add("修改學(xué)生選課成功,學(xué)生名稱:"+user.getUsername()); return new AjaxResult(); } catch (Exception e) { e.printStackTrace(); } return new AjaxResult("修改失敗"); } }
到此這篇關(guān)于Java 實(shí)戰(zhàn)項(xiàng)目之學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)流程的文章就介紹到這了,更多相關(guān)Java 學(xué)生信息管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設(shè)計實(shí)戰(zhàn)項(xiàng)目之寵物商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計實(shí)戰(zhàn)項(xiàng)目之倉庫管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)戰(zhàn)項(xiàng)目練習(xí)之球館在線預(yù)約系統(tǒng)的實(shí)現(xiàn)
- Java?實(shí)戰(zhàn)項(xiàng)目之家政服務(wù)平臺系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)例項(xiàng)目零錢通的實(shí)現(xiàn)流程
相關(guān)文章
java實(shí)現(xiàn)停車場管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼
本篇文章主要介紹了Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08SpringBoot2 整合MinIO中間件實(shí)現(xiàn)文件便捷管理功能
這篇文章主要介紹了SpringBoot2 整合MinIO中間件,實(shí)現(xiàn)文件便捷管理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Spring核心容器之ApplicationContext上下文啟動準(zhǔn)備詳解
這篇文章主要介紹了Spring核心容器之ApplicationContext上下文啟動準(zhǔn)備詳解,ApplicationContext 繼承自 BeanFactory ,其不僅包含 BeanFactory 所有功能,還擴(kuò)展了容器功能,需要的朋友可以參考下2023-11-11