18 changed files with 581 additions and 0 deletions
Split View
Diff Options
-
36dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractImageTypeEnum.java
-
48dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractStatusEnum.java
-
36dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractTermNameEnum.java
-
36dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractTermUnitEnum.java
-
68dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/entity/Contract.java
-
23dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/valobj/ContractImage.java
-
31dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/valobj/ContractTerm.java
-
40dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/ContractUserCommandController.java
-
56dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserCreateContractDto.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserDeleteContractDto.java
-
59dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserEditContractDto.java
-
26dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/contract/ContractApplicationService.java
-
31dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/contract/ContractAggregate.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/contract/repository/ContractRepository.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java
-
41dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/ContractRepositoryImpl.java
-
5dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/ContractQueryService.java
-
9dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/impl/ContractQueryServiceImpl.java
@ -0,0 +1,36 @@ |
|||
package com.qniao.dam.domian.aggregate.contract.constant; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.EnumValue; |
|||
import com.fasterxml.jackson.annotation.JsonCreator; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonValue; |
|||
import lombok.Getter; |
|||
|
|||
@Getter |
|||
@JsonFormat(shape = JsonFormat.Shape.OBJECT) |
|||
public enum ContractImageTypeEnum { |
|||
|
|||
PIC(1, "图片"), |
|||
|
|||
FILE(2, "文件"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
private final String desc; |
|||
|
|||
ContractImageTypeEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static ContractImageTypeEnum get(Object code) { |
|||
for (ContractImageTypeEnum e : ContractImageTypeEnum.values()) { |
|||
if (e.getValue().equals(code)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,48 @@ |
|||
package com.qniao.dam.domian.aggregate.contract.constant; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.EnumValue; |
|||
import com.fasterxml.jackson.annotation.JsonCreator; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonValue; |
|||
import lombok.Getter; |
|||
|
|||
@Getter |
|||
@JsonFormat(shape = JsonFormat.Shape.OBJECT) |
|||
public enum ContractStatusEnum { |
|||
/** |
|||
* 未开始 |
|||
*/ |
|||
NOT_STARTED(1, "未开始"), |
|||
/** |
|||
* 生效中 |
|||
*/ |
|||
IN_EFFECT(2, "生效中"), |
|||
/** |
|||
* 已结束 |
|||
*/ |
|||
OVER(3, "已结束"), |
|||
/** |
|||
* 已废弃 |
|||
*/ |
|||
OBSOLETED(4, "已废弃"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
private final String desc; |
|||
|
|||
ContractStatusEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static ContractStatusEnum get(Integer value) { |
|||
for (ContractStatusEnum e : ContractStatusEnum.values()) { |
|||
if (e.getValue().equals(value)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,36 @@ |
|||
package com.qniao.dam.domian.aggregate.contract.constant; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.EnumValue; |
|||
import com.fasterxml.jackson.annotation.JsonCreator; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonValue; |
|||
import lombok.Getter; |
|||
|
|||
@Getter |
|||
@JsonFormat(shape = JsonFormat.Shape.OBJECT) |
|||
public enum ContractTermNameEnum { |
|||
|
|||
PIC(1, "图片"), |
|||
|
|||
FILE(2, "文件"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
private final String desc; |
|||
|
|||
ContractTermNameEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static ContractTermNameEnum get(Object code) { |
|||
for (ContractTermNameEnum e : ContractTermNameEnum.values()) { |
|||
if (e.getValue().equals(code)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,36 @@ |
|||
package com.qniao.dam.domian.aggregate.contract.constant; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.EnumValue; |
|||
import com.fasterxml.jackson.annotation.JsonCreator; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonValue; |
|||
import lombok.Getter; |
|||
|
|||
@Getter |
|||
@JsonFormat(shape = JsonFormat.Shape.OBJECT) |
|||
public enum ContractTermUnitEnum { |
|||
|
|||
PIC(1, "图片"), |
|||
|
|||
FILE(2, "文件"); |
|||
|
|||
@EnumValue |
|||
@JsonValue |
|||
private final Integer value; |
|||
private final String desc; |
|||
|
|||
ContractTermUnitEnum(Integer value, String desc) { |
|||
this.value = value; |
|||
this.desc = desc; |
|||
} |
|||
|
|||
@JsonCreator |
|||
public static ContractTermUnitEnum get(Object code) { |
|||
for (ContractTermUnitEnum e : ContractTermUnitEnum.values()) { |
|||
if (e.getValue().equals(code)) { |
|||
return e; |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
@ -0,0 +1,68 @@ |
|||
package com.qniao.dam.domain.aggregate.contract.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domain.aggregate.contract.valobj.ContractImage; |
|||
import com.qniao.dam.domain.aggregate.contract.valobj.ContractTerm; |
|||
import com.qniao.dam.domian.aggregate.contract.constant.ContractStatusEnum; |
|||
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import com.qniao.domain.Entity; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 合同 |
|||
* |
|||
* @date 2025/07/10 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_contract") |
|||
public class Contract extends Entity<Contract> { |
|||
|
|||
@ApiModelProperty("甲方身份类型") |
|||
private IdentityTypeEnum firstPartyIdentityType; |
|||
|
|||
@ApiModelProperty("甲方标识") |
|||
private Long firstPartyId; |
|||
|
|||
@ApiModelProperty("甲方经办人名称") |
|||
private String firstPartyName; |
|||
|
|||
@ApiModelProperty("甲方身份编号 身份证、统一信用代码") |
|||
private String firstPartyIdentityNo; |
|||
|
|||
@ApiModelProperty("乙方身份类型") |
|||
private IdentityTypeEnum secondPartyIdentityType; |
|||
|
|||
@ApiModelProperty("乙方标识") |
|||
private Long secondPartyId; |
|||
|
|||
@ApiModelProperty("乙方经办人名称") |
|||
private String secondPartyName; |
|||
|
|||
@ApiModelProperty("乙方身份编号 身份证、统一信用代码") |
|||
private String secondPartyIdentityNo; |
|||
|
|||
@ApiModelProperty("签订日期") |
|||
private LocalDateTime signDate; |
|||
|
|||
@ApiModelProperty("开始日期") |
|||
private LocalDateTime startDate; |
|||
|
|||
@ApiModelProperty("开始日期") |
|||
private LocalDateTime endDate; |
|||
|
|||
@ApiModelProperty("状态 已生效、已结束、已终止") |
|||
private ContractStatusEnum status; |
|||
|
|||
@ApiModelProperty("合同备注") |
|||
private String remark; |
|||
|
|||
private transient List<ContractTerm> contractTermList; |
|||
|
|||
private transient List<ContractImage> contractImageList; |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
package com.qniao.dam.domain.aggregate.contract.valobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domian.aggregate.contract.constant.ContractImageTypeEnum; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_contract_image") |
|||
public class ContractImage extends ValueObject<ContractImage> { |
|||
|
|||
@ApiModelProperty("合同唯一标识") |
|||
private Long contractId; |
|||
|
|||
@ApiModelProperty("影像类型") |
|||
private ContractImageTypeEnum type; |
|||
|
|||
@ApiModelProperty("url") |
|||
private String url; |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package com.qniao.dam.domain.aggregate.contract.valobj; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domian.aggregate.contract.constant.ContractTermNameEnum; |
|||
import com.qniao.dam.domian.aggregate.contract.constant.ContractTermUnitEnum; |
|||
import com.qniao.domain.ValueObject; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_contract_term") |
|||
public class ContractTerm extends ValueObject<ContractTerm> { |
|||
|
|||
@ApiModelProperty("合同唯一标识") |
|||
private Long contractId; |
|||
|
|||
@ApiModelProperty("名称") |
|||
private ContractTermNameEnum name; |
|||
|
|||
@ApiModelProperty("展示名称") |
|||
private String displayName; |
|||
|
|||
@ApiModelProperty("类型") |
|||
private ContractTermUnitEnum type; |
|||
|
|||
@ApiModelProperty("数值") |
|||
private String value; |
|||
|
|||
} |
|||
@ -0,0 +1,40 @@ |
|||
package com.qniao.dam.api.command.contract.user; |
|||
|
|||
import com.qniao.dam.api.command.contract.user.request.*; |
|||
import com.qniao.dam.application.service.contract.ContractApplicationService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.annotation.Resource; |
|||
import javax.validation.Valid; |
|||
|
|||
@Api(tags = "合同") |
|||
@RestController |
|||
@RequestMapping("user") |
|||
public class ContractUserCommandController { |
|||
|
|||
@Resource |
|||
private ContractApplicationService contractApplicationService; |
|||
|
|||
@ApiOperation("用户创建合同") |
|||
@PostMapping("create/contract") |
|||
public void userCreateContract(@RequestBody @Valid UserCreateContractDto dto, |
|||
@RequestParam("userId") Long userId) { |
|||
contractApplicationService.create(dto.trans2Domain()); |
|||
} |
|||
|
|||
@ApiOperation("用户编辑合同") |
|||
@PostMapping("edit/contract") |
|||
public void userEditContract(@RequestBody @Valid UserEditContractDto dto, |
|||
@RequestParam("userId") Long userId) { |
|||
contractApplicationService.edit(dto.trans2Domain()); |
|||
} |
|||
|
|||
@ApiOperation("用户删除合同") |
|||
@PostMapping("delete/contract") |
|||
public void userDeleteContract(@RequestBody @Valid UserDeleteContractDto dto, |
|||
@RequestParam("userId") Long userId) { |
|||
contractApplicationService.delete(dto.getId()); |
|||
} |
|||
} |
|||
@ -0,0 +1,56 @@ |
|||
package com.qniao.dam.api.command.contract.user.request; |
|||
|
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
import com.qniao.domain.Trans2DomainAssembler; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserCreateContractDto implements Trans2DomainAssembler<Contract> { |
|||
|
|||
|
|||
@ApiModelProperty("甲方身份类型") |
|||
private Byte firstPartyIdentityType; |
|||
|
|||
@ApiModelProperty("甲方标识") |
|||
private Long firstPartyId; |
|||
|
|||
@ApiModelProperty("甲方经办人名称") |
|||
private String firstPartyName; |
|||
|
|||
@ApiModelProperty("甲方身份编号 身份证、统一信用代码") |
|||
private String firstPartyIdentityNo; |
|||
|
|||
@ApiModelProperty("乙方身份类型") |
|||
private Byte secondPartyIdentityType; |
|||
|
|||
@ApiModelProperty("乙方标识") |
|||
private Long secondPartyId; |
|||
|
|||
@ApiModelProperty("乙方经办人名称") |
|||
private String secondPartyName; |
|||
|
|||
@ApiModelProperty("乙方身份编号 身份证、统一信用代码") |
|||
private String secondPartyIdentityNo; |
|||
|
|||
@ApiModelProperty("签订日期") |
|||
private LocalDateTime signDate; |
|||
|
|||
@ApiModelProperty("开始日期") |
|||
private LocalDateTime startDate; |
|||
|
|||
@ApiModelProperty("开始日期") |
|||
private LocalDateTime endDate; |
|||
|
|||
@ApiModelProperty("状态 已生效、已结束、已终止") |
|||
private Byte status; |
|||
|
|||
@ApiModelProperty("合同备注") |
|||
private String remark; |
|||
|
|||
@Override |
|||
public Contract trans2Domain() { |
|||
return TypeConvertUtils.convert(this, Contract.class); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.api.command.contract.user.request; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserDeleteContractDto { |
|||
|
|||
@ApiModelProperty("唯一标识") |
|||
private Long id; |
|||
|
|||
} |
|||
@ -0,0 +1,59 @@ |
|||
package com.qniao.dam.api.command.contract.user.request; |
|||
|
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
import com.qniao.domain.Trans2DomainAssembler; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import com.qniao.framework.utils.TypeConvertUtils; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserEditContractDto implements Trans2DomainAssembler<Contract> { |
|||
|
|||
|
|||
@ApiModelProperty("") |
|||
private Long id; |
|||
|
|||
@ApiModelProperty("甲方身份类型") |
|||
private Byte firstPartyIdentityType; |
|||
|
|||
@ApiModelProperty("甲方标识") |
|||
private Long firstPartyId; |
|||
|
|||
@ApiModelProperty("甲方经办人名称") |
|||
private String firstPartyName; |
|||
|
|||
@ApiModelProperty("甲方身份编号 身份证、统一信用代码") |
|||
private String firstPartyIdentityNo; |
|||
|
|||
@ApiModelProperty("乙方身份类型") |
|||
private Byte secondPartyIdentityType; |
|||
|
|||
@ApiModelProperty("乙方标识") |
|||
private Long secondPartyId; |
|||
|
|||
@ApiModelProperty("乙方经办人名称") |
|||
private String secondPartyName; |
|||
|
|||
@ApiModelProperty("乙方身份编号 身份证、统一信用代码") |
|||
private String secondPartyIdentityNo; |
|||
|
|||
@ApiModelProperty("签订日期") |
|||
private LocalDateTime signDate; |
|||
|
|||
@ApiModelProperty("开始日期") |
|||
private LocalDateTime startDate; |
|||
|
|||
@ApiModelProperty("开始日期") |
|||
private LocalDateTime endDate; |
|||
|
|||
@ApiModelProperty("状态 已生效、已结束、已终止") |
|||
private Byte status; |
|||
|
|||
@ApiModelProperty("合同备注") |
|||
private String remark; |
|||
|
|||
@Override |
|||
public Contract trans2Domain() { |
|||
return TypeConvertUtils.convert(this, Contract.class); |
|||
} |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
package com.qniao.dam.application.service.contract; |
|||
|
|||
import com.qniao.dam.domain.aggregate.contract.ContractAggregate; |
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class ContractApplicationService { |
|||
|
|||
@Resource |
|||
private ContractAggregate contractAggregate; |
|||
|
|||
public void create(Contract contract) { |
|||
contractAggregate.create(contract); |
|||
} |
|||
|
|||
public void edit(Contract contract) { |
|||
contractAggregate.edit(contract); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
contractAggregate.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package com.qniao.dam.domain.aggregate.contract; |
|||
|
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
import com.qniao.dam.domain.aggregate.contract.repository.ContractRepository; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
/** |
|||
* 合同 |
|||
* |
|||
* @date 2025/07/10 |
|||
*/ |
|||
@Service |
|||
public class ContractAggregate { |
|||
|
|||
@Resource |
|||
private ContractRepository repository; |
|||
|
|||
public void create(Contract entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void edit(Contract entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
repository.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.domain.aggregate.contract.repository; |
|||
|
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
import com.qniao.domain.Repository; |
|||
|
|||
/** |
|||
* 合同 |
|||
* |
|||
* @date 2025/07/10 |
|||
*/ |
|||
public interface ContractRepository extends Repository<Contract, Long> { |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.contract; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
|
|||
/** |
|||
* 合同 |
|||
* |
|||
* @date 2025/07/10 |
|||
*/ |
|||
public interface ContractDao extends BaseMapper<Contract> { |
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
package com.qniao.dam.infrastructure.persistent.repository.impl; |
|||
|
|||
import com.qniao.dam.domain.aggregate.contract.entity.Contract; |
|||
import com.qniao.dam.domain.aggregate.contract.repository.ContractRepository; |
|||
import com.qniao.dam.infrastructure.persistent.dao.contract.ContractDao; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
|
|||
/** |
|||
* 合同 |
|||
* |
|||
* @date 2025/07/10 |
|||
*/ |
|||
@Service |
|||
public class ContractRepositoryImpl implements ContractRepository { |
|||
|
|||
@Resource |
|||
private ContractDao dao; |
|||
|
|||
@Override |
|||
public Contract load(Long id) { |
|||
return dao.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
public Long save(Contract entity) { |
|||
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { |
|||
dao.insert(entity); |
|||
} else { |
|||
dao.updateById(entity); |
|||
} |
|||
return entity.getId(); |
|||
} |
|||
|
|||
@Override |
|||
public void delete(Long id) { |
|||
dao.deleteById(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,5 @@ |
|||
package com.qniao.dam.query.contract; |
|||
|
|||
public interface ContractQueryService { |
|||
|
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
package com.qniao.dam.query.contract.impl; |
|||
|
|||
import com.qniao.dam.query.contract.ContractQueryService; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
@Service |
|||
public class ContractQueryServiceImpl implements ContractQueryService { |
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save