From aa3054eb7435aae33bad26d7c3dc2ee927622e69 Mon Sep 17 00:00:00 2001 From: Derran Date: Sat, 7 Mar 2026 14:36:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A7=94=E6=89=98=E6=9C=8D=E5=8A=A1=E8=B4=B9?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esf/entity/EntrustServiceFee.java | 31 +++++++++++ ...ntrustServiceFeeUserCommandController.java | 27 +++++++++ .../UserCreateEntrustServiceFeeDto.java | 27 +++++++++ .../UserDeleteEntrustServiceFeeDto.java | 12 ++++ .../request/UserEditEntrustServiceFeeDto.java | 34 ++++++++++++ .../EntrustServiceFeeUserQueryController.java | 28 ++++++++++ .../response/UserEntrustServiceFeeVo.java | 17 ++++++ .../EntrustServiceFeeApplicationService.java | 34 ++++++++++++ .../order/OrderApplicationService.java | 11 ++-- .../esf/EntrustServiceFeeAggregate.java | 31 +++++++++++ .../EntrustServiceFeeRepository.java | 12 ++++ .../dao/esf/EntrustServiceFeeDao.java | 12 ++++ .../impl/EntrustServiceFeeRepositoryImpl.java | 41 ++++++++++++++ .../esf/EntrustServiceFeeQueryService.java | 12 ++++ .../EntrustServiceFeeQueryServiceImpl.java | 55 +++++++++++++++++++ 15 files changed, 380 insertions(+), 4 deletions(-) create mode 100644 dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/esf/entity/EntrustServiceFee.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/EntrustServiceFeeUserCommandController.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserCreateEntrustServiceFeeDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserDeleteEntrustServiceFeeDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserEditEntrustServiceFeeDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/EntrustServiceFeeUserQueryController.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/response/UserEntrustServiceFeeVo.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/esf/EntrustServiceFeeApplicationService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/EntrustServiceFeeAggregate.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/repository/EntrustServiceFeeRepository.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/esf/EntrustServiceFeeDao.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceFeeRepositoryImpl.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/EntrustServiceFeeQueryService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/impl/EntrustServiceFeeQueryServiceImpl.java diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/esf/entity/EntrustServiceFee.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/esf/entity/EntrustServiceFee.java new file mode 100644 index 0000000..7eb1d53 --- /dev/null +++ b/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 { + + @ApiModelProperty("征婚资料标识") + private Long miId; + + @ApiModelProperty("委托服务类型") + private EntrustServiceTypeEnum type; + + @ApiModelProperty("费用") + private BigDecimal fee; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/EntrustServiceFeeUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/EntrustServiceFeeUserCommandController.java new file mode 100644 index 0000000..ba64b2e --- /dev/null +++ b/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()); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserCreateEntrustServiceFeeDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserCreateEntrustServiceFeeDto.java new file mode 100644 index 0000000..0674674 --- /dev/null +++ b/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 { + + + @ApiModelProperty("征婚资料标识") + private Long miId; + + @ApiModelProperty("委托服务类型") + private Integer type; + + @ApiModelProperty("费用") + private BigDecimal fee; + + @Override + public EntrustServiceFee trans2Domain() { + return TypeConvertUtils.convert(this, EntrustServiceFee.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserDeleteEntrustServiceFeeDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserDeleteEntrustServiceFeeDto.java new file mode 100644 index 0000000..0e922d7 --- /dev/null +++ b/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; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserEditEntrustServiceFeeDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/esf/user/request/UserEditEntrustServiceFeeDto.java new file mode 100644 index 0000000..adddbe1 --- /dev/null +++ b/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 { + + @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); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/EntrustServiceFeeUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/EntrustServiceFeeUserQueryController.java new file mode 100644 index 0000000..589f92e --- /dev/null +++ b/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); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/response/UserEntrustServiceFeeVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/esf/user/response/UserEntrustServiceFeeVo.java new file mode 100644 index 0000000..fd012dd --- /dev/null +++ b/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; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/esf/EntrustServiceFeeApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/esf/EntrustServiceFeeApplicationService.java new file mode 100644 index 0000000..4efefd2 --- /dev/null +++ b/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); + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java index 6837306..0f123dc 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java +++ b/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()); } /** diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/EntrustServiceFeeAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/EntrustServiceFeeAggregate.java new file mode 100644 index 0000000..8e50612 --- /dev/null +++ b/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); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/repository/EntrustServiceFeeRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/esf/repository/EntrustServiceFeeRepository.java new file mode 100644 index 0000000..ffbb71e --- /dev/null +++ b/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 { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/esf/EntrustServiceFeeDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/esf/EntrustServiceFeeDao.java new file mode 100644 index 0000000..412f384 --- /dev/null +++ b/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 { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceFeeRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceFeeRepositoryImpl.java new file mode 100644 index 0000000..829d0c5 --- /dev/null +++ b/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); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/EntrustServiceFeeQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/EntrustServiceFeeQueryService.java new file mode 100644 index 0000000..216529f --- /dev/null +++ b/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); +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/impl/EntrustServiceFeeQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/esf/impl/EntrustServiceFeeQueryServiceImpl.java new file mode 100644 index 0000000..f9d585e --- /dev/null +++ b/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() + .eq(EntrustServiceFee::getMiId, miId) + .eq(EntrustServiceFee::getType, type) + .last("limit 1")); + } + +} \ No newline at end of file