Browse Source

用户使用联系卡

master
张彭杰 1 month ago
parent
commit
414ed97996
3 changed files with 58 additions and 1 deletions
  1. 35
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java
  2. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/MatchCardUsageRecordQueryService.java
  3. 19
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/impl/MatchCardUsageRecordQueryServiceImpl.java

35
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java

@ -1,13 +1,20 @@
package com.qniao.dam.application.service.mica;
import com.qniao.dam.api.command.mica.user.response.UnlockMarriageInformationContactApplyVo;
import com.qniao.dam.application.service.right.RightApplicationService;
import com.qniao.dam.domain.aggregate.mcur.vobj.MatchCardUsageRecord;
import com.qniao.dam.domain.aggregate.mica.MarriageInformationContactApplyAggregate;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
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.CardUsageTypeEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.mcur.MatchCardUsageRecordDao;
import com.qniao.dam.infrastructure.persistent.dao.mica.MarriageInformationContactApplyDao;
import com.qniao.dam.query.mcur.MatchCardUsageRecordQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import com.qniao.dam.query.right.RightQueryService;
import com.qniao.framework.exception.BizException;
import org.springframework.stereotype.Service;
@ -29,6 +36,12 @@ public class MarriageInformationContactApplyApplicationService {
private RightQueryService rightQueryService;
@Resource
private MatchCardUsageRecordQueryService matchCardUsageRecordQueryService;
@Resource
private RewardConfigQueryService rewardConfigQueryService;
@Resource
private MatchCardUsageRecordDao matchCardUsageRecordDao;
@Resource
private RightApplicationService rightApplicationService;
public void confirm(MarriageInformationContactApply apply) {
MarriageInformationContactApply existApply = marriageInformationContactApplyDao.selectById(apply.getId());
@ -54,6 +67,8 @@ public class MarriageInformationContactApplyApplicationService {
//判断是否会员
Right right = rightQueryService.getUserVipInfo(existApply.getApplicantUserId(), existApply.getApplicantMiId());
if (Objects.nonNull(right)) {
int usageFreeCount = 0;
RewardConfig rewardConfig = null;
//是会员
if (RightTypeEnum.VIP.equals(right.getType())) {
LocalDate now = LocalDate.now();
@ -64,9 +79,27 @@ public class MarriageInformationContactApplyApplicationService {
startTime = startTime.minusMonths(1);
}
//正式会员
//int usageFreeCount = matchCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE, );
usageFreeCount = matchCardUsageRecordQueryService.countUsageRecord(applicantUserId, CardUsageTypeEnum.FREE, startTime);
rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIP_MATCH_CARD);
} else {
//体验会员周会员
usageFreeCount = matchCardUsageRecordQueryService.countUsageRecord(applicantUserId, CardUsageTypeEnum.FREE, right.getStartTime());
rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIP_TRIAL_MATCH_CARD);
}
int freeCount = Objects.nonNull(rewardConfig) ? Integer.parseInt(rewardConfig.getValue()) : 0;
if (freeCount >= usageFreeCount) {
MatchCardUsageRecord record = MatchCardUsageRecord.build(existApply.getApplicantUserId(), existApply.getId(), CardUsageTypeEnum.FREE);
matchCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
//花费权益
if (rightApplicationService.consumeRight(existApply.getApplicantUserId(), existApply.getApplicantMiId(), RightTypeEnum.MATCH_CARD, null)) {
MatchCardUsageRecord record = MatchCardUsageRecord.build(existApply.getApplicantUserId(), existApply.getId(), CardUsageTypeEnum.FREE);
matchCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
vo.setSuccess(false);
}
}
}
}

5
dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/MatchCardUsageRecordQueryService.java

@ -1,4 +1,9 @@
package com.qniao.dam.query.mcur;
import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTypeEnum;
import java.time.LocalDateTime;
public interface MatchCardUsageRecordQueryService {
int countUsageRecord(Long userId, CardUsageTypeEnum usageType, LocalDateTime startTime);
}

19
dating-agency-mall-server/src/main/java/com/qniao/dam/query/mcur/impl/MatchCardUsageRecordQueryServiceImpl.java

@ -1,8 +1,27 @@
package com.qniao.dam.query.mcur.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.domain.aggregate.mcur.vobj.MatchCardUsageRecord;
import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.mcur.MatchCardUsageRecordDao;
import com.qniao.dam.query.mcur.MatchCardUsageRecordQueryService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
@Service
public class MatchCardUsageRecordQueryServiceImpl implements MatchCardUsageRecordQueryService {
@Resource
private MatchCardUsageRecordDao matchCardUsageRecordDao;
@Override
public int countUsageRecord(Long userId, CardUsageTypeEnum usageType, LocalDateTime startTime) {
return matchCardUsageRecordDao.selectCount(new LambdaQueryWrapper<MatchCardUsageRecord>()
.eq(MatchCardUsageRecord::getUserId, userId)
.eq(MatchCardUsageRecord::getUsageType, usageType)
.ge(MatchCardUsageRecord::getCreateTime, startTime));
}
}
Loading…
Cancel
Save