Parcourir la source

CLUADE PRO续费升级

zoujiajian il y a 1 an
Parent
commit
0a68b34ac8

+ 10 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -450,4 +450,14 @@ public interface Constant {
 	 * 镜像店铺用户头像
 	 */
 	String USER_MIRROR_SHOP_USER_DEFAULT_IMG = "https://cdn2.yicanggongyi.com/picture/08944798d95e42f62f3bb63d8109dcf1-1732169951288.png";
+
+	/**
+	 * Claude pro
+	 */
+	Long CLAUDE_PRO_GID = 75L;
+
+	/**
+	 * GPT PLUS
+	 */
+	Long GPT_PLUS_GID = 18L;
 }

+ 19 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ClaudeUser.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.ejlchina.searcher.bean.DbField;
 import lombok.Data;
@@ -49,4 +50,22 @@ public class ClaudeUser extends BaseEntity {
      * 是否封禁
      */
     private Boolean isBlock;
+
+    /**
+     * 续费升级订单id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long renewOrderId;
+
+    /**
+     * 目前续费规格id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long renewSkuId;
+
+    /**
+     * 续费升级过期时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Date renewExpiryTime;
 }

+ 41 - 2
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -350,6 +350,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 	private final UserMirrorShopDistributeWaitingSendPointsMapper userMirrorShopDistributeWaitingSendPointsMapper;
 
+	private final ClaudeUserMapper claudeUserMapper;
+
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 
 	@Transactional(rollbackFor = Throwable.class)
@@ -4369,7 +4371,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 	//镜像续费升级
 	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)
 					.eq(OrderDonRenewRecord::getOrderId, order.getId())
 					.last("limit 1"));
@@ -4393,7 +4395,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 					if (chatgptUser.getRenewSkuId() != null && chatgptUser.getRenewSkuId().equals(order.getSkuId())) {
 						return;
 					}
-					log.info("用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
+					log.info("GPT用户续费升级订单skuId:{}将用户车票relationId:{}套餐续费升级", order.getSkuId(), relationId);
 					chatgptUser.setLimitTime(sku.getGptLimitTime());
 					chatgptUser.setLimitNum(sku.getGptLimitNum());
 					//记录续费升级过期的时间
@@ -4418,6 +4420,43 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			}
 			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.getMonths() < groupsSku.getMonths() && 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);
+				}
+			}
+		}
 	}
 
 	/**