Browse Source

用户使用联系卡

master
张彭杰 1 month ago
parent
commit
4ed9f75fd2
7 changed files with 118 additions and 3 deletions
  1. 6
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/mica/constant/MarriageInformationContactApplyStatusEnum.java
  2. 3
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mica/entity/MarriageInformationContactApply.java
  3. 52
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java
  4. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/ccur/ContactCardUsageRecordQueryService.java
  5. 27
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/ccur/impl/ContactCardUsageRecordQueryServiceImpl.java
  6. 1
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/MarriageInformationContactApplyQueryService.java
  7. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/impl/MarriageInformationContactApplyQueryServiceImpl.java

6
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/mica/constant/MarriageInformationContactApplyStatusEnum.java

@ -10,7 +10,11 @@ import lombok.Getter;
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum MarriageInformationContactApplyStatusEnum {
MARRIAGE_BOUNTY(1, "悬赏招亲");
PENDING(1, "申请中"),
APPROVED(2, "已同意"),
REJECTED(3, "已拒绝");
@EnumValue
@JsonValue

3
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mica/entity/MarriageInformationContactApply.java

@ -32,5 +32,6 @@ public class MarriageInformationContactApply extends Entity<MarriageInformationC
@ApiModelProperty("状态")
private MarriageInformationContactApplyStatusEnum status;
@ApiModelProperty("是否解锁")
private Boolean unlocked;
}

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

@ -1,15 +1,65 @@
package com.qniao.dam.application.service.ccur;
import cn.hutool.core.util.StrUtil;
import com.qniao.dam.api.command.ccur.user.response.UserUseContactCardVo;
import com.qniao.dam.application.service.right.RightApplicationService;
import com.qniao.dam.domain.aggregate.ccur.vobj.ContactCardUsageRecord;
import com.qniao.dam.domain.aggregate.pcur.vobj.ProfileCardUsageRecord;
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.ccur.ContactCardUsageRecordDao;
import com.qniao.dam.infrastructure.persistent.dao.pcur.ProfileCardUsageRecordDao;
import com.qniao.dam.query.ccur.ContactCardUsageRecordQueryService;
import com.qniao.dam.query.marriageinformation.MarriageInformationQueryService;
import com.qniao.dam.query.mica.MarriageInformationContactApplyQueryService;
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class ContactCardUsageRecordApplicationService {
@Resource
private ContactCardUsageRecordQueryService contactCardUsageRecordQueryService;
@Resource
private MarriageInformationContactApplyQueryService marriageInformationContactApplyQueryService;
@Resource
private MarriageInformationQueryService marriageInformationQueryService;
@Resource
private ContactCardUsageRecordDao contactCardUsageRecordDao;
@Resource
private RightApplicationService rightApplicationService;
public UserUseContactCardVo use(ContactCardUsageRecord usageRecord) {
return null;
UserUseContactCardVo vo = new UserUseContactCardVo();
//是否申请中
if (marriageInformationContactApplyQueryService.checkApplying(usageRecord.getUserId(), usageRecord.getTargetMiId())){
//申请过了
vo.setSuccess(true);
}else {
MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(usageRecord.getUserId());
vo.setRealNameAuthenticated(StrUtil.isNotBlank(marriageInformation.getIdentityCard()));
if (!vo.getRealNameAuthenticated()) {
//已经认证
int usageFreeCount = contactCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE);
if (usageFreeCount < 10) {
ContactCardUsageRecord record = ContactCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.FREE);
contactCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
//免费使用完后看看有没有联系卡使用
if (rightApplicationService.consumeRight(usageRecord.getUserId(), marriageInformation.getId(), RightTypeEnum.CONTACT_CARD, null)) {
ContactCardUsageRecord record = ContactCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.CARD);
contactCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
vo.setSuccess(false);
}
}
}
}
return vo;
}
}

8
dating-agency-mall-server/src/main/java/com/qniao/dam/query/ccur/ContactCardUsageRecordQueryService.java

@ -0,0 +1,8 @@
package com.qniao.dam.query.ccur;
import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTyepEnum;
public interface ContactCardUsageRecordQueryService {
int countUsageRecord(Long userId, CardUsageTyepEnum usageType);
}

27
dating-agency-mall-server/src/main/java/com/qniao/dam/query/ccur/impl/ContactCardUsageRecordQueryServiceImpl.java

@ -0,0 +1,27 @@
package com.qniao.dam.query.ccur.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.domain.aggregate.ccur.vobj.ContactCardUsageRecord;
import com.qniao.dam.domain.aggregate.pcur.vobj.ProfileCardUsageRecord;
import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTyepEnum;
import com.qniao.dam.infrastructure.persistent.dao.ccur.ContactCardUsageRecordDao;
import com.qniao.dam.query.ccur.ContactCardUsageRecordQueryService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
@Service
public class ContactCardUsageRecordQueryServiceImpl implements ContactCardUsageRecordQueryService {
@Resource
private ContactCardUsageRecordDao contactCardUsageRecordDao;
@Override
public int countUsageRecord(Long userId, CardUsageTyepEnum usageType) {
return contactCardUsageRecordDao.selectCount(new LambdaQueryWrapper<ContactCardUsageRecord>()
.eq(ContactCardUsageRecord::getUserId, userId)
.eq(ContactCardUsageRecord::getUsageDate, LocalDate.now())
.eq(ContactCardUsageRecord::getUsageType, usageType));
}
}

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

@ -2,4 +2,5 @@ package com.qniao.dam.query.mica;
public interface MarriageInformationContactApplyQueryService {
Boolean checkApplying(Long applicantUserId, Long targetMiId);
}

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

@ -1,9 +1,33 @@
package com.qniao.dam.query.mica.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.query.mica.MarriageInformationContactApplyQueryService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
@Service
public class MarriageInformationContactApplyQueryServiceImpl implements MarriageInformationContactApplyQueryService {
@Resource
private MarriageInformationContactApplyDao marriageInformationContactApplyDao;
@Override
public Boolean checkApplying(Long applicantUserId, Long targetMiId) {
if (marriageInformationContactApplyDao.selectCount(new LambdaQueryWrapper<MarriageInformationContactApply>()
.eq(MarriageInformationContactApply::getApplicantMiId, targetMiId)
.eq(MarriageInformationContactApply::getTargetUserId, applicantUserId)
.eq(MarriageInformationContactApply::getUnlocked, true)) > 0) {
throw new RuntimeException("对方已经申请查看您的联系方式");
}
return marriageInformationContactApplyDao.selectCount(new LambdaQueryWrapper<MarriageInformationContactApply>()
.eq(MarriageInformationContactApply::getApplicantUserId, applicantUserId)
.eq(MarriageInformationContactApply::getTargetMiId, targetMiId)
.in(MarriageInformationContactApply::getStatus, Arrays.asList(MarriageInformationContactApplyStatusEnum.PENDING, MarriageInformationContactApplyStatusEnum.APPROVED))) > 0;
}
}
Loading…
Cancel
Save