Explorar el Código

gpt代充记录

zoujiajian hace 1 año
padre
commit
81ff58f31a

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

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

+ 30 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GptUserRechargeNumRecord.java

@@ -0,0 +1,30 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeNumRecord
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:35
+ */
+@Getter
+@Setter
+public class GptUserRechargeNumRecord extends BaseEntity{
+	private Long userId;
+
+	private Long relationId;
+
+	/**
+	 * 代充账号
+	 */
+	private String account;
+
+	private String operator;
+
+	/**
+	 * 次数 正为扣除 负为增加
+	 */
+	private Integer num;
+}

+ 6 - 1
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -22,7 +22,12 @@
         aq_type = 1,
         invite_link = null,
         contact = null,
-        is_vip = 0
+        is_vip = 0,
+        gpt_token = null,
+        recharge_num = null,
+        recharge_remain_num = null,
+        card_key = null,
+        gpt_task_id = null
         where id = #{entity.id}
         <if test="expireTime != null">
             and expiry_time = #{expireTime}

+ 7 - 0
netflix-service/src/main/java/com/cyksj/server/recharge/impl/GptProxyRechargeServiceImpl.java

@@ -16,6 +16,7 @@ import com.cyksj.server.recharge.dto.CardKeyValidationResult;
 import com.cyksj.server.recharge.dto.TaskResult;
 import com.cyksj.server.recharge.dto.TaskSubmitResult;
 import com.cyksj.server.recharge.dto.TokenParseResult;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
 import com.cyksj.service.user.UserBindRelationService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -47,6 +48,8 @@ public class GptProxyRechargeServiceImpl implements GptProxyRechargeService {
 
     private final OrderDonMapper orderDonMapper;
 
+	private final GptUserRechargeRecordService gptUserRechargeRecordService;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 	private HttpRequest createBaseRequest(String uri) {
@@ -300,6 +303,10 @@ public class GptProxyRechargeServiceImpl implements GptProxyRechargeService {
 						.set(GroupsRelation::getRechargeStatus, rechargeStatus)
 						.eq(GroupsRelation::getId, relation.getId())
 						.eq(GroupsRelation::getRechargeStatus, GroupsRelation.RechargeStatus.recharging));
+				//记录代充记录
+				if (rechargeStatus == GroupsRelation.RechargeStatus.complete) {
+					gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), 1, null);
+				}
 			}
 		}
 	}

+ 12 - 0
netflix-service/src/main/java/com/cyksj/service/chatgpt/GptUserRechargeRecordService.java

@@ -0,0 +1,12 @@
+package com.cyksj.service.chatgpt;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeRecordService
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:49
+ */
+public interface GptUserRechargeRecordService {
+
+	void recordGptUserRechargeNum(Long userId, Long relationId, String account, Integer num, String operator);
+}

+ 32 - 0
netflix-service/src/main/java/com/cyksj/service/chatgpt/impl/GptUserRechargeRecordServiceImpl.java

@@ -0,0 +1,32 @@
+package com.cyksj.service.chatgpt.impl;
+
+import com.cyksj.mapper.GptUserRechargeNumRecordMapper;
+import com.cyksj.model.entity.GptUserRechargeNumRecord;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: GptUserRechargeRecordServiceImpl
+ * 创建者: JavaZou
+ * 创建时间:2025/8/1 10:50
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class GptUserRechargeRecordServiceImpl implements GptUserRechargeRecordService {
+	private final GptUserRechargeNumRecordMapper gptUserRechargeNumRecordMapper;
+	@Override
+	public void recordGptUserRechargeNum(Long userId, Long relationId, String account, Integer num, String operator) {
+		//记录代充记录
+		GptUserRechargeNumRecord gptUserRechargeNumRecord = new GptUserRechargeNumRecord();
+		gptUserRechargeNumRecord.setUserId(userId);
+		gptUserRechargeNumRecord.setRelationId(relationId);
+		gptUserRechargeNumRecord.setAccount(account);
+		gptUserRechargeNumRecord.setNum(num);
+		gptUserRechargeNumRecord.setOperator(operator);
+		gptUserRechargeNumRecordMapper.insert(gptUserRechargeNumRecord);
+	}
+}

+ 5 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -40,6 +40,7 @@ import com.cyksj.model.manage.views.OrderDonBackView;
 import com.cyksj.model.manage.views.UpgradeOrderDonBackView;
 import com.cyksj.model.request.*;
 import com.cyksj.model.views.*;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
 import com.cyksj.service.mange.CmsOrderDonService;
 import com.cyksj.service.order.OrderDonCommentService;
 import com.cyksj.service.user.UserBindRelationService;
@@ -136,6 +137,8 @@ public class CmsOrderController {
 
 	private final OrderDonGalaxyCoinRecordMapper orderDonGalaxyCoinRecordMapper;
 
+	private final GptUserRechargeRecordService gptUserRechargeRecordService;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@GetMapping("/get")
@@ -641,6 +644,8 @@ public class CmsOrderController {
 						if (update == 0) {
 							throw BusinessRuntimeException.getInstance("更新用户代充剩余次数失败,请重试");
 						}
+						//记录gpt代充记录
+						gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), 1, cmsUser != null ? cmsUser.getNickname() : null);
 					}
 				}
 			}

+ 9 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupRelationController.java

@@ -25,6 +25,7 @@ import com.cyksj.model.views.DisableAccountView;
 import com.cyksj.model.views.GroupsRelationIndependentView;
 import com.cyksj.model.views.GroupsRelationRechargeView;
 import com.cyksj.model.views.OrderDonRenewView;
+import com.cyksj.service.chatgpt.GptUserRechargeRecordService;
 import com.cyksj.service.relation.GroupRelationClearService;
 import com.cyksj.service.scheduler.SchedulerService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -72,6 +73,8 @@ public class CmsGroupRelationController {
 
     private final GptRechargeCardKeyMapper gptRechargeCardKeyMapper;
 
+    private final GptUserRechargeRecordService gptUserRechargeRecordService;
+
     @GetMapping("/get")
     public Result<List<GroupsRelationBackView>> get(){
         List<GroupsRelationBackView> search = beanSearcher.searchAll(GroupsRelationBackView.class, MapUtils.flatBuilder(request.getParameterMap())
@@ -189,6 +192,8 @@ public class CmsGroupRelationController {
                     if (update == 0) {
                         throw BusinessRuntimeException.getInstance("更新用户代充剩余次数失败,请重试");
                     }
+                    //记录gpt代充记录
+                    gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), 1, cmsUser != null ? cmsUser.getNickname() : null);
                 }
             }
         }
@@ -216,6 +221,7 @@ public class CmsGroupRelationController {
      */
     @PutMapping("/recharge/update/remain/num")
     public Result<String> updateRechargeRemainNum(@RequestBody RechargeRemainNumReq req) {
+        long adminId = StpUtil.getLoginIdAsLong();
         Long relationId = req.getRelationId();
         Integer num = req.getNum();
         GroupsRelation relation = groupsRelationMapper.selectById(relationId);
@@ -235,6 +241,9 @@ public class CmsGroupRelationController {
             if (update == 0) {
                 throw BusinessRuntimeException.getInstance("修改用户代充次数错误,请重试");
             }
+            //记录gpt代充记录
+            CmsUser cmsUser = cmsUserMapper.selectById(adminId);
+            gptUserRechargeRecordService.recordGptUserRechargeNum(relation.getUserId(), relation.getId(), relation.getAccount(), num, cmsUser != null ? cmsUser.getNickname() : null);
         }
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }