|
@@ -358,6 +358,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
private final ZfbShopOrderDayLimitMapper zfbShopOrderDayLimitMapper;
|
|
private final ZfbShopOrderDayLimitMapper zfbShopOrderDayLimitMapper;
|
|
|
|
|
|
|
|
|
|
+ private final ClaudeUserMapper claudeUserMapper;
|
|
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
@@ -1195,35 +1197,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
|
|
corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
|
|
|
}
|
|
}
|
|
|
- //GPT续费升级 目前升级套餐续费
|
|
|
|
|
- if (orderDon.getGoodsId() == 18 && sku.getIsMirror()) {
|
|
|
|
|
- try {
|
|
|
|
|
- //记录续费升级订单 目前升级规格续费
|
|
|
|
|
- ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
|
|
- .eq(ChatgptUser::getRelationId, orderDon.getRelationId())
|
|
|
|
|
- .last("limit 1"));
|
|
|
|
|
- if (chatgptUser != null && tripsSkuId.intValue() != renewSkuId.intValue()) {
|
|
|
|
|
- //是续费升级的规格
|
|
|
|
|
- //全部归纳到续费升级的关联订单
|
|
|
|
|
- if (chatgptUser.getLimitNum() == sku.getGptLimitNum() && chatgptUser.getLimitTime() == sku.getGptLimitTime()) {
|
|
|
|
|
- renewUpgradeIndependentPackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
|
|
|
|
|
- .eq(RenewUpgradePackage::getSkuId, tripsSkuId)
|
|
|
|
|
- .apply("JSON_CONTAINS(upgrade_sku_ids,'\"" + renewSkuId + "\"')")
|
|
|
|
|
- .eq(RenewUpgradePackage::getStatus, 1)
|
|
|
|
|
- .eq(RenewUpgradePackage::getDeleted, 1)
|
|
|
|
|
- .last("limit 1"));
|
|
|
|
|
- //无优惠折扣 但订单可使用优惠码
|
|
|
|
|
- RenewUpgradePackage renewUpgradePackage = new RenewUpgradePackage();
|
|
|
|
|
- renewUpgradePackage.setId(renewUpgradeIndependentPackage.getId());
|
|
|
|
|
- renewUpgradePackage.setDiscount(BigDecimal.ONE);
|
|
|
|
|
- recordRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("记录续费升级错误:{}", StringUtil.getErrorText(e));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
|
|
+ //处理镜像规格续费目前升级的规格
|
|
|
|
|
+ handlerMirrorRenewPresentPackage(orderDon, sku, tripsSkuId, renewSkuId, groupsTrips);
|
|
|
//记录订单ip关联
|
|
//记录订单ip关联
|
|
|
recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
|
|
recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
|
|
|
if (renewUpgradeIndependentPackage != null) {
|
|
if (renewUpgradeIndependentPackage != null) {
|
|
@@ -4133,6 +4109,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDon.setOriMoney(price);
|
|
orderDon.setOriMoney(price);
|
|
|
orderDon.setRealMoney(price);
|
|
orderDon.setRealMoney(price);
|
|
|
BigDecimal discountPrice = price.multiply(renewUpgradePackage.getDiscount());
|
|
BigDecimal discountPrice = price.multiply(renewUpgradePackage.getDiscount());
|
|
|
|
|
+ //去掉小数
|
|
|
|
|
+ if (orderDon.getGoodsId() == 75) {
|
|
|
|
|
+ discountPrice = discountPrice.divide(BigDecimal.valueOf(100), 0, RoundingMode.DOWN).multiply(BigDecimal.valueOf(100));
|
|
|
|
|
+ }
|
|
|
orderDon.setMoney(discountPrice);
|
|
orderDon.setMoney(discountPrice);
|
|
|
|
|
|
|
|
StringBuilder payTitle = new StringBuilder();
|
|
StringBuilder payTitle = new StringBuilder();
|
|
@@ -4405,7 +4385,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
//镜像续费升级
|
|
//镜像续费升级
|
|
|
private void handleMirrorRenew(GoodsDonSku sku, OrderDon order, GroupsTrips groupsTrips, Long relationId, Date newDate) {
|
|
private void handleMirrorRenew(GoodsDonSku sku, OrderDon order, GroupsTrips groupsTrips, Long relationId, Date newDate) {
|
|
|
- if (sku.getGoodsId() == 18 && sku.getIsMirror() && order.getOrderType() == 2) {
|
|
|
|
|
|
|
+ if (sku.getGoodsId() == Constant.GPT_PLUS_GID && sku.getIsMirror() && order.getOrderType() == 2) {
|
|
|
OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
|
.eq(OrderDonRenewRecord::getOrderId, order.getId())
|
|
.eq(OrderDonRenewRecord::getOrderId, order.getId())
|
|
|
.last("limit 1"));
|
|
.last("limit 1"));
|
|
@@ -4429,7 +4409,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
if (chatgptUser.getRenewSkuId() != null && chatgptUser.getRenewSkuId().equals(order.getSkuId())) {
|
|
if (chatgptUser.getRenewSkuId() != null && chatgptUser.getRenewSkuId().equals(order.getSkuId())) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- log.info("用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
|
|
|
|
|
|
|
+ log.info("GPT用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
|
|
|
chatgptUser.setLimitTime(sku.getGptLimitTime());
|
|
chatgptUser.setLimitTime(sku.getGptLimitTime());
|
|
|
chatgptUser.setLimitNum(sku.getGptLimitNum());
|
|
chatgptUser.setLimitNum(sku.getGptLimitNum());
|
|
|
//记录续费升级过期的时间
|
|
//记录续费升级过期的时间
|
|
@@ -4454,6 +4434,43 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
chatgptUserMapper.updateById(chatgptUser);
|
|
chatgptUserMapper.updateById(chatgptUser);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ //claude pro续费升级
|
|
|
|
|
+ if (sku.getGoodsId() == Constant.CLAUDE_PRO_GID && sku.getIsMirror() && order.getOrderType() == 2) {
|
|
|
|
|
+ OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
|
|
|
+ .eq(OrderDonRenewRecord::getOrderId, order.getId())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (orderDonRenewRecord != null) {
|
|
|
|
|
+ //升级gptUser次数
|
|
|
|
|
+ ClaudeUser claudeUser = claudeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeUser.class)
|
|
|
|
|
+ .eq(ClaudeUser::getRelationId, relationId)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (claudeUser == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ //同规格续费新或者同属性低规格 无需更新
|
|
|
|
|
+ if (!ObjectUtil.equal(groupsTrips.getSkuId(), order.getSkuId())) {
|
|
|
|
|
+ Long gtSkuId = groupsTrips.getSkuId();
|
|
|
|
|
+ GoodsDonSku groupsSku = goodsDonSkuMapper.selectById(gtSkuId);
|
|
|
|
|
+ //同属性 低规格 只增加车票时长
|
|
|
|
|
+ if (sku.getGptLimitNum() <= groupsSku.getGptLimitNum()) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ //同规格续费不处理
|
|
|
|
|
+ if (claudeUser.getRenewSkuId() != null && claudeUser.getRenewSkuId().equals(order.getSkuId())) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("CLAUDE PRO用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
|
|
|
|
|
+ claudeUser.setLimitTime(sku.getGptLimitTime());
|
|
|
|
|
+ claudeUser.setLimitNum(sku.getGptLimitNum());
|
|
|
|
|
+ //记录续费升级过期的时间
|
|
|
|
|
+ claudeUser.setRenewExpiryTime(newDate);
|
|
|
|
|
+ claudeUser.setRenewOrderId(order.getId());
|
|
|
|
|
+ claudeUser.setRenewSkuId(order.getSkuId());
|
|
|
|
|
+ claudeUserMapper.updateById(claudeUser);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -4513,4 +4530,58 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 处理镜像车票续费升级后的规格
|
|
|
|
|
+ */
|
|
|
|
|
+ private void handlerMirrorRenewPresentPackage(OrderDon orderDon, GoodsDonSku sku, Long tripsSkuId, Long renewSkuId, GroupsTrips groupsTrips) {
|
|
|
|
|
+ //GPT续费升级 目前升级套餐续费
|
|
|
|
|
+ //Claude pro
|
|
|
|
|
+ if ((orderDon.getGoodsId() == 18 || orderDon.getGoodsId() == 75) && sku.getIsMirror()) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ //记录续费升级订单 目前升级规格续费
|
|
|
|
|
+ Integer limitNum = null;
|
|
|
|
|
+ Long limitTime = null;
|
|
|
|
|
+ if (orderDon.getGoodsId() == 18) {
|
|
|
|
|
+ ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
|
|
+ .eq(ChatgptUser::getRelationId, orderDon.getRelationId())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (chatgptUser == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ limitNum = chatgptUser.getLimitNum();
|
|
|
|
|
+ limitTime = chatgptUser.getLimitTime();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (orderDon.getGoodsId() == 75) {
|
|
|
|
|
+ ClaudeUser claudeUser = claudeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeUser.class)
|
|
|
|
|
+ .eq(ClaudeUser::getRelationId, orderDon.getRelationId())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (claudeUser == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ limitNum = claudeUser.getLimitNum();
|
|
|
|
|
+ limitTime = claudeUser.getLimitTime();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (tripsSkuId.intValue() != renewSkuId.intValue()) {
|
|
|
|
|
+ //是续费升级的规格
|
|
|
|
|
+ //全部归纳到续费升级的关联订单
|
|
|
|
|
+ if (limitNum == sku.getGptLimitNum() && limitTime == sku.getGptLimitTime()) {
|
|
|
|
|
+ RenewUpgradePackage upgradePackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
|
|
|
|
|
+ .eq(RenewUpgradePackage::getSkuId, tripsSkuId)
|
|
|
|
|
+ .apply("JSON_CONTAINS(upgrade_sku_ids,'\"" + renewSkuId + "\"')")
|
|
|
|
|
+ .eq(RenewUpgradePackage::getStatus, 1)
|
|
|
|
|
+ .eq(RenewUpgradePackage::getDeleted, 1)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ //无优惠折扣 但订单可使用优惠码
|
|
|
|
|
+ RenewUpgradePackage renewUpgradePackage = new RenewUpgradePackage();
|
|
|
|
|
+ renewUpgradePackage.setId(upgradePackage.getId());
|
|
|
|
|
+ renewUpgradePackage.setDiscount(BigDecimal.ONE);
|
|
|
|
|
+ recordRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("记录续费升级错误:{}", StringUtil.getErrorText(e));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|