ソースを参照

修改组织和修改用户接口修改,用户密码不会修改

songxinlu 3 年 前
コミット
0e45030ae3

+ 2 - 1
common/src/main/java/com/lantone/common/vo/AddHospitalUserVO.java

@@ -23,7 +23,8 @@ public class AddHospitalUserVO implements Serializable {
     private static final long serialVersionUID = 1L;
 
 
-
+    @ApiModelProperty(value = "编号")
+    private Long id;
     @ApiModelProperty(value = "用户名" ,required = true)
     @NotBlank(message = "用户名不能为空")
     private String username;

+ 57 - 10
security-center/src/main/java/com/lantone/security/facade/HospitalManagementFacade.java

@@ -25,6 +25,7 @@ import com.lantone.common.vo.AddRoleVO;
 import com.lantone.common.vo.AddUserVO;
 import com.lantone.common.vo.GetHospitalListInfoVO;
 import com.lantone.common.vo.UpdateHospitalVO;
+import com.lantone.common.vo.UpdateUserVO;
 import com.lantone.dblayermbg.entity.Dept;
 import com.lantone.dblayermbg.entity.Hospital;
 import com.lantone.dblayermbg.entity.HospitalUser;
@@ -181,7 +182,7 @@ public class HospitalManagementFacade {
                 addHospitalTreeVO.getHospitals().add(hospitalId);
                 addUserVO.setAddHospitalTreeVO(addHospitalTreeVO);
             }
-
+            addUserVO.setPassword(null);
             return userManagementFacade.addUser(addUserVO);
         } else {
             Asserts.fail("角色插入失败");
@@ -189,6 +190,51 @@ public class HospitalManagementFacade {
         return false;
     }
 
+
+    /**
+     * @param hospitalId
+     * @param addHospitalVO
+     * @Description修改组织的用户
+     * @Return boolean
+     */
+    private boolean updateUser(Long hospitalId, AddHospitalVO addHospitalVO) {
+
+        //1.添加角色
+        AddRoleVO addRoleVO = new AddRoleVO();
+        addRoleVO.setName(addHospitalVO.getName() + "组织管理角色");
+        addRoleVO.setRemark("ManagementRole");
+        addRoleVO.setStatus("1");
+        Long insertHospitalId = 0l;
+        if ((HospitalTypeEnum.DEPT.getKey() + "").equals(addHospitalVO.getType())) {
+            insertHospitalId = addHospitalVO.getParentId();
+        } else {
+            insertHospitalId = hospitalId;
+        }
+        addRoleVO.setHospitalId(insertHospitalId);
+        addRoleVO.setSoftwares(addHospitalVO.getSoftwares());
+        if (roleManagementFacade.addRole(addRoleVO)) {
+            //2.获取角色id完善新增用户信息
+            Long roleId = roleFacade.list(new QueryWrapper<Role>()
+                    .eq("name", addHospitalVO.getName() + "组织管理角色")
+                    .eq("hospital_id", insertHospitalId)).get(0).getId();
+            //拼装添加用户信息
+            UpdateUserVO updateUserVO = new UpdateUserVO();
+            BeanUtils.copyProperties(addHospitalVO.getAddHospitalUserVO(), updateUserVO);
+            //用户与角色的关系
+            updateUserVO.setRoles(new ArrayList<>());
+            updateUserVO.getRoles().add(roleId);
+            updateUserVO.setName(addHospitalVO.getName() + "管理员");
+            //用户与组织的关系(医院、科室)
+            AddHospitalTreeVO addHospitalTreeVO = new AddHospitalTreeVO();
+            addHospitalTreeVO.setHospitals(new ArrayList<>());
+            addHospitalTreeVO.getHospitals().add(hospitalId);
+            updateUserVO.setAddHospitalTreeVO(addHospitalTreeVO);
+            return userManagementFacade.updateUser(updateUserVO);
+        } else {
+            Asserts.fail("角色插入失败");
+        }
+        return false;
+    }
     /**
      * @param hospitalId
      * @Description删除组织
@@ -260,6 +306,7 @@ public class HospitalManagementFacade {
         if (userIds.size() > 1) {
             Asserts.fail("该组织的管理用户存在多个,请联系管理员~");
         }
+        //这里的角色和用户都是真实删除的
         //2.获取角色id
         List<Long> roleIds = userRoleFacade.getBaseMapper().getUserRoleById(userIds.get(0));
         if (ListUtil.isEmpty(roleIds)) {
@@ -268,16 +315,16 @@ public class HospitalManagementFacade {
         //通过角色id删除原来角色相关管理关系
         AtomicBoolean deleteFlag = new AtomicBoolean(false);
         roleIds.stream().forEach(roleId -> {
-            deleteFlag.set(roleManagementFacade.deleteRole(roleId));
+            deleteFlag.set(roleManagementFacade.delete(roleId));
         });
-        if (deleteFlag.get()) {
-            //3.删除用户
-            return userManagementFacade.deleteUser(userIds.get(0));
-        } else {
-            Asserts.fail("管理角色删除失败");
-        }
+//        if (deleteFlag.get()) {
+//            //3.删除用户
+//            return userManagementFacade.deleteUser(userIds.get(0));
+//        } else {
+//            Asserts.fail("管理角色删除失败");
+//        }
 
-        return false;
+        return deleteFlag.get();
     }
 
     /**
@@ -332,7 +379,7 @@ public class HospitalManagementFacade {
                     BeanUtils.copyProperties(updateHospitalVO, addHospitalVO);
                     addHospitalVO.setAddHospitalUserVO(updateHospitalVO.getAddHospitalUserVO());
                     addHospitalVO.setSoftwares(updateHospitalVO.getSoftwares());
-                    return saveUser(updateHospitalVO.getId(), addHospitalVO);
+                    return updateUser(updateHospitalVO.getId(), addHospitalVO);
                 }
             } else {
                 Asserts.fail("原组织管理用户信息清除失败,请联系管理员");

+ 22 - 0
security-center/src/main/java/com/lantone/security/facade/RoleManagementFacade.java

@@ -128,6 +128,28 @@ public class RoleManagementFacade {
         return false;
     }
 
+
+    /**
+     * @param roleId
+     * @Description删除角色
+     * @Return java.lang.Boolean
+     */
+    public Boolean delete(Long roleId) {
+        if (roleFacade.remove(new UpdateWrapper<Role>()
+                .eq("id", roleId)
+                .eq("is_deleted", IsDeleteEnum.N.getKey()))) {
+            if (roleSoftwareMenuFacade.remove(new UpdateWrapper<RoleSoftwareMenu>()
+                    .eq("role_id", roleId)
+                    .eq("is_deleted", IsDeleteEnum.N.getKey()))) {
+                return roleSoftwareResourceFacade.remove(new UpdateWrapper<RoleSoftwareResource>()
+                        .eq("role_id", roleId)
+                        .eq("is_deleted", IsDeleteEnum.N.getKey()));
+            }
+        } else {
+            Asserts.fail("角色删除失败");
+        }
+        return false;
+    }
     /**
      * @param roleId
      * @param status

+ 11 - 13
security-center/src/main/java/com/lantone/security/facade/UserManagementFacade.java

@@ -201,24 +201,20 @@ public class UserManagementFacade {
         loginCheck();
         //2.当前用户是否已存在
         //添加时判断
+        List<User> users = userFacade.list(new QueryWrapper<User>()
+                .eq("username", user.getUsername()));
         if (user.getId() == null) {
-            if (userFacade.list(new QueryWrapper<User>()
-                    .eq("username", user.getUsername())).size() > 0) {
+            if (ListUtil.isNotEmpty(users)) {
                 Asserts.fail("该用户已存在,请更换用户名");
             }
             //修改时判断
         } else {
-            User userTemp = userFacade.getById(user.getId());
-            if (userTemp == null) {
-                Asserts.fail("用户不存,请刷新重试~");
-            }
-            //用户名没有变动
-            if (!user.getUsername().equals(userTemp.getUsername())) {
-                if (userFacade.list(new QueryWrapper<User>()
-                        .eq("username", user.getUsername())
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())).size() > 0) {
-                    Asserts.fail("该用户已存在,请更换用户名");
-                }
+            if (ListUtil.isNotEmpty(users)) {
+                users.stream().forEach(user1 -> {
+                    if(!user.getId().equals(user1.getId())){
+                        Asserts.fail("该用户已存在,请更换用户名");
+                    }
+                });
             }
         }
         //3.校验插入用户所属组织是否正常
@@ -516,6 +512,8 @@ public class UserManagementFacade {
                 deptFlag = true;
             }
             checkUser(user, deptFlag, updateUserVO.getAddHospitalTreeVO().getHospitals(), updateUserVO.getRoles());
+            //修改用户不修改密码
+            user.setPassword(null);
             if (userFacade.updateById(user)) {
                 //2.插入用户新关联的医院、科室
                 return saveUserHospital(updateUserVO.getAddHospitalTreeVO(), updateUserVO.getId(), updateUserVO.getRoles());