diff --git a/pom.xml b/pom.xml index fb4ed94..f3f5495 100644 --- a/pom.xml +++ b/pom.xml @@ -48,9 +48,9 @@ 1.0-SNAPSHOT - com.xiang + com.xiang.starter xmc-http-starter - 1.0-SNAPSHOT + 2.0-SNAPSHOT com.xiang diff --git a/script/src/main/java/com/xiang/xservice/application/script/glados/common/GladosConstants.java b/script/src/main/java/com/xiang/xservice/application/script/glados/common/GladosConstants.java index 9425aba..2bbf68d 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/glados/common/GladosConstants.java +++ b/script/src/main/java/com/xiang/xservice/application/script/glados/common/GladosConstants.java @@ -8,5 +8,5 @@ public class GladosConstants { public static final String GLADOS_COOKIE = "SL_G_WPT_TO=en; SL_GWPT_Show_Hide_tmp=1; SL_wptGlobTipTmp=1; koa:sess=eyJ1c2VySWQiOjU1OTg1MywiX2V4cGlyZSI6MTc3MjYwNDkyNjI4OCwiX21heEFnZSI6MjU5MjAwMDAwMDB9; koa:sess.sig=OdaqjpLkIp19lXn0lFuOsHX7vEM"; - public static final String GLADOS_CHECK_IN_BODY = "{\"token\":\"glados.one\"}"; + public static final String GLADOS_CHECK_IN_BODY = "{\"token\":\"glados.cloud\"}"; } diff --git a/script/src/main/java/com/xiang/xservice/application/script/glados/controller/GLaDOSController.java b/script/src/main/java/com/xiang/xservice/application/script/glados/controller/GLaDOSController.java index 12518d9..9dcf7c0 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/glados/controller/GLaDOSController.java +++ b/script/src/main/java/com/xiang/xservice/application/script/glados/controller/GLaDOSController.java @@ -1,11 +1,9 @@ package com.xiang.xservice.application.script.glados.controller; -import com.xiang.xservice.basic.common.resp.Result; -import com.xiang.xservice.application.script.glados.entity.req.GladosCheckInReq; import com.xiang.xservice.application.script.glados.service.GLaDOSService; +import com.xiang.xservice.basic.common.resp.Result; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -22,8 +20,9 @@ public class GLaDOSController { private final GLaDOSService glaDOSService; @PostMapping("/checkIn") - public Result checkIn(@RequestBody GladosCheckInReq request) { - return Result.success(glaDOSService.checkIn()); + public Result checkIn() { + glaDOSService.checkInV2(); + return Result.success(); } } diff --git a/script/src/main/java/com/xiang/xservice/application/script/glados/entity/resp/CheckInResp.java b/script/src/main/java/com/xiang/xservice/application/script/glados/entity/resp/CheckInResp.java new file mode 100644 index 0000000..54b9a6a --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/application/script/glados/entity/resp/CheckInResp.java @@ -0,0 +1,20 @@ +package com.xiang.xservice.application.script.glados.entity.resp; + +import lombok.Data; + +/** + * @Author: xiang + * @Date: 2026-01-23 09:21 + */ +@Data +public class CheckInResp { + + private Long id; + private Long userId; + private Long time; + private String asset; + private String business; + private String change; + private String balance; + private String detail; +} diff --git a/script/src/main/java/com/xiang/xservice/application/script/glados/schedule/GladosCheckInJob.java b/script/src/main/java/com/xiang/xservice/application/script/glados/schedule/GladosCheckInJob.java index f6d7cb2..72973e5 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/glados/schedule/GladosCheckInJob.java +++ b/script/src/main/java/com/xiang/xservice/application/script/glados/schedule/GladosCheckInJob.java @@ -22,6 +22,6 @@ public class GladosCheckInJob { @Scheduled(cron = "0 0 7 1/1 * ?") public void checkInJon() { log.info("[job] Glados Check In Job start, time:{}", LocalDateTime.now()); - glaDOSService.checkIn(); + glaDOSService.checkInV2(); } } diff --git a/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSService.java b/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSService.java index b1733ea..8c168c5 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSService.java +++ b/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSService.java @@ -10,4 +10,9 @@ public interface GLaDOSService { * 签到 */ String checkIn(); + + /** + * 签到 + */ + void checkInV2(); } diff --git a/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSServiceImpl.java b/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSServiceImpl.java index 92edc29..52128f2 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/application/script/glados/service/GLaDOSServiceImpl.java @@ -1,10 +1,14 @@ package com.xiang.xservice.application.script.glados.service; import com.alibaba.fastjson2.JSONObject; +import com.alibaba.fastjson2.TypeReference; import com.google.common.collect.Maps; +import com.xiang.xmc.service.http.helper.BaseHttpHelp; +import com.xiang.xmc.service.http.helper.HttpHelperFactory; import com.xiang.xservice.application.script.glados.common.GladosConstants; import com.xiang.xservice.application.script.glados.common.URLConstants; import com.xiang.xservice.application.script.glados.entity.GladosRunLog; +import com.xiang.xservice.application.script.glados.entity.resp.CheckInResp; import com.xiang.xservice.application.script.glados.entity.resp.GLaDOSResponse; import com.xiang.xservice.application.script.glados.repository.GladosMapper; import com.xiang.xservice.application.script.xb.entity.pojo.User; @@ -33,6 +37,8 @@ public class GLaDOSServiceImpl implements GLaDOSService{ private final DingTalkScriptGladosService dingTalkService; + private final BaseHttpHelp httpHelp = HttpHelperFactory.createSimpleHttp(); + /** * 签到 */ @@ -63,6 +69,70 @@ public class GLaDOSServiceImpl implements GLaDOSService{ return sb.toString(); } + @Override + public void checkInV2() { + List users = gladosMapper.listAllUser(); + if (CollectionUtils.isEmpty(users)) { + return; + } + for (User user : users) { + try { + for (int i = 0; i < 3; i++) { + if (checkInV2(user)) { + break; + } + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + log.error("线程暂停10s失败"); + } + } + } catch (Exception e) { + log.error("签到失败,", e); + } + } + } + + public boolean checkInV2(User user) { + Map header = Maps.newHashMap(); + header.put("Cookie", user.getCookie()); + + String response = null; + + try { + response = httpHelp.doPost(URLConstants.GLADOS_CHECK_IN_URL, header, GladosConstants.GLADOS_CHECK_IN_BODY); + } catch (Exception e) { + log.error("http请求异常:{}", user.getEmail()); + return false; + } + if (org.apache.commons.lang3.StringUtils.isBlank(response)) { + return false; + } + + GLaDOSResponse gLaDOSResponse = JSONObject.parseObject(response, new TypeReference>() { + }); + if (Objects.isNull(gLaDOSResponse)) { + return false; + } + + if (0 == gLaDOSResponse.getCode()) { + // 成功请求 + if (Objects.nonNull(gLaDOSResponse.getPoints()) && 0 != gLaDOSResponse.getPoints()) { + // 签到成功 + dingTalkService.sendScriptMsg("[时间:" + LocalDateTime.now() + "] 用户: " + + user.getEmail() + "签到成功,获得积分:" + gLaDOSResponse.getPoints()); + GladosRunLog build = GladosRunLog.builder().time(LocalDateTime.now()).status(1).code(Integer.valueOf(gLaDOSResponse.getCode().toString())).response(response).user(user.getEmail()).userId(user.getId()).build(); + gladosMapper.insertScriptRunLog(build); + return Boolean.TRUE; + } + } + // 请求异常 + dingTalkService.sendScriptMsg("用户:" + user.getEmail() + "请求异常,响应结果:" + gLaDOSResponse.getMessage()); + GladosRunLog build = GladosRunLog.builder().time(LocalDateTime.now()).status(0).code(Integer.valueOf(gLaDOSResponse.getCode().toString())).response(response).user(user.getEmail()).userId(user.getId()).build(); + gladosMapper.insertScriptRunLog(build); + return false; + } + private boolean checkIn(User user, StringBuffer sb) { Map header = Maps.newHashMap();