diff --git a/dating-agency-mall-server/pom.xml b/dating-agency-mall-server/pom.xml
index ddb470b..9e64e7d 100644
--- a/dating-agency-mall-server/pom.xml
+++ b/dating-agency-mall-server/pom.xml
@@ -101,6 +101,11 @@
dating-agency-service-entity
0.0.1-SNAPSHOT
+
+ com.qniao
+ dating-clue-service-entity
+ 0.0.1-SNAPSHOT
+
com.qniao
dating-agency-uec-sdk
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/ContractUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/ContractUserQueryController.java
new file mode 100644
index 0000000..d16021d
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/ContractUserQueryController.java
@@ -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 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);
+ }
+
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/request/UserPageCustomizedServiceContractQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/request/UserPageCustomizedServiceContractQueryParams.java
new file mode 100644
index 0000000..9a3db17
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/request/UserPageCustomizedServiceContractQueryParams.java
@@ -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;
+
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractImageVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractImageVo.java
new file mode 100644
index 0000000..085f6bc
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractImageVo.java
@@ -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;
+
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractTermVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractTermVo.java
new file mode 100644
index 0000000..4b1e69e
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/ContractTermVo.java
@@ -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;
+
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/UserPageCustomizedServiceContractVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/UserPageCustomizedServiceContractVo.java
new file mode 100644
index 0000000..2749983
--- /dev/null
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/contract/user/response/UserPageCustomizedServiceContractVo.java
@@ -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 contractTermList;
+
+ private List contractImageList;
+}
diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java
index d4c9618..b411635 100644
--- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java
+++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/contract/ContractDao.java
@@ -1,7 +1,12 @@
package com.qniao.dam.infrastructure.persistent.dao.contract;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qniao.dam.api.query.contract.user.request.UserPageCustomizedServiceContractQueryParams;
+import com.qniao.dam.api.query.contract.user.response.UserPageCustomizedServiceContractVo;
import com.qniao.dam.domain.aggregate.contract.entity.Contract;
+import org.apache.ibatis.annotations.Param;
/**
* 合同
@@ -9,4 +14,8 @@ import com.qniao.dam.domain.aggregate.contract.entity.Contract;
* @date 2025/07/10
*/
public interface ContractDao extends BaseMapper {
+
+ IPage pageCustomizedServiceContract(Page