Browse Source

红娘续费

master
张彭杰 1 year ago
parent
commit
ccc570ee53
6 changed files with 40 additions and 8 deletions
  1. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/MatchmakerOrderTypeEnum.java
  2. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
  3. 6
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java
  4. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitMatchMakerOrderDto.java
  5. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java
  6. 20
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

4
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/MatchmakerOrderTypeEnum.java

@ -12,7 +12,9 @@ public enum MatchmakerOrderTypeEnum {
JOIN(1, "红娘加盟"),
UPGRADE(2, "红娘升级");
UPGRADE(2, "红娘升级"),
RENEW(3, "红娘续费");
@EnumValue
@JsonValue

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

@ -27,6 +27,8 @@ public enum RewardTypeEnum {
MATCHMAKER_JOIN_RECOMMEND_STORE(107, "红娘入驻推荐门店奖励"),
MATCHMAKER_RENEW_DISCOUNT(108, "红娘续费折扣"),
/**
* 线上红娘
*/

6
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java

@ -1,7 +1,9 @@
package com.qniao.dam.domain.aggregate.order.entity;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum;
@ -14,6 +16,7 @@ import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Data
@ -57,6 +60,9 @@ public class Order extends Entity<Order> {
@ApiModelProperty("状态")
private OrderStatusEnum status;
@TableField(typeHandler = JacksonTypeHandler.class)
private Map<String, String> extInfo;
private transient List<OrderItem> orderItemList;
private transient Integer groupType;

7
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitMatchMakerOrderDto.java

@ -1,5 +1,6 @@
package com.qniao.dam.api.command.order.user.request;
import com.qniao.dam.api.command.paymentchannelorder.user.request.ThirdPartyField;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.dam.domian.aggregate.order.constant.MatchmakerOrderTypeEnum;
@ -9,7 +10,9 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
public class UserSubmitMatchMakerOrderDto implements Trans2DomainAssembler<Order> {
@ -35,6 +38,10 @@ public class UserSubmitMatchMakerOrderDto implements Trans2DomainAssembler<Order
orderItem.setQuantity(1);
orderItemList.add(orderItem);
order.setOrderItemList(orderItemList);
//额外信息
Map<String, String> extInfo = new HashMap<>();
extInfo.put("matchmakerOrderType", matchmakerOrderType.getValue().toString());
order.setExtInfo(extInfo);
return order;
}
}

9
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java

@ -23,6 +23,7 @@ import com.qniao.dam.domain.aggregate.right.RightAggregate;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domian.aggregate.externalorder.constant.ExternalOrderRelStatus;
import com.qniao.dam.domian.aggregate.externalorder.constant.ExternalOrderTypeEnum;
import com.qniao.dam.domian.aggregate.order.constant.MatchmakerOrderTypeEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum;
import com.qniao.dam.domian.aggregate.order.event.ExternalOrderCompletedMQEvent;
@ -48,10 +49,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.*;
@Component
@Slf4j
@ -119,13 +117,14 @@ public class OrderEventHandler extends BaseApplicationService {
//红娘加盟费
if (OrderBelongingEnum.MATCHMAKER.equals(order.getOrderBelonging())) {
OrderItem orderItem = order.getOrderItemList().get(0);
MatchmakerOrderTypeEnum matchmakerOrderType = MatchmakerOrderTypeEnum.get(order.getExtInfo().get("matchmakerOrderType"));
ProductSpec productSpec = productSpecRepository.load(orderItem.getProductSpecId());
int validityPeriodDays = 0;
ProductSpecTerm term = productQueryService.getTermByName(productSpec.getProductSpecTermList(), ProductSpecTermNameEnum.VALIDITY_PERIOD);
if (Objects.nonNull(term)) {
validityPeriodDays = Integer.parseInt(term.getValue());
}
PaidMatchmakerFeeBySdkDto dto = new PaidMatchmakerFeeBySdkDto(order.getUserId(), orderItem.getSubCategory(), order.getOriginalAmount(), validityPeriodDays,order.getId());
PaidMatchmakerFeeBySdkDto dto = new PaidMatchmakerFeeBySdkDto(order.getUserId(), orderItem.getSubCategory(), order.getOriginalAmount(), validityPeriodDays, order.getId(), matchmakerOrderType);
uecServerApplicationService.userPaidMatchmakerFee(dto);
}
//悬赏招亲

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

@ -512,7 +512,7 @@ public class OrderApplicationService extends BaseApplicationService {
orderItem.setOriginalAmount(orderItem.getUnitOriginalPrice());
orderItem.setDiscountAmount(BigDecimal.ZERO);
orderItem.calculate();
orderItem.setUnitOriginalPrice(orderItem.getSettlementAmount());
orderItem.setSettlementAmount(orderItem.getUnitOriginalPrice());
} else if (MatchmakerOrderTypeEnum.UPGRADE.equals(matchmakerOrderType)) {
//红娘升级
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(order.getUserId());
@ -531,7 +531,23 @@ public class OrderApplicationService extends BaseApplicationService {
}
orderItem.setDiscountAmount(discountAmount);
orderItem.calculate();
orderItem.setUnitOriginalPrice(orderItem.getSettlementAmount());
orderItem.setUnitSettlementPrice(orderItem.getSettlementAmount());
}
} else if (MatchmakerOrderTypeEnum.RENEW.equals(matchmakerOrderType)) {
//红娘续费
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(order.getUserId());
if (Objects.isNull(matchmaker)) {
throw new BizException("没有查询到红娘信息");
} else {
orderItem.setOriginalAmount(orderItem.getUnitOriginalPrice());
BigDecimal discountAmount = BigDecimal.ZERO;
RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCHMAKER_RENEW_DISCOUNT);
if (Objects.nonNull(rewardConfig)) {
discountAmount = rewardConfig.calculatePrice(orderItem.getOriginalAmount());
}
orderItem.setDiscountAmount(discountAmount);
orderItem.calculate();
orderItem.setUnitSettlementPrice(orderItem.getSettlementAmount());
}
}
}

Loading…
Cancel
Save