Browse Source

用户使用联系卡

release
张彭杰 2 months ago
parent
commit
cdb1e33016
6 changed files with 54 additions and 51 deletions
  1. 19
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java
  2. 61
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java
  3. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java
  4. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/mica/MarriageInformationContactApplyAggregate.java
  5. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermarriageinformation/UserMarriageInformationQueryService.java
  6. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermarriageinformation/impl/UserMarriageInformationQueryServiceImpl.java

19
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java

@ -17,24 +17,5 @@ public class MarriageInformationContactApplyUserCommandController {
@Resource
private MarriageInformationContactApplyApplicationService marriageInformationContactApplyApplicationService;
@ApiOperation("用户创建征婚资料联系申请")
@PostMapping("create/marriage-information-contact-apply")
public void userCreateMarriageInformationContactApply(@RequestBody @Valid UserCreateMarriageInformationContactApplyDto dto,
@RequestParam("userId") Long userId) {
marriageInformationContactApplyApplicationService.create(dto.trans2Domain());
}
@ApiOperation("用户编辑征婚资料联系申请")
@PostMapping("edit/marriage-information-contact-apply")
public void userEditMarriageInformationContactApply(@RequestBody @Valid UserEditMarriageInformationContactApplyDto dto,
@RequestParam("userId") Long userId) {
marriageInformationContactApplyApplicationService.edit(dto.trans2Domain());
}
@ApiOperation("用户删除征婚资料联系申请")
@PostMapping("delete/marriage-information-contact-apply")
public void userDeleteMarriageInformationContactApply(@RequestBody @Valid UserDeleteMarriageInformationContactApplyDto dto,
@RequestParam("userId") Long userId) {
marriageInformationContactApplyApplicationService.delete(dto.getId());
}
}

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

@ -4,6 +4,8 @@ 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.mica.MarriageInformationContactApplyAggregate;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
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;
@ -12,7 +14,9 @@ import com.qniao.dam.infrastructure.persistent.dao.pcur.ProfileCardUsageRecordDa
import com.qniao.dam.query.ccur.ContactCardUsageRecordQueryService;
import com.qniao.dam.query.marriageinformation.MarriageInformationQueryService;
import com.qniao.dam.query.mica.MarriageInformationContactApplyQueryService;
import com.qniao.dam.query.usermarriageinformation.UserMarriageInformationQueryService;
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
import com.qniao.das.domian.aggregate.marriageinformation.UserMarriageInformation;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -30,31 +34,35 @@ public class ContactCardUsageRecordApplicationService {
private ContactCardUsageRecordDao contactCardUsageRecordDao;
@Resource
private RightApplicationService rightApplicationService;
@Resource
private UserMarriageInformationQueryService userMarriageInformationQueryService;
@Resource
private MarriageInformationContactApplyAggregate marriageInformationContactApplyAggregate;
public UserUseContactCardVo use(ContactCardUsageRecord usageRecord) {
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);
synchronized (usageRecord.getUserId().toString().intern()) {
//是否申请中
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) {
applyContact(usageRecord, marriageInformation);
vo.setSuccess(true);
} else {
vo.setSuccess(false);
//免费使用完后看看有没有联系卡使用
if (rightApplicationService.consumeRight(usageRecord.getUserId(), marriageInformation.getId(), RightTypeEnum.CONTACT_CARD, null)) {
applyContact(usageRecord, marriageInformation);
vo.setSuccess(true);
} else {
vo.setSuccess(false);
}
}
}
}
@ -62,4 +70,17 @@ public class ContactCardUsageRecordApplicationService {
return vo;
}
private void applyContact(ContactCardUsageRecord usageRecord,
MarriageInformation applicantMarriageInformation) {
ContactCardUsageRecord record = ContactCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.FREE);
contactCardUsageRecordDao.insert(record);
MarriageInformationContactApply apply = new MarriageInformationContactApply();
apply.setApplicantUserId(usageRecord.getUserId());
apply.setApplicantMiId(applicantMarriageInformation.getId());
apply.setTargetMiId(usageRecord.getTargetMiId());
UserMarriageInformation targetUserMarriageInformation = userMarriageInformationQueryService.queryOwnByMiId(usageRecord.getTargetMiId());
apply.setTargetUserId(targetUserMarriageInformation.getUserId());
marriageInformationContactApplyAggregate.create(apply);
}
}

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

@ -1,7 +1,6 @@
package com.qniao.dam.application.service.mica;
import com.qniao.dam.domain.aggregate.mica.MarriageInformationContactApplyAggregate;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -12,15 +11,4 @@ public class MarriageInformationContactApplyApplicationService {
@Resource
private MarriageInformationContactApplyAggregate marriageInformationContactApplyAggregate;
public void create(MarriageInformationContactApply marriageInformationContactApply) {
marriageInformationContactApplyAggregate.create(marriageInformationContactApply);
}
public void edit(MarriageInformationContactApply marriageInformationContactApply) {
marriageInformationContactApplyAggregate.edit(marriageInformationContactApply);
}
public void delete(Long id) {
marriageInformationContactApplyAggregate.delete(id);
}
}

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

@ -2,6 +2,7 @@ package com.qniao.dam.domain.aggregate.mica;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.dam.domain.aggregate.mica.repository.MarriageInformationContactApplyRepository;
import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -18,6 +19,8 @@ public class MarriageInformationContactApplyAggregate {
private MarriageInformationContactApplyRepository repository;
public void create(MarriageInformationContactApply entity) {
entity.setStatus(MarriageInformationContactApplyStatusEnum.PENDING);
entity.setUnlocked(false);
repository.save(entity);
}

2
dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermarriageinformation/UserMarriageInformationQueryService.java

@ -6,4 +6,6 @@ public interface UserMarriageInformationQueryService {
UserMarriageInformation queryByOwn(Long userId);
UserMarriageInformation queryOwnByMiId(Long miId);
}

8
dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermarriageinformation/impl/UserMarriageInformationQueryServiceImpl.java

@ -24,4 +24,12 @@ public class UserMarriageInformationQueryServiceImpl implements UserMarriageInfo
return userMarriageInformationDao.selectOne(wrapper);
}
@Override
public UserMarriageInformation queryOwnByMiId(Long miId) {
return userMarriageInformationDao.selectOne(new LambdaQueryWrapper<UserMarriageInformation>()
.eq(UserMarriageInformation::getMiId, miId)
.eq(UserMarriageInformation::getType, UserMarriageInformationTypeEnum.OWN)
.last("limit 1"));
}
}
Loading…
Cancel
Save