Browse Source

用户使用联系卡

master
张彭杰 1 month ago
parent
commit
d486d835a2
16 changed files with 358 additions and 19 deletions
  1. 34
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/mica/constant/MarriageInformationContactApplyStatusEnum.java
  2. 36
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/mica/entity/MarriageInformationContactApply.java
  3. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ccur/user/ContactCardUsageRecordUserCommandController.java
  4. 40
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/MarriageInformationContactApplyUserCommandController.java
  5. 32
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserCreateMarriageInformationContactApplyDto.java
  6. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserDeleteMarriageInformationContactApplyDto.java
  7. 35
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/mica/user/request/UserEditMarriageInformationContactApplyDto.java
  8. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ccur/ContactCardUsageRecordApplicationService.java
  9. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/mica/MarriageInformationContactApplyApplicationService.java
  10. 39
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pcur/ProfileCardUsageRecordApplicationService.java
  11. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/mica/MarriageInformationContactApplyAggregate.java
  12. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/mica/repository/MarriageInformationContactApplyRepository.java
  13. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mica/MarriageInformationContactApplyDao.java
  14. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/MarriageInformationContactApplyRepositoryImpl.java
  15. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/MarriageInformationContactApplyQueryService.java
  16. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/mica/impl/MarriageInformationContactApplyQueryServiceImpl.java

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

@ -0,0 +1,34 @@
package com.qniao.dam.domian.aggregate.mica.constant;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum MarriageInformationContactApplyStatusEnum {
MARRIAGE_BOUNTY(1, "悬赏招亲");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
MarriageInformationContactApplyStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static MarriageInformationContactApplyStatusEnum get(Object code) {
for (MarriageInformationContactApplyStatusEnum e : MarriageInformationContactApplyStatusEnum.values()) {
if (e.getValue().equals(code)) {
return e;
}
}
return null;
}
}

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

