Browse Source

委托服务费用

release
张彭杰 3 weeks ago
parent
commit
ff9925764a
13 changed files with 262 additions and 22 deletions
  1. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
  2. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  3. 14
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/eso/entity/EntrustServiceOrder.java
  4. 2
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java
  5. 27
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/EntrustServiceOrderUserCommandController.java
  6. 29
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserApplyAfterSalesEntrustServiceOrderDto.java
  7. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserCancelEntrustServiceOrderDto.java
  8. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserConfirmEntrustServiceOrderDto.java
  9. 53
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/eso/EntrustServiceOrderApplicationService.java
  10. 67
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java
  11. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java
  12. 59
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/EntrustServiceOrderTask.java
  13. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/eso/CancelEntrustServiceOrderDomainService.java

2
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java

@ -80,6 +80,8 @@ public enum RewardTypeEnum {
ENTRUST_SERVICE_OFFLINE_MEETING_FEE(130, "委托服务线下见面费用"),
ENTRUST_SERVICE_MATCHMAKER_FEE(131, "委托服务红娘收益"),
// 2** 服务费
PLATFORM_SERVICE_FEE(201, "平台服务费"),

2
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java

@ -48,6 +48,8 @@ public enum TradeTypeEnum {
QZQ_RECOMMEND_GIFT_REWARD(119, "邀请分成"),
ENTRUST_SERVICE_REWARD(120, "委托服务收益"),
PLATFORM_SERVICE_FEE(201, "平台服务费"),
WITHDRAW(202, "提现");

14
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/eso/entity/EntrustServiceOrder.java

@ -58,12 +58,24 @@ public class EntrustServiceOrder extends Entity<EntrustServiceOrder> {
@ApiModelProperty("付款状态")
private EntrustServicePaymentStatusEnum paymentStatus;
@ApiModelProperty("接受截时间")
@ApiModelProperty("接受截时间")
private LocalDateTime acceptanceDeadline;
@ApiModelProperty("接收时间")
private LocalDateTime acceptedTime;
@ApiModelProperty("完成截止时间")
private LocalDateTime finishDeadline;
@ApiModelProperty("完成时间")
private LocalDateTime finishedTime;
@ApiModelProperty("结算截止时间")
private LocalDateTime settlementDeadline;
@ApiModelProperty("是否结算")
private Boolean isSettlement;
@ApiModelProperty("退款原因")
private String refundReason;

2
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java

@ -87,6 +87,8 @@ public class RevenueRewardRecord extends ValueObject<RevenueRewardRecord> {
content = StrUtil.format("推荐服务商{}入驻平台", elements.toArray());
} else if (TradeTypeEnum.QZQ_RECOMMEND_GIFT_REWARD.equals(tradeType)) {
content = StrUtil.format("{}消费分成", elements.toArray());
} else if (TradeTypeEnum.ENTRUST_SERVICE_REWARD.equals(tradeType)) {
content = StrUtil.format("嘉宾{}委托服务分成", elements.toArray());
}
}
}

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

@ -1,7 +1,9 @@
package com.qniao.dam.api.command.eso.user;
import com.qniao.dam.api.command.eso.user.request.UserAcceptEntrustServiceOrderDto;
import com.qniao.dam.api.command.eso.user.request.request.UserRefundEntrustServiceOrderDto;
import com.qniao.dam.api.command.eso.user.request.request.UserApplyAfterSalesEntrustServiceOrderDto;
import com.qniao.dam.api.command.eso.user.request.request.UserCancelEntrustServiceOrderDto;
import com.qniao.dam.api.command.eso.user.request.request.UserConfirmEntrustServiceOrderDto;
import com.qniao.dam.application.service.eso.EntrustServiceOrderApplicationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -25,11 +27,26 @@ public class EntrustServiceOrderUserCommandController {
entrustServiceOrderApplicationService.accept(dto.trans2Domain(), dto.getIsAccept());
}
@ApiOperation("用户发起委托服务订单退款")
@PostMapping("/refund/entrust-service-order")
public void refundEntrustServiceOrder(@RequestBody @Validated UserRefundEntrustServiceOrderDto dto,
@ApiOperation("用户发起取消委托服务订单")
@PostMapping("/cancel/entrust-service-order")
public void cancelEntrustServiceOrder(@RequestBody @Validated UserCancelEntrustServiceOrderDto dto,
@RequestParam Long userId) {
entrustServiceOrderApplicationService.refundApply(dto.trans2Domain());
entrustServiceOrderApplicationService.cancel(dto.trans2Domain());
}
@ApiOperation("用户确认委托服务订单")
@PostMapping("/confirm/entrust-service-order")
public void confirmEntrustServiceOrder(@RequestBody @Validated UserConfirmEntrustServiceOrderDto dto,
@RequestParam Long userId) {
entrustServiceOrderApplicationService.confirm(dto.trans2Domain());
}
@ApiOperation("用户申请委托服务订单售后")
@PostMapping("/apply/after-sales/entrust-service-order")
public void applyAfterSalesEntrustServiceOrder(@RequestBody @Validated UserApplyAfterSalesEntrustServiceOrderDto dto,
@RequestParam Long userId) {
entrustServiceOrderApplicationService.applyAfterSales(dto.trans2Domain());
}
}

29
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserApplyAfterSalesEntrustServiceOrderDto.java

@ -0,0 +1,29 @@
package com.qniao.dam.api.command.eso.user.request.request;
import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder;
import com.qniao.domain.Trans2DomainAssembler;
import com.qniao.framework.utils.TypeConvertUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@Data
public class UserApplyAfterSalesEntrustServiceOrderDto implements Trans2DomainAssembler<EntrustServiceOrder> {
@ApiModelProperty("唯一标识")
@NotNull(message = "唯一标识不能为空")
private Long id;
@ApiModelProperty("退款原因")
@NotNull(message = "退款原因不能为空")
@Size(max = 100,min = 1, message = "退款原因不超过100个字符")
private String refundReason;
@Override
public EntrustServiceOrder trans2Domain() {
return TypeConvertUtils.convert(this, EntrustServiceOrder.class);
}
}

dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserRefundEntrustServiceOrderDto.java → dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserCancelEntrustServiceOrderDto.java

@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@Data
public class UserRefundEntrustServiceOrderDto implements Trans2DomainAssembler<EntrustServiceOrder> {
public class UserCancelEntrustServiceOrderDto implements Trans2DomainAssembler<EntrustServiceOrder> {
@ApiModelProperty("唯一标识")
@NotNull(message = "唯一标识不能为空")

23
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/eso/user/request/request/UserConfirmEntrustServiceOrderDto.java

@ -0,0 +1,23 @@
package com.qniao.dam.api.command.eso.user.request.request;
import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder;
import com.qniao.domain.Trans2DomainAssembler;
import com.qniao.framework.utils.TypeConvertUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class UserConfirmEntrustServiceOrderDto implements Trans2DomainAssembler<EntrustServiceOrder> {
@ApiModelProperty("唯一标识")
@NotNull(message = "唯一标识不能为空")
private Long id;
@Override
public EntrustServiceOrder trans2Domain() {
return TypeConvertUtils.convert(this, EntrustServiceOrder.class);
}
}

53
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/eso/EntrustServiceOrderApplicationService.java

@ -7,7 +7,7 @@ import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domain.aggregate.paymentchannelorder.entity.PaymentChannelOrder;
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder;
import com.qniao.dam.domain.aggregate.paymentorderrefund.entity.PaymentOrderRefund;
import com.qniao.dam.domain.service.eso.RefundEntrustServiceOrderDomainService;
import com.qniao.dam.domain.service.eso.CancelEntrustServiceOrderDomainService;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServicePaymentStatusEnum;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceStatusEnum;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
@ -21,6 +21,7 @@ import com.qniao.dam.query.paymentorder.PaymentOrderQueryService;
import com.qniao.das.domian.aggregate.matchmakermarriage.MatchmakerMarriageInformation;
import com.qniao.domain.BaseApplicationService;
import com.qniao.domain.BaseDomainEvent;
import com.qniao.framework.exception.BizException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@ -43,7 +44,7 @@ public class EntrustServiceOrderApplicationService extends BaseApplicationServic
@Resource
private EntrustServiceOrderDao entrustServiceOrderDao;
@Resource
private RefundEntrustServiceOrderDomainService refundEntrustServiceOrderDomainService;
private CancelEntrustServiceOrderDomainService cancelEntrustServiceOrderDomainService;
@Resource
private PaymentOrderQueryService paymentOrderQueryService;
@Resource
@ -91,8 +92,12 @@ public class EntrustServiceOrderApplicationService extends BaseApplicationServic
existEntrustServiceOrder.getPaymentStatus().equals(EntrustServicePaymentStatusEnum.PAID)) {
if (isAccept) {
//红娘接单
if (existEntrustServiceOrder.getAcceptanceDeadline().isBefore(LocalDateTime.now())) {
throw new BizException("已超出接单时间");
}
entrustServiceOrder.setStatus(EntrustServiceStatusEnum.ACCEPTED);
entrustServiceOrder.setAcceptedTime(LocalDateTime.now());
entrustServiceOrder.setFinishDeadline(entrustServiceOrder.getAcceptedTime().plusDays(7));
entrustServiceOrderAggregate.edit(entrustServiceOrder);
} else {
//红娘拒接单
@ -103,10 +108,10 @@ public class EntrustServiceOrderApplicationService extends BaseApplicationServic
}
}
public void refundApply(EntrustServiceOrder entrustServiceOrder) {
public void cancel(EntrustServiceOrder entrustServiceOrder) {
//状态判断 退款时间要求
EntrustServiceOrder existEntrustServiceOrder = entrustServiceOrderDao.selectById(entrustServiceOrder.getId());
checkRefundPossible(existEntrustServiceOrder);
checkCancelPossible(existEntrustServiceOrder);
entrustServiceOrder.setOriginalStatus(existEntrustServiceOrder.getStatus());
entrustServiceOrder.setStatus(EntrustServiceStatusEnum.CANCELED);
entrustServiceOrder.setPaymentStatus(EntrustServicePaymentStatusEnum.BEING_REFUNDED);
@ -115,10 +120,44 @@ public class EntrustServiceOrderApplicationService extends BaseApplicationServic
existEntrustServiceOrder.getPaidAmount(), existEntrustServiceOrder.getPaidAmount());
orderRefundApplication.setOperationStatus(OrderRefundApplicationStatus.UNAUDITED);
orderRefundApplication.setStatus(OrderRefundApplicationStatus.UNAUDITED);
refundEntrustServiceOrderDomainService.handle(entrustServiceOrder, orderRefundApplication);
cancelEntrustServiceOrderDomainService.handle(entrustServiceOrder, orderRefundApplication);
}
public void applyAfterSales(EntrustServiceOrder entrustServiceOrder) {
//状态判断 退款时间要求
EntrustServiceOrder existEntrustServiceOrder = entrustServiceOrderDao.selectById(entrustServiceOrder.getId());
applyAfterSalesPossible(existEntrustServiceOrder);
entrustServiceOrder.setOriginalStatus(existEntrustServiceOrder.getStatus());
entrustServiceOrder.setStatus(EntrustServiceStatusEnum.AFTER_SALE_COMPLETED);
entrustServiceOrder.setPaymentStatus(EntrustServicePaymentStatusEnum.BEING_REFUNDED);
OrderRefundApplication orderRefundApplication = OrderRefundApplication.build(entrustServiceOrder.getId(), RefundOrderTypeEnum.ENTRUST_SERVICE,
existEntrustServiceOrder.getPaidAmount(), existEntrustServiceOrder.getPaidAmount());
orderRefundApplication.setOperationStatus(OrderRefundApplicationStatus.UNAUDITED);
orderRefundApplication.setStatus(OrderRefundApplicationStatus.UNAUDITED);
cancelEntrustServiceOrderDomainService.handle(entrustServiceOrder, orderRefundApplication);
}
private void checkRefundPossible(EntrustServiceOrder entrustServiceOrder) {
private void applyAfterSalesPossible(EntrustServiceOrder entrustServiceOrder) {
if (Objects.nonNull(entrustServiceOrder)) {
if (!(entrustServiceOrder.getStatus().equals(EntrustServiceStatusEnum.FINISHED) && !entrustServiceOrder.getIsSettlement())) {
throw new RuntimeException("无法发起退款");
}
}
}
public void confirm(EntrustServiceOrder entrustServiceOrder) {
EntrustServiceOrder existEntrustServiceOrder = entrustServiceOrderDao.selectById(entrustServiceOrder.getId());
if (existEntrustServiceOrder.getStatus().equals(EntrustServiceStatusEnum.ACCEPTED)) {
existEntrustServiceOrder.setStatus(EntrustServiceStatusEnum.FINISHED);
existEntrustServiceOrder.setFinishedTime(LocalDateTime.now());
existEntrustServiceOrder.setSettlementDeadline(entrustServiceOrder.getFinishedTime().plusDays(4));
existEntrustServiceOrder.setRemark("用户确认完成");
entrustServiceOrderAggregate.edit(existEntrustServiceOrder);
}
}
private void checkCancelPossible(EntrustServiceOrder entrustServiceOrder) {
if (Objects.nonNull(entrustServiceOrder)) {
if ((entrustServiceOrder.getStatus().equals(EntrustServiceStatusEnum.PENDING_ACCEPT) ||
entrustServiceOrder.getStatus().equals(EntrustServiceStatusEnum.ACCEPTED))) {
@ -151,10 +190,10 @@ public class EntrustServiceOrderApplicationService extends BaseApplicationServic
paymentOrderRefund.setRefundAmount(paymentChannelOrder.getAmount());
paymentOrderRefundList.add(paymentOrderRefund);
}
entrustServiceOrder.setStatus(EntrustServiceStatusEnum.CANCELED);
entrustServiceOrder.setPaymentStatus(EntrustServicePaymentStatusEnum.REFUNDED);
entrustServiceOrderAggregate.edit(entrustServiceOrder);
//发起微信退款
paymentOrderRefundApplicationService.refund(paymentOrderRefundList);
}
}

67
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java

@ -1,16 +1,26 @@
package com.qniao.dam.application.service.revenuereward;
import cn.hutool.core.util.StrUtil;
import com.qniao.dam.application.service.reward.RewardApplicationService;
import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder;
import com.qniao.dam.domain.aggregate.revenuereward.RevenueRewardAggregate;
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardAssociateOrderRecord;
import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainService;
import com.qniao.dam.domian.aggregate.matchmaker.event.MatchmakerFranchiseFeeRewardEvent;
import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ;
import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import com.qniao.dam.infrastructure.constant.MqExchange;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MatchmakerDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardRecordDao;
import com.qniao.dam.infrastructure.persistent.dao.org.OrganizationDao;
import com.qniao.dam.query.operationcenter.OperationCenterQueryService;
@ -18,9 +28,12 @@ import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import com.qniao.dam.query.store.StoreQueryService;
import com.qniao.dam.query.walletaccount.WalletAccountQueryService;
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.dau.domain.aggregate.operationcenter.entity.OperationCenter;
import com.qniao.dau.domain.aggregate.organization.entity.Organization;
import com.qniao.dau.domain.aggregate.store.entity.Store;
import com.qniao.dau.domian.aggregate.matchmakeraudit.constant.MatchmakerAuditBehaviorEnum;
import com.qniao.dau.domian.aggregate.organization.constant.OrganizationTypeEnum;
import com.qniao.framework.exception.BizException;
import lombok.extern.slf4j.Slf4j;
@ -53,6 +66,12 @@ public class RevenueRewardApplicationService {
private WalletAccountQueryService walletAccountQueryService;
@Resource
private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService;
@Resource
private MatchmakerDao matchmakerDao;
@Resource
private MarriageInformationDao marriageInformationDao;
@Resource
private RewardApplicationService rewardApplicationService;
public void create(RevenueReward revenueReward) {
RevenueReward existRevenueReward = revenueRewardQueryService.queryByUserId(revenueReward.getUserId());
@ -123,4 +142,52 @@ public class RevenueRewardApplicationService {
log.error("管道收益处理异常", e);
}
}
public void settleEntrustServiceOrder(EntrustServiceOrder entrustServiceOrder) {
Matchmaker matchmaker = matchmakerDao.selectById(entrustServiceOrder.getMatchmakerId());
MarriageInformation initiatorMiInfo = marriageInformationDao.selectById(entrustServiceOrder.getInitiatorMiId());
//邀请红娘在有效期内才能拿到佣金+积分奖励
if (Objects.nonNull(matchmaker) && matchmaker.checkEnable()) {
//收益信息
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(matchmaker.getUserId());
if (Objects.isNull(revenueReward)) {
revenueReward = RevenueReward.initUser(matchmaker.getUserId());
}
RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.ENTRUST_SERVICE_MATCHMAKER_FEE);
//营收额
BigDecimal revenue = rewardConfig.calculateReward(entrustServiceOrder.getRewardAmount());
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.ENTRUST_SERVICE_REWARD, TradeSceneEnum.ONLINE,
revenue, new BigDecimal(rewardConfig.getValue()), BigDecimal.ZERO, revenue, entrustServiceOrder.getRewardAmount());
revenueRewardRecord.handleContent(Collections.singletonList(initiatorMiInfo.getNickName()));
RevenueRewardAssociateOrderRecord associateOrderRecord = RevenueRewardAssociateOrderRecord.build(entrustServiceOrder.getAssociateOrderId(), entrustServiceOrder.getRewardAmount());
revenueRewardRecord.setAssociateOrderRecordList(Collections.singletonList(associateOrderRecord));
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord));
//钱包信息
WalletAccount walletAccount = walletAccountQueryService.queryByType(matchmaker.getUserId(), IdentityTypeEnum.INDIVIDUAL);
BigDecimal originalBalance = walletAccount.getTotalBalance();
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(revenue));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.ENTRUST_SERVICE_REWARD, revenue, true, originalBalance, walletAccount.getTotalBalance());
walletAccount.setRecordList(Collections.singletonList(record));
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount);
}
if (Objects.nonNull(matchmaker.getStoreId())) {
//门店收益
Store store = storeQueryService.queryById(matchmaker.getStoreId());
rewardApplicationService.handleAcquireReward(store.getOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_STORE_REWARD,
entrustServiceOrder.getRewardAmount(), initiatorMiInfo,
entrustServiceOrder.getRewardAmount(), Collections.singletonList(entrustServiceOrder.getAssociateOrderId()), TradeTypeEnum.ENTRUST_SERVICE_REWARD);
//运营中心
if (Objects.nonNull(store.getOperationCenterOrgId())) {
rewardApplicationService.handleAcquireReward(store.getOperationCenterOrgId(), IdentityTypeEnum.ORGANIZATION, RewardTypeEnum.PLATFORM_SERVICE_OPERATION_CENTER_REWARD,
entrustServiceOrder.getRewardAmount(), initiatorMiInfo,
entrustServiceOrder.getRewardAmount(), Collections.singletonList(entrustServiceOrder.getAssociateOrderId()), TradeTypeEnum.ENTRUST_SERVICE_REWARD);
}
}
}
}

