Browse Source

用户使用联系卡

master
张彭杰 1 month ago
parent
commit
6d97f46a35
11 changed files with 158 additions and 47 deletions
  1. 40
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mcur/vobj/MatchCardUsageRecord.java
  2. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java
  3. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserConfirmMarriageInformationContactApplyDto.java
  4. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserDeleteMarriageInformationContactApplyDto.java
  5. 25
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserUnlockMarriageInformationContactApplyDto.java
  6. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/response/UnlockMarriageInformationContactApplyVo.java
  7. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java
  8. 56
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java
  9. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mcur/MatchCardUsageRecordDao.java
  10. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/MatchCardUsageRecordQueryService.java
  11. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/impl/MatchCardUsageRecordQueryServiceImpl.java

40
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<MatchCardUsageRecord> {
@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;
}
}

13
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; 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.request.*;
import com.qniao.dam.api.command.mica.user.response.UnlockMarriageInformationContactApplyVo;
import com.qniao.dam.application.service.mica.MarriageInformationContactApplyApplicationService; import com.qniao.dam.application.service.mica.MarriageInformationContactApplyApplicationService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -17,5 +18,17 @@ public class MarriageInformationContactApplyUserCommandController {
@Resource @Resource
private MarriageInformationContactApplyApplicationService marriageInformationContactApplyApplicationService; 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);
}
} }

dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserEditMarriageInformationContactApplyDto.java → 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; package com.qniao.dam.api.command.mica.user.request;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply; import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum;
import com.qniao.domain.Trans2DomainAssembler; import com.qniao.domain.Trans2DomainAssembler;
import io.swagger.annotations.ApiModelProperty;
import com.qniao.framework.utils.TypeConvertUtils; import com.qniao.framework.utils.TypeConvertUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data
public class UserEditMarriageInformationContactApplyDto implements Trans2DomainAssembler<MarriageInformationContactApply> {
import javax.validation.constraints.NotNull;
@Data
public class UserConfirmMarriageInformationContactApplyDto implements Trans2DomainAssembler<MarriageInformationContactApply> {
@ApiModelProperty("唯一标识") @ApiModelProperty("唯一标识")
@NotNull
private Long id; private Long id;
@ApiModelProperty("申请人用户id")
private Long applicantUserId;
@ApiModelProperty("申请人资料id")
private Long applicantMiId;
@ApiModelProperty("目标用户id")
private Long targetUserId;
@ApiModelProperty("目标资料id")
private Long targetMiId;
@ApiModelProperty("状态") @ApiModelProperty("状态")
private Integer status;
@NotNull
private MarriageInformationContactApplyStatusEnum status;
@Override @Override
public MarriageInformationContactApply trans2Domain() { public MarriageInformationContactApply trans2Domain() {
return TypeConvertUtils.convert(this, MarriageInformationContactApply.class); return TypeConvertUtils.convert(this, MarriageInformationContactApply.class);

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

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

dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserCreateMarriageInformationContactApplyDto.java → 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.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.domain.Trans2DomainAssembler; import com.qniao.domain.Trans2DomainAssembler;
import io.swagger.annotations.ApiModelProperty;
import com.qniao.framework.utils.TypeConvertUtils; import com.qniao.framework.utils.TypeConvertUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data
public class UserCreateMarriageInformationContactApplyDto implements Trans2DomainAssembler<MarriageInformationContactApply> {
@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<MarriageInformationContactApply> {
@ApiModelProperty("目标资料id")
private Long targetMiId;
@ApiModelProperty("唯一标识")
@NotNull
private Long id;
@ApiModelProperty("状态")
private Integer status;
@Override @Override
public MarriageInformationContactApply trans2Domain() { public MarriageInformationContactApply trans2Domain() {
return TypeConvertUtils.convert(this, MarriageInformationContactApply.class); return TypeConvertUtils.convert(this, MarriageInformationContactApply.class);
} }
} }

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

2
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java

@ -49,7 +49,7 @@ public class ContactCardUsageRecordApplicationService {
} else { } else {
MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(usageRecord.getUserId()); MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(usageRecord.getUserId());
vo.setRealNameAuthenticated(StrUtil.isNotBlank(marriageInformation.getIdentityCard())); vo.setRealNameAuthenticated(StrUtil.isNotBlank(marriageInformation.getIdentityCard()));
if (!vo.getRealNameAuthenticated()) {
if (vo.getRealNameAuthenticated()) {
//已经认证 //已经认证
int usageFreeCount = contactCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE); int usageFreeCount = contactCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE);
if (usageFreeCount < 10) { if (usageFreeCount < 10) {

56
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; 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.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 org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.Objects;
@Service @Service
public class MarriageInformationContactApplyApplicationService { public class MarriageInformationContactApplyApplicationService {
@Resource @Resource
private MarriageInformationContactApplyAggregate marriageInformationContactApplyAggregate; 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;
}
} }

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

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

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