duhuizhe
2024-05-15 aa2c3d4deba76ade0958ff3ced88396e226a4964
项目启动失败问题解决
24个文件已修改
899 ■■■■ 已修改文件
ecosphere/ecosphere-base-rest/pom.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/pom.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/main/java/com/nuvole/hnnx/hnnxPay/NXHttpClientUtils.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/main/java/com/nuvole/hnnx/hnnxPay/NXPayService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/DiscountUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/LaBaPushUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/OSSUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/pay/allinPay/syb/SybPayUtil.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-common/src/test/java/com/nuvole/util/XssUtilTest.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/pom.xml 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/FourPaymentApplication.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/client/ShopClientFallbackFactory.java 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/client/ShopServiceClient.java 167 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/config/SwaggerConfig.java 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/controller/pc/ActivityFeeController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/controller/pc/ActivityShopRecordController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/controller/pc/ChannelOrgConfigController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/service/RedisService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/service/impl/ActivityShopRecordServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/resources/application-dev.yml 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-four-payment/src/main/resources/application.yml 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/pom.xml 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-visual/ruoyi-nacos/src/main/resources/application.properties 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ecosphere/ecosphere-base-rest/pom.xml
@@ -8,8 +8,9 @@
        <version>${revision}</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.dromara</groupId>
    <artifactId>ecosphere-base-rest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <description>
        ecosphere-base-rest 依赖项
    </description>
ecosphere/ecosphere-common/pom.xml
@@ -8,8 +8,9 @@
        <version>${revision}</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.dromara</groupId>
    <artifactId>ecosphere-common</artifactId>
    <version>1.0-SNAPSHOT</version>
    <description>
        ecosphere-common 依赖项
    </description>
@@ -223,4 +224,5 @@
            <version>30.1-jre</version>
        </dependency>
    </dependencies>
