Browse Source

基础配置

release
张彭杰 1 year ago
parent
commit
796d931c00
11 changed files with 183 additions and 7 deletions
  1. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  2. 3
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/entity/MarriageBountyOrderReward.java
  3. 7
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java
  4. 4
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/valueobj/WalletAccountAssociateOrderRecord.java
  5. 34
      dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMeetingEvent.java
  6. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/RewardUserCommandController.java
  7. 26
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/AcquireMatchmakerConfirmMeetingRewardDto.java
  8. 19
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java
  9. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java
  10. 47
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java
  11. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java

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

@ -18,6 +18,8 @@ public enum TradeTypeEnum {
MATCHMAKER_JOIN_RECOMMEND_FEE(104, "红娘入驻推荐"), MATCHMAKER_JOIN_RECOMMEND_FEE(104, "红娘入驻推荐"),
MARRIAGE_BOUNTY_MEETING_FEE(105, "悬赏招亲见面费用"),
PLATFORM_SERVICE_FEE(201, "平台服务费"); PLATFORM_SERVICE_FEE(201, "平台服务费");
@EnumValue @EnumValue

3
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/entity/MarriageBountyOrderReward.java

@ -22,6 +22,9 @@ public class MarriageBountyOrderReward extends Entity<MarriageBountyOrderReward>
@ApiModelProperty("悬赏招亲订单标识") @ApiModelProperty("悬赏招亲订单标识")
private Long marriageBountyOrderId; private Long marriageBountyOrderId;
@ApiModelProperty("见面嘉宾标识")
private Long meetingMiId;
@ApiModelProperty("奖励分类") @ApiModelProperty("奖励分类")
private ProductSubCategoryEnum rewardCategory; private ProductSubCategoryEnum rewardCategory;

7
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/valueobj/MarriageBountyOrderRewardReceiveRecord.java

@ -26,4 +26,11 @@ public class MarriageBountyOrderRewardReceiveRecord extends ValueObject<Marriage
@ApiModelProperty("领取金额") @ApiModelProperty("领取金额")
private BigDecimal receivedAmount; private BigDecimal receivedAmount;
public static MarriageBountyOrderRewardReceiveRecord build(RewardTypeEnum rewardType, Long receiver, BigDecimal receivedAmount) {
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = new MarriageBountyOrderRewardReceiveRecord();
rewardReceiveRecord.setRewardType(rewardType);
rewardReceiveRecord.setReceiver(receiver);
rewardReceiveRecord.setReceivedAmount(receivedAmount);
return rewardReceiveRecord;
}
} }

4
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/walletaccount/valueobj/WalletAccountAssociateOrderRecord.java

@ -22,11 +22,11 @@ public class WalletAccountAssociateOrderRecord extends ValueObject<WalletAccount
@ApiModelProperty("有关联的金额") @ApiModelProperty("有关联的金额")
private BigDecimal associateOrderAmount; private BigDecimal associateOrderAmount;
public static WalletAccountAssociateOrderRecord build(Long associateOrder,
public static WalletAccountAssociateOrderRecord build(Long associateOrderId,
BigDecimal associateOrderAmount) { BigDecimal associateOrderAmount) {
WalletAccountAssociateOrderRecord associateOrderRecord = new WalletAccountAssociateOrderRecord(); WalletAccountAssociateOrderRecord associateOrderRecord = new WalletAccountAssociateOrderRecord();
associateOrderRecord.setAssociateOrderId(associateOrder);
associateOrderRecord.setAssociateOrderId(associateOrderId);
associateOrderRecord.setAssociateOrderAmount(associateOrderAmount); associateOrderRecord.setAssociateOrderAmount(associateOrderAmount);
return associateOrderRecord; return associateOrderRecord;
} }

34
dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMeetingEvent.java

