From b22df417e0bc423c788b013feaad686531d69eed Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 08 一月 2025 09:51:37 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 152 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 123 insertions(+), 29 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 5651b84..f801929 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 @@ -1,6 +1,7 @@ package com.ruoyi.system.controller; 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.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; @@ -10,6 +11,7 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.api.domain.SysRole; @@ -25,11 +27,13 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -69,6 +73,12 @@ @Resource private UserShopService userShopService; + @Resource + private TokenService tokenService; + + @Autowired + private ISysMenuService menuService; + @@ -77,7 +87,7 @@ * 获取用户列表 */ @GetMapping("/list") - @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理"}) + @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理", "门店后台-部门管理"}) public AjaxResult list(GetSysUserList getSysUserList) { PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize()); PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList); @@ -88,7 +98,7 @@ * 获取用户选择列表 */ @PostMapping("/getChangeUserList") - @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表"}) + @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表", "门店后台-部门管理"}) public AjaxResult<PageInfo<SysUser>> getChangeUserList(@RequestBody ChangeUserQuery query) { return AjaxResult.success(userService.getChangeUserList(query)); } @@ -98,9 +108,11 @@ */ @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping("/add") - @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理"}) + @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()); } @@ -110,14 +122,42 @@ if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { return error("登录账号重复"); } - user.setCreateBy(SecurityUtils.getUsername()); - user.setPassword(SecurityUtils.encryptPassword("a123456")); - user.setRoleType(1); - userService.insertUser(user); - SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setRoleId(user.getRoleId()); - sysUserRole.setUserId(user.getUserId()); - userRoleService.insertSysUserRole(sysUserRole); + //门店员工添加数据,需要判断账号是否存在,共用同一个账号 + if(2 == sysUser1.getRoleType()){ + 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){ + user.setCreateBy(SecurityUtils.getUsername()); + user.setPassword(SecurityUtils.encryptPassword("a123456")); + user.setRoleType(sysUser1.getRoleType()); + user.setObjectId(sysUser1.getObjectId()); + userService.insertUser(user); + one = user; + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(user.getRoleId()); + sysUserRole.setUserId(user.getUserId()); + userRoleService.insertSysUserRole(sysUserRole); + } + //添加门店员工关系数据 + 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")); + user.setRoleType(sysUser1.getRoleType()); + userService.insertUser(user); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(user.getRoleId()); + sysUserRole.setUserId(user.getUserId()); + userRoleService.insertSysUserRole(sysUserRole); + } return AjaxResult.success(); } @@ -141,7 +181,7 @@ /** * 根据用户编号获取详细信息 */ - @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理"}) + @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理", "门店后台-部门管理"}) @GetMapping("/getInfo/{userId}") public AjaxResult getInfo(@PathVariable Long userId) { userService.checkUserDataScope(userId); @@ -151,6 +191,17 @@ 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())); @@ -164,7 +215,7 @@ */ @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/update") - @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理"}) + @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) public AjaxResult edit(@Validated @RequestBody SysUser user) { user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ @@ -205,6 +256,18 @@ user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateTime(new Date()); userService.updateUser(user); + + //添加门店员工关系数据 + 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(); } @@ -214,7 +277,7 @@ */ @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理"}) + @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) public AjaxResult remove(@PathVariable Long[] userIds) { if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { return error("当前用户不能删除"); @@ -226,7 +289,7 @@ @PostMapping("/shopUserStart") - @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理"}) + @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理", "门店后台-部门管理"}) public AjaxResult shopUserStart(@RequestBody ShopUserStart shopUserStart) { if (shopUserStart.getUserId() == null) { return AjaxResult.error("userId不能为空"); @@ -302,7 +365,7 @@ } // 角色集合 Set<String> roles = permissionService.getRolePermission(sysUser); - // 权限集合 + // 权限集合getRolePermission Set<String> permissions = permissionService.getMenuPermission(sysUser); LoginUser sysUserVo = new LoginUser(); sysUserVo.setSysUser(sysUser); @@ -352,7 +415,7 @@ */ @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") - @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理"}) + @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理", "门店后台-部门管理"}) public AjaxResult resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); @@ -539,12 +602,10 @@ */ @ResponseBody @PostMapping("/saveShopUser") - public R saveShopUser(@RequestBody SysUser user){ - Integer shopId = user.getObjectId(); + 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())); if(null == one){ - user.setObjectId(null); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); userService.save(user); //添加用户角色数据 @@ -552,17 +613,50 @@ userRole.setUserId(user.getUserId()); userRole.setRoleId(2L); userRoleService.save(userRole); - }else{ - user = one; } - //添加门店关系数据 - UserShop userShop = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, shopId).eq(UserShop::getUserId, user.getAppUserId())); - if(null == userShop){ - userShop = new UserShop(); - userShop.setUserId(user.getUserId().intValue()); - userShop.setShopId(user.getObjectId()); - userShopService.save(userShop); + 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<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); + } + userShopService.remove(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId()).eq(UserShop::getShopId, objectId)); } 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); + } } -- Gitblit v1.7.1