Răsfoiți Sursa

fix claude code试用车票领取记录

zoujiajian 1 an în urmă
părinte
comite
78a234e3ca

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/claudecode/ClaudeCodeUserTrialReceiveRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.claudecode;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.ClaudeCodeUserTrialReceiveRecord;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: ClaudeCodeUserTrialReceiveRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2025/8/25 12:04
+ */
+public interface ClaudeCodeUserTrialReceiveRecordMapper extends BaseMapper<ClaudeCodeUserTrialReceiveRecord> {
+}

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ClaudeCodeUserTrialReceiveRecord.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: ClaudeCodeUserTrialReceiveRecord
+ * 创建者: JavaZou
+ * 创建时间:2025/8/25 12:04
+ */
+@Getter
+@Setter
+public class ClaudeCodeUserTrialReceiveRecord extends BaseEntity{
+	private Long userId;
+
+	private Long relationId;
+}

+ 18 - 1
netflix-service/src/main/java/com/cyksj/service/gzh/factory/EventMsgService.java

@@ -12,6 +12,7 @@ import com.cyksj.config.WeChatConfig;
 import com.cyksj.dto.UserSharedDto;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.WxAppMapper;
+import com.cyksj.mapper.claudecode.ClaudeCodeUserTrialReceiveRecordMapper;
 import com.cyksj.mapper.gzh.UserGzhRelationMapper;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponRecommendMapper;
@@ -88,6 +89,8 @@ public class EventMsgService implements GzhMsgService {
 
 	private final ClaudeCodeService claudeCodeService;
 
+	private final ClaudeCodeUserTrialReceiveRecordMapper claudeCodeUserTrialReceiveRecordMapper;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@Override
@@ -396,8 +399,13 @@ public class EventMsgService implements GzhMsgService {
 					if (redisService.setNx(RedisService.key.CLAUDE_CODE_TY_DAY_CARD_KEY.getName() + user.getId(), user.getId(), RedisService.key.CLAUDE_CODE_TY_DAY_CARD_KEY.getTimeout())) {
 						//存在Claude code车票不发送体验卡
 						if (!claudeCodeService.checkClaudeCodeUser(user.getId())) {
+							Integer receiveRecord = claudeCodeUserTrialReceiveRecordMapper.selectCount(Wrappers.lambdaQuery(ClaudeCodeUserTrialReceiveRecord.class).eq(ClaudeCodeUserTrialReceiveRecord::getUserId, user.getId()));
+							if (receiveRecord > 0) {
+								return;
+							}
 							//发送claude code 体验卡
-							groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(user.getId(), Constant.DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID, 1);
+							Long relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(user.getId(), Constant.DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID, 1);
+							recordReceiveClaudeCodeRecord(user.getId(), relationId);
 						}
 					}
 				} else {
@@ -411,4 +419,13 @@ public class EventMsgService implements GzhMsgService {
 			}
 		}
 	}
+
+	public void recordReceiveClaudeCodeRecord(Long userId,Long relationId) {
+		if (relationId != null) {
+			ClaudeCodeUserTrialReceiveRecord record = new ClaudeCodeUserTrialReceiveRecord();
+			record.setUserId(userId);
+			record.setRelationId(relationId);
+			claudeCodeUserTrialReceiveRecordMapper.insert(record);
+		}
+	}
 }

+ 18 - 1
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -20,6 +20,7 @@ import com.cyksj.dto.UserSharedDto;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.channel.ChannelPopularizeMapper;
 import com.cyksj.mapper.claudecode.ClaudeCodeUserPopularizeTrialTicketRecordMapper;
+import com.cyksj.mapper.claudecode.ClaudeCodeUserTrialReceiveRecordMapper;
 import com.cyksj.mapper.corp.*;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponRecommendMapper;
@@ -153,6 +154,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
 	private final CouponRecommendMapper couponRecommendMapper;
 
+	private final ClaudeCodeUserTrialReceiveRecordMapper claudeCodeUserTrialReceiveRecordMapper;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@Override
@@ -968,8 +971,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 					if (redisService.setNx(RedisService.key.CLAUDE_CODE_TY_DAY_CARD_KEY.getName() + user.getId(), user.getId(), RedisService.key.CLAUDE_CODE_TY_DAY_CARD_KEY.getTimeout())) {
 						//存在Claude code车票不发送体验卡
 						if (!claudeCodeService.checkClaudeCodeUser(user.getId())) {
+							Integer receiveRecord = claudeCodeUserTrialReceiveRecordMapper.selectCount(Wrappers.lambdaQuery(ClaudeCodeUserTrialReceiveRecord.class).eq(ClaudeCodeUserTrialReceiveRecord::getUserId, user.getId()));
+							if (receiveRecord > 0) {
+								return;
+							}
 							//发送claude code 体验卡
-							groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(user.getId(), Constant.DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID, 1);
+							Long relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(user.getId(), Constant.DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID, 1);
+							recordReceiveClaudeCodeRecord(user.getId(), relationId);
 						}
 					}
 				} else {
@@ -983,4 +991,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 			}
 		}
 	}
+
+	public void recordReceiveClaudeCodeRecord(Long userId,Long relationId) {
+		if (relationId != null) {
+			ClaudeCodeUserTrialReceiveRecord record = new ClaudeCodeUserTrialReceiveRecord();
+			record.setUserId(userId);
+			record.setRelationId(relationId);
+			claudeCodeUserTrialReceiveRecordMapper.insert(record);
+		}
+	}
 }