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