| ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-admin/src/main/resources/application-test.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/RevenueSharingJob.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java
@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.collect.ImmutableMap; import com.lkl.laop.sdk.exception.SDKException; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; @@ -19,6 +20,10 @@ import com.ruoyi.system.service.TCrmSupplierService; import com.ruoyi.system.service.TErpProcurementGoodsService; import com.ruoyi.system.service.TErpProcurementService; import com.ruoyi.system.task.base.QuartzManager; import com.ruoyi.system.task.base.TimeJobType; import com.ruoyi.system.task.jobs.LivePushJob; import com.ruoyi.system.task.jobs.RevenueSharingJob; import com.ruoyi.web.core.config.LakalaConfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -289,6 +294,7 @@ reqMap.put("req_data", map); String jsonString = JSON.toJSONString(reqMap); // String authorization1 = getAuthorization(jsonString); // post.header("Authorization", SCHEMA + " " + authorization); @@ -296,21 +302,31 @@ // post.body(jsonString); // HttpResponse response = post.execute(); // String responseStr = response.body(); String authorization1 = getAuthorization(jsonString); org.apache.http.HttpResponse response1 = post(LakalaConfig.getServerUrl() + "api/v3/sacs/separate", jsonString, authorization1); String responseStr = IOUtils.toString(response1.getEntity().getContent(), ENCODING); System.err.println("分佣!!!!"+responseStr); Map<String, ? extends Object> maps = new ImmutableMap.Builder<String, String>(). put("id", erpProcurement.getId()).put("authorization", authorization1).put("body", jsonString) .build(); QuartzManager.addJob( RevenueSharingJob.class, (RevenueSharingJob.name+erpProcurement.getId()).toUpperCase(), TimeJobType.REVENUE_SHARING, DateUtils.localDateTimeToDate(LocalDateTime.now().plusSeconds(30)), maps ); JSONObject jsonObject = JSONObject.parseObject(responseStr); if ("成功".equals(jsonObject.getString("msg"))) { 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); } // org.apache.http.HttpResponse response1 = post(LakalaConfig.getServerUrl() + "api/v3/sacs/separate", jsonString, authorization1); // String responseStr = IOUtils.toString(response1.getEntity().getContent(), ENCODING); // System.err.println("分佣!!!!"+responseStr); // JSONObject jsonObject = JSONObject.parseObject(responseStr); // if ("成功".equals(jsonObject.getString("msg"))) { // 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); // } // 响应success JSONObject responseJsonObject = new JSONObject(); @@ -509,6 +525,7 @@ + IOUtils.toString(response.getEntity().getContent(), ENCODING)); } String responseStr = IOUtils.toString(response.getEntity().getContent(), ENCODING); System.out.println("退款!!"+responseStr); JSONObject jsonObject = JSONObject.parseObject(responseStr); JSONObject jsonObject2 = jsonObject.getJSONObject("resp_data"); String code = jsonObject2.getString("log_no"); ruoyi-admin/src/main/resources/application-test.yml
@@ -211,7 +211,7 @@ priKeyStr: D:\app\cert\lakala\OP00000003_private_key.pem lklNotifyCerStr: D:\app\cert\lakala\lkl-apigw-v2.cer sm4Key: LHo55AjrT4aDhAIBZhb5KQ== serverUrl: https://test.wsmsd.cn/ serverUrl: https://test.wsmsd.cn/sit/ payment: wx: # 微信appid ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java
@@ -4,7 +4,9 @@ import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.model.TErpProcurement; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.TErpProcurementService; import com.ruoyi.system.service.TSysAppUserService; import com.ruoyi.system.service.TSysLiveService; import com.ruoyi.system.task.utils.SpringContextsUtil; @@ -26,6 +28,7 @@ protected RedisCache redisCache; protected TSysAppUserService sysAppUserService; protected TemplateMessageSendUtil templateMessageSendUtil; protected TErpProcurementService erpProcurementService; public AbstractJob(){ this.sysUserService = SpringContextsUtil.getBean(ISysUserService.class); @@ -33,6 +36,7 @@ this.redisCache = SpringContextsUtil.getBean(RedisCache.class); this.sysAppUserService = SpringContextsUtil.getBean(TSysAppUserService.class); this.templateMessageSendUtil = SpringContextsUtil.getBean(TemplateMessageSendUtil.class); this.erpProcurementService = SpringContextsUtil.getBean(TErpProcurementService.class); } ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java
@@ -5,6 +5,7 @@ * @date 2025年2月17日 下午7:22:28 */ public enum TimeJobType { REVENUE_SHARING("revenue_sharing","分佣"), LIVE_PUSH("live_push","直播推送"); private String type; private String desc; ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/RevenueSharingJob.java
New file @@ -0,0 +1,106 @@ 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); } }