Selaa lähdekoodia

优化人员管理

zhou-hao 7 vuotta sitten
vanhempi
commit
0fa9b7eb06

+ 22 - 0
hsweb-system/hsweb-system-organizational/hsweb-system-organizational-controller/src/main/java/org/hswebframework/web/controller/organizational/PersonController.java

@@ -77,6 +77,28 @@ public class PersonController implements SimpleGenericEntityController<PersonEnt
         return getDetail(authorization.getPersonnel().getId());
     }
 
+    @PutMapping("/me")
+    @AccessLogger("修改个人信息")
+    @Authorize(merge = false)
+    public ResponseMessage<String> updateMePersonInfo(@RequestBody PersonAuthBindEntity bindEntity) {
+        PersonnelAuthorization authorization = PersonnelAuthorization
+                .current()
+                .orElseThrow(NotFoundException::new);
+        PersonAuthBindEntity old = personService
+                .selectAuthBindByPk(authorization.getPersonnel().getId());
+
+        bindEntity.setUserId(old.getUserId());
+        bindEntity.setId(old.getId());
+        bindEntity.setPositionIds(null);
+
+        if (bindEntity.getPersonUser() != null) {
+            bindEntity.getPersonUser().setUsername(old.getPersonUser().getUsername());
+        }
+
+        personService.updateByPk(bindEntity);
+        return ResponseMessage.ok();
+    }
+
     @GetMapping("/me/authorization")
     @AccessLogger("查看当前登录用户的人员权限信息")
     @Authorize(merge = false)

+ 0 - 2
hsweb-system/hsweb-system-organizational/hsweb-system-organizational-entity/src/main/java/org/hswebframework/web/entity/organizational/PersonAuthBindEntity.java

@@ -21,8 +21,6 @@ package org.hswebframework.web.entity.organizational;
 import java.util.Set;
 
 /**
- * TODO 完成注释
- *
  * @author zhouhao
  */
 public interface PersonAuthBindEntity extends PersonEntity {

+ 31 - 21
hsweb-system/hsweb-system-organizational/hsweb-system-organizational-service/hsweb-system-organizational-service-simple/src/main/java/org/hswebframework/web/service/organizational/simple/SimplePersonService.java

@@ -65,7 +65,7 @@ import static org.springframework.util.StringUtils.isEmpty;
 public class SimplePersonService extends GenericEntityService<PersonEntity, String>
         implements PersonService, PersonnelAuthorizationManager, AuthorizationSettingTypeSupplier {
 
-    private static String SETTING_TYPE_PERSON   = "person";
+    private static String SETTING_TYPE_PERSON = "person";
     private static String SETTING_TYPE_POSITION = "position";
 
     @Autowired
@@ -197,22 +197,30 @@ public class SimplePersonService extends GenericEntityService<PersonEntity, Stri
             bindEntity.setUserId("");
             return;
         }
-        //获取所有职位
-        Set<String> positionIds = bindEntity.getPositionIds();
-        if (positionIds.isEmpty()) {
-            return;
-        }
+
         //是否使用了权限管理的userService.
         if (null == userService) {
             logger.warn("userService not ready!");
             return;
         }
-        //获取职位实体
-        List<PositionEntity> positionEntities = DefaultDSLQueryService.createQuery(positionDao)
-                .where().in(PositionEntity.id, positionIds)
-                .listNoPaging();
-        if (positionEntities.isEmpty()) {
-            return;
+        //获取所有职位
+        Set<String> positionIds = bindEntity.getPositionIds();
+        Set<String> roleIds;
+
+        if (positionIds == null) {
+            roleIds = null;
+        } else if (positionIds.isEmpty()) {
+            roleIds = new HashSet<>();
+        } else {
+            //获取职位实体
+            List<PositionEntity> positionEntities = DefaultDSLQueryService.createQuery(positionDao)
+                    .where().in(PositionEntity.id, positionIds)
+                    .listNoPaging();
+            roleIds = positionEntities.stream()
+                    .map(PositionEntity::getRoles)
+                    .filter(Objects::nonNull)
+                    .flatMap(List::stream)
+                    .collect(Collectors.toSet());
         }
         //获取用户是否存在
         UserEntity oldUser = userService.selectByUsername(bindEntity.getPersonUser().getUsername());
@@ -231,18 +239,20 @@ public class SimplePersonService extends GenericEntityService<PersonEntity, Stri
                             userService.update(oldUser.getId(), user);
                             return oldUser.getId();
                         };
-        //初始化用户信息
-        //全部角色信息
-        Set<String> roleIds = positionEntities.stream()
-                .map(PositionEntity::getRoles)
-                .filter(Objects::nonNull)
-                .flatMap(List::stream)
-                .collect(Collectors.toSet());
-        BindRoleUserEntity userEntity = entityFactory.newInstance(BindRoleUserEntity.class);
+        UserEntity userEntity;
+
+        if (roleIds != null) {
+            BindRoleUserEntity tmp = entityFactory.newInstance(BindRoleUserEntity.class);
+            tmp.setRoles(new ArrayList<>(roleIds));
+            userEntity = tmp;
+        } else {
+            userEntity = entityFactory.newInstance(UserEntity.class);
+        }
+
         userEntity.setUsername(bindEntity.getPersonUser().getUsername());
         userEntity.setPassword(bindEntity.getPersonUser().getPassword());
         userEntity.setName(bindEntity.getName());
-        userEntity.setRoles(new ArrayList<>(roleIds));
+
         String userId = userOperationFunction.apply(userEntity);
         bindEntity.setUserId(userId);
     }