Java實(shí)戰(zhàn)之火車票預(yù)訂系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目運(yùn)行
環(huán)境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項(xiàng)目技術(shù):
JSP + Servlert + html+ css + JavaScript + JQuery + Ajax 等等;
二、效果圖
三、核心代碼
個(gè)人中心Controller
/** * 個(gè)人中心Controller */ @Controller public class UserInforController { @Autowired private UserInforServiceImpl userInforService = null; /** * 修改密碼操作 * @param oldPassword * @param newPassword * @param rePassword * @param httpSession * @return */ @RequestMapping("changePassword.do") @ResponseBody public Map<String, String> changePassword(String oldPassword, String newPassword, String rePassword, HttpSession httpSession){ HashMap<String, String> map = new HashMap<String, String>(); if (newPassword.equals(rePassword)){ SystemManager admin = (SystemManager) httpSession.getAttribute("admin"); String encodeByMD5 = MD5Utils.encodeByMD5(oldPassword); if (encodeByMD5.equals(admin.getSmPassword())){ String newPasswords = MD5Utils.encodeByMD5(newPassword); admin.setSmPassword(newPasswords); userInforService.updateSystemManagePassword(admin.getSmId(),admin); map.put("type","success"); map.put("msg","密碼修改成功"); return map; }else{ map.put("type","error"); map.put("msg","原密碼錯(cuò)誤"); return map; } }else{ map.put("type","error"); map.put("msg","兩次密碼不一致"); return map; } } /** * 員工修改個(gè)人密碼 * @param oldPassword * @param newPassword * @param rePassword * @param httpSession * @return */ @RequestMapping("changeEmployeePassword.do") @ResponseBody public Map<String, String> changeEmployeePassword(String oldPassword, String newPassword, String rePassword, HttpSession httpSession){ HashMap<String, String> map = new HashMap<String, String>(); if (newPassword.equals(rePassword)){ Integer eid = (Integer) httpSession.getAttribute("employeeId"); try { userInforService.updateEmployeePassword(eid, oldPassword, newPassword); map.put("type","success"); map.put("msg","密碼修改成功"); return map; } catch (CustomException e) { map.put("type","error"); map.put("msg","原密碼錯(cuò)誤"); return map; } }else{ map.put("type","error"); map.put("msg","兩次密碼不一致"); return map; } } /** * 查看個(gè)人信息 * @param httpSession * @return */ @RequestMapping("inforEmployee.do") public @ResponseBody EmployeeCustomVo getInforEmployee(HttpSession httpSession){ Integer id = (Integer) httpSession.getAttribute("employeeId"); EmployeeCustomVo employeeCustomVo = userInforService.getInforEmployee(id); return employeeCustomVo; } /** * 修改個(gè)人信息 * @param httpSession * @param employee * @return */ @ResponseBody @RequestMapping("updateInforEmployee.do") public Message updateInforEmployee(HttpSession httpSession, Employee employee){ Integer id = (Integer) httpSession.getAttribute("employeeId"); employee.seteId(id); if(userInforService.updateEmploueeById(id,employee)<=0) { return Message.error("修改信息失敗"); } return Message.success(); } /** * 個(gè)人工資信息 * @param pageNum * @param limit * @param year * @param httpSession * @return * @throws Exception */ @RequestMapping("employeeSalaryList.do") @ResponseBody public EmployeeSalaryVO findSelective( @RequestParam(value="page", defaultValue="1")int pageNum, @RequestParam(value="limit", defaultValue="10") int limit, @RequestParam(value="year", defaultValue="1") String year, HttpSession httpSession) throws Exception { Integer eId = (Integer) httpSession.getAttribute("employeeId"); //pageNum:起始頁(yè)面 pageSize:每頁(yè)的大小 PageHelper.startPage(pageNum,limit); //查找條件,一定要緊跟在startPage后 List<Salary> salaryList = userInforService.getEmployeeSalaryList(eId, year); PageInfo pageResult = new PageInfo(salaryList); //設(shè)置前臺(tái)需要的數(shù)據(jù) EmployeeSalaryVO employeeSalaryVO = new EmployeeSalaryVO(); employeeSalaryVO.setCode(0); employeeSalaryVO.setMsg(""); employeeSalaryVO.setCount((int) pageResult.getTotal()); employeeSalaryVO.setData(pageResult.getList()); return employeeSalaryVO; } }
管理員和員工登陸控制
/** * @Author: admin * @Description: 管理員和員工登陸控制 **/ @Controller public class LoginController { @Autowired private LoginServiceImpl loginService = null; /** * @Author: admin * @Description: 驗(yàn)證碼變更 * @Date: 14:33 2021/10/5 * @Param: [request, response] * @Return: void **/ @RequestMapping(value = "/changeCode.do") @ResponseBody public void getIdentifyingCode(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 驗(yàn)證碼存儲(chǔ)在session的identifyingCode,屬性中 CaptchaUtil.outputCaptcha(request, response); } // 獲取員工登陸界面 @RequestMapping("/") public String getLoginPage(){ return "employee/login.html"; } // 獲取管理員登陸界面 @RequestMapping("/admin.do") public String getAdminLoginPage(HttpServletRequest request){ String realPath = request.getServletContext().getRealPath("/"); request.getSession().setAttribute("realPath", realPath); return "admin/adminLogin.html"; } /** * 員工登錄操作 * @param model * @param httpSession * @param username * @param password * @param identifyingcode * @return */ @RequestMapping(value = "/employeeLogin.do") @ResponseBody public Message employeeLogin(HttpSession httpSession, String username, String password, String identifyingcode) { if(StringUtils.isEmpty(username)) { return Message.error("請(qǐng)?zhí)顚懝ぬ?hào)"); } if(StringUtils.isEmpty(password)) { return Message.error("請(qǐng)?zhí)顚懨艽a"); } if(StringUtils.isEmpty(identifyingcode)) { return Message.error("請(qǐng)?zhí)顚戲?yàn)證碼"); } String code = (String) httpSession.getAttribute("identifyingCode"); if(!identifyingcode.equalsIgnoreCase(code)){ return Message.error("驗(yàn)證碼錯(cuò)誤"); } Employee employee = loginService.findEmployeeByIdAndPassword(username, password); if(employee==null) { return Message.error("工號(hào)或密碼錯(cuò)誤"); } httpSession.setAttribute("employeeId",employee.geteId()); return Message.success("員工登錄成功"); } @RequestMapping(value = "/loginSuccess.do") public String loginSucceses(Model model) throws Exception { return "employee/index.html"; } /** * 管理員登錄操作 * @param model * @param httpSession * @param username * @param password * @param identifyingcode * @return */ @RequestMapping(value = "/adminLogin.do") @ResponseBody public Message adminLogin(HttpSession httpSession, String username, String password, String identifyingcode) { if(StringUtils.isEmpty(username)) { return Message.error("請(qǐng)?zhí)顚戀~號(hào)"); } if(StringUtils.isEmpty(password)) { return Message.error("請(qǐng)?zhí)顚懨艽a"); } if(StringUtils.isEmpty(identifyingcode)) { return Message.error("請(qǐng)?zhí)顚戲?yàn)證碼"); } String code = (String) httpSession.getAttribute("identifyingCode"); if(identifyingcode.equalsIgnoreCase(code)){ SystemManager manager = loginService.findSystemManagerByIdAndPassword(username, password); if(manager==null) { return Message.error("賬號(hào)或密碼錯(cuò)誤"); } // 保存到session httpSession.setAttribute("admin",manager); return Message.success("登錄成功"); }else { return Message.error("驗(yàn)證碼錯(cuò)誤"); } } @RequestMapping(value = "/getAdminAccount.do") @ResponseBody public String getAdminAccount(HttpSession httpSession){ SystemManager systemManager = (SystemManager) httpSession.getAttribute("admin"); // SystemManager manager = loginService.findSystemManagerById(id); return systemManager.getSmAccount(); } @RequestMapping(value = "/getEmployeeAccount.do") @ResponseBody public Map<String,String> getEmployeeAccount(HttpSession httpSession){ Integer id = (Integer) httpSession.getAttribute("employeeId"); Employee employee = loginService.findEmployeeById(id); HashMap<String, String> map = new HashMap<String, String>(); map.put("account",employee.geteAccount()); map.put("name",employee.geteName()); return map; } @RequestMapping(value = "/logout.do") public String logout(HttpSession httpSession){ httpSession.removeAttribute("employeeId"); return "redirect:/"; } @RequestMapping(value = "/logoutAdmin.do") public String logoutAdmin(HttpSession httpSession){ httpSession.removeAttribute("admin"); return "redirect:/admin.do"; } }
用戶管理操作
/** * 用戶管理操作 */ @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; /** * 用戶添加頁(yè)面 * @return */ @GetMapping("/add") public String create() { return "user/add"; } /** * 用戶添加操作 * @param user * @return */ @PostMapping("/add") @ResponseBody public Map<String, Object> add(@RequestBody User user) { if(StringUtils.isEmpty(user.getUserName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懹脩裘?).getMap(); } if(StringUtils.isEmpty(user.getName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨Q").getMap(); } if(StringUtils.isEmpty(user.getUserPwd())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨艽a").getMap(); } int result = userService.create(user); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 根據(jù)id刪除 * @param id * @return */ @PostMapping("/delete/{id}") @ResponseBody public Map<String, Object> delete(@PathVariable("id") Integer id) { int result = userService.delete(id); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } //批量刪除 @PostMapping("/delete") @ResponseBody public Map<String, Object> delete(String ids) { int result = userService.delete(ids); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 編輯用戶信息操作 * @param user * @return */ @PostMapping("/edit") @ResponseBody public Map<String, Object> edit(@RequestBody User user) { if(StringUtils.isEmpty(user.getUserName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懹脩裘?).getMap(); } if(StringUtils.isEmpty(user.getName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨Q").getMap(); } if(StringUtils.isEmpty(user.getUserPwd())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨艽a").getMap(); } int result = userService.update(user); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 根據(jù)id查詢,跳轉(zhuǎn)修改頁(yè)面 * @param id * @param modelMap * @return */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap modelMap) { User user = userService.detail(id); modelMap.addAttribute("user", user); return "user/edit"; } //查詢所有 @PostMapping("/query") @ResponseBody public Map<String, Object> query(@RequestBody User user) { List<User> list = userService.query(user); Integer count = userService.count(user); return MapControl.getInstance().success().page(list, count).getMap(); } //跳轉(zhuǎn)列表頁(yè)面 @GetMapping("/list") public String list() { return "user/list"; } }
以上就是Java實(shí)戰(zhàn)之火車票預(yù)訂系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java火車票預(yù)訂系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
生產(chǎn)者消費(fèi)者模型ThreadLocal原理及實(shí)例詳解
這篇文章主要介紹了生產(chǎn)者消費(fèi)者模型ThreadLocal原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09手?jǐn)]一個(gè)Spring?Boot?Starter并上傳到Maven中央倉(cāng)庫(kù)
本文主要介紹了手?jǐn)]一個(gè)Spring?Boot?Starter并上傳到Maven中央倉(cāng)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Java實(shí)現(xiàn)文件上傳至服務(wù)器的方法
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件上傳至服務(wù)器的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Java實(shí)戰(zhàn)之王者榮耀的英雄是怎么產(chǎn)生的?
這篇文章主要介紹了Java實(shí)戰(zhàn)之王者榮耀的英雄是怎么產(chǎn)生的?文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05Spring Boot Actuator監(jiān)控端點(diǎn)小結(jié)
這篇文章主要介紹了Spring Boot Actuator監(jiān)控端點(diǎn)小結(jié),需要的朋友可以參考下2017-06-06使用BigDecimal去掉小數(shù)點(diǎn)后無(wú)用的0
這篇文章主要介紹了使用BigDecimal去掉小數(shù)點(diǎn)后無(wú)用的0操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08