Răsfoiți Sursa

重置次数API明细;使用积分卡明细

zoujiajian 1 an în urmă
părinte
comite
52d2fd0826

+ 78 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ClaudeCodeUserCreditCardRecordView.java

@@ -0,0 +1,78 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: ClaudeCodeUserCreditCardRecordView
+ * 创建者: Claude
+ * 创建时间:2025/8/26
+ * 描述: ClaudeCode用户积分卡使用记录视图
+ */
+@Getter
+@Setter
+@SearchBean(tables = "claude_code_user_credit_card_record")
+public class ClaudeCodeUserCreditCardRecordView {
+    
+    @DbField
+    private Long id;
+    
+    /**
+     * 用户ID
+     */
+    @DbField
+    private Long userId;
+    
+    /**
+     * 使用前积分值
+     */
+    @DbField
+    private Integer beforeCodePoints;
+    
+    /**
+     * 增加的积分值
+     */
+    @DbField
+    private Integer addCodePoints;
+    
+    /**
+     * 使用后积分值
+     */
+    @DbField
+    private Integer afterCodePoints;
+    
+    /**
+     * 积分卡编号/批次号
+     */
+    @DbField
+    private String cardNumber;
+    
+    /**
+     * 操作人ID
+     */
+    @DbField
+    private Long operatorId;
+    
+    /**
+     * 操作人姓名
+     */
+    @DbField
+    private String operatorName;
+    
+    /**
+     * 使用原因
+     */
+    @DbField
+    private String useReason;
+    
+    /**
+     * 创建时间
+     */
+    @DbField
+    private Date createTime;
+}

+ 72 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ClaudeCodeUserResetRecordView.java

@@ -0,0 +1,72 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: ClaudeCodeUserResetRecordView
+ * 创建者: Claude
+ * 创建时间:2025/8/26
+ * 描述: ClaudeCode用户重置记录视图
+ */
+@Getter
+@Setter
+@SearchBean(tables = "claude_code_user_reset_record")
+public class ClaudeCodeUserResetRecordView {
+    
+    @DbField
+    private Long id;
+    
+    /**
+     * 用户ID
+     */
+    @DbField
+    private Long userId;
+    
+    /**
+     * 重置前积分值
+     */
+    @DbField
+    private Integer beforeCodePoints;
+    
+    /**
+     * 重置后积分值
+     */
+    @DbField
+    private Integer afterCodePoints;
+    
+    /**
+     * 重置类型 1:管理员重置 2:系统自动重置 3:用户自助重置
+     */
+    @DbField
+    private Integer resetType;
+    
+    /**
+     * 操作人ID
+     */
+    @DbField
+    private Long operatorId;
+    
+    /**
+     * 操作人姓名
+     */
+    @DbField
+    private String operatorName;
+    
+    /**
+     * 重置原因
+     */
+    @DbField
+    private String resetReason;
+    
+    /**
+     * 创建时间
+     */
+    @DbField
+    private Date createTime;
+}

+ 13 - 0
netflix-service/src/main/java/com/cyksj/service/claude/ClaudeCodeService.java

@@ -12,6 +12,9 @@ import com.cyksj.model.response.*;
 import com.cyksj.model.response.claudecode.ClaudeCodeResp;
 import com.cyksj.model.views.ClaudeCodeUserApiKeysView;
 import com.cyksj.model.views.ClaudeCodeUserInfoView;
+import com.cyksj.model.views.ClaudeCodeUserResetRecordView;
+import com.cyksj.model.views.ClaudeCodeUserCreditCardRecordView;
+import com.ejlchina.searcher.SearchResult;
 
 import java.util.Date;
 import java.util.List;
@@ -119,4 +122,14 @@ public interface ClaudeCodeService {
 	 * 用户使用积分卡
 	 */
 	ClaudeCodeResp useCreditCard(ClaudeCodeCreditCardUseReq req) throws Exception;
+
+	/**
+	 * 获取用户重置次数明细
+	 */
+	SearchResult<ClaudeCodeUserResetRecordView> getUserResetRecords(Long userId, Integer page, Integer limit);
+
+	/**
+	 * 获取用户积分卡使用明细
+	 */
+	SearchResult<ClaudeCodeUserCreditCardRecordView> getUserCreditCardRecords(Long userId, Integer page, Integer limit);
 }

