fix:glados签到球服

This commit is contained in:
Xiang
2026-01-23 09:35:38 +08:00
parent 8928c076c5
commit 12728d5c84
7 changed files with 103 additions and 9 deletions

View File

@@ -48,9 +48,9 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.xiang</groupId> <groupId>com.xiang.starter</groupId>
<artifactId>xmc-http-starter</artifactId> <artifactId>xmc-http-starter</artifactId>
<version>1.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.xiang</groupId> <groupId>com.xiang</groupId>

View File

@@ -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_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\"}";
} }

View File

@@ -1,11 +1,9 @@
package com.xiang.xservice.application.script.glados.controller; 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.application.script.glados.service.GLaDOSService;
import com.xiang.xservice.basic.common.resp.Result;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -22,8 +20,9 @@ public class GLaDOSController {
private final GLaDOSService glaDOSService; private final GLaDOSService glaDOSService;
@PostMapping("/checkIn") @PostMapping("/checkIn")
public Result<String> checkIn(@RequestBody GladosCheckInReq request) { public Result<Void> checkIn() {
return Result.success(glaDOSService.checkIn()); glaDOSService.checkInV2();
return Result.success();
} }
} }

View File

@@ -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;
}

View File

@@ -22,6 +22,6 @@ public class GladosCheckInJob {
@Scheduled(cron = "0 0 7 1/1 * ?") @Scheduled(cron = "0 0 7 1/1 * ?")
public void checkInJon() { public void checkInJon() {
log.info("[job] Glados Check In Job start, time:{}", LocalDateTime.now()); log.info("[job] Glados Check In Job start, time:{}", LocalDateTime.now());
glaDOSService.checkIn(); glaDOSService.checkInV2();
} }
} }

View File

@@ -10,4 +10,9 @@ public interface GLaDOSService {
* 签到 * 签到
*/ */
String checkIn(); String checkIn();
/**
* 签到
*/
void checkInV2();
} }

View File

@@ -1,10 +1,14 @@
package com.xiang.xservice.application.script.glados.service; package com.xiang.xservice.application.script.glados.service;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.google.common.collect.Maps; 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.GladosConstants;
import com.xiang.xservice.application.script.glados.common.URLConstants; 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.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.entity.resp.GLaDOSResponse;
import com.xiang.xservice.application.script.glados.repository.GladosMapper; import com.xiang.xservice.application.script.glados.repository.GladosMapper;
import com.xiang.xservice.application.script.xb.entity.pojo.User; 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 DingTalkScriptGladosService dingTalkService;
private final BaseHttpHelp httpHelp = HttpHelperFactory.createSimpleHttp();
/** /**
* 签到 * 签到
*/ */
@@ -63,6 +69,70 @@ public class GLaDOSServiceImpl implements GLaDOSService{
return sb.toString(); return sb.toString();
} }
@Override
public void checkInV2() {
List<User> 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<String, String> 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<CheckInResp> gLaDOSResponse = JSONObject.parseObject(response, new TypeReference<GLaDOSResponse<CheckInResp>>() {
});
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) { private boolean checkIn(User user, StringBuffer sb) {
Map<String, String> header = Maps.newHashMap(); Map<String, String> header = Maps.newHashMap();