Browse Source

用户使用联系卡

master
张彭杰 1 month ago
parent
commit
eb1640c273
10 changed files with 334 additions and 0 deletions
  1. 45
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/MarriageInformationContactApplyUserQueryController.java
  2. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/request/UserPageApplicantMarriageInformationContactApplyQueryParams.java
  3. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/request/UserPageTargetMarriageInformationContactApplyQueryParams.java
  4. 67
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/response/UserPageApplicantMarriageInformationContactApplyVo.java
  5. 67
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/response/UserPageTargetMarriageInformationContactApplyVo.java
  6. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mica/MarriageInformationContactApplyDao.java
  7. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/utils/AgeCalculatorUtil.java
  8. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/MarriageInformationContactApplyQueryService.java
  9. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/impl/MarriageInformationContactApplyQueryServiceImpl.java
  10. 54
      dating-agency-mall-server/src/main/resources/mapper/mica/MarriageInformationContactApplyDao.xml

45
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/MarriageInformationContactApplyUserQueryController.java

@ -0,0 +1,45 @@
package com.qniao.dam.api.query.mica.user;
import com.qniao.dam.api.query.mica.user.request.UserPageApplicantMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.request.UserPageTargetMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.response.UserPageApplicantMarriageInformationContactApplyVo;
import com.qniao.dam.api.query.mica.user.response.UserPageTargetMarriageInformationContactApplyVo;
import com.qniao.dam.query.mica.MarriageInformationContactApplyQueryService;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "征婚资料联系申请")
@RestController
@RequestMapping("user")
public class MarriageInformationContactApplyUserQueryController {
@Resource
private MarriageInformationContactApplyQueryService marriageInformationContactApplyQueryService;
@GetMapping("page/applicant/marriage-information-contact-apply")
@ApiOperation("用户查询发起人征婚资料联系申请列表")
public QnPage<UserPageApplicantMarriageInformationContactApplyVo> userPageApplicantMarriageInformationContactApply(PageUtil pageUtil,
UserPageApplicantMarriageInformationContactApplyQueryParams queryParams,
@RequestParam("userId") Long userId) {
queryParams.setApplicantUserId(userId);
return PageUtil.convert(marriageInformationContactApplyQueryService.pageApplicant(queryParams, pageUtil), UserPageApplicantMarriageInformationContactApplyVo.class);
}
@GetMapping("page/target/marriage-information-contact-apply")
@ApiOperation("用户查询接收人征婚资料联系申请列表")
public QnPage<UserPageTargetMarriageInformationContactApplyVo> userPageTargetMarriageInformationContactApply(PageUtil pageUtil,
UserPageTargetMarriageInformationContactApplyQueryParams queryParams,
@RequestParam("userId") Long userId) {
queryParams.setTargetUserId(userId);
return PageUtil.convert(marriageInformationContactApplyQueryService.pageTarget(queryParams, pageUtil), UserPageTargetMarriageInformationContactApplyVo.class);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/request/UserPageApplicantMarriageInformationContactApplyQueryParams.java

@ -0,0 +1,12 @@
package com.qniao.dam.api.query.mica.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserPageApplicantMarriageInformationContactApplyQueryParams {
@ApiModelProperty(hidden = true)
private Long applicantUserId;
}

13
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/request/UserPageTargetMarriageInformationContactApplyQueryParams.java

@ -0,0 +1,13 @@
package com.qniao.dam.api.query.mica.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserPageTargetMarriageInformationContactApplyQueryParams {
@ApiModelProperty(hidden = true)
private Long targetUserId;
}

67
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/response/UserPageApplicantMarriageInformationContactApplyVo.java

@ -0,0 +1,67 @@
package com.qniao.dam.api.query.mica.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.mica.constant.MarriageInformationContactApplyStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class UserPageApplicantMarriageInformationContactApplyVo {
@ApiModelProperty("唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty("目标用户id")
@JsonSerialize(using = ToStringSerializer.class)
private Long targetUserId;
@ApiModelProperty("目标资料id")
@JsonSerialize(using = ToStringSerializer.class)
private Long targetMiId;
@ApiModelProperty("昵称")
private String nickName;
@ApiModelProperty("头像URL")
private String profilePhoto;
@ApiModelProperty("性别")
private Integer genderCode;
@ApiModelProperty("出身年份")
private String birthYear;
@ApiModelProperty("出身日期")
private String birthDate;
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("省编码")
private Integer provinceCode;
@ApiModelProperty("省名称")
private String provinceName;
@ApiModelProperty("市名编码")
private Integer cityCode;
@ApiModelProperty("市名称")
private String cityName;
@ApiModelProperty("状态")
private MarriageInformationContactApplyStatusEnum status;
@ApiModelProperty("是否解锁")
private Boolean unlocked;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

67
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/mica/user/response/UserPageTargetMarriageInformationContactApplyVo.java

@ -0,0 +1,67 @@
package com.qniao.dam.api.query.mica.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.mica.constant.MarriageInformationContactApplyStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class UserPageTargetMarriageInformationContactApplyVo {
@ApiModelProperty("唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty("申请人用户id")
@JsonSerialize(using = ToStringSerializer.class)
private Long applicantUserId;
@ApiModelProperty("申请人资料id")
@JsonSerialize(using = ToStringSerializer.class)
private Long applicantMiId;
@ApiModelProperty("昵称")
private String nickName;
@ApiModelProperty("头像URL")
private String profilePhoto;
@ApiModelProperty("性别")
private Integer genderCode;
@ApiModelProperty("出身年份")
private String birthYear;
@ApiModelProperty("出身日期")
private String birthDate;
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("省编码")
private Integer provinceCode;
@ApiModelProperty("省名称")
private String provinceName;
@ApiModelProperty("市名编码")
private Integer cityCode;
@ApiModelProperty("市名称")
private String cityName;
@ApiModelProperty("状态")
private MarriageInformationContactApplyStatusEnum status;
@ApiModelProperty("是否解锁")
private Boolean unlocked;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

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

@ -1,7 +1,14 @@
package com.qniao.dam.infrastructure.persistent.dao.mica;
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.mica.user.request.UserPageApplicantMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.request.UserPageTargetMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.response.UserPageApplicantMarriageInformationContactApplyVo;
import com.qniao.dam.api.query.mica.user.response.UserPageTargetMarriageInformationContactApplyVo;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import org.apache.ibatis.annotations.Param;
/**
* 征婚资料联系申请
@ -9,4 +16,9 @@ import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactAppl
* @date 2026/02/04
*/
public interface MarriageInformationContactApplyDao extends BaseMapper<MarriageInformationContactApply> {
IPage<UserPageApplicantMarriageInformationContactApplyVo> pageApplicant(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPageApplicantMarriageInformationContactApplyQueryParams queryParams);
IPage<UserPageTargetMarriageInformationContactApplyVo> pageTarget(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPageTargetMarriageInformationContactApplyQueryParams queryParams);
}

26
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/utils/AgeCalculatorUtil.java

@ -0,0 +1,26 @@
package com.qniao.dam.infrastructure.utils;
import cn.hutool.core.util.StrUtil;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
public class AgeCalculatorUtil {
// 固定支持 yyyy-MM-dd 格式
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static Integer calculateAge(String birthYearStr, String yearDateStr) {
Integer age = null;
if (StrUtil.isEmpty(yearDateStr) && StrUtil.isNotBlank(birthYearStr)) {
yearDateStr = birthYearStr + "-01-01";
}
if (StrUtil.isNotBlank(yearDateStr)) {
LocalDate birthDate = LocalDate.parse(yearDateStr, DATE_FORMATTER);
age = Period.between(birthDate, LocalDate.now()).getYears();
}
return age;
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/MarriageInformationContactApplyQueryService.java

@ -1,6 +1,18 @@
package com.qniao.dam.query.mica;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.mica.user.request.UserPageApplicantMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.request.UserPageTargetMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.response.UserPageApplicantMarriageInformationContactApplyVo;
import com.qniao.dam.api.query.mica.user.response.UserPageTargetMarriageInformationContactApplyVo;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
public interface MarriageInformationContactApplyQueryService {
Boolean checkApplying(Long applicantUserId, Long targetMiId);
IPage<UserPageApplicantMarriageInformationContactApplyVo> pageApplicant(UserPageApplicantMarriageInformationContactApplyQueryParams queryParams, PageUtil pageUtil);
IPage<UserPageTargetMarriageInformationContactApplyVo> pageTarget(UserPageTargetMarriageInformationContactApplyQueryParams queryParams, PageUtil pageUtil);
}

26
dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/impl/MarriageInformationContactApplyQueryServiceImpl.java

@ -1,10 +1,17 @@
package com.qniao.dam.query.mica.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.mica.user.request.UserPageApplicantMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.request.UserPageTargetMarriageInformationContactApplyQueryParams;
import com.qniao.dam.api.query.mica.user.response.UserPageApplicantMarriageInformationContactApplyVo;
import com.qniao.dam.api.query.mica.user.response.UserPageTargetMarriageInformationContactApplyVo;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum;
import com.qniao.dam.infrastructure.persistent.dao.mica.MarriageInformationContactApplyDao;
import com.qniao.dam.infrastructure.utils.AgeCalculatorUtil;
import com.qniao.dam.query.mica.MarriageInformationContactApplyQueryService;
import com.qniao.framework.utils.PageUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -30,4 +37,23 @@ public class MarriageInformationContactApplyQueryServiceImpl implements Marriage
.in(MarriageInformationContactApply::getStatus, Arrays.asList(MarriageInformationContactApplyStatusEnum.PENDING, MarriageInformationContactApplyStatusEnum.APPROVED))) > 0;
}
@Override
public IPage<UserPageApplicantMarriageInformationContactApplyVo> pageApplicant(UserPageApplicantMarriageInformationContactApplyQueryParams queryParams,
PageUtil pageUtil) {
IPage<UserPageApplicantMarriageInformationContactApplyVo> page = marriageInformationContactApplyDao.pageApplicant(pageUtil.toPageWithoutOrders(), queryParams);
page.getRecords().forEach(record -> {
record.setAge(AgeCalculatorUtil.calculateAge(record.getBirthYear(), record.getBirthDate()));
});
return page;
}
@Override
public IPage<UserPageTargetMarriageInformationContactApplyVo> pageTarget(UserPageTargetMarriageInformationContactApplyQueryParams queryParams, PageUtil pageUtil) {
IPage<UserPageTargetMarriageInformationContactApplyVo> page = marriageInformationContactApplyDao.pageTarget(pageUtil.toPageWithoutOrders(), queryParams);
page.getRecords().forEach(record -> {
record.setAge(AgeCalculatorUtil.calculateAge(record.getBirthYear(), record.getBirthDate()));
});
return page;
}
}

54
dating-agency-mall-server/src/main/resources/mapper/mica/MarriageInformationContactApplyDao.xml

@ -0,0 +1,54 @@
<?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.mica.MarriageInformationContactApplyDao">
<select id="pageApplicant"
resultType="com.qniao.dam.api.query.mica.user.response.UserPageApplicantMarriageInformationContactApplyVo">
SELECT
damica.id,
damica.target_mi_id,
damica.target_user_id,
dami.nick_name,
dami.profile_photo,
dami.gender_code,
dami.birth_year,
dami.birth_date,
dami.province_code,
dami.province_name,
dami.city_code,
dami.city_name,
damica.`status`,
damica.unlocked,
damica.create_time
from da_marriage_information_contact_apply as damica
LEFT JOIN da_marriage_information as dami on damica.target_mi_id=dami.id
WHERE damica.is_delete=0
and damica.applicant_user_id=#{queryParams.applicantUserId}
ORDER BY damica.`status` ASC,damica.create_time desc
</select>
<select id="pageTarget"
resultType="com.qniao.dam.api.query.mica.user.response.UserPageTargetMarriageInformationContactApplyVo">
SELECT damica.id,
damica.applicant_mi_id,
damica.applicant_user_id,
dami.nick_name,
dami.profile_photo,
dami.gender_code,
dami.birth_year,
dami.birth_date,
dami.province_code,
dami.province_name,
dami.city_code,
dami.city_name,
damica.`status`,
damica.unlocked,
damica.create_time
from da_marriage_information_contact_apply as damica
LEFT JOIN da_marriage_information as dami on damica.applicant_mi_id = dami.id
WHERE damica.is_delete = 0
and damica.target_user_id = #{queryParams.targetUserId}
ORDER BY damica.`status` ASC, damica.create_time desc
</select>
</mapper>
Loading…
Cancel
Save