+ 25 - 0
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -28,9 +28,12 @@ import com.cyksj.model.response.*;
 import com.cyksj.model.response.claudecode.ClaudeCodeResp;
 import com.cyksj.model.views.ClaudeCodeUserApiKeysView;
 import com.cyksj.model.views.ClaudeCodeUserInfoView;
+import com.cyksj.model.views.ClaudeCodeUserResetRecordView;
+import com.cyksj.model.views.ClaudeCodeUserCreditCardRecordView;
 import com.cyksj.service.claude.ClaudeCodeService;
 import com.cyksj.service.user.UserBindRelationService;
 import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import com.github.rholder.retry.*;
@@ -843,4 +846,26 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		}
 	}
 
+	@Override
+	public SearchResult<ClaudeCodeUserResetRecordView> getUserResetRecords(Long userId, Integer page, Integer limit) {
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		
+		return beanSearcher.search(ClaudeCodeUserResetRecordView.class, MapUtils.builder()
+			.field(ClaudeCodeUserResetRecordView::getUserId, userIdList).op(Operator.InList)
+			.page(page, limit)
+			.orderBy(ClaudeCodeUserResetRecordView::getCreateTime).desc()
+			.build());
+	}
+
+	@Override
+	public SearchResult<ClaudeCodeUserCreditCardRecordView> getUserCreditCardRecords(Long userId, Integer page, Integer limit) {
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		
+		return beanSearcher.search(ClaudeCodeUserCreditCardRecordView.class, MapUtils.builder()
+			.field(ClaudeCodeUserCreditCardRecordView::getUserId, userIdList).op(Operator.InList)
+			.page(page, limit)
+			.orderBy(ClaudeCodeUserCreditCardRecordView::getCreateTime).desc()
+			.build());
+	}
+
 }

+ 25 - 5
netflix-web/src/main/java/com/cyksj/web/controller/claude/ClaudeCodeController.java

@@ -17,11 +17,7 @@ import com.cyksj.mapper.manage.coupon.*;
 import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.OrderDonView;
-import com.cyksj.model.request.ClaudeCodeApiKeysReq;
-import com.cyksj.model.request.ClaudeCodeCreditCardUseReq;
-import com.cyksj.model.request.ClaudeCodeDelReq;
-import com.cyksj.model.request.CreditResetReq;
-import com.cyksj.model.request.TimeRateConfigReq;
+import com.cyksj.model.request.*;
 import com.cyksj.model.response.*;
 import com.cyksj.model.response.claudecode.ClaudeCodeResp;
 import com.cyksj.model.views.*;
@@ -561,4 +557,28 @@ public class ClaudeCodeController {
 		ClaudeCodeResp resp = claudeCodeService.useCreditCard(req);
 		return resp;
 	}
+
+	/**
+	 * 获取用户重置次数明细
+	 */
+	@GetMapping("/reset-records")
+	public Result<SearchResult<ClaudeCodeUserResetRecordView>> getUserResetRecords(
+			@RequestParam(defaultValue = "1") Integer page,
+			@RequestParam(defaultValue = "10") Integer limit) {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		SearchResult<ClaudeCodeUserResetRecordView> result = claudeCodeService.getUserResetRecords(userId, page, limit);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(result);
+	}
+
+	/**
+	 * 获取用户积分卡使用明细
+	 */
+	@GetMapping("/credit-card-records")
+	public Result<SearchResult<ClaudeCodeUserCreditCardRecordView>> getUserCreditCardRecords(
+			@RequestParam(defaultValue = "1") Integer page,
+			@RequestParam(defaultValue = "10") Integer limit) {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		SearchResult<ClaudeCodeUserCreditCardRecordView> result = claudeCodeService.getUserCreditCardRecords(userId, page, limit);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(result);
+	}
 }