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

feature(主客体授权-数据安全等级、数据分级功能开发): 主客体授权-数据安全等级、数据分级功能开发

主客体授权-数据安全等级、数据分级功能开发
mazq 4 жил өмнө
parent
commit
1391f0c533

+ 17 - 10
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/attr/controller/AttrController.java → src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AttrController.java

@@ -1,13 +1,15 @@
-package com.dragoninfo.dcuc.authweb.restcontroller.attr.controller;
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
-import com.dragoninfo.dcuc.auth.auth.dto.attr.AttrAcceptDTO;
+import com.dragoninfo.dcuc.auth.auth.dto.attr.AttrInfoDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.attr.AttrRelAcceptDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.attr.RelSearchDTO;
 import com.dragoninfo.dcuc.auth.auth.facade.attr.IAttrFacade;
-import com.dragoninfo.dcuc.authweb.restcontroller.attr.vo.AttrAcceptVo;
-import com.dragoninfo.dcuc.authweb.restcontroller.attr.vo.AttrRelAcceptVo;
-import com.dragoninfo.dcuc.authweb.restcontroller.attr.vo.RelSearchVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr.AttrInfoVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr.AttrRelAcceptVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr.RelSearchVo;
 import com.dragoninfo.dcuc.authweb.util.VersionUtils;
 import com.dragoninfo.duceap.core.response.Result;
 import io.swagger.annotations.Api;
