ソースを参照

跳转gpt操作日志;记录用户触发车队使用次数

zoujiajian 2 年 前
コミット
66df77f9b5

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

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.ChatgptUserCarUsedRecord;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: ChatgptUserCarUsedRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/4/19 17:55
+ */
+public interface ChatgptUserCarUsedRecordMapper extends BaseMapper<ChatgptUserCarUsedRecord> {
+}

+ 33 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChatgptUserCarUsedRecord.java

@@ -0,0 +1,33 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: ChatgptUserCarUsedRecord
+ * 创建者: JavaZou
+ * 创建时间:2024/4/19 17:54
+ */
+@TableName("chatgpt_user_car_used_record")
+@Getter
+@Setter
+public class ChatgptUserCarUsedRecord extends BaseEntity{
+
+	private String carId;
+
+	private String userToken;
+
+	/**
+	 * gpt3.5使用次数
+	 */
+	private Integer gpt;
+
+
+	/**
+	 * gpt4s使用次数
+	 */
+	private Integer gptFour;
+
+}

+ 27 - 0
netflix-service/src/main/java/com/cyksj/service/chatgpt/impl/ChatGptAccountServiceImpl.java

@@ -3,6 +3,7 @@ package com.cyksj.service.chatgpt.impl;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.UUID;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
@@ -92,6 +93,8 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
 
     private final ChatgptUserTokenPrepareMapper chatgptUserTokenPrepareMapper;
 
+    private final ChatgptUserCarUsedRecordMapper chatgptUserCarUsedRecordMapper;
+
     @Override
     public String addAccount(Account account) {
         if (isAccountExists(account)) {
@@ -211,6 +214,7 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
         GroupsRelation groupsRelation = getGroupsRelation(userId, relationId);
         GroupsTrips groupsTrips = getGroupsTrips(groupsRelation);
         GoodsDonSku goodsDonSku = skuMapper.selectById(groupsTrips.getSkuId());
+        log.info("用户:{},所在车次:{},座位id:{},在{}获取跳转GPT镜像的登录url", userId, groupsTrips.getId(), relationId, DateTime.now());
 
         if (goodsDonSku != null && goodsDonSku.getIsMirror()) {
             ChatgptUser chatgptUser = getChatgptUser(userId, relationId, groupsRelation, groupsTrips, goodsDonSku);
@@ -807,6 +811,29 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
             }
         }
         redisService.set("chatgpt:clears_in:" + carId, expTime, expTime);
+
+        try {
+            //记录用户触发限制
+            ChatgptUserCarUsedRecord chatgptUserCarUsedRecord = new ChatgptUserCarUsedRecord();
+            chatgptUserCarUsedRecord.setUserToken(userToken);
+            chatgptUserCarUsedRecord.setCarId(carId);
+
+            String highCarChatKey = RedisService.key.CHATGPT_CAR_HIGH_CHAT.getName() + carId;
+            String lowCarChatKey = RedisService.key.CHATGPT_CAR_LOW_CHAT.getName() + carId;
+
+            String highCarChatNum = redisService.getStr(highCarChatKey);
+            if (StrUtil.isNotBlank(highCarChatNum)) {
+                chatgptUserCarUsedRecord.setGptFour(Integer.parseInt(highCarChatNum));
+            }
+            String lowCarChatNum = redisService.getStr(lowCarChatKey);
+            if (StrUtil.isNotBlank(lowCarChatNum)) {
+                chatgptUserCarUsedRecord.setGpt(Integer.parseInt(lowCarChatNum));
+            }
+            chatgptUserCarUsedRecordMapper.insert(chatgptUserCarUsedRecord);
+            log.info("记录userToken:{}访问对应镜像车队carId:{}操作成功", userToken, carId);
+        } catch (Exception e) {
+            log.info("记录userToken:{}访问对应镜像车队carId:{}操作失败e:{}", userToken, carId, StringUtil.getErrorText(e));
+        }
     }
 
     @PostConstruct

+ 2 - 0
netflix-web/src/main/java/com/cyksj/web/controller/mirror/MirrorController.java

@@ -75,6 +75,7 @@ public class MirrorController {
     @RequestMapping("/gpt/oauth")
     public Result<String> gptOauth(@RequestParam("usertoken") String userToken, @RequestParam("carid") String carId) {
         try {
+            log.info("用户通过userToken:{}访问镜像车队carId:{}", userToken, carId);
             ChatgptUser user = chatGptAccountService.findByUserTokenAndExpireTimeAfter(userToken, LocalDateTime.now());
             if (user == null) {
                 return GatewayResponse.SUCCESS.newBuilder().setMsg("用户不存在或已过期").setCode(0).toResult();
@@ -82,6 +83,7 @@ public class MirrorController {
 
             ChatgptSession session = chatGptAccountService.checkSession(carId);
             if (session.getIsCar()) {
+                log.info("用户:{}通过userToken:{}访问镜像车队carId:{}成功", user.getName(), userToken, carId);
                 return GatewayResponse.SUCCESS.newBuilder().setMsg("登陆成功").setCode(1).toResult();
             }
         } catch (Exception e) {