Browse Source

线下收益

master
张彭杰 1 year ago
parent
commit
0daa8449d5
4 changed files with 54 additions and 5 deletions
  1. 38
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeSceneEnum.java
  2. 9
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/revenuereward/valueobj/RevenueRewardRecord.java
  3. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpaw/RafflePrizeActivityWinningEventHandler.java
  4. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java

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

@ -0,0 +1,38 @@
package com.qniao.dam.domian.aggregate.walletaccount.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 TradeSceneEnum {
ONLINE(1, "线上"),
OFFLINE(2, "线下");
@EnumValue
@JsonValue
private final Integer value;
private final String desc;
TradeSceneEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonCreator
public static TradeSceneEnum get(Integer v) {
for (TradeSceneEnum e : TradeSceneEnum.values()) {
if (e.getValue().equals(v)) {
return e;
}
}
return null;
}
}

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

@ -2,6 +2,7 @@ package com.qniao.dam.domain.aggregate.revenuereward.valueobj;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import com.qniao.domain.ValueObject;
import io.swagger.annotations.ApiModelProperty;
@ -22,6 +23,9 @@ public class RevenueRewardRecord extends ValueObject<RevenueRewardRecord> {
@ApiModelProperty("交易类型")
private TradeTypeEnum tradeType;
@ApiModelProperty("交易场景")
private TradeSceneEnum tradeScene;
@ApiModelProperty("营收额")
private BigDecimal revenue;
@ -40,9 +44,13 @@ public class RevenueRewardRecord extends ValueObject<RevenueRewardRecord> {
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("凭证Url")
private String proofUrl;
private transient List<RevenueRewardAssociateOrderRecord> associateOrderRecordList;
public static RevenueRewardRecord build(TradeTypeEnum tradeType,
TradeSceneEnum tradeScene,
BigDecimal revenue,
BigDecimal revenuePct,
BigDecimal servicePct,
@ -50,6 +58,7 @@ public class RevenueRewardRecord extends ValueObject<RevenueRewardRecord> {
BigDecimal totalAssociateOrderAmount) {
RevenueRewardRecord record = new RevenueRewardRecord();
record.setTradeType(tradeType);
record.setTradeScene(tradeScene);
record.setRevenue(revenue);
record.setRevenuePct(revenuePct);
record.setServicePct(servicePct);

3
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpaw/RafflePrizeActivityWinningEventHandler.java

@ -13,6 +13,7 @@ import com.qniao.dam.domain.service.revenuereward.AcquireRevenueRewardDomainServ
import com.qniao.dam.domian.aggregate.rpaw.event.RafflePrizeActivityWinningDrawnEvent;
import com.qniao.dam.domian.aggregate.rpc.constant.PrizeCategoryEnum;
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.persistent.dao.rpaw.RafflePrizeActivityWinningDao;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
@ -56,7 +57,7 @@ public class RafflePrizeActivityWinningEventHandler extends BaseApplicationServi
//收益信息
RevenueReward revenueReward = revenueRewardQueryService.queryByType(winning.getUserId(), IdentityTypeEnum.INDIVIDUAL);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.RAFFLE_PRIZE_ACTIVITY_WINNING, earnings, BigDecimal.ZERO,
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.RAFFLE_PRIZE_ACTIVITY_WINNING, TradeSceneEnum.ONLINE,earnings, BigDecimal.ZERO,
BigDecimal.ZERO, earnings, earnings);
revenueRewardRecord.setContent("抽奖活动奖励");
revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord));

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

@ -15,6 +15,7 @@ import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ;
import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum;
import com.qniao.dam.infrastructure.constant.MqExchange;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao;
@ -90,7 +91,7 @@ public class RewardApplicationService extends BaseApplicationService {
}
//营收额
BigDecimal revenue = RewardConfig.calculatePct(rewardAmount, recommendRewardPct);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE,
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MATCHMAKER_JOIN_RECOMMEND_FEE, TradeSceneEnum.ONLINE,
revenue, recommendRewardPct, BigDecimal.ZERO, revenue, associateOrder.getSettlementAmount());
revenueRewardRecord.handleContent(Collections.singletonList(StrUtil.isNotBlank(dto.getReceiveUserName()) ? dto.getReceiveUserName() : ""));
RevenueRewardAssociateOrderRecord associateOrderRecord = RevenueRewardAssociateOrderRecord.build(associateOrder.getId(), associateOrder.getSettlementAmount());
@ -214,7 +215,7 @@ public class RewardApplicationService extends BaseApplicationService {
//服务费用
serviceFee = serviceFeeRewardConfig.calculateReward(revenue);
BigDecimal earnings = revenue.subtract(serviceFee);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,TradeSceneEnum.ONLINE,
revenue, BigDecimal.valueOf(100), new BigDecimal(serviceFeeRewardConfig.getValue()), earnings, dto.getTotalAssociateOrderAmount());
revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName()));
if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) {
@ -275,7 +276,7 @@ public class RewardApplicationService extends BaseApplicationService {
RevenueReward revenueReward = revenueRewardQueryService.queryByType(identityId, identityType);
//营收额
BigDecimal revenue = recommendRewardConfig.calculateReward(amount);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,TradeSceneEnum.ONLINE,
revenue, new BigDecimal(recommendRewardConfig.getValue()), BigDecimal.ZERO, revenue, totalAssociateOrderAmount);
revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName()));
if (CollUtil.isNotEmpty(orderIdRekList)) {
@ -322,7 +323,7 @@ public class RewardApplicationService extends BaseApplicationService {
//服务费用
serviceFee = serviceFeeRewardConfig.calculateReward(revenue);
BigDecimal earnings = revenue.subtract(serviceFee);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType, revenue, dto.getRevenuePct(),
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,TradeSceneEnum.ONLINE, revenue, dto.getRevenuePct(),
new BigDecimal(serviceFeeRewardConfig.getValue()), earnings, dto.getTotalAssociateOrderAmount());
revenueRewardRecord.handleContent(Collections.singletonList(associatedMi.getNickName()));
if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) {

Loading…
Cancel
Save