|
@@ -323,6 +323,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
|
|
private final OrderDonPosterRelateMapper orderDonPosterRelateMapper;
|
|
private final OrderDonPosterRelateMapper orderDonPosterRelateMapper;
|
|
|
|
|
|
|
|
|
|
+ private final OrderDonUpgradeRenewRecordMapper orderDonUpgradeRenewRecordMapper;
|
|
|
|
|
+
|
|
|
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)
|
|
@@ -1049,6 +1051,43 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
|
|
corpInteractiveUserOrderRelationMapper.insert(corpInteractiveUserOrderRelation);
|
|
|
}
|
|
}
|
|
|
|
|
+ //GPT续费升级 目前升级套餐续费
|
|
|
|
|
+ if ((payRequest.getPackageId() != null || payRequest.getOriginalOrderId() != null) && 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) {
|
|
|
|
|
+ //是续费升级的规格
|
|
|
|
|
+ if (payRequest.getOriginalOrderId() != null && chatgptUser.getRenewSkuId() != null && chatgptUser.getRenewSkuId().intValue() == orderDon.getSkuId()) {
|
|
|
|
|
+ OrderDonRenewRecord orderDonRenewRecord = orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
|
|
|
|
|
+ .eq(OrderDonRenewRecord::getOrderId, payRequest.getOriginalOrderId()));
|
|
|
|
|
+ //无优惠折扣 但订单可使用优惠码
|
|
|
|
|
+ RenewUpgradePackage renewUpgradePackage = new RenewUpgradePackage();
|
|
|
|
|
+ renewUpgradePackage.setId(orderDonRenewRecord.getPackageId());
|
|
|
|
|
+ renewUpgradePackage.setDiscount(BigDecimal.ONE);
|
|
|
|
|
+ recordRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (payRequest.getPackageId() != null && chatgptUser.getPackageId() != null && chatgptUser.getPackageId().intValue() == payRequest.getPackageId().intValue()) {
|
|
|
|
|
+ UpgradeOrderDon upgradeOrderDon = upgradeOrderDonMapper.selectOne(Wrappers.lambdaQuery(UpgradeOrderDon.class)
|
|
|
|
|
+ .eq(UpgradeOrderDon::getRelationId, orderDon.getRelationId())
|
|
|
|
|
+ .eq(UpgradeOrderDon::getPackageId, payRequest.getPackageId())
|
|
|
|
|
+ .in(UpgradeOrderDon::getUserId, userIdList)
|
|
|
|
|
+ .eq(UpgradeOrderDon::getStatus, UpgradeOrderDon.Status.complete)
|
|
|
|
|
+ .orderByDesc(UpgradeOrderDon::getId)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (upgradeOrderDon != null) {
|
|
|
|
|
+ recordUpgradeRenewOrderDon(orderDon, upgradeOrderDon.getPackageId(), groupsTrips);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("记录续费升级错误:{}", StringUtil.getErrorText(e));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //记录订单ip关联
|
|
|
|
|
+ recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
|
|
|
//订单金额为0 且订单为已完成 更新虚物车票
|
|
//订单金额为0 且订单为已完成 更新虚物车票
|
|
|
if (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0) {
|
|
if (orderDon.getMoney().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
OrderDon updateOrder = orderDonMapper.selectById(orderDon.getId());
|
|
OrderDon updateOrder = orderDonMapper.selectById(orderDon.getId());
|
|
@@ -1073,8 +1112,6 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
}
|
|
|
return updateOrder;
|
|
return updateOrder;
|
|
|
}
|
|
}
|
|
|
- //记录订单ip关联
|
|
|
|
|
- recordOrderDonLocationRelate(orderDon.getId(), payRequest.getIp());
|
|
|
|
|
return orderDon;
|
|
return orderDon;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -3831,34 +3868,62 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDonRenewRecord.setPackageId(renewUpgradePackage.getId());
|
|
orderDonRenewRecord.setPackageId(renewUpgradePackage.getId());
|
|
|
orderDonRenewRecord.setDiscount(renewUpgradePackage.getDiscount());
|
|
orderDonRenewRecord.setDiscount(renewUpgradePackage.getDiscount());
|
|
|
orderDonRenewRecord.setOriSkuId(groupsTrips.getSkuId());
|
|
orderDonRenewRecord.setOriSkuId(groupsTrips.getSkuId());
|
|
|
|
|
+ orderDonRenewRecord.setOrderType(orderDon.getOrderType());
|
|
|
orderDonRenewRecordMapper.insert(orderDonRenewRecord);
|
|
orderDonRenewRecordMapper.insert(orderDonRenewRecord);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 记录套餐升级 续费订单
|
|
|
|
|
+ */
|
|
|
|
|
+ private void recordUpgradeRenewOrderDon(OrderDon orderDon, Long packageId, GroupsTrips groupsTrips) {
|
|
|
|
|
+ OrderDonUpgradeRenewRecord orderDonUpgradeRenewRecord = new OrderDonUpgradeRenewRecord();
|
|
|
|
|
+ orderDonUpgradeRenewRecord.setOrderId(orderDon.getId());
|
|
|
|
|
+ orderDonUpgradeRenewRecord.setUserId(orderDon.getUserId());
|
|
|
|
|
+ orderDonUpgradeRenewRecord.setPackageId(packageId);
|
|
|
|
|
+ orderDonUpgradeRenewRecord.setOriSkuId(groupsTrips.getSkuId());
|
|
|
|
|
+ orderDonUpgradeRenewRecordMapper.insert(orderDonUpgradeRenewRecord);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//镜像续费升级
|
|
//镜像续费升级
|
|
|
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.getIsMirror() && order.getOrderType() == 2) {
|
|
|
|
|
|
|
+ if (sku.getGoodsId() == 18 && 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"));
|
|
|
|
|
+ //升级gptUser次数
|
|
|
|
|
+ ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
|
|
+ .eq(ChatgptUser::getRelationId, relationId)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (chatgptUser == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
if (orderDonRenewRecord != null) {
|
|
if (orderDonRenewRecord != null) {
|
|
|
//同规格续费无需更新
|
|
//同规格续费无需更新
|
|
|
if (!ObjectUtil.equal(groupsTrips.getSkuId(), order.getSkuId())) {
|
|
if (!ObjectUtil.equal(groupsTrips.getSkuId(), order.getSkuId())) {
|
|
|
log.info("用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
|
|
log.info("用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
|
|
|
- //升级gptUser次数
|
|
|
|
|
- ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
|
|
- .eq(ChatgptUser::getRelationId, relationId)
|
|
|
|
|
- .last("limit 1"));
|
|
|
|
|
- if (chatgptUser != null) {
|
|
|
|
|
- chatgptUser.setLimitTime(sku.getGptLimitTime());
|
|
|
|
|
- chatgptUser.setLimitNum(sku.getGptLimitNum());
|
|
|
|
|
- //记录续费升级过期的时间
|
|
|
|
|
- chatgptUser.setRenewExpiryTime(newDate);
|
|
|
|
|
- chatgptUser.setRenewOrderId(order.getId());
|
|
|
|
|
- chatgptUser.setRenewSkuId(order.getSkuId());
|
|
|
|
|
- chatgptUserMapper.updateById(chatgptUser);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ chatgptUser.setLimitTime(sku.getGptLimitTime());
|
|
|
|
|
+ chatgptUser.setLimitNum(sku.getGptLimitNum());
|
|
|
|
|
+ //记录续费升级过期的时间
|
|
|
|
|
+ chatgptUser.setRenewExpiryTime(newDate);
|
|
|
|
|
+ chatgptUser.setRenewOrderId(order.getId());
|
|
|
|
|
+ chatgptUser.setRenewSkuId(order.getSkuId());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ //套餐升级 续费订单
|
|
|
|
|
+ OrderDonUpgradeRenewRecord orderDonUpgradeRenewRecord = null;
|
|
|
|
|
+ if (orderDonRenewRecord == null) {
|
|
|
|
|
+ orderDonUpgradeRenewRecord = orderDonUpgradeRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonUpgradeRenewRecord.class)
|
|
|
|
|
+ .eq(OrderDonUpgradeRenewRecord::getOrderId, order.getId())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (orderDonUpgradeRenewRecord != null) {
|
|
|
|
|
+ Date clearPackageTime = chatgptUser.getClearPackageTime();
|
|
|
|
|
+ clearPackageTime = DateUtil.offsetMonth(clearPackageTime, sku.getMonths());
|
|
|
|
|
+ log.info("GPT镜像套餐升级,user套餐升级过期时间:{} ---> {}", chatgptUser.getRenewExpiryTime(), clearPackageTime);
|
|
|
|
|
+ chatgptUser.setClearPackageTime(clearPackageTime);
|
|
|
|
|
+ }
|
|
|
|
|
+ chatgptUserMapper.updateById(chatgptUser);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|