diff --git a/src/main/java/ink/wgink/gatewaymanage/controller/api/api/permission/ApiPermissionController.java b/src/main/java/ink/wgink/gatewaymanage/controller/api/api/permission/ApiPermissionController.java index 28fbca2..6de5fcd 100644 --- a/src/main/java/ink/wgink/gatewaymanage/controller/api/api/permission/ApiPermissionController.java +++ b/src/main/java/ink/wgink/gatewaymanage/controller/api/api/permission/ApiPermissionController.java @@ -2,6 +2,7 @@ package ink.wgink.gatewaymanage.controller.api.api.permission; import ink.wgink.common.base.DefaultBaseController; import ink.wgink.exceptions.ParamsException; +import ink.wgink.gatewaymanage.pojo.dtos.api.ApiClaimDTO; import ink.wgink.gatewaymanage.pojo.dtos.api.ApiDTO; import ink.wgink.gatewaymanage.service.api.permission.IApiPermissionService; import ink.wgink.gatewaymanage.service.claim.IClaimService; @@ -69,7 +70,7 @@ public class ApiPermissionController extends DefaultBaseController { }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("listpage-claim/{claimType}") - public SuccessResultList> listPageClaim(@PathVariable("claimType") String claimType, ListPage page) { + public SuccessResultList> listPageClaim(@PathVariable("claimType") String claimType, ListPage page) { if (!StringUtils.equals(IClaimService.CLAIM_TYPE_ALL, claimType) && !StringUtils.equals(IClaimService.CLAIM_TYPE_CLAIM, claimType) && !StringUtils.equals(IClaimService.CLAIM_TYPE_UNCLAIMED, claimType)) { diff --git a/src/main/java/ink/wgink/gatewaymanage/dao/api/IApiDao.java b/src/main/java/ink/wgink/gatewaymanage/dao/api/IApiDao.java index 0cf2da1..c7204cb 100644 --- a/src/main/java/ink/wgink/gatewaymanage/dao/api/IApiDao.java +++ b/src/main/java/ink/wgink/gatewaymanage/dao/api/IApiDao.java @@ -135,4 +135,13 @@ public interface IApiDao extends IInitBaseTable { * @throws SearchException */ ExamineDTO getExamineResult(Map params) throws SearchException; + + /** + * 接口ID列表 + * + * @param params + * @return + * @throws SearchException + */ + List listId(Map params) throws SearchException; } \ No newline at end of file diff --git a/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiClaimDTO.java b/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiClaimDTO.java new file mode 100644 index 0000000..98ca6bc --- /dev/null +++ b/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiClaimDTO.java @@ -0,0 +1,26 @@ +package ink.wgink.gatewaymanage.pojo.dtos.api; + +import ink.wgink.gatewaymanage.pojo.dtos.claim.ClaimDTO; +import io.swagger.annotations.ApiModel; + +/** + * + * @ClassName: ApiClaimDTO + * @Description: 接口认领 + * @Author: CodeFactory + * @Date: 2021-08-16 14:50:40 + * @Version: 3.0 + **/ +@ApiModel +public class ApiClaimDTO extends ApiDTO { + + private ClaimDTO claim; + + public ClaimDTO getClaim() { + return claim == null ? new ClaimDTO() : claim; + } + + public void setClaim(ClaimDTO claim) { + this.claim = claim; + } +} diff --git a/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiDTO.java b/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiDTO.java index 0f127d3..87f6076 100644 --- a/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiDTO.java +++ b/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/api/ApiDTO.java @@ -1,6 +1,5 @@ package ink.wgink.gatewaymanage.pojo.dtos.api; -import ink.wgink.gatewaymanage.pojo.dtos.claim.ClaimDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -57,8 +56,6 @@ public class ApiDTO { private String gmtCreate; @ApiModelProperty(name = "gmtModified", value = "修改时间") private String gmtModified; - @ApiModelProperty(name = "claim", value = "认领情况") - private ClaimDTO claim; public String getApiId() { return apiId == null ? "" : apiId.trim(); @@ -228,11 +225,4 @@ public class ApiDTO { this.gmtModified = gmtModified; } - public ClaimDTO getClaim() { - return claim == null ? new ClaimDTO() : claim; - } - - public void setClaim(ClaimDTO claim) { - this.claim = claim; - } } diff --git a/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/claim/ClaimDTO.java b/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/claim/ClaimDTO.java index c0623e1..c6bfcdf 100644 --- a/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/claim/ClaimDTO.java +++ b/src/main/java/ink/wgink/gatewaymanage/pojo/dtos/claim/ClaimDTO.java @@ -8,7 +8,6 @@ import lombok.Data; import lombok.ToString; /** - * * @ClassName: ClaimDTO * @Description: 接口认领 * @Author: CodeFactory diff --git a/src/main/java/ink/wgink/gatewaymanage/service/api/IApiService.java b/src/main/java/ink/wgink/gatewaymanage/service/api/IApiService.java index 279fb56..b598851 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/api/IApiService.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/api/IApiService.java @@ -217,6 +217,30 @@ public interface IApiService { */ SuccessResultList> listPage(ListPage page); + /** + * API列表 + * + * @param systemIds + * @return + */ + List listBySystemIds(List systemIds); + + /** + * 接口ID列表 + * + * @param params + * @return + */ + List listId(Map params); + + /** + * 接口ID列表 + * + * @param systemIds + * @return + */ + List listIdBySystemIds(List systemIds); + /** * 接口统计 * diff --git a/src/main/java/ink/wgink/gatewaymanage/service/api/impl/ApiServiceImpl.java b/src/main/java/ink/wgink/gatewaymanage/service/api/impl/ApiServiceImpl.java index d06dbd6..51144dd 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/api/impl/ApiServiceImpl.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/api/impl/ApiServiceImpl.java @@ -18,6 +18,7 @@ import ink.wgink.gatewaymanage.pojo.vos.api.ApiVO; import ink.wgink.gatewaymanage.pojo.vos.examine.ExamineVO; import ink.wgink.gatewaymanage.pojo.vos.message.MessageVO; import ink.wgink.gatewaymanage.service.api.IApiService; +import ink.wgink.gatewaymanage.service.claim.IClaimService; import ink.wgink.gatewaymanage.service.message.IMessageService; import ink.wgink.gatewaymanage.service.system.ISystemService; import ink.wgink.pojo.ListPage; @@ -47,6 +48,8 @@ public class ApiServiceImpl extends DefaultBaseService implements IApiService { @Autowired private ISystemService systemService; @Autowired + private IClaimService claimService; + @Autowired private IMessageService messageService; @Autowired private KafkaTemplate kafkaTemplate; @@ -100,10 +103,13 @@ public class ApiServiceImpl extends DefaultBaseService implements IApiService { @Override public void removeBySystemIds(List systemIds) { + List apiIds = listIdBySystemIds(systemIds); Map params = getHashMap(2); params.put("systemIds", systemIds); setUpdateInfo(params); apiDao.remove(params); + // 删除接口认领记录 + claimService.deleteByApiIds(apiIds); } @Override @@ -111,6 +117,8 @@ public class ApiServiceImpl extends DefaultBaseService implements IApiService { Map params = getHashMap(2); params.put("apiIds", ids); apiDao.delete(params); + // 删除接口认领记录 + claimService.deleteByApiIds(ids); } @Override @@ -224,6 +232,25 @@ public class ApiServiceImpl extends DefaultBaseService implements IApiService { return new SuccessResultList<>(apiDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + @Override + public List listBySystemIds(List systemIds) { + Map params = getHashMap(2); + params.put("systemIds", systemIds); + return list(params); + } + + @Override + public List listId(Map params) { + return apiDao.listId(params); + } + + @Override + public List listIdBySystemIds(List systemIds) { + Map params = getHashMap(2); + params.put("systemIds", systemIds); + return listId(params); + } + @Override public Integer count(Map params) { Integer count = apiDao.count(params); diff --git a/src/main/java/ink/wgink/gatewaymanage/service/api/permission/IApiPermissionService.java b/src/main/java/ink/wgink/gatewaymanage/service/api/permission/IApiPermissionService.java index cb47164..f8da2b4 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/api/permission/IApiPermissionService.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/api/permission/IApiPermissionService.java @@ -1,5 +1,6 @@ package ink.wgink.gatewaymanage.service.api.permission; +import ink.wgink.gatewaymanage.pojo.dtos.api.ApiClaimDTO; import ink.wgink.gatewaymanage.pojo.dtos.api.ApiDTO; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.SuccessResultList; @@ -39,5 +40,5 @@ public interface IApiPermissionService { * @param page * @return */ - SuccessResultList> listPageClaim(String claimType, ListPage page); + SuccessResultList> listPageClaim(String claimType, ListPage page); } diff --git a/src/main/java/ink/wgink/gatewaymanage/service/api/permission/impl/ApiPermissionServiceImpl.java b/src/main/java/ink/wgink/gatewaymanage/service/api/permission/impl/ApiPermissionServiceImpl.java index 7ede77f..d4d1f50 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/api/permission/impl/ApiPermissionServiceImpl.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/api/permission/impl/ApiPermissionServiceImpl.java @@ -1,6 +1,7 @@ package ink.wgink.gatewaymanage.service.api.permission.impl; import ink.wgink.common.base.DefaultBaseService; +import ink.wgink.gatewaymanage.pojo.dtos.api.ApiClaimDTO; import ink.wgink.gatewaymanage.pojo.dtos.api.ApiDTO; import ink.wgink.gatewaymanage.pojo.dtos.claim.ClaimDTO; import ink.wgink.gatewaymanage.pojo.pos.claim.ClaimPO; @@ -47,7 +48,7 @@ public class ApiPermissionServiceImpl extends DefaultBaseService implements IApi } @Override - public SuccessResultList> listPageClaim(String claimType, ListPage page) { + public SuccessResultList> listPageClaim(String claimType, ListPage page) { // 我的认领列表 List claimPOs = claimPermissionService.listPO(); Set apiIds = new HashSet<>(); @@ -56,26 +57,38 @@ public class ApiPermissionServiceImpl extends DefaultBaseService implements IApi } if (StringUtils.equals(IClaimService.CLAIM_TYPE_CLAIM, claimType)) { if (claimPOs.isEmpty()) { - return new SuccessResultList>(new ArrayList<>(), 1, 0L); + return new SuccessResultList<>(new ArrayList<>(), 1, 0L); } page.getParams().put("claimApiIds", new ArrayList<>(apiIds)); } else if (StringUtils.equals(IClaimService.CLAIM_TYPE_UNCLAIMED, claimType)) { page.getParams().put("unclaimedApiIds", new ArrayList<>(apiIds)); } page.getParams().put("auditStatus", "pass"); - SuccessResultList> listSuccessResultList = apiService.listPage(page); + SuccessResultList> apiSuccessResultList = apiService.listPage(page); List claimDTOs = new ArrayList<>(); - for (ApiDTO apiDTO : listSuccessResultList.getRows()) { + List apiClaimDTOs = new ArrayList<>(); + apiSuccessResultList.getRows().forEach(apiDTO -> { + ApiClaimDTO apiClaimDTO = new ApiClaimDTO(); + apiClaimDTO.setApiId(apiDTO.getApiId()); + apiClaimDTO.setSystemId(apiDTO.getSystemId()); + apiClaimDTO.setSystemName(apiDTO.getSystemName()); + apiClaimDTO.setTitle(apiDTO.getTitle()); + apiClaimDTO.setUrl(apiDTO.getUrl()); + apiClaimDTO.setSummary(apiDTO.getSummary()); + apiClaimDTO.setPublishTime(apiDTO.getPublishTime()); + apiClaimDTO.setMethod(apiDTO.getMethod()); for (ClaimPO claimPO : claimPOs) { if (StringUtils.equals(apiDTO.getApiId(), claimPO.getApiId())) { ClaimDTO claimDTO = new ClaimDTO(); BeanUtils.copyProperties(claimPO, claimDTO); - apiDTO.setClaim(claimDTO); + apiClaimDTO.setClaim(claimDTO); claimDTOs.add(claimDTO); } } - } + apiClaimDTOs.add(apiClaimDTO); + }); + // 设置审核人 claimService.setAuditor(claimDTOs); - return listSuccessResultList; + return new SuccessResultList<>(apiClaimDTOs, apiSuccessResultList.getPage(), apiSuccessResultList.getTotal()); } } diff --git a/src/main/java/ink/wgink/gatewaymanage/service/claim/IClaimService.java b/src/main/java/ink/wgink/gatewaymanage/service/claim/IClaimService.java index e5322c2..a8908ea 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/claim/IClaimService.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/claim/IClaimService.java @@ -92,6 +92,13 @@ public interface IClaimService { */ void delete(List ids); + /** + * 删除接口认领(物理删除) + * + * @param apiIds + */ + void deleteByApiIds(List apiIds); + /** * 修改接口认领 * @@ -213,4 +220,5 @@ public interface IClaimService { * @param claimDTOs */ void setAuditor(List claimDTOs); + } \ No newline at end of file diff --git a/src/main/java/ink/wgink/gatewaymanage/service/claim/impl/ClaimServiceImpl.java b/src/main/java/ink/wgink/gatewaymanage/service/claim/impl/ClaimServiceImpl.java index 64b6ca2..202da43 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/claim/impl/ClaimServiceImpl.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/claim/impl/ClaimServiceImpl.java @@ -97,6 +97,13 @@ public class ClaimServiceImpl extends DefaultBaseService implements IClaimServic claimDao.delete(params); } + @Override + public void deleteByApiIds(List apiIds) { + Map params = getHashMap(2); + params.put("apiIds", apiIds); + claimDao.delete(params); + } + @Override public void update(String claimId, ClaimVO claimVO) { update(null, claimId, claimVO); @@ -228,22 +235,32 @@ public class ClaimServiceImpl extends DefaultBaseService implements IClaimServic List apiPOs = apiService.listPO(new ArrayList<>(apiSet)); for (ClaimDTO claimDTO : claimDTOs) { + boolean isSystemExist = false; + boolean isApiExist = false; for (SystemPO systemPO : systemPOs) { if (StringUtils.equals(claimDTO.getSystemId(), systemPO.getSystemId())) { SystemDTO systemDTO = new SystemDTO(); BeanUtils.copyProperties(systemPO, systemDTO); claimDTO.setSystem(systemDTO); + isSystemExist = true; break; } } + if (!isSystemExist) { + claimDTO.setSystem(new SystemDTO()); + } for (ApiPO apiPO : apiPOs) { if (StringUtils.equals(claimDTO.getApiId(), apiPO.getApiId())) { ApiDTO apiDTO = new ApiDTO(); BeanUtils.copyProperties(apiPO, apiDTO); claimDTO.setApi(apiDTO); + isApiExist = true; break; } } + if(!isApiExist) { + claimDTO.setApi(new ApiDTO()); + } } } diff --git a/src/main/java/ink/wgink/gatewaymanage/service/system/impl/SystemServiceImpl.java b/src/main/java/ink/wgink/gatewaymanage/service/system/impl/SystemServiceImpl.java index f4c8ac6..67ea239 100644 --- a/src/main/java/ink/wgink/gatewaymanage/service/system/impl/SystemServiceImpl.java +++ b/src/main/java/ink/wgink/gatewaymanage/service/system/impl/SystemServiceImpl.java @@ -73,6 +73,8 @@ public class SystemServiceImpl extends DefaultBaseService implements ISystemServ @Override public void remove(List ids) { remove(null, ids); + // 删除API + apiService.removeBySystemIds(ids); } @Override @@ -94,6 +96,8 @@ public class SystemServiceImpl extends DefaultBaseService implements ISystemServ params.put("systemIds", ids); systemDao.delete(params); deleteDependency(ids); + // 删除API + apiService.deleteBySystemIds(ids); } @Override diff --git a/src/main/resources/mybatis/mapper/api/api-mapper.xml b/src/main/resources/mybatis/mapper/api/api-mapper.xml index 01c2a3d..87df98f 100644 --- a/src/main/resources/mybatis/mapper/api/api-mapper.xml +++ b/src/main/resources/mybatis/mapper/api/api-mapper.xml @@ -429,6 +429,13 @@ #{apiIds[${index}]} + + AND + t1.system_id IN + + #{systemIds[${index}]} + + AND t1.creator = #{creator} @@ -575,7 +582,26 @@ FROM api_api t1 WHERE + t1.is_delete = 0 + AND t1.api_id = #{apiId} + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/claim/claim-mapper.xml b/src/main/resources/mybatis/mapper/claim/claim-mapper.xml index 4df4586..b416c64 100644 --- a/src/main/resources/mybatis/mapper/claim/claim-mapper.xml +++ b/src/main/resources/mybatis/mapper/claim/claim-mapper.xml @@ -89,10 +89,24 @@ DELETE FROM api_claim WHERE + claim_id IN - - #{claimIds[${index}]} - + + #{claimIds[${index}]} + + + + system_id IN + + #{systemIds[${index}]} + + + + api_id IN + + #{apiIds[${index}]} + + diff --git a/src/main/resources/static/route/api/list-claim.html b/src/main/resources/static/route/api/list-claim.html index f3122cc..de18823 100644 --- a/src/main/resources/static/route/api/list-claim.html +++ b/src/main/resources/static/route/api/list-claim.html @@ -62,6 +62,7 @@ // 初始化表格 function initTable() { + var cols = table.render({ elem: '#dataTable', id: 'dataTable',