Prechádzať zdrojové kódy

修改gemini 登录以及gemini车队

chenbiao 7 mesiacov pred
rodič
commit
5a2cacd0ad

+ 13 - 8
netflix-dao/src/main/java/com/cyksj/model/response/GeminiCarAccount.java

@@ -14,25 +14,30 @@ public class GeminiCarAccount {
     /**
      * 账号ID
      */
-    private Integer id;
+    private Integer accountId;
 
     /**
-     * 账号名称
+     * 车队ID
      */
-    private String name;
+    private String carID;
 
     /**
      * 显示名称
      */
-    private String nickname;
+    private String nickName;
 
     /**
-     * 账号类型: pro/free/ultra
+     * 账号类型: Pro/Ultra/Free
      */
-    private String type;
+    private String carType;
 
     /**
-     * 是否禁用
+     * 是否Plus
      */
-    private Boolean disabled;
+    private Boolean isPlus;
+
+    /**
+     * 状态
+     */
+    private Boolean status;
 }

+ 3 - 13
netflix-dao/src/main/java/com/cyksj/model/response/GeminiCarPageData.java

@@ -16,20 +16,10 @@ public class GeminiCarPageData {
     /**
      * 账号列表
      */
-    private List<GeminiCarAccount> accounts;
+    private List<GeminiCarAccount> list;
 
     /**
-     * 总数
+     * 分页信息
      */
-    private Integer total;
-
-    /**
-     * 页码
-     */
-    private Integer page;
-
-    /**
-     * 每页数量
-     */
-    private Integer size;
+    private GeminiPagination pagination;
 }

+ 3 - 3
netflix-dao/src/main/java/com/cyksj/model/response/GeminiCarStatusResponse.java

@@ -1,6 +1,6 @@
 package com.cyksj.model.response;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
+import cn.hutool.core.annotation.Alias;
 import lombok.Data;
 
 /**
@@ -30,12 +30,12 @@ public class GeminiCarStatusResponse {
     /**
      * 个人限额重置剩余秒数
      */
-    @JsonProperty("clears_in")
+    @Alias("clears_in")
     private Integer clearsIn;
 
     /**
      * 团队限额重置剩余秒数
      */
-    @JsonProperty("team_clears_in")
+    @Alias("team_clears_in")
     private Integer teamClearsIn;
 }

+ 19 - 35
netflix-service/src/main/java/com/cyksj/service/gemini/impl/GeminiServiceImpl.java

@@ -151,8 +151,7 @@ public class GeminiServiceImpl implements GeminiService {
             log.info("domain:{},用户:{},所在车次:{},座位id:{},在{}获取跳转Gemini镜像的登录url",
                     DOMAIN, userId, groupsTrips.getId(), relationId, DateTime.now());
 
-            // /auth/logintoken?access_token={token}&account={carId}
-            return DOMAIN + "/auth/logintoken?access_token=" + geminiUser.getUserToken() + "&account=" + carId;
+            return DOMAIN + "/logintoken?access_token=" + geminiUser.getUserToken() + "&account=" + carId;
         } else {
             throw BusinessRuntimeException.getInstance("服务器出了点问题");
         }
