zoujiajian 11 månader sedan
förälder
incheckning
33f492c0b2

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

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

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

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

+ 4 - 2
netflix-dao/src/main/java/com/cyksj/model/entity/ClaudeCodeUserPopularizeTrialTicketRecord.java → netflix-dao/src/main/java/com/cyksj/model/entity/PopularizeTrialTicketRecord.java

@@ -5,12 +5,14 @@ import lombok.Setter;
 
 /**
  * 项目名: yhlxj11111111
- * 文件名: ClaudeCodeUserPopularizeTrialTicketRecord
+ * 文件名: PopularizeTrialTicketRecord
  * 创建者: JavaZou
  * 创建时间:2025/8/21 14:03
  */
 @Getter
 @Setter
-public class ClaudeCodeUserPopularizeTrialTicketRecord extends BaseEntity{
+public class PopularizeTrialTicketRecord extends BaseEntity{
+	private Long goodsId;
+
 	private Long userId;
 }

+ 6 - 3
netflix-service/src/main/java/com/cyksj/service/nano/impl/NanoServiceImpl.java

@@ -46,15 +46,18 @@ public class NanoServiceImpl implements NanoService {
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
 		VipUser vipUser = vipUserMapper.selectOne(Wrappers.lambdaQuery(VipUser.class).in(VipUser::getUserId, userIdList).gt(VipUser::getExpiryTime, DateTime.now()));
 		Boolean isVip = vipUser != null;
-		NanoUserQuota nanoUserQuota;
+		NanoUserQuota nanoUserQuota = null;
 		if (isVip) {
 			GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder()
 					.field(GroupsRelationView::getIsVip, Boolean.TRUE)
 					.field(GroupsRelationView::getUserId, userIdList).op(Operator.InList)
 					.field(GroupsRelationView::getGoodsId, Constant.NANO_GOODS_ID)
 					.build());
-			nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getRelationId, groupsRelationView.getId()).last("limit 1"));
-		} else {
+			if (groupsRelationView != null) {
+				nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getRelationId, groupsRelationView.getId()).last("limit 1"));
+			}
+		}
+		if (nanoUserQuota == null) {
 			nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).in(NanoUserQuota::getUid, userIdList).last("limit 1"));
 		}
 		if (nanoUserQuota != null) {

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/user/UserService.java

@@ -22,7 +22,7 @@ public interface UserService extends IService<User> {
 
 	User saveAuth(GzhOAuth2UserInfo userinfo, AuthRedirect re, User.RegisterEnv registerEnv) throws Exception;
 
-	UserWhoami whoami(long userId, Boolean ccCode);
+	UserWhoami whoami(long userId, Long popularizeGoodsId);
 
     User getSyncUser(String openId, String unionId, WxSyncLog wxSyncLog);
 

+ 37 - 14
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -19,7 +19,7 @@ import com.cyksj.config.wxlogin.WxOpenPlatYHLXLoginConfig;
 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.PopularizeTrialTicketRecordMapper;
 import com.cyksj.mapper.claudecode.ClaudeCodeUserTrialReceiveRecordMapper;
 import com.cyksj.mapper.corp.*;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
@@ -151,7 +151,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
 	private final ClaudeCodeService claudeCodeService;
 
-	private final ClaudeCodeUserPopularizeTrialTicketRecordMapper claudeCodeUserPopularizeTrialTicketRecordMapper;
+	private final PopularizeTrialTicketRecordMapper popularizeTrialTicketRecordMapper;
 
 	private final CouponRecommendMapper couponRecommendMapper;
 
@@ -265,8 +265,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 		return user;
 	}
 
+	/**
+	 *
+	 * @param popularizeGoodsId 独立站推广商品id
+	 */
 	@Override
-	public UserWhoami whoami(long userId, Boolean ccCode) {
+	public UserWhoami whoami(long userId, Long popularizeGoodsId) {
 		User user = this.getById(userId);
 		Assert.notNull(user, "业务处理失败,请联系客服");
 		UserWhoami userWhoami = new UserWhoami();
@@ -319,21 +323,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 				.in(OrderDon::getUserId, userIdList)
 				.notIn(OrderDon::getStatus, Constant.noOrderStatus));
 		userWhoami.setIsPay(selectCount > 0);
-		if (ccCode != null) {
-			Number number = beanSearcher.searchCount(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getUserId, userIdList).op(Operator.InList).field(GroupsRelationView::getSkuId, Constant.DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID).field(GroupsRelationView::getGoodsId, Constant.CLAUDE_CODE_GOODS_ID).build());
-			userWhoami.setCcCode(number.intValue() > 0);
-			Integer selectCount1 = claudeCodeUserPopularizeTrialTicketRecordMapper.selectCount(Wrappers.lambdaQuery(ClaudeCodeUserPopularizeTrialTicketRecord.class).in(ClaudeCodeUserPopularizeTrialTicketRecord::getUserId, userIdList));
-			if (selectCount1 == 0) {
-				ClaudeCodeUserPopularizeTrialTicketRecord record = new ClaudeCodeUserPopularizeTrialTicketRecord();
-				record.setUserId(userId);
-				claudeCodeUserPopularizeTrialTicketRecordMapper.insert(record);
-			}
-			userWhoami.setTc(selectCount1 == 0);
+		//推广信息
+		if (popularizeGoodsId != null) {
+			setPopularizeUserInfo(popularizeGoodsId, userIdList, userId, userWhoami);
 		}
 		return userWhoami;
 	}
 
-    @Override
+	@Override
     public User getSyncUser(String openId, String unionId, WxSyncLog wxSyncLog) {
         User user;
         //迁移公众号之后同步授权后信息
@@ -1038,4 +1035,30 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 			nanoUserTrialReceiveRecordMapper.insert(record);
 		}
 	}
