Browse Source

合同

master
张彭杰 8 months ago
parent
commit
40860cd0d0
18 changed files with 581 additions and 0 deletions
  1. 36
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractImageTypeEnum.java
  2. 48
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractStatusEnum.java
  3. 36
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractTermNameEnum.java
  4. 36
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractTermUnitEnum.java
  5. 68
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/entity/Contract.java
  6. 23
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/valobj/ContractImage.java
  7. 31
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/valobj/ContractTerm.java
  8. 40
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/ContractUserCommandController.java
  9. 56
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserCreateContractDto.java
  10. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserDeleteContractDto.java
  11. 59
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserEditContractDto.java
  12. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/contract/ContractApplicationService.java
  13. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/contract/ContractAggregate.java
  14. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/contract/repository/ContractRepository.java
  15. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java
  16. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/ContractRepositoryImpl.java
  17. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/ContractQueryService.java
  18. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/impl/ContractQueryServiceImpl.java

36
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractImageTypeEnum.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;
}
}

48
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractStatusEnum.java

@ -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;
}
}

36
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractTermNameEnum.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 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;
}
}

36
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/contract/constant/ContractTermUnitEnum.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 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;
}
}

68
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/entity/Contract.java

@ -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;
}

23
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/valobj/ContractImage.java

@ -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;
}

31
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/contract/valobj/ContractTerm.java

@ -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;
}

40
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/ContractUserCommandController.java

@ -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());
}
}

56
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserCreateContractDto.java

@ -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);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserDeleteContractDto.java

@ -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;
}

59
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/contract/user/request/UserEditContractDto.java

@ -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);
}
}

26
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/contract/ContractApplicationService.java

@ -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);
}
}

31
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/contract/ContractAggregate.java

@ -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);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/contract/repository/ContractRepository.java

@ -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> {
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java

@ -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> {
}

41
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/ContractRepositoryImpl.java

@ -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);
}
}

5
dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/ContractQueryService.java

@ -0,0 +1,5 @@
package com.qniao.dam.query.contract;
public interface ContractQueryService {
}

9
dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/impl/ContractQueryServiceImpl.java

@ -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 {
}
Loading…
Cancel
Save