Pu Zhibing
2025-01-04 9c7ddd3a1126bdd057300bc9c79e1a83f591212c
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;
@@ -26,6 +27,7 @@
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.*;
@@ -72,6 +74,9 @@
    
    @Resource
    private TokenService tokenService;
    @Autowired
    private ISysMenuService menuService;
    
    
    
@@ -121,12 +126,21 @@
        }
        user.setCreateBy(SecurityUtils.getUsername());
        user.setPassword(SecurityUtils.encryptPassword("a123456"));
        user.setRoleType(1);
        user.setRoleType(sysUser1.getRoleType());
        userService.insertUser(user);
        SysUserRole sysUserRole = new SysUserRole();
        sysUserRole.setRoleId(user.getRoleId());
        sysUserRole.setUserId(user.getUserId());
        userRoleService.insertSysUserRole(sysUserRole);
        //添加门店员工关系数据
        if(2 == user.getRoleType()){
            UserShop userShop = new UserShop();
            userShop.setUserId(user.getUserId());
            userShop.setShopId(user.getObjectId());
            userShop.setRoleType(2);
            userShop.setRoleId(user.getRoleId());
            userShopService.save(userShop);
        }
        return AjaxResult.success();
    }
    
@@ -214,6 +228,17 @@
        user.setUpdateBy(SecurityUtils.getUsername());
        user.setUpdateTime(new Date());
        userService.updateUser(user);
        //添加门店员工关系数据
        if(2 == user.getRoleType()){
            userShopService.remove(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId()));
            UserShop userShop = new UserShop();
            userShop.setUserId(user.getUserId());
            userShop.setShopId(user.getObjectId());
            userShop.setRoleType(2);
            userShop.setRoleId(user.getRoleId());
            userShopService.save(userShop);
        }
        return success();
    }
@@ -311,7 +336,7 @@
        }
        // 角色集合
        Set<String> roles = permissionService.getRolePermission(sysUser);
        // 权限集合
        // 权限集合getRolePermission
        Set<String> permissions = permissionService.getMenuPermission(sysUser);
        LoginUser sysUserVo = new LoginUser();
        sysUserVo.setSysUser(sysUser);
@@ -548,12 +573,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);
            //添加用户角色数据
@@ -561,17 +584,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
    @GetMapping("/switchShop")
    @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);
    }
}