无关风月
2024-09-03 56dfe0d4bf81262622a1919cceb2b039fd356209
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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
@@ -15,11 +16,13 @@
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.annotation.RequiresPermissions;
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;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.getVolumeProductionRkQuery;
import com.ruoyi.system.api.feignClient.ManagementClient;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.system.api.validate.InsertGroup;
import com.ruoyi.system.api.validate.UpdateGroup;
@@ -43,6 +46,7 @@
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -70,7 +74,8 @@
public class SysUserController extends BaseController {
    @Autowired
    private ISysUserService userService;
    @Resource
    private TokenService tokenService;
    @Autowired
    private ISysRoleService roleService;
@@ -92,12 +97,15 @@
    @Autowired
    private ISysUserRoleService sysUserRoleService;
    @Autowired
    private ManagementClient managementClient;
    /**
     * 获取用户列表
     */
    @PostMapping("/list")
    @ApiOperation("账号管理列表")
    public AjaxResult list(@Validated @RequestBody SysUserQuery query) {
        tokenService.getLoginUser();
        PageInfo<SysUser> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());
        PageInfo<SysUser> page = userService.getList(pageInfo, query.getNickName(),
                query.getPhonenumber(), query.getStatus(),query.getDeptId());
@@ -112,12 +120,25 @@
    @ApiOperation("添加账号")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@Validated(InsertGroup.class) @RequestBody SysUserDTO dto) {
        tokenService.getLoginUser();
        SysUser user = BeanUtils.copyBean(dto, SysUser.class);
        user.setUserId(null);
        user.setUserType("01");
        // 添加为平台管理员
        user.setUserType("00");
        user.setUserName(user.getPhonenumber());
        if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
            user.setNickName(user.getPhonenumber());
        }
        SysUser one = userService.getOne(new QueryWrapper<SysUser>()
                .ne("user_type", "02")
                .eq("phonenumber", dto.getPhonenumber())
                .eq("del_flag", "0"));
        if (one!=null){
            if (one.getUserType().equals("03")){
                return error("添加失败,该账号为仓库管理员账号");
            }else{
                return error("手机号已开通账号");
            }
        }
        if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
            return error("手机号已开通账号");
@@ -148,6 +169,7 @@
    @GetMapping("/{userId}")
    public AjaxResult getInfo(
            @ApiParam(value = "用户ID", required = true) @PathVariable(value = "userId", required = true) Long userId) {
        tokenService.getLoginUser();
        userService.checkUserDataScope(userId);
        AjaxResult ajax = AjaxResult.success();
        List<SysRole> roles = roleService.selectRoleAll();
@@ -160,7 +182,7 @@
            ajax.put("roleId", sysUser.getRoleId());
            ajax.put("roleName", sysUser.getRoleName());
        }
        return AjaxResult.success(ajax);
        return ajax;
    }
@@ -171,6 +193,18 @@
    @PutMapping("/update")
    @ApiOperation("编辑账号")
    public AjaxResult edit(@Validated(UpdateGroup.class) @RequestBody SysUserDTO dto) {
        tokenService.getLoginUser();
        SysUser two = userService.getOne(new QueryWrapper<SysUser>()
                .ne("user_type", "02")
                .eq("phonenumber", dto.getPhonenumber())
                .eq("del_flag", "0"));
        if (two!=null){
            if (two.getUserType().equals("03")){
                return error("添加失败,该账号为仓库管理员账号");
            }else{
                return error("手机号已开通账号");
            }
        }
        SysUser user = BeanUtils.copyBean(dto, SysUser.class);
        user.setUserName(user.getPhonenumber());
        if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
@@ -211,6 +245,11 @@
        SysRole byId = roleService.selectRoleById(dto.getRoleId());
        user.setRoleName(byId.getRoleName());
        user.setRoleId(dto.getRoleId());
        // 原来的role
        SysUserRole one = userRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId,dto.getUserId() ));
        one.setRoleId(dto.getRoleId());
        //更新新的role
        userRoleService.updateSysUserRole(one);
        return toAjax(userService.updateById(user));
    }
