Преглед изворни кода

feat: add department priority

linwenhua пре 2 година
родитељ
комит
3e2b79cbb0

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

@@ -23,6 +23,7 @@ import com.inspur.device.client.core.relation.DeviceAllocateService;
 import com.inspur.service.media.MinioDataProviderService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.math3.analysis.function.Sin;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.BeanUtils;
@@ -36,9 +37,9 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 /**
- * @Author wangbo13
- * @Date 2022/11/25 14:58
- * @Version 1.0
+ * @author wangbo13
+ * @date 2022/11/25 14:58
+ * @version 1.0
  */
 @Slf4j
 @DubboService(interfaceClass = SmsbDepartmentService.class)
@@ -71,6 +72,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
         SmsbDepartmentDO department = SmsbDepartmentConvertor.toDataObjectForCreate(userId, smsbDepartmentAdd);
         department.setPath(smsbDepartmentAdd.getTenant()+pathFactory(smsbDepartmentAdd.getParentId(),smsbDepartmentAdd.getMark()));
         department.setOrderNo(orderNmFactory(smsbDepartmentAdd.getParentId()));
+        department.setPriority(smsbDepartmentAdd.getPriority());
         super.save(department);
         return SingleResponse.of(department);
     }
@@ -98,7 +100,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
         List<SmsbDepartmentDO> nextDepartment = super.list(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
             .in(SmsbDepartmentDO::getParentId, ids));
         if(!CollectionUtils.isEmpty(nextDepartment)){
-            removeDepartment(userId , nextDepartment.stream().map(i -> i.getId()).collect(Collectors.toList()));
+            removeDepartment(userId , nextDepartment.stream().map(SmsbDepartmentDO::getId).collect(Collectors.toList()));
         }
     }
 
