feat(core): 在 WebUtils 中添加 isMicro 方法用于检测微服务环境

新增 `isMicro` 方法,通过 `SpringContextHolder` 获取应用上下文并检查 `security.micro` 属性,默认返回 `true`。
This commit is contained in:
冷冷 committed 2025-03-10 23:40:00 +08:00
1 parent e7bea5e221
commit 5b5aac37d0
5 files changed
+21 -13

No files matched your search

@@ -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);
}
}
@@ -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<SysFileMapper, SysFile> 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());
@@ -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);
@@ -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<String, String> 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()
@@ -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);
}