From 5b5aac37d09cab96aae1f08645c6cfc2616fbb8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Mon, 10 Mar 2025 23:40:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(core):=20=E5=9C=A8=20`WebUtils`=20?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=20`isMicro`=20=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E6=A3=80=E6=B5=8B=E5=BE=AE=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 `isMicro` 方法,通过 `SpringContextHolder` 获取应用上下文并检查 `security.micro` 属性,默认返回 `true`。 --- .../pig4cloud/pigx/common/core/util/WebUtils.java | 5 +++++ .../admin/service/impl/SysFileServiceImpl.java | 14 ++++++++++---- .../pay/handler/impl/AlipayWapPayOrderHandler.java | 5 ++--- .../pay/handler/impl/WeChatMpPayOrderHandler.java | 5 ++--- .../handler/impl/YungouosMergePayOrderHandler.java | 5 ++--- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java index f8fe05f14..c8c764eee 100644 --- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java @@ -273,4 +273,9 @@ public class WebUtils extends org.springframework.web.util.WebUtils { } } + public boolean isMicro() { + return SpringContextHolder.getApplicationContext() + .getEnvironment() + .getProperty("security.micro", Boolean.class, true); + } } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java index cbe5d200e..f5649caf4 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java @@ -37,6 +37,7 @@ import com.pig4cloud.pigx.admin.mapper.SysFileMapper; import com.pig4cloud.pigx.admin.service.SysFileService; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.core.util.WebUtils; import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.common.file.core.FileProperties; import com.pig4cloud.pigx.common.file.core.FileTemplate; @@ -227,10 +228,15 @@ public class SysFileServiceImpl extends ServiceImpl impl SysFile sysFile = new SysFile(); sysFile.setFileName(fileName); - // 对原始文件名进行编码转换 - String originalFilename = new String( - Objects.requireNonNull(file.getOriginalFilename()).getBytes(StandardCharsets.ISO_8859_1), - StandardCharsets.UTF_8); + String originalFilename; + if (WebUtils.isMicro()) { + originalFilename = file.getOriginalFilename(); + } else { + // 对原始文件名进行编码转换 + originalFilename = new String( + Objects.requireNonNull(file.getOriginalFilename()).getBytes(StandardCharsets.ISO_8859_1), + StandardCharsets.UTF_8); + } sysFile.setDir(dir); sysFile.setOriginal(originalFilename); sysFile.setFileSize(file.getSize()); diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/AlipayWapPayOrderHandler.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/AlipayWapPayOrderHandler.java index 77a77cb9e..96b03d241 100644 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/AlipayWapPayOrderHandler.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/AlipayWapPayOrderHandler.java @@ -20,7 +20,6 @@ package com.pig4cloud.pigx.pay.handler.impl; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.extra.servlet.JakartaServletUtil; -import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alipay.api.AlipayApiException; @@ -29,6 +28,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ijpay.alipay.AliPayApi; import com.ijpay.alipay.AliPayApiConfig; import com.ijpay.alipay.AliPayApiConfigKit; +import com.pig4cloud.pigx.common.core.util.WebUtils; import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.pay.entity.PayChannel; import com.pig4cloud.pigx.pay.entity.PayGoodsOrder; @@ -132,12 +132,11 @@ public class AlipayWapPayOrderHandler extends AbstractPayOrderHandler { model.setProductCode(goodsOrder.getGoodsId()); model.setPassbackParams(String.valueOf(TenantContextHolder.getTenantId())); - Boolean isMicro = SpringUtil.getProperty("security.micro", Boolean.class, true); try { log.info("拉起支付宝wap 支付参数 {}", model); AliPayApi.wapPay(response, model, ChannelPayApiConfigKit.get().getReturnUrl(), - String.format("%s/api/%s/notify/ali/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), isMicro ? "pay" : "admin")); + String.format("%s/api/%s/notify/ali/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), WebUtils.isMicro() ? "pay" : "admin")); } catch (AlipayApiException e) { log.error("支付宝手机支付失败", e); diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java index f42535a0f..40cb0f863 100644 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java @@ -18,7 +18,6 @@ package com.pig4cloud.pigx.pay.handler.impl; import cn.hutool.extra.servlet.JakartaServletUtil; -import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -29,6 +28,7 @@ import com.ijpay.wxpay.WxPayApi; import com.ijpay.wxpay.WxPayApiConfig; import com.ijpay.wxpay.WxPayApiConfigKit; import com.ijpay.wxpay.model.UnifiedOrderModel; +import com.pig4cloud.pigx.common.core.util.WebUtils; import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.pay.entity.PayChannel; import com.pig4cloud.pigx.pay.entity.PayGoodsOrder; @@ -120,7 +120,6 @@ public class WeChatMpPayOrderHandler extends AbstractPayOrderHandler { WxPayApiConfig wxPayApiConfig = WxPayApiConfigKit.getWxPayApiConfig(); // 判断是否是单体架构 - Boolean isMicro = SpringUtil.getProperty("security.micro", Boolean.class, true); Map params = UnifiedOrderModel.builder() .appid(wxPayApiConfig.getAppId()) .mch_id(wxPayApiConfig.getMchId()) @@ -130,7 +129,7 @@ public class WeChatMpPayOrderHandler extends AbstractPayOrderHandler { .out_trade_no(String.valueOf(tradeOrder.getOrderId())) .total_fee(goodsOrder.getAmount()) .spbill_create_ip(ip) - .notify_url(String.format("%s/api/%s/notify/wx/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), isMicro ? "pay" : "admin")) + .notify_url(String.format("%s/api/%s/notify/wx/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), WebUtils.isMicro() ? "pay" : "admin")) .trade_type(TradeType.JSAPI.getTradeType()) .openid(goodsOrder.getUserId()) .build() diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/YungouosMergePayOrderHandler.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/YungouosMergePayOrderHandler.java index 7445f166e..95e36b01a 100644 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/YungouosMergePayOrderHandler.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/YungouosMergePayOrderHandler.java @@ -2,10 +2,10 @@ package com.pig4cloud.pigx.pay.handler.impl; import cn.hutool.core.util.NumberUtil; import cn.hutool.extra.servlet.JakartaServletUtil; -import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pig4cloud.pigx.common.core.util.WebUtils; import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.pay.entity.PayChannel; import com.pig4cloud.pigx.pay.entity.PayGoodsOrder; @@ -93,14 +93,13 @@ public class YungouosMergePayOrderHandler extends AbstractPayOrderHandler { String money = NumberUtil.div(tradeOrder.getAmount(), "100", 2).toString(); // 判断是否是单体架构 - Boolean isMicro = SpringUtil.getProperty("security.micro", Boolean.class, true); JSONObject params = JSONUtil.parseObj(channel.getParam()); String key = params.getStr("key"); return MergePay.nativePay(String.valueOf(tradeOrder.getOrderId()), money, channel.getChannelMchId(), tradeOrder.getBody(), "1", TenantContextHolder.getTenantId().toString(), - String.format("%s/api/%s/notify/merge/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), isMicro ? "pay" : "admin"), + String.format("%s/api/%s/notify/merge/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), WebUtils.isMicro() ? "pay" : "admin"), ChannelPayApiConfigKit.get().getReturnUrl(), "", "", "", key); }