Java|Java 实战交易平台项目之宠物在线商城系统
该系统分为前台和后台,前台可以自主注册,后台管理员角色,除基础脚手架外,实现的功能有:
后台管理员功能有:商品分类管理、商品管理、套餐管理、新闻分类管理、新闻管理、常见问题、关于我们、团队管理、订单查看和前台用户查看等功能。 前台用户功能有:注册登录、查看商品、购物车、支付订单、评价、照片库、新闻列表、个人中心、购买套餐等功能。
运行环境:windows/Linux均可、jdk1.8、mysql5.7、maven3.5\maven3.6、idea/eclipse均可。
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
系统控制器代码:
/** * 系统控制器 * @author Admin * */@RequestMapping("/system")@Controllerpublic class SystemController { @Autowired private OperaterLogService operaterLogService; @Autowired private UserService userService; @Autowired private DatabaseBakService databaseBakService; @Autowired private StaffService staffService; @Autowired private OrderAuthService orderAuthService; private Logger log = LoggerFactory.getLogger(SystemController.class); /*** 登录页面* @param model* @return*/ @RequestMapping(value="https://www.it610.com/login",method=RequestMethod.GET) public String login(Model model){model.addAttribute("loginTypes", LoginType.values()); return "admin/system/login"; } /*** 用户登录提交表单处理方法* @param request* @param cpacha* @return*/ @RequestMapping(value="https://www.it610.com/login",method=RequestMethod.POST) @ResponseBody public Resultlogin(HttpServletRequest request,String username,String password,String cpacha,Integer type){if(StringUtils.isEmpty(username)){return Result.error(CodeMsg.ADMIN_USERNAME_EMPTY); }if(StringUtils.isEmpty(password)){return Result.error(CodeMsg.ADMIN_PASSWORD_EMPTY); } //表示实体信息合法,开始验证验证码是否为空if(StringUtils.isEmpty(cpacha)){return Result.error(CodeMsg.CPACHA_EMPTY); }//说明验证码不为空,从session里获取验证码Object attribute = request.getSession().getAttribute("admin_login"); if(attribute == null){return Result.error(CodeMsg.SESSION_EXPIRED); }//表示session未失效,进一步判断用户填写的验证码是否正确if(!cpacha.equalsIgnoreCase(attribute.toString())){return Result.error(CodeMsg.CPACHA_ERROR); } if(type == LoginType.ADMINISTRATOR.getCode()){//表示验证码正确,开始查询数据库,检验密码是否正确User findByUsername = userService.findByUsername(username); //判断是否为空if(findByUsername == null){return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST); }//表示用户存在,进一步对比密码是否正确if(!findByUsername.getPassword().equals(password)){return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR); }//表示密码正确,接下来判断用户状态是否可用if(findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_UNABLE); }//检查用户所属角色状态是否可用if(findByUsername.getRole() == null || findByUsername.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE); }//检查用户所属角色的权限是否存在if(findByUsername.getRole().getAuthorities() == null || findByUsername.getRole().getAuthorities().size() == 0){return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY); }//检查一切符合,可以登录,将用户信息存放至sessionrequest.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername); request.getSession().setAttribute("loginType",type); //销毁session中的验证码request.getSession().setAttribute("admin_login", null); //将登陆记录写入日志库operaterLogService.add("用户【"+username+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!"); log.info("用户成功登录,user = " + findByUsername); }else{Staff byJobNumber = staffService.findByNameAndIsStatus(username); //判断是否为空if(byJobNumber == null){return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST); } //表示用户存在,进一步对比密码是否正确if(!byJobNumber.getPassword().equals(password)){return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR); } //检查用户所属角色状态是否可用if(byJobNumber.getRole() == null || byJobNumber.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE); } //检查用户所属角色的权限是否存在if(byJobNumber.getRole().getAuthorities() == null || byJobNumber.getRole().getAuthorities().size() == 0){return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY); }//检查一切符合,可以登录,将用户信息存放至sessionrequest.getSession().setAttribute(SessionConstant.SESSION_STAFF_LOGIN_KEY, byJobNumber); request.getSession().setAttribute("loginType",type); //销毁session中的验证码request.getSession().setAttribute("admin_login", null); //将登陆记录写入日志库operaterLogService.add("用户【"+username+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!"); log.info("员工成功登录,user = " + byJobNumber); } return Result.success(true); } /*** 登录成功后的系统主页* @param model* @return*/ @RequestMapping(value="https://www.it610.com/index") public String index(Model model){model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10)); model.addAttribute("userTotal", userService.total()); model.addAttribute("operatorLogTotal", operaterLogService.total()); model.addAttribute("databaseBackupTotal", databaseBakService.total()); model.addAttribute("onlineUserTotal", SessionListener.onlineUserCount); return "admin/system/index"; } /*** 注销登录* @return*/ @RequestMapping(value="https://www.it610.com/logout") public String logout(){Integer loginType = (Integer) SessionUtil.get("loginType"); if(loginType == LoginType.ADMINISTRATOR.getCode()){User loginedUser = SessionUtil.getLoginedUser(); if(loginedUser != null){SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, null); }}else if(loginType == LoginType.STAFF.getCode()){Staff loginedStaff = SessionUtil.getLoginedStaff(); if(loginedStaff != null){SessionUtil.set(SessionConstant.SESSION_STAFF_LOGIN_KEY,null); }}return "redirect:login"; } /*** 无权限提示页面* @return*/ @RequestMapping(value="https://www.it610.com/no_right") public String noRight(){return "admin/system/no_right"; } /*** 修改用户个人信息* @return*/ @RequestMapping(value="https://www.it610.com/update_userinfo",method=RequestMethod.GET) public String updateUserInfo(){return "admin/system/update_userinfo"; } /*** 修改个人信息保存* @param user* @return*/ @RequestMapping(value="https://www.it610.com/update_userinfo",method=RequestMethod.POST) public String updateUserInfo(User user){User loginedUser = SessionUtil.getLoginedUser(); loginedUser.setEmail(user.getEmail()); loginedUser.setMobile(user.getMobile()); loginedUser.setHeadPic(user.getHeadPic()); //首先保存到数据库userService.save(loginedUser); //更新session里的值SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser); return "redirect:update_userinfo"; } /*** 修改密码页面* @return*/ @RequestMapping(value="https://www.it610.com/update_pwd",method=RequestMethod.GET) public String updatePwd(){return "admin/system/update_pwd"; } /*** 修改密码表单提交* @param oldPwd* @param newPwd* @return*/ @RequestMapping(value="https://www.it610.com/update_pwd",method=RequestMethod.POST) @ResponseBody public Result updatePwd(@RequestParam(name="oldPwd",required=true)String oldPwd,@RequestParam(name="newPwd",required=true)String newPwd){Integer loginType = (Integer) SessionUtil.get("loginType"); if(loginType == LoginType.ADMINISTRATOR.getCode()){User loginedUser = SessionUtil.getLoginedUser(); if(!loginedUser.getPassword().equals(oldPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR); }if(StringUtils.isEmpty(newPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY); }if(newPwd.length()<4 || newPwd.length()>32){return Result.error(CodeMsg.ADMIN_USER_PWD_LENGTH_ERROR); }loginedUser.setPassword(newPwd); //保存数据库userService.save(loginedUser); //更新sessionSessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser); }else{Staff loginedStaff = SessionUtil.getLoginedStaff(); Staff staff = staffService.find(loginedStaff.getId()); if(!staff.getPassword().equals(oldPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR); }if(StringUtils.isEmpty(newPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY); } staff.setPassword(newPwd); CodeMsg codeMsg = ValidateEntityUtil.validate(staff); if (codeMsg.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(codeMsg); } loginedStaff.setPassword(newPwd); //保存数据库staffService.save(loginedStaff); //更新sessionSessionUtil.set(SessionConstant.SESSION_STAFF_LOGIN_KEY, loginedStaff); } return Result.success(true); } /*** 日志管理列表* @param model* @param operaterLog* @param pageBean* @return*/ @RequestMapping(value="https://www.it610.com/operator_log_list") public String operatorLogList(Model model,OperaterLog operaterLog,PageBean pageBean){model.addAttribute("pageBean", operaterLogService.findList(operaterLog, pageBean)); model.addAttribute("operator", operaterLog.getOperator()); model.addAttribute("title", "日志列表"); return "admin/system/operator_log_list"; } /*** 删除操作日志,可删除多个* @param ids* @return*/ @RequestMapping(value="https://www.it610.com/delete_operator_log",method=RequestMethod.POST) @ResponseBody public Result delete(String ids){if(!StringUtils.isEmpty(ids)){String[] splitIds = ids.split(","); for(String id : splitIds){operaterLogService.delete(Long.valueOf(id)); }}return Result.success(true); } /*** 清空整个日志* @return*/ @RequestMapping(value="https://www.it610.com/delete_all_operator_log",method=RequestMethod.POST) @ResponseBody public Result deleteAll(){operaterLogService.deleteAll(); return Result.success(true); }}
【Java|Java 实战交易平台项目之宠物在线商城系统】到此这篇关于Java 实战交易平台项目之宠物在线商城系统的文章就介绍到这了,更多相关Java 宠物在线商城系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- 《机器学习实战》高清中文版PDF英文版PDF+源代码下载