13 changed files with 351 additions and 0 deletions
Unified View
Diff Options
-
5dating-agency-mall-server/pom.xml
-
33dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/ContractUserQueryController.java
-
34dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/request/UserPageCustomizedServiceContractQueryParams.java
-
22dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractImageVo.java
-
29dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractTermVo.java
-
72dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/UserPageCustomizedServiceContractVo.java
-
9dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractImageDao.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractTermDao.java
-
21dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/ContractRepositoryImpl.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/ContractQueryService.java
-
56dating-agency-mall-server/src/main/java/com/qniao/dam/query/contract/impl/ContractQueryServiceImpl.java
-
49dating-agency-mall-server/src/main/resources/mapper/contract/ContractMapper.xml
@ -0,0 +1,33 @@ |
|||||
|
package com.qniao.dam.api.query.contract.user; |
||||
|
|
||||
|
import com.qniao.dam.api.query.contract.user.request.UserPageCustomizedServiceContractQueryParams; |
||||
|
import com.qniao.dam.api.query.contract.user.response.UserPageCustomizedServiceContractVo; |
||||
|
import com.qniao.dam.query.contract.ContractQueryService; |
||||
|
import com.qniao.dau.infrastructure.constant.RequestHeaderFields; |
||||
|
import com.qniao.domain.QnPage; |
||||
|
import com.qniao.framework.utils.PageUtil; |
||||
|
import io.swagger.annotations.Api; |
||||
|
import io.swagger.annotations.ApiOperation; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
|
||||
|
@Api(tags = "合同") |
||||
|
@RestController |
||||
|
@RequestMapping("user") |
||||
|
public class ContractUserQueryController { |
||||
|
|
||||
|
@Resource |
||||
|
private ContractQueryService contractQueryService; |
||||
|
|
||||
|
@GetMapping("page/customized-service-contract/by-dating-store") |
||||
|
@ApiOperation("线下门店查询合同列表 -- 线下门店") |
||||
|
public QnPage<UserPageCustomizedServiceContractVo> userPageCustomizedServiceContractByDatingStore(PageUtil pageUtil, |
||||
|
UserPageCustomizedServiceContractQueryParams queryParams, |
||||
|
@RequestParam(value = "userId") Long userId, |
||||
|
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID) Long orgId) { |
||||
|
queryParams.setDatingStoreOrgId(orgId); |
||||
|
return PageUtil.convert(contractQueryService.pageCustomizedServiceContract(queryParams, pageUtil), UserPageCustomizedServiceContractVo.class); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
package com.qniao.dam.api.query.contract.user.request; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
|
||||
|
@Data |
||||
|
public class UserPageCustomizedServiceContractQueryParams { |
||||
|
|
||||
|
private Long datingStoreOrgId; |
||||
|
|
||||
|
@ApiModelProperty("客户姓名") |
||||
|
private String datingStoreCustomerName; |
||||
|
|
||||
|
@ApiModelProperty("客户身份证") |
||||
|
private String datingStoreCustomerIdentityNo; |
||||
|
|
||||
|
@ApiModelProperty("客户联系号码") |
||||
|
private String datingStoreCustomerPhone; |
||||
|
|
||||
|
@ApiModelProperty("签订日期开始") |
||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||
|
private LocalDate signDateFrom; |
||||
|
|
||||
|
@ApiModelProperty("签订日期结束") |
||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd") |
||||
|
private LocalDate signDateTo; |
||||
|
|
||||
|
@ApiModelProperty("状态") |
||||
|
private Integer status; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
package com.qniao.dam.api.query.contract.user.response; |
||||
|
|
||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||
|
import com.qniao.dam.domian.aggregate.contract.constant.ContractImageTypeEnum; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class ContractImageVo { |
||||
|
|
||||
|
@ApiModelProperty("合同唯一标识") |
||||
|
@JsonSerialize(using = ToStringSerializer.class) |
||||
|
private Long contractId; |
||||
|
|
||||
|
@ApiModelProperty("影像类型") |
||||
|
private ContractImageTypeEnum type; |
||||
|
|
||||
|
@ApiModelProperty("url") |
||||
|
private String url; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,29 @@ |
|||||
|
package com.qniao.dam.api.query.contract.user.response; |
||||
|
|
||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||
|
import com.qniao.dam.domian.aggregate.contract.constant.ContractTermNameEnum; |
||||
|
import com.qniao.dam.domian.aggregate.contract.constant.ContractTermUnitEnum; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class ContractTermVo { |
||||
|
|
||||
|
@ApiModelProperty("合同唯一标识") |
||||
|
@JsonSerialize(using = ToStringSerializer.class) |
||||
|
private Long contractId; |
||||
|
|
||||
|
@ApiModelProperty("名称") |
||||
|
private ContractTermNameEnum name; |
||||
|
|
||||
|
@ApiModelProperty("展示名称") |
||||
|
private String displayName; |
||||
|
|
||||
|
@ApiModelProperty("类型") |
||||
|
private ContractTermUnitEnum type; |
||||
|
|
||||
|
@ApiModelProperty("数值") |
||||
|
private String value; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,72 @@ |
|||||
|
package com.qniao.dam.api.query.contract.user.response; |
||||
|
|
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||
|
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 java.math.BigDecimal; |
||||
|
import java.time.LocalDate; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Data |
||||
|
public class UserPageCustomizedServiceContractVo { |
||||
|
|
||||
|
@ApiModelProperty("唯一标识") |
||||
|
@JsonSerialize(using = ToStringSerializer.class) |
||||
|
private Long id; |
||||
|
|
||||
|
@ApiModelProperty("甲方身份类型") |
||||
|
private IdentityTypeEnum firstPartyIdentityType; |
||||
|
|
||||
|
@ApiModelProperty("甲方标识") |
||||
|
@JsonSerialize(using = ToStringSerializer.class) |
||||
|
private Long firstPartyId; |
||||
|
|
||||
|
@ApiModelProperty("甲方经办人名称") |
||||
|
private String firstPartyName; |
||||
|
|
||||
|
@ApiModelProperty("甲方身份编号 身份证、统一信用代码") |
||||
|
private String firstPartyIdentityNo; |
||||
|
|
||||
|
@ApiModelProperty("乙方身份类型") |
||||
|
private IdentityTypeEnum secondPartyIdentityType; |
||||
|
|
||||
|
@ApiModelProperty("乙方标识") |
||||
|
@JsonSerialize(using = ToStringSerializer.class) |
||||
|
private Long secondPartyId; |
||||
|
|
||||
|
@ApiModelProperty("乙方经办人名称") |
||||
|
private String secondPartyName; |
||||
|
|
||||
|
@ApiModelProperty("乙方身份编号 身份证、统一信用代码") |
||||
|
private String secondPartyIdentityNo; |
||||
|
|
||||
|
@ApiModelProperty("合同金额") |
||||
|
private BigDecimal amount; |
||||
|
|
||||
|
@ApiModelProperty("签订日期") |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||
|
private LocalDate signDate; |
||||
|
|
||||
|
@ApiModelProperty("开始日期") |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||
|
private LocalDate startDate; |
||||
|
|
||||
|
@ApiModelProperty("开始日期") |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||
|
private LocalDate endDate; |
||||
|
|
||||
|
@ApiModelProperty("状态") |
||||
|
private ContractStatusEnum status; |
||||
|
|
||||
|
@ApiModelProperty("合同备注") |
||||
|
private String remark; |
||||
|
|
||||
|
private List<ContractTermVo> contractTermList; |
||||
|
|
||||
|
private List<ContractImageVo> contractImageList; |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
package com.qniao.dam.infrastructure.persistent.dao.contract; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.qniao.dam.domain.aggregate.contract.valobj.ContractImage; |
||||
|
|
||||
|
public interface ContractImageDao extends BaseMapper<ContractImage> { |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
package com.qniao.dam.infrastructure.persistent.dao.contract; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.qniao.dam.domain.aggregate.contract.valobj.ContractTerm; |
||||
|
|
||||
|
public interface ContractTermDao extends BaseMapper<ContractTerm> { |
||||
|
} |
||||
@ -1,5 +1,12 @@ |
|||||
package com.qniao.dam.query.contract; |
package com.qniao.dam.query.contract; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.qniao.dam.api.query.contract.user.request.UserPageCustomizedServiceContractQueryParams; |
||||
|
import com.qniao.dam.api.query.contract.user.response.UserPageCustomizedServiceContractVo; |
||||
|
import com.qniao.domain.QnPage; |
||||
|
import com.qniao.framework.utils.PageUtil; |
||||
|
|
||||
public interface ContractQueryService { |
public interface ContractQueryService { |
||||
|
|
||||
|
IPage<UserPageCustomizedServiceContractVo> pageCustomizedServiceContract(UserPageCustomizedServiceContractQueryParams queryParams, PageUtil pageUtil); |
||||
} |
} |
||||
@ -1,9 +1,65 @@ |
|||||
package com.qniao.dam.query.contract.impl; |
package com.qniao.dam.query.contract.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.qniao.dam.api.query.contract.user.request.UserPageCustomizedServiceContractQueryParams; |
||||
|
import com.qniao.dam.api.query.contract.user.response.ContractImageVo; |
||||
|
import com.qniao.dam.api.query.contract.user.response.ContractTermVo; |
||||
|
import com.qniao.dam.api.query.contract.user.response.UserPageCustomizedServiceContractVo; |
||||
|
import com.qniao.dam.domain.aggregate.contract.valobj.ContractImage; |
||||
|
import com.qniao.dam.domain.aggregate.contract.valobj.ContractTerm; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.contract.ContractDao; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.contract.ContractImageDao; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.contract.ContractTermDao; |
||||
import com.qniao.dam.query.contract.ContractQueryService; |
import com.qniao.dam.query.contract.ContractQueryService; |
||||
|
import com.qniao.framework.utils.PageUtil; |
||||
|
import com.qniao.framework.utils.TypeConvertUtils; |
||||
import org.springframework.stereotype.Service; |
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
@Service |
@Service |
||||
public class ContractQueryServiceImpl implements ContractQueryService { |
public class ContractQueryServiceImpl implements ContractQueryService { |
||||
|
|
||||
|
@Resource |
||||
|
private ContractDao contractDao; |
||||
|
@Resource |
||||
|
private ContractTermDao contractTermDao; |
||||
|
@Resource |
||||
|
private ContractImageDao contractImageDao; |
||||
|
|
||||
|
@Override |
||||
|
public IPage<UserPageCustomizedServiceContractVo> pageCustomizedServiceContract(UserPageCustomizedServiceContractQueryParams queryParams, |
||||
|
PageUtil pageUtil) { |
||||
|
IPage<UserPageCustomizedServiceContractVo> page = contractDao.pageCustomizedServiceContract(pageUtil.toPageWithoutOrders(), queryParams); |
||||
|
if (page.getRecords().size() > 0) { |
||||
|
List<Long> contractIdList = page.getRecords().stream().map(UserPageCustomizedServiceContractVo::getId).collect(Collectors.toList()); |
||||
|
Map<Long, List<ContractTermVo>> allContractTermVoMap = mapContractTermVo(contractIdList); |
||||
|
Map<Long, List<ContractImageVo>> allContractImageVoMap = mapContractImageVo(contractIdList); |
||||
|
page.getRecords().forEach(record -> { |
||||
|
record.setContractTermList(allContractTermVoMap.get(record.getId())); |
||||
|
record.setContractImageList(allContractImageVoMap.get(record.getId())); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
return page; |
||||
|
} |
||||
|
|
||||
|
private Map<Long, List<ContractImageVo>> mapContractImageVo(List<Long> contractIdList) { |
||||
|
List<ContractImage> contractImageList = contractImageDao.selectList(new LambdaQueryWrapper<ContractImage>() |
||||
|
.in(ContractImage::getContractId, contractIdList)); |
||||
|
List<ContractImageVo> contractImageVoList = TypeConvertUtils.convert(contractImageList, ContractImageVo.class); |
||||
|
return contractImageVoList.stream().collect(Collectors.groupingBy(ContractImageVo::getContractId)); |
||||
|
} |
||||
|
|
||||
|
private Map<Long, List<ContractTermVo>> mapContractTermVo(List<Long> contractIdList) { |
||||
|
List<ContractTerm> contractTermList = contractTermDao.selectList(new LambdaQueryWrapper<ContractTerm>() |
||||
|
.in(ContractTerm::getContractId, contractIdList)); |
||||
|
List<ContractTermVo> contractTermVoList = TypeConvertUtils.convert(contractTermList, ContractTermVo.class); |
||||
|
return contractTermVoList.stream().collect(Collectors.groupingBy(ContractTermVo::getContractId)); |
||||
|
} |
||||
} |
} |
||||
@ -0,0 +1,49 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.contract.ContractDao"> |
||||
|
|
||||
|
|
||||
|
<select id="pageCustomizedServiceContract" |
||||
|
resultType="com.qniao.dam.api.query.contract.user.response.UserPageCustomizedServiceContractVo"> |
||||
|
SELECT |
||||
|
dac.id, |
||||
|
dac.first_party_identity_type, |
||||
|
dac.first_party_id, |
||||
|
dac.first_party_name, |
||||
|
dac.first_party_identity_no, |
||||
|
dac.second_party_identity_type, |
||||
|
dac.second_party_id, |
||||
|
dac.second_party_name, |
||||
|
dac.second_party_identity_no, |
||||
|
dac.amount, |
||||
|
dac.sign_date, |
||||
|
dac.start_date, |
||||
|
dac.end_date, |
||||
|
dac.status, |
||||
|
dac.remark |
||||
|
from da_contract as dac |
||||
|
LEFT JOIN da_dating_store_customer as dadsc on dac.first_party_id=dadsc.id |
||||
|
where dac.is_delete=0 |
||||
|
<if test="queryParams.status != null"> |
||||
|
and dac.status = #{queryParams.status} |
||||
|
</if> |
||||
|
<if test="queryParams.datingStoreOrgId != null"> |
||||
|
and dadsc.dating_store_org_id = #{queryParams.datingStoreOrgId} |
||||
|
</if> |
||||
|
<if test="queryParams.datingStoreCustomerName != null and queryParams.datingStoreCustomerName != '' "> |
||||
|
AND dac.first_party_name LIKE CONCAT('%', TRIM(#{queryParams.datingStoreCustomerName}), '%') |
||||
|
</if> |
||||
|
<if test="queryParams.datingStoreCustomerIdentityNo != null and queryParams.datingStoreCustomerIdentityNo != '' "> |
||||
|
AND dac.first_party_identity_no LIKE CONCAT('%', TRIM(#{queryParams.datingStoreCustomerIdentityNo}), '%') |
||||
|
</if> |
||||
|
<if test="queryParams.datingStoreCustomerPhone != null and queryParams.datingStoreCustomerPhone != '' "> |
||||
|
AND dadsc.phone LIKE CONCAT('%', TRIM(#{queryParams.datingStoreCustomerPhone}), '%') |
||||
|
</if> |
||||
|
<if test="queryParams.signDateFrom != null and queryParams.signDateTo != null"> |
||||
|
and dac.sign_date BETWEEN #{queryParams.signDateFrom} and #{queryParams.signDateTo} |
||||
|
</if> |
||||
|
ORDER BY dac.sign_date desc |
||||
|
</select> |
||||
|
|
||||
|
|
||||
|
</mapper> |
||||
Write
Preview
Loading…
Cancel
Save