Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
Springboot+ SpringMVC + MyBatis + Jsp + Html+ JavaScript + JQuery + Ajax + maven等等
/** * 系统用户 * * @author Mark */ @RestController @RequestMapping("/sys/user") public class SysUserController extends AbstractController { @Autowired private SysUserService sysUserService; @Autowired private SysUserRoleService sysUserRoleService; /** * 所有用户列表 */ @GetMapping("/list") @RequiresPermissions("sys:user:list") public R list(@RequestParam Map<String, Object> params){ //只有超级管理员,才能查看所有管理员列表 if(getUserId() != Constant.SUPER_ADMIN){ params.put("createUserId", getUserId()); } PageUtils page = sysUserService.queryPage(params); return R.ok().put("page", page); } /** * 获取登录的用户信息 */ @GetMapping("/info") public R info(){ return R.ok().put("user", getUser()); } /** * 修改登录用户密码 */ @SysLog("修改密码") @PostMapping("/password") public R password(@RequestBody PasswordForm form){ Assert.isBlank(form.getNewPassword(), "新密码不为能空"); //sha256加密 String password = new Sha256Hash(form.getPassword(), getUser().getSalt()).toHex(); //sha256加密 String newPassword = new Sha256Hash(form.getNewPassword(), getUser().getSalt()).toHex(); //更新密码 boolean flag = sysUserService.updatePassword(getUserId(), password, newPassword); if(!flag){ return R.error("原密码不正确"); } return R.ok(); } /** * 用户信息 */ @GetMapping("/info/{userId}") @RequiresPermissions("sys:user:info") public R info(@PathVariable("userId") Long userId){ SysUserEntity user = sysUserService.getById(userId); //获取用户所属的角色列表 List<Long> roleIdList = sysUserRoleService.queryRoleIdList(userId); user.setRoleIdList(roleIdList); return R.ok().put("user", user); } /** * 保存用户 */ @SysLog("保存用户") @PostMapping("/save") @RequiresPermissions("sys:user:save") public R save(@RequestBody SysUserEntity user){ ValidatorUtils.validateEntity(user, AddGroup.class); user.setCreateUserId(getUserId()); sysUserService.saveUser(user); return R.ok(); } /** * 修改用户 */ @SysLog("修改用户") @PostMapping("/update") @RequiresPermissions("sys:user:update") public R update(@RequestBody SysUserEntity user){ ValidatorUtils.validateEntity(user, UpdateGroup.class); user.setCreateUserId(getUserId()); sysUserService.update(user); return R.ok(); } /** * 删除用户 */ @SysLog("删除用户") @PostMapping("/delete") @RequiresPermissions("sys:user:delete") public R delete(@RequestBody Long[] userIds){ if(ArrayUtils.contains(userIds, 1L)){ return R.error("系统管理员不能删除"); } if(ArrayUtils.contains(userIds, getUserId())){ return R.error("当前用户不能删除"); } sysUserService.deleteBatch(userIds); return R.ok(); } }
/** * <p> * 前端控制器 * </p> */ @Api(tags = "用户接口") @RestController @RequestMapping("/Users") @RequiresRoles(value = "admin", logical = Logical.OR) public class UserController { @Autowired private UserService userService; @GetMapping("/queryUserByParam") public JsonObject queryUserByParam(@RequestParam("page") Integer currentPage, @RequestParam("limit") Integer limit, @RequestParam(name = "params", required = false) String queryParams) { JsonObject<UserDto> object = new JsonObject<>(); if (queryParams != null) { JSONObject jsonObject = JSON.parseObject(queryParams); String keyword = jsonObject.getString("keyword"); IPage<UserDto> dtoIPage = userService.queryUserByParam(currentPage, limit, keyword); object.setCode(0); object.setMsg("ok"); object.setCount(dtoIPage.getTotal()); object.setData(dtoIPage); return object; } else { IPage<UserDto> dtoIPage = userService.queryUserByParam(currentPage, limit, queryParams); object.setCode(0); object.setMsg("ok"); object.setCount(dtoIPage.getTotal()); object.setData(dtoIPage); return object; } } @PostMapping("/addUser") public Result addAddress(UserDto userDto) { return userService.addUser(userDto); } @PostMapping("/deleteUser") public Result deleteAddress(Integer[] ids) { return userService.deleteUser(ids); } @PostMapping("/updateUser") public Result updateUser(UserDto userDto) { return userService.updateUser(userDto); } }
/** * @author yy * * 登录控制器 */ @Slf4j @Controller @RequestMapping("/User") @Api(value = "用户登录模块,进行个人信息管理",tags = "用户登录相关信息接口") public class LoginController { @Autowired private UserService userService; @Resource private MyShiroRealm shiroRealm; @RequestMapping("/main") public String mainPage(HttpServletRequest request,Model model) { String account = CookieUtil.getCookieValue(request, "account"); UserDto user = userService.queryUserDtoByAccount(account); model.addAttribute("user",user); request.getSession().setAttribute("user",user); return "index"; } @PostMapping("/doLogin") @ResponseBody public Result doLoginPage(@RequestParam String loginAccount, @RequestParam String password, @RequestParam(defaultValue = "false") Boolean remeber) { Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(); token.setUsername(loginAccount); token.setPassword(password.toCharArray()); //开启RememberMe token.setRememberMe(remeber); try { //进行登录的认证 subject.login(token); //登录认证成功后,将shiro中保存的用户对象取出,放到session中 String userAccount = (String)subject.getPrincipal(); UserDto user = userService.queryUserDtoByAccount(userAccount); //将用户对象的ID放到session域中 Session session = SecurityUtils.getSubject().getSession(); session.setAttribute("userSession",user); return Result.ok("登录成功",user); }catch (UnknownAccountException e){ return Result.fail("账号不存在!"); }catch (IncorrectCredentialsException e){ return Result.fail("密码错误!"); } catch (ExcessiveAttemptsException e) { return Result.fail("登录失败!"); } } //修改密码 @PostMapping("/pwdSubmit") @ResponseBody public Result pwdSubmit(HttpServletRequest request,@RequestParam String oldPwd, @RequestParam String newPwd){ String account = CookieUtil.getCookieValue(request, "account"); UserDto user = userService.queryUserDtoByAccount(account); String updateUserPwd = userService.updateUserPwd(user.getAccount(),oldPwd,newPwd); if ("true".equals(updateUserPwd)){ //修改密码后需要将当前用户shiro缓存中的数据清空 shiroRealm.clearCachedAuthenticationInfo(SecurityUtils.getSubject().getPrincipals()); //清除授权信息 shiroRealm.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals()); return Result.ok(user.getUserName()+"密码修改成功"); }else { return Result.fail(updateUserPwd); } } @PostMapping("/infoSubmit") @ResponseBody public Result infoSubmit(UserDto userDto) { Boolean info = userService.updateUserInfo(userDto); System.out.println(info); if (info) { return Result.ok(); }else { return Result.fail("保存个人信息失败!"); } } // 用户注销 @ApiOperation("用户注销方法") @GetMapping("/logout") public String logout() { Subject subject = SecurityUtils.getSubject(); subject.logout(); return "redirect:login"; } }
/** * <p> * 地址管理 前端控制器 * </p> * */ @RestController @Api(tags = "地址相关接口") @RequestMapping("/address") public class AddressController { @Autowired private AddressService addressService; @GetMapping("/queryAddressByParam") public JsonObject queryAddressByParam(@RequestParam("page") Integer currentPage, @RequestParam("limit") Integer limit, @RequestParam(name = "params", required = false) String queryParams) { JsonObject<AddressDto> object = new JsonObject<>(); if (queryParams != null) { JSONObject jsonObject = JSON.parseObject(queryParams); String keyword = jsonObject.getString("keyword"); IPage<AddressDto> dtoIPage = addressService.queryAddressByParam(currentPage, limit, keyword); object.setCode(0); object.setMsg("ok"); object.setCount(dtoIPage.getTotal()); object.setData(dtoIPage); return object; } else { IPage<AddressDto> dtoIPage = addressService.queryAddressByParam(currentPage, limit, queryParams); object.setCode(0); object.setMsg("ok"); object.setCount(dtoIPage.getTotal()); object.setData(dtoIPage); return object; } } @PostMapping("/addAddress") public Result addAddress(AddressDto addressDto) { return addressService.addAddress(addressDto); } @PostMapping("/deleteAddress") public Result deleteAddress(Integer[] ids) { return addressService.deleteAddress(ids); } @PostMapping("/updateAddress") public Result updateAddress(AddressDto addressDto) { return addressService.updateAddress(addressDto); } }