refactor(shop): 重构 ShopOrderUpdate10550Service
- 移除对 RequestUtil 的依赖,提高性能和可维护性 - 重构用户等级升级和分销业务逻辑,提高代码清晰度 - 增加日志记录,提高系统可监控性 - 优化异常处理,提高系统稳定性 - 支持通过字典配置管理合伙人条件,提高灵活性
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
package com.gxwebsoft.common.system.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.gxwebsoft.cms.entity.CmsWebsiteField;
|
||||
import com.gxwebsoft.cms.service.CmsWebsiteFieldService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 微信小程序配置测试
|
||||
*
|
||||
* @author WebSoft
|
||||
* @since 2025-08-23
|
||||
*/
|
||||
@Slf4j
|
||||
@SpringBootTest
|
||||
@ActiveProfiles("dev")
|
||||
public class WeixinConfigTest {
|
||||
|
||||
@Resource
|
||||
private SettingService settingService;
|
||||
|
||||
@Resource
|
||||
private CmsWebsiteFieldService cmsWebsiteFieldService;
|
||||
|
||||
/**
|
||||
* 测试从cms_website_field表获取微信小程序配置
|
||||
*/
|
||||
@Test
|
||||
public void testGetWeixinConfigFromWebsiteField() {
|
||||
Integer tenantId = 10550;
|
||||
|
||||
log.info("=== 开始测试从cms_website_field表获取微信小程序配置 ===");
|
||||
|
||||
// 1. 查看cms_website_field表中的所有配置
|
||||
List<CmsWebsiteField> allFields = cmsWebsiteFieldService.list(
|
||||
new LambdaQueryWrapper<CmsWebsiteField>()
|
||||
.eq(CmsWebsiteField::getTenantId, tenantId)
|
||||
.eq(CmsWebsiteField::getDeleted, 0)
|
||||
);
|
||||
|
||||
log.info("租户{}的所有cms_website_field配置:", tenantId);
|
||||
for (CmsWebsiteField field : allFields) {
|
||||
log.info(" - ID: {}, Name: {}, Value: {}", field.getId(), field.getName(), field.getValue());
|
||||
}
|
||||
|
||||
// 2. 查找AppID配置
|
||||
CmsWebsiteField appIdField = cmsWebsiteFieldService.getOne(
|
||||
new LambdaQueryWrapper<CmsWebsiteField>()
|
||||
.eq(CmsWebsiteField::getName, "AppID")
|
||||
.eq(CmsWebsiteField::getTenantId, tenantId)
|
||||
.eq(CmsWebsiteField::getDeleted, 0)
|
||||
);
|
||||
|
||||
log.info("AppID配置: {}", appIdField);
|
||||
|
||||
// 3. 查找AppSecret配置
|
||||
CmsWebsiteField appSecretField = cmsWebsiteFieldService.getOne(
|
||||
new LambdaQueryWrapper<CmsWebsiteField>()
|
||||
.eq(CmsWebsiteField::getName, "AppSecret")
|
||||
.eq(CmsWebsiteField::getTenantId, tenantId)
|
||||
.eq(CmsWebsiteField::getDeleted, 0)
|
||||
);
|
||||
|
||||
log.info("AppSecret配置: {}", appSecretField);
|
||||
|
||||
// 4. 测试获取微信小程序配置
|
||||
try {
|
||||
JSONObject config = settingService.getBySettingKeyIgnoreTenant("mp-weixin", tenantId);
|
||||
log.info("✅ 成功获取微信小程序配置: {}", config);
|
||||
} catch (Exception e) {
|
||||
log.error("❌ 获取微信小程序配置失败: {}", e.getMessage());
|
||||
}
|
||||
|
||||
log.info("=== 微信小程序配置测试完成 ===");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试不同name的查询
|
||||
*/
|
||||
@Test
|
||||
public void testDifferentNameQueries() {
|
||||
Integer tenantId = 10550;
|
||||
|
||||
log.info("=== 开始测试不同name的查询 ===");
|
||||
|
||||
String[] nameVariations = {"AppID", "appId", "APPID", "app_id", "AppSecret", "appSecret", "APPSECRET", "app_secret"};
|
||||
|
||||
for (String name : nameVariations) {
|
||||
CmsWebsiteField field = cmsWebsiteFieldService.getOne(
|
||||
new LambdaQueryWrapper<CmsWebsiteField>()
|
||||
.eq(CmsWebsiteField::getName, name)
|
||||
.eq(CmsWebsiteField::getTenantId, tenantId)
|
||||
.eq(CmsWebsiteField::getDeleted, 0)
|
||||
);
|
||||
|
||||
if (field != null) {
|
||||
log.info("找到配置 - Name: {}, Value: {}", name, field.getValue());
|
||||
} else {
|
||||
log.info("未找到配置 - Name: {}", name);
|
||||
}
|
||||
}
|
||||
|
||||
log.info("=== 不同name查询测试完成 ===");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试创建测试配置
|
||||
*/
|
||||
@Test
|
||||
public void testCreateTestConfig() {
|
||||
Integer tenantId = 10550;
|
||||
|
||||
log.info("=== 开始创建测试配置 ===");
|
||||
|
||||
// 创建AppID配置
|
||||
CmsWebsiteField appIdField = new CmsWebsiteField();
|
||||
appIdField.setName("AppID");
|
||||
appIdField.setValue("wx1234567890abcdef"); // 测试AppID
|
||||
appIdField.setTenantId(tenantId);
|
||||
appIdField.setType(0); // 文本类型
|
||||
appIdField.setComments("微信小程序AppID");
|
||||
appIdField.setDeleted(0);
|
||||
|
||||
// 创建AppSecret配置
|
||||
CmsWebsiteField appSecretField = new CmsWebsiteField();
|
||||
appSecretField.setName("AppSecret");
|
||||
appSecretField.setValue("abcdef1234567890abcdef1234567890"); // 测试AppSecret
|
||||
appSecretField.setTenantId(tenantId);
|
||||
appSecretField.setType(0); // 文本类型
|
||||
appSecretField.setComments("微信小程序AppSecret");
|
||||
appSecretField.setDeleted(0);
|
||||
|
||||
try {
|
||||
// 检查是否已存在
|
||||
CmsWebsiteField existingAppId = cmsWebsiteFieldService.getOne(
|
||||
new LambdaQueryWrapper<CmsWebsiteField>()
|
||||
.eq(CmsWebsiteField::getName, "AppID")
|
||||
.eq(CmsWebsiteField::getTenantId, tenantId)
|
||||
);
|
||||
|
||||
if (existingAppId == null) {
|
||||
cmsWebsiteFieldService.save(appIdField);
|
||||
log.info("✅ 创建AppID配置成功");
|
||||
} else {
|
||||
log.info("AppID配置已存在,跳过创建");
|
||||
}
|
||||
|
||||
CmsWebsiteField existingAppSecret = cmsWebsiteFieldService.getOne(
|
||||
new LambdaQueryWrapper<CmsWebsiteField>()
|
||||
.eq(CmsWebsiteField::getName, "AppSecret")
|
||||
.eq(CmsWebsiteField::getTenantId, tenantId)
|
||||
);
|
||||
|
||||
if (existingAppSecret == null) {
|
||||
cmsWebsiteFieldService.save(appSecretField);
|
||||
log.info("✅ 创建AppSecret配置成功");
|
||||
} else {
|
||||
log.info("AppSecret配置已存在,跳过创建");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("❌ 创建测试配置失败: {}", e.getMessage());
|
||||
}
|
||||
|
||||
log.info("=== 创建测试配置完成 ===");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.gxwebsoft.shop.service;
|
||||
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import com.gxwebsoft.common.system.service.UserService;
|
||||
import com.gxwebsoft.shop.entity.ShopOrder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 订单更新业务测试
|
||||
*
|
||||
* @author WebSoft
|
||||
* @since 2025-08-23
|
||||
*/
|
||||
@Slf4j
|
||||
@SpringBootTest
|
||||
@ActiveProfiles("dev")
|
||||
public class ShopOrderUpdate10550ServiceTest {
|
||||
|
||||
@Resource
|
||||
private ShopOrderUpdate10550Service shopOrderUpdate10550Service;
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
/**
|
||||
* 测试用户等级升级功能
|
||||
*/
|
||||
@Test
|
||||
public void testUserGradeUpgrade() {
|
||||
log.info("=== 开始测试用户等级升级功能 ===");
|
||||
|
||||
// 创建测试订单
|
||||
ShopOrder testOrder = createTestOrder();
|
||||
|
||||
// 查询用户升级前的信息
|
||||
User userBefore = userService.getByIdIgnoreTenant(testOrder.getUserId());
|
||||
if (userBefore != null) {
|
||||
log.info("升级前用户信息 - ID: {}, 等级: {}, 消费金额: {}",
|
||||
userBefore.getUserId(), userBefore.getGradeId(), userBefore.getExpendMoney());
|
||||
}
|
||||
|
||||
// 执行订单更新业务
|
||||
shopOrderUpdate10550Service.update(testOrder);
|
||||
|
||||
// 查询用户升级后的信息
|
||||
User userAfter = userService.getByIdIgnoreTenant(testOrder.getUserId());
|
||||
if (userAfter != null) {
|
||||
log.info("升级后用户信息 - ID: {}, 等级: {}, 消费金额: {}",
|
||||
userAfter.getUserId(), userAfter.getGradeId(), userAfter.getExpendMoney());
|
||||
}
|
||||
|
||||
log.info("=== 用户等级升级功能测试完成 ===");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试合伙人条件配置获取
|
||||
*/
|
||||
@Test
|
||||
public void testPartnerConditionConfig() {
|
||||
log.info("=== 开始测试合伙人条件配置获取 ===");
|
||||
|
||||
// 创建测试订单
|
||||
ShopOrder testOrder = createTestOrder();
|
||||
|
||||
// 执行订单更新业务(会在日志中显示合伙人条件)
|
||||
shopOrderUpdate10550Service.update(testOrder);
|
||||
|
||||
log.info("=== 合伙人条件配置获取测试完成 ===");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试异常处理
|
||||
*/
|
||||
@Test
|
||||
public void testExceptionHandling() {
|
||||
log.info("=== 开始测试异常处理 ===");
|
||||
|
||||
// 测试null订单
|
||||
try {
|
||||
shopOrderUpdate10550Service.update(null);
|
||||
log.info("null订单处理:正常(应该有异常日志)");
|
||||
} catch (Exception e) {
|
||||
log.info("null订单处理:捕获异常 - {}", e.getMessage());
|
||||
}
|
||||
|
||||
// 测试无效用户ID的订单
|
||||
ShopOrder invalidOrder = new ShopOrder();
|
||||
invalidOrder.setOrderId(999999);
|
||||
invalidOrder.setUserId(999999);
|
||||
invalidOrder.setTenantId(10550);
|
||||
invalidOrder.setPayPrice(new BigDecimal("100.00"));
|
||||
|
||||
try {
|
||||
shopOrderUpdate10550Service.update(invalidOrder);
|
||||
log.info("无效用户订单处理:正常(应该有警告日志)");
|
||||
} catch (Exception e) {
|
||||
log.info("无效用户订单处理:捕获异常 - {}", e.getMessage());
|
||||
}
|
||||
|
||||
log.info("=== 异常处理测试完成 ===");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试批量订单处理
|
||||
*/
|
||||
@Test
|
||||
public void testBatchOrderProcessing() {
|
||||
log.info("=== 开始测试批量订单处理 ===");
|
||||
|
||||
// 模拟多个订单
|
||||
for (int i = 1; i <= 5; i++) {
|
||||
ShopOrder order = createTestOrder();
|
||||
order.setOrderId(1000 + i);
|
||||
order.setPayPrice(new BigDecimal("50.00").multiply(BigDecimal.valueOf(i)));
|
||||
|
||||
log.info("处理第{}个订单 - 订单ID: {}, 金额: {}", i, order.getOrderId(), order.getPayPrice());
|
||||
shopOrderUpdate10550Service.update(order);
|
||||
}
|
||||
|
||||
log.info("=== 批量订单处理测试完成 ===");
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建测试订单
|
||||
*/
|
||||
private ShopOrder createTestOrder() {
|
||||
ShopOrder order = new ShopOrder();
|
||||
order.setOrderId(1001);
|
||||
order.setUserId(1); // 请根据实际数据库中的用户ID调整
|
||||
order.setTenantId(10550);
|
||||
order.setPayPrice(new BigDecimal("500.00")); // 测试金额
|
||||
order.setTotalPrice(new BigDecimal("500.00"));
|
||||
return order;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user