瀏覽代碼

fix(app):修复分班创建时的验证注解问题并优化查询逻辑

- 将 @Validate 替换为 @Validated 以支持 Spring 验证框架
- 在订单状态过滤条件中添加范围限制,确保只查询有效订单- 排除临时约课记录以避免影响分班统计
- 更新家庭成员 ID 字段验证规则,使用 @NotEmpty 确保非空集合校验
wzq 1 周之前
父節點
當前提交
afe1a3f2ca

+ 2 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppClassGroupingController.java

@@ -25,6 +25,7 @@ import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.simpleframework.xml.core.Validate;
 import org.simpleframework.xml.core.Validate;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
@@ -138,7 +139,7 @@ public class AppClassGroupingController {
      */
      */
     @AutoLog(value = "分班创建")
     @AutoLog(value = "分班创建")
     @PostMapping(value = "/add")
     @PostMapping(value = "/add")
-    public Result<String> add(@RequestBody @Validate ClassGroupingForm classGroupingCaseForm) {
+    public Result<String> add(@RequestBody @Validated ClassGroupingForm classGroupingCaseForm) {
 
 
         AppClassGrouping appClassGrouping = new AppClassGrouping();
         AppClassGrouping appClassGrouping = new AppClassGrouping();
         appClassGrouping.setClassName(classGroupingCaseForm.getClassName());
         appClassGrouping.setClassName(classGroupingCaseForm.getClassName());

+ 2 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/form/ClassGroupingForm.java

@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import lombok.experimental.Accessors;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
@@ -52,6 +53,6 @@ public class ClassGroupingForm implements Serializable {
     /**
     /**
      * 家庭成员IDs
      * 家庭成员IDs
      **/
      **/
-    @NotNull(message = "学员不能为空")
+    @NotEmpty(message = "学员不能为空")
     private List<String> familyMemberIds;
     private List<String> familyMemberIds;
 }
 }

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

@@ -15,10 +15,9 @@
         FROM
         FROM
         nm_courses c
         nm_courses c
         LEFT JOIN nm_site s ON c.address_site_id = s.id
         LEFT JOIN nm_site s ON c.address_site_id = s.id
-        LEFT JOIN nm_order_pro_info op ON op.product_id = c.id
+        LEFT JOIN nm_order_pro_info op ON op.product_id = c.id AND op.order_status BETWEEN 1 AND 3
         <where>
         <where>
             c.del_flag = 0
             c.del_flag = 0
-            AND op.order_status BETWEEN 1 AND 3
             <if test="classGroupingPageForm.orgCode != null and classGroupingPageForm.orgCode != ''">
             <if test="classGroupingPageForm.orgCode != null and classGroupingPageForm.orgCode != ''">
                 AND c.org_code = #{classGroupingPageForm.orgCode}
                 AND c.org_code = #{classGroupingPageForm.orgCode}
             </if>
             </if>

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

@@ -48,6 +48,7 @@ public class AppClassGroupingServiceImpl extends ServiceImpl<AppClassGroupingMap
         IPage<ClassGroupingVO> queryPage = baseMapper.queryPage(page, classGroupingPageForm);
         IPage<ClassGroupingVO> queryPage = baseMapper.queryPage(page, classGroupingPageForm);
         queryPage.getRecords().forEach(record -> {
         queryPage.getRecords().forEach(record -> {
 
 
+            //排除临时约课
             long AlreadyClassGroupingNum =
             long AlreadyClassGroupingNum =
                     appClassUserMapper.selectCount(Wrappers.lambdaQuery(AppClassUser.class).eq(AppClassUser::getCourseId, record.getId()).eq(AppClassUser::getOrTemp, 0));
                     appClassUserMapper.selectCount(Wrappers.lambdaQuery(AppClassUser.class).eq(AppClassUser::getCourseId, record.getId()).eq(AppClassUser::getOrTemp, 0));