@ -0,0 +1,34 @@
package com.qniao.dam.domian.aggregate.marriagebounty.event;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.domain.BaseDomainEvent;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class MarriageBountyOrderConfirmedMeetingEvent extends BaseDomainEvent {
@ApiModelProperty("悬赏招亲订单标识")
private Long id;
@ApiModelProperty("悬赏招亲订单奖励标识")
private Long marriageBountyOrderRewardId;
@ApiModelProperty("见面嘉宾标识")
private Long meetingMiId;
@ApiModelProperty("奖励类型")
private RewardTypeEnum rewardType;
@ApiModelProperty("领取人标识")
private Long receiver;
@ApiModelProperty("领取金额")
private BigDecimal receivedAmount;
private List<Long> orderIdRelList;
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/RewardUserCommandController.java

@ -1,5 +1,6 @@
package com.qniao.dam.api.command.reward.user; package com.qniao.dam.api.command.reward.user;
import com.qniao.dam.api.command.reward.user.request.AcquireMatchmakerConfirmMeetingRewardDto;
import com.qniao.dam.api.command.reward.user.request.UserAcquireMatchmakerJoinRecommendRewardDto; import com.qniao.dam.api.command.reward.user.request.UserAcquireMatchmakerJoinRecommendRewardDto;
import com.qniao.dam.application.service.reward.RewardApplicationService; import com.qniao.dam.application.service.reward.RewardApplicationService;
import com.qniao.framework.annotation.IgnoreResponseAdvice; import com.qniao.framework.annotation.IgnoreResponseAdvice;
@ -28,5 +29,9 @@ public class RewardUserCommandController {
rewardApplicationService.acquireMatchmakerJoinRecommendReward(dto); rewardApplicationService.acquireMatchmakerJoinRecommendReward(dto);
} }
@ApiOperation("红娘获得悬赏招亲见面奖励")
@PostMapping("acquire/matchmaker-confirm-meeting/reward/")
public void acquireMatchmakerConfirmMeetingReward(@RequestBody @Valid AcquireMatchmakerConfirmMeetingRewardDto dto) {
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(dto);
}
} }

26
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/AcquireMatchmakerConfirmMeetingRewardDto.java

@ -0,0 +1,26 @@
package com.qniao.dam.api.command.reward.user.request;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class AcquireMatchmakerConfirmMeetingRewardDto {
@ApiModelProperty("奖励类型")
private RewardTypeEnum rewardType;
@ApiModelProperty("见面嘉宾标识")
private Long meetingMiId;
@ApiModelProperty("领取人标识")
private Long receiver;
@ApiModelProperty("领取金额")
private BigDecimal receivedAmount;
private List<Long> orderIdRelList;
}

19
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java

@ -1,6 +1,9 @@
package com.qniao.dam.application.handler.marriagebounty; package com.qniao.dam.application.handler.marriagebounty;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.qniao.dam.api.command.reward.user.request.AcquireMatchmakerConfirmMeetingRewardDto;
import com.qniao.dam.application.service.reward.RewardApplicationService;
import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderConfirmedMeetingEvent;
import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent;
import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedMQ; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedMQ;
import com.qniao.dam.infrastructure.constant.MqExchange; import com.qniao.dam.infrastructure.constant.MqExchange;
@ -11,6 +14,7 @@ import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Objects;
@Component @Component
@Slf4j @Slf4j
@ -18,6 +22,8 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
@Resource @Resource
private AmqpTemplate amqpTemplate; private AmqpTemplate amqpTemplate;
@Resource
private RewardApplicationService rewardApplicationService;
@Subscribe @Subscribe
public void handle(MarriageBountyOrderCreatedEvent event) { public void handle(MarriageBountyOrderCreatedEvent event) {
@ -31,4 +37,17 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
} }
} }
@Subscribe
public void handle(MarriageBountyOrderConfirmedMeetingEvent event) {
try {
//红娘获取奖励
if (Objects.nonNull(event.getMarriageBountyOrderRewardId())) {
AcquireMatchmakerConfirmMeetingRewardDto confirmMeetingRewardDto = TypeConvertUtils.convert(event, AcquireMatchmakerConfirmMeetingRewardDto.class);
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(confirmMeetingRewardDto);
}
} catch (Exception e) {
log.error("悬赏招亲订单确认见面事件处理异常", e);
}
}
} }

18
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java