@@ -294,48 +293,31 @@ public class GeminiServiceImpl implements GeminiService {
 
         List<GeminiCarInfoView> carInfoList = new ArrayList<>();
 
-        if (carPageResponse.getCode() != null && carPageResponse.getCode() == 0
+        if (carPageResponse.getCode() != null && carPageResponse.getCode() == 1000
                 && carPageResponse.getData() != null
-                && carPageResponse.getData().getAccounts() != null) {
+                && carPageResponse.getData().getList() != null) {
 
-            for (GeminiCarAccount account : carPageResponse.getData().getAccounts()) {
+            for (GeminiCarAccount account : carPageResponse.getData().getList()) {
                 GeminiCarInfoView carInfo = new GeminiCarInfoView();
-                carInfo.setCarId(account.getName());
-                carInfo.setCarName(account.getNickname());
+                carInfo.setCarId(account.getCarID());
+                carInfo.setCarName(account.getNickName());
 
-                // 根据type设置isPlus: ultra=3, pro=2, free=1
-                if ("ultra".equalsIgnoreCase(account.getType())) {
+                // 根据carType设置isPlus: Ultra=3, Pro=2, Free=1
+                if ("Ultra".equalsIgnoreCase(account.getCarType())) {
                     carInfo.setIsPlus(3);
-                } else if ("pro".equalsIgnoreCase(account.getType())) {
+                } else if ("Pro".equalsIgnoreCase(account.getCarType())) {
                     carInfo.setIsPlus(2);
                 } else {
                     carInfo.setIsPlus(1);
                 }
 
-                // 获取状态信息
-                if (account.getDisabled() != null && account.getDisabled()) {
-                    carInfo.setStatus("停运");
-                    carInfo.setAccountReady(false);
+                // 根据status设置状态
+                if (account.getStatus() != null && account.getStatus()) {
+                    carInfo.setAccountReady(true);
+                    carInfo.setStatus("空闲");
                 } else {
-                    // 调用 /status 接口获取详细状态
-                    GeminiCarStatusResponse statusResponse = getCarStatus(domain, account.getName());
-                    if (statusResponse.getAccountReady() != null && statusResponse.getAccountReady()) {
-                        carInfo.setAccountReady(true);
-                        carInfo.setClearsIn(statusResponse.getClearsIn() != null ? statusResponse.getClearsIn().longValue() : 0L);
-                        carInfo.setUse(statusResponse.getCount());
-
-                        if (carInfo.getClearsIn() > 0) {
-                            carInfo.setStatus("停运");
-                            carInfo.setExpTime(new DateTime(System.currentTimeMillis() + carInfo.getClearsIn() * 1000));
-                        } else {
-                            // 根据使用次数判断繁忙程度
-                            carInfo.setScore(statusResponse.getCount() != null ? statusResponse.getCount().doubleValue() : 0.0);
-                            carInfo.setStatus(carInfo.getScore() > 50 ? "繁忙" : "空闲");
-                        }
-                    } else {
-                        carInfo.setAccountReady(false);
-                        carInfo.setStatus("停运");
-                    }
+                    carInfo.setAccountReady(false);
+                    carInfo.setStatus("停运");
                 }
 
                 carInfoList.add(carInfo);
@@ -343,8 +325,10 @@ public class GeminiServiceImpl implements GeminiService {
         }
 
         int total = 0;
-        if (carPageResponse.getData() != null && carPageResponse.getData().getTotal() != null) {
-            total = carPageResponse.getData().getTotal();
+        if (carPageResponse.getData() != null
+                && carPageResponse.getData().getPagination() != null
+                && carPageResponse.getData().getPagination().getTotal() != null) {
+            total = carPageResponse.getData().getPagination().getTotal();
         }
 
         SearchResult<GeminiCarInfoView> result = new SearchResult<>(carInfoList);

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

@@ -682,8 +682,8 @@ public class MirrorController {
     @GetMapping("/gemini/cars")
     public Result<SearchResult<GeminiCarInfoView>> geminiCarInfoList(
             Long relationId,
-            @RequestParam(defaultValue = "1") int page,
-            @RequestParam(defaultValue = "10") int size,
+            @RequestParam(defaultValue = "1") int start,
+            @RequestParam(defaultValue = "10") int limit,
             String domain) {
         Long userId = StpUserUtil.getUserIdAfterLogin();
         if (relationId != null) {
@@ -693,7 +693,7 @@ public class MirrorController {
             }
         }
 
-        SearchResult<GeminiCarInfoView> carInfoList = geminiService.getCarInfoList(domain, page, size);
+        SearchResult<GeminiCarInfoView> carInfoList = geminiService.getCarInfoList(domain, start, limit);
         return GatewayResponse.SUCCESS.newBuilder().toResult(carInfoList);
     }