zoujiajian преди 2 години
родител
ревизия
12ad14d3dd

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/mapper/OrderDonRenewRecordMapper.java

@@ -15,5 +15,5 @@ import java.util.List;
  */
 public interface OrderDonRenewRecordMapper extends BaseMapper<OrderDonRenewRecord> {
 
-	OrderDon getOtherRenewSku(@Param("orderId") Long orderId, @Param("months") Integer months, @Param("userIds") List<Long> userIds);
+	OrderDon getOtherRenewSku(@Param("orderId") Long orderId, @Param("relationId") Long relationId, @Param("userIds") List<Long> userIds);
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChatgptUser.java

@@ -92,11 +92,13 @@ public class ChatgptUser extends BaseEntity {
     /**
      * 续费升级订单id
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long renewOrderId;
 
     /**
      * 目前续费规格id
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long renewSkuId;
 
     /**

+ 2 - 3
netflix-dao/src/main/resources/mapper/OrderDonRenewRecordMapper.xml

@@ -4,14 +4,13 @@
 
 
     <select id="getOtherRenewSku" resultType="com.cyksj.model.entity.OrderDon">
-        select o.* from (select order_id from order_don_renew_record where id != #{id}
+        select o.* from (select order_id from order_don_renew_record where id != #{orderId}
         and user_id in
         <foreach collection="userIds" item="item" open="(" separator="," close=")">
             #{item}
         </foreach>) orr inner join order_don o on o.id = orr.order_id
         and o.status not in ('close','noPayment','refund')
-        and o.order_type = 2
-
+        and o.order_type = 2 and o.relation_id = #{relationId}
         inner join goods_don_sku sku on sku.id = o.sku_id
     </select>
 </mapper>

+ 8 - 6
netflix-service/src/main/java/com/cyksj/service/mange/impl/MirrorUserCleatServiceImpl.java

@@ -80,21 +80,21 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
 			ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class)
 					.eq(ChatgptUser::getRelationId, orderDon.getRelationId())
 					.last("limit 1"));
-			chatgptUser.setRenewSkuId(null);
-			chatgptUser.setRenewOrderId(null);
 			Long presentRenewSkuId = chatgptUser.getRenewSkuId();
 			//存在不同升级套餐
 			GoodsDonSku presentRenewSku = skuMapper.selectById(presentRenewSkuId);
 			if (!ObjectUtil.equal(presentRenewSkuId, skuId)) {
 				throw BusinessRuntimeException.getInstance("请先退掉用户目前续费升级的{}规格", presentRenewSku.getSpecVal());
 			} else {
-				GroupsRelation relation = groupsRelationMapper.selectById(Wrappers.lambdaQuery(GroupsRelation.class)
-						.eq(GroupsRelation::getId, orderDon.getRelationId()));
+				GroupsRelation relation = groupsRelationMapper.selectById(orderDon.getRelationId());
 				GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 				GoodsDonSku finalSku = skuMapper.selectById(groupsTrips.getSkuId());
 				//是否存在其他续费升级
-				OrderDon otherRenewOrderDon = orderDonRenewRecordMapper.getOtherRenewSku(orderDon.getId(), presentRenewSku.getMonths(), userIdList);
-				GoodsDonSku otherRenewSku = skuMapper.selectById(otherRenewOrderDon.getSkuId());
+				OrderDon otherRenewOrderDon = orderDonRenewRecordMapper.getOtherRenewSku(orderDon.getId(), relation.getId(), userIdList);
+				GoodsDonSku otherRenewSku = null;
+				if (otherRenewOrderDon != null) {
+					otherRenewSku = skuMapper.selectById(otherRenewOrderDon.getSkuId());
+				}
 				GoodsDonSku upgradeOrderDonSku = null;
 				Date renewExpiryTime = null;
 				//是否存在套餐升级包
@@ -114,6 +114,8 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
 					log.info("续费升级订单退款,relation_id:{}存在套餐升级", orderDon.getUserId());
 					finalSku = upgradeOrderDonSku;
 				}
+				chatgptUser.setRenewSkuId(null);
+				chatgptUser.setRenewOrderId(null);
 				//续费升级
 				if (otherRenewSku != null) {
 					finalSku = otherRenewSku;