@@ -300,7 +339,6 @@
    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
    @RequiresPermissions("system:user:export")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysUser user) {
        List<SysUser> list = userService.selectUserList(user);
@@ -315,7 +353,6 @@
    }
    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    @RequiresPermissions("system:user:import")
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
@@ -335,7 +372,9 @@
        if (StringUtils.isNull(sysUser)) {
            return R.fail("用户名或密码错误");
        }
        String data = managementClient.isHaveCKZY(sysUser.getUserId().toString()).getData();
        LoginUser sysUserVo = new LoginUser();
        sysUser.setIsHaveCk(data);
        sysUserVo.setSysUser(sysUser);
        if (sysUser.getUserType().equals("00")) {
            // 角色集合
@@ -394,7 +433,6 @@
    /**
     * 重置密码
     */
    @RequiresPermissions("system:user:edit")
    @ApiOperation("重置密码")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PostMapping("/resetPwd")
@@ -404,13 +442,34 @@
        if (StringUtils.isNull(user)) {
            throw new ServiceException("账号不存在");
        }
        userService.checkUserAllowed(user);
        userService.checkUserDataScope(user.getUserId());
        user.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
        user.setPassword(SecurityUtils.encryptPassword("a123456"));
        user.setUpdateBy(SecurityUtils.getUsername());
        return toAjax(userService.resetPwd(user));
    }
    @ApiOperation("修改密码")
    @PostMapping("/updatePwd")
    public AjaxResult updatePwd(@RequestBody ResetPwdDTO dto) {
        // 判断旧密码是否和当前密码是否匹配
        SysUser one = userService.getOne(new QueryWrapper<SysUser>()
                .eq("phonenumber", dto.getPhonenumber())
                .eq("del_flag", 0));
        if (one == null){
            return AjaxResult.error("账号不存在");
        }
        if (SecurityUtils.matchesPassword(dto.getPassword(),one.getPassword())) {
            return AjaxResult.error("新密码不能和旧密码一致");
        }
        if (!SecurityUtils.matchesPassword(dto.getOldPassword(),one.getPassword())){
            return AjaxResult.error("旧密码错误");
        }
        one.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
        userService.updateById(one);
        return AjaxResult.success();
    }
    /**
     * 获取当前用户信息
@@ -433,7 +492,6 @@
    /**
     * 状态修改
     */
    @RequiresPermissions("system:user:edit")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PutMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody SysUser user) {
@@ -446,7 +504,6 @@
    /**
     * 根据用户编号获取授权角色
     */
    @RequiresPermissions("system:user:query")
    @GetMapping("/authRole/{userId}")
    public AjaxResult authRole(@PathVariable("userId") Long userId) {
        AjaxResult ajax = AjaxResult.success();
@@ -460,7 +517,6 @@
    /**
     * 用户授权角色
     */
    @RequiresPermissions("system:user:edit")
    @Log(title = "用户管理", businessType = BusinessType.GRANT)
    @PutMapping("/authRole")
    public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
@@ -472,7 +528,6 @@
    /**
     * 获取部门树列表
     */
    @RequiresPermissions("system:user:list")
    @GetMapping("/deptTree")
    public AjaxResult deptTree(SysDept dept) {
        return success(deptService.selectDeptTreeList(dept));
@@ -610,11 +665,18 @@
    public R<PageDTO<ConservatorVO>> getConservatorPage(@Validated @RequestBody ConservatorQuery query) {
        return R.ok(userService.getConservatorPage(query));
    }
    @ApiOperation(value = "根据仓库等级和所在地获取管理员列表--不分页", notes = "获取仓库管理分页列表")
    @PostMapping("/conservator-page2")
    public R<List<SysUser>> getConservatorPage2(@RequestBody ConservatorQueryA query) {
        tokenService.getLoginUser();
        return R.ok(userService.getConservatorPage2(query));
    }
    @ApiOperation(value = "获取仓库管理员不分页列表", notes = "获取仓库管理分页列表")
    @PostMapping("/conservator-page1")
    public R<List<SysUser>> getConservatorPage1() {
        return R.ok(userService.getConservatorPage1());
    @GetMapping("/conservator-page1/{grade}")
    public R<List<SysUser>> getConservatorPage1(@PathVariable("grade") String grade) {
        tokenService.getLoginUser();
        return R.ok(userService.getConservatorPage1(grade));
    }
    /**
@@ -625,8 +687,8 @@
    @ApiOperation(value = "添加/编辑仓库管理", notes = "添加/编辑仓库管理")
    @PostMapping("/save-conservator")
    public R<?> saveConservator(@Validated @RequestBody ConservatorDTO dto) {
        userService.saveConservator(dto);
        return R.ok();
        return userService.saveConservator(dto);
    }
    /**