zoujiajian il y a 11 mois
Parent
commit
82973c9032

+ 31 - 0
netflix-service/src/main/java/com/cyksj/service/gzh/factory/EventMsgService.java

@@ -1,5 +1,7 @@
 package com.cyksj.service.gzh.factory;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.lang.UUID;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,6 +12,8 @@ import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
 import com.cyksj.config.WeChatConfig;
 import com.cyksj.dto.UserSharedDto;
+import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.mapper.NanoUserQuotaMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.WxAppMapper;
 import com.cyksj.mapper.claudecode.ClaudeCodeUserTrialReceiveRecordMapper;
@@ -94,6 +98,10 @@ public class EventMsgService implements GzhMsgService {
 
 	private final NanoUserTrialReceiveRecordMapper nanoUserTrialReceiveRecordMapper;
 
+	private final NanoUserQuotaMapper nanoUserQuotaMapper;
+
+	private final GoodsDonSkuMapper goodsDonSkuMapper;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@Override
@@ -446,6 +454,8 @@ public class EventMsgService implements GzhMsgService {
 							//发送nano 体验卡
 							Long relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(user.getId(), Constant.DISTRIBUTE_NANO_TRIAL_SKU_ID, 1);
 							recordReceiveNanoRecord(user.getId(), relationId);
+							//创建nano user
+							createNanoUser(user.getId(), relationId, goodsDonSkuMapper.selectById(Constant.DISTRIBUTE_NANO_TRIAL_SKU_ID));
 						}
 					}
 				}
@@ -470,4 +480,25 @@ public class EventMsgService implements GzhMsgService {
 			nanoUserTrialReceiveRecordMapper.insert(record);
 		}
 	}
+
+	private void createNanoUser(Long userId, Long relationId, GoodsDonSku sku) {
+		try {
+			if (relationId == null) {
+				return;
+			}
+			User user = userMapper.selectById(userId);
+			NanoUserQuota nanoUserQuota = new NanoUserQuota();
+			nanoUserQuota.setUid(userId);
+			nanoUserQuota.setRelationId(relationId);
+			nanoUserQuota.setUserToken(UUID.randomUUID().toString());
+			nanoUserQuota.setNickname(user.getNickname());
+			nanoUserQuota.setAvatar(user.getHeadimgurl());
+			nanoUserQuota.setPurchaseDate(DateTime.now());
+			nanoUserQuota.setTotalQuota(sku.getNanoQuota());
+			nanoUserQuota.setRemainingQuota(nanoUserQuota.getTotalQuota());
+			nanoUserQuotaMapper.insert(nanoUserQuota);
+		} catch (DuplicateKeyException e) {
+
+		}
+	}
 }

+ 26 - 0
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.UUID;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -159,6 +160,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
 	private final NanoUserTrialReceiveRecordMapper nanoUserTrialReceiveRecordMapper;
 
+	private final NanoUserQuotaMapper nanoUserQuotaMapper;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@Override
@@ -1011,6 +1014,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 							//发送nano 体验卡
 							Long relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(user.getId(), Constant.DISTRIBUTE_NANO_TRIAL_SKU_ID, 1);
 							recordReceiveNanoRecord(user.getId(), relationId);
+							//创建nano user
+							createNanoUser(user.getId(), relationId, goodsDonSkuMapper.selectById(Constant.DISTRIBUTE_NANO_TRIAL_SKU_ID));
 						}
 					}
 				}
@@ -1061,4 +1066,25 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 		}
 		userWhoami.setTc(selectCount1 == 0);
 	}
+
+	private void createNanoUser(Long userId, Long relationId, GoodsDonSku sku) {
+		try {
+			if (relationId == null) {
+				return;
+			}
+			User user = userMapper.selectById(userId);
+			NanoUserQuota nanoUserQuota = new NanoUserQuota();
+			nanoUserQuota.setUid(userId);
+			nanoUserQuota.setRelationId(relationId);
+			nanoUserQuota.setUserToken(UUID.randomUUID().toString());
+			nanoUserQuota.setNickname(user.getNickname());
+			nanoUserQuota.setAvatar(user.getHeadimgurl());
+			nanoUserQuota.setPurchaseDate(DateTime.now());
+			nanoUserQuota.setTotalQuota(sku.getNanoQuota());
+			nanoUserQuota.setRemainingQuota(nanoUserQuota.getTotalQuota());
+			nanoUserQuotaMapper.insert(nanoUserQuota);
+		} catch (DuplicateKeyException e) {
+
+		}
+	}
 }