package com.ruoyi.system.task.jobs;
|
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.system.model.TErpProcurement;
|
import com.ruoyi.system.model.TSysAppUser;
|
import com.ruoyi.system.model.TSysLive;
|
import com.ruoyi.system.task.base.AbstractJob;
|
import org.apache.commons.io.IOUtils;
|
import org.apache.http.client.HttpClient;
|
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.conn.ClientConnectionManager;
|
import org.apache.http.conn.scheme.Scheme;
|
import org.apache.http.conn.scheme.SchemeRegistry;
|
import org.apache.http.conn.ssl.SSLSocketFactory;
|
import org.apache.http.entity.StringEntity;
|
import org.apache.http.impl.client.DefaultHttpClient;
|
import org.quartz.JobDataMap;
|
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionException;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
import java.security.cert.X509Certificate;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.Set;
|
|
/**
|
* 分账定时任务
|
* @author Administrator
|
*
|
*/
|
public class RevenueSharingJob extends AbstractJob {
|
|
public static final String name = "revenue_sharing";
|
|
/**
|
* API schema ,固定 LKLAPI-SHA256withRSA
|
*/
|
public final static String SCHEMA = "LKLAPI-SHA256withRSA";
|
|
/**
|
* 字符集固定 utf-8
|
*/
|
public static final String ENCODING = "utf-8";
|
@Override
|
public void execute(JobExecutionContext context)
|
throws JobExecutionException {
|
JobDataMap maps = context.getMergedJobDataMap();
|
String id = maps.getString("id");
|
String authorization = maps.getString("authorization");
|
String body = maps.getString("body");
|
System.out.println("body:"+body);
|
try {
|
System.out.println("开始执行分账任务");
|
org.apache.http.HttpResponse response1 = post("https://s2.lakala.com/" + "api/v3/sacs/separate", body, authorization);
|
String responseStr = IOUtils.toString(response1.getEntity().getContent(), ENCODING);
|
System.err.println("分佣!!!!"+responseStr);
|
JSONObject jsonObject = JSONObject.parseObject(responseStr);
|
if ("成功".equals(jsonObject.getString("msg"))) {
|
TErpProcurement erpProcurement = erpProcurementService.getById(id);
|
Object o1 = jsonObject.get("resp_data");
|
JSONObject jsonObject2 = JSONObject.parseObject(o1.toString());
|
String separate_no = jsonObject2.getString("separate_no");
|
erpProcurement.setSeparateNo(separate_no);
|
erpProcurementService.updateById(erpProcurement);
|
}
|
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
}
|
public org.apache.http.HttpResponse post(String url, String message, String authorization) throws Exception {
|
SSLContext ctx = SSLContext.getInstance("TLS");
|
X509TrustManager tm = new X509TrustManager() {
|
public X509Certificate[] getAcceptedIssuers() {
|
return null;
|
}
|
|
public void checkClientTrusted(X509Certificate[] xcs, String str) {
|
}
|
|
public void checkServerTrusted(X509Certificate[] xcs, String str) {
|
}
|
};
|
HttpClient http = new DefaultHttpClient();
|
ClientConnectionManager ccm = http.getConnectionManager();
|
ctx.init(null, new TrustManager[]{tm}, null);
|
SSLSocketFactory ssf = new SSLSocketFactory(ctx);
|
ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
SchemeRegistry registry = ccm.getSchemeRegistry();
|
registry.register(new Scheme("https", ssf, 443));
|
HttpPost post = new HttpPost(url);
|
StringEntity myEntity = new StringEntity(message, ENCODING);
|
post.setEntity(myEntity);
|
post.setHeader("Authorization", SCHEMA + " " + authorization);
|
post.setHeader("Accept", "application/json");
|
post.setHeader("Content-Type", "application/json");
|
return http.execute(post);
|
}
|
}
|