@ -10,6 +10,7 @@ import com.qniao.dam.domain.aggregate.marriagebounty.repository.MarriageBountyOr
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductRecord; import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductRecord;
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductSpecRecord; import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderProductSpecRecord;
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel; import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel;
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRewardReceiveRecord;
import com.qniao.dam.domain.aggregate.order.entity.Order; import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem; import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.dam.domain.aggregate.order.repository.OrderRepository; import com.qniao.dam.domain.aggregate.order.repository.OrderRepository;
@ -21,6 +22,7 @@ import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrder
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum;
import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum; import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao; import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService; import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService;
@ -154,10 +156,13 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
/** /**
* 悬赏招亲 确认见面 领取奖励 * 悬赏招亲 确认见面 领取奖励
*/ */
public void confirmMeeting(Long marriageBountyOrderId, Long receiver) {
public void confirmMeeting(Long marriageBountyOrderId, Long receiver, Long meetingMiId) {
MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId);
if (Objects.nonNull(existMarriageBountyOrder) && MarriageBountyOrderStatusEnum.MATCHMAKING.equals(existMarriageBountyOrder.getStatus())) { if (Objects.nonNull(existMarriageBountyOrder) && MarriageBountyOrderStatusEnum.MATCHMAKING.equals(existMarriageBountyOrder.getStatus())) {
if (CollUtil.isNotEmpty(existMarriageBountyOrder.getOrderRewardList())) {
MarriageBountyOrder marriageBountyOrder = new MarriageBountyOrder();
marriageBountyOrder.setId(marriageBountyOrderId);
if (CollUtil.isNotEmpty(existMarriageBountyOrder.getOrderRewardList()) &&
existMarriageBountyOrder.getOrderRewardList().stream().noneMatch(orderReward -> meetingMiId.equals(orderReward.getMeetingMiId()))) {
MarriageBountyOrderReward marriageBountyOrderReward = null; MarriageBountyOrderReward marriageBountyOrderReward = null;
for (MarriageBountyOrderReward orderReward : existMarriageBountyOrder.getOrderRewardList()) { for (MarriageBountyOrderReward orderReward : existMarriageBountyOrder.getOrderRewardList()) {
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(orderReward.getRewardCategory())) { if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(orderReward.getRewardCategory())) {
@ -168,9 +173,16 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
} }
} }
if (Objects.nonNull(marriageBountyOrderReward)) { if (Objects.nonNull(marriageBountyOrderReward)) {
marriageBountyOrderReward.setIsReceive(true);
marriageBountyOrderReward.setMeetingMiId(meetingMiId);
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build(
RewardTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE, receiver, marriageBountyOrderReward.getRewardAmount());
marriageBountyOrderReward.setRewardReceiveRecordList(Collections.singletonList(rewardReceiveRecord));
marriageBountyOrder.setUpdateOrderRewardList(Collections.singletonList(marriageBountyOrderReward));
} }
} }
BaseDomainEvent event = marriageBountyOrderAggregate.confirmMeeting(marriageBountyOrder, existMarriageBountyOrder.getOrderRelList());
this.sendEvent(event);
} }
} }

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

@ -1,7 +1,11 @@
package com.qniao.dam.application.service.reward; package com.qniao.dam.application.service.reward;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.qniao.dam.api.command.reward.user.request.AcquireMatchmakerConfirmMeetingRewardDto;
import com.qniao.dam.api.command.reward.user.request.UserAcquireMatchmakerJoinRecommendRewardDto; import com.qniao.dam.api.command.reward.user.request.UserAcquireMatchmakerJoinRecommendRewardDto;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao;
import com.qniao.dam.query.walletaccount.WalletAccountQueryService; import com.qniao.dam.query.walletaccount.WalletAccountQueryService;
import com.qniao.dam.domain.aggregate.order.entity.Order; import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
@ -15,11 +19,15 @@ import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import com.qniao.dam.query.order.OrderQueryService; import com.qniao.dam.query.order.OrderQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
import com.qniao.das.domian.aggregate.marriageinformation.constant.GenderEnum;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List;
import java.util.Objects; import java.util.Objects;
@Service @Service
@ -33,9 +41,13 @@ public class RewardApplicationService {
private WalletAccountAggregate walletAccountAggregate; private WalletAccountAggregate walletAccountAggregate;
@Resource @Resource
private OrderQueryService orderQueryService; private OrderQueryService orderQueryService;
@Resource
private MarriageInformationDao marriageInformationDao;
@Resource
private OrderDao orderDao;
/** /**
* todo 财务入账
* 获得红娘推荐奖励
*/ */
public void acquireMatchmakerJoinRecommendReward(UserAcquireMatchmakerJoinRecommendRewardDto dto) { public void acquireMatchmakerJoinRecommendReward(UserAcquireMatchmakerJoinRecommendRewardDto dto) {
synchronized (dto.getInitiatorUserId().toString().intern()) { synchronized (dto.getInitiatorUserId().toString().intern()) {
@ -59,4 +71,37 @@ public class RewardApplicationService {
} }
} }
} }
/**
* 获得红娘推荐奖励
*/
public void acquireMatchmakerConfirmMeetingReward(AcquireMatchmakerConfirmMeetingRewardDto dto) {
synchronized (dto.getReceiver().toString().intern()) {
WalletAccount walletAccount = walletAccountQueryService.queryByUserId(dto.getReceiver());
if (Objects.isNull(walletAccount)) {
walletAccount = WalletAccount.init(dto.getReceiver());
}
BigDecimal rewardAmount = dto.getReceivedAmount();
MarriageInformation meetingMi = marriageInformationDao.selectById(dto.getMeetingMiId());
String content = "推荐嘉宾" + meetingMi.getNickName() + StrUtil.SPACE + meetingMi.getGenderValue() + "见面";
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(rewardAmount));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE,
rewardAmount, true, content, TradeTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE.getDesc());
if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) {
List<WalletAccountAssociateOrderRecord> associateOrderRecordList = new ArrayList<>();
for (Long associateOrderId : dto.getOrderIdRelList()) {
Order associateOrder = orderDao.selectById(associateOrderId);
WalletAccountAssociateOrderRecord associateOrderRecord = WalletAccountAssociateOrderRecord.build(associateOrder.getId(), associateOrder.getSettlementAmount());
associateOrderRecordList.add(associateOrderRecord);
}
record.setAssociateOrderRecordList(associateOrderRecordList);
}
walletAccount.setRecordList(Collections.singletonList(record));
walletAccountAggregate.save(walletAccount);
}
}
} }