@ -0,0 +1,36 @@
package com.qniao.dam.domain.aggregate.mica.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.qniao.domain.Entity;
/**
* 征婚资料联系申请
*
* @date 2026/02/04
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_marriage_information_contact_apply")
public class MarriageInformationContactApply extends Entity<MarriageInformationContactApply> {
@ApiModelProperty("申请人用户id")
private Long applicantUserId;
@ApiModelProperty("申请人资料id")
private Long applicantMiId;
@ApiModelProperty("目标用户id")
private Long targetUserId;
@ApiModelProperty("目标资料id")
private Long targetMiId;
@ApiModelProperty("状态")
private MarriageInformationContactApplyStatusEnum status;
}

5
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/ccur/user/ContactCardUsageRecordUserCommandController.java

@ -8,6 +8,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
@Api(tags = "联系卡使用记录")
@ -15,6 +16,7 @@ import javax.validation.Valid;
@RequestMapping("user")
public class ContactCardUsageRecordUserCommandController {
@Resource
private ContactCardUsageRecordApplicationService contactCardUsageRecordApplicationService;
@ApiOperation("用户使用联系卡")
@ -24,8 +26,7 @@ public class ContactCardUsageRecordUserCommandController {
ContactCardUsageRecord usageRecord = dto.trans2Domain();
usageRecord.setUserId(userId);
return null;
return contactCardUsageRecordApplicationService.use(usageRecord);
}
}

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

@ -0,0 +1,40 @@
package com.qniao.dam.api.command.mica.user;
import com.qniao.dam.api.command.mica.user.request.*;
import com.qniao.dam.application.service.mica.MarriageInformationContactApplyApplicationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
@Api(tags = "征婚资料联系申请")
@RestController
@RequestMapping("user")
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());
}
}

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

@ -0,0 +1,32 @@
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 lombok.Data;
@Data
public class UserCreateMarriageInformationContactApplyDto implements Trans2DomainAssembler<MarriageInformationContactApply> {
@ApiModelProperty("申请人用户id")
private Long applicantUserId;
@ApiModelProperty("申请人资料id")
private Long applicantMiId;
@ApiModelProperty("目标用户id")
private Long targetUserId;
@ApiModelProperty("目标资料id")
private Long targetMiId;
@ApiModelProperty("状态")
private Integer status;
@Override
public MarriageInformationContactApply trans2Domain() {
return TypeConvertUtils.convert(this, MarriageInformationContactApply.class);
}
}

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

@ -0,0 +1,12 @@
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;
}

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

@ -0,0 +1,35 @@
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 lombok.Data;
@Data
public class UserEditMarriageInformationContactApplyDto implements Trans2DomainAssembler<MarriageInformationContactApply> {
@ApiModelProperty("唯一标识")
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;
@Override
public MarriageInformationContactApply trans2Domain() {
return TypeConvertUtils.convert(this, MarriageInformationContactApply.class);
}
}

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

@ -1,7 +1,15 @@
package com.qniao.dam.application.service.ccur;
import com.qniao.dam.api.command.ccur.user.response.UserUseContactCardVo;
import com.qniao.dam.domain.aggregate.ccur.vobj.ContactCardUsageRecord;
import org.springframework.stereotype.Service;
@Service
public class ContactCardUsageRecordApplicationService {
public UserUseContactCardVo use(ContactCardUsageRecord usageRecord) {
return null;
}
}

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

@ -0,0 +1,26 @@
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;
@Service
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);
}
}

39
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/pcur/ProfileCardUsageRecordApplicationService.java

@ -32,30 +32,35 @@ public class ProfileCardUsageRecordApplicationService {
if (profileCardUsageRecordQueryService.existUsageRecord(usageRecord.getUserId(), usageRecord.getTargetMiId())) {
vo.setSuccess(true);
} else {
int usageFreeCount = profileCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE);
if (usageFreeCount < 3) {
ProfileCardUsageRecord record = ProfileCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.FREE);
profileCardUsageRecordDao.insert(record);
MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(usageRecord.getUserId());
if (marriageInformation.getId().equals(usageRecord.getTargetMiId())) {
//自己看自己不消耗
vo.setSuccess(true);
} else {
MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(usageRecord.getUserId());
vo.setRealNameAuthenticated(StrUtil.isNotBlank(marriageInformation.getIdentityCard()));
if (!vo.getRealNameAuthenticated()) {
//未实名是有3次
vo.setSuccess(false);
int usageFreeCount = profileCardUsageRecordQueryService.countUsageRecord(usageRecord.getUserId(), CardUsageTyepEnum.FREE);
if (usageFreeCount < 3) {
ProfileCardUsageRecord record = ProfileCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.FREE);
profileCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
if (usageFreeCount < 20) {
ProfileCardUsageRecord record = ProfileCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.FREE);
profileCardUsageRecordDao.insert(record);
vo.setSuccess(true);
vo.setRealNameAuthenticated(StrUtil.isNotBlank(marriageInformation.getIdentityCard()));
if (!vo.getRealNameAuthenticated()) {
//未实名是有3次
vo.setSuccess(false);
} else {
//免费使用完后看看有没有资料卡使用
if (rightApplicationService.consumeRight(usageRecord.getUserId(), marriageInformation.getId(), RightTypeEnum.PROFILE_CARD, null)) {
ProfileCardUsageRecord record = ProfileCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.CARD);
if (usageFreeCount < 20) {
ProfileCardUsageRecord record = ProfileCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.FREE);
profileCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
vo.setSuccess(false);
//免费使用完后看看有没有资料卡使用
if (rightApplicationService.consumeRight(usageRecord.getUserId(), marriageInformation.getId(), RightTypeEnum.PROFILE_CARD, null)) {
ProfileCardUsageRecord record = ProfileCardUsageRecord.build(usageRecord.getUserId(), usageRecord.getTargetMiId(), CardUsageTyepEnum.CARD);
profileCardUsageRecordDao.insert(record);
vo.setSuccess(true);
} else {
vo.setSuccess(false);
}
}
}
}

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

@ -0,0 +1,31 @@
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 征婚资料联系申请
*
* @date 2026/02/04
*/
@Service
public class MarriageInformationContactApplyAggregate {
@Resource
private MarriageInformationContactApplyRepository repository;
public void create(MarriageInformationContactApply entity) {
repository.save(entity);
}
public void edit(MarriageInformationContactApply entity) {
repository.save(entity);
}
public void delete(Long id) {
repository.delete(id);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/mica/repository/MarriageInformationContactApplyRepository.java

@ -0,0 +1,12 @@
package com.qniao.dam.domain.aggregate.mica.repository;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.domain.Repository;
/**
* 征婚资料联系申请
*
* @date 2026/02/04
*/
public interface MarriageInformationContactApplyRepository extends Repository<MarriageInformationContactApply, Long> {
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/mica/MarriageInformationContactApplyDao.java

@ -0,0 +1,12 @@
package com.qniao.dam.infrastructure.persistent.dao.mica;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
/**
* 征婚资料联系申请
*
* @date 2026/02/04
*/
public interface MarriageInformationContactApplyDao extends BaseMapper<MarriageInformationContactApply> {
}

41
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/MarriageInformationContactApplyRepositoryImpl.java

@ -0,0 +1,41 @@
package com.qniao.dam.infrastructure.persistent.repository.impl;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.dam.domain.aggregate.mica.repository.MarriageInformationContactApplyRepository;
import com.qniao.dam.infrastructure.persistent.dao.mica.MarriageInformationContactApplyDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 征婚资料联系申请
*
* @date 2026/02/04
*/
@Service
public class MarriageInformationContactApplyRepositoryImpl implements MarriageInformationContactApplyRepository {
@Resource
private MarriageInformationContactApplyDao dao;
@Override
public MarriageInformationContactApply load(Long id) {
return dao.selectById(id);
}
@Override
public Long save(MarriageInformationContactApply entity) {
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) {
dao.insert(entity);
} else {
dao.updateById(entity);
}
return entity.getId();
}
@Override
public void delete(Long id) {
dao.deleteById(id);
}
}

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

@ -0,0 +1,5 @@
package com.qniao.dam.query.mica;
public interface MarriageInformationContactApplyQueryService {
}

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

@ -0,0 +1,9 @@
package com.qniao.dam.query.mica.impl;
import com.qniao.dam.query.mica.MarriageInformationContactApplyQueryService;
import org.springframework.stereotype.Service;
@Service
public class MarriageInformationContactApplyQueryServiceImpl implements MarriageInformationContactApplyQueryService {
}
Loading…
Cancel
Save