Browse Source

委托服务费用

release
张彭杰 1 month ago
parent
commit
aa3054eb74
15 changed files with 380 additions and 4 deletions
  1. 31
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/esf/entity/EntrustServiceFee.java
  2. 27
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/EntrustServiceFeeUserCommandController.java
  3. 27
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserCreateEntrustServiceFeeDto.java
  4. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserDeleteEntrustServiceFeeDto.java
  5. 34
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserEditEntrustServiceFeeDto.java
  6. 28
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/EntrustServiceFeeUserQueryController.java
  7. 17
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/response/UserEntrustServiceFeeVo.java
  8. 34
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/esf/EntrustServiceFeeApplicationService.java
  9. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
  10. 31
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/EntrustServiceFeeAggregate.java
  11. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/repository/EntrustServiceFeeRepository.java
  12. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/esf/EntrustServiceFeeDao.java
  13. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceFeeRepositoryImpl.java
  14. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/EntrustServiceFeeQueryService.java
  15. 55
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/impl/EntrustServiceFeeQueryServiceImpl.java

31
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/esf/entity/EntrustServiceFee.java

@ -0,0 +1,31 @@
package com.qniao.dam.domain.aggregate.esf.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.qniao.domain.Entity;
import java.math.BigDecimal;
/**
* 委托服务费用
*
* @date 2026/03/07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("da_entrust_service_fee")
public class EntrustServiceFee extends Entity<EntrustServiceFee> {
@ApiModelProperty("征婚资料标识")
private Long miId;
@ApiModelProperty("委托服务类型")
private EntrustServiceTypeEnum type;
@ApiModelProperty("费用")
private BigDecimal fee;
}

27
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/EntrustServiceFeeUserCommandController.java

@ -0,0 +1,27 @@
package com.qniao.dam.api.command.esf.user;
import com.qniao.dam.api.command.esf.user.request.*;
import com.qniao.dam.application.service.esf.EntrustServiceFeeApplicationService;
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 EntrustServiceFeeUserCommandController {
@Resource
private EntrustServiceFeeApplicationService entrustServiceFeeApplicationService;
@ApiOperation("用户编辑委托服务费用")
@PostMapping("edit/entrust-service-fee")
public void userEditEntrustServiceFee(@RequestBody @Valid UserEditEntrustServiceFeeDto dto,
@RequestParam("userId") Long userId) {
entrustServiceFeeApplicationService.edit(dto.trans2Domain());
}
}

27
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserCreateEntrustServiceFeeDto.java

@ -0,0 +1,27 @@
package com.qniao.dam.api.command.esf.user.request;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.domain.Trans2DomainAssembler;
import io.swagger.annotations.ApiModelProperty;
import com.qniao.framework.utils.TypeConvertUtils;
import java.math.BigDecimal;
import lombok.Data;
@Data
public class UserCreateEntrustServiceFeeDto implements Trans2DomainAssembler<EntrustServiceFee> {
@ApiModelProperty("征婚资料标识")
private Long miId;
@ApiModelProperty("委托服务类型")
private Integer type;
@ApiModelProperty("费用")
private BigDecimal fee;
@Override
public EntrustServiceFee trans2Domain() {
return TypeConvertUtils.convert(this, EntrustServiceFee.class);
}
}

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

@ -0,0 +1,12 @@
package com.qniao.dam.api.command.esf.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserDeleteEntrustServiceFeeDto {
@ApiModelProperty("唯一标识")
private Long id;
}

34
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserEditEntrustServiceFeeDto.java

@ -0,0 +1,34 @@
package com.qniao.dam.api.command.esf.user.request;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceTypeEnum;
import com.qniao.domain.Trans2DomainAssembler;
import io.swagger.annotations.ApiModelProperty;
import com.qniao.framework.utils.TypeConvertUtils;
import java.math.BigDecimal;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class UserEditEntrustServiceFeeDto implements Trans2DomainAssembler<EntrustServiceFee> {
@ApiModelProperty("征婚资料标识")
@NotNull(message = "征婚资料标识不能为空")
private Long miId;
@ApiModelProperty("委托服务类型")
@NotNull(message = "委托服务类型不能为空")
private EntrustServiceTypeEnum type;
@ApiModelProperty("费用")
@NotNull(message = "费用不能为空")
private BigDecimal fee;
@Override
public EntrustServiceFee trans2Domain() {
return TypeConvertUtils.convert(this, EntrustServiceFee.class);
}
}

28
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/EntrustServiceFeeUserQueryController.java

@ -0,0 +1,28 @@
package com.qniao.dam.api.query.esf.user;
import com.qniao.dam.api.query.esf.user.response.UserEntrustServiceFeeVo;
import com.qniao.dam.query.esf.EntrustServiceFeeQueryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "委托服务费用")
@RestController
@RequestMapping("user")
public class EntrustServiceFeeUserQueryController {
@Resource
private EntrustServiceFeeQueryService entrustServiceFeeQueryService;
@GetMapping("get/entrust-service-fee")
@ApiOperation("用户获取委托服务费用")
public UserEntrustServiceFeeVo userGetEntrustServiceFee(@RequestParam("miId") Long miId) {
return entrustServiceFeeQueryService.getEntrustServiceFee(miId);
}
}

17
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/response/UserEntrustServiceFeeVo.java

@ -0,0 +1,17 @@
package com.qniao.dam.api.query.esf.user.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class UserEntrustServiceFeeVo {
@ApiModelProperty("交换联系方式费用")
private BigDecimal contactInfoExchangeFee;
@ApiModelProperty("线下见面费用")
private BigDecimal offlineMeetingFee;
}

34
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/esf/EntrustServiceFeeApplicationService.java

@ -0,0 +1,34 @@
package com.qniao.dam.application.service.esf;
import com.qniao.dam.domain.aggregate.esf.EntrustServiceFeeAggregate;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.dam.query.esf.EntrustServiceFeeQueryService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
@Service
public class EntrustServiceFeeApplicationService {
@Resource
private EntrustServiceFeeAggregate entrustServiceFeeAggregate;
@Resource
private EntrustServiceFeeQueryService entrustServiceFeeQueryService;
public void create(EntrustServiceFee entrustServiceFee) {
entrustServiceFeeAggregate.create(entrustServiceFee);
}
public void edit(EntrustServiceFee entrustServiceFee) {
EntrustServiceFee existEntrustServiceFee = entrustServiceFeeQueryService.queryBy(entrustServiceFee.getMiId(), entrustServiceFee.getType());
if (Objects.nonNull(existEntrustServiceFee)){
entrustServiceFee.setId(existEntrustServiceFee.getId());
}
entrustServiceFeeAggregate.edit(entrustServiceFee);
}
public void delete(Long id) {
entrustServiceFeeAggregate.delete(id);
}
}

11
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

@ -8,6 +8,7 @@ import com.qniao.dam.api.command.order.user.request.UserSubmitSiteActivityOrderD
import com.qniao.dam.api.command.order.user.response.UserCalculateMatchmakerOrderFeeVo;
import com.qniao.dam.api.command.order.user.response.UserCalculateOrderFeeVo;
import com.qniao.dam.api.command.order.user.response.UserSubmitOrderVo;
import com.qniao.dam.api.query.esf.user.response.UserEntrustServiceFeeVo;
import com.qniao.dam.application.service.product.ProductApplicationService;
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct;
import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder;
@ -43,6 +44,7 @@ import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao
import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.SiteActivityDao;
import com.qniao.dam.infrastructure.utils.SnowFlakeUtil;
import com.qniao.dam.query.esf.EntrustServiceFeeQueryService;
import com.qniao.dam.query.eso.EntrustServiceOrderQueryService;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
@ -129,6 +131,8 @@ public class OrderApplicationService extends BaseApplicationService {
private EntrustServiceOrderQueryService entrustServiceOrderQueryService;
@Resource
private SubmitEntrustServiceOrderDomainService submitEntrustServiceOrderDomainService;
@Resource
private EntrustServiceFeeQueryService entrustServiceFeeQueryService;
@Value("${default_marriage_bounty_matchmaker_id}")
private Long defaultMarriageBountyMatchmakerId;
@ -352,13 +356,12 @@ public class OrderApplicationService extends BaseApplicationService {
* 查询委托服务价格
*/
private BigDecimal queryEntrustServiceAmount(EntrustServiceOrder entrustServiceOrder) {
RewardConfig rewardConfig;
UserEntrustServiceFeeVo feeVo = entrustServiceFeeQueryService.getEntrustServiceFee(entrustServiceOrder.getTargetMiId());
if (EntrustServiceTypeEnum.CONTACT_INFO_EXCHANGE.equals(entrustServiceOrder.getType())) {
rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.ENTRUST_SERVICE_CONTACT_INFO_EXCHANGE_FEE);
return feeVo.getContactInfoExchangeFee();
} else {
rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.ENTRUST_SERVICE_OFFLINE_MEETING_FEE);
return feeVo.getOfflineMeetingFee();
}
return new BigDecimal(rewardConfig.getValue());
}
/**

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

@ -0,0 +1,31 @@
package com.qniao.dam.domain.aggregate.esf;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.dam.domain.aggregate.esf.repository.EntrustServiceFeeRepository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 委托服务费用
*
* @date 2026/03/07
*/
@Service
public class EntrustServiceFeeAggregate {
@Resource
private EntrustServiceFeeRepository repository;
public void create(EntrustServiceFee entity) {
repository.save(entity);
}
public void edit(EntrustServiceFee 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/esf/repository/EntrustServiceFeeRepository.java

@ -0,0 +1,12 @@
package com.qniao.dam.domain.aggregate.esf.repository;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.domain.Repository;
/**
* 委托服务费用
*
* @date 2026/03/07
*/
public interface EntrustServiceFeeRepository extends Repository<EntrustServiceFee, Long> {
}

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

@ -0,0 +1,12 @@
package com.qniao.dam.infrastructure.persistent.dao.esf;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
/**
* 委托服务费用
*
* @date 2026/03/07
*/
public interface EntrustServiceFeeDao extends BaseMapper<EntrustServiceFee> {
}

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

@ -0,0 +1,41 @@
package com.qniao.dam.infrastructure.persistent.repository.impl;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.dam.domain.aggregate.esf.repository.EntrustServiceFeeRepository;
import com.qniao.dam.infrastructure.persistent.dao.esf.EntrustServiceFeeDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Objects;
/**
* 委托服务费用
*
* @date 2026/03/07
*/
@Service
public class EntrustServiceFeeRepositoryImpl implements EntrustServiceFeeRepository {
@Resource
private EntrustServiceFeeDao dao;
@Override
public EntrustServiceFee load(Long id) {
return dao.selectById(id);
}
@Override
public Long save(EntrustServiceFee 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);
}
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/EntrustServiceFeeQueryService.java

@ -0,0 +1,12 @@
package com.qniao.dam.query.esf;
import com.qniao.dam.api.query.esf.user.response.UserEntrustServiceFeeVo;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceTypeEnum;
public interface EntrustServiceFeeQueryService {
UserEntrustServiceFeeVo getEntrustServiceFee(Long miId);
EntrustServiceFee queryBy(Long miId, EntrustServiceTypeEnum type);
}

55
dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/impl/EntrustServiceFeeQueryServiceImpl.java

@ -0,0 +1,55 @@
package com.qniao.dam.query.esf.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.api.query.esf.user.response.UserEntrustServiceFeeVo;
import com.qniao.dam.domain.aggregate.esf.entity.EntrustServiceFee;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceTypeEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.esf.EntrustServiceFeeDao;
import com.qniao.dam.query.esf.EntrustServiceFeeQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Objects;
@Service
public class EntrustServiceFeeQueryServiceImpl implements EntrustServiceFeeQueryService {
@Resource
private RewardConfigQueryService rewardConfigQueryService;
@Resource
private EntrustServiceFeeDao entrustServiceFeeDao;
@Override
public UserEntrustServiceFeeVo getEntrustServiceFee(Long miId) {
UserEntrustServiceFeeVo feeVo = new UserEntrustServiceFeeVo();
EntrustServiceFee contactInfoExchangeFee = queryBy(miId, EntrustServiceTypeEnum.CONTACT_INFO_EXCHANGE);
if (Objects.nonNull(contactInfoExchangeFee)) {
feeVo.setContactInfoExchangeFee(contactInfoExchangeFee.getFee());
} else {
RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.ENTRUST_SERVICE_CONTACT_INFO_EXCHANGE_FEE);
feeVo.setContactInfoExchangeFee(new BigDecimal(rewardConfig.getValue()));
}
EntrustServiceFee offlineMeetingFee = queryBy(miId, EntrustServiceTypeEnum.OFFLINE_MEETING);
if (Objects.nonNull(offlineMeetingFee)) {
feeVo.setOfflineMeetingFee(offlineMeetingFee.getFee());
} else {
RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.ENTRUST_SERVICE_OFFLINE_MEETING_FEE);
feeVo.setOfflineMeetingFee(new BigDecimal(rewardConfig.getValue()));
}
return feeVo;
}
@Override
public EntrustServiceFee queryBy(Long miId, EntrustServiceTypeEnum type) {
return entrustServiceFeeDao.selectOne(new LambdaQueryWrapper<EntrustServiceFee>()
.eq(EntrustServiceFee::getMiId, miId)
.eq(EntrustServiceFee::getType, type)
.last("limit 1"));
}
}
Loading…
Cancel
Save