123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- package com.dragoninfo.dcuc.authweb.restcontroller.sub;
- import com.dragoninfo.dcuc.app.entity.ApplyInfo;
- import com.dragoninfo.dcuc.auth.sub.dto.RelSearchDTO;
- import com.dragoninfo.dcuc.auth.sub.dto.ServiceRelSearchDTO;
- import com.dragoninfo.dcuc.auth.sub.facade.IAttrFacade;
- import com.dragoninfo.dcuc.auth.sub.vo.*;
- import com.dragoninfo.dcuc.authweb.util.VersionUtils;
- import com.dragoninfo.duceap.core.response.Result;
- import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
- import com.dragonsoft.duceap.core.search.Searchable;
- import com.dragonsoft.duceap.core.search.filter.Condition;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- /**
- * 主客体属性管理controller
- * @author mazq
- * @date 2021/5/20
- */
- @Slf4j
- @Api(tags = {"主客体授权-属性管理接口"})
- @RestController
- @RequestMapping(value = "/attrsvr/"+ VersionUtils.VERSION_UID)
- public class AttrController {
- @Autowired
- private IAttrFacade attrFacade;
- @ApiOperation(value = "添加主客体属性")
- @ApiImplicitParam(name = "AttrInfoTreeVo", value = "主客体属性Vo")
- @PostMapping(value = "attrAdds")
- public Result attrAdds(@RequestBody AttrInfoAddVo vo){
- ResponseStatus response = attrFacade.attrSave(vo);
- if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
- return Result.success();
- } else {
- return Result.fail(ResponseStatus.FAIL_CODE, response.getMessage());
- }
- }
- @ApiOperation(value = "根据id,删除本级下的所有主客体属性,包括本级")
- @ApiImplicitParam(name = "id", value = "本级id")
- @GetMapping(value = "deleteAllById")
- public Result deleteAllById(@RequestParam("id") String id) {
- Boolean b = attrFacade.deleteAllById(id);
- if (b) {
- return Result.success();
- } else {
- return Result.fail();
- }
- }
- @ApiOperation(value = "根据属性所属类别获取属性列表,返回树结构")
- @ApiImplicitParam(name = "attrSubType", value = "属性类别 SUB:主体属性 OBJ:客体属性")
- @GetMapping(value = "getAttrTreeList")
- public Result getAttrTreeList(@RequestParam("attrSubType") String attrSubType) {
- List<AttrInfoTreeVo> list = attrFacade.getAttrTreeList(attrSubType);
- return Result.success(list);
- }
- @ApiOperation(value = "属性关联主客体关系添加")
- @ApiImplicitParam(name = "attrRelAcceptVo", value = "主客体-属性关联关系添加对象")
- @PostMapping(value = "attrRelAdd")
- public Result attrRelAdd(@RequestBody AttrRelAcceptVo vo) {
- Boolean b = attrFacade.relAdd(vo);
- if (b) {
- return Result.success();
- } else {
- return Result.fail();
- }
- }
- @ApiOperation(value = "查询属性关联的应用列表")
- @ApiImplicitParam(name = "RelSearchVo",
- value = "searchable 列表查询条件[attrId: 属性id op: =] [id: 应用id op:=] [code:应用code op:=] [status: 在用状态 op: =]")
- @PostMapping(value = "relAppPage")
- public Result relAppPage(Searchable searchable) {
- RelSearchDTO dto = new RelSearchDTO();
- setUpSearchValues(dto, searchable);
- Page<ApplyInfoRelVo> page = attrFacade.relAppPage(dto);
- return Result.success(page.getTotalElements(),page.getContent());
- }
- @ApiOperation(value = "查询属性未关联的应用列表")
- @ApiImplicitParam(name = "RelSearchVo",
- value = "searchable 列表查询条件[attrId: 属性id op: =] [id: 应用id op:=] [code:应用code op:like] [status: 在用状态 op: =]")
- @PostMapping(value = "notRelAppPage")
- public Result notRelAppPage(Searchable searchable) {
- RelSearchDTO dto = new RelSearchDTO();
- setUpSearchValues(dto, searchable);
- Page<ApplyInfoVo> page = attrFacade.notRelAppPage(dto);
- return Result.success(page.getTotalElements(),page.getContent());
- }
- @ApiOperation(value = "查询属性关联的服务列表")
- @ApiImplicitParam(name = "RelSearchVo",
- value = "searchable 列表查询条件[attrId: 属性id op: =] [name: 服务名称 op:like] [code:服务code op:like] [appCode:应用code op: =] [status: 在用状态 op: =]")
- @PostMapping(value = "relServicePage")
- public Result<List<ServiceRelVo>> relServicePage(Searchable searchable) {
- ServiceRelSearchDTO dto = new ServiceRelSearchDTO();
- setUpServiceSearchValues(dto, searchable);
- Page<ServiceRelVo> page = attrFacade.relServicePage(dto);
- attrFacade.relServicePage(dto);
- return Result.success(page.getTotalElements(),page.getContent());
- }
- @ApiOperation(value = "查询属性未关联的服务列表")
- @ApiImplicitParam(name = "RelSearchVo",
- value = "searchable 列表查询条件[attrId: 属性id op: =] [name: 服务名称 op:like] [code:服务code op:like] [appCode:应用code op: =] [status: 在用状态 op: =]")
- @PostMapping(value = "notRelServicePage")
- public Result<List<ServiceResourceVo>> notRelServicePage(Searchable searchable) {
- ServiceRelSearchDTO dto = new ServiceRelSearchDTO();
- setUpServiceSearchValues(dto, searchable);
- Page<ServiceResourceVo> page = attrFacade.notRelServicePage(dto);
- return Result.success(page.getTotalElements(),page.getContent());
- }
- @ApiOperation(value = "删除单个被关联的记录")
- @ApiImplicitParam(name = "attrRelId",
- value = "attrRelId 关联记录的id")
- @GetMapping(value = "delAttrRelResource")
- public Result<List<ServiceResourceVo>> delAttrRelResource(@RequestParam("attrRelId") String attrRelId) {
- Boolean b = attrFacade.delAttrRelResource(attrRelId);
- if (b) {
- return Result.success();
- } else {
- return Result.fail();
- }
- }
- private <T extends ServiceRelSearchDTO> void setUpServiceSearchValues(T dto, Searchable searchable) {
- setUpSearchValues(dto, searchable);
- Condition appCodeCondition = searchable.getSearchFilterByKey("appCode_eq");
- if(null != appCodeCondition) {
- dto.setAppCode(appCodeCondition.getValue().toString());
- }
- }
- private <T extends RelSearchDTO> void setUpSearchValues(T dto, Searchable searchable) {
- Condition idCondition = searchable.getSearchFilterByKey("id_eq");
- Condition nameCondition = searchable.getSearchFilterByKey("name_like");
- Condition attrIdEq = searchable.getSearchFilterByKey("attrId_eq");
- dto.setAttrId(attrIdEq.getValue().toString());
- if(null != idCondition) {
- dto.setId(idCondition.getValue().toString());
- }
- if(null != nameCondition) {
- dto.setName(nameCondition.getValue().toString());
- }
- Condition statusCondition = searchable.getSearchFilterByKey("status_eq");
- if(null != statusCondition) {
- dto.setStatus(statusCondition.getValue().toString());
- }
- dto.setPage(searchable.getPageNumber());
- dto.setSize(searchable.getPageSize());
- }
- }
|