From 3b596bfa91a8ec1f3bf2ffaeacd85030b55c3479 Mon Sep 17 00:00:00 2001 From: Xiang Date: Fri, 8 May 2026 15:57:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:glados=E7=A7=AF=E5=88=86=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glados/resp/GladosPointsHistoryResp.java | 26 ++++++++++++ .../pojo/glados/resp/GladosPointsResp.java | 30 +++++++++++++ .../glados/constants/GladosConstants.java | 3 ++ .../glados/service/GLaDOSServiceImpl.java | 42 ++++++++++++++++--- .../module/glados/service/IGLaDOSService.java | 1 - 5 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsHistoryResp.java create mode 100644 src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsResp.java diff --git a/src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsHistoryResp.java b/src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsHistoryResp.java new file mode 100644 index 0000000..0891045 --- /dev/null +++ b/src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsHistoryResp.java @@ -0,0 +1,26 @@ +package com.xiang.common.pojo.glados.resp; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: xiang + * @Date: 2026-05-08 15:47 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GladosPointsHistoryResp { + + private String asset; + private String balance; + private String business; + private String change; + private String detail; + private Long id; + private Long time; + @JSONField(name = "user_id") + private Long userId; +} diff --git a/src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsResp.java b/src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsResp.java new file mode 100644 index 0000000..d26d03e --- /dev/null +++ b/src/main/java/com/xiang/common/pojo/glados/resp/GladosPointsResp.java @@ -0,0 +1,30 @@ +package com.xiang.common.pojo.glados.resp; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: xiang + * @Date: 2026-05-08 15:46 + */ +@Data +public class GladosPointsResp { + private Integer code; + private List history; + private Plans plans; + private String points; +} + +@Data +class Plans { + + private Plan plan100; + private Plan plan200; + private Plan plan500; +} +@Data +class Plan { + private Integer days; + private Integer points; +} \ No newline at end of file diff --git a/src/main/java/com/xiang/service/module/glados/constants/GladosConstants.java b/src/main/java/com/xiang/service/module/glados/constants/GladosConstants.java index 76330c6..74eee9f 100644 --- a/src/main/java/com/xiang/service/module/glados/constants/GladosConstants.java +++ b/src/main/java/com/xiang/service/module/glados/constants/GladosConstants.java @@ -20,4 +20,7 @@ public class GladosConstants { * 签到请求体 */ public static final String GLADOS_CHECK_IN_BODY = "{\"token\":\"glados.cloud\"}"; + + + public static final String GLADOS_POINTS_LIST_URL = GLADOS_URL_PREFIX + "/api/user/points"; } diff --git a/src/main/java/com/xiang/service/module/glados/service/GLaDOSServiceImpl.java b/src/main/java/com/xiang/service/module/glados/service/GLaDOSServiceImpl.java index fca9fdd..e6bc873 100644 --- a/src/main/java/com/xiang/service/module/glados/service/GLaDOSServiceImpl.java +++ b/src/main/java/com/xiang/service/module/glados/service/GLaDOSServiceImpl.java @@ -2,17 +2,15 @@ package com.xiang.service.module.glados.service; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.TypeReference; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; import com.xiang.common.factory.ScriptDingTalkFactory; -import com.xiang.common.pojo.glados.GladosRunLogDO; import com.xiang.common.pojo.glados.GladosUserDO; import com.xiang.common.pojo.glados.resp.CheckInResp; import com.xiang.common.pojo.glados.resp.GLaDOSResponse; +import com.xiang.common.pojo.glados.resp.GladosPointsResp; import com.xiang.common.pojo.schedule.TaskResult; import com.xiang.common.utils.HttpService; import com.xiang.service.module.glados.constants.GladosConstants; -import com.xiang.service.module.glados.manage.IGladosRunLogManage; import com.xiang.service.module.glados.manage.IGladosUserManage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -86,14 +84,44 @@ public class GLaDOSServiceImpl implements IGLaDOSService { checkInV2(gladosUserDO, new StringBuilder()); } - public boolean checkInV2(GladosUserDO user, StringBuilder sb) { + private GladosPointsResp pointsList(GladosUserDO user) { Map header = Maps.newHashMap(); header.put("Cookie", user.getCookie()); String response = null; + try { + response = HttpService.doGet(GladosConstants.GLADOS_POINTS_LIST_URL, header, null); + } catch (Exception e) { + log.error("http请求异常:{}", user.getEmail()); + return null; + } + if (org.apache.commons.lang3.StringUtils.isBlank(response)) { + return null; + } + + GladosPointsResp gLaDOSResponse = JSONObject.parseObject(response, new TypeReference() { + }); + if (Objects.isNull(gLaDOSResponse)) { + return null; + } + + if (0 == gLaDOSResponse.getCode()) { + // 成功请求 + return gLaDOSResponse; + } + return null; + } + + public boolean checkInV2(GladosUserDO user, StringBuilder sb) { + Map header = Maps.newHashMap(); + header.put("Cookie", user.getCookie()); + + String response = null; + GladosPointsResp gladosPointsResp = null; try { response = HttpService.doPost(GladosConstants.GLADOS_CHECK_IN_URL, header, GladosConstants.GLADOS_CHECK_IN_BODY); + gladosPointsResp = pointsList(user); } catch (Exception e) { log.error("http请求异常:{}", user.getEmail()); return false; @@ -113,9 +141,13 @@ public class GLaDOSServiceImpl implements IGLaDOSService { if (0 == gLaDOSResponse.getCode()) { // 成功请求 if (Objects.nonNull(gLaDOSResponse.getPoints()) && 0 != gLaDOSResponse.getPoints()) { + String points = null; + if (Objects.nonNull(gladosPointsResp)) { + points = gladosPointsResp.getPoints(); + } // 签到成功 dingTalkService.sendMsg("[时间:" + LocalDateTime.now() + "] 用户: " + - user.getEmail() + "签到成功,获得积分:" + gLaDOSResponse.getPoints()); + user.getEmail() + "签到成功,获得积分:" + gLaDOSResponse.getPoints() + ",可用积分数量:" + points); return Boolean.TRUE; } } diff --git a/src/main/java/com/xiang/service/module/glados/service/IGLaDOSService.java b/src/main/java/com/xiang/service/module/glados/service/IGLaDOSService.java index 7dbe626..17071fd 100644 --- a/src/main/java/com/xiang/service/module/glados/service/IGLaDOSService.java +++ b/src/main/java/com/xiang/service/module/glados/service/IGLaDOSService.java @@ -1,6 +1,5 @@ package com.xiang.service.module.glados.service; -import com.xiang.common.pojo.glados.GladosUserDO; import com.xiang.common.pojo.schedule.TaskResult; /**