|
|
@@ -327,6 +327,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final UserIpRecordMapper userIpRecordMapper;
|
|
|
|
|
|
+ private final OrderDonIndependentRenewRecordMapper independentRenewRecordMapper;
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@@ -1088,6 +1090,23 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
log.error("记录续费升级错误:{}", StringUtil.getErrorText(e));
|
|
|
}
|
|
|
}
|
|
|
+ //独立规格续费升级
|
|
|
+ if ((payRequest.getPackageId() != null || payRequest.getOriginalOrderId() != null) && sku.getNum() == 1) {
|
|
|
+ RenewUpgradePackage renewUpgradePackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
|
|
|
+ .eq(RenewUpgradePackage::getSkuId, tripsSkuId)
|
|
|
+ .apply("JSON_CONTAINS(sku_ids,'\"" + renewSkuId + "\"')")
|
|
|
+ .eq(RenewUpgradePackage::getStatus, 1)
|
|
|
+ .eq(RenewUpgradePackage::getDeleted, 1)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (renewUpgradePackage == null) {
|
|
|
+ throw BusinessRuntimeException.getInstance("续费规格不存在");
|
|
|
+ }
|
|
|
+ BigDecimal discount = renewUpgradePackage.getDiscount();
|
|
|
+ orderDon.setMoney(sku.getPrice().multiply(discount));
|
|
|
+ //独立规格续费订单记录
|
|
|
+ recordIndependentRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
|
|
|
+ }
|
|
|
+
|
|
|
//记录订单ip关联
|
|
|
recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
|
|
|
//订单金额为0 且订单为已完成 更新虚物车票
|
|
|
@@ -3891,6 +3910,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDonUpgradeRenewRecordMapper.insert(orderDonUpgradeRenewRecord);
|
|
|
}
|
|
|
|
|
|
+ private void recordIndependentRenewOrderDon(OrderDon orderDon, RenewUpgradePackage renewUpgradePackage, GroupsTrips groupsTrips) {
|
|
|
+ OrderDonIndependentRenewRecord independentRenewRecord = new OrderDonIndependentRenewRecord();
|
|
|
+ independentRenewRecord.setOrderId(orderDon.getId());
|
|
|
+ independentRenewRecord.setUserId(orderDon.getUserId());
|
|
|
+ independentRenewRecord.setPackageId(renewUpgradePackage.getId());
|
|
|
+ independentRenewRecord.setDiscount(renewUpgradePackage.getDiscount());
|
|
|
+ independentRenewRecord.setOriSkuId(groupsTrips.getSkuId());
|
|
|
+ independentRenewRecord.setRelationId(orderDon.getRelationId());
|
|
|
+ independentRenewRecordMapper.insert(independentRenewRecord);
|
|
|
+ }
|
|
|
+
|
|
|
//镜像续费升级
|
|
|
private void handleMirrorRenew(GoodsDonSku sku, OrderDon order, GroupsTrips groupsTrips, Long relationId, Date newDate) {
|
|
|
if (sku.getGoodsId() == 18 && sku.getIsMirror() && order.getOrderType() == 2) {
|