|
@@ -5464,8 +5464,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
BigDecimal price = upgradeSku.getPrice();
|
|
BigDecimal price = upgradeSku.getPrice();
|
|
|
orderDon.setOriMoney(price);
|
|
orderDon.setOriMoney(price);
|
|
|
orderDon.setRealMoney(price);
|
|
orderDon.setRealMoney(price);
|
|
|
- BigDecimal discountPrice = price.subtract(deductMoney);
|
|
|
|
|
- orderDon.setMoney(discountPrice.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : discountPrice);
|
|
|
|
|
|
|
+ BigDecimal discountPrice = getCodexDeductUpgradeDiscountPrice(relationId, userIdList, upgradeSku, price);
|
|
|
|
|
+ BigDecimal payMoney = discountPrice.subtract(deductMoney);
|
|
|
|
|
+ orderDon.setMoney(payMoney.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : payMoney);
|
|
|
orderDon.setPayTitle(goodsDon.getTitle() + upgradeSku.getSpecVal());
|
|
orderDon.setPayTitle(goodsDon.getTitle() + upgradeSku.getSpecVal());
|
|
|
orderDon.setType(OrderDon.Type.ALI_PAY);
|
|
orderDon.setType(OrderDon.Type.ALI_PAY);
|
|
|
orderDon.setOrderNo(SEQUENCE.nextId().toString());
|
|
orderDon.setOrderNo(SEQUENCE.nextId().toString());
|
|
@@ -5473,7 +5474,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
//虚拟商品订单,是否是分销订单
|
|
//虚拟商品订单,是否是分销订单
|
|
|
setDistributeOrderMark(orderDon, goodsDon.getType(), userId);
|
|
setDistributeOrderMark(orderDon, goodsDon.getType(), userId);
|
|
|
//存在银河币
|
|
//存在银河币
|
|
|
- deductGalaxyCoinPayOrderMoney(orderDon, discountPrice, payReq.getGalaxyCoin(), user);
|
|
|
|
|
|
|
+ deductGalaxyCoinPayOrderMoney(orderDon, orderDon.getMoney(), payReq.getGalaxyCoin(), user);
|
|
|
//存在余额
|
|
//存在余额
|
|
|
deductBalancePayOrderMoney(orderDon, payReq.getBalance(), user);
|
|
deductBalancePayOrderMoney(orderDon, payReq.getBalance(), user);
|
|
|
GroupsRelation relation = codexService.getClaudeCodeRelation(userId, upgradeSku);
|
|
GroupsRelation relation = codexService.getClaudeCodeRelation(userId, upgradeSku);
|
|
@@ -5506,6 +5507,37 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
return orderDon;
|
|
return orderDon;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private BigDecimal getCodexDeductUpgradeDiscountPrice(Long relationId, List<Long> userIdList, GoodsDonSku upgradeSku, BigDecimal price) {
|
|
|
|
|
+ GroupsRelation relation = groupsRelationMapper.selectById(relationId);
|
|
|
|
|
+ if (relation == null) {
|
|
|
|
|
+ return price;
|
|
|
|
|
+ }
|
|
|
|
|
+ GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
|
|
|
+ if (groupsTrips == null) {
|
|
|
|
|
+ return price;
|
|
|
|
|
+ }
|
|
|
|
|
+ Long presentSkuId = groupsTrips.getSkuId();
|
|
|
|
|
+ CodexUser codexUser = codexUserMapper.selectOne(Wrappers.lambdaQuery(CodexUser.class)
|
|
|
|
|
+ .eq(CodexUser::getRelationId, relationId)
|
|
|
|
|
+ .in(CodexUser::getUserId, userIdList)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (codexUser != null && codexUser.getRenewSkuId() != null && codexUser.getRenewSkuId() > 0) {
|
|
|
|
|
+ presentSkuId = codexUser.getRenewSkuId();
|
|
|
|
|
+ }
|
|
|
|
|
+ RenewUpgradePackage renewUpgradePackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
|
|
|
|
|
+ .eq(RenewUpgradePackage::getGoodsId, Constant.CODEX_GOODS_ID)
|
|
|
|
|
+ .eq(RenewUpgradePackage::getSkuId, presentSkuId)
|
|
|
|
|
+ .apply("JSON_CONTAINS(upgrade_sku_ids,'\"" + upgradeSku.getId() + "\"')")
|
|
|
|
|
+ .eq(RenewUpgradePackage::getStatus, 1)
|
|
|
|
|
+ .eq(RenewUpgradePackage::getDeleted, 1)
|
|
|
|
|
+ .orderByAsc(RenewUpgradePackage::getDiscount)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (renewUpgradePackage == null || renewUpgradePackage.getDiscount() == null) {
|
|
|
|
|
+ return price;
|
|
|
|
|
+ }
|
|
|
|
|
+ return price.multiply(renewUpgradePackage.getDiscount());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public OrderDon userBenefitsSubmit(OrderPayRequest orderPayRequest) throws Exception {
|
|
public OrderDon userBenefitsSubmit(OrderPayRequest orderPayRequest) throws Exception {
|
|
|
Long userId = orderPayRequest.getUserId();
|
|
Long userId = orderPayRequest.getUserId();
|