Browse Source

悬赏招亲

release
张彭杰 1 year ago
parent
commit
5020711eb7
3 changed files with 33 additions and 5 deletions
  1. 6
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java
  2. 11
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/entity/MarriageBountyOrder.java
  3. 21
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

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

@ -35,11 +35,11 @@ public enum RewardTypeEnum {
PLATFORM_SERVICE_STORE_UPGRADE_REWARD(204, "平台服务费门店升级佣金"), PLATFORM_SERVICE_STORE_UPGRADE_REWARD(204, "平台服务费门店升级佣金"),
// 3** 招亲榜 MarriageBounty // 3** 招亲榜 MarriageBounty
MARRIAGE_BOUNTY_MEETING_MIN_AMOUNT(301, "招亲榜-见面"),
MARRIAGE_BOUNTY_MEETING_MIN_AMOUNT(301, "招亲榜-见面低消"),
MARRIAGE_BOUNTY_DATING_MIN_AMOUNT(302, "招亲榜-牵手"),
MARRIAGE_BOUNTY_DATING_MIN_AMOUNT(302, "招亲榜-牵手低消"),
MARRIAGE_BOUNTY_MARRIAGE_MIN_AMOUNT(303, "招亲榜-结婚");
MARRIAGE_BOUNTY_MARRIAGE_MIN_AMOUNT(303, "招亲榜-结婚低消");
// 4** 红娘合伙人 // 4** 红娘合伙人

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

@ -6,6 +6,7 @@ import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrde
import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel; import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel;
import com.qniao.dam.domian.aggregate.marriagebount.constant.*; import com.qniao.dam.domian.aggregate.marriagebount.constant.*;
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.domain.Entity; import com.qniao.domain.Entity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -82,4 +83,14 @@ public class MarriageBountyOrder extends Entity<MarriageBountyOrder> {
} }
return meetingQuantity; return meetingQuantity;
} }
public RewardTypeEnum getRewardType() {
RewardTypeEnum rewardType = RewardTypeEnum.MARRIAGE_BOUNTY_MARRIAGE_MIN_AMOUNT;
if (MarriageBountyOrderType.MEETING.equals(type)) {
rewardType = RewardTypeEnum.MARRIAGE_BOUNTY_MEETING_MIN_AMOUNT;
} else if (MarriageBountyOrderType.DATING.equals(type)) {
rewardType = RewardTypeEnum.MARRIAGE_BOUNTY_DATING_MIN_AMOUNT;
}
return rewardType;
}
} }

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

@ -18,6 +18,7 @@ import com.qniao.dam.domain.aggregate.product.entity.Product;
import com.qniao.dam.domain.aggregate.product.repository.ProductRepository; import com.qniao.dam.domain.aggregate.product.repository.ProductRepository;
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec;
import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository; import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository;
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig;
import com.qniao.dam.domain.service.order.SubmitOrderDomainService; import com.qniao.dam.domain.service.order.SubmitOrderDomainService;
import com.qniao.dam.domain.service.order.SubmitSiteActivityOrderDomainService; import com.qniao.dam.domain.service.order.SubmitSiteActivityOrderDomainService;
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderPaymentStatusEnum; import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderPaymentStatusEnum;
@ -27,6 +28,7 @@ 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.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum;
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao; import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao; import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.utils.SnowFlakeUtil; import com.qniao.dam.infrastructure.utils.SnowFlakeUtil;
@ -34,6 +36,7 @@ import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService; import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.order.OrderQueryService; import com.qniao.dam.query.order.OrderQueryService;
import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.product.ProductQueryService;
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService;
import com.qniao.dam.query.right.RightQueryService; import com.qniao.dam.query.right.RightQueryService;
import com.qniao.das.application.DatingAgencyServiceApplicationService; import com.qniao.das.application.DatingAgencyServiceApplicationService;
import com.qniao.das.application.request.CalculateSiteActivityFeeDto; import com.qniao.das.application.request.CalculateSiteActivityFeeDto;
@ -88,6 +91,8 @@ public class OrderApplicationService extends BaseApplicationService {
private RightQueryService rightQueryService; private RightQueryService rightQueryService;
@Resource @Resource
private DatingAgencyServiceApplicationService datingAgencyServiceApplicationService; private DatingAgencyServiceApplicationService datingAgencyServiceApplicationService;
@Resource
private RewardConfigQueryService rewardConfigQueryService;
@Value("${marriage_bounty_meeting_quantity:5}") @Value("${marriage_bounty_meeting_quantity:5}")
private Integer marriageBountyMeetingQuantity; private Integer marriageBountyMeetingQuantity;
@ -190,19 +195,31 @@ public class OrderApplicationService extends BaseApplicationService {
fillMarriageBountyOrderInfo(order, productList, meetingQuantity); fillMarriageBountyOrderInfo(order, productList, meetingQuantity);
//3. 订单金额计算 //3. 订单金额计算
countOrderAmount(order, false); countOrderAmount(order, false);
//3.1. 低消确认
MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderQueryService.queryBy(order.getUserId(), order.getMiId(),
MarriageBountyOrderStatusEnum.MATCHMAKING, MarriageBountyOrderPaymentStatusEnum.PAID);
if (Objects.isNull(existMarriageBountyOrder)) {
checkMinAmount(marriageBountyOrder,order);
}
//4. 设置订单号 //4. 设置订单号
order.setOrderCode(snowFlakeUtil.getSnowflakeOrderCode()); order.setOrderCode(snowFlakeUtil.getSnowflakeOrderCode());
//5. 组装付款单信息 //5. 组装付款单信息
PaymentOrder paymentOrder = makePaymentOrder(order); PaymentOrder paymentOrder = makePaymentOrder(order);
submitOrderDomainService.handle(order, paymentOrder); submitOrderDomainService.handle(order, paymentOrder);
MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderQueryService.queryBy(order.getUserId(), order.getMiId(),
MarriageBountyOrderStatusEnum.MATCHMAKING, MarriageBountyOrderPaymentStatusEnum.PAID);
if (Objects.isNull(existMarriageBountyOrder)) { if (Objects.isNull(existMarriageBountyOrder)) {
marriageBountyOrderAggregate.init(marriageBountyOrder); marriageBountyOrderAggregate.init(marriageBountyOrder);
} }
return new UserSubmitOrderVo(order.getId(), paymentOrder.getId(), false); return new UserSubmitOrderVo(order.getId(), paymentOrder.getId(), false);
} }
private void checkMinAmount(MarriageBountyOrder marriageBountyOrder, Order order) {
RewardTypeEnum rewardType = marriageBountyOrder.getRewardType();
RewardConfig rewardConfig = rewardConfigQueryService.queryByRewardType(rewardType);
if (Objects.nonNull(rewardConfig) && rewardConfig.getRewardAmount().compareTo(order.getSettlementAmount()) > 0) {
throw new BizException("悬赏招亲发布最低" + rewardConfig.getRewardAmount().stripTrailingZeros().toPlainString() + "元");
}
}
private void handleProduct(Product product, private void handleProduct(Product product,
List<ProductSpec> productSpecList) { List<ProductSpec> productSpecList) {
Product existProduct = productQueryService.queryBy(product.getUserId(), product.getMiId(), product.getSubCategory()); Product existProduct = productQueryService.queryBy(product.getUserId(), product.getMiId(), product.getSubCategory());

Loading…
Cancel
Save