diff --git a/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java b/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java index 2b7aca56110431100844f14be4d6a041db3c3b2e..97745fee310e4f3a778dc3d83942fee73c292bb6 100644 --- a/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java +++ b/src/main/java/com/easysoftware/adapter/query/CoAdminAdapter.java @@ -13,6 +13,7 @@ package com.easysoftware.adapter.query; import java.util.HashMap; +import com.easysoftware.application.apply.ApplyService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -49,6 +50,12 @@ public class CoAdminAdapter { @Autowired private UserPermission userPermission; + /** + * Autowired ApplyService for provide apply service. + */ + @Autowired + private ApplyService applyService; + /** * Endpoint to search for repos based on the provided search * condition. @@ -80,10 +87,23 @@ public class CoAdminAdapter { } else { result.put("allow_access", Boolean.FALSE); } - return ResultUtil.success(HttpStatus.OK, result); + return ResultUtil.success(HttpStatus.OK, result); } catch (Exception e) { LOGGER.error("Authentication exception - {}", e.getMessage()); - return ResultUtil.fail(HttpStatus.UNAUTHORIZED, MessageCode.EC00020); + return ResultUtil.fail(HttpStatus.UNAUTHORIZED, MessageCode.EC00020); } } + + + /** + * get apply handle records by appid. + * @param applyId The handle form content id. + * @return ResponseEntity. + */ + @GetMapping("/query/apply") + @RequestLimitRedis() + @PreUserPermission(UerPermissionDef.COLLABORATION_PERMISSION_ADMIN) + public ResponseEntity getApply(@RequestParam(value = "applyId") String applyId) { + return applyService.queryApplyHandleRecords(applyId); + } } diff --git a/src/main/java/com/easysoftware/application/apply/ApplyService.java b/src/main/java/com/easysoftware/application/apply/ApplyService.java new file mode 100644 index 0000000000000000000000000000000000000000..f731c3e0376f5688a2b4aab72bd1ccade2cb20ee --- /dev/null +++ b/src/main/java/com/easysoftware/application/apply/ApplyService.java @@ -0,0 +1,23 @@ +/* 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.apply; + +import org.springframework.http.ResponseEntity; + +public interface ApplyService { + /** + * get apply handle records by appid. + * + * @param applyId The handle form content id. + * @return ResponseEntity. + */ + ResponseEntity queryApplyHandleRecords(String applyId); +} diff --git a/src/main/java/com/easysoftware/application/apply/ApplyServiceImpl.java b/src/main/java/com/easysoftware/application/apply/ApplyServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8885edb11a5d52afa644b83bcd09ab830f14f0c7 --- /dev/null +++ b/src/main/java/com/easysoftware/application/apply/ApplyServiceImpl.java @@ -0,0 +1,47 @@ +/* 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.apply; + +import com.easysoftware.application.apply.dto.ApplyHandleConditon; +import com.easysoftware.common.utils.ResultUtil; +import com.easysoftware.domain.apply.ApplyHandleRecord; +import com.easysoftware.domain.apply.gateway.ApplyGateway; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ApplyServiceImpl implements ApplyService { + + /** + * Resource for interacting with Apply Gateway. + */ + private final ApplyGateway applyGateway; + + /** + * get apply handle records by appid. + * + * @param applyId The handle form content id. + * @return ResponseEntity. + */ + @Override + public ResponseEntity queryApplyHandleRecords(String applyId) { + + ApplyHandleConditon applyHandleConditon = new ApplyHandleConditon(); + applyHandleConditon.setApplyId(applyId); + List applyHandleRecords = applyGateway.queryApplyhandleRecords(applyHandleConditon); + return ResultUtil.success(HttpStatus.OK, applyHandleRecords); + } +} diff --git a/src/main/java/com/easysoftware/application/apply/dto/ApplyHandleConditon.java b/src/main/java/com/easysoftware/application/apply/dto/ApplyHandleConditon.java new file mode 100644 index 0000000000000000000000000000000000000000..f271b9ec5a4f6d1b08ef54e1a863d4a4b0f9c7af --- /dev/null +++ b/src/main/java/com/easysoftware/application/apply/dto/ApplyHandleConditon.java @@ -0,0 +1,64 @@ +package com.easysoftware.application.apply.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 ApplyHandleConditon { + /** + * Field name with a maximum length of PackageConstant.MAX_FIELD_LENGTH. + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private Integer applyStatus; + + + /** + * Field name with a maximum length of PackageConstant.MAX_FIELD_LENGTH. + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private String maintainer; + + + /** + * Package ID with a maximum length of PackageConstant.MAX_FIELD_LENGTH. + */ + @Size(max = PackageConstant.MAX_FIELD_LENGTH) + @Pattern(regexp = PackageConstant.VALID_STR_REG, message = PackageConstant.VALID_MESSAGE) + private String applyId; + + + /** + * 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; + + + /** + * 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/common/constant/PackageConstant.java b/src/main/java/com/easysoftware/common/constant/PackageConstant.java index de2bc04122122268300832efb58645717207f204..8aec50a5c66750894ad6d12d3b3b120021ce2929 100644 --- a/src/main/java/com/easysoftware/common/constant/PackageConstant.java +++ b/src/main/java/com/easysoftware/common/constant/PackageConstant.java @@ -120,6 +120,11 @@ public final class PackageConstant { */ public static final String RPM_PKG_TABLE = "rpm_pkg_base"; + /** + * table name of ApplyhandleRecordsDO. + */ + public static final String APPLY_HANDLE_RECORDS = "apply_handle_records"; + /** * Change the category of rpm. */ diff --git a/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java b/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java new file mode 100644 index 0000000000000000000000000000000000000000..e54a917776df21b26c8b0806335d4b92d3efd9f0 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java @@ -0,0 +1,91 @@ +/* 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.domain.apply; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serial; +import java.sql.Timestamp; + +@Getter +@Setter +public class ApplyHandleRecord { + /** + * Serializable class with a defined serial version UID. + */ + @Serial + private static final long serialVersionUID = 1L; + + /** + * id. + */ + private Long id; + + /** + * create time. + */ + + private Timestamp createdAt; + + /** + * apply Id. + */ + private String applyId; + + /** + * recordId. + */ + private Long recordId; + + /** + * maintainer. + */ + private String maintainer; + + /** + * administrator. + */ + private String administrator; + + /** + * applyStatus. + */ + private Byte applyStatus; + + + /** + * get an ApplyHandleRecord entity createdAt field value. + * + * @return An Timestamp entity + */ + public Timestamp getCreatedAt() { + if (this.createdAt != null) { + return (Timestamp) this.createdAt.clone(); + } else { + return null; + } + } + + + /** + * set an ApplyHandleRecord entity createAt field value. + * + * @param createAt The ApplicationPackageDO entity createAt field for set + */ + public void setCreatedAt(Timestamp createAt) { + if (this.createdAt != null) { + this.createdAt = (Timestamp) createAt.clone(); + } else { + this.createdAt = null; + } + } +} diff --git a/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java b/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java new file mode 100644 index 0000000000000000000000000000000000000000..d28938efbc1d9d40b360fa0e52546909a14fd114 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java @@ -0,0 +1,27 @@ +/* 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.domain.apply.gateway; + +import com.easysoftware.application.apply.dto.ApplyHandleConditon; +import com.easysoftware.domain.apply.ApplyHandleRecord; + +import java.util.List; + +public interface ApplyGateway { + /** + * Query information based on the provided search condition. + * + * @param condition The search condition for querying apply handle records. + * @return A map containing relevant information + */ + List queryApplyhandleRecords(ApplyHandleConditon condition); +} diff --git a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..443442626e8bf1da1c583075f48d51aa9478a334 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java @@ -0,0 +1,56 @@ +/* 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.infrastructure.apply.gatewayimpl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.easysoftware.application.apply.dto.ApplyHandleConditon; +import com.easysoftware.common.utils.QueryWrapperUtil; +import com.easysoftware.domain.apply.ApplyHandleRecord; +import com.easysoftware.domain.apply.gateway.ApplyGateway; +import com.easysoftware.infrastructure.apply.gatewayimpl.converter.ApplyHandleConverter; +import com.easysoftware.infrastructure.apply.gatewayimpl.dataobject.ApplyhandleRecordsDO; +import com.easysoftware.infrastructure.mapper.ApplyHandleRecordsDOMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + + +@Component +public class ApplyGatewayImpl implements ApplyGateway { + + /** + * Autowired field for the ApplyHandleRecordsDOMapper. + */ + @Autowired + private ApplyHandleRecordsDOMapper applyHandleRecordsDOMapper; + + /** + * Query information based on the provided search condition. + * + * @param condition The search condition for querying apply handle records. + * @return A map containing relevant information + */ + @Override + public List queryApplyhandleRecords(ApplyHandleConditon condition) { + + + QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new ApplyhandleRecordsDO(), + condition, null); + wrapper.orderByDesc("created_at"); + + List appDOs = applyHandleRecordsDOMapper.selectList(wrapper); + + List applyHandleRecords = ApplyHandleConverter.toEntity(appDOs); + + return applyHandleRecords; + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/converter/ApplyHandleConverter.java b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/converter/ApplyHandleConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..f1821776689c2bc3310df3702163cbda429f353a --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/converter/ApplyHandleConverter.java @@ -0,0 +1,61 @@ +/* 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.infrastructure.apply.gatewayimpl.converter; + +import com.easysoftware.domain.apply.ApplyHandleRecord; +import com.easysoftware.infrastructure.apply.gatewayimpl.dataobject.ApplyhandleRecordsDO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.List; + +public final class ApplyHandleConverter { + // Private constructor to prevent instantiation of the utility class + private ApplyHandleConverter() { + // private constructor to hide the implicit public one + throw new AssertionError("Cannot instantiate ApplyHandleConverter class"); + } + + /** + * Logger instance for ApplyHandleConverter. + */ + private static final Logger LOGGER = LoggerFactory.getLogger(ApplyHandleConverter.class); + + /** + * Convert an ApplyhandleRecordsDO List to an ApplyHandleRecord List. + * + * @param doList The ApplyhandleRecordsDO List to convert + * @return An ApplyHandleRecord List + */ + public static List toEntity(final List doList) { + List res = new ArrayList<>(); + for (ApplyhandleRecordsDO arecordDo : doList) { + ApplyHandleRecord app = toEntity(arecordDo); + res.add(app); + } + return res; + } + + + /** + * Convert an ApplyhandleRecordsDO object to an ApplyHandleRecord entity. + * + * @param arecordDo The ApplyhandleRecordsDO object to convert + * @return An ApplyHandleRecord entity + */ + public static ApplyHandleRecord toEntity(final ApplyhandleRecordsDO arecordDo) { + ApplyHandleRecord applyHandleRecord = new ApplyHandleRecord(); + BeanUtils.copyProperties(arecordDo, applyHandleRecord); + return applyHandleRecord; + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/dataobject/ApplyhandleRecordsDO.java b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/dataobject/ApplyhandleRecordsDO.java new file mode 100644 index 0000000000000000000000000000000000000000..a551611c7aeaef075b8c48c3475b6390ae5870a9 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/dataobject/ApplyhandleRecordsDO.java @@ -0,0 +1,86 @@ +package com.easysoftware.infrastructure.apply.gatewayimpl.dataobject; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.easysoftware.common.constant.PackageConstant; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serial; +import java.sql.Timestamp; + +@Getter +@Setter +@TableName(PackageConstant.APPLY_HANDLE_RECORDS) +public class ApplyhandleRecordsDO { + /** + * Serializable class with a defined serial version UID. + */ + @Serial + private static final long serialVersionUID = 1L; + + /** + * Name of the entity (ID: name). + */ + @TableId(value = "id") + private Long id; + + /** + * create time. + */ + + private Timestamp createdAt; + + /** + * apply Id. + */ + private String applyId; + + /** + * recordId. + */ + private Long recordId; + + /** + * maintainer. + */ + private String maintainer; + + /** + * administrator. + */ + private String administrator; + + /** + * applyStatus. + */ + private Byte applyStatus; + + + /** + * get an ApplyhandleRecordsDO entity createdAt field value. + * + * @return An Timestamp entity + */ + public Timestamp getCreatedAt() { + if (this.createdAt != null) { + return (Timestamp) this.createdAt.clone(); + } else { + return null; + } + } + + + /** + * set an ApplyhandleRecordsDO entity createAt field value. + * + * @param createAt The ApplicationPackageDO entity createAt field for set + */ + public void setCreatedAt(Timestamp createAt) { + if (this.createdAt != null) { + this.createdAt = (Timestamp) createAt.clone(); + } else { + this.createdAt = null; + } + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/mapper/ApplyHandleRecordsDOMapper.java b/src/main/java/com/easysoftware/infrastructure/mapper/ApplyHandleRecordsDOMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..d96045249df63b8acb054106febb57d9e769e03f --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/mapper/ApplyHandleRecordsDOMapper.java @@ -0,0 +1,7 @@ +package com.easysoftware.infrastructure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.easysoftware.infrastructure.apply.gatewayimpl.dataobject.ApplyhandleRecordsDO; + +public interface ApplyHandleRecordsDOMapper extends BaseMapper { +}