+
+	/**
+	 * 独立站渠道推广弹窗
+	 */
+	private void setPopularizeUserInfo(Long popularizeGoodsId, List<Long> userIdList, Long userId, UserWhoami userWhoami) {
+		Long trialSkuId = null;
+		if (popularizeGoodsId == Constant.CLAUDE_CODE_GOODS_ID) {
+			trialSkuId = Constant.DISTRIBUTE_CLAUDE_CODE_TRIAL_SKU_ID;
+		}
+		if (popularizeGoodsId == Constant.NANO_GOODS_ID) {
+			trialSkuId = Constant.DISTRIBUTE_NANO_TRIAL_SKU_ID;
+		}
+		if (trialSkuId == null) {
+			return;
+		}
+		Number number = beanSearcher.searchCount(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getUserId, userIdList).op(Operator.InList).field(GroupsRelationView::getSkuId, trialSkuId).field(GroupsRelationView::getGoodsId, popularizeGoodsId).build());
+		userWhoami.setCcCode(number.intValue() > 0);
+		Integer selectCount1 = popularizeTrialTicketRecordMapper.selectCount(Wrappers.lambdaQuery(PopularizeTrialTicketRecord.class).eq(PopularizeTrialTicketRecord::getGoodsId, popularizeGoodsId).in(PopularizeTrialTicketRecord::getUserId, userIdList));
+		if (selectCount1 == 0) {
+			PopularizeTrialTicketRecord record = new PopularizeTrialTicketRecord();
+			record.setGoodsId(popularizeGoodsId);
+			record.setUserId(userId);
+			popularizeTrialTicketRecordMapper.insert(record);
+		}
+		userWhoami.setTc(selectCount1 == 0);
+	}
 }

+ 2 - 2
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -106,10 +106,10 @@ public class UserController {
     private final UserGalaxyCoinRecordMapper userGalaxyCoinRecordMapper;
 
     @GetMapping(value = "/wx/whoami")
-    public Result<UserWhoami> whoami(Boolean ccCode) {
+    public Result<UserWhoami> whoami(Long popularizeGoodsId) {
         long userId = StpUserUtil.getLoginIdAsLong();
 
-        UserWhoami userWhoami = userService.whoami(userId, ccCode);
+        UserWhoami userWhoami = userService.whoami(userId, popularizeGoodsId);
 
         return GatewayResponse.SUCCESS.newBuilder().toResult(userWhoami);
     }