@@ -106,6 +108,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
     public Response updateDepartment(String userId, SmsbDepartmentUpdate departmentUpdate) {
         boolean flag = super.update(new LambdaUpdateWrapper<>(SmsbDepartmentDO.class)
             .set(StringUtils.isNotBlank(departmentUpdate.getName()), SmsbDepartmentDO::getName, departmentUpdate.getName())
+                .set(departmentUpdate.getPriority() != null, SmsbDepartmentDO::getPriority, departmentUpdate.getPriority())
             .set(SmsbDepartmentDO::getUpdateBy, userId)
             .set(SmsbDepartmentDO::getUpdateTime, LocalDateTime.now())
             .eq(SmsbDepartmentDO::getId, departmentUpdate.getId()));
@@ -130,17 +133,16 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
 
     /**
      * 获取序号
-     *
-     * @param parentId
-     * @return
      */
     private Integer orderNmFactory(Long parentId){
-        if(Objects.isNull(parentId)) return 1;
+        if (Objects.isNull(parentId)) {
+            return 1;
+        }
         SmsbDepartmentDO department = super.getOne(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
             .eq(SmsbDepartmentDO::getParentId, parentId)
             .orderByDesc(SmsbDepartmentDO::getOrderNo)
             .last("limit 1"));
-        return Objects.isNull(department)?1:department.getOrderNo()+1;
+        return Objects.isNull(department) ? 1 : department.getOrderNo() + 1;
     }
 
     @Override
@@ -247,16 +249,12 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
 
     /**
      * 鉴权
-     *
-     * @param tenant
-     * @param userId
-     * @return
      */
     @Override
     public Response checkOperationAuthority(String userId , String tenant){
         try {
             String real = service.queryUserTenant(userId);
-            if(service.isExitTargetRole(userId ,Constant.SUPER_ADMIN) ||
+            if(Boolean.TRUE.equals(service.isExitTargetRole(userId ,Constant.SUPER_ADMIN)) ||
                 (StringUtils.isNotEmpty(real) && real.equals(tenant) && service.isExitTargetRole(userId , Constant.ROLE_ADMIN))){
                 return Response.buildSuccess();
             }
@@ -284,7 +282,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
         log.info("new user id:{}",addUserId);
         // 2、是否传递所属部门,不传递不做处理
         if(Objects.nonNull(smsbUserAdd.getDepartmentId())){
-            // 3、将部门信息写入keucloak的attibute
+            // 3、将部门信息写入 keycloak 的 attribute 
             smsbUserAdd.setPath(super.getById(smsbUserAdd.getDepartmentId()).getPath());
             service.addAttributesByUserId(addUserId , "org" , Collections.singletonList(smsbUserAdd.getPath()));
         }
@@ -307,9 +305,9 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
             result = departmentUserService.updateRelation(smsbRegrouping.getUserId(), null ,null);
         }
         // 2、关注设备权限判断
-        Response attentionResul = attentionService.userRegroupHandle(smsbRegrouping.getUserId(), path);
+        Response attentionResult = attentionService.userRegroupHandle(smsbRegrouping.getUserId(), path);
         // 3、更新attribute
-        if(result && attentionResul.isSuccess()){
+        if(Boolean.TRUE.equals(result) && attentionResult.isSuccess()){
             service.addAttributesByUserId(smsbRegrouping.getUserId() , "org" ,
                 Collections.singletonList(path));
             return Response.buildSuccess();
@@ -418,11 +416,19 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
         return departmentCO;
     }
 
+    @Override
+    public SingleResponse<SmsbDepartmentCO> getDepartmentByPath(String tenant, String departmentPath) {
+        SmsbDepartmentDO department = this.getOne(Wrappers.<SmsbDepartmentDO>lambdaQuery()
+            .eq(SmsbDepartmentDO::getPath, departmentPath)
+            .last("Limit 1"));
+        if (department != null) {
+            return SingleResponse.of(BeanCopyUtils.copy(department, SmsbDepartmentCO.class));
+        }
+        return SingleResponse.buildFailure("400", "not such department");
+    }
+
     /**
      * 简易参数
-     * @param children
-     * @param activate
-     * @return
      */
     private List<DeviceDepartmentSimpleDto> childRecurrenceHandleSimple(List<SmsbDepartmentCO> children , Boolean activate, Integer orderFlag){
         List<DeviceDepartmentSimpleDto> childrenList = Lists.newArrayList();
@@ -456,16 +462,18 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
     private SmsbDepartmentCO queryDepartment(String tenant , String org){
         SmsbDepartmentCO departmentCO = new SmsbDepartmentCO();
         departmentCO.setTenant(tenant);
-        if(StringUtils.isEmpty(org)){
+        if (StringUtils.isEmpty(org)) {
             departmentCO.setChildren(queryDepartmentList(tenant , null));
-        }else{
+        } else {
             SmsbDepartmentDO smsbDepartmentDO = super.getOne(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
                 .eq(SmsbDepartmentDO::getIsDel, 0)
                 .eq(SmsbDepartmentDO::getTenant, tenant)
                 .eq(SmsbDepartmentDO::getPath, org)
                 .last("LIMIT 1"));
-            if(Objects.nonNull(smsbDepartmentDO)){BeanUtils.copyProperties(smsbDepartmentDO , departmentCO);}
-            departmentCO.setChildren(this.getChilde(smsbDepartmentDO.getId()));
+            if (Objects.nonNull(smsbDepartmentDO)) {
+                BeanUtils.copyProperties(smsbDepartmentDO , departmentCO);
+                departmentCO.setChildren(this.getChilde(smsbDepartmentDO.getId()));
+            }
         }
         return departmentCO;
     }
@@ -542,9 +550,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
     /**
      * 获取当前部门及上级部门
      *
-     * @param allDepartments
      * @param present 当前部门
-     * @return
      */
     private List<SmsbDepartmentDO> getParentNodes(List<SmsbDepartmentDO> allDepartments , SmsbDepartmentDO present){
         List<SmsbDepartmentDO> parents = Lists.newArrayList();

+ 3 - 0
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/org/SmsbDepartmentService.java

@@ -2,6 +2,7 @@ package com.inspur.customer.client.org;
 
 import com.alibaba.cola.dto.PageResponse;
 import com.alibaba.cola.dto.Response;
+import com.alibaba.cola.dto.SingleResponse;
 import com.inspur.customer.object.org.*;
 
 import java.util.List;
@@ -134,6 +135,8 @@ public interface SmsbDepartmentService {
      */
     DeviceDepartmentSimpleDto listNextLevelDepartmentDevice(DeviceDepartmentCmd departmentCmd);
 
+    SingleResponse<SmsbDepartmentCO> getDepartmentByPath(String tenant, String departmentPath);
+
     /**
      * 冒泡获取上级部门列表
      *

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

@@ -26,4 +26,6 @@ public class SmsbDepartmentAdd extends OperationAuthority {
      */
     @NotNull(message = "mark不能为空")
     private String mark;
+
+    private Integer priority = SmsbDepartmentCO.DEFAULT_PRIORITY;
 }

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

@@ -14,8 +14,11 @@ import java.util.List;
  */
 @Data
 public class SmsbDepartmentCO implements Serializable {
+
     private static final long serialVersionUID = 2989462647060311429L;
 
+    public static final Integer DEFAULT_PRIORITY = 5;
+
     private Long id;
     /**
      * 父节点id
@@ -39,6 +42,8 @@ public class SmsbDepartmentCO implements Serializable {
      */
     private Integer orderNo;
 
+    private Integer priority = DEFAULT_PRIORITY;
+
     /**
      * 租户
      */
@@ -71,4 +76,8 @@ public class SmsbDepartmentCO implements Serializable {
 
     @JsonInclude(JsonInclude.Include.NON_NULL)
     private List<SmsbDepartmentCO> children = new ArrayList<>();
+
+    public Integer getDepartmentPriority() {
+        return this.priority != null ? this.priority : DEFAULT_PRIORITY;
+    }
 }

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

@@ -27,4 +27,6 @@ public class SmsbDepartmentUpdate extends Command {
      */
     @NotNull(message = "name不能为空")
     private String name;
+
+    private Integer priority;
 }

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

@@ -19,6 +19,7 @@ import java.time.LocalDateTime;
 @Data
 @TableName("smsb_department")
 public class SmsbDepartmentDO implements Serializable {
+
     private static final long serialVersionUID = -2282747602419984961L;
 
     @TableId
@@ -52,6 +53,11 @@ public class SmsbDepartmentDO implements Serializable {
      */
     private String tenant;
 
+    /**
+     * department priority
+     */
+    private Integer priority;
+
     /**
      * 删除标识
      */