result = oauth2ApproveService.getApproveList(userId, userType, clientId);
// 断言
assertEquals(1, result.size());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(approve, result.get(0), "expiresTime");
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
index c052576f1..cba9d3e5d 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
@@ -50,6 +50,7 @@ class OAuth2CodeServiceImplTest extends BaseDbUnitTest {
scopes, redirectUri, state);
// 断言
OAuth2CodeDO dbCodeDO = oauth2CodeMapper.selectByCode(codeDO.getCode());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(codeDO, dbCodeDO, "expiresTime", "createTime", "updateTime", "deleted");
assertEquals(userId, codeDO.getUserId());
assertEquals(userType, codeDO.getUserType());
@@ -92,6 +93,7 @@ class OAuth2CodeServiceImplTest extends BaseDbUnitTest {
// 调用
OAuth2CodeDO result = oauth2CodeService.consumeAuthorizationCode(code);
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(codeDO, result, "expiresTime");
assertNull(oauth2CodeMapper.selectByCode(code));
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
index a3070648f..c548940d6 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
@@ -77,6 +77,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, userType, clientId, scopes);
// 断言访问令牌
OAuth2AccessTokenDO dbAccessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(accessTokenDO.getAccessToken());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(accessTokenDO, dbAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted");
assertEquals(userId, accessTokenDO.getUserId());
assertEquals(userType, accessTokenDO.getUserType());
@@ -88,6 +89,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
assertFalse(DateUtils.isExpired(accessTokenDO.getExpiresTime()));
// 断言访问令牌的缓存
OAuth2AccessTokenDO redisAccessTokenDO = oauth2AccessTokenRedisDAO.get(accessTokenDO.getAccessToken());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(accessTokenDO, redisAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted");
// 断言刷新令牌
OAuth2RefreshTokenDO refreshTokenDO = oauth2RefreshTokenMapper.selectList().get(0);
@@ -177,12 +179,14 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
assertNull(oauth2AccessTokenRedisDAO.get(accessTokenDO.getAccessToken()));
// 断言,新的访问令牌
OAuth2AccessTokenDO dbAccessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(newAccessTokenDO.getAccessToken());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(newAccessTokenDO, dbAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted");
assertPojoEquals(newAccessTokenDO, refreshTokenDO, "id", "expiresTime", "createTime", "updateTime", "deleted",
"creator", "updater");
assertFalse(DateUtils.isExpired(newAccessTokenDO.getExpiresTime()));
// 断言,新的访问令牌的缓存
OAuth2AccessTokenDO redisAccessTokenDO = oauth2AccessTokenRedisDAO.get(newAccessTokenDO.getAccessToken());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(newAccessTokenDO, redisAccessTokenDO, "expiresTime", "createTime", "updateTime", "deleted");
}
@@ -198,8 +202,10 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
// 调用
OAuth2AccessTokenDO result = oauth2TokenService.getAccessToken(accessToken);
// 断言
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(accessTokenDO, result, "expiresTime", "createTime", "updateTime", "deleted",
"creator", "updater");
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(accessTokenDO, oauth2AccessTokenRedisDAO.get(accessToken), "expiresTime", "createTime", "updateTime", "deleted",
"creator", "updater");
}
@@ -237,6 +243,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
// 调研,并断言
OAuth2AccessTokenDO result = oauth2TokenService.getAccessToken(accessToken);
// 断言
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(accessTokenDO, result, "expiresTime", "createTime", "updateTime", "deleted",
"creator", "updater");
}
@@ -259,6 +266,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
oauth2RefreshTokenMapper.insert(refreshTokenDO);
// 调用
OAuth2AccessTokenDO result = oauth2TokenService.removeAccessToken(accessTokenDO.getAccessToken());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(accessTokenDO, result, "expiresTime", "createTime", "updateTime", "deleted",
"creator", "updater");
// 断言数据
@@ -297,6 +305,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
+ // TODO @芋艿:expiresTime 被屏蔽,仅 win11 会复现,建议后续修复。
assertPojoEquals(dbAccessToken, pageResult.getList().get(0), "expiresTime");
}
From d4e4207ae9e10797cbd8128368d7c2e217970d44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8D=A2=E8=B6=8A?= <552369664@qq.com>
Date: Sun, 25 Aug 2024 08:39:44 +0800
Subject: [PATCH 11/18] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E3=80=91=E5=AF=B9customerName=E5=86=85=E9=83=A8?=
=?UTF-8?q?=E5=B1=8F=E8=94=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../client/dto/ExpressTrackQueryReqDTO.java | 20 ++++++++++++++++++-
.../order/TradeOrderQueryServiceImpl.java | 13 +++++++-----
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
index 16662d89d..b9fe1bd18 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto;
+import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
import lombok.Data;
@@ -13,7 +14,7 @@ public class ExpressTrackQueryReqDTO {
/**
* 快递公司编码
- *
+ *
* 对应 {@link DeliveryExpressDO#getCode()}
*/
private String expressCode;
@@ -33,4 +34,21 @@ public class ExpressTrackQueryReqDTO {
*/
private String customerName;
+ public ExpressTrackQueryReqDTO setExpressCode(String expressCode) {
+ this.expressCode = expressCode;
+ updateCustomerName();
+ return this; // 返回实体对象
+ }
+
+ public ExpressTrackQueryReqDTO setPhone(String phone) {
+ this.phone = phone;
+ updateCustomerName();
+ return this; // 返回实体对象
+ }
+
+ private void updateCustomerName() {
+ if ("SF".equals(expressCode) && phone != null && phone.length() >= 4) {
+ this.customerName = phone.substring(phone.length() - 4);
+ }
+ }
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
index 350156031..a77c04f0e 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
@@ -206,7 +206,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
/**
* 查询物流轨迹
- *
+ *
* 缓存的目的:考虑及时性要求不高,但是每次调用需要钱
*
* @param code 快递公司编码
@@ -217,10 +217,13 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
@Cacheable(cacheNames = RedisKeyConstants.EXPRESS_TRACK, key = "#code + '-' + #logisticsNo + '-' + #receiverMobile",
condition = "#result != null && #result.length() > 0")
public List getExpressTrackList(String code, String logisticsNo, String receiverMobile) {
- return expressClientFactory.getDefaultExpressClient().getExpressTrackList(
- new ExpressTrackQueryReqDTO().setExpressCode(code).setLogisticsNo(logisticsNo)
- // TODO @卢越:1)为什么 customerName 使用 mobile 哈?2)如果使用 mobile,其实可以考虑通过 phone 计算下
- .setPhone(receiverMobile).setCustomerName(StrUtil.subSuf(receiverMobile, receiverMobile.length() - 4)));
+ return expressClientFactory.getDefaultExpressClient()
+ .getExpressTrackList(
+ new ExpressTrackQueryReqDTO()
+ .setExpressCode(code)
+ .setLogisticsNo(logisticsNo)
+ .setPhone(receiverMobile)
+ );
}
// =================== Order Item ===================
From 9bb231eb7338f7dc4649d0f8ef219de43f1ed259 Mon Sep 17 00:00:00 2001
From: YunaiV
Date: Sun, 25 Aug 2024 11:00:45 +0800
Subject: [PATCH 12/18] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E3=80=91=E5=95=86=E5=9F=8E=EF=BC=9A=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=20SF=20=E7=89=A9=E6=B5=81=EF=BC=8C=E9=9C=80=E8=A6=81=20Custome?=
=?UTF-8?q?rName=20=E7=9A=84=E6=83=85=E5=86=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../client/dto/ExpressTrackQueryReqDTO.java | 18 ------------------
.../impl/kdniao/KdNiaoExpressClient.java | 7 +++++++
.../order/TradeOrderQueryServiceImpl.java | 9 ++-------
3 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
index b9fe1bd18..ab3820796 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java
@@ -1,6 +1,5 @@
package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto;
-import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
import lombok.Data;
@@ -34,21 +33,4 @@ public class ExpressTrackQueryReqDTO {
*/
private String customerName;
- public ExpressTrackQueryReqDTO setExpressCode(String expressCode) {
- this.expressCode = expressCode;
- updateCustomerName();
- return this; // 返回实体对象
- }
-
- public ExpressTrackQueryReqDTO setPhone(String phone) {
- this.phone = phone;
- updateCustomerName();
- return this; // 返回实体对象
- }
-
- private void updateCustomerName() {
- if ("SF".equals(expressCode) && phone != null && phone.length() >= 4) {
- this.customerName = phone.substring(phone.length() - 4);
- }
- }
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java
index 1f1116882..24cf8e6ed 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java
@@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kdniao
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.net.URLEncodeUtil;
+import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties;
@@ -60,6 +62,11 @@ public class KdNiaoExpressClient implements ExpressClient {
// 发起请求
KdNiaoExpressQueryReqDTO requestDTO = INSTANCE.convert(reqDTO)
.setExpressCode(reqDTO.getExpressCode().toUpperCase());
+ if (ObjUtil.equal(requestDTO.getExpressCode(), "SF")
+ && StrUtil.isBlank(reqDTO.getCustomerName())
+ && StrUtil.length(reqDTO.getPhone()) >= 4) {
+ requestDTO.setCustomerName(StrUtil.subSufByLength(reqDTO.getPhone(), 4));
+ }
KdNiaoExpressQueryRespDTO respDTO = httpRequest(REAL_TIME_QUERY_URL, REAL_TIME_FREE_REQ_TYPE,
requestDTO, KdNiaoExpressQueryRespDTO.class);
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
index a77c04f0e..68c549891 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java
@@ -217,13 +217,8 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
@Cacheable(cacheNames = RedisKeyConstants.EXPRESS_TRACK, key = "#code + '-' + #logisticsNo + '-' + #receiverMobile",
condition = "#result != null && #result.length() > 0")
public List getExpressTrackList(String code, String logisticsNo, String receiverMobile) {
- return expressClientFactory.getDefaultExpressClient()
- .getExpressTrackList(
- new ExpressTrackQueryReqDTO()
- .setExpressCode(code)
- .setLogisticsNo(logisticsNo)
- .setPhone(receiverMobile)
- );
+ return expressClientFactory.getDefaultExpressClient().getExpressTrackList(new ExpressTrackQueryReqDTO()
+ .setExpressCode(code).setLogisticsNo(logisticsNo).setPhone(receiverMobile));
}
// =================== Order Item ===================
From ee9a733c725fbb35e9dc8250bbb2685e5ebfe19f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8D=A2=E8=B6=8A?= <552369664@qq.com>
Date: Mon, 26 Aug 2024 10:05:35 +0800
Subject: [PATCH 13/18] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BF=AE?=
=?UTF-8?q?=E5=A4=8D=E3=80=91=E4=BF=AE=E5=A4=8D=E5=95=86=E5=9F=8E=E5=8F=91?=
=?UTF-8?q?=E8=B4=A7=E5=90=8E=E8=AE=A2=E5=8D=95=E6=97=A5=E5=BF=97=E6=97=A0?=
=?UTF-8?q?=E6=B3=95=E6=98=BE=E7=A4=BA=E5=BF=AB=E9=80=92=E5=85=AC=E5=8F=B8?=
=?UTF-8?q?=E5=90=8D=E7=A7=B0=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../module/trade/enums/order/TradeOrderOperateTypeEnum.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderOperateTypeEnum.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderOperateTypeEnum.java
index 695cb41ce..986d06437 100644
--- a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderOperateTypeEnum.java
+++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderOperateTypeEnum.java
@@ -17,7 +17,7 @@ public enum TradeOrderOperateTypeEnum {
ADMIN_UPDATE_PRICE(2, "订单价格 {oldPayPrice} 修改,调整价格 {adjustPrice},实际支付金额为 {newPayPrice} 元"),
MEMBER_PAY(10, "用户付款成功"),
ADMIN_UPDATE_ADDRESS(11, "收货地址修改"),
- ADMIN_DELIVERY(20, "已发货,快递公司:{deliveryName},快递单号:{logisticsNo}"),
+ ADMIN_DELIVERY(20, "已发货,快递公司:{expressName},快递单号:{logisticsNo}"),
MEMBER_RECEIVE(30, "用户已收货"),
SYSTEM_RECEIVE(31, "到期未收货,系统自动确认收货"),
ADMIN_PICK_UP_RECEIVE(32, "管理员自提收货"),
From 9d26381dcc36545138504b64f39d40956c9dd821 Mon Sep 17 00:00:00 2001
From: YunaiV
Date: Mon, 26 Aug 2024 12:32:54 +0800
Subject: [PATCH 14/18] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E3=80=91=E5=A2=9E=E5=BC=BA=20JDK17=E3=80=81JDK8=20?=
=?UTF-8?q?=E4=B9=8B=E9=97=B4=E7=9A=84=E5=85=BC=E5=AE=B9=E6=80=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ai/core/model/deepseek/DeepSeekChatModel.java | 5 +++--
.../framework/ai/core/model/xinghuo/XingHuoChatModel.java | 5 +++--
.../audio/transcription/TongYiAudioTranscriptionModel.java | 3 ++-
.../com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java | 3 ++-
.../ai/tongyi/embedding/TongYiTextEmbeddingModel.java | 3 ++-
.../cn/iocoder/yudao/framework/ai/music/SunoApiTests.java | 3 ++-
.../statistics/CrmStatisticsPerformanceServiceImpl.java | 3 ++-
.../framework/sms/core/client/impl/SmsClientTests.java | 7 ++++---
8 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java
index 1437404e8..e3097b83a 100644
--- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java
+++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.framework.ai.core.model.deepseek;
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.lang.Assert;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
@@ -70,12 +71,12 @@ public class DeepSeekChatModel implements ChatModel {
OpenAiApi.ChatCompletion chatCompletion = completionEntity.getBody();
if (chatCompletion == null) {
log.warn("No chat completion returned for prompt: {}", prompt);
- return new ChatResponse(List.of());
+ return new ChatResponse(ListUtil.of());
}
List choices = chatCompletion.choices();
if (choices == null) {
log.warn("No choices returned for prompt: {}", prompt);
- return new ChatResponse(List.of());
+ return new ChatResponse(ListUtil.of());
}
// 2. 转换 ChatResponse 返回
diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java
index 60284bf2f..501d916db 100644
--- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java
+++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.lang.Assert;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
@@ -72,12 +73,12 @@ public class XingHuoChatModel implements ChatModel {
OpenAiApi.ChatCompletion chatCompletion = completionEntity.getBody();
if (chatCompletion == null) {
log.warn("No chat completion returned for prompt: {}", prompt);
- return new ChatResponse(List.of());
+ return new ChatResponse(ListUtil.of());
}
List choices = chatCompletion.choices();
if (choices == null) {
log.warn("No choices returned for prompt: {}", prompt);
- return new ChatResponse(List.of());
+ return new ChatResponse(ListUtil.of());
}
// 2. 转换 ChatResponse 返回
diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java
index 2068feeb5..0f0dca9c0 100644
--- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java
+++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/audio/transcription/TongYiAudioTranscriptionModel.java
@@ -16,6 +16,7 @@
package com.alibaba.cloud.ai.tongyi.audio.transcription;
+import cn.hutool.core.collection.ListUtil;
import com.alibaba.cloud.ai.tongyi.audio.AudioTranscriptionModels;
import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionPrompt;
import com.alibaba.cloud.ai.tongyi.audio.transcription.api.AudioTranscriptionResponse;
@@ -82,7 +83,7 @@ public class TongYiAudioTranscriptionModel
try {
transcriptionParam = TranscriptionParam.builder()
.model(AudioTranscriptionModels.Paraformer_V1)
- .fileUrls(List.of(String.valueOf(instructions.getURL())))
+ .fileUrls(ListUtil.of(String.valueOf(instructions.getURL())))
.build();
}
catch (IOException e) {
diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java
index c29ffbdfb..11328a02e 100644
--- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java
+++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/chat/TongYiChatModel.java
@@ -16,6 +16,7 @@
package com.alibaba.cloud.ai.tongyi.chat;
+import cn.hutool.core.collection.ListUtil;
import com.alibaba.cloud.ai.tongyi.common.exception.TongYiException;
import com.alibaba.dashscope.aigc.conversation.ConversationParam;
import com.alibaba.dashscope.aigc.generation.Generation;
@@ -207,7 +208,7 @@ public class TongYiChatModel extends
.getChoices()
.get(0)
));
- return new ChatResponse(List.of(gen));
+ return new ChatResponse(ListUtil.of(gen));
})
)
.publishOn(Schedulers.parallel());
diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java
index ce92dae07..99a356fe8 100644
--- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java
+++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/com/alibaba/cloud/ai/tongyi/embedding/TongYiTextEmbeddingModel.java
@@ -16,6 +16,7 @@
package com.alibaba.cloud.ai.tongyi.embedding;
+import cn.hutool.core.collection.ListUtil;
import com.alibaba.cloud.ai.tongyi.common.exception.TongYiException;
import com.alibaba.cloud.ai.tongyi.metadata.TongYiTextEmbeddingResponseMetadata;
import com.alibaba.dashscope.embeddings.TextEmbedding;
@@ -100,7 +101,7 @@ public class TongYiTextEmbeddingModel extends AbstractEmbeddingModel {
return this.call(
new EmbeddingRequest(
- List.of(document.getFormattedContent(this.metadataMode)),
+ ListUtil.of(document.getFormattedContent(this.metadataMode)),
null)
).getResults().stream()
.map(Embedding::getOutput)
diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java
index ed8ecc6c6..2d80fcf06 100644
--- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java
+++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.framework.ai.music;
+import cn.hutool.core.collection.ListUtil;
import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -66,7 +67,7 @@ public class SunoApiTests {
String id = "584729e5-0fe9-4157-86da-1b4803ff42bf";
// 调用方法
- List musicList = sunoApi.getMusicList(List.of(id));
+ List musicList = sunoApi.getMusicList(ListUtil.of(id));
// 打印结果
System.out.println(musicList);
}
diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/statistics/CrmStatisticsPerformanceServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/statistics/CrmStatisticsPerformanceServiceImpl.java
index 1e7e3bbb2..ae8a46ab9 100644
--- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/statistics/CrmStatisticsPerformanceServiceImpl.java
+++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/statistics/CrmStatisticsPerformanceServiceImpl.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.crm.service.statistics;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjUtil;
import cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.performance.CrmStatisticsPerformanceReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.performance.CrmStatisticsPerformanceRespVO;
@@ -106,7 +107,7 @@ public class CrmStatisticsPerformanceServiceImpl implements CrmStatisticsPerform
private List getUserIds(CrmStatisticsPerformanceReqVO reqVO) {
// 情况一:选中某个用户
if (ObjUtil.isNotNull(reqVO.getUserId())) {
- return List.of(reqVO.getUserId());
+ return ListUtil.of(reqVO.getUserId());
}
// 情况二:选中某个部门
// 2.1 获得部门列表
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientTests.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientTests.java
index 6eb22af1b..b1e96f195 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientTests.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientTests.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.framework.sms.core.client.impl;
+import cn.hutool.core.collection.ListUtil;
import cn.iocoder.yudao.framework.common.core.KeyValue;
import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO;
import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsSendRespDTO;
@@ -47,7 +48,7 @@ public class SmsClientTests {
String mobile = "15601691323";
String apiTemplateId = "SMS_207945135";
// 调用
- SmsSendRespDTO sendRespDTO = client.sendSms(sendLogId, mobile, apiTemplateId, List.of(new KeyValue<>("code", "1024")));
+ SmsSendRespDTO sendRespDTO = client.sendSms(sendLogId, mobile, apiTemplateId, ListUtil.of(new KeyValue<>("code", "1024")));
// 打印结果
System.out.println(sendRespDTO);
}
@@ -96,7 +97,7 @@ public class SmsClientTests {
String mobile = "15601691323";
String apiTemplateId = "2136358";
// 调用
- SmsSendRespDTO sendRespDTO = client.sendSms(sendLogId, mobile, apiTemplateId, List.of(new KeyValue<>("code", "1024")));
+ SmsSendRespDTO sendRespDTO = client.sendSms(sendLogId, mobile, apiTemplateId, ListUtil.of(new KeyValue<>("code", "1024")));
// 打印结果
System.out.println(sendRespDTO);
}
@@ -131,7 +132,7 @@ public class SmsClientTests {
Long sendLogId = System.currentTimeMillis();
String mobile = "15601691323";
String apiTemplateId = "xx test01";
- List> templateParams = List.of(new KeyValue<>("code", "1024"));
+ List> templateParams = ListUtil.of(new KeyValue<>("code", "1024"));
// 调用
SmsSendRespDTO smsSendRespDTO = client.sendSms(sendLogId, mobile, apiTemplateId, templateParams);
// 打印结果
From 10c0b86f9b88c795f73ba506b6ac8d8727addbff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E5=AE=87=E5=BA=86?=
Date: Wed, 28 Aug 2024 05:58:19 +0000
Subject: [PATCH 15/18] =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?=
=?UTF-8?q?=E7=A7=9F=E6=88=B7Job=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 杨宇庆
---
.../iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java
index 732a0732e..76fd98ecb 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java
@@ -46,6 +46,7 @@ public class TenantJobAspect {
try {
joinPoint.proceed();
} catch (Throwable e) {
+ log.error("occur error while executing job with tenant {}", tenantId, e);
results.put(tenantId, ExceptionUtil.getRootCauseMessage(e));
}
});
From 86a413f57d2a8575a030ccfc9d650fcfc5293694 Mon Sep 17 00:00:00 2001
From: YunaiV
Date: Fri, 30 Aug 2024 23:19:00 +0800
Subject: [PATCH 16/18] =?UTF-8?q?1059=20=E3=80=90=E8=BD=BB=E9=87=8F?=
=?UTF-8?q?=E7=BA=A7=20PR=E3=80=91=EF=BC=9A=E6=97=A5=E5=BF=97=E8=AE=B0?=
=?UTF-8?q?=E5=BD=95=E7=A7=9F=E6=88=B7Job=E9=94=99=E8=AF=AF=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../yudao/framework/tenant/core/job/TenantJobAspect.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java
index 76fd98ecb..ce9eb1631 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java
@@ -46,7 +46,7 @@ public class TenantJobAspect {
try {
joinPoint.proceed();
} catch (Throwable e) {
- log.error("occur error while executing job with tenant {}", tenantId, e);
+ log.error("[execute][租户({}) 执行 Job 发生异常", tenantId, e);
results.put(tenantId, ExceptionUtil.getRootCauseMessage(e));
}
});
From e5f439aecd04dc759dbbcde6c1f71c875f7b91af Mon Sep 17 00:00:00 2001
From: YunaiV
Date: Sat, 31 Aug 2024 08:16:31 +0800
Subject: [PATCH 17/18] =?UTF-8?q?1063=20=E3=80=90=E8=BD=BB=E9=87=8F?=
=?UTF-8?q?=E7=BA=A7=20PR=E3=80=91=EF=BC=9A=E5=85=B3=E9=97=AD=E8=8F=9C?=
=?UTF-8?q?=E5=8D=95=E8=BF=98=E6=98=AF=E4=BC=9A=E6=98=BE=E7=A4=BA=E7=9A=84?=
=?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/service/permission/MenuServiceImpl.java | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
index 730958f82..98052eb65 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
@@ -140,17 +140,19 @@ public class MenuServiceImpl implements MenuService {
return true;
}
- // 1. 遍历到 parentId 为根节点,则无需判断
+ // 1. 先判断自身是否禁用
+ if (CommonStatusEnum.isDisable(node.getStatus())) {
+ disabledMenuCache.add(node.getId());
+ return true;
+ }
+
+ // 2. 遍历到 parentId 为根节点,则无需判断
Long parentId = node.getParentId();
if (ObjUtil.equal(parentId, ID_ROOT)) {
- if (CommonStatusEnum.isDisable(node.getStatus())) {
- disabledMenuCache.add(node.getId());
- return true;
- }
return false;
}
- // 2. 继续遍历 parent 节点
+ // 3. 继续遍历 parent 节点
MenuDO parent = menuMap.get(parentId);
if (parent == null || isMenuDisabled(parent, menuMap, disabledMenuCache)) {
disabledMenuCache.add(node.getId());
From 39ec137047d92d3b4de889b384ea64eedc950e60 Mon Sep 17 00:00:00 2001
From: YunaiV
Date: Sat, 31 Aug 2024 08:18:24 +0800
Subject: [PATCH 18/18] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E3=80=91apiErrorLogFrameworkService=20=E5=8F=98?=
=?UTF-8?q?=E9=87=8F=E5=90=8D=E5=B0=8F=E5=86=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../yudao/framework/web/config/YudaoWebAutoConfiguration.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java
index 8c784d9f2..1bdda5723 100644
--- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java
+++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java
@@ -59,8 +59,8 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer {
}
@Bean
- public GlobalExceptionHandler globalExceptionHandler(ApiErrorLogFrameworkService ApiErrorLogFrameworkService) {
- return new GlobalExceptionHandler(applicationName, ApiErrorLogFrameworkService);
+ public GlobalExceptionHandler globalExceptionHandler(ApiErrorLogFrameworkService apiErrorLogFrameworkService) {
+ return new GlobalExceptionHandler(applicationName, apiErrorLogFrameworkService);
}
@Bean