Эх сурвалжийг харах

fix:组织与账号鉴权以及字段优化

wangbo 2 жил өмнө
parent
commit
bef00ed593

+ 8 - 7
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/org/SmsbDepartmentController.java

@@ -68,16 +68,16 @@ public class SmsbDepartmentController {
     @PutMapping("/admin/users/regrouping")
     public Response regrouping(@RequestHeader String userId,
                                @Valid @RequestBody SmsbRegrouping smsbRegrouping){
-        Response checkResponse = departmentService.checkOperationAuthority(userId, smsbRegrouping.getTenant());
+        Response checkResponse = departmentService.checkOperationAuthority(userId, userService.getOneByUserId(
+            smsbRegrouping.getUserId()).getTenant());
         if(!checkResponse.isSuccess()){return checkResponse;}
         return departmentService.regrouping(smsbRegrouping);
     }
 
     @DeleteMapping("/admin/users/{uId}")
     public Response enableSwitch(@RequestHeader String userId,
-                                 @PathVariable("uId") String uId,
-                                 @Valid @RequestBody OperationAuthority authority){
-        Response checkResponse = departmentService.checkOperationAuthority(userId, authority.getTenant());
+                                 @PathVariable("uId") String uId){
+        Response checkResponse = departmentService.checkOperationAuthority(userId, userService.getOneByUserId(uId).getTenant());
         if(!checkResponse.isSuccess()){return checkResponse;}
         if(userService.removeUser(uId)){
             return service.removeUser(uId);
@@ -103,7 +103,8 @@ public class SmsbDepartmentController {
     @PutMapping("/admin/users/enabled")
     public Response enableSwitch(@RequestHeader String userId,
                                  @RequestBody SwitchDTO switchDTO){
-        Response checkResponse = departmentService.checkOperationAuthority(userId, switchDTO.getTenant());
+        Response checkResponse = departmentService.checkOperationAuthority(userId, userService.getOneByUserId(switchDTO.getUserId())
+            .getTenant());
         if(!checkResponse.isSuccess()){return checkResponse;}
         Boolean flag = userService.enableSwitch(switchDTO);
         if(flag){
@@ -115,11 +116,11 @@ public class SmsbDepartmentController {
     @PutMapping("/admin/users/update")
     public Response updateUserFirstName(@RequestHeader String userId ,
                                         @RequestBody SmsbUserUpdate userUpdate){
-        Response checkResponse = departmentService.checkOperationAuthority(userId, userUpdate.getTenant());
+        Response checkResponse = departmentService.checkOperationAuthority(userId, userService.getOneByUserId(userUpdate.getUserId()).getTenant());
         if(!checkResponse.isSuccess()){return checkResponse;}
         Boolean flag = userService.updateUserFirstName(userUpdate);
         if(flag){
-            return service.updateUser(userUpdate.getUserId() , userUpdate.getFamilyName() , Constant.UPDATE_USER_FIRSTNAME);
+            return service.updateUser(userUpdate.getUserId() , userUpdate.getName() , Constant.UPDATE_USER_FIRSTNAME);
         }
         return Response.buildFailure("500","用户名修改失败!");
     }

+ 1 - 1
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/keycloak/KeycloakServiceImpl.java

@@ -274,7 +274,7 @@ public class KeycloakServiceImpl implements KeycloakService {
         userRepresentation.setGroups(Collections.singletonList(user.getTenant()));
         userRepresentation.setEnabled(Boolean.TRUE);
         userRepresentation.setCredentials(user.getCredentials());
-        userRepresentation.setFirstName(user.getFamilyName());
+        userRepresentation.setFirstName(user.getName());
         if(Objects.nonNull(getUserIdByName(userRepresentation.getUsername()))){
             return SingleResponse.buildFailure("400","该用户名已存在!");
         }

+ 12 - 12
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/org/SmsbDepartmentServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.ws.rs.NotFoundException;
 import java.time.LocalDateTime;
 import java.util.Collections;
 import java.util.List;
@@ -52,6 +53,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
     public Response addDepartment(String userId , SmsbDepartmentAdd smsbDepartmentAdd) {
         List<SmsbDepartmentDO> departments = this.list(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
             .eq(SmsbDepartmentDO::getTenant, smsbDepartmentAdd.getTenant())
+            .eq(SmsbDepartmentDO::getIsDel , 0)
             .eq(SmsbDepartmentDO::getMark, smsbDepartmentAdd.getMark()));
         if(!CollectionUtils.isEmpty(departments)){return Response.buildFailure("500",
             "部门标识["+smsbDepartmentAdd.getMark()+"]在租户["+smsbDepartmentAdd.getTenant()+"]中已存在!");}
@@ -147,14 +149,8 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
 
     @Override
     public PageResponse<SmsbSimpleUserCO> queryDepartmentUserList(SmsbDepartmentCmd departmentCmd) {
-        if(Objects.nonNull(departmentCmd.getDepartmentId())){
-            // 部门id不为空,path过滤
-            departmentCmd.setTenant(super.getById(departmentCmd.getDepartmentId()).getPath());
-            return departmentUserService.queryUserPageByDeprIds(departmentCmd , 1);
-        }else{
-            // 部门id为空,tenant过滤
-            return departmentUserService.queryUserPageByDeprIds(departmentCmd , 2);
-        }
+        return departmentUserService.queryUserPageByDeprIds(departmentCmd ,
+            Objects.nonNull(departmentCmd.getDepartmentId()) ? super.getById(departmentCmd.getDepartmentId()).getPath() : null);
     }
 
     private List<SmsbDepartmentCO> getChilde(Long id){
@@ -180,10 +176,14 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
      */
     @Override
     public Response checkOperationAuthority(String userId , String tenant){
-        String real = service.queryUserTenant(userId);
-        if(service.isExitTargetRole(userId ,Constant.SUPER_ADMIN) ||
-            (StringUtils.isNotEmpty(real) && real.equals(tenant) && service.isExitTargetRole(userId , Constant.ROLE_ADMIN))){
-            return Response.buildSuccess();
+        try {
+            String real = service.queryUserTenant(userId);
+            if(service.isExitTargetRole(userId ,Constant.SUPER_ADMIN) ||
+                (StringUtils.isNotEmpty(real) && real.equals(tenant) && service.isExitTargetRole(userId , Constant.ROLE_ADMIN))){
+                return Response.buildSuccess();
+            }
+        }catch (NotFoundException ex){
+            return Response.buildFailure("401","无权操作!");
         }
         return Response.buildFailure("401","无权操作!");
     }

+ 27 - 12
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/org/SmsbDepartmentUserServiceImpl.java

@@ -18,11 +18,13 @@ import com.inspur.customer.infrastructure.object.org.SmsbDepartmentUserDO;
 import com.inspur.customer.object.keycloak.SwitchDTO;
 import com.inspur.customer.object.org.*;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @Author wangbo13
@@ -48,19 +50,20 @@ public class SmsbDepartmentUserServiceImpl extends ServiceImpl<SmsbDepartmentUse
     }
 
     @Override
-    public PageResponse<SmsbSimpleUserCO> queryUserPageByDeprIds(SmsbDepartmentCmd departmentCmd, Integer oprateFlag) {
+    public PageResponse<SmsbSimpleUserCO> queryUserPageByDeprIds(SmsbDepartmentCmd departmentCmd, String path) {
         Page<SmsbDepartmentUserDO> page = new Page<>(departmentCmd.getPageIndex(), departmentCmd.getPageSize());
         LambdaQueryWrapper<SmsbDepartmentUserDO> queryWrapper = Wrappers.lambdaQuery();
-        switch (oprateFlag){
-            case 1:
-                switch (departmentCmd.getRecursive()){
-                    case 0: queryWrapper.eq(SmsbDepartmentUserDO::getPath , departmentCmd.getTenant());break;
-                    case 1: queryWrapper.likeRight(SmsbDepartmentUserDO::getPath , departmentCmd.getTenant());break;
-                    default: break;
-                }
-                break;
-            case 2: queryWrapper.eq(SmsbDepartmentUserDO::getTenant , departmentCmd.getTenant());break;
-            default: break;
+        if(StringUtils.isNotEmpty(path)){
+            switch (departmentCmd.getRecursive()){
+                case 0: queryWrapper.eq(SmsbDepartmentUserDO::getPath , path);break;
+                case 1: queryWrapper.likeRight(SmsbDepartmentUserDO::getPath , path);break;
+                default: break;
+            }
+        }else{
+            queryWrapper.eq(SmsbDepartmentUserDO::getTenant , departmentCmd.getTenant());
+            if(departmentCmd.getRecursive() == 0){
+                queryWrapper.isNull(SmsbDepartmentUserDO::getPath);
+            }
         }
         queryWrapper.orderByDesc(SmsbDepartmentUserDO::getCreateTime);
         page = this.page(page, queryWrapper);
@@ -111,7 +114,19 @@ public class SmsbDepartmentUserServiceImpl extends ServiceImpl<SmsbDepartmentUse
     @Override
     public Boolean updateUserFirstName(SmsbUserUpdate userUpdate) {
         return super.update(new LambdaUpdateWrapper<>(SmsbDepartmentUserDO.class)
-            .set(SmsbDepartmentUserDO::getFamilyName , userUpdate.getFamilyName())
+            .set(SmsbDepartmentUserDO::getName , userUpdate.getName())
             .eq(SmsbDepartmentUserDO::getUserId , userUpdate.getUserId()));
     }
+
+    @Override
+    public SmsbSimpleUserCO getOneByUserId(String userId) {
+        SmsbDepartmentUserDO user = super.getOne(new LambdaQueryWrapper<>(SmsbDepartmentUserDO.class)
+            .eq(SmsbDepartmentUserDO::getUserId, userId)
+            .last("limit 1"));
+        SmsbSimpleUserCO simpleUser = new SmsbSimpleUserCO();
+        if(Objects.nonNull(user)){
+            BeanUtils.copyProperties(user , simpleUser);
+        }
+        return simpleUser;
+    }
 }

+ 11 - 5
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/org/SmsbDepartmentUserService.java

@@ -34,14 +34,11 @@ public interface SmsbDepartmentUserService {
 
     /**
      * 通过部门id获取用户id
-     * oprateFlag:1 path过滤
-     * oprateFlag:2 tenant过滤
      *
      * @param departmentCmd
-     * @param oprateFlag
      * @return
      */
-    PageResponse<SmsbSimpleUserCO> queryUserPageByDeprIds(SmsbDepartmentCmd departmentCmd ,Integer oprateFlag);
+    PageResponse<SmsbSimpleUserCO> queryUserPageByDeprIds(SmsbDepartmentCmd departmentCmd ,String path);
 
 
     /**
@@ -78,10 +75,19 @@ public interface SmsbDepartmentUserService {
     Boolean removeUserDepartmentRelation(String path);
 
     /**
-     * 修改用户familyName
+     * 修改用户name
      *
      * @param userUpdate
      * @return
      */
     Boolean updateUserFirstName(SmsbUserUpdate userUpdate);
+
+
+    /**
+     * get simple user
+     *
+     * @param userId
+     * @return
+     */
+    SmsbSimpleUserCO getOneByUserId(String userId);
 }

+ 1 - 1
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/org/SmsbSimpleUserCO.java

@@ -36,7 +36,7 @@ public class SmsbSimpleUserCO implements Serializable {
     /**
      * 用户名
      */
-    private String familyName;
+    private String name;
 
     /**
      * 租户

+ 2 - 2
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/org/SmsbUserAdd.java

@@ -37,8 +37,8 @@ public class SmsbUserAdd extends OperationAuthority {
     /**
      * 用户中文名
      */
-    @NotNull(message = "familyName不能为空")
-    private String familyName;
+    @NotNull(message = "name不能为空")
+    private String name;
 
     /**
      * 权证

+ 2 - 2
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/org/SmsbUserUpdate.java

@@ -24,6 +24,6 @@ public class SmsbUserUpdate extends OperationAuthority{
     /**
      * 用户中文名
      */
-    @NotNull(message = "familyName不能为空")
-    private String familyName;
+    @NotNull(message = "name不能为空")
+    private String name;
 }

+ 1 - 1
smsb-customer-manager-infrastructure/src/main/java/com/inspur/customer/infrastructure/convertor/SmsbDepartmentConvertor.java

@@ -32,7 +32,7 @@ public class SmsbDepartmentConvertor {
     public static SmsbDepartmentUserDO toDataObjectForCreate(String userId, SmsbUserAdd smsbUserAdd){
         SmsbDepartmentUserDO userRelation = new SmsbDepartmentUserDO();
         userRelation.setUserId(userId);
-        userRelation.setFamilyName(smsbUserAdd.getFamilyName());
+        userRelation.setName(smsbUserAdd.getName());
         userRelation.setUserName(smsbUserAdd.getUsername());
         userRelation.setDepartmentId(smsbUserAdd.getDepartmentId());
         userRelation.setPath(smsbUserAdd.getPath());

+ 1 - 2
smsb-customer-manager-infrastructure/src/main/java/com/inspur/customer/infrastructure/object/org/SmsbDepartmentUserDO.java

@@ -44,8 +44,7 @@ public class SmsbDepartmentUserDO implements Serializable {
     /**
      * 用户名
      */
-    @TableField("family_name")
-    private String familyName;
+    private String name;
 
     /**
      * 账号