Selaa lähdekoodia

fix:问题修复
1、引入账号中文名称
2、部门树存在多个缺陷

wangbo 2 vuotta sitten
vanhempi
sitoutus
b305bb3b57

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

@@ -10,6 +10,7 @@ import com.inspur.customer.object.keycloak.KeycloakUserCO;
 import com.inspur.customer.object.keycloak.SwitchDTO;
 import com.inspur.customer.object.keycloak.UsersRoleMappingDTO;
 import com.inspur.customer.object.org.SmsbDepartmentCmd;
+import com.inspur.customer.object.org.SmsbUserAdd;
 import com.inspur.customer.object.wechat.Pair;
 import com.inspur.customer.constant.Constant;
 import lombok.extern.slf4j.Slf4j;
@@ -267,12 +268,13 @@ public class KeycloakServiceImpl implements KeycloakService {
     }
 
     @Override
-    public SingleResponse addKeyClaokUser(String userName , String tenant , List<CredentialRepresentation> credentials) {
+    public SingleResponse addKeyClaokUser(SmsbUserAdd user) {
         UserRepresentation userRepresentation = new UserRepresentation();
-        userRepresentation.setUsername(userName);
-        userRepresentation.setGroups(Collections.singletonList(tenant));
+        userRepresentation.setUsername(user.getUsername());
+        userRepresentation.setGroups(Collections.singletonList(user.getTenant()));
         userRepresentation.setEnabled(Boolean.TRUE);
-        userRepresentation.setCredentials(credentials);
+        userRepresentation.setCredentials(user.getCredentials());
+        userRepresentation.setFirstName(user.getFamilyName());
         if(Objects.nonNull(getUserIdByName(userRepresentation.getUsername()))){
             return SingleResponse.buildFailure("400","该用户名已存在!");
         }
@@ -313,6 +315,7 @@ public class KeycloakServiceImpl implements KeycloakService {
             case Constant.RESET_ATTRBUTE:
                 UserRepresentation userRepresentation = (UserRepresentation) representation;
                 user.setEmail(Optional.ofNullable(userRepresentation.getEmail()).orElse(null));
+                user.setFirstName(userRepresentation.getFirstName());
                 user.setAttributes(userRepresentation.getAttributes());
             default:
                 break;

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

@@ -118,14 +118,18 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
 
     @Override
     public Response queryDepartmentList(String tenant) {
-        SmsbDepartmentDO department = super.getOne(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
+        List<SmsbDepartmentDO> departmentList = super.list(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
             .eq(SmsbDepartmentDO::getTenant, tenant)
-            .isNull(SmsbDepartmentDO::getParentId)
-            .last("LIMIT 1"));
-        SmsbDepartmentCO smsbDepartmentCO = new SmsbDepartmentCO();
-        BeanUtils.copyProperties(department , smsbDepartmentCO);
-        smsbDepartmentCO.setChildren(this.getChilde(department.getId()));
-        return SingleResponse.of(smsbDepartmentCO);
+            .isNull(SmsbDepartmentDO::getParentId));
+        List<SmsbDepartmentCO> departmentTree = Lists.newArrayList();
+        departmentList.forEach(department->{
+            SmsbDepartmentCO smsbDepartmentCO = new SmsbDepartmentCO();
+            BeanUtils.copyProperties(department , smsbDepartmentCO);
+            smsbDepartmentCO.setChildren(this.getChilde(department.getId()));
+            departmentTree.add(smsbDepartmentCO);
+        });
+        log.info("tree num is :{}",departmentTree.size());
+        return SingleResponse.of(departmentTree);
     }
 
     @Override
@@ -183,7 +187,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
     @Override
     public Response addKeyClaokUser(String userId ,SmsbUserAdd smsbUserAdd) {
         // 1、keycloak新增账号
-        SingleResponse addUserResponse = service.addKeyClaokUser(smsbUserAdd.getUsername(),smsbUserAdd.getTenant() ,smsbUserAdd.getCredentials());
+        SingleResponse addUserResponse = service.addKeyClaokUser(smsbUserAdd);
         if(!addUserResponse.isSuccess()){return addUserResponse;}
         String addUserId = (String)addUserResponse.getData();
         log.info("new user id:{}",addUserId);

+ 3 - 4
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/keycloak/KeycloakService.java

@@ -5,6 +5,7 @@ import com.alibaba.cola.dto.SingleResponse;
 import com.inspur.customer.object.keycloak.KeycloakUserCO;
 import com.inspur.customer.object.keycloak.UsersRoleMappingDTO;
 import com.inspur.customer.object.org.SmsbDepartmentCmd;
+import com.inspur.customer.object.org.SmsbUserAdd;
 import com.inspur.customer.object.wechat.Pair;
 import org.keycloak.representations.idm.CredentialRepresentation;
 import org.keycloak.representations.idm.GroupRepresentation;
@@ -119,12 +120,10 @@ public interface KeycloakService {
     /**
      * 添加用户
      *
-     * @param userName
-     * @param tenant
-     * @param credentials
+     * @param smsbUserAdd
      * @return
      */
-    SingleResponse addKeyClaokUser(String userName ,String tenant , List<CredentialRepresentation> credentials);
+    SingleResponse addKeyClaokUser(SmsbUserAdd smsbUserAdd);
 
     /**
      * 更新用户信息

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

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