fix:glados签到球服
This commit is contained in:
4
pom.xml
4
pom.xml
@@ -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>
|
||||||
|
|||||||
@@ -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\"}";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,9 @@ public interface GLaDOSService {
|
|||||||
* 签到
|
* 签到
|
||||||
*/
|
*/
|
||||||
String checkIn();
|
String checkIn();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签到
|
||||||
|
*/
|
||||||
|
void checkInV2();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user