</project>
ecosphere/ecosphere-common/src/main/java/com/nuvole/hnnx/hnnxPay/NXHttpClientUtils.java
@@ -2,6 +2,7 @@
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
@@ -15,7 +16,6 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nuvole.hnnx.conf.NxPayConfig;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -532,7 +532,7 @@
            String palin = null;
            palin = Permutation.sort(bodyMap, "UTF-8");
            log.info("排序后的字符串:{}", palin);
            if (StringUtils.isNotEmpty(sign)) {
            if (StrUtil.isNotEmpty(sign)) {
                verfiy = verifier.verify(HnnxConstant.ALGORITHM, palin.getBytes(), Hex.toByte(sign), nxPayPublicKey);
            }
        } catch (Exception e) {
@@ -549,7 +549,7 @@
        log.info("----------- 返回值验签 开始 ----------- ");
        boolean verfiy = false;
        try {
            if (StringUtils.isNotEmpty(sign)) {
            if (StrUtil.isNotEmpty(sign)) {
                verfiy = verifier.verify(HnnxConstant.KJ_ALGORITHM, palin.getBytes(), Base64.getDecoder().decode(sign), nxKjPayPublicKey);
            }
        } catch (Exception e) {
@@ -684,15 +684,15 @@
        JSONObject formData = new JSONObject();
        formData.put("MerNbr", nxPayConfig.getKjMerNbr());
        //订单编号
        if (StringUtils.isNotEmpty(orderNbr)) {
        if (StrUtil.isNotEmpty(orderNbr)) {
            formData.put("OrderNbr", orderNbr);
        }
        //起始日期
        if (StringUtils.isNotEmpty(orderNbr)) {
        if (StrUtil.isNotEmpty(orderNbr)) {
            formData.put("StartDate", startDate);
        }
        //结束日期
        if (StringUtils.isNotEmpty(orderNbr)) {
        if (StrUtil.isNotEmpty(orderNbr)) {
            formData.put("EndDate", endDate);
        }
        //每页记录数
ecosphere/ecosphere-common/src/main/java/com/nuvole/hnnx/hnnxPay/NXPayService.java
@@ -1,6 +1,7 @@
package com.nuvole.hnnx.hnnxPay;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.node.ContainerNode;
@@ -11,7 +12,6 @@
import com.nuvole.hnnx.orderQueryTask.OrderQueryTask;
import com.nuvole.hnnx.orderQueryTask.OrderQueryUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@@ -485,7 +485,7 @@
     */
    public CommonResult<JSONArray> kjTradeQuery(String orderNum, String startDate, String endDate, Integer pageSize, Integer pageNum) {
        String tradeQueryResp = nxHttpClientUtils.quickPayOrderQueryRequest(orderNum, startDate, endDate, Convert.toInt(pageSize, 1), Convert.toInt(pageNum, 1));
        if (StringUtils.isEmpty(tradeQueryResp)) {
        if (StrUtil.isBlank(tradeQueryResp)) {
            return new CommonResult<>(CommonResultEmnu.ERROR, "未查询到数据");
        }
        JSONObject tradeQueryRespObj = JSONObject.parseObject(tradeQueryResp);
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/DiscountUtil.java
@@ -2,7 +2,7 @@
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.NumberUtil;
import org.apache.commons.lang.StringUtils;
import cn.hutool.core.util.StrUtil;
import java.util.HashMap;
import java.util.Map;
@@ -21,7 +21,7 @@
     * @return
     */
    public static Map<String, Long> getDiscount(long totalMoney, String discount) {
        if (StringUtils.isBlank(discount)) {
        if (StrUtil.isBlank(discount)) {
            return null;
        }
        HashMap<String, Long> map = new HashMap<>();
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/LaBaPushUtil.java
@@ -1,5 +1,6 @@
package com.nuvole.util;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONObject;
@@ -7,7 +8,6 @@
import com.nuvole.hnnx.hnnxPay.SignatureSigner;
import com.nuvole.util.enums.LaPushEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import java.util.HashMap;
import java.util.List;
@@ -43,7 +43,7 @@
//    }
    public static void pushMessageToSingle(String deviceId, LaPushEnum pushType, long money) {
        if (StringUtils.isEmpty(deviceId)){
        if (StrUtil.isEmpty(deviceId)){
            return;
        }
        Map<String, String> parameters = new HashMap<>();
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/OSSUtil.java
@@ -1,6 +1,7 @@
package com.nuvole.util;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
@@ -8,7 +9,6 @@
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;
import org.apache.commons.lang.StringUtils;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
@@ -166,7 +166,7 @@
    }
    public static void download(AmazonS3 client, String sourceFilePath, String targetFilePath) {
        if (StringUtils.isEmpty(sourceFilePath)){
        if (StrUtil.isEmpty(sourceFilePath)){
            return;
        }
        if (sourceFilePath.startsWith("/")){
ecosphere/ecosphere-common/src/main/java/com/nuvole/util/pay/allinPay/syb/SybPayUtil.java
@@ -14,7 +14,6 @@
import com.nuvole.util.IdGenerator;
import com.nuvole.util.pay.allinPay.syb.param.MerchantAddParam;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
@@ -180,10 +179,10 @@
        paramMap.put("version", version);
        paramMap.put("authcode", authCode);
        paramMap.put("authtype", authType);
        if (StringUtils.isNotBlank(identify)) {
        if (StrUtil.isNotBlank(identify)) {
            paramMap.put("identify", identify);
        }
        if (StringUtils.isNotBlank(subAppid)) {
        if (StrUtil.isNotBlank(subAppid)) {
            paramMap.put("sub_appid", subAppid);
        }
        paramMap.put("randomstr", IdGenerator.getUUID());
@@ -771,7 +770,7 @@
        while (it.hasNext()) {
            Map.Entry<String, String> en = it.next();
            String value = en.getValue();
            if (StringUtils.isBlank(value)) {
            if (StrUtil.isBlank(value)) {
                continue;
            }
            sf.append(en.getKey() + "=" + Convert.toStr(value)
@@ -1002,7 +1001,7 @@
        paramMap.put("signtype", "RSA");
        paramMap.put("chnltype", chnltype);
        if (StringUtils.isNotBlank(pid)) {
        if (StrUtil.isNotBlank(pid)) {
            paramMap.put("pid", pid);
        }
        String signStr = coverMap2String(paramMap);
@@ -1042,13 +1041,13 @@
        paramMap.put("randomstr", IdGenerator.getUUID());
        paramMap.put("signtype", "RSA");
        if (StringUtils.isNotBlank(userid)) {
        if (StrUtil.isNotBlank(userid)) {
            paramMap.put("userid", userid);
        }
        if (StringUtils.isNotBlank(notifyurl)) {
        if (StrUtil.isNotBlank(notifyurl)) {
            paramMap.put("notifyurl", notifyurl);
        }
        if (StringUtils.isNotBlank(pagetype)) {
        if (StrUtil.isNotBlank(pagetype)) {
            paramMap.put("pagetype", pagetype);
        }
@@ -1227,88 +1226,88 @@
        if (merchantAddParam == null) {
            return new CommonResult(CommonResultEmnu.INVALID_PARAMS);
        }
        if (StringUtils.isBlank(merchantAddParam.getRandomstr())) {
        if (StrUtil.isBlank(merchantAddParam.getRandomstr())) {
            merchantAddParam.setRandomstr(IdGenerator.getUUID());
        }
        if (StringUtils.isBlank(merchantAddParam.getSigntype())) {
        if (StrUtil.isBlank(merchantAddParam.getSigntype())) {
            merchantAddParam.setSigntype("RSA");
        }
        //  *商户性质
        //1.企业  3.个体户 4.个人 6.事业单位
        String comproperty = merchantAddParam.getComproperty();
        if (StringUtils.isBlank(comproperty)) {
        if (StrUtil.isBlank(comproperty)) {
            return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质需要填写");
        }
        //商户性质为企业
//        if ("1".equals(comproperty)) {
//            if (StringUtils.isBlank(merchantAddParam.getPubacctinfo())) {
//            if (StrUtil.isBlank(merchantAddParam.getPubacctinfo())) {
//                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业时需要填写对公账户信息");
//            }
//        }
        //商户性质为个人时必填
        if ("4".equals(comproperty)) {
            if (StringUtils.isBlank(merchantAddParam.getLegalpic())) {
            if (StrUtil.isBlank(merchantAddParam.getLegalpic())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要上传经营者手持身份证照片");
            }
        }
        if (!"4".equals(comproperty)) {
            if (StringUtils.isBlank(merchantAddParam.getCorpbusname())) {
            if (StrUtil.isBlank(merchantAddParam.getCorpbusname())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要填写营业执照名称");
            }
            if (StringUtils.isBlank(merchantAddParam.getCreditcode())) {
            if (StrUtil.isBlank(merchantAddParam.getCreditcode())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要填写统一社会信用代码证");
            }
            if (StringUtils.isBlank(merchantAddParam.getCreditcodeexpire())) {
            if (StrUtil.isBlank(merchantAddParam.getCreditcodeexpire())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要填写社会信用代码证有效期");
            }
            if (StringUtils.isBlank(merchantAddParam.getCorpbuspic())) {
            if (StrUtil.isBlank(merchantAddParam.getCorpbuspic())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要填写营业执照照片");
            }
            if (StringUtils.isBlank(merchantAddParam.getBusconactperson())) {
            if (StrUtil.isBlank(merchantAddParam.getBusconactperson())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要填写业务联系人姓名");
            }
            if (StringUtils.isBlank(merchantAddParam.getBusconacttel())) {
            if (StrUtil.isBlank(merchantAddParam.getBusconacttel())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质非个人时需要填写业务联系人电话");
            }
        }
        //商户性质为企业、个体户时必填
        if ("1".equals(comproperty) || "3".equals(comproperty)) {
            if (StringUtils.isBlank(merchantAddParam.getHoldername())) {
            if (StrUtil.isBlank(merchantAddParam.getHoldername())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写控股股东姓名");
            }
            if (StringUtils.isBlank(merchantAddParam.getHolderidno())) {
            if (StrUtil.isBlank(merchantAddParam.getHolderidno())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写控股股东身份证");
            }
            if (StringUtils.isBlank(merchantAddParam.getHolderexpire())) {
            if (StrUtil.isBlank(merchantAddParam.getHolderexpire())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写控股股东有效期");
            }
            if (StringUtils.isBlank(merchantAddParam.getRegisterfund())) {
            if (StrUtil.isBlank(merchantAddParam.getRegisterfund())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写注册资本");
            }
            if (StringUtils.isBlank(merchantAddParam.getStafftotal())) {
            if (StrUtil.isBlank(merchantAddParam.getStafftotal())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写员工人数");
            }
            if (StringUtils.isBlank(merchantAddParam.getOperatelimit())) {
            if (StrUtil.isBlank(merchantAddParam.getOperatelimit())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写经营区域");
            }
            if (StringUtils.isBlank(merchantAddParam.getInspect())) {
            if (StrUtil.isBlank(merchantAddParam.getInspect())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "商户性质为企业、个体户时需要填写经营地段");
            }
        }
//        if (StringUtils.isBlank(merchantAddParam.getAddfacusid())) {
//        if (StrUtil.isBlank(merchantAddParam.getAddfacusid())) {
//            return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "所在机构资金归集时,该字段不能为空");
//        }
        // 结算账户 0-对私 1-对公
        String accttype = merchantAddParam.getAccttype();
        if (StringUtils.isBlank(accttype)) {
        if (StrUtil.isBlank(accttype)) {
            return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "结算账户类型不能为空");
        }
        if ("0".equals(accttype)) {
            if (StringUtils.isBlank(merchantAddParam.getSettidno())) {
            if (StrUtil.isBlank(merchantAddParam.getSettidno())) {
                return new CommonResult(CommonResultEmnu.INVALID_PARAMS, "结算账户对私时,结算人身份证号不能为空");
            }
        }
ecosphere/ecosphere-common/src/test/java/com/nuvole/util/XssUtilTest.java
@@ -1,31 +1,31 @@
package com.nuvole.util;
import org.apache.commons.lang.CharEncoding;
import org.junit.Test;
/**
 * @author ChenLong
 * @version 1.0
 * @ClassName XssUtilTest
 * @date 2019/7/16 18:42
 */
public class XssUtilTest {
    @Test
    public void clearXss() throws Exception {
        String val = "<p style=\"text-align: center;\"><strong>qqq<em>qxxxx<span style=\"text-decoration: underline;\">ffffff<span style=\"text-decoration: line-through;\">fffff</span></span></em></strong></p>\n" +
                "<p style=\"text-align: center;\"><strong><em><span style=\"text-decoration: underline;\"><span style=\"text-decoration: line-through;\"><img src=\"https://echftp.yqzhfw.com/ecosphereBaseDev/2019/7/16/0262f69df57f4f68acf763cacd362879.jpg\" alt=\"lalalal\" width=\"1920\" height=\"1080\" /></span></span></em></strong></p>";
        System.out.println(XssUtil.clearXss(val));
    }
    @Test
    public void test() throws Exception {
        String b = "aaaa";
        byte[] a = b.getBytes(CharEncoding.ISO_8859_1);
        System.out.println("is a:" + a);
        String s2 = XssUtil.clearXss(new String(a, CharEncoding.ISO_8859_1));
        System.out.println("s2:" + s2);
        System.out.println("s2 byte:" + s2.getBytes(CharEncoding.ISO_8859_1));
    }
}
//package com.nuvole.util;
//
//import org.apache.commons.lang.CharEncoding;
//import org.junit.Test;
//
///**
// * @author ChenLong
// * @version 1.0
// * @ClassName XssUtilTest
// * @date 2019/7/16 18:42
// */
//public class XssUtilTest {
//
//    @Test
//    public void clearXss() throws Exception {
//        String val = "<p style=\"text-align: center;\"><strong>qqq<em>qxxxx<span style=\"text-decoration: underline;\">ffffff<span style=\"text-decoration: line-through;\">fffff</span></span></em></strong></p>\n" +
//                "<p style=\"text-align: center;\"><strong><em><span style=\"text-decoration: underline;\"><span style=\"text-decoration: line-through;\"><img src=\"https://echftp.yqzhfw.com/ecosphereBaseDev/2019/7/16/0262f69df57f4f68acf763cacd362879.jpg\" alt=\"lalalal\" width=\"1920\" height=\"1080\" /></span></span></em></strong></p>";
//        System.out.println(XssUtil.clearXss(val));
//    }
//
//    @Test
//    public void test() throws Exception {
//        String b = "aaaa";
//        byte[] a = b.getBytes(CharEncoding.ISO_8859_1);
//        System.out.println("is a:" + a);
//        String s2 = XssUtil.clearXss(new String(a, CharEncoding.ISO_8859_1));
//        System.out.println("s2:" + s2);
//        System.out.println("s2 byte:" + s2.getBytes(CharEncoding.ISO_8859_1));
//    }
//
//}
ecosphere/ecosphere-four-payment/pom.xml
@@ -14,6 +14,22 @@
        ecosphere-four-payment 依赖项
    </description>
    <dependencies>
        <!--代入引用得方法,是否能取代-->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>org.dromara</groupId>
@@ -22,19 +38,20 @@
        <dependency>
            <groupId>com.nuvole</groupId>
            <groupId>org.dromara</groupId>
            <artifactId>ecosphere-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.nuvole</groupId>
            <groupId>org.dromara</groupId>
            <artifactId>ecosphere-base-rest</artifactId>
        </dependency>
        <dependency>
<!--        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
@@ -66,15 +83,31 @@
            <artifactId>swagger-bootstrap-ui</artifactId>
        </dependency>
        <dependency>
<!--        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        </dependency>-->
        <!-- rabbitMq -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
@@ -83,12 +116,6 @@
            <version>1.3.5</version>
            <scope>system</scope>
            <systemPath>${basedir}/../libs/mybatis-generator-core-1.3.5.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>2.0.8.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/FourPaymentApplication.java
@@ -3,8 +3,6 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
@@ -12,8 +10,7 @@
 * @Author: dqh
 * @Date: 2024-04-09
 **/
@EnableFeignClients
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@SpringBootApplication
@MapperScan(value = {"com.nuvole.four.mapper","com.nuvole.util"})
@EnableTransactionManagement
public class FourPaymentApplication {
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/client/ShopClientFallbackFactory.java
@@ -1,62 +1,61 @@
package com.nuvole.four.client;
import com.nuvole.common.domain.emnu.CommonResultEmnu;
import com.nuvole.common.domain.result.CommonResult;
import com.nuvole.common.domain.result.PageBean;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
@Slf4j
public class ShopClientFallbackFactory implements FallbackFactory<ShopServiceClient> {
    @Override
    public ShopServiceClient create(Throwable throwable) {
        log.error("fallback reason:{}", throwable.getMessage());
        return new ShopServiceClient() {
            @GetMapping(value = "/v1/shop/pc/storeMerchantShop/getMerchantShopExtendList", consumes = "application/json")
            @Override
            public CommonResult<PageBean<Map>> getMerchantShopExtendList(String queryOrgCode, String merchantId, String shopName,
                                                                         String managerName, String channelId,String channelIdNotNull,
                                                                         Integer pageNumber, Integer pageSize) {
                return new CommonResult(CommonResultEmnu.SERVER_ERR);
            }
            @Override
            public List<Map> selectShopMsgByIds(String ids) {
                return null;
            }
            /**
             * 商户活动数据统计-列表
             * @param orgCode       机构code
             * @param channelId     通道id
             * @param activityId    活动id
             * @param startDate     交易开始时间
             * @param endDate       交易结束时间
             * @param pageNumber    页码
             * @param pageSize      每页条数
             * @return  商户活动数据统计-列表
             */
            @Override
            public CommonResult<PageBean<Map>> merchantActivityList(String orgCode, Long channelId, Long activityId, Date startDate,Date endDate, Integer pageNumber, Integer pageSize) {
                return new CommonResult(CommonResultEmnu.SERVER_ERR);
            }
            @Override
            public CommonResult<Map> merchantActivityCollect(String orgCode, Long channelId, Long activityId, Date startDate,Date endDate) {
                return new CommonResult(CommonResultEmnu.SERVER_ERR);
            }
        };
    }
}
//package com.nuvole.four.client;
//
//import com.nuvole.common.domain.emnu.CommonResultEmnu;
//import com.nuvole.common.domain.result.CommonResult;
//import com.nuvole.common.domain.result.PageBean;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//import org.springframework.web.bind.annotation.GetMapping;
//
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//
//
//@Component
//@Slf4j
//public class ShopClientFallbackFactory implements FallbackFactory<ShopServiceClient> {
//
//    @Override
//    public ShopServiceClient create(Throwable throwable) {
//        log.error("fallback reason:{}", throwable.getMessage());
//        return new ShopServiceClient() {
//
//            @GetMapping(value = "/v1/shop/pc/storeMerchantShop/getMerchantShopExtendList", consumes = "application/json")
//            @Override
//            public CommonResult<PageBean<Map>> getMerchantShopExtendList(String queryOrgCode, String merchantId, String shopName,
//                                                                         String managerName, String channelId,String channelIdNotNull,
//                                                                         Integer pageNumber, Integer pageSize) {
//                return new CommonResult(CommonResultEmnu.SERVER_ERR);
//            }
//
//            @Override
//            public List<Map> selectShopMsgByIds(String ids) {
//                return null;
//            }
//
//            /**
//             * 商户活动数据统计-列表
//             * @param orgCode       机构code
//             * @param channelId     通道id
//             * @param activityId    活动id
//             * @param startDate     交易开始时间
//             * @param endDate       交易结束时间
//             * @param pageNumber    页码
//             * @param pageSize      每页条数
//             * @return  商户活动数据统计-列表
//             */
//            @Override
//            public CommonResult<PageBean<Map>> merchantActivityList(String orgCode, Long channelId, Long activityId, Date startDate,Date endDate, Integer pageNumber, Integer pageSize) {
//                return new CommonResult(CommonResultEmnu.SERVER_ERR);
//            }
//
//            @Override
//            public CommonResult<Map> merchantActivityCollect(String orgCode, Long channelId, Long activityId, Date startDate,Date endDate) {
//                return new CommonResult(CommonResultEmnu.SERVER_ERR);
//            }
//
//        };
//    }
//}
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/client/ShopServiceClient.java
@@ -1,84 +1,83 @@
package com.nuvole.four.client;
import com.nuvole.common.domain.result.CommonResult;
import com.nuvole.common.domain.result.PageBean;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 方法描述: 调用service-shop模块
 *
 * @date  2024-04-14 18:31
 **/
@Component
@FeignClient(value = "service-shop", fallbackFactory = ShopClientFallbackFactory.class)
public interface ShopServiceClient {
    /**
     * 方法描述: 查询店铺列表
     *
     * @date  2024-04-14 18:31
     **/
    @GetMapping(value = "/v1/shop/pc/storeMerchantShop/getMerchantShopExtendList", consumes = "application/json")
    CommonResult<PageBean<Map>> getMerchantShopExtendList(
            @RequestParam("queryOrgCode") String queryOrgCode,
            @RequestParam("merchantId") String merchantId,
            @RequestParam("shopName") String shopName,
            @RequestParam("managerName") String managerName,
            @RequestParam("channelId") String channelId,
            @RequestParam("channelIdNotNull") String channelIdNotNull,
            @RequestParam("pageNumber") Integer pageNumber, @RequestParam("pageSize") Integer pageSize);
    @GetMapping(value = "/v1/shop/pc/storeMerchantShop/selectShopMsgByIds")
    List<Map> selectShopMsgByIds(
            @RequestParam("ids") String ids);
    /**
     * 商户活动数据统计-列表
     * @param orgCode       机构code
     * @param channelId     通道id
     * @param activityId    活动id
     * @param startDate     交易时间
     * @param pageNumber    页码
     * @param pageSize      每页条数
     * @return  商户活动数据统计-列表
     */
    @GetMapping(value = "/v1/shop/pc/static/report/merchant/activity/list")
    CommonResult<PageBean<Map>> merchantActivityList(
                @RequestParam("orgCode") String orgCode,
                @RequestParam("channelId") Long channelId,
                @RequestParam("activityId") Long activityId,
                @RequestParam("startDate") Date startDate,
                @RequestParam("endDate") Date endDate,
                @RequestParam("pageNumber") Integer pageNumber,
                @RequestParam("pageSize") Integer pageSize
            );
    /**
     * 商户活动数据统计-数据汇总
     * @param orgCode       机构code
     * @param channelId     通道id
     * @param activityId    活动id
     * @param startDate     交易开始时间
     * @param endDate       交易结束时间
     * @return  商户活动数据统计-数据汇总
     */
    @GetMapping(value = "/v1/shop/pc/static/report/merchant/activity/collect")
    CommonResult<Map> merchantActivityCollect(
            @RequestParam("orgCode") String orgCode,
            @RequestParam("channelId") Long channelId,
            @RequestParam("activityId") Long activityId,
            @RequestParam("startDate") Date startDate,
            @RequestParam("endDate") Date endDate
    );
}
//package com.nuvole.four.client;
//
//import com.nuvole.common.domain.result.CommonResult;
//import com.nuvole.common.domain.result.PageBean;
//import org.springframework.stereotype.Component;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//
///**
// * 方法描述: 调用service-shop模块
// *
// * @date  2024-04-14 18:31
// **/
//@Component
////@FeignClient(value = "service-shop", fallbackFactory = ShopClientFallbackFactory.class)
//public interface ShopServiceClient {
//
//    /**
//     * 方法描述: 查询店铺列表
//     *
//     * @date  2024-04-14 18:31
//     **/
//    @GetMapping(value = "/v1/shop/pc/storeMerchantShop/getMerchantShopExtendList", consumes = "application/json")
//    CommonResult<PageBean<Map>> getMerchantShopExtendList(
//            @RequestParam("queryOrgCode") String queryOrgCode,
//            @RequestParam("merchantId") String merchantId,
//            @RequestParam("shopName") String shopName,
//            @RequestParam("managerName") String managerName,
//            @RequestParam("channelId") String channelId,
//            @RequestParam("channelIdNotNull") String channelIdNotNull,
//            @RequestParam("pageNumber") Integer pageNumber, @RequestParam("pageSize") Integer pageSize);
//
//    @GetMapping(value = "/v1/shop/pc/storeMerchantShop/selectShopMsgByIds")
//    List<Map> selectShopMsgByIds(
//            @RequestParam("ids") String ids);
//
//    /**
//     * 商户活动数据统计-列表
//     * @param orgCode       机构code
//     * @param channelId     通道id
//     * @param activityId    活动id
//     * @param startDate     交易时间
//     * @param pageNumber    页码
//     * @param pageSize      每页条数
//     * @return  商户活动数据统计-列表
//     */
//    @GetMapping(value = "/v1/shop/pc/static/report/merchant/activity/list")
//    CommonResult<PageBean<Map>> merchantActivityList(
//                @RequestParam("orgCode") String orgCode,
//                @RequestParam("channelId") Long channelId,
//                @RequestParam("activityId") Long activityId,
//                @RequestParam("startDate") Date startDate,
//                @RequestParam("endDate") Date endDate,
//                @RequestParam("pageNumber") Integer pageNumber,
//                @RequestParam("pageSize") Integer pageSize
//            );
//
//    /**
//     * 商户活动数据统计-数据汇总
//     * @param orgCode       机构code
//     * @param channelId     通道id
//     * @param activityId    活动id
//     * @param startDate     交易开始时间
//     * @param endDate       交易结束时间
//     * @return  商户活动数据统计-数据汇总
//     */
//    @GetMapping(value = "/v1/shop/pc/static/report/merchant/activity/collect")
//    CommonResult<Map> merchantActivityCollect(
//            @RequestParam("orgCode") String orgCode,
//            @RequestParam("channelId") Long channelId,
//            @RequestParam("activityId") Long activityId,
//            @RequestParam("startDate") Date startDate,
//            @RequestParam("endDate") Date endDate
//    );
//
//
//
//
//}
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/config/SwaggerConfig.java
@@ -1,58 +1,58 @@
package com.nuvole.four.config;
import com.nuvole.constants.SystemConstants;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
/**
 * 类描述: swagger.config
 *
 * @author dqh
 * @date  2024-04-09 18:16
 * @version 1.0
 **/
@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Bean
    public Docket customDocket() {
        ParameterBuilder ticketPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<Parameter>();
        ticketPar.name(SystemConstants.SHOP_WECHAT_TOKEN_HEADER).description("登录成功token标识")
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(false).build();
        pars.add(ticketPar.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.nuvole.four"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }
    ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("四方支付")
                .description("四方支付接口文档")
                .version("1.0")
                .build();
    }
}
//package com.nuvole.four.config;
//
//import com.nuvole.constants.SystemConstants;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import springfox.documentation.builders.ApiInfoBuilder;
//import springfox.documentation.builders.ParameterBuilder;
//import springfox.documentation.builders.PathSelectors;
//import springfox.documentation.builders.RequestHandlerSelectors;
//import springfox.documentation.schema.ModelRef;
//import springfox.documentation.service.ApiInfo;
//import springfox.documentation.service.Parameter;
//import springfox.documentation.spi.DocumentationType;
//import springfox.documentation.spring.web.plugins.Docket;
//import springfox.documentation.swagger2.annotations.EnableSwagger2;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * 类描述: swagger.config
// *
// * @author dqh
// * @date  2024-04-09 18:16
// * @version 1.0
// **/
//@EnableSwagger2
//@Configuration
//public class SwaggerConfig {
//
//    @Bean
//    public Docket customDocket() {
//        ParameterBuilder ticketPar = new ParameterBuilder();
//        List<Parameter> pars = new ArrayList<Parameter>();
//        ticketPar.name(SystemConstants.SHOP_WECHAT_TOKEN_HEADER).description("登录成功token标识")
//                .modelRef(new ModelRef("string")).parameterType("header")
//                .required(false).build();
//        pars.add(ticketPar.build());
//
//        return new Docket(DocumentationType.SWAGGER_2)
//                .apiInfo(apiInfo())
//                .select()
//                .apis(RequestHandlerSelectors.basePackage("com.nuvole.four"))
//                .paths(PathSelectors.any())
//                .build()
//                .globalOperationParameters(pars);
//    }
//
//
//    ApiInfo apiInfo() {
//        return new ApiInfoBuilder()
//                .title("四方支付")
//                .description("四方支付接口文档")
//                .version("1.0")
//                .build();
//    }
//
//}
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/controller/pc/ActivityFeeController.java
@@ -6,7 +6,6 @@
import com.nuvole.base.domain.SysUser;
import com.nuvole.common.domain.result.CommonResult;
import com.nuvole.common.domain.result.PageBean;
import com.nuvole.four.client.ShopServiceClient;
import com.nuvole.four.contants.Contants;
import com.nuvole.four.controller.BaseController;
import com.nuvole.four.domain.ActivityDistributeRecord;
@@ -30,7 +29,6 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @Description 费率补贴活动管理
@@ -47,7 +45,7 @@
    private final ActivityFeeService activityFeeService;
    private final SysOrgServiceImpl sysOrgService;
    private final ActivityDistributeRecordServiceImpl activityDistributeRecordService;
    private final ShopServiceClient shopServiceClient;
//    private final ShopServiceClient shopServiceClient;
    /**
@@ -176,8 +174,8 @@
            SysUser user = SystemUtil.getLoginUser(Contants.LOGIN_TYPE_PC);
            orgCode = user.getOrgCode();
        }
        CommonResult<PageBean<Map>> mapResult = shopServiceClient.merchantActivityList(orgCode, channelId, activityId, startDate,endDate, pageNumber, pageSize);
        return mapResult;
//        CommonResult<PageBean<Map>> mapResult = shopServiceClient.merchantActivityList(orgCode, channelId, activityId, startDate,endDate, pageNumber, pageSize);
        return new CommonResult<>();
    }
    /**
@@ -198,8 +196,8 @@
            SysUser user = SystemUtil.getLoginUser(Contants.LOGIN_TYPE_PC);
            orgCode = user.getOrgCode();
        }
        CommonResult<Map> mapResult = shopServiceClient.merchantActivityCollect(orgCode, channelId, activityId, startDate,endDate);
        return mapResult;
//        CommonResult<Map> mapResult = shopServiceClient.merchantActivityCollect(orgCode, channelId, activityId, startDate,endDate);
        return new CommonResult<>();
    }
    /**
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/controller/pc/ActivityShopRecordController.java
@@ -8,7 +8,7 @@
import com.nuvole.base.domain.SysUser;
import com.nuvole.common.domain.result.CommonResult;
import com.nuvole.common.domain.result.PageBean;
import com.nuvole.four.client.ShopServiceClient;
//import com.nuvole.four.client.ShopServiceClient;
import com.nuvole.four.contants.Contants;
import com.nuvole.four.controller.BaseController;
import com.nuvole.four.domain.ActivityShopRecord;
@@ -47,7 +47,7 @@
    private final ActivityShopRecordService activityShopRecordService;
    private final ChannelInfoService channelInfoService;
    private final ShopServiceClient shopServiceClient;
//    private final ShopServiceClient shopServiceClient;
    @ApiOperation(value = "查询列表", notes = "查询列表")
    @ApiImplicitParams({@ApiImplicitParam(name = "ActivityShopRecordQuery")})
@@ -171,7 +171,8 @@
        if(StrUtil.isBlank(queryOrgCode)){
            queryOrgCode = user.getOrgCode();
        }
        CommonResult<PageBean<Map>> mapResult = shopServiceClient.getMerchantShopExtendList(queryOrgCode,merchantId,shopName,managerName,channelId,"channelIdNotNull",pageNumber,pageSize);
//        CommonResult<PageBean<Map>> mapResult = shopServiceClient.getMerchantShopExtendList(queryOrgCode,merchantId,shopName,managerName,channelId,"channelIdNotNull",pageNumber,pageSize);
        CommonResult<PageBean<Map>> mapResult = new CommonResult<>();
        List<Map> mapList = mapResult.getData().getRows();
        if(!CollectionUtils.isEmpty(mapList)){
            String[] idsArr = mapList.stream()
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/controller/pc/ChannelOrgConfigController.java
@@ -1,5 +1,6 @@
package com.nuvole.four.controller.pc;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.nuvole.base.domain.SysUser;
import com.nuvole.common.domain.emnu.CommonResultEmnu;
@@ -16,7 +17,6 @@
import com.nuvole.util.PageUtils;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -54,7 +54,7 @@
            @ApiParam(name = "sortName", value = "排序名称") String sortName,
            @ApiParam(name = "sortOrder", value = "排序方式") String sortOrder
    ) {
        if (StringUtils.isNotBlank(sortName) && StringUtils.isNotBlank(sortOrder)) {
        if (StrUtil.isNotBlank(sortName) && StrUtil.isNotBlank(sortOrder)) {
            PageHelper.orderBy(PageUtils.orderParser(sortName, sortOrder));
        }
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/service/RedisService.java
@@ -1,7 +1,7 @@
package com.nuvole.four.service;
import com.nuvole.four.domain.extend.AppDTO;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.*;
@@ -57,7 +57,7 @@
            Map map = new HashMap();
            // todo xuekang
            // StringEscapeUtils.unescapeHtml4(key)
            map.put("key",StringEscapeUtils.unescapeHtml(key));
            map.put("key", StringEscapeUtils.unescapeHtml4(key));
            map.put("value",value);
            dto.setMap(map);
            AppDTO s = new AppDTO();
@@ -84,7 +84,7 @@
            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
            AppDTO dto = new AppDTO();
            Map map = new HashMap();
            map.put("key",StringEscapeUtils.unescapeHtml(key));
            map.put("key",StringEscapeUtils.unescapeHtml4(key));
            map.put("value",value);
            map.put("expireTime",expireTime);
            map.put("timeUnit",timeUnit);
@@ -131,7 +131,7 @@
     */
    public void remove(final String key) {
        if (exists(key)) {
            redisTemplate.delete(StringEscapeUtils.unescapeHtml(key));
            redisTemplate.delete(StringEscapeUtils.unescapeHtml4(key));
        }
    }
@@ -144,7 +144,7 @@
    public boolean exists(final String key) {
        AppDTO dto = new AppDTO();
        Map map = new HashMap();
        map.put("key",StringEscapeUtils.unescapeHtml(key));
        map.put("key",StringEscapeUtils.unescapeHtml4(key));
        dto.setMap(map);
        AppDTO s = new AppDTO();
        BeanUtils.copyProperties(dto,s);
@@ -163,7 +163,7 @@
        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
        AppDTO dto = new AppDTO();
        Map map = new HashMap();
        map.put("key",StringEscapeUtils.unescapeHtml(key));
        map.put("key",StringEscapeUtils.unescapeHtml4(key));
        dto.setMap(map);
        AppDTO s = new AppDTO();
        BeanUtils.copyProperties(dto,s);
ecosphere/ecosphere-four-payment/src/main/java/com/nuvole/four/service/impl/ActivityShopRecordServiceImpl.java
@@ -1,7 +1,6 @@
package com.nuvole.four.service.impl;
import com.nuvole.base.domain.SysUser;
import com.nuvole.four.client.ShopServiceClient;
import com.nuvole.four.contants.Contants;
import com.nuvole.four.domain.ActivityShopRecord;
import com.nuvole.four.domain.dto.ActivityShopRecordDto;
@@ -16,6 +15,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -31,7 +31,7 @@
public class ActivityShopRecordServiceImpl implements ActivityShopRecordService {
    private final ActivityShopRecordMapper activityShopRecordMapper;
    private final ShopServiceClient shopServiceClient;
//    private final ShopServiceClient shopServiceClient;
    private final ActivityFeeMapper activityFeeMapper;
@@ -87,7 +87,8 @@
        //关联shop库查询商户、店铺等字段信息
        List<Long> shopIds = dtoList.stream().map(ActivityShopRecord::getMerchantShopId).collect(Collectors.toList());
        String ids = shopIds.stream().map(String::valueOf).collect(Collectors.joining(","));
        List<Map> mapList = shopServiceClient.selectShopMsgByIds(ids);
//        List<Map> mapList = shopServiceClient.selectShopMsgByIds(ids);
        List<Map> mapList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(mapList)){
            // 将 mapList 中的数据合并到 dtoList 中
            dtoList.forEach( d -> {
ecosphere/ecosphere-four-payment/src/main/resources/application-dev.yml
@@ -18,11 +18,36 @@
    url: jdbc:mysql://116.198.40.76:3306/ecosphere_shop_basics?characterEncoding=utf8&autoReconnect=true&useSSL=false
    username: root
    password: Bjjmy_2020
  redis:
    host: 116.198.40.76
    port: 6379
    password: Jmy2019.
    database: 2
  data:
    redis:
      host: 116.198.40.76
      port: 6379
      # 密码(如没有密码请注释掉)
      password: Jmy2019.
      database: 0
      timeout: 10s
      ssl.enabled: false
redisson:
  # redis key前缀
  keyPrefix: fourPay
  # 线程池数量
  threads: 4
  # Netty线程池数量
  nettyThreads: 8
  # 单节点配置
  singleServerConfig:
    # 客户端名称
    clientName: ${spring.application.name}
    # 最小空闲连接数
    connectionMinimumIdleSize: 8
    # 连接池大小
    connectionPoolSize: 32
    # 连接空闲超时,单位:毫秒
    idleConnectionTimeout: 10000
    # 命令等待超时,单位:毫秒
    timeout: 3000
    # 发布和订阅连接池大小
    subscriptionConnectionPoolSize: 50
  #rabbitMQ
  rabbitmq:
    host: 116.198.40.76
@@ -41,7 +66,7 @@
  #证书TurstKey
  clientTurstKey: ENC(G8cCcaj9gPzCLXW2vy4y3ap/Llx+W3GkvtpQP7vwFFo=)
swagger:
  enable: true
  enable: false
#外网接口是否走call服务
service-type: false
ecosphere/ecosphere-four-payment/src/main/resources/application.yml
@@ -1,37 +1,41 @@
swagger:
  base-package: com.nuvole.four
spring:
  http:
    encoding:
      charset: UTF-8
      enabled: true
      force: true
  servlet:
    #允许传输文件大小配置
    multipart:
      max-file-size: 100Mb
      max-request-size: 200Mb
#    servlet:
#    #允许传输文件大小配置
#    multipart:
#      max-file-size: 100Mb
#      max-request-size: 200Mb
  application:
    name: service-four-payment
  redis:
    jedis:
      pool:
        max-active: 2000
        max-wait: -1
        max-idle: 10
        min-idle: 0
    timeout: 30000
#  redis:
#    jedis:
#      pool:
#        max-active: 2000
#        max-wait: -1
#        max-idle: 10
#        min-idle: 0
#    timeout: 30000
    #druid 链接池
  rabbitmq:
    publisher-confirms: true
#    publisher-confirms: true
    publisher-returns: true
    listener:
      direct:
        acknowledge-mode: manual
      simple:
        acknowledge-mode: manual
    port: 5672
    username: super
    password: Jmy2019.
    virtual-host: ecosphere
    host: 116.198.40.76
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://116.198.40.76:3306/ecosphere_shop_basics?characterEncoding=utf8&autoReconnect=true&useSSL=false
      username: root
      password: Bjjmy_2020
      min-idle: 5
      initial-size: 5
      async-init: true
@@ -82,17 +86,22 @@
            metadata-allow: true
          log-violation: true
          throw-exception: true
#    driver-class-name: com.mysql.jdbc.Driver
#    url: jdbc:mysql://116.198.40.76:3306/ecosphere_shop_basics?characterEncoding=utf8&autoReconnect=true&useSSL=false
#    username: root
#    password: Bjjmy_2020
  #资源文件映射
  resources:
    static-locations: classpath:/static/,classpath:/public/,file:${file.upPath},file:${file.sysPath},file:${file.poster.path}
  banner:
    location: banner.txt
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  web:
    resources:
      static-locations: classpath:/static/,classpath:/public/,file:${file.upPath},file:${file.sysPath},file:${file.poster.path}
#mybaits映射配置
mybatis:
  mapper-locations: classpath:mapping/**/*Mapper.xml
  mapper-locations: classpath*:mapping/**/*Mapper.xml
  type-aliases-package: com.nuvole.four.domain
  configuration:
    map-underscore-to-camel-case: true
@@ -103,7 +112,6 @@
  params: count=countSql
#日志配置
logging:
  file: log/out.log
  pattern:
    console: "%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n"
    file: "%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n"
@@ -129,6 +137,11 @@
    max-threads: 1000
    max-connections: 1000
    basedir: tomcat
  servlet:
    encoding:
      charset: UTF-8
      enabled: true
      force: true
tl:
  could:
ecosphere/pom.xml
@@ -11,6 +11,7 @@
    <modules>
        <module>ecosphere-common</module>
        <module>ecosphere-base-rest</module>
        <module>ecosphere-four-payment</module>
    </modules>
    <artifactId>ecosphere</artifactId>
@@ -22,28 +23,28 @@
    <dependencies>
        <!-- 自定义负载均衡(多团队开发使用) -->
<!--        <dependency>-->
<!--            <groupId>org.dromara</groupId>-->
<!--            <artifactId>ruoyi-common-loadbalancer</artifactId>-->
<!--        </dependency>-->
        <!--        <dependency>-->
        <!--            <groupId>org.dromara</groupId>-->
        <!--            <artifactId>ruoyi-common-loadbalancer</artifactId>-->
        <!--        </dependency>-->
        <!-- ELK 日志收集 -->
<!--        <dependency>-->
<!--            <groupId>org.dromara</groupId>-->
<!--            <artifactId>ruoyi-common-logstash</artifactId>-->
<!--        </dependency>-->
        <!--        <dependency>-->
        <!--            <groupId>org.dromara</groupId>-->
        <!--            <artifactId>ruoyi-common-logstash</artifactId>-->
        <!--        </dependency>-->
        <!-- skywalking 日志收集 -->
<!--        <dependency>-->
<!--            <groupId>org.dromara</groupId>-->
<!--            <artifactId>ruoyi-common-skylog</artifactId>-->
<!--        </dependency>-->
        <!--        <dependency>-->
        <!--            <groupId>org.dromara</groupId>-->
        <!--            <artifactId>ruoyi-common-skylog</artifactId>-->
        <!--        </dependency>-->
        <!-- prometheus 监控 -->
<!--        <dependency>-->
<!--            <groupId>org.dromara</groupId>-->
<!--            <artifactId>ruoyi-common-prometheus</artifactId>-->
<!--        </dependency>-->
        <!--        <dependency>-->
        <!--            <groupId>org.dromara</groupId>-->
        <!--            <artifactId>ruoyi-common-prometheus</artifactId>-->
        <!--        </dependency>-->
        <dependency>
            <groupId>junit</groupId>
@@ -54,31 +55,31 @@
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-crypto</artifactId>
<!--            <version>4.5.3</version>-->
            <!--            <version>4.5.3</version>-->
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-core</artifactId>
<!--            <version>4.5.3</version>-->
            <!--            <version>4.5.3</version>-->
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-extra</artifactId>
<!--            <version>4.5.3</version>-->
            <!--            <version>4.5.3</version>-->
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-poi</artifactId>
<!--            <version>4.5.3</version>-->
            <!--            <version>4.5.3</version>-->
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-http</artifactId>
<!--            <version>4.5.3</version>-->
            <!--            <version>4.5.3</version>-->
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
@@ -140,11 +141,11 @@
            <version>0.1.54</version>
        </dependency>
        <dependency>
            <groupId>org.owasp.esapi</groupId>
            <artifactId>esapi</artifactId>
            <version>2.1.0.1</version>
        </dependency>
        <!--        <dependency>
                    <groupId>org.owasp.esapi</groupId>
                    <artifactId>esapi</artifactId>
                    <version>2.1.0.1</version>
                </dependency>-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
@@ -159,21 +160,35 @@
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
                <groupId>org.dromara</groupId>
                <artifactId>ecosphere-common</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.dromara</groupId>
                <artifactId>ecosphere-base-rest</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
                <version>3.1.7</version>
            </dependency>
            <dependency>
                <groupId>org.owasp.antisamy</groupId>
                <artifactId>antisamy</artifactId>
                <version>1.5.8</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
@@ -186,16 +201,16 @@
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.0.3.RELEASE</version>
            </dependency>
            <!--            <dependency>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-starter-web</artifactId>
                            <version>2.0.3.RELEASE</version>
                        </dependency>-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.10</version>
                <version>1.2.11</version>
            </dependency>
            <dependency>
@@ -222,30 +237,30 @@
                <version>2.5.1</version>
            </dependency>
            <dependency>
                <groupId>com.nuvole</groupId>
                <artifactId>ecosphere-common</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <!--            <dependency>
                            <groupId>com.nuvole</groupId>
                            <artifactId>ecosphere-common</artifactId>
                            <version>1.0-SNAPSHOT</version>
                        </dependency>-->
            <dependency>
                <groupId>com.nuvole</groupId>
                <artifactId>ecosphere-base-rest</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <!--            <dependency>
                            <groupId>com.nuvole</groupId>
                            <artifactId>ecosphere-base-rest</artifactId>
                            <version>1.0-SNAPSHOT</version>
                        </dependency>-->
            <dependency>
                <groupId>com.nuvole</groupId>
                <artifactId>ecosphere-shop-rest</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <!--            <dependency>
                            <groupId>com.nuvole</groupId>
                            <artifactId>ecosphere-shop-rest</artifactId>
                            <version>1.0-SNAPSHOT</version>
                        </dependency>-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
                <version>2.0.3.RELEASE</version>
            </dependency>
            <!--            <dependency>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-starter-amqp</artifactId>
                            <version>2.0.3.RELEASE</version>
                        </dependency>-->
            <dependency>
                <groupId>com.github.ulisesbocchio</groupId>
@@ -265,10 +280,11 @@
                <version>3.4.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <properties>
<!--        <revision>2.1.2</revision>-->
        <!--<revision>2.1.2</revision>-->
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
        <sentinel.version>1.8.6</sentinel.version>
        <seata.version>1.7.1</seata.version>
pom.xml
@@ -376,8 +376,9 @@
        <module>ruoyi-modules</module>
        <module>ruoyi-api</module>
        <module>ruoyi-common</module>
        <module>ruoyi-example</module>
        <module>ecosphere</module>
        <module>ruoyi-example</module>
    </modules>
    <packaging>pom</packaging>
ruoyi-visual/ruoyi-nacos/src/main/resources/application.properties
@@ -39,9 +39,9 @@
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.url.0=jdbc:mysql://116.198.40.76:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=root
db.password.0=Bjjmy_2020
#*************** Naming Module Related Configurations ***************#
### Data dispatch task execution period in milliseconds: