From 56dfe0d4bf81262622a1919cceb2b039fd356209 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 03 九月 2024 16:52:49 +0800
Subject: [PATCH] 代码提交 bug解决

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java |   94 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 78 insertions(+), 16 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 7913af9..d24c355 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.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();
@@ -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);
     }
 
     /**

--
Gitblit v1.7.1