23
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java

@ -1,15 +1,22 @@
package com.qniao.dam.domain.aggregate.marriagebounty; package com.qniao.dam.domain.aggregate.marriagebounty;
import cn.hutool.core.collection.CollUtil;
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder;
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrderReward;
import com.qniao.dam.domain.aggregate.marriagebounty.repository.MarriageBountyOrderRepository; import com.qniao.dam.domain.aggregate.marriagebounty.repository.MarriageBountyOrderRepository;
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel;
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRewardReceiveRecord;
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderPaymentStatusEnum; import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderPaymentStatusEnum;
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum;
import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderConfirmedMeetingEvent;
import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent;
import com.qniao.domain.BaseDomainEvent; import com.qniao.domain.BaseDomainEvent;
import com.qniao.framework.utils.TypeConvertUtils; import com.qniao.framework.utils.TypeConvertUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Service @Service
public class MarriageBountyOrderAggregate { public class MarriageBountyOrderAggregate {
@ -34,7 +41,23 @@ public class MarriageBountyOrderAggregate {
} }
public void refund(MarriageBountyOrder marriageBountyOrder) { public void refund(MarriageBountyOrder marriageBountyOrder) {
marriageBountyOrder.setStatus(MarriageBountyOrderStatusEnum.MATCH_FAIl);
marriageBountyOrder.setPaymentStatus(MarriageBountyOrderPaymentStatusEnum.REFUNDED); marriageBountyOrder.setPaymentStatus(MarriageBountyOrderPaymentStatusEnum.REFUNDED);
marriageBountyOrderRepository.save(marriageBountyOrder); marriageBountyOrderRepository.save(marriageBountyOrder);
} }
public BaseDomainEvent confirmMeeting(MarriageBountyOrder marriageBountyOrder, List<MarriageBountyOrderRel> orderRelList) {
marriageBountyOrderRepository.save(marriageBountyOrder);
MarriageBountyOrderConfirmedMeetingEvent event = new MarriageBountyOrderConfirmedMeetingEvent();
event.setId(marriageBountyOrder.getId());
MarriageBountyOrderReward marriageBountyOrderReward = marriageBountyOrder.getUpdateOrderRewardList().get(0);
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = marriageBountyOrderReward.getRewardReceiveRecordList().get(0);
event.setMarriageBountyOrderRewardId(rewardReceiveRecord.getMarriageBountyOrderRewardId());
event.setMeetingMiId(marriageBountyOrderReward.getMeetingMiId());
event.setRewardType(rewardReceiveRecord.getRewardType());
event.setReceiver(rewardReceiveRecord.getReceiver());
event.setReceivedAmount(rewardReceiveRecord.getReceivedAmount());
event.setOrderIdRelList(orderRelList.stream().map(MarriageBountyOrderRel::getOrderId).collect(Collectors.toList()));
return event;
}
} }
Loading…
Cancel
Save