|
|
|
@ -6,14 +6,25 @@ import cn.hutool.http.HttpRequest;
|
|
|
|
|
import cn.hutool.http.HttpResponse;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.yuyou.openapi.openapi.model.pojo.token.QiZhuangTokeRequest;
|
|
|
|
|
import com.yuyou.openapi.openapi.model.pojo.token.QiZhuangTokenResponse;
|
|
|
|
|
import com.yuyou.openapi.openapi.model.pojo.token.TuBoShuTokenResponse;
|
|
|
|
|
import lombok.Getter;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
import java.io.BufferedReader;
|
|
|
|
|
import java.io.InputStreamReader;
|
|
|
|
|
import java.io.OutputStreamWriter;
|
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
|
import java.net.HttpURLConnection;
|
|
|
|
|
import java.net.URL;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@Component
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Getter
|
|
|
|
@ -28,8 +39,19 @@ public class ABScheduleTask {
|
|
|
|
|
@Value("${ab.qj.ckey}")
|
|
|
|
|
private String qiJiaCKey;
|
|
|
|
|
|
|
|
|
|
@Value("${ab.tbs.password}")
|
|
|
|
|
private String passWord;
|
|
|
|
|
|
|
|
|
|
@Value("${ab.tbs.coopname}")
|
|
|
|
|
private String coopname;
|
|
|
|
|
|
|
|
|
|
@Value("${ab.tbs.tokenurl}")
|
|
|
|
|
private String tuBoShuTokenUrl;
|
|
|
|
|
|
|
|
|
|
private QiZhuangTokenResponse qiZhuangTokenResponse;
|
|
|
|
|
|
|
|
|
|
private TuBoShuTokenResponse tuBoShuTokenResponse;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -47,6 +69,25 @@ public class ABScheduleTask {
|
|
|
|
|
qiZhuangTokenResponse = JSONUtil.toBean(body, QiZhuangTokenResponse.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设置定时任务每二小时执行一次
|
|
|
|
|
*/
|
|
|
|
|
@Scheduled(cron = "0 0 0/2 * * ? ")
|
|
|
|
|
public void executeGetTokenTuboshu() {
|
|
|
|
|
log.info("ABScheduleTask|executeGetTokenTuboshu is run , run Time is {}", DateUtil.date());
|
|
|
|
|
// 先去拿Token
|
|
|
|
|
Map<String, Object> formMap = new HashMap<>();
|
|
|
|
|
formMap.put("password", passWord);
|
|
|
|
|
formMap.put("coopname", coopname);
|
|
|
|
|
String body = sendPostReqTuBoShuToken(formMap,tuBoShuTokenUrl);
|
|
|
|
|
log.info("ABScheduleTask|executeGetTokenTuboshu , sendPostReqTuBoShuToken is {}", body);
|
|
|
|
|
TuBoShuTokenResponse tuBoShuTokenResponse1 = new TuBoShuTokenResponse();
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(body);
|
|
|
|
|
tuBoShuTokenResponse1.setToken(jsonObject.getString("msg"));
|
|
|
|
|
tuBoShuTokenResponse1.setStatus(jsonObject.getString("status"));
|
|
|
|
|
tuBoShuTokenResponse = tuBoShuTokenResponse1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 测试定时任务
|
|
|
|
@ -75,5 +116,66 @@ public class ABScheduleTask {
|
|
|
|
|
return httpResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 调用HTTP请求发送数据 获取土拨鼠的token
|
|
|
|
|
*
|
|
|
|
|
* @param formMap 请求的body内容
|
|
|
|
|
* @param urlT 请求的url
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private String sendPostReqTuBoShuToken(Map<String, Object> formMap , String urlT){
|
|
|
|
|
String result = "";
|
|
|
|
|
HttpURLConnection connection = null;
|
|
|
|
|
String boundary = "--------------------------132183525382215881770481";
|
|
|
|
|
try {
|
|
|
|
|
URL url = new URL(urlT);
|
|
|
|
|
connection = (HttpURLConnection) url.openConnection();
|
|
|
|
|
connection.setRequestMethod("POST");
|
|
|
|
|
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
|
|
|
|
|
connection.setDoOutput(true);
|
|
|
|
|
connection.setDoInput(true);
|
|
|
|
|
connection.setRequestProperty("Connection", "Keep-Alive");
|
|
|
|
|
// 不使用缓存
|
|
|
|
|
connection.setUseCaches(false);
|
|
|
|
|
|
|
|
|
|
StringBuffer formSB = new StringBuffer();
|
|
|
|
|
if (formMap != null) {
|
|
|
|
|
if (formMap.size() > 0) {
|
|
|
|
|
for (Map.Entry<String, Object> entry : formMap.entrySet()) {
|
|
|
|
|
String inputName = entry.getKey();
|
|
|
|
|
formSB.append("\r\n").append("--").append(boundary).append("\r\n");
|
|
|
|
|
formSB.append("Content-Disposition: form-data; name=\"" + inputName + "\"\r\n\r\n");
|
|
|
|
|
formSB.append(entry.getValue());
|
|
|
|
|
}
|
|
|
|
|
formSB.append("\r\n").append("--").append(boundary).append("--");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
connection.connect();
|
|
|
|
|
//OutputStream out = new DataOutputStream(connection.getOutputStream());
|
|
|
|
|
PrintWriter out = new PrintWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8"));
|
|
|
|
|
out.print(formSB.toString());
|
|
|
|
|
out.flush();
|
|
|
|
|
//获得响应状态
|
|
|
|
|
int resultCode = connection.getResponseCode();
|
|
|
|
|
if (HttpURLConnection.HTTP_OK == resultCode) {
|
|
|
|
|
formSB = new StringBuffer();
|
|
|
|
|
String readLine;
|
|
|
|
|
BufferedReader responseReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
|
|
|
|
|
while ((readLine = responseReader.readLine()) != null) {
|
|
|
|
|
formSB.append(readLine).append("\n");
|
|
|
|
|
}
|
|
|
|
|
responseReader.close();
|
|
|
|
|
result = formSB.toString();
|
|
|
|
|
}
|
|
|
|
|
out.close();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
connection.disconnect();
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|