Browse Source

红娘续费

release
张彭杰 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, "红娘加盟"), JOIN(1, "红娘加盟"),
UPGRADE(2, "红娘升级");
UPGRADE(2, "红娘升级"),
RENEW(3, "红娘续费");
@EnumValue @EnumValue
@JsonValue @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_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; package com.qniao.dam.domain.aggregate.order.entity;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; 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.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum; import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum; import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum;
@ -14,6 +16,7 @@ import lombok.EqualsAndHashCode;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
@Data @Data
@ -57,6 +60,9 @@ public class Order extends Entity<Order> {
@ApiModelProperty("状态") @ApiModelProperty("状态")
private OrderStatusEnum status; private OrderStatusEnum status;
@TableField(typeHandler = JacksonTypeHandler.class)
private Map<String, String> extInfo;
private transient List<OrderItem> orderItemList; private transient List<OrderItem> orderItemList;
private transient Integer groupType; 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; 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.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem; import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.dam.domian.aggregate.order.constant.MatchmakerOrderTypeEnum; import com.qniao.dam.domian.aggregate.order.constant.MatchmakerOrderTypeEnum;
@ -9,7 +10,9 @@ import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Data @Data
public class UserSubmitMatchMakerOrderDto implements Trans2DomainAssembler<Order> { public class UserSubmitMatchMakerOrderDto implements Trans2DomainAssembler<Order> {
@ -35,6 +38,10 @@ public class UserSubmitMatchMakerOrderDto implements Trans2DomainAssembler<Order
orderItem.setQuantity(1); orderItem.setQuantity(1);
orderItemList.add(orderItem); orderItemList.add(orderItem);
order.setOrderItemList(orderItemList); order.setOrderItemList(orderItemList);
//额外信息
Map<String, String> extInfo = new HashMap<>();
extInfo.put("matchmakerOrderType", matchmakerOrderType.getValue().toString());
order.setExtInfo(extInfo);
return order; 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.domain.aggregate.right.entity.Right;
import com.qniao.dam.domian.aggregate.externalorder.constant.ExternalOrderRelStatus; import com.qniao.dam.domian.aggregate.externalorder.constant.ExternalOrderRelStatus;
import com.qniao.dam.domian.aggregate.externalorder.constant.ExternalOrderTypeEnum; 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.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum; import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum;
import com.qniao.dam.domian.aggregate.order.event.ExternalOrderCompletedMQEvent; import com.qniao.dam.domian.aggregate.order.event.ExternalOrderCompletedMQEvent;
@ -48,10 +49,7 @@ import org.springframework.transaction.annotation.Transactional;
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.List;
import java.util.Objects;
import java.util.*;
@Component @Component
@Slf4j @Slf4j
@ -119,13 +117,14 @@ public class OrderEventHandler extends BaseApplicationService {
//红娘加盟费 //红娘加盟费
if (OrderBelongingEnum.MATCHMAKER.equals(order.getOrderBelonging())) { if (OrderBelongingEnum.MATCHMAKER.equals(order.getOrderBelonging())) {
OrderItem orderItem = order.getOrderItemList().get(0); OrderItem orderItem = order.getOrderItemList().get(0);
MatchmakerOrderTypeEnum matchmakerOrderType = MatchmakerOrderTypeEnum.get(order.getExtInfo().get("matchmakerOrderType"));
ProductSpec productSpec = productSpecRepository.load(orderItem.getProductSpecId()); ProductSpec productSpec = productSpecRepository.load(orderItem.getProductSpecId());
int validityPeriodDays = 0; int validityPeriodDays = 0;
ProductSpecTerm term = productQueryService.getTermByName(productSpec.getProductSpecTermList(), ProductSpecTermNameEnum.VALIDITY_PERIOD); ProductSpecTerm term = productQueryService.getTermByName(productSpec.getProductSpecTermList(), ProductSpecTermNameEnum.VALIDITY_PERIOD);
if (Objects.nonNull(term)) { if (Objects.nonNull(term)) {
validityPeriodDays = Integer.parseInt(term.getValue()); 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); 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.setOriginalAmount(orderItem.getUnitOriginalPrice());
orderItem.setDiscountAmount(BigDecimal.ZERO); orderItem.setDiscountAmount(BigDecimal.ZERO);
orderItem.calculate(); orderItem.calculate();
orderItem.setUnitOriginalPrice(orderItem.getSettlementAmount());
orderItem.setSettlementAmount(orderItem.getUnitOriginalPrice());
} else if (MatchmakerOrderTypeEnum.UPGRADE.equals(matchmakerOrderType)) { } else if (MatchmakerOrderTypeEnum.UPGRADE.equals(matchmakerOrderType)) {
//红娘升级 //红娘升级
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(order.getUserId()); Matchmaker matchmaker = matchmakerQueryService.queryByUserId(order.getUserId());
@ -531,7 +531,23 @@ public class OrderApplicationService extends BaseApplicationService {
} }
orderItem.setDiscountAmount(discountAmount); orderItem.setDiscountAmount(discountAmount);
orderItem.calculate(); 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