Explorar el Código

feat(order): 新增订单扩展字段并优化课程分组查询逻辑

- 在AppOrder实体中添加orderExtraField字段用于存储订单扩展信息
- 修改订单创建逻辑,将productIds存入orderExtraField字段- 优化课程分组查询SQL,关联订单产品信息表确保数据一致性
-为临时课程接口添加事务注解保证操作原子性- 调整包场订单处理逻辑,使用扩展字段优化产品ID处理方式
wzq hace 2 días
padre
commit
95d7757b2a

+ 4 - 5
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java

@@ -500,6 +500,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
                 .setOrderStatus(0)
                 .setProductIds(createOrderForm.getProductIds())
                 .setAmount(createOrderForm.getAmount())
+                .setOrderExtraField(createOrderForm.getProductIds())
         ;
         BigDecimal totalPrice = BigDecimal.ZERO;
 
@@ -1349,12 +1350,10 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
         //构建商品IDs
         List<PriceChangeForm.OrderItemForm> orderItemList = priceChangeForm.getOrderItemList();
         String productIds = orderItemList.get(0).getProductId();
-
+        createOrderForm.setProductIds(productIds);
         if (order.getOrderType() == 1){
-            productIds = orderItemList.stream().map(PriceChangeForm.OrderItemForm::getProductId)
-                    .collect(Collectors.joining(","));
+            createOrderForm.setProductIds(order.getOrderExtraField());
         }
-        createOrderForm.setProductIds(productIds);
         //构建保险表单
         List<InsureOrderInfo> insureOrderInfos =
                 insureOrderInfoMapper.selectList(Wrappers.<InsureOrderInfo>lambdaQuery().eq(InsureOrderInfo::getOrderId,
@@ -1529,7 +1528,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
 
                 //包场
                 if (createOrderForm.getOrderType() == 1) {
-
+                    //1976836179476189186|2025-10-23,1976836179522326529|2025-10-23
                     List<String> list = Arrays.stream(createOrderForm.getProductIds().split(",")).collect(Collectors.toList());
 
                     //订单总价(商品的售价总和)

+ 4 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppOrder.java

@@ -216,4 +216,8 @@ public class AppOrder implements Serializable {
     @Excel(name = "是否免费课订单(0-否 1-是)", width = 15)
     @Schema(description = "是否免费课订单(0-否 1-是)")
     private Integer orderOrFree;
+    /**
+     * 订单扩展字段
+     */
+    private String orderExtraField;
 }

+ 2 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppClassGroupingMapper.xml

@@ -44,8 +44,9 @@
         nm_class_grouping cg
         LEFT JOIN sys_user u ON u.id = cg.coach_user_id
         LEFT JOIN nm_class_user cu ON cu.class_grouping_id = cg.id
+        LEFT JOIN nm_order_pro_info opi ON opi.product_id = cu.course_id AND opi.family_user_id = cu.family_member_id
         <where>
-            cg.del_flag = 0 AND cu.del_flag = 0 AND cg.course_id = #{classGroupingCasePageForm.courseId}
+            cg.del_flag = 0 AND cu.del_flag = 0 AND opi.id is NOT NULL AND cg.course_id = #{classGroupingCasePageForm.courseId}
             <if test="classGroupingCasePageForm.classGroupingName != null and classGroupingCasePageForm.classGroupingName != ''">
                 AND cg.class_name = #{classGroupingCasePageForm.classGroupingName}
             </if>

+ 1 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppCoureseServiceImpl.java

@@ -405,6 +405,7 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean temporaryCourse(TemporaryCourseForm temporaryCourseForm) {
 
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();