|
@@ -1,6 +1,7 @@
|
|
|
package com.cyksj.service.chatgpt.impl;
|
|
package com.cyksj.service.chatgpt.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.lang.UUID;
|
|
import cn.hutool.core.lang.UUID;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
import cn.hutool.http.HttpRequest;
|
|
|
import cn.hutool.http.HttpResponse;
|
|
import cn.hutool.http.HttpResponse;
|
|
@@ -89,6 +90,8 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
|
|
|
|
|
|
|
|
private final BeanSearcher beanSearcher;
|
|
private final BeanSearcher beanSearcher;
|
|
|
|
|
|
|
|
|
|
+ private final ChatgptUserTokenPrepareMapper chatgptUserTokenPrepareMapper;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public String addAccount(Account account) {
|
|
public String addAccount(Account account) {
|
|
|
if (isAccountExists(account)) {
|
|
if (isAccountExists(account)) {
|
|
@@ -349,6 +352,36 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
|
|
|
return chatgptUser;
|
|
return chatgptUser;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 创建chatgptUser 无需车队
|
|
|
|
|
+ */
|
|
|
|
|
+ public ChatgptUser generateChatGptUserUnderPrepare(ChatgptUserTokenPrepare prepare) {
|
|
|
|
|
+ ChatgptUser chatgptUser = new ChatgptUser();
|
|
|
|
|
+ GoodsDonSku goodsDonSku = skuMapper.selectById(prepare.getSkuId());
|
|
|
|
|
+ if (goodsDonSku == null) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("车队规格不存在,请联系客服..");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (goodsDonSku.getIsCar()) {
|
|
|
|
|
+ chatgptUser.setIsCar(true);
|
|
|
|
|
+ chatgptUser.setLimitNum(goodsDonSku.getGptLimitNum());
|
|
|
|
|
+ chatgptUser.setLimitTime(goodsDonSku.getGptLimitTime());
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ chatgptUser.setExpireTime(DateUtil.offsetMonth(DateTime.now(), goodsDonSku.getMonths()));
|
|
|
|
|
+ chatgptUser.setIsPlus(1);
|
|
|
|
|
+ chatgptUser.setName(prepare.getName());
|
|
|
|
|
+ chatgptUser.setImg(prepare.getImg());
|
|
|
|
|
+ chatgptUser.setUserToken(prepare.getUserToken());
|
|
|
|
|
+ chatgptUserMapper.insert(chatgptUser);
|
|
|
|
|
+
|
|
|
|
|
+ prepare.setStatus(true);
|
|
|
|
|
+ chatgptUserTokenPrepareMapper.updateById(prepare);
|
|
|
|
|
+ log.info("用户激活userToken:{}成功", prepare.getUserToken());
|
|
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
|
|
+ }
|
|
|
|
|
+ return chatgptUser;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private void updateChatgptUser(GroupsRelation groupsRelation, User user, ChatgptUser chatgptUser) {
|
|
private void updateChatgptUser(GroupsRelation groupsRelation, User user, ChatgptUser chatgptUser) {
|
|
|
chatgptUser.setName(user.getNickname());
|
|
chatgptUser.setName(user.getNickname());
|
|
|
chatgptUser.setImg(getWxImg(user.getHeadimgurl(), user));
|
|
chatgptUser.setImg(getWxImg(user.getHeadimgurl(), user));
|
|
@@ -567,6 +600,14 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
|
|
|
@Override
|
|
@Override
|
|
|
public ChatgptUser getCarChatGptUserWithToken(String userToken) {
|
|
public ChatgptUser getCarChatGptUserWithToken(String userToken) {
|
|
|
ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getUserToken, userToken).last(" limit 1"));
|
|
ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getUserToken, userToken).last(" limit 1"));
|
|
|
|
|
+ if (chatgptUser == null) {
|
|
|
|
|
+ //是否是用户token预备账号
|
|
|
|
|
+ ChatgptUserTokenPrepare chatgptUserTokenPrepare = chatgptUserTokenPrepareMapper.selectOne(Wrappers.lambdaQuery(ChatgptUserTokenPrepare.class)
|
|
|
|
|
+ .eq(ChatgptUserTokenPrepare::getUserToken, userToken).last("limit 1"));
|
|
|
|
|
+ if (chatgptUserTokenPrepare != null) {
|
|
|
|
|
+ chatgptUser = generateChatGptUserUnderPrepare(chatgptUserTokenPrepare);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
if (chatgptUser != null) {
|
|
if (chatgptUser != null) {
|
|
|
if(!chatgptUser.getIsCar()){
|
|
if(!chatgptUser.getIsCar()){
|
|
|
throw BusinessRuntimeException.getInstance("您非车队用户,请购买车队套餐");
|
|
throw BusinessRuntimeException.getInstance("您非车队用户,请购买车队套餐");
|