Quellcode durchsuchen

fix: PlanRequestService.createOrder() 补充第6个isSeedPrice参数

OrderService.createOrder() 签名已变更为6参数,PlanRequestService调用需同步更新

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg vor 3 Monaten
Ursprung
Commit
c2eefed593

+ 35 - 35
docs/phase1-user-stories.md

@@ -1797,41 +1797,41 @@ INSERT INTO `sys_config` (`config_key`, `config_value`, `description`, `value_ty
 
 ## 开发优先级总表
 
-| 用户故事 | 优先级 | 预估工期 | 依赖 |
-|----------|--------|---------|------|
-| US-1.1 生日输入与咨询发起 | P0 | 3天 | US-5.1(需登录)|
-| US-1.2 三角形可视化 | P0 | 3天 | US-1.1 |
-| US-1.4 数字点击查看含义 | P2 | 1天 | US-1.2 |
-| US-2.1 分享图片 | P0 | 2天 | US-1.2 |
-| US-2.2 PDF导出 | P0 | 2天 | US-1.2 |
-| US-3.1 AI解读展示 | P0 | 2天 | US-1.1 + Dify Workflow配置(附录B) |
-| US-3.2 AI解读免费/付费控制 | P0 | 1天 | US-3.1 |
-| US-3.3 解读内容缓存 | P0 | 1天 | US-3.1 |
-| US-3.4 AI交互问答(免费/付费控制) | P0 | 2天 | US-1.1 + Dify Chatflow配置(附录B) |
-| US-4.1 能量师付费订阅 | P0 | 2天 | US-5.1 |
-| US-4.2 种子价自动判断 | P0 | 1天 | US-8.1 |
-| US-4.3 订阅状态与续费 | P0 | 1天 | US-4.1 |
-| US-4.4 年费升级能量师(升级定价) | P1 | 1.5天 | US-4.1 + US-4.2 |
-| US-5.1 微信登录+注册信息完善 | P1 | 3天 | 无 |
-| US-5.2 历史咨询记录 | P1 | 2天 | US-5.1 |
-| US-5.3 个人资料编辑(社交预留) | P2 | 1天 | US-5.1 |
-| US-6.1 推广码生成 | P0 | 1天 | US-4.1 |
-| US-6.2 分享带参注册与上下级绑定 | P0 | 2天 | US-5.1 |
-| US-6.3 B端佣金结算(含升级补差+C端半额) | P0 | 3天 | US-4.1 + US-6.2 + US-4.4 + US-8.1 |
-| US-6.4 C端佣金结算 | P0 | 1天 | US-6.6 + US-6.3 + US-8.1 |
-| US-6.5 分销面板 | P1 | 2天 | US-6.1 + US-6.3 |
-| US-6.6 C端年费订阅入口 | P0 | 1.5天 | US-3.2 + US-4.1 |
-| US-7.1 批注功能 | P2 | 2天 | P0完成 |
-| US-7.2 客户分组 | P2 | 2天 | P0完成 |
-| US-8.1 系统配置管理 | **P0** | **2天** | **无(独立基础设施)** |
-| US-8.2 订单管理 | P1 | 1.5天 | US-4.1 + Order 新增字段 |
-| US-8.3 佣金查看 | P1 | 1天 | US-6.3 |
-| US-9.1 学业方向AI解读 | P1 | 2天 | US-1.1 + Dify学业Workflow |
-| US-9.2 申请能量师出方案 | P1 | 1.5天 | US-5.1 + US-9.1 |
-| US-9.3 能量师介入AI会话 | P1 | 2天 | US-5.1 + US-3.4 |
-| US-9.4 方案价格协商 | P1 | 1.5天 | US-9.3 |
-| US-9.5 方案付费与交付 | P1 | 2天 | US-9.4 + CommerceService 接口 |
-| US-9.6 人工方案分销佣金 | P1 | 1天 | US-9.5 + US-8.1 |
+| 用户故事 | 优先级 | 预估工期 | 依赖 | 状态 |
+|----------|--------|---------|------|------|
+| US-1.1 生日输入与咨询发起 | P0 | 3天 | US-5.1(需登录)| ✅ |
+| US-1.2 三角形可视化 | P0 | 3天 | US-1.1 | ✅ |
+| US-1.4 数字点击查看含义 | P2 | 1天 | US-1.2 | ✅ |
+| US-2.1 分享图片 | P0 | 2天 | US-1.2 | ✅ |
+| US-2.2 PDF导出 | P0 | 2天 | US-1.2 | ✅ |
+| US-3.1 AI解读展示 | P0 | 2天 | US-1.1 + Dify Workflow配置(附录B) | ✅ |
+| US-3.2 AI解读免费/付费控制 | P0 | 1天 | US-3.1 | ✅ |
+| US-3.3 解读内容缓存 | P0 | 1天 | US-3.1 | ✅ |
+| US-3.4 AI交互问答(免费/付费控制) | P0 | 2天 | US-1.1 + Dify Chatflow配置(附录B) | ✅ |
+| US-4.1 能量师付费订阅 | P0 | 2天 | US-5.1 | ✅ |
+| US-4.2 种子价自动判断 | P0 | 1天 | US-8.1 | ✅ |
+| US-4.3 订阅状态与续费 | P0 | 1天 | US-4.1 | ✅ |
+| US-4.4 年费升级能量师(升级定价) | P1 | 1.5天 | US-4.1 + US-4.2 | ✅ |
+| US-5.1 微信登录+注册信息完善 | P1 | 3天 | 无 | ✅ |
+| US-5.2 历史咨询记录 | P1 | 2天 | US-5.1 | ✅ |
+| US-5.3 个人资料编辑(社交预留) | P2 | 1天 | US-5.1 | ✅ |
+| US-6.1 推广码生成 | P0 | 1天 | US-4.1 | ✅ |
+| US-6.2 分享带参注册与上下级绑定 | P0 | 2天 | US-5.1 | ✅ |
+| US-6.3 B端佣金结算(含升级补差+C端半额) | P0 | 3天 | US-4.1 + US-6.2 + US-4.4 + US-8.1 | ✅ |
+| US-6.4 C端佣金结算 | P0 | 1天 | US-6.6 + US-6.3 + US-8.1 | ✅ |
+| US-6.5 分销面板 | P1 | 2天 | US-6.1 + US-6.3 | ✅ |
+| US-6.6 C端年费订阅入口 | P0 | 1.5天 | US-3.2 + US-4.1 | ✅ |
+| US-7.1 批注功能 | P2 | 2天 | P0完成 | ✅ |
+| US-7.2 客户分组 | P2 | 2天 | P0完成 | ✅ |
+| US-8.1 系统配置管理 | **P0** | **2天** | **无(独立基础设施)** | ✅ |
+| US-8.2 订单管理 | P1 | 1.5天 | US-4.1 + Order 新增字段 | ✅ |
+| US-8.3 佣金查看 | P1 | 1天 | US-6.3 | ✅ |
+| US-9.1 学业方向AI解读 | P1 | 2天 | US-1.1 + Dify学业Workflow | ✅ |
+| US-9.2 申请能量师出方案 | P1 | 1.5天 | US-5.1 + US-9.1 | ✅ |
+| US-9.3 能量师介入AI会话 | P1 | 2天 | US-5.1 + US-3.4 | ✅ |
+| US-9.4 方案价格协商 | P1 | 1.5天 | US-9.3 | ✅ |
+| US-9.5 方案付费与交付 | P1 | 2天 | US-9.4 + CommerceService 接口 | ✅ |
+| US-9.6 人工方案分销佣金 | P1 | 1天 | US-9.5 + US-8.1 | ✅ |
 
 ---
 

+ 1 - 1
num-server/src/main/java/com/etotem/num/service/PlanRequestService.java

@@ -233,7 +233,7 @@ public class PlanRequestService {
         }
 
         // Create order for this plan request (status will be "pending" from OrderService)
-        Order order = orderService.createOrder(userId, request.getPrice(), "wechat", "practitioner_plan", false);
+        Order order = orderService.createOrder(userId, request.getPrice(), "wechat", "practitioner_plan", false, false);
 
         // Update plan request
         request.setOrderId(order.getId());

+ 9 - 4
num-server/src/test/java/com/etotem/num/service/OrderServiceTest.java

@@ -23,6 +23,8 @@ import org.mockito.InOrder;
 import java.util.Arrays;
 import java.util.Collections;
 
+import com.etotem.num.commerce.CommerceService;
+
 @SpringBootTest
 class OrderServiceTest {
 
@@ -44,11 +46,14 @@ class OrderServiceTest {
     @MockBean
     private ConfigService configService;
 
+    @MockBean
+    private CommerceService commerceService;
+
     @Test
     void testCreateOrder() {
         when(orderRepository.save(any(Order.class))).thenAnswer(invocation -> invocation.getArgument(0));
         // createOrder(39800) → not annual → productType="practitioner"
-        Order order = orderService.createOrder(100L, 39800, "wxpay", null, null);
+        Order order = orderService.createOrder(100L, 39800, "wxpay", null, null, null);
 
         assertEquals(100L, order.getUserId());
         assertEquals(39800, order.getTotalFee());
@@ -63,7 +68,7 @@ class OrderServiceTest {
     void testCreateOrder_withProductType() {
         when(orderRepository.save(any(Order.class))).thenAnswer(invocation -> invocation.getArgument(0));
 
-        Order order = orderService.createOrder(100L, 13100, "wxpay", "annual", true);
+        Order order = orderService.createOrder(100L, 13100, "wxpay", "annual", true, false);
 
         assertEquals("annual", order.getProductType());
         assertTrue(order.getIsUpgrade());
@@ -295,8 +300,8 @@ class OrderServiceTest {
     void testCreateOrder_generatesOutTradeNo() {
         when(orderRepository.save(any(Order.class))).thenAnswer(invocation -> invocation.getArgument(0));
 
-        Order order1 = orderService.createOrder(100L, 39800, "wxpay", null, null);
-        Order order2 = orderService.createOrder(100L, 39800, "wxpay", null, null);
+        Order order1 = orderService.createOrder(100L, 39800, "wxpay", null, null, null);
+        Order order2 = orderService.createOrder(100L, 39800, "wxpay", null, null, null);
 
         // Each order should have a unique outTradeNo
         assertNotNull(order1.getOutTradeNo());