@@ -38,10 +40,12 @@ public class AttrController {
     private IAttrFacade attrFacade;
 
     @ApiOperation(value = "添加主客体属性")
-    @ApiImplicitParam(name = "AttrAcceptVo", value = "主体属性新增Vo")
+    @ApiImplicitParam(name = "AttrInfoVo", value = "主客体属性Vo")
     @PostMapping(value = "attrAdds")
-    public Result attrAdds(@RequestBody AttrAcceptVo vo){
-        AttrAcceptDTO dto = new AttrAcceptDTO();
+    public Result attrAdds(@RequestBody AttrInfoVo vo){
+        String voStr = JSON.toJSONString(vo);
+        AttrInfoDTO dto = JSON.parseObject(voStr, new TypeReference<AttrInfoDTO>() {{
+        }});
         BeanUtils.copyProperties(vo,dto);
         Boolean b = attrFacade.attrSave(dto);
         if (b) {
@@ -74,8 +78,11 @@ public class AttrController {
     @ApiImplicitParam(name = "attrType", value = "属性类别  SUB:主体属性 OBJ:客体属性")
     @GetMapping(value = "getAttrTreeList")
     public Result getAttrTreeList(@RequestParam("attrType") String attrType) {
-         List<AttrAcceptDTO> list = attrFacade.getAttrTreeList(attrType);
-         return Result.success(list);
+         List<AttrInfoDTO> list = attrFacade.getAttrTreeList(attrType);
+        String dtoStr = JSON.toJSONString(list);
+        List<AttrInfoVo> voList = JSON.parseObject(dtoStr, new TypeReference<List<AttrInfoVo>>() {{
+        }});
+        return Result.success(voList);
     }
 
     @ApiOperation(value = "属性关联主客体关系添加")

+ 92 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataLevelController.java

@@ -0,0 +1,92 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.dto.sub.DataLevelDTO;
+import com.dragoninfo.dcuc.app.facade.sub.IDataLevelFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataLevelVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Api(tags = {"主客体授权-数据分级表码接口"})
+@RestController
+@RequestMapping(value = "/datalevelsvr/"+ VersionUtils.VERSION_UID)
+public class DataLevelController {
+
+    @Autowired
+    private IDataLevelFacade dataLevelFacade;
+
+    @ApiOperation(value = "数据分级分页列表")
+    @ApiImplicitParam(name = "Searchable", value = "Searchable 数据分级分页查询对象,查询条件 levelName like ")
+    @PostMapping(value = "search")
+    public Result dataLevelPageList(Searchable searchable) {
+        Page<DataLevelDTO> page = dataLevelFacade.pageSearch(searchable.toSearchDTO());
+        List<DataLevelDTO> content = page.getContent();
+        List<DataLevelVo> vos = content.stream().map(item -> {
+            DataLevelVo vo = new DataLevelVo();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        return Result.success(page.getTotalElements(), vos);
+    }
+
+
+    @ApiOperation(value = "添加或修改数据分级")
+    @ApiImplicitParam(name = "DataLevelVo", value = "数据分级Vo")
+    @PostMapping(value = "dataLevel/save")
+    public Result dataLevelAdd(@RequestBody DataLevelVo vo){
+        DataLevelDTO dto = new DataLevelDTO();
+        BeanUtils.copyProperties(vo,dto);
+        DataLevelDTO dataLevelDTO = dataLevelFacade.saveOrUpdate(dto);
+        return Result.success(dataLevelDTO.getId());
+    }
+
+    @ApiOperation(value = "数据分级详情")
+    @ApiImplicitParam(name = "id", value = "数据分级id")
+    @GetMapping(value = "detail/{id}")
+    public Result<DataLevelVo> detail(@PathVariable("id") String id){
+        DataLevelDTO dataLevel = dataLevelFacade.detail(id);
+        DataLevelVo vo = new DataLevelVo();
+        BeanUtils.copyProperties(dataLevel, vo);
+        return Result.success(vo);
+    }
+
+    @ApiOperation(value = "根据code查询数据安全等级详情")
+    @ApiImplicitParam(name = "levelCode", value = "levelCode: 数据安全等级代码")
+    @GetMapping(value = "detailByCode/{levelCode}")
+    public Result<DataLevelVo> detailByCode(@PathVariable("levelCode") String levelCode){
+        DataLevelDTO dto = dataLevelFacade.detailByCode(levelCode);
+        DataLevelVo vo = new DataLevelVo();
+        BeanUtils.copyProperties(dto, vo);
+        return Result.success(vo);
+    }
+
+
+    @ApiOperation(value = "数据分级删除")
+    @ApiImplicitParam(name = "id", value = "数据分级id")
+    @DeleteMapping(value = "deleteById/{id}")
+    public Result deleteById(@PathVariable("id") String id){
+        Boolean b = dataLevelFacade.deleteById(id);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+
+}

+ 93 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataSecurityLevelController.java

@@ -0,0 +1,93 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.dto.sub.DataSecDTO;
+import com.dragoninfo.dcuc.app.facade.sub.IDataSecFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataSecVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Api(tags = {"主客体授权-数据安全等级表码接口"})
+@RestController
+@RequestMapping(value = "/datasecsvr/"+ VersionUtils.VERSION_UID)
+public class DataSecurityLevelController {
+
+    @Autowired
+    private IDataSecFacade dataSecFacade;
+
+    @ApiOperation(value = "添加或修改数据安全等级")
+    @ApiImplicitParam(name = "DataSecurityLevelVo", value = "数据安全等级Vo")
+    @PostMapping(value = "dataSecLevel/save")
+    public Result dataLevelAdd(@RequestBody DataSecVo vo){
+        DataSecDTO dto = new DataSecDTO();
+        BeanUtils.copyProperties(vo,dto);
+        DataSecDTO sec = dataSecFacade.saveOrUpdate(dto);
+        return Result.success(sec.getId());
+    }
+
+    @ApiOperation(value = "数据安全等级分页列表")
+    @ApiImplicitParam(name = "Searchable", value = "Searchable 安全等级分页查询对象,查询条件 secName like ")
+    @PostMapping(value = "search")
+    public Result dataLevelPageList(Searchable searchable) {
+        Page<DataSecDTO> page = dataSecFacade.pageSearch(searchable.toSearchDTO());
+        List<DataSecDTO> content = page.getContent();
+        List<DataSecVo> vos = content.stream().map(item -> {
+            DataSecVo vo = new DataSecVo();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        return Result.success(page.getTotalElements(), vos);
+    }
+
+
+    @ApiOperation(value = "数据安全等级详情")
+    @ApiImplicitParam(name = "id", value = "id: 数据安全等级id")
+    @GetMapping(value = "detail/{id}")
+    public Result<DataSecVo> detail(@PathVariable("id") String id){
+        DataSecDTO dataSec = dataSecFacade.detail(id);
+        DataSecVo vo = new DataSecVo();
+        BeanUtils.copyProperties(dataSec, vo);
+        return Result.success(vo);
+    }
+
+    @ApiOperation(value = "根据code查询数据安全等级详情")
+    @ApiImplicitParam(name = "secCode", value = "secCode: 数据安全等级代码")
+    @GetMapping(value = "detailByCode/{secCode}")
+    public Result<DataSecVo> detailByCode(@PathVariable("secCode") String secCode){
+        DataSecDTO dataSec = dataSecFacade.detailByCode(secCode);
+        DataSecVo vo = new DataSecVo();
+        BeanUtils.copyProperties(dataSec, vo);
+        return Result.success(vo);
+    }
+
+
+
+    @ApiOperation(value = "数据安全等级删除")
+    @ApiImplicitParam(name = "id", value = "数据安全等级id")
+    @DeleteMapping(value = "deleteById/{id}")
+    public Result deleteById(@PathVariable("id") String id){
+        Boolean b = dataSecFacade.deleteById(id);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+
+}

+ 3 - 3
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/attr/vo/AttrAcceptVo.java → src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/AttrInfoVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.authweb.restcontroller.attr.vo;
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -12,7 +12,7 @@ import java.util.List;
  */
 @Data
 @ApiModel(value = "主客体属性新增Vo")
-public class AttrAcceptVo {
+public class AttrInfoVo {
 
     @ApiModelProperty(value = "id 主键id")
     private String id;
@@ -39,5 +39,5 @@ public class AttrAcceptVo {
     private String deleted;
 
     @ApiModelProperty(value = "子类集合")
-    private List<AttrAcceptVo> child;
+    private List<AttrInfoVo> child;
 }

+ 1 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/attr/vo/AttrRelAcceptVo.java → src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/AttrRelAcceptVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.authweb.restcontroller.attr.vo;
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/attr/vo/RelSearchVo.java → src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/RelSearchVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.authweb.restcontroller.attr.vo;
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 26 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataLevelVo.java

@@ -0,0 +1,26 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "数据分级Vo")
+public class DataLevelVo {
+
+    @ApiModelProperty(value = "id 主键")
+    private String id;
+
+    @ApiModelProperty(value = "levelCode 代码")
+    private String levelCode;
+
+    @ApiModelProperty(value = "levelName 数据分级")
+    private String levelName;
+
+    @ApiModelProperty(value = "remark 说明")
+    private String remark;
+}

+ 26 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataSecVo.java

@@ -0,0 +1,26 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "数据安全等级Vo")
+public class DataSecVo {
+
+    @ApiModelProperty(value = "id: 主键")
+    private String id;
+
+    @ApiModelProperty(value = "secCode: 代码")
+    private String secCode;
+
+    @ApiModelProperty(value = "secName: 数据安全级别")
+    private String secName;
+
+    @ApiModelProperty(value = "remark: 说明")
+    private String remark;
+}

+ 1 - 1
src/main/resources/application-mazq.yml

@@ -29,7 +29,7 @@ management:
 duceap:
   swagger:
     enabled: true
-    package-path: com.dragoninfo.dcuc.authweb.restcontroller.app,com.dragoninfo.dcuc.authweb.restcontroller.auth
+    package-path: com.dragoninfo.dcuc.authweb.restcontroller.app,com.dragoninfo.dcuc.authweb.restcontroller.auth,com.dragoninfo.dcuc.authweb.restcontroller.sub
   license:
     #配置用来指定license对接的后端项目地址(格式:ip:port/context,如http://10.10.10.10:8080/ctx),
     #默认使用HttpServletRequest.getLocalAddr()方法获取ip地址,