From d1dd806204e7935399f0f5c57da15d063d574575 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 27 Jan 2026 17:03:08 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=20=E8=8E=B7=E5=8F=96to?= =?UTF-8?q?ken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/account/util/AcAccountUtil.java | 37 ++++++++---------- .../account/util/WechatMiniMsgUtil.java | 28 +++++++------ .../market/service/impl/AppWxServiceImpl.java | 39 +++++++------------ .../market/service/impl/WxServiceImpl.java | 39 ++++++------------- .../service/product/util/WxAccountUtil.java | 28 +++++++------ 5 files changed, 69 insertions(+), 102 deletions(-) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/util/AcAccountUtil.java b/cash-service/account-service/src/main/java/com/czg/service/account/util/AcAccountUtil.java index 6cad3e069..63a4f1c63 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/util/AcAccountUtil.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/util/AcAccountUtil.java @@ -1,17 +1,13 @@ package com.czg.service.account.util; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.czg.constants.ParamCodeCst; -import com.czg.service.RedisService; import com.czg.system.service.SysParamsService; -import jakarta.annotation.Resource; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.LinkedHashMap; @@ -26,9 +22,7 @@ import java.util.Map; @Slf4j @Component public class AcAccountUtil { - @Resource - @Lazy - private RedisService redisService; + @DubboReference private SysParamsService paramsService; @@ -54,7 +48,7 @@ public class AcAccountUtil { String accessToken = getAccessToken(); // String accessToken = "97_HZVThQrtvOiCZGrr23ZHN0cVpHBJHc18RSFHU6dvkQDMAme4GsG0NU-Dax1HP5Wx-aGa1l35KaqiMVv61TCj0Qk8DK1LC6kQ8uKLDfgRYVJjX3QjcelmIjp4PCkERBeABAUHR"; if (StrUtil.isBlank(accessToken)) { - log.error("获取 access_token 失败"); + log.error("银收客czg 公众号获取 access_token 失败"); return ""; } String bodyJson = "{\"action_info\":{\"scene\":{\"scene_str\":\"" + userId + "\"}},\"action_name\":\"QR_STR_SCENE\",\"expire_seconds\":\"2592000\"}"; @@ -87,23 +81,24 @@ public class AcAccountUtil { public String getAccessToken() { - String accessToken = Convert.toStr(redisService.get("wx:ac:AccessToken")); - if (StrUtil.isNotEmpty(accessToken)) { - return accessToken; - } Map userAc = paramsService.getParamsByMap("user_ac_key_set", ParamCodeCst.USER_AC_KEY_SET); // 用户小程序参数 String acAppId = userAc.get(ParamCodeCst.Wechat.Ac.USER_WX_AC_APP_ID); String acSecrete = userAc.get(ParamCodeCst.Wechat.Ac.USER_WX_AC_SECRETE); - String resp = HttpUtil.get(StrUtil.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}", acAppId, acSecrete)); - JSONObject respInfo = JSONObject.parseObject(resp); - if (!respInfo.containsKey("access_token")) { - log.warn("公众号获取token失败, 响应内容: {}", resp); - return ""; + + String resp = HttpUtil.get(StrUtil.format("https://access-token.sxczgkj.com/accessToken?appId={}&appSecret={}", acAppId, acSecrete)); +// 响应 {"accessToken":"100_6C_jltHANT1y2Fot5PXKFDzPXTyWumCsao0oMoNRvJUTuxS0IOVO4nBmjdmx5dZfYItShFVSAKYzNDf7ZGLPlx52ii1Y1qerrbbSmIiLWCrec5qjBY4gV5Tfv8YKKTdABAEEN","appId":"wx212769170d2c6b2a"} + if (StrUtil.isNotBlank(resp)) { + JSONObject respInfo = JSONObject.parseObject(resp); + return respInfo.getString("accessToken"); + } else { + String resp2 = HttpUtil.get(StrUtil.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}", acAppId, acSecrete)); + JSONObject respInfo = JSONObject.parseObject(resp2); + if (!respInfo.containsKey("access_token")) { + log.warn("银收客czg 公众号获取token失败, 响应内容: {}", resp2); + return ""; + } + return respInfo.getString("access_token"); } - accessToken = respInfo.getString("access_token"); - int expiresIn = respInfo.getInteger("expires_in"); - redisService.set("wx:ac:AccessToken", accessToken, expiresIn - 10); - return accessToken; } } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatMiniMsgUtil.java b/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatMiniMsgUtil.java index 126229f04..956042aca 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatMiniMsgUtil.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/util/WechatMiniMsgUtil.java @@ -1,7 +1,6 @@ package com.czg.service.account.util; import cn.hutool.core.codec.Base64; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.symmetric.AES; @@ -11,6 +10,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.czg.config.RedisCst; import com.czg.constants.ParamCodeCst; +import com.czg.exception.CzgException; import com.czg.resp.CzgResult; import com.czg.service.RedisService; import com.czg.system.dto.SysParamsDTO; @@ -140,7 +140,7 @@ public class WechatMiniMsgUtil { public String getAccountOpenId(String code) { Map shopAc = sysParamsService.getParamsByMap("shop_ac_key_set", ParamCodeCst.SHOP_AC_KEY_SET); - String accountAppId = shopAc.get(ParamCodeCst.Wechat.Ac.SHOP_WX_AC_APP_ID); + String accountAppId = shopAc.get(ParamCodeCst.Wechat.Ac.SHOP_WX_AC_APP_ID); String accountSecrete = shopAc.get(ParamCodeCst.Wechat.Ac.SHOP_WX_AC_SECRETE); String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?"; Map requestUrlParam = new HashMap<>(); @@ -162,25 +162,23 @@ public class WechatMiniMsgUtil { //获取小程序token private String getAccessToken() { - String accessToken = Convert.toStr(redisService.get("wx:mini:AccessToken")); - if (StrUtil.isNotEmpty(accessToken)) { - return accessToken; - } // 商户小程序参数 Map shopMiniKeyMap = sysParamsService.getParamsByMap("shop_mini_key_set", ParamCodeCst.SHOP_MINI_KEY_SET); String appId = shopMiniKeyMap.get(ParamCodeCst.Wechat.Mini.SHOP_WX_APP_ID); String secrete = shopMiniKeyMap.get(ParamCodeCst.Wechat.Mini.SHOP_WX_SECRETE); - String url = String.format("%s?grant_type=client_credential&appid=%s&secret=%s", TOKEN_URL, appId, secrete); - String response = HttpUtil.get(url); - JSONObject jsonResponse = JSONObject.parseObject(response); - if (!jsonResponse.containsKey("access_token")) { - throw new RuntimeException("Failed to retrieve access token: " + response); + String resp = HttpUtil.get(StrUtil.format("https://access-token.sxczgkj.com/accessToken?appId={}&appSecret={}", appId, secrete)); + if (StrUtil.isNotBlank(resp)) { + JSONObject respInfo = JSONObject.parseObject(resp); + return respInfo.getString("accessToken"); + } else { + String response = HttpUtil.get(String.format("%s?grant_type=client_credential&appid=%s&secret=%s", TOKEN_URL, appId, secrete)); + JSONObject jsonResponse = JSONObject.parseObject(response); + if (!jsonResponse.containsKey("access_token")) { + throw new CzgException("零点八零商户端 获取access_token失败: " + response); + } + return jsonResponse.getString("access_token"); } - accessToken = jsonResponse.getString("access_token"); - int expiresIn = jsonResponse.getInteger("expires_in"); - redisService.set("wx:mini:AccessToken", accessToken, expiresIn - 10); - return accessToken; } /** diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/AppWxServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/AppWxServiceImpl.java index c5037ba50..ec9581f72 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/AppWxServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/AppWxServiceImpl.java @@ -1,15 +1,14 @@ package com.czg.service.market.service.impl; +import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSONObject; import com.czg.constants.ParamCodeCst; import com.czg.exception.CzgException; -import com.czg.service.RedisService; import com.czg.system.service.SysParamsService; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; @@ -17,6 +16,7 @@ import java.util.Map; /** * 微信支付service + * * @author Administrator */ @Component @@ -27,35 +27,26 @@ public class AppWxServiceImpl extends BaseWx { @DubboReference private SysParamsService paramsService; - public AppWxServiceImpl(@Autowired RedisService autoRedisService) { - this.redisService = autoRedisService; + public AppWxServiceImpl() { config = new Config(); } @Override public String getAccessToken(boolean refresh) { init(); - Object token = redisService.get("wx:user:access_token"); - if (!refresh && token instanceof String) { - return (String) token; - } - String response = HttpUtil.get(WX_ACCESS_TOKEN_URL, - Map.of("grant_type", "client_credential", "appid", config.appId, "secret", config.appSecret) - ); - - log.info("获取access_token响应: {}", response); - JSONObject jsonObject = JSONObject.parseObject(response); - String accessToken = jsonObject.getString("access_token"); - if (accessToken == null) { - throw new RuntimeException("获取access_token失败"); + String resp = HttpUtil.get(StrUtil.format("https://access-token.sxczgkj.com/accessToken?appId={}&appSecret={}", config.appId, config.appSecret)); +// 响应 {"accessToken":"100_6C_jltHANT1y2Fot5PXKFDzPXTyWumCsao0oMoNRvJUTuxS0IOVO4nBmjdmx5dZfYItShFVSAKYzNDf7ZGLPlx52ii1Y1qerrbbSmIiLWCrec5qjBY4gV5Tfv8YKKTdABAEEN","appId":"wx212769170d2c6b2a"} + if (StrUtil.isNotBlank(resp)) { + JSONObject respInfo = JSONObject.parseObject(resp); + return respInfo.getString("accessToken"); + } else { + String response = HttpUtil.get(WX_ACCESS_TOKEN_URL, + Map.of("grant_type", "client_credential", "appid", config.appId, "secret", config.appSecret) + ); + JSONObject jsonObject = JSONObject.parseObject(response); + return jsonObject.getString("access_token"); } - Long expiresIn = jsonObject.getLong("expires_in"); - if (expiresIn == null) { - expiresIn = DEFAULT_EXPIRES_IN; - } - redisService.set("wx:user:access_token", accessToken, expiresIn - EXPIRES_OFFSET); - return accessToken; } @Override @@ -65,7 +56,7 @@ public class AppWxServiceImpl extends BaseWx { // 微信支付参数 Map payKeyMap = paramsService.getParamsByMap("pay_key_set", ParamCodeCst.PAY_KEY_SET); - + // 小程序id config.appId = userMiniKeyMap.get(ParamCodeCst.Wechat.Mini.USER_WX_APP_ID); // 小程序secrete diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/WxServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/WxServiceImpl.java index e637ed3c1..7df9f9076 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/WxServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/WxServiceImpl.java @@ -1,18 +1,16 @@ package com.czg.service.market.service.impl; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSONObject; import com.czg.constants.ParamCodeCst; -import com.czg.service.RedisService; import com.czg.system.service.SysParamsService; import com.ijpay.core.kit.RsaKit; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Map; -import java.util.Set; /** @@ -27,38 +25,25 @@ public class WxServiceImpl extends BaseWx { @DubboReference private SysParamsService paramsService; - private final Set shopMiniKeys = Set.of(ParamCodeCst.Wechat.Mini.SHOP_WX_APP_ID, ParamCodeCst.Wechat.Mini.SHOP_WX_SECRETE); - - - public WxServiceImpl(@Autowired RedisService redisService) { - this.redisService = redisService; + public WxServiceImpl() { config = new Config(); } @Override public String getAccessToken(boolean refresh) { init(); - Object token = redisService.get("wx:shop:access_token"); - if (!refresh && token instanceof String) { - return (String) token; - } - String response = HttpUtil.get(WX_ACCESS_TOKEN_URL, - Map.of("grant_type", "client_credential", "appid", config.appId, "secret", config.appSecret) - ); - - log.info("获取access_token响应: {}", response); - JSONObject jsonObject = JSONObject.parseObject(response); - String accessToken = jsonObject.getString("access_token"); - if (accessToken == null) { - throw new RuntimeException("获取access_token失败"); + String resp = HttpUtil.get(StrUtil.format("https://access-token.sxczgkj.com/accessToken?appId={}&appSecret={}", config.appId, config.appSecret)); + if (StrUtil.isNotBlank(resp)) { + JSONObject respInfo = JSONObject.parseObject(resp); + return respInfo.getString("accessToken"); + } else { + String response = HttpUtil.get(WX_ACCESS_TOKEN_URL, + Map.of("grant_type", "client_credential", "appid", config.appId, "secret", config.appSecret) + ); + JSONObject jsonObject = JSONObject.parseObject(response); + return jsonObject.getString("access_token"); } - Long expiresIn = jsonObject.getLong("expires_in"); - if (expiresIn == null) { - expiresIn = DEFAULT_EXPIRES_IN; - } - redisService.set("wx:shop:access_token", accessToken, expiresIn - EXPIRES_OFFSET); - return accessToken; } @Override diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/util/WxAccountUtil.java b/cash-service/product-service/src/main/java/com/czg/service/product/util/WxAccountUtil.java index a94e6bc3c..3c18e0c99 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/util/WxAccountUtil.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/util/WxAccountUtil.java @@ -7,12 +7,9 @@ import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.czg.exception.CzgException; -import com.czg.service.RedisService; -import jakarta.annotation.Resource; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.math.BigDecimal; @@ -41,9 +38,6 @@ public class WxAccountUtil { @Value("${wx.ysk.warnMsgTmpId}") private String warnMsgTmpId; - @Resource - @Lazy - private RedisService redisService; static LinkedHashMap linkedHashMap = new LinkedHashMap<>(); @@ -97,16 +91,20 @@ public class WxAccountUtil { } public String getAccessToken() { - String resp = HttpUtil.get(StrUtil.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}", appId, secrete)); - JSONObject respInfo = JSONObject.parseObject(resp); - if (!respInfo.containsKey("access_token")) { - log.warn("公众号获取token失败, 响应内容: {}", resp); - throw new RuntimeException(resp); + String resp = HttpUtil.get(StrUtil.format("https://access-token.sxczgkj.com/accessToken?appId={}&appSecret={}", appId, secrete)); +// 响应 {"accessToken":"100_6C_jltHANT1y2Fot5PXKFDzPXTyWumCsao0oMoNRvJUTuxS0IOVO4nBmjdmx5dZfYItShFVSAKYzNDf7ZGLPlx52ii1Y1qerrbbSmIiLWCrec5qjBY4gV5Tfv8YKKTdABAEEN","appId":"wx212769170d2c6b2a"} + if(StrUtil.isNotBlank(resp)){ + JSONObject respInfo = JSONObject.parseObject(resp); + return respInfo.getString("accessToken"); + }else { + String resp1 = HttpUtil.get(StrUtil.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}", appId, secrete)); + JSONObject respInfo = JSONObject.parseObject(resp1); + if (!respInfo.containsKey("access_token")) { + log.warn("银收客 公众号获取token失败, 响应内容: {}", resp1); + throw new CzgException(resp); + } + return respInfo.getString("access_token"); } - String accessToken = respInfo.getString("access_token"); -// int expiresIn = respInfo.getInteger("expires_in"); -// redisService.set("accessToken", accessToken, expiresIn - 10); - return accessToken; } public JSONObject sendTemplateMsg(String detail, String templateId, String toUserOpenId, Map data) { From 19ed77b35bc9702dfeae418041d5f6ed6b1a0ab6 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 29 Jan 2026 14:47:09 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E6=89=AB=E7=A0=81=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czg/controller/pay/OrderPayController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java b/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java index c05dfc8ef..b63cb7d49 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java @@ -179,6 +179,8 @@ public class OrderPayController { public CzgResult> js2PayOrder(HttpServletRequest request, @RequestBody OrderPayParamDTO payParam) { if ("alipay".equals(payParam.getPayType())) { payParam.setPayType(PayCst.Type.ALIPAY); + } else if ("aliPay".equals(payParam.getPayType())) { + payParam.setPayType(PayCst.Type.ALIPAY); } else if ("wechatPay".equals(payParam.getPayType())) { payParam.setPayType(PayCst.Type.WECHAT); } else { From 9c69c8dcbc0a17ab60386758fb99a142aee53a32 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 29 Jan 2026 17:11:28 +0800 Subject: [PATCH 03/12] =?UTF-8?q?OPTIONS=E8=AF=B7=E6=B1=82=E6=94=BE?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/czg/config/SaTokenConfigure.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java index df1ac3e23..fec3464ba 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java @@ -1,6 +1,5 @@ package com.czg.config; -import cn.dev33.satoken.application.ApplicationInfo; import cn.dev33.satoken.config.SaTokenConfig; import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.interceptor.SaInterceptor; @@ -59,13 +58,13 @@ public class SaTokenConfigure implements WebMvcConfigurer { // 注册路由拦截器,自定义认证规则 registry.addInterceptor(new SaInterceptor(handler -> { log.info(SaHolder.getRequest().getRequestPath()); - // 重置根路径,防止satoken切割根路径导致匹配不到路径 - ApplicationInfo.routePrefix = ""; - + if ("OPTIONS".equalsIgnoreCase(SaHolder.getRequest().getMethod())) { + return; + } SaRouter // 完全开放的路径(不需要任何认证) .match("/user/login", "/user/geo/**", "/user/home/**", - "/user/dict/**", "/user/openId","/admin/auth/**", + "/user/dict/**", "/user/openId", "/admin/auth/**", "/admin/shopMsgPush/subscribe/**", "/admin/coupon/grant", "/pay/**", From 6b0423a2baef0a66cd85bdb932145ff452fc2faa Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 29 Jan 2026 17:24:44 +0800 Subject: [PATCH 04/12] =?UTF-8?q?saToken=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/czg/config/SaTokenConfigure.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java index fec3464ba..9519c597b 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java @@ -57,7 +57,7 @@ public class SaTokenConfigure implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { // 注册路由拦截器,自定义认证规则 registry.addInterceptor(new SaInterceptor(handler -> { - log.info(SaHolder.getRequest().getRequestPath()); + log.info("{}: {}", SaHolder.getRequest().getMethod(), SaHolder.getRequest().getRequestPath()); if ("OPTIONS".equalsIgnoreCase(SaHolder.getRequest().getMethod())) { return; } From 3fd032c1d01f08502434862636834b843c2b06b4 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 29 Jan 2026 17:34:31 +0800 Subject: [PATCH 05/12] =?UTF-8?q?OPTIONS=E6=94=BE=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/czg/config/SaTokenConfigure.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java index 9519c597b..46266a71c 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java @@ -59,9 +59,13 @@ public class SaTokenConfigure implements WebMvcConfigurer { registry.addInterceptor(new SaInterceptor(handler -> { log.info("{}: {}", SaHolder.getRequest().getMethod(), SaHolder.getRequest().getRequestPath()); if ("OPTIONS".equalsIgnoreCase(SaHolder.getRequest().getMethod())) { + SaRouter.back(); return; } + log.info("放行1"); SaRouter + .match(r -> "OPTIONS".equalsIgnoreCase(SaHolder.getRequest().getMethod())) + .stop() // 完全开放的路径(不需要任何认证) .match("/user/login", "/user/geo/**", "/user/home/**", "/user/dict/**", "/user/openId", "/admin/auth/**", From 7d640b4f9cd354ede8644356841534e6f0d11989 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 29 Jan 2026 17:57:18 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/czg/controller/pay/OrderPayController.java | 6 ++---- .../src/main/java/com/czg/config/SaTokenConfigure.java | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java b/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java index b63cb7d49..1dd810962 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/pay/OrderPayController.java @@ -177,11 +177,9 @@ public class OrderPayController { @PostMapping("/shopPayApi/js2Pay") @Debounce(value = "#payParam.checkOrderPay.orderId") public CzgResult> js2PayOrder(HttpServletRequest request, @RequestBody OrderPayParamDTO payParam) { - if ("alipay".equals(payParam.getPayType())) { + if ("ALIPAY".equals(payParam.getPayType())) { payParam.setPayType(PayCst.Type.ALIPAY); - } else if ("aliPay".equals(payParam.getPayType())) { - payParam.setPayType(PayCst.Type.ALIPAY); - } else if ("wechatPay".equals(payParam.getPayType())) { + } else if ("WECHAT".equals(payParam.getPayType())) { payParam.setPayType(PayCst.Type.WECHAT); } else { throw new CzgException(payParam.getPayType() + "支付方式错误"); diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java index 46266a71c..7146d1cb8 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java @@ -62,7 +62,6 @@ public class SaTokenConfigure implements WebMvcConfigurer { SaRouter.back(); return; } - log.info("放行1"); SaRouter .match(r -> "OPTIONS".equalsIgnoreCase(SaHolder.getRequest().getMethod())) .stop() From 4a6af603528c7eaebcd4fa5ab97888071d3e919a Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 30 Jan 2026 17:02:49 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E5=88=86=E4=BA=AB=E9=85=8D=E7=BD=AE=20?= =?UTF-8?q?=E5=85=A8=E6=B0=91=E8=82=A1=E4=B8=9C=E7=BE=A4=E8=81=8A=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czg/controller/admin/ADisGroupController.java | 2 +- .../java/com/czg/controller/admin/AShareBaseController.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/ADisGroupController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/ADisGroupController.java index 212c6dcef..1442753cd 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/ADisGroupController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/ADisGroupController.java @@ -41,7 +41,7 @@ public class ADisGroupController { if (share == null) { return CzgResult.success(mkDistributionGroupService.save(group)); } else { - return CzgResult.success(mkDistributionGroupService.updateById(group, false)); + return CzgResult.success(mkDistributionGroupService.updateById(group)); } } } \ No newline at end of file diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/AShareBaseController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/AShareBaseController.java index 6d10b3d3e..7a5c88a19 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/AShareBaseController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/AShareBaseController.java @@ -41,6 +41,7 @@ public class AShareBaseController { if (share == null) { return CzgResult.success(mkShareBaseService.save(shareBase)); } else { + shareBase.setCreateTime(share.getCreateTime()); return CzgResult.success(mkShareBaseService.updateById(shareBase, false)); } } From ccc18fc2294dcc8574b540661ec0663184863456 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 31 Jan 2026 09:56:29 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E5=88=86=E9=94=80=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20=E4=BC=98=E6=83=A0=E5=88=B8=E8=8E=B7?= =?UTF-8?q?=E5=BE=97=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/MkDistributionLevelConfigDTO.java | 22 ++++++++----------- .../impl/MkShopCouponRecordServiceImpl.java | 4 +++- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionLevelConfigDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionLevelConfigDTO.java index 5e6bb20c2..51431d320 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionLevelConfigDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionLevelConfigDTO.java @@ -1,16 +1,17 @@ package com.czg.market.dto; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import com.alibaba.fastjson2.annotation.JSONField; -import jakarta.validation.constraints.*; -import lombok.experimental.Accessors; -import java.io.Serial; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; /** * 分销员等级配置 实体类。 @@ -50,12 +51,7 @@ public class MkDistributionLevelConfigDTO implements Serializable { * 一级分销比例 */ @NotNull(message = "一级分销比例不为空") - private BigDecimal levelOneCommission; - - /** - * 二级分销比例 - */ - private BigDecimal levelTwoCommission; + private BigDecimal commission; } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopCouponRecordServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopCouponRecordServiceImpl.java index 1ffbcb1b1..dec262cbb 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopCouponRecordServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopCouponRecordServiceImpl.java @@ -67,12 +67,14 @@ public class MkShopCouponRecordServiceImpl extends ServiceImpl TARGET_KEY = Arrays.asList("消费赠券", "充值赠券", "管理员赠送", "兑换码兑换", "群聊发放", "生日赠券", - "购买会员赠券", "短信发放", "公众号发放", "用户弹窗领取", "积分兑换"); + "购买会员赠券", "短信发放", "公众号发放", "用户弹窗领取", "积分兑换", "参与分享获得", "邀请获得"); private static final Map SOURCE_TO_CATEGORY = Map.ofEntries( Map.entry("用户弹窗领取", "用户领取"), Map.entry("兑换码兑换", "用户领取"), Map.entry("积分兑换", "用户领取"), + Map.entry("参与分享获得", "分享获得"), + Map.entry("邀请获得", "分享获得"), Map.entry("群聊发放", "群聊发放"), Map.entry("短信发放", "推广发放"), Map.entry("公众号发放", "推广发放"), From c04a5b8fb18800df80d91f38cdc7f7f72cf1a642 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 31 Jan 2026 10:20:48 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/service/impl/MkDistributionUserServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index 774f8feb0..ce280655c 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -318,12 +318,12 @@ public class MkDistributionUserServiceImpl extends ServiceImpl Date: Sat, 31 Jan 2026 11:09:26 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E9=82=80=E8=AF=B7=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/service/impl/MkDistributionUserServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index ce280655c..e1ae71771 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -265,6 +265,7 @@ public class MkDistributionUserServiceImpl extends ServiceImpl Date: Sat, 31 Jan 2026 11:34:32 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/service/impl/MkDistributionUserServiceImpl.java | 2 +- .../service/market/service/impl/MkShareBaseServiceImpl.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index e1ae71771..ec0862851 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -261,7 +261,6 @@ public class MkDistributionUserServiceImpl extends ServiceImpl distributionUserService.bindInviteUser(fromUserId, toUserId, shopId)); + FunUtils.safeRun(() -> { + distributionUserService.bindInviteUser(fromUserId, toUserId, shopId); + return null; + }, "shareClaim绑定上下级"); } MkShareBase shareBase = getById(shopId); if (shareBase == null || !shareBase.getIsEnabled().equals(1) || StrUtil.isBlank(shareBase.getRewardSharePages())) { From a74e099346fcacd56274b21c54084c7bf4c46726 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 31 Jan 2026 11:40:24 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/market/service/impl/MkShareBaseServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShareBaseServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShareBaseServiceImpl.java index f5ad056dd..78d3c4691 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShareBaseServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShareBaseServiceImpl.java @@ -62,9 +62,8 @@ public class MkShareBaseServiceImpl extends ServiceImpl { + FunUtils.safeRunVoid(() -> { distributionUserService.bindInviteUser(fromUserId, toUserId, shopId); - return null; }, "shareClaim绑定上下级"); } MkShareBase shareBase = getById(shopId);