diff --git a/src/main/java/com/easysoftware/application/applyform/dto/ProcessApply.java b/src/main/java/com/easysoftware/application/applyform/dto/ProcessApply.java index 107b7bc1ebe82dd3a9d2b2853173a2dbc5cd16e2..b0223663ccdb82d7867a0a7c3d1032957c65dfd2 100644 --- a/src/main/java/com/easysoftware/application/applyform/dto/ProcessApply.java +++ b/src/main/java/com/easysoftware/application/applyform/dto/ProcessApply.java @@ -12,7 +12,7 @@ import lombok.Setter; @Setter public class ProcessApply { /** - * Field name with a maximum length of PackageConstant.MAX_FIELD_LENGTH. + * Field applyStatus 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) @@ -24,4 +24,12 @@ public class ProcessApply { */ @NotNull private long applyId; + + /** + * Field comment 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) + @NotNull + private String comment; } diff --git a/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java b/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java index 27cad2685b75d411b8a50ced2c1763800ea83710..1f5ada84983366b75b6d8e49a25172f80aa027a7 100644 --- a/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java +++ b/src/main/java/com/easysoftware/domain/apply/ApplyHandleRecord.java @@ -64,7 +64,7 @@ public class ApplyHandleRecord { /** * applyStatus. */ - private Byte applyStatus; + private String applyStatus; /** diff --git a/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java b/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java index d28938efbc1d9d40b360fa0e52546909a14fd114..d830a336eff193cfa63aca1506e4feabb9a22c1a 100644 --- a/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java +++ b/src/main/java/com/easysoftware/domain/apply/gateway/ApplyGateway.java @@ -24,4 +24,12 @@ public interface ApplyGateway { * @return A map containing relevant information */ List queryApplyhandleRecords(ApplyHandleConditon condition); + + /** + * save apply handle record. + * + * @param record apply handle record. + * @return save result + */ + boolean savehandleRecord(ApplyHandleRecord record); } diff --git a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java index 443442626e8bf1da1c583075f48d51aa9478a334..983adf045cb92c1773020455fa6774bbecb44567 100644 --- a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/ApplyGatewayImpl.java @@ -53,4 +53,17 @@ public class ApplyGatewayImpl implements ApplyGateway { return applyHandleRecords; } + + /** + * save apply handle record. + * + * @param record apply handle record. + * @return save result + */ + @Override + public boolean savehandleRecord(ApplyHandleRecord record) { + ApplyhandleRecordsDO recordDO = ApplyHandleConverter.toDataObjectForCreate(record); + int mark = applyHandleRecordsDOMapper.insert(recordDO); + return mark == 1; + } } 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 index f1821776689c2bc3310df3702163cbda429f353a..b1d681e7bb196cfa0ecf4116a3cb329e70ba4269 100644 --- a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/converter/ApplyHandleConverter.java +++ b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/converter/ApplyHandleConverter.java @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; @@ -46,7 +47,6 @@ public final class ApplyHandleConverter { return res; } - /** * Convert an ApplyhandleRecordsDO object to an ApplyHandleRecord entity. * @@ -58,4 +58,21 @@ public final class ApplyHandleConverter { BeanUtils.copyProperties(arecordDo, applyHandleRecord); return applyHandleRecord; } + + /** + * Convert an ApplyHandleRecord entity to an ApplyhandleRecordsDO data object + * specifically for creation. + * + * @param record The ApplyHandleRecord entity to convert + * @return An ApplyhandleRecordsDO data object tailored for creation + */ + public static ApplyhandleRecordsDO toDataObjectForCreate(final ApplyHandleRecord record) { + ApplyhandleRecordsDO recordDO = new ApplyhandleRecordsDO(); + BeanUtils.copyProperties(record, recordDO); + + Timestamp currentTime = new Timestamp(System.currentTimeMillis()); + recordDO.setCreatedAt(currentTime); + + return recordDO; + } } 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 index 430f12f67d5997f5750a617d87143a9b0b445bad..836d80d3d4594a5c1aee5a0e267622e15be54452 100644 --- a/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/dataobject/ApplyhandleRecordsDO.java +++ b/src/main/java/com/easysoftware/infrastructure/apply/gatewayimpl/dataobject/ApplyhandleRecordsDO.java @@ -1,5 +1,6 @@ package com.easysoftware.infrastructure.apply.gatewayimpl.dataobject; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.easysoftware.common.constant.PackageConstant; @@ -22,7 +23,6 @@ public class ApplyhandleRecordsDO { /** * Name of the entity (ID: name). */ - @TableId(value = "id") private Long id; /** @@ -39,6 +39,7 @@ public class ApplyhandleRecordsDO { /** * recordId. */ + @TableId(value = "id") private Long recordId; /** @@ -59,7 +60,8 @@ public class ApplyhandleRecordsDO { /** * applyStatus. */ - private Byte applyStatus; + @TableField(value = "apply_status") + private String applyStatus; /** 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 ac5fa0ecb2cb984d313c6c0b5e06468394d29e76..6d8fcc41d1d6e4ece97f81c3551da24558696f0f 100644 --- a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/ApplyFormGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/ApplyFormGatewayImpl.java @@ -32,6 +32,8 @@ import com.easysoftware.application.applyform.vo.ApplyFormSearchMaintainerVO; import com.easysoftware.common.constant.PackageConstant; import com.easysoftware.common.exception.UpdateException; import com.easysoftware.common.account.UserPermission; +import com.easysoftware.domain.apply.ApplyHandleRecord; +import com.easysoftware.domain.apply.gateway.ApplyGateway; import com.easysoftware.domain.applyform.gateway.ApplyFormGateway; import com.easysoftware.domain.collaboration.gateway.PackageStatusGateway; import com.easysoftware.infrastructure.apply.gatewayimpl.dataobject.ApplyhandleRecordsDO; @@ -50,6 +52,12 @@ public class ApplyFormGatewayImpl implements ApplyFormGateway { @Resource private PackageStatusGateway pkgStatusGateway; + /** + * Resource for interacting with Apply Gateway. + */ + @Resource + private ApplyGateway applyGateway; + /** * Autowired field for the ApplicationVersionDOMapper. */ @@ -147,16 +155,35 @@ public class ApplyFormGatewayImpl implements ApplyFormGateway { wrapper.eq("apply_id", processApply.getApplyId()); int mark = applyFormDOMapper.update(applyFormDO, wrapper); - boolean result = mark == 1; + if (mark != 1) { + throw new UpdateException("update apply status failed"); + } + + applyFormDO = applyFormDOMapper.selectOne(wrapper); + + ApplyHandleRecord record = new ApplyHandleRecord(); + BeanUtils.copyProperties(applyFormDO, record); + if (!applyGateway.savehandleRecord(record)) { + throw new UpdateException("save record failed"); + } - if (result && PackageConstant.APPLY_APPROVED.equalsIgnoreCase(processApply.getApplyStatus())) { - applyFormDO = applyFormDOMapper.selectOne(wrapper); - result = pkgStatusGateway.updateByMetric(applyFormDO); - if (!result) { - throw new UpdateException("update failed"); + if (PackageConstant.APPLY_APPROVED.equalsIgnoreCase(processApply.getApplyStatus())) { + if (!updatePackageStatus(applyFormDO)) { + throw new UpdateException("update package status failed"); } } - return result; + + return true; + } + + /** + * update package based on the provided condition. + * + * @param applyFormDO apply content. + * @return update result + */ + private boolean updatePackageStatus(ApplyFormDO applyFormDO) { + return pkgStatusGateway.updateByMetric(applyFormDO); } /** diff --git a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/converter/ApplyFormConvertor.java b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/converter/ApplyFormConvertor.java index 08ce5094612da7831650b8cfe8f3b2f561a4c273..370efbe79219914470ac40be7e541e41aff8d6b0 100644 --- a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/converter/ApplyFormConvertor.java +++ b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/converter/ApplyFormConvertor.java @@ -10,6 +10,7 @@ */ package com.easysoftware.infrastructure.applyform.gatewayimpl.converter; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; @@ -48,9 +49,11 @@ public final class ApplyFormConvertor { * @return An ApplyForm entity */ public static ApplyFormDO toApplyFormDO(final ProcessApply processApply) { - ApplyFormDO applyForm = new ApplyFormDO(); - BeanUtils.copyProperties(processApply, applyForm); - return applyForm; + ApplyFormDO applyFormDO = new ApplyFormDO(); + BeanUtils.copyProperties(processApply, applyFormDO); + Timestamp currentTime = new Timestamp(System.currentTimeMillis()); + applyFormDO.setUpdateAt(currentTime); + return applyFormDO; } /** diff --git a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/dataobject/ApplyFormDO.java b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/dataobject/ApplyFormDO.java index 28b1515c242e0c9518e29a18fa10d21c7412e987..6ecec44cad63fdd1a7c2caddc9db392257762bea 100644 --- a/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/dataobject/ApplyFormDO.java +++ b/src/main/java/com/easysoftware/infrastructure/applyform/gatewayimpl/dataobject/ApplyFormDO.java @@ -12,6 +12,7 @@ package com.easysoftware.infrastructure.applyform.gatewayimpl.dataobject; import java.sql.Timestamp; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.easysoftware.common.constant.PackageConstant; @@ -64,10 +65,15 @@ public class ApplyFormDO { */ private String adminstrator; + /** + * comment of the process apply. + */ + private String comment; /** * Approval status. */ + @TableField(value = "apply_status") private String applyStatus; /**