From b68ac80de1daf22142886af16d36479259106065 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 17 三月 2025 18:40:35 +0800 Subject: [PATCH] 新增加管理后台接口和修改809协议中的bug --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 1273 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 634 insertions(+), 639 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index f054c6e..7d0c449 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -33,7 +33,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -46,645 +45,641 @@ @RequestMapping("/user") @Api(tags = "用户信息") public class SysUserController extends BaseController { - @Resource - private ISysUserService userService; - - @Resource - private ISysRoleService roleService; - - @Resource - private ISysDeptService deptService; - - @Resource - private ISysPostService postService; - - @Resource - private ISysPermissionService permissionService; - - @Resource - private ISysConfigService configService; - - @Resource - private ISysUserRoleService userRoleService; - - @Resource - private ISysUserRoleService sysUserRoleService; - - @Resource - private UserShopService userShopService; - - @Resource - private TokenService tokenService; - - @Autowired - private ISysMenuService menuService; - - - - - - /** - * 获取用户列表 - */ - @GetMapping("/list") - @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - public AjaxResult list(GetSysUserList getSysUserList) { - PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize()); - PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList); - return AjaxResult.success(page); - } - - /** - * 获取用户选择列表 - */ - @PostMapping("/getChangeUserList") - @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表", "门店后台-部门管理"}) - public AjaxResult<PageInfo<SysUser>> getChangeUserList(@RequestBody ChangeUserQuery query) { - return AjaxResult.success(userService.getChangeUserList(query)); - } - - /** - * 新增用户 - */ - @Log(title = "用户管理", businessType = BusinessType.INSERT) - @PostMapping("/add") - @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - public AjaxResult add(@RequestBody SysUser user) { - user.setUserName(user.getPhonenumber()); - Long userid = tokenService.getLoginUser().getUserid(); - SysUser sysUser1 = userService.getById(userid); - if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ - user.setNickName(user.getPhonenumber()); - } - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { - return error("手机号已开通账号"); - } - if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { - return error("登录账号重复"); - } - return AjaxResult.success(); - } - - - @GetMapping("/verifyUserNameRepeat/{username}") - @ApiOperation(value = "校验账号是否重复", tags = {"管理后台-账号管理"}) - public AjaxResult verifyUserNameRepeat(@PathVariable String username){ - SysUser user = new SysUser(); - user.setUserName(username); - if (StringUtils.isNotEmpty(username) && !userService.checkUserNameUnique(user)) { - return error("账号不可重复"); - } - return success(); - } - - - - - - - /** - * 根据用户编号获取详细信息 - */ - @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - @GetMapping("/getInfo/{userId}") - public AjaxResult getInfo(@PathVariable Long userId) { - userService.checkUserDataScope(userId); - AjaxResult ajax = AjaxResult.success(); - List<SysRole> roles = roleService.selectRoleAll(); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - ajax.put("posts", postService.selectPostAll()); - if (StringUtils.isNotNull(userId)) { - SysUser sysUser = userService.selectUserById(userId); - if(sysUser.getRoleType() == 2){ - Long userid = tokenService.getLoginUser().getUserid(); - SysUser sysUser1 = userService.selectUserById(userid); - UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId()).eq(UserShop::getShopId, sysUser1.getObjectId())); - sysUser.setDeptId(one.getDeptId()); - sysUser.setNickName(one.getNickName()); - SysDept sysDept = deptService.selectDeptById(one.getDeptId()); - sysUser.setDept(sysDept); - sysUser.setRoleId(one.getRoleId()); - } - - ajax.put("data", sysUser); - ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); - } - return AjaxResult.success(ajax); - } - - - /** - * 修改用户 - */ - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/update") - @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - public AjaxResult edit(@Validated @RequestBody SysUser user) { - user.setUserName(user.getPhonenumber()); - if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ - user.setNickName(user.getPhonenumber()); - } - R<Integer> admin = this.isAdmin(user.getUserId()); - Integer data = admin.getData(); - if(data == null || data != 1){ - SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, user.getUserId())); - one.setRoleId(user.getRoleId()); - sysUserRoleService.updateSysUserRole(one); - } - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - SysUser sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getPhonenumber, user.getPhonenumber()) - .eq(SysUser::getDelFlag,0) - .last("LIMIT 1")); - - if (StringUtils.isNotEmpty(user.getPhonenumber()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()) )) { - return error("手机号已开通账号"); - } - sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getUserName, user.getUserName()) - .eq(SysUser::getDelFlag,0) - .last("LIMIT 1")); - if (StringUtils.isNotEmpty(user.getUserName()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()) )) { - return error("登录账号重复"); - } - user.setUpdateBy(SecurityUtils.getUsername()); - if (user.getPassword() != null && !"".equals(user.getPassword())) { - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); - - user.setPassWordUpdate(new Date()); - } - if (user.getPhonenumber() != null) { - user.setUserName(user.getPhonenumber()); - } - user.setUpdateBy(SecurityUtils.getUsername()); - user.setUpdateTime(new Date()); - userService.updateUser(user); - user = userService.getById(user.getUserId()); - //添加门店员工关系数据 - if(2 == user.getRoleType()){ - UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId())); - one.setUserId(user.getUserId()); - one.setShopId(user.getObjectId()); - one.setRoleType(one.getRoleType()); - one.setRoleId(user.getRoleId()); - one.setDeptId(user.getDeptId()); - one.setNickName(user.getNickName()); - userShopService.updateById(one); - } - return success(); - } - - - /** - * 删除用户 - */ - @Log(title = "用户管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{userIds}") - @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - public AjaxResult remove(@PathVariable Long[] userIds) { - if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { - return error("当前用户不能删除"); - } - userService.deleteUserByIds(userIds); - return AjaxResult.success(); - } - - - - - @PostMapping("/shopUserStart") - @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - public AjaxResult shopUserStart(@RequestBody ShopUserStart shopUserStart) { - if (shopUserStart.getUserId() == null) { - return AjaxResult.error("userId不能为空"); - } - SysUser sysUser = userService.selectUserById(shopUserStart.getUserId()); - if (sysUser.getStatus().equals("0")) { - sysUser.setStatus("1"); - sysUser.setForbiddenRemark(shopUserStart.getRemark()); - } else { - sysUser.setStatus("0"); - sysUser.setForbiddenRemark(""); - } - return toAjax(userService.updateUser(sysUser)); - } - - - @PostMapping("/getUserList") - public R<List<SysUser>> getUserList(@RequestBody List<Integer> userIds) { - List<SysUser> list = userService.list(new LambdaQueryWrapper<SysUser>().in(SysUser::getUserId, userIds)); - return R.ok(list); - } - - @PostMapping("/isAdmin") - public R<Integer> isAdmin(@RequestBody Long userId){ - SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); - Long id =one.getRoleId(); - return R.ok(id.intValue()); - } - - @PostMapping("/getSysUser") - public R<SysUser> getSysUser(@RequestParam("userId") Long userId) { - try { - SysUser sysUser = userService.selectUserById(userId); - return R.ok(sysUser); - } catch (Exception e) { - e.printStackTrace(); - return R.ok(); - } - } - - @PostMapping("/updateSysUser") - @Transactional(rollbackFor = Exception.class) - public R<Boolean> updateSysUser(@RequestBody SysUser sysUser) { - try { - sysUser.setUpdateBy(SecurityUtils.getUsername()); - sysUser.setUpdateTime(new Date()); - userService.updateUser(sysUser); - if(null != sysUser.getRoleId()){ - userRoleService.deleteSysUserRoleByUserId(sysUser.getUserId()); - SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setRoleId(sysUser.getRoleId()); - sysUserRole.setUserId(sysUser.getUserId()); - userRoleService.insertSysUserRole(sysUserRole); - } - return R.ok(true); - } catch (Exception e) { - e.printStackTrace(); - return R.fail(); - } - } - - - - /** - * 获取当前用户信息 - */ - @InnerAuth - @GetMapping("/info/{username}") - public R<LoginUser> info(@PathVariable("username") String username) { - SysUser sysUser = userService.selectUserByUserName(username); - if (StringUtils.isNull(sysUser)) { - return R.fail("用户名或密码错误"); - } - // 角色集合 - Set<String> roles = permissionService.getRolePermission(sysUser); - // 权限集合getRolePermission - Set<String> permissions = permissionService.getMenuPermission(sysUser); - LoginUser sysUserVo = new LoginUser(); - sysUserVo.setSysUser(sysUser); - sysUserVo.setRoles(roles); - sysUserVo.setPermissions(permissions); - - return R.ok(sysUserVo); - } - - /** - * 门店登录使用 - * @param username - * @return - */ - @InnerAuth - @GetMapping("/infoShop/{username}") - public R<LoginUser> infoShop(@PathVariable("username") String username) { - SysUser sysUser = userService.selectUserShopByUserName(username); - if (StringUtils.isNull(sysUser)) { - return R.fail("用户名或密码错误"); - } - // 角色集合 - Set<String> roles = permissionService.getRolePermission(sysUser); - // 权限集合getRolePermission - Set<String> permissions = permissionService.getMenuPermission(sysUser); - LoginUser sysUserVo = new LoginUser(); - sysUserVo.setSysUser(sysUser); - sysUserVo.setRoles(roles); - sysUserVo.setPermissions(permissions); - - return R.ok(sysUserVo); - } - - /** - * 注册用户信息 - */ - @PostMapping("/register") - public R<Boolean> register(@RequestBody SysUser sysUser) { - String username = sysUser.getUserName(); - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { - return R.fail("当前系统没有开启注册功能!"); - } - if (!userService.checkUserNameUnique(sysUser)) { - return R.fail("保存用户'" + username + "'失败,注册账号已存在"); - } - return R.ok(userService.registerUser(sysUser)); - } - - /** - * 获取用户信息 - * - * @return 用户信息 - */ - @GetMapping("/getInfo") - public AjaxResult getInfo() { - SysUser user = userService.selectUserById(SecurityUtils.getUserId()); - // 角色集合 - Set<String> roles = permissionService.getRolePermission(user); - // 权限集合 - Set<String> permissions = permissionService.getMenuPermission(user); - AjaxResult ajax = AjaxResult.success(); - ajax.put("user", user); - ajax.put("roles", roles); - ajax.put("permissions", permissions); - return ajax; - } - - - /** - * 重置密码 - */ - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/resetPwd") - @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理", "门店后台-部门管理"}) - public AjaxResult resetPwd(@RequestBody SysUser user) { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - - user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); - user.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(userService.resetPwd(user)); - } - - /** - * 状态修改 - */ - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(userService.updateUserStatus(user)); - } - - /** - * 根据用户编号获取授权角色 - */ - @GetMapping("/authRole/{userId}") - public AjaxResult authRole(@PathVariable("userId") Long userId) { - AjaxResult ajax = AjaxResult.success(); - SysUser user = userService.selectUserById(userId); - List<SysRole> roles = roleService.selectRolesByUserId(userId); - ajax.put("user", user); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - return ajax; - } - - /** - * 用户授权角色 - */ - @Log(title = "用户管理", businessType = BusinessType.GRANT) - @PutMapping("/authRole") - public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { - userService.checkUserDataScope(userId); - userService.insertUserAuth(userId, roleIds); - return success(); - } - - /** - * 获取部门树列表 - */ - @GetMapping("/deptTree") - public AjaxResult deptTree(SysDept dept) { - return success(deptService.selectDeptTreeList(dept)); - } - - @PostMapping("/updateUser") - public R<Boolean> updateUser(@RequestBody SysUser sysUser){ - return R.ok(userService.updateById(sysUser)); - } - - /** - * 通过用户id查询角色对象 - * @param userId - * @return - */ - @PostMapping("/queryRoleByUserId/{userId}") - public R<SysRole> queryRoleByUserId(@PathVariable("userId") Long userId){ - SysUserRole one = sysUserRoleService.getOne(Wrappers.lambdaQuery(SysUserRole.class) - .eq(SysUserRole::getUserId, userId) - .last("LIMIT 1")); - System.out.println("通过用户id查询角色对象"+one); - if(Objects.nonNull(one)){ - SysRole byId = roleService.getOne(Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getRoleId,one.getRoleId()) - .last("LIMIT 1")); - return R.ok(byId); - } - return R.ok(); - } - - - @PostMapping("/queryRoleByRoleId/{roleId}") - public R<SysRole> queryRoleByRoleId(@PathVariable("roleId") Long roleId){ - return R.ok( roleService.getOne(Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getRoleId, roleId) - .last("LIMIT 1"))); - } - - /** - * 通过手机号集合查询用户 - * @param phoneList - * @return - */ - @PostMapping("/queryUserByPhoneList") - public R<List<SysUser>> queryUserByPhoneList(@RequestBody List<String> phoneList){ - List<SysUser> list = userService.list(Wrappers.lambdaQuery(SysUser.class) - .in(SysUser::getPhonenumber, phoneList) - .ne(SysUser::getDelFlag,2)); - return R.ok(list); - } - - - /** - * 通过手机号查询用户 - * @param phone - * @return - */ - @PostMapping("/queryUserByPhone") - public R<SysUser> queryUserByPhone(@RequestBody String phone){ - SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getPhonenumber, phone) - .last("LIMIT 1")); - return R.ok(user); - } - - - /** - * 通过账号查询用户 - * @param userName - * @return - */ - @ResponseBody - @PostMapping("/queryUserByUserName") - public R<SysUser> queryUserByUserName(@RequestBody String userName){ - SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getUserName, userName) - .eq(SysUser::getDelFlag, "0") - .eq(SysUser::getStatus, 0) - .last("LIMIT 1")); - return R.ok(user); - } - - - /** - * 添加管理员 - * @param user - */ - @ResponseBody - @PostMapping("/addSysUser") - @Transactional(rollbackFor = Exception.class) - public R<Long> addSysUser(@RequestBody SysUser user) { - if(StringUtils.isEmpty(user.getUserName())){ - user.setUserName(user.getPhonenumber()); - } - if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ - user.setNickName(user.getPhonenumber()); - } + @Resource + private ISysUserService userService; + + @Resource + private ISysRoleService roleService; + + @Resource + private ISysDeptService deptService; + + @Resource + private ISysPostService postService; + + @Resource + private ISysPermissionService permissionService; + + @Resource + private ISysConfigService configService; + + @Resource + private ISysUserRoleService userRoleService; + + @Resource + private ISysUserRoleService sysUserRoleService; + + @Resource + private UserShopService userShopService; + + @Resource + private TokenService tokenService; + + @Autowired + private ISysMenuService menuService; + + + /** + * 获取用户列表 + */ + @GetMapping("/list") + @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + public AjaxResult list(GetSysUserList getSysUserList) { + PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize()); + PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList); + return AjaxResult.success(page); + } + + /** + * 获取用户选择列表 + */ + @PostMapping("/getChangeUserList") + @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表", "门店后台-部门管理"}) + public AjaxResult<PageInfo<SysUser>> getChangeUserList(@RequestBody ChangeUserQuery query) { + return AjaxResult.success(userService.getChangeUserList(query)); + } + + /** + * 新增用户 + */ + @Log(title = "用户管理", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + public AjaxResult add(@RequestBody SysUser user) { + user.setUserName(user.getPhonenumber()); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser1 = userService.getById(userid); + if (!org.springframework.util.StringUtils.hasLength(user.getNickName())) { + user.setNickName(user.getPhonenumber()); + } + if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { + return error("手机号已开通账号"); + } + if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { + return error("登录账号重复"); + } + return AjaxResult.success(); + } + + + @GetMapping("/verifyUserNameRepeat/{username}") + @ApiOperation(value = "校验账号是否重复", tags = {"管理后台-账号管理"}) + public AjaxResult verifyUserNameRepeat(@PathVariable String username) { + SysUser user = new SysUser(); + user.setUserName(username); + if (StringUtils.isNotEmpty(username) && !userService.checkUserNameUnique(user)) { + return error("账号不可重复"); + } + return success(); + } + + + /** + * 根据用户编号获取详细信息 + */ + @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + @GetMapping("/getInfo/{userId}") + public AjaxResult getInfo(@PathVariable Long userId) { + userService.checkUserDataScope(userId); + AjaxResult ajax = AjaxResult.success(); + List<SysRole> roles = roleService.selectRoleAll(); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("posts", postService.selectPostAll()); + if (StringUtils.isNotNull(userId)) { + SysUser sysUser = userService.selectUserById(userId); + if (sysUser.getRoleType() == 2) { + Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser1 = userService.selectUserById(userid); + UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId()).eq(UserShop::getShopId, sysUser1.getObjectId())); + sysUser.setDeptId(one.getDeptId()); + sysUser.setNickName(one.getNickName()); + SysDept sysDept = deptService.selectDeptById(one.getDeptId()); + sysUser.setDept(sysDept); + sysUser.setRoleId(one.getRoleId()); + } + + ajax.put("data", sysUser); + ajax.put("postIds", postService.selectPostListByUserId(userId)); + ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); + } + return AjaxResult.success(ajax); + } + + + /** + * 修改用户 + */ + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/update") + @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + public AjaxResult edit(@Validated @RequestBody SysUser user) { + user.setUserName(user.getPhonenumber()); + if (!org.springframework.util.StringUtils.hasLength(user.getNickName())) { + user.setNickName(user.getPhonenumber()); + } + R<Integer> admin = this.isAdmin(user.getUserId()); + Integer data = admin.getData(); + if (data == null || data != 1) { + SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, user.getUserId())); + one.setRoleId(user.getRoleId()); + sysUserRoleService.updateSysUserRole(one); + } + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + SysUser sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getPhonenumber, user.getPhonenumber()) + .eq(SysUser::getDelFlag, 0) + .last("LIMIT 1")); + + if (StringUtils.isNotEmpty(user.getPhonenumber()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()))) { + return error("手机号已开通账号"); + } + sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getUserName, user.getUserName()) + .eq(SysUser::getDelFlag, 0) + .last("LIMIT 1")); + if (StringUtils.isNotEmpty(user.getUserName()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()))) { + return error("登录账号重复"); + } + user.setUpdateBy(SecurityUtils.getUsername()); + if (user.getPassword() != null && !"".equals(user.getPassword())) { + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); + + user.setPassWordUpdate(new Date()); + } + if (user.getPhonenumber() != null) { + user.setUserName(user.getPhonenumber()); + } + user.setUpdateBy(SecurityUtils.getUsername()); + user.setUpdateTime(new Date()); + userService.updateUser(user); + user = userService.getById(user.getUserId()); + //添加门店员工关系数据 + if (2 == user.getRoleType()) { + UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId())); + one.setUserId(user.getUserId()); + one.setShopId(user.getObjectId()); + one.setRoleType(one.getRoleType()); + one.setRoleId(user.getRoleId()); + one.setDeptId(user.getDeptId()); + one.setNickName(user.getNickName()); + userShopService.updateById(one); + } + return success(); + } + + + /** + * 删除用户 + */ + @Log(title = "用户管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{userIds}") + @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + public AjaxResult remove(@PathVariable Long[] userIds) { + if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { + return error("当前用户不能删除"); + } + userService.deleteUserByIds(userIds); + return AjaxResult.success(); + } + + + @PostMapping("/shopUserStart") + @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + public AjaxResult shopUserStart(@RequestBody ShopUserStart shopUserStart) { + if (shopUserStart.getUserId() == null) { + return AjaxResult.error("userId不能为空"); + } + SysUser sysUser = userService.selectUserById(shopUserStart.getUserId()); + if (sysUser.getStatus().equals("0")) { + sysUser.setStatus("1"); + sysUser.setForbiddenRemark(shopUserStart.getRemark()); + } else { + sysUser.setStatus("0"); + sysUser.setForbiddenRemark(""); + } + return toAjax(userService.updateUser(sysUser)); + } + + + @PostMapping("/getUserList") + public R<List<SysUser>> getUserList(@RequestBody List<Integer> userIds) { + List<SysUser> list = userService.list(new LambdaQueryWrapper<SysUser>().in(SysUser::getUserId, userIds)); + return R.ok(list); + } + + @PostMapping("/isAdmin") + public R<Integer> isAdmin(@RequestBody Long userId) { + SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); + Long id = one.getRoleId(); + return R.ok(id.intValue()); + } + + @PostMapping("/getSysUser") + public R<SysUser> getSysUser(@RequestParam("userId") Long userId) { + try { + SysUser sysUser = userService.selectUserById(userId); + return R.ok(sysUser); + } catch (Exception e) { + e.printStackTrace(); + return R.ok(); + } + } + + @PostMapping("/updateSysUser") + @Transactional(rollbackFor = Exception.class) + public R<Boolean> updateSysUser(@RequestBody SysUser sysUser) { + try { + sysUser.setUpdateBy(SecurityUtils.getUsername()); + sysUser.setUpdateTime(new Date()); + userService.updateUser(sysUser); + if (null != sysUser.getRoleId()) { + userRoleService.deleteSysUserRoleByUserId(sysUser.getUserId()); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(sysUser.getRoleId()); + sysUserRole.setUserId(sysUser.getUserId()); + userRoleService.insertSysUserRole(sysUserRole); + } + return R.ok(true); + } catch (Exception e) { + e.printStackTrace(); + return R.fail(); + } + } + + + /** + * 获取当前用户信息 + */ + @InnerAuth + @GetMapping("/info/{username}") + public R<LoginUser> info(@PathVariable("username") String username) { + SysUser sysUser = userService.selectUserByUserName(username); + if (StringUtils.isNull(sysUser)) { + return R.fail("用户名或密码错误"); + } + // 角色集合 + Set<String> roles = permissionService.getRolePermission(sysUser); + // 权限集合getRolePermission + Set<String> permissions = permissionService.getMenuPermission(sysUser); + LoginUser sysUserVo = new LoginUser(); + sysUserVo.setSysUser(sysUser); + sysUserVo.setRoles(roles); + sysUserVo.setPermissions(permissions); + return R.ok(sysUserVo); + } + + /** + * 门店登录使用 + * + * @param username + * @return + */ + @InnerAuth + @GetMapping("/infoShop/{username}") + public R<LoginUser> infoShop(@PathVariable("username") String username) { + SysUser sysUser = userService.selectUserShopByUserName(username); + if (StringUtils.isNull(sysUser)) { + return R.fail("用户名或密码错误"); + } + // 角色集合 + Set<String> roles = permissionService.getRolePermission(sysUser); + // 权限集合getRolePermission + Set<String> permissions = permissionService.getMenuPermission(sysUser); + LoginUser sysUserVo = new LoginUser(); + sysUserVo.setSysUser(sysUser); + sysUserVo.setRoles(roles); + sysUserVo.setPermissions(permissions); + + return R.ok(sysUserVo); + } + + /** + * 注册用户信息 + */ + @PostMapping("/register") + public R<Boolean> register(@RequestBody SysUser sysUser) { + String username = sysUser.getUserName(); + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { + return R.fail("当前系统没有开启注册功能!"); + } + if (!userService.checkUserNameUnique(sysUser)) { + return R.fail("保存用户'" + username + "'失败,注册账号已存在"); + } + return R.ok(userService.registerUser(sysUser)); + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("/getInfo") + public AjaxResult getInfo() { + SysUser user = userService.selectUserById(SecurityUtils.getUserId()); + // 角色集合 + Set<String> roles = permissionService.getRolePermission(user); + // 权限集合 + Set<String> permissions = permissionService.getMenuPermission(user); + AjaxResult ajax = AjaxResult.success(); + ajax.put("user", user); + ajax.put("roles", roles); + ajax.put("permissions", permissions); + return ajax; + } + + + /** + * 重置密码 + */ + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/resetPwd") + @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理", "门店后台-部门管理"}) + public AjaxResult resetPwd(@RequestBody SysUser user) { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + + user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); + user.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(userService.resetPwd(user)); + } + + /** + * 状态修改 + */ + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysUser user) { + userService.checkUserAllowed(user); + userService.checkUserDataScope(user.getUserId()); + user.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(userService.updateUserStatus(user)); + } + + /** + * 根据用户编号获取授权角色 + */ + @GetMapping("/authRole/{userId}") + public AjaxResult authRole(@PathVariable("userId") Long userId) { + AjaxResult ajax = AjaxResult.success(); + SysUser user = userService.selectUserById(userId); + List<SysRole> roles = roleService.selectRolesByUserId(userId); + ajax.put("user", user); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + return ajax; + } + + /** + * 用户授权角色 + */ + @Log(title = "用户管理", businessType = BusinessType.GRANT) + @PutMapping("/authRole") + public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { + userService.checkUserDataScope(userId); + userService.insertUserAuth(userId, roleIds); + return success(); + } + + /** + * 获取部门树列表 + */ + @GetMapping("/deptTree") + public AjaxResult deptTree(SysDept dept) { + return success(deptService.selectDeptTreeList(dept)); + } + + @PostMapping("/updateUser") + public R<Boolean> updateUser(@RequestBody SysUser sysUser) { + return R.ok(userService.updateById(sysUser)); + } + + /** + * 通过用户id查询角色对象 + * + * @param userId + * @return + */ + @PostMapping("/queryRoleByUserId/{userId}") + public R<SysRole> queryRoleByUserId(@PathVariable("userId") Long userId) { + SysUserRole one = sysUserRoleService.getOne(Wrappers.lambdaQuery(SysUserRole.class) + .eq(SysUserRole::getUserId, userId) + .last("LIMIT 1")); + System.out.println("通过用户id查询角色对象" + one); + if (Objects.nonNull(one)) { + SysRole byId = roleService.getOne(Wrappers.lambdaQuery(SysRole.class) + .eq(SysRole::getRoleId, one.getRoleId()) + .last("LIMIT 1")); + return R.ok(byId); + } + return R.ok(); + } + + + @PostMapping("/queryRoleByRoleId/{roleId}") + public R<SysRole> queryRoleByRoleId(@PathVariable("roleId") Long roleId) { + return R.ok(roleService.getOne(Wrappers.lambdaQuery(SysRole.class) + .eq(SysRole::getRoleId, roleId) + .last("LIMIT 1"))); + } + + /** + * 通过手机号集合查询用户 + * + * @param phoneList + * @return + */ + @PostMapping("/queryUserByPhoneList") + public R<List<SysUser>> queryUserByPhoneList(@RequestBody List<String> phoneList) { + List<SysUser> list = userService.list(Wrappers.lambdaQuery(SysUser.class) + .in(SysUser::getPhonenumber, phoneList) + .ne(SysUser::getDelFlag, 2)); + return R.ok(list); + } + + + /** + * 通过手机号查询用户 + * + * @param phone + * @return + */ + @PostMapping("/queryUserByPhone") + public R<SysUser> queryUserByPhone(@RequestBody String phone) { + SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getPhonenumber, phone) + .last("LIMIT 1")); + return R.ok(user); + } + + + /** + * 通过账号查询用户 + * + * @param userName + * @return + */ + @ResponseBody + @PostMapping("/queryUserByUserName") + public R<SysUser> queryUserByUserName(@RequestBody String userName) { + SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getUserName, userName) + .eq(SysUser::getDelFlag, "0") + .eq(SysUser::getStatus, 0) + .last("LIMIT 1")); + return R.ok(user); + } + + + /** + * 添加管理员 + * + * @param user + */ + @ResponseBody + @PostMapping("/addSysUser") + @Transactional(rollbackFor = Exception.class) + public R<Long> addSysUser(@RequestBody SysUser user) { + if (StringUtils.isEmpty(user.getUserName())) { + user.setUserName(user.getPhonenumber()); + } + if (!org.springframework.util.StringUtils.hasLength(user.getNickName())) { + user.setNickName(user.getPhonenumber()); + } // if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { // throw new RuntimeException("手机号已开通账号"); // } - if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { - throw new RuntimeException("登录账号已存在"); - } - user.setCreateBy(SecurityUtils.getUsername()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - if(null == user.getRoleType()){ - user.setRoleType(1); - } - userService.insertUser(user); - SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setRoleId(user.getRoleId()); - sysUserRole.setUserId(user.getUserId()); - userRoleService.insertSysUserRole(sysUserRole); - return R.ok(user.getUserId()); - } - - - @ResponseBody - @PostMapping("/resetPassword") - public R resetPassword(@RequestBody SysUser user) { - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - user.setUpdateBy(SecurityUtils.getUsername()); - userService.resetPwd(user); - return R.ok(); - } - - - @ResponseBody - @PostMapping("/getSysUserById") - public SysUser getSysUserById(@RequestParam("userId") Long userId){ - return userService.getById(userId); - } - - - /** - * 保存门店员工管理后台账号 - * @param user - * @return - */ - @ResponseBody - @PostMapping("/saveShopUser") - public R<Long> saveShopUser(@RequestBody SysUser user){ - SysUser one = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, user.getPhonenumber()).eq(SysUser::getDelFlag, "0") - .eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2)); - if(null == one){ - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - userService.save(user); - //添加用户角色数据 - SysUserRole userRole = new SysUserRole(); - userRole.setUserId(user.getUserId()); - userRole.setRoleId(2L); - userRoleService.save(userRole); - } - return R.ok(user.getUserId()); - } - - - /** - * 删除门店管理员账号 - * @param objectId - * @param roleType - * @return - */ - @PostMapping("/user/delShopUser") - public R delShopUser(@RequestParam("objectId") Integer objectId, @RequestParam("roleType") Integer roleType){ - List<UserShop> list2 = userShopService.list(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, objectId)); - for (UserShop userShop : list2) { - List<UserShop> list1 = userShopService.list(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, userShop.getUserId())); - if(list1.size() == 1 && list1.get(0).getShopId().equals(objectId)){ - //删除管理员账号 - userService.deleteUserById(userShop.getUserId()); - }else{ - //修改管理后台账号关联的门店数据 - SysUser sysUser = userService.getById(userShop.getUserId()); - if(sysUser.getObjectId().equals(objectId)){ - Optional<UserShop> first = list1.stream().filter(s -> !s.getShopId().equals(objectId)).findFirst(); - if(first.isPresent()){ - sysUser.setObjectId(first.get().getShopId()); - userService.updateById(sysUser); - } - - } - } - userShopService.removeById(userShop.getId()); - } - return R.ok(); - } - - - - @ResponseBody - @PutMapping("/switchShop/{shopId}") - @ApiOperation(value = "切换门店", tags = {"门店后台-首页"}) - public R<Set<String>> switchShop(@PathVariable("shopId") Integer shopId){ - Long userid = tokenService.getLoginUser().getUserid(); - UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, userid).eq(UserShop::getShopId, shopId)); - if(null == one){ - return R.fail("切换失败"); - } - SysUser sysUser = userService.getById(userid); - sysUser.setObjectId(shopId); - userService.updateById(sysUser); - //查询用户权限列表 - Long roleId = one.getRoleId(); - Set<String> rolePerms = menuService.selectMenuPermsByRoleId(roleId); - return R.ok(rolePerms); - } - - - - /** - * 通过账号和账号权限查询用户 - * @param userName - * @return - */ - @PostMapping("/queryUserByUserNameAndRoleType") - public R<SysUser> queryUserByUserNameAndRoleType(@RequestParam("userName") String userName, @RequestParam("roleType") Integer roleType){ - SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getUserName, userName) - .eq(SysUser::getDelFlag, "0") - .eq(SysUser::getStatus, 0) - .eq(SysUser::getRoleType, roleType) - .last("LIMIT 1")); - return R.ok(user); - } - - - @PostMapping("/delSysUserById") - public R delSysUserById(@RequestParam("userId") Long userId){ - userService.deleteUserById(userId); - return R.ok(); - } + if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { + throw new RuntimeException("登录账号已存在"); + } + user.setCreateBy(SecurityUtils.getUsername()); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + if (null == user.getRoleType()) { + user.setRoleType(1); + } + userService.insertUser(user); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(user.getRoleId()); + sysUserRole.setUserId(user.getUserId()); + userRoleService.insertSysUserRole(sysUserRole); + return R.ok(user.getUserId()); + } + + + @ResponseBody + @PostMapping("/resetPassword") + public R resetPassword(@RequestBody SysUser user) { + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setUpdateBy(SecurityUtils.getUsername()); + userService.resetPwd(user); + return R.ok(); + } + + + @ResponseBody + @PostMapping("/getSysUserById") + public SysUser getSysUserById(@RequestParam("userId") Long userId) { + return userService.getById(userId); + } + + + /** + * 保存门店员工管理后台账号 + * + * @param user + * @return + */ + @ResponseBody + @PostMapping("/saveShopUser") + public R<Long> saveShopUser(@RequestBody SysUser user) { + SysUser one = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, user.getPhonenumber()).eq(SysUser::getDelFlag, "0") + .eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2)); + if (null == one) { + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + userService.save(user); + //添加用户角色数据 + SysUserRole userRole = new SysUserRole(); + userRole.setUserId(user.getUserId()); + userRole.setRoleId(2L); + userRoleService.save(userRole); + } + return R.ok(user.getUserId()); + } + + + /** + * 删除门店管理员账号 + * + * @param objectId + * @param roleType + * @return + */ + @PostMapping("/user/delShopUser") + public R delShopUser(@RequestParam("objectId") Integer objectId, @RequestParam("roleType") Integer roleType) { + List<UserShop> list2 = userShopService.list(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, objectId)); + for (UserShop userShop : list2) { + List<UserShop> list1 = userShopService.list(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, userShop.getUserId())); + if (list1.size() == 1 && list1.get(0).getShopId().equals(objectId)) { + //删除管理员账号 + userService.deleteUserById(userShop.getUserId()); + } else { + //修改管理后台账号关联的门店数据 + SysUser sysUser = userService.getById(userShop.getUserId()); + if (sysUser.getObjectId().equals(objectId)) { + Optional<UserShop> first = list1.stream().filter(s -> !s.getShopId().equals(objectId)).findFirst(); + if (first.isPresent()) { + sysUser.setObjectId(first.get().getShopId()); + userService.updateById(sysUser); + } + + } + } + userShopService.removeById(userShop.getId()); + } + return R.ok(); + } + + + @ResponseBody + @PutMapping("/switchShop/{shopId}") + @ApiOperation(value = "切换门店", tags = {"门店后台-首页"}) + public R<Set<String>> switchShop(@PathVariable("shopId") Integer shopId) { + Long userid = tokenService.getLoginUser().getUserid(); + UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, userid).eq(UserShop::getShopId, shopId)); + if (null == one) { + return R.fail("切换失败"); + } + SysUser sysUser = userService.getById(userid); + sysUser.setObjectId(shopId); + userService.updateById(sysUser); + //查询用户权限列表 + Long roleId = one.getRoleId(); + Set<String> rolePerms = menuService.selectMenuPermsByRoleId(roleId); + return R.ok(rolePerms); + } + + + /** + * 通过账号和账号权限查询用户 + * + * @param userName + * @return + */ + @PostMapping("/queryUserByUserNameAndRoleType") + public R<SysUser> queryUserByUserNameAndRoleType(@RequestParam("userName") String userName, @RequestParam("roleType") Integer roleType) { + SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getUserName, userName) + .eq(SysUser::getDelFlag, "0") + .eq(SysUser::getStatus, 0) + .eq(SysUser::getRoleType, roleType) + .last("LIMIT 1")); + return R.ok(user); + } + + + @PostMapping("/delSysUserById") + public R delSysUserById(@RequestParam("userId") Long userId) { + userService.deleteUserById(userId); + return R.ok(); + } } -- Gitblit v1.7.1