diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mcur/vobj/MatchCardUsageRecord.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mcur/vobj/MatchCardUsageRecord.java new file mode 100644 index 0000000..4744158 --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mcur/vobj/MatchCardUsageRecord.java @@ -0,0 +1,40 @@ +package com.qniao.dam.domain.aggregate.mcur.vobj; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTyepEnum; +import com.qniao.domain.ValueObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDate; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_profile_card_usage_record") +public class MatchCardUsageRecord extends ValueObject { + + @ApiModelProperty("用户标识") + private Long userId; + + @ApiModelProperty("目标申请标识") + private Long targetApplyId; + + @ApiModelProperty("使用类型") + private CardUsageTyepEnum usageType; + + @ApiModelProperty("使用日期") + private LocalDate usageDate; + + public static MatchCardUsageRecord build(Long userId, + Long targetApplyId, + CardUsageTyepEnum usageType) { + MatchCardUsageRecord matchCardUsageRecord = new MatchCardUsageRecord(); + matchCardUsageRecord.setUserId(userId); + matchCardUsageRecord.setTargetApplyId(targetApplyId); + matchCardUsageRecord.setUsageType(usageType); + matchCardUsageRecord.setUsageDate(LocalDate.now()); + return matchCardUsageRecord; + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java index 84a5ba3..1518658 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java @@ -1,6 +1,7 @@ package com.qniao.dam.api.command.mica.user; import com.qniao.dam.api.command.mica.user.request.*; +import com.qniao.dam.api.command.mica.user.response.UnlockMarriageInformationContactApplyVo; import com.qniao.dam.application.service.mica.MarriageInformationContactApplyApplicationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -17,5 +18,17 @@ public class MarriageInformationContactApplyUserCommandController { @Resource private MarriageInformationContactApplyApplicationService marriageInformationContactApplyApplicationService; + @ApiOperation("用户确认征婚资料联系申请") + @PostMapping("confirm/marriage-information-contact-apply") + public void userConfirmMarriageInformationContactApply(@RequestBody @Valid UserConfirmMarriageInformationContactApplyDto dto, + @RequestParam("userId") Long userId) { + marriageInformationContactApplyApplicationService.confirm(dto.trans2Domain()); + } + @ApiOperation("用户解锁征婚资料联系申请") + @PostMapping("unlock/marriage-information-contact-apply") + public UnlockMarriageInformationContactApplyVo userUnlockMarriageInformationContactApply(@RequestBody @Valid UserUnlockMarriageInformationContactApplyDto dto, + @RequestParam("userId") Long userId) { + return marriageInformationContactApplyApplicationService.unlock(dto.trans2Domain(),userId); + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserEditMarriageInformationContactApplyDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserConfirmMarriageInformationContactApplyDto.java similarity index 54% rename from dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserEditMarriageInformationContactApplyDto.java rename to dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserConfirmMarriageInformationContactApplyDto.java index f160eca..3b769d9 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserEditMarriageInformationContactApplyDto.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserConfirmMarriageInformationContactApplyDto.java @@ -1,33 +1,25 @@ package com.qniao.dam.api.command.mica.user.request; import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply; +import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum; import com.qniao.domain.Trans2DomainAssembler; -import io.swagger.annotations.ApiModelProperty; import com.qniao.framework.utils.TypeConvertUtils; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class UserEditMarriageInformationContactApplyDto implements Trans2DomainAssembler { +import javax.validation.constraints.NotNull; +@Data +public class UserConfirmMarriageInformationContactApplyDto implements Trans2DomainAssembler { @ApiModelProperty("唯一标识") + @NotNull private Long id; - @ApiModelProperty("申请人用户id") - private Long applicantUserId; - - @ApiModelProperty("申请人资料id") - private Long applicantMiId; - - @ApiModelProperty("目标用户id") - private Long targetUserId; - - @ApiModelProperty("目标资料id") - private Long targetMiId; - @ApiModelProperty("状态") - private Integer status; - + @NotNull + private MarriageInformationContactApplyStatusEnum status; + @Override public MarriageInformationContactApply trans2Domain() { return TypeConvertUtils.convert(this, MarriageInformationContactApply.class); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserDeleteMarriageInformationContactApplyDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserDeleteMarriageInformationContactApplyDto.java deleted file mode 100644 index b6ccf35..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserDeleteMarriageInformationContactApplyDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.qniao.dam.api.command.mica.user.request; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -public class UserDeleteMarriageInformationContactApplyDto { - - @ApiModelProperty("唯一标识") - private Long id; - -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserCreateMarriageInformationContactApplyDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserUnlockMarriageInformationContactApplyDto.java similarity index 54% rename from dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserCreateMarriageInformationContactApplyDto.java rename to dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserUnlockMarriageInformationContactApplyDto.java index 84685a4..4a319fd 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserCreateMarriageInformationContactApplyDto.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserUnlockMarriageInformationContactApplyDto.java @@ -2,31 +2,22 @@ package com.qniao.dam.api.command.mica.user.request; import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply; import com.qniao.domain.Trans2DomainAssembler; -import io.swagger.annotations.ApiModelProperty; import com.qniao.framework.utils.TypeConvertUtils; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class UserCreateMarriageInformationContactApplyDto implements Trans2DomainAssembler { - - - @ApiModelProperty("申请人用户id") - private Long applicantUserId; +import javax.validation.constraints.NotNull; - @ApiModelProperty("申请人资料id") - private Long applicantMiId; - - @ApiModelProperty("目标用户id") - private Long targetUserId; +@Data +public class UserUnlockMarriageInformationContactApplyDto implements Trans2DomainAssembler { - @ApiModelProperty("目标资料id") - private Long targetMiId; + @ApiModelProperty("唯一标识") + @NotNull + private Long id; - @ApiModelProperty("状态") - private Integer status; - @Override public MarriageInformationContactApply trans2Domain() { return TypeConvertUtils.convert(this, MarriageInformationContactApply.class); } + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/response/UnlockMarriageInformationContactApplyVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/response/UnlockMarriageInformationContactApplyVo.java new file mode 100644 index 0000000..2b35719 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/response/UnlockMarriageInformationContactApplyVo.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.command.mica.user.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UnlockMarriageInformationContactApplyVo { + + @ApiModelProperty("是否成功") + private Boolean success = false; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java index a01f77b..73f445b 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java @@ -49,7 +49,7 @@ public class ContactCardUsageRecordApplicationService { } else { MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(usageRecord.getUserId()); vo.setRealNameAuthenticated(StrUtil.isNotBlank(marriageInformation.getIdentityCard())); - if (!vo.getRealNameAuthenticated()) { + if (vo.getRealNameAuthenticated()) { //已经认证 int usageFreeCount = contactCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE); if (usageFreeCount < 10) { diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java index 94860dc..fdeaedf 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java @@ -1,14 +1,70 @@ package com.qniao.dam.application.service.mica; +import com.qniao.dam.api.command.mica.user.response.UnlockMarriageInformationContactApplyVo; import com.qniao.dam.domain.aggregate.mica.MarriageInformationContactApplyAggregate; +import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply; +import com.qniao.dam.domain.aggregate.right.entity.Right; +import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum; +import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTyepEnum; +import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum; +import com.qniao.dam.infrastructure.persistent.dao.mica.MarriageInformationContactApplyDao; +import com.qniao.dam.query.mcur.MatchCardUsageRecordQueryService; +import com.qniao.dam.query.right.RightQueryService; +import com.qniao.framework.exception.BizException; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.Objects; @Service public class MarriageInformationContactApplyApplicationService { @Resource private MarriageInformationContactApplyAggregate marriageInformationContactApplyAggregate; + @Resource + private MarriageInformationContactApplyDao marriageInformationContactApplyDao; + @Resource + private RightQueryService rightQueryService; + @Resource + private MatchCardUsageRecordQueryService matchCardUsageRecordQueryService; + + public void confirm(MarriageInformationContactApply apply) { + MarriageInformationContactApply existApply = marriageInformationContactApplyDao.selectById(apply.getId()); + if (MarriageInformationContactApplyStatusEnum.PENDING.equals(existApply.getStatus())) { + marriageInformationContactApplyAggregate.edit(apply); + } + } + + public UnlockMarriageInformationContactApplyVo unlock(MarriageInformationContactApply apply, Long applicantUserId) { + MarriageInformationContactApply existApply = marriageInformationContactApplyDao.selectById(apply.getId()); + if (!MarriageInformationContactApplyStatusEnum.APPROVED.equals(existApply.getStatus())) { + throw new BizException("对方未同意您的申请"); + } + UnlockMarriageInformationContactApplyVo vo = new UnlockMarriageInformationContactApplyVo(); + if (existApply.getUnlocked()) { + vo.setSuccess(true); + } else { + //未解锁 + if (!applicantUserId.equals(existApply.getApplicantUserId())) { + throw new BizException("您不是申请人"); + } else { + //判断是否会员 + Right right = rightQueryService.getUserVipInfo(existApply.getApplicantUserId(), existApply.getApplicantMiId()); + if (Objects.nonNull(right)) { + //是会员 + if (RightTypeEnum.VIP.equals(right.getType())) { + // int lastDay = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()) + //正式会员 + //int usageFreeCount = matchCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE,); + } else { + //体验会员(周会员) + } + } + } + } + return vo; + } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mcur/MatchCardUsageRecordDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mcur/MatchCardUsageRecordDao.java new file mode 100644 index 0000000..0746665 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mcur/MatchCardUsageRecordDao.java @@ -0,0 +1,7 @@ +package com.qniao.dam.infrastructure.persistent.dao.mcur; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.mcur.vobj.MatchCardUsageRecord; + +public interface MatchCardUsageRecordDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/MatchCardUsageRecordQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/MatchCardUsageRecordQueryService.java new file mode 100644 index 0000000..3fd5848 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/MatchCardUsageRecordQueryService.java @@ -0,0 +1,4 @@ +package com.qniao.dam.query.mcur; + +public interface MatchCardUsageRecordQueryService { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/impl/MatchCardUsageRecordQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/impl/MatchCardUsageRecordQueryServiceImpl.java new file mode 100644 index 0000000..b2133b1 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/impl/MatchCardUsageRecordQueryServiceImpl.java @@ -0,0 +1,8 @@ +package com.qniao.dam.query.mcur.impl; + +import com.qniao.dam.query.mcur.MatchCardUsageRecordQueryService; +import org.springframework.stereotype.Service; + +@Service +public class MatchCardUsageRecordQueryServiceImpl implements MatchCardUsageRecordQueryService { +}