2
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java

@ -500,7 +500,7 @@ public class RewardApplicationService extends BaseApplicationService {
}
}
private void handleAcquireReward(Long identityId,
public void handleAcquireReward(Long identityId,
IdentityTypeEnum identityType,
RewardTypeEnum rewardType,
BigDecimal amount,

59
dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/EntrustServiceOrderTask.java

@ -2,14 +2,13 @@ package com.qniao.dam.application.task;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.application.service.revenuereward.RevenueRewardApplicationService;
import com.qniao.dam.domain.aggregate.eso.EntrustServiceOrderAggregate;
import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder;
import com.qniao.dam.domain.aggregate.mica.entity.MarriageInformationContactApply;
import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication;
import com.qniao.dam.domain.service.eso.RefundEntrustServiceOrderDomainService;
import com.qniao.dam.domain.service.eso.CancelEntrustServiceOrderDomainService;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServicePaymentStatusEnum;
import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceStatusEnum;
import com.qniao.dam.domian.aggregate.mica.constant.MarriageInformationContactApplyStatusEnum;
import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus;
import com.qniao.dam.domian.aggregate.ora.constant.RefundOrderTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.eso.EntrustServiceOrderDao;
@ -18,7 +17,6 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@ -33,7 +31,11 @@ public class EntrustServiceOrderTask {
@Resource
private EntrustServiceOrderDao entrustServiceOrderDao;
@Resource
private RefundEntrustServiceOrderDomainService refundEntrustServiceOrderDomainService;
private CancelEntrustServiceOrderDomainService cancelEntrustServiceOrderDomainService;
@Resource
private EntrustServiceOrderAggregate entrustServiceOrderAggregate;
@Resource
private RevenueRewardApplicationService revenueRewardApplicationService;
@Scheduled(cron = "0 0 * * * *")
@ -54,7 +56,7 @@ public class EntrustServiceOrderTask {
entrustServiceOrder.getPaidAmount(), entrustServiceOrder.getPaidAmount());
orderRefundApplication.setOperationStatus(OrderRefundApplicationStatus.UNAUDITED);
orderRefundApplication.setStatus(OrderRefundApplicationStatus.UNAUDITED);
refundEntrustServiceOrderDomainService.handle(entrustServiceOrder, orderRefundApplication);
cancelEntrustServiceOrderDomainService.handle(entrustServiceOrder, orderRefundApplication);
}
}
log.error("委托服务接受到期退款任务结束");
@ -62,4 +64,49 @@ public class EntrustServiceOrderTask {
log.error("委托服务接受到期退款任务异常", e);
}
}
@Scheduled(cron = "0 10 * * * *")
public void handle2() {
try {
log.error("委托服务自动确认任务开始");
List<EntrustServiceOrder> list = entrustServiceOrderDao.selectList(new LambdaQueryWrapper<EntrustServiceOrder>()
.eq(EntrustServiceOrder::getStatus, EntrustServiceStatusEnum.ACCEPTED)
.le(EntrustServiceOrder::getFinishDeadline, LocalDateTime.now()));
if (CollUtil.isNotEmpty(list)) {
for (EntrustServiceOrder entrustServiceOrder : list) {
entrustServiceOrder.setStatus(EntrustServiceStatusEnum.FINISHED);
entrustServiceOrder.setFinishedTime(LocalDateTime.now());
entrustServiceOrder.setSettlementDeadline(entrustServiceOrder.getFinishedTime().plusDays(4));
entrustServiceOrder.setRemark("自动确认");
entrustServiceOrderAggregate.edit(entrustServiceOrder);
}
}
log.error("委托服务自动确认任务结束");
} catch (Exception e) {
log.error("委托服务自动确认任务异常", e);
}
}
@Scheduled(cron = "0 20 * * * *")
public void handle3() {
try {
log.error("委托服务自动结算任务开始");
List<EntrustServiceOrder> list = entrustServiceOrderDao.selectList(new LambdaQueryWrapper<EntrustServiceOrder>()
.eq(EntrustServiceOrder::getStatus, EntrustServiceStatusEnum.FINISHED)
.eq(EntrustServiceOrder::getIsSettlement, false)
.le(EntrustServiceOrder::getSettlementDeadline, LocalDateTime.now()));
if (CollUtil.isNotEmpty(list)) {
for (EntrustServiceOrder entrustServiceOrder : list) {
//结算任务
revenueRewardApplicationService.settleEntrustServiceOrder(entrustServiceOrder);
entrustServiceOrder.setStatus(EntrustServiceStatusEnum.FINISHED);
entrustServiceOrder.setIsSettlement(true);
entrustServiceOrderAggregate.edit(entrustServiceOrder);
}
}
log.error("委托服务自动结算任务结束");
} catch (Exception e) {
log.error("委托服务自动结算任务异常", e);
}
}
}

dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/eso/RefundEntrustServiceOrderDomainService.java → dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/eso/CancelEntrustServiceOrderDomainService.java

@ -10,7 +10,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@Service
public class RefundEntrustServiceOrderDomainService {
public class CancelEntrustServiceOrderDomainService {
@Resource
private EntrustServiceOrderAggregate entrustServiceOrderAggregate;
Loading…
Cancel
Save