From f1c9791eba13d4ea84e77cce7016f084d43f729c Mon Sep 17 00:00:00 2001 From: leefan <980488905@qq.com> Date: Wed, 14 Aug 2024 17:18:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E7=9C=8B=E6=8E=A5=E5=8F=A3=E4=B8=8E?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E8=80=85=E7=94=B3=E8=AF=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=8E=A5=E5=8F=A3=E5=89=A5=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/query/CoAdminAdapter.java | 6 +- .../applyform/ApplyFormService.java | 8 +++ .../applyform/ApplyFormServiceImpl.java | 15 +++- .../dto/ApplyFormSearchAdminCondition.java | 70 +++++++++++++++++++ .../applyform/gateway/ApplyFormGateway.java | 10 +++ .../gatewayimpl/ApplyFormGatewayImpl.java | 51 ++++++++++++++ 6 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/easysoftware/application/applyform/dto/ApplyFormSearchAdminCondition.java diff --git a/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java b/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java index 6aedf88..21c9c74 100644 --- a/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java +++ b/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java @@ -16,7 +16,7 @@ import java.util.HashMap; import com.easysoftware.application.apply.ApplyService; import com.easysoftware.application.applyform.ApplyFormService; -import com.easysoftware.application.applyform.dto.ApplyFormSearchMaintainerCondition; +import com.easysoftware.application.applyform.dto.ApplyFormSearchAdminCondition; import jakarta.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -127,7 +127,7 @@ public class CoAdminAdapter { @GetMapping("/query/apply") @RequestLimitRedis() @PreUserPermission(UerPermissionDef.COLLABORATION_PERMISSION_ADMIN) - public ResponseEntity getApplyFrom(@Valid final ApplyFormSearchMaintainerCondition condition) { - return applyFormService.searchApplyFromByMaintainer(condition); + public ResponseEntity getApplyFrom(@Valid final ApplyFormSearchAdminCondition condition) { + return applyFormService.searchApplyFromByAdmin(condition); } } diff --git a/src/main/java/com/easysoftware/application/applyform/ApplyFormService.java b/src/main/java/com/easysoftware/application/applyform/ApplyFormService.java index 26ea6dd..0bebfa7 100644 --- a/src/main/java/com/easysoftware/application/applyform/ApplyFormService.java +++ b/src/main/java/com/easysoftware/application/applyform/ApplyFormService.java @@ -11,6 +11,7 @@ package com.easysoftware.application.applyform; +import com.easysoftware.application.applyform.dto.ApplyFormSearchAdminCondition; import org.springframework.http.ResponseEntity; import com.easysoftware.application.applyform.dto.ApplyFormSearchMaintainerCondition; @@ -25,4 +26,11 @@ public interface ApplyFormService { */ ResponseEntity searchApplyFromByMaintainer(ApplyFormSearchMaintainerCondition condition); + /** + * Search for apply form based on the provided search condition by admin. + * + * @param condition The search condition for querying apply form. + * @return ResponseEntity. + */ + ResponseEntity searchApplyFromByAdmin(ApplyFormSearchAdminCondition condition); } diff --git a/src/main/java/com/easysoftware/application/applyform/ApplyFormServiceImpl.java b/src/main/java/com/easysoftware/application/applyform/ApplyFormServiceImpl.java index 5f5cd07..c7e1ae6 100644 --- a/src/main/java/com/easysoftware/application/applyform/ApplyFormServiceImpl.java +++ b/src/main/java/com/easysoftware/application/applyform/ApplyFormServiceImpl.java @@ -14,6 +14,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.easysoftware.application.applyform.dto.ApplyFormSearchAdminCondition; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -44,7 +45,7 @@ public class ApplyFormServiceImpl implements ApplyFormService { * @return ResponseEntity. */ @Override - public ResponseEntity searchApplyFromByMaintainer(ApplyFormSearchMaintainerCondition condition) { + public ResponseEntity searchApplyFromByMaintainer(ApplyFormSearchMaintainerCondition condition) { Map res = new HashMap<>(); if (condition.getName().equals("formPage")) { res = searchApplyFromByPage(condition); @@ -55,6 +56,18 @@ public class ApplyFormServiceImpl implements ApplyFormService { return ResultUtil.success(HttpStatus.OK, res); } + /** + * Search for apply form based on the provided search condition by admin. + * + * @param condition The search condition for querying apply form. + * @return ResponseEntity. + */ + @Override + public ResponseEntity searchApplyFromByAdmin(ApplyFormSearchAdminCondition condition) { + Map res = applyFormGateway.queryApplyFormByCondition(condition); + return ResultUtil.success(HttpStatus.OK, res); + } + /** * Search for apply form based on the provided page condition. * diff --git a/src/main/java/com/easysoftware/application/applyform/dto/ApplyFormSearchAdminCondition.java b/src/main/java/com/easysoftware/application/applyform/dto/ApplyFormSearchAdminCondition.java new file mode 100644 index 0000000..6053a30 --- /dev/null +++ b/src/main/java/com/easysoftware/application/applyform/dto/ApplyFormSearchAdminCondition.java @@ -0,0 +1,70 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ +package com.easysoftware.application.applyform.dto; + +import com.easysoftware.common.constant.PackageConstant; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Range; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ApplyFormSearchAdminCondition { + /** + * Page number within the range of PackageConstant.MIN_PAGE_NUM to PackageConstant. + * MAX_PAGE_NUM, default value is 1. + */ + @Range(min = PackageConstant.MIN_PAGE_NUM, max = PackageConstant.MAX_PAGE_NUM) + @NotNull + private Integer pageNum = 1; + + /** + * Page size within the range of PackageConstant.MIN_PAGE_SIZE to PackageConstant. + * MAX_PAGE_SIZE, default value is 10. + */ + @Range(min = PackageConstant.MIN_PAGE_SIZE, max = PackageConstant.MAX_PAGE_SIZE) + @NotNull + private Integer pageSize = 10; + + /** + * Name (maximum length: PackageConstant.MAX_FIELD_LENGTH). + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private String applyStatus; + + /** + * Name (maximum length: PackageConstant.MAX_FIELD_LENGTH). + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private String repo; + + /** + * Name (maximum length: PackageConstant.MAX_FIELD_LENGTH). + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private String metric; + + /** + * Time order. + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private String timeOrder; + +} diff --git a/src/main/java/com/easysoftware/domain/applyform/gateway/ApplyFormGateway.java b/src/main/java/com/easysoftware/domain/applyform/gateway/ApplyFormGateway.java index f36fa80..4d825f9 100644 --- a/src/main/java/com/easysoftware/domain/applyform/gateway/ApplyFormGateway.java +++ b/src/main/java/com/easysoftware/domain/applyform/gateway/ApplyFormGateway.java @@ -12,6 +12,7 @@ package com.easysoftware.domain.applyform.gateway; import java.util.Map; +import com.easysoftware.application.applyform.dto.ApplyFormSearchAdminCondition; import org.springframework.stereotype.Component; import com.easysoftware.application.applyform.dto.ApplyFormSearchMaintainerCondition; @@ -35,4 +36,13 @@ public interface ApplyFormGateway { * @return A map containing relevant information */ Map queryApplyFormByApplyId(Long applyId); + + + /** + * Query information based on the provided search condition. + * + * @param condition The search condition for querying apply form + * @return A map containing relevant information + */ + Map queryApplyFormByCondition(ApplyFormSearchAdminCondition condition); } diff --git a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/ApplyFormGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/ApplyFormGatewayImpl.java index bb548b7..4c3f973 100644 --- a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/ApplyFormGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/ApplyFormGatewayImpl.java @@ -15,6 +15,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.easysoftware.application.applyform.dto.ApplyFormSearchAdminCondition; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -119,4 +120,54 @@ public class ApplyFormGatewayImpl implements ApplyFormGateway { return res; } + /** + * Query information based on the provided search condition. + * + * @param condition The search condition for querying apply form + * @return A map containing relevant information + */ + @Override + public Map queryApplyFormByCondition(ApplyFormSearchAdminCondition condition) { + int pageNum = condition.getPageNum(); + int pageSize = condition.getPageSize(); + Page page = new Page<>(pageNum, pageSize); + QueryWrapper wrapper = initWrapperByCondition(condition); + + IPage resPage = applyFormDOMapper.selectPage(page, wrapper); + long total = resPage.getTotal(); + List applyFormDOs = resPage.getRecords(); + List applyFormVOs = ApplyFormConvertor.toApplyFormVO(applyFormDOs); + + Map res = new HashMap<>(); + res.put("total", total); + res.put("list", applyFormVOs); + + return res; + } + + /** + * initWrapperByCondition. + * + * @param condition The search condition for querying apply form + * @return A QueryWrapper + */ + private QueryWrapper initWrapperByCondition(ApplyFormSearchAdminCondition condition) { + QueryWrapper wrapper = new QueryWrapper<>(); + if (condition.getApplyStatus() != null) { + wrapper.eq("apply_status", condition.getApplyStatus()); + } + if (condition.getRepo() != null) { + wrapper.eq("repo", condition.getRepo()); + } + if (condition.getMetric() != null) { + wrapper.eq("metric", condition.getMetric()); + } + if ("desc".equals(condition.getTimeOrder())) { + wrapper.orderByDesc("created_at"); + } else if ("asc".equals(condition.getTimeOrder())) { + wrapper.orderByAsc("created_at"); + } + return wrapper; + } + } -- Gitee