Bladeren bron

Merge branch 'mazq-dataauth-modify' into 'feature/v2.0.0-data-auth'

数据授权保存为空修改

See merge request dcuc-tjdsj/auth-service!23
黄建赢 4 jaren geleden
bovenliggende
commit
eaa6b83b4b

+ 28 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/DataAuth.java

@@ -77,6 +77,18 @@ public class DataAuth implements IdEntity<String> {
     @Column(name = "CREATE_TIME")
     private Date createTime;
 
+    /**
+     * 更新人id
+     */
+    @Column(name = "UPDATE_USER")
+    private String updateUser;
+
+    /**
+     * 更新时间
+     */
+    @Column(name = "UPDATE_TIME")
+    private Date updateTime;
+
     /**
      * 删除人id
      */
@@ -206,4 +218,20 @@ public class DataAuth implements IdEntity<String> {
     public void setDataId(String dataId) {
         this.dataId = dataId;
     }
+
+    public String getUpdateUser() {
+        return updateUser;
+    }
+
+    public void setUpdateUser(String updateUser) {
+        this.updateUser = updateUser;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
 }

+ 24 - 13
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/DataAuthServiceImpl.java

@@ -187,20 +187,23 @@ public class DataAuthServiceImpl implements IDataAuthService {
     @Override
     public boolean subDataAuthAdd(SubDataAuthDTO subDataAuthDTO) {
         List<SubDataDTO> subDataList = subDataAuthDTO.getDataAuthList();
-        if (CollectionUtils.isEmpty(subDataList)) {
-            return false;
-        }
+        //过滤哪些权限需要删除,哪些权限需要新增
+        Date date = new Date();
+        String subId = subDataAuthDTO.getSubId();
+        String subType = subDataAuthDTO.getSubType();
+        String authType = subDataAuthDTO.getAuthType();
         String userId = null;
         BaseSecurityUser currentUser = UserContextUtils.getCurrentUser();
         if (null != currentUser) {
             userId = currentUser.getId();
         }
-        Date date = new Date();
-        String subId = subDataAuthDTO.getSubId();
-        String subType = subDataAuthDTO.getSubType();
-        String authType = subDataAuthDTO.getAuthType();
-        //过滤哪些权限需要删除,哪些权限需要新增
+        //传入权限为空时
+        //删除该主体下所有的权限
         List<DataAuth> existDataAuths = getDataAuthsBySub(subId, subType, authType);
+        if (CollectionUtils.isEmpty(subDataList)) {
+            delDataAuthList(date, userId, existDataAuths);
+            return true;
+        }
         Set<String> existSet = existDataAuths.stream()
                 .map(item -> item.getDataId() + ";" + item.getDataType())
                 .collect(Collectors.toSet());
@@ -213,6 +216,16 @@ public class DataAuthServiceImpl implements IDataAuthService {
         List<SubDataDTO> addList = subDataList.stream()
                 .filter(item -> addCollect.contains(item.getDataId() + ";" + item.getDataType()))
                 .collect(Collectors.toList());
+        addDataAuthList(date, subId, subType, authType, userId, addList);
+        //删除
+        List<DataAuth> delList = existDataAuths.stream()
+                .filter(item -> delCollect.contains(item.getDataId() + ";" + item.getDataType()))
+                .collect(Collectors.toList());
+        delDataAuthList(date, userId, delList);
+        return true;
+    }
+
+    private void addDataAuthList(Date date, String subId, String subType, String authType, String userId, List<SubDataDTO> addList) {
         for (SubDataDTO dto : addList) {
             DataAuth dataAuth = new DataAuth();
             dataAuth.setDataCode(dto.getDataCode());
@@ -227,17 +240,15 @@ public class DataAuthServiceImpl implements IDataAuthService {
             dataAuth.setDeleted(YesNotEnum.NO.getValue());
             dataAuthBPO.save(dataAuth);
         }
-        //删除
-        List<DataAuth> delList = existDataAuths.stream()
-                .filter(item -> delCollect.contains(item.getDataId() + ";" + item.getDataType()))
-                .collect(Collectors.toList());
+    }
+
+    private void delDataAuthList(Date date, String userId, List<DataAuth> delList) {
         for (DataAuth dataAuth : delList) {
             dataAuth.setDeleteUser(userId);
             dataAuth.setDeleteTime(date);
             dataAuth.setDeleted(BooleanEnum.TRUE.getValue());
             dataAuthBPO.update(dataAuth);
         }
-        return true;
     }
 
     @Override

+ 3 - 2
dcuc-auth-service/src/main/resources/config/mysql/V4_3_0004__Create_DataAuthTable.sql

@@ -1,4 +1,3 @@
--- 数据授权表添加
 CREATE TABLE `t_sub_data_auth` (
   `id` varchar(255) NOT NULL COMMENT '主键id',
   `sub_id` varchar(255) NOT NULL COMMENT '主体id',
@@ -8,6 +7,8 @@ CREATE TABLE `t_sub_data_auth` (
   `data_type` varchar(50) DEFAULT NULL COMMENT '数据资源类型',
   `create_user` varchar(255) DEFAULT NULL COMMENT '创建人',
   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  `update_user` varchar(255) DEFAULT NULL,
+  `update_time` datetime DEFAULT NULL,
   `delete_user` varchar(255) DEFAULT NULL COMMENT '删除人',
   `delete_time` datetime DEFAULT NULL COMMENT '删除时间',
   `deleted` varchar(6) DEFAULT NULL COMMENT '是否删除',
@@ -15,4 +16,4 @@ CREATE TABLE `t_sub_data_auth` (
   `classify_code` varchar(50) DEFAULT NULL COMMENT '数据对应的分级分类标签code',
   PRIMARY KEY (`id`),
   KEY `INX_SUB` (`sub_id`,`sub_type`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='主体数据授权表';

+ 3 - 0
dcuc-auth-service/src/main/resources/config/sql/V4_3_0005__Create_DataAuthTable.sql

@@ -11,6 +11,8 @@ CREATE TABLE "T_SUB_DATA_AUTH" (
 "DATA_TYPE" VARCHAR2(50 BYTE) NULL ,
 "CREATE_USER" VARCHAR2(255 BYTE) NULL ,
 "CREATE_TIME" TIMESTAMP(0)  NULL ,
+"UPDATE_USER" VARCHAR2(255 BYTE) NULL ,
+"UPDATE_TIME" TIMESTAMP(0)  NULL ,
 "DELETE_USER" VARCHAR2(255 BYTE) NULL ,
 "DELETE_TIME" TIMESTAMP(0)  NULL ,
 "DELETED" VARCHAR2(6 BYTE) NULL ,
@@ -35,6 +37,7 @@ COMMENT ON COLUMN "DELETE_TIME" IS '删除时间';
 COMMENT ON COLUMN "DELETED" IS '是否删除';
 COMMENT ON COLUMN "AUTH_TYPE" IS '数据属性授权类型 TABLE:表授权 COLUMN:列授权';
 COMMENT ON COLUMN "CLASSIFY_CODE" IS '数据对应的分级分类标签code';
+COMMENT ON TABLE "CLASSIFY_CODE" IS '主体数据授权表';
 
 -- ----------------------------
 -- Indexes structure for table T_SUB_DATA_AUTH