From 6eb5c98625b72f1debb1070dda7a024df2dc1725 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 15 一月 2025 16:37:05 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 145 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 124 insertions(+), 21 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 f801929..9bdfae7 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 @@ -3,6 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.feignClient.AppUserShopClient; +import com.ruoyi.account.api.model.AppUser; +import com.ruoyi.account.api.model.AppUserShop; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; @@ -78,6 +82,12 @@ @Autowired private ISysMenuService menuService; + + @Resource + private AppUserClient appUserClient; + + @Resource + private AppUserShopClient appUserShopClient; @@ -124,6 +134,16 @@ } //门店员工添加数据,需要判断账号是否存在,共用同一个账号 if(2 == sysUser1.getRoleType()){ + AppUser appUser = appUserClient.getAppUserByPhone1(user.getPhonenumber()).getData(); + if(null == appUser){ + return error("请先注册小程序账号"); + } + SysUser one2 = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, user.getPhonenumber()) + .eq(SysUser::getDelFlag, "0").eq(SysUser::getStatus, "0").eq(SysUser::getObjectId, sysUser1.getObjectId()) + .eq(SysUser::getRoleType, 2)); + if(null != one2){ + return error("登录账号重复"); + } SysUser one = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, user.getPhonenumber()) .eq(SysUser::getDelFlag, "0").eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2)); if(null == one){ @@ -131,23 +151,45 @@ user.setPassword(SecurityUtils.encryptPassword("a123456")); user.setRoleType(sysUser1.getRoleType()); user.setObjectId(sysUser1.getObjectId()); + if(null != appUser){ + user.setAppUserId(appUser.getId()); + } userService.insertUser(user); one = user; SysUserRole sysUserRole = new SysUserRole(); sysUserRole.setRoleId(user.getRoleId()); sysUserRole.setUserId(user.getUserId()); userRoleService.insertSysUserRole(sysUserRole); + } + //添加小程序店员关系数据 + if(null != appUser){ + List<AppUserShop> data = appUserShopClient.getAppUserShop(appUser.getId()).getData(); + Optional<AppUserShop> first = data.stream().filter(s -> s.getShopId().equals(sysUser1.getObjectId())).findFirst(); + if(!first.isPresent()){ + AppUserShop appUserShop = new AppUserShop(); + appUserShop.setAppUserId(appUser.getId()); + appUserShop.setShopId(sysUser1.getObjectId()); + appUserShop.setRoleType(2); + appUserShopClient.saveAppUserShop(appUserShop); + appUser.setUserType(2); + appUserClient.editAppUserById(appUser); + } + } + //添加门店员工关系数据 - UserShop userShop = new UserShop(); - userShop.setUserId(one.getUserId()); - userShop.setShopId(sysUser1.getObjectId()); - userShop.setRoleType(2); - userShop.setRoleId(user.getRoleId()); - userShop.setDeptId(user.getDeptId()); - userShop.setNickName(user.getNickName()); - userShop.setCreateTime(LocalDateTime.now()); - userShopService.save(userShop); + UserShop one1 = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, one.getUserId()).eq(UserShop::getShopId, sysUser1.getObjectId())); + if(null == one1){ + UserShop userShop = new UserShop(); + userShop.setUserId(one.getUserId()); + userShop.setShopId(sysUser1.getObjectId()); + userShop.setRoleType(2); + userShop.setRoleId(user.getRoleId()); + userShop.setDeptId(user.getDeptId()); + userShop.setNickName(user.getNickName()); + userShop.setCreateTime(LocalDateTime.now()); + userShopService.save(userShop); + } }else{ user.setCreateBy(SecurityUtils.getUsername()); user.setPassword(SecurityUtils.encryptPassword("a123456")); @@ -256,7 +298,7 @@ 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())); @@ -282,7 +324,8 @@ if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { return error("当前用户不能删除"); } - return toAjax(userService.deleteUserByIds(userIds)); + userService.deleteUserByIds(userIds); + return AjaxResult.success(); } @@ -360,6 +403,30 @@ @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("用户名或密码错误"); } @@ -539,6 +606,8 @@ 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); } @@ -604,7 +673,7 @@ @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).eq(SysUser::getAppUserId, user.getAppUserId())); + .eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2)); if(null == one){ user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); userService.save(user); @@ -626,16 +695,25 @@ */ @PostMapping("/user/delShopUser") public R delShopUser(@RequestParam("objectId") Integer objectId, @RequestParam("roleType") Integer roleType){ - List<SysUser> list = userService.list(new LambdaUpdateWrapper<SysUser>().eq(SysUser::getObjectId, objectId).eq(SysUser::getRoleType, roleType) - .eq(SysUser::getDelFlag, "0").eq(SysUser::getStatus, "0")); - for (SysUser sysUser : list) { - List<UserShop> list1 = userShopService.list(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId())); - List<Integer> collect = list1.stream().map(UserShop::getShopId).collect(Collectors.toList()); - if(collect.contains(objectId) && collect.size() == 1){ - sysUser.setDelFlag("2"); - userService.updateById(sysUser); + 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.remove(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId()).eq(UserShop::getShopId, objectId)); + userShopService.removeById(userShop.getId()); } return R.ok(); } @@ -659,4 +737,29 @@ 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