Jelajahi Sumber

查看车票API额度兑换码

zoujiajian 3 bulan lalu
induk
melakukan
8597a708bf

+ 26 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/TicketRedemptionCodeRecord.java

@@ -0,0 +1,26 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class TicketRedemptionCodeRecord extends BaseEntity {
+
+    private Long userId;
+    private Long relationId;
+    private Long goodsId;
+    private Long skuId;
+    private String sourceType;
+    private String redeemName;
+    private Integer quota;
+    private Integer redeemCount;
+    private Long expiredTime;
+    private String redeemCode;
+    private String apiResponse;
+    private String status;
+    private String errorMsg;
+    private Date relationExpiryTime;
+}

+ 20 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -90,6 +90,8 @@ public class GroupRelationController {
 
     private final GroupsRelationMapper relationMapper;
 
+    private final TicketRedemptionCodeRecordMapper ticketRedemptionCodeRecordMapper;
+
     private final GroupRelationFrontService groupRelationFrontService;
 
     private final UserService userService;
@@ -245,6 +247,24 @@ public class GroupRelationController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(tickets);
     }
 
+    /**
+     * 获取车票api额度兑换码
+     */
+    @GetMapping("/get/redemption/code/{relationId}")
+    public Result<String> getRedemptionCode(@PathVariable Long relationId) {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        List<Long> userIds = userBindRelationService.getRelationUserIdList(userId, null);
+        TicketRedemptionCodeRecord record = ticketRedemptionCodeRecordMapper.selectOne(Wrappers.lambdaQuery(TicketRedemptionCodeRecord.class)
+                .eq(TicketRedemptionCodeRecord::getRelationId, relationId)
+                .in(TicketRedemptionCodeRecord::getUserId, userIds)
+                .eq(TicketRedemptionCodeRecord::getStatus, "success")
+                .last("limit 1"));
+        if (record == null || StrUtil.isBlank(record.getRedeemCode())) {
+            throw BusinessRuntimeException.getInstance("兑换码不存在");
+        }
+        return GatewayResponse.SUCCESS.newBuilder().toResult(record.getRedeemCode());
+    }
+
     /**
      * 记录查看ChatGPT车票密码
      */