xuhy
2025-10-31 d0a8a2af8ce2a07be6ec1dff70f8246ec2e9c263
Merge remote-tracking branch 'origin/master'
1个文件已添加
4个文件已修改
154 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-test.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/task/base/AbstractJob.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/task/base/TimeJobType.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/RevenueSharingJob.java 106 ●●●●● 补丁 | 查看 | 原始文档 | 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);
    }
}