Przeglądaj źródła

feat(app): 添加教练订单数统计并优化课程相关逻辑

- 在 AppCoureseServiceImpl 中添加价格类型判断逻辑
- 在 AppHomeServiceImpl 中增加教练订单数统计
- 更新 AppOrderMapper.xml 中的查询语句,增加订单类型条件- 优化 InstructorVO 中的订单数类型
SheepHy 1 miesiąc temu
rodzic
commit
25e341ec53

+ 13 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/AppHomeServiceImpl.java

@@ -52,6 +52,8 @@ public class AppHomeServiceImpl implements IAppHomeService {
     private AppSearchHotMapper appSearchHotMapper;
     @Resource
     private AppGamePriceRulesMapper appGamePriceRulesMapper;
+    @Resource
+    private AppOrderMapper appOrderMapper;
 
     @Override
     public HomeVO homeInfo() {
@@ -101,13 +103,21 @@ public class AppHomeServiceImpl implements IAppHomeService {
                         String str = appCategoryMapper.selectById(item).getName();
                         list.add(str);
                     });
+            List<String> courseIds = appCoursesMapper.selectList(
+                            Wrappers.<AppCourses>lambdaQuery()
+                                    .select(AppCourses::getId)
+                                    .eq(AppCourses::getUserId, userId)
+                    ).stream()
+                    .map(AppCourses::getId)
+                    .collect(Collectors.toList());
             AppSite appSite = appSiteMapper.selectOne(Wrappers.<AppSite>lambdaQuery().eq(AppSite::getOrgCode, appInstructor.getOrgCode()));
             if(null != appSite){
                 instructorVO.setId(sysUser.getId())
                         .setAvatar(sysUser.getAvatar())
                         .setName(sysUser.getRealname()).setList(list)
                         .setTeachingCount(appInstructor.getClassesNumber())
-                        .setOrgName(appSite.getName());
+                        .setOrgName(appSite.getName())
+                        .setOrderCount(appOrderMapper.findByOrderNumCount(courseIds));
             }
 
             // 获取该教练的课程(最多取2个)
@@ -118,8 +128,8 @@ public class AppHomeServiceImpl implements IAppHomeService {
                     .map(course -> {
                         InstructorVO.CourseInfoVO vo = new InstructorVO.CourseInfoVO();
                         BeanUtils.copyProperties(course,vo);
-                        //todo 教练订单统计
-                        vo.setCount(6666);
+                        vo.setCount(Math.toIntExact(appCoursesMapper.selectCount(Wrappers.<AppCourses>lambdaQuery()
+                                .eq(AppCourses::getUserId, userId))));
                         vo.setSellingPrice(course.getSellingPrice());
                         return vo;
                     })

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/InstructorVO.java

@@ -26,7 +26,7 @@ public class InstructorVO {
     @Schema(description = "好评率")
     private BigDecimal goodRate;
     @Schema(description = "订单数")
-    private String orderCount;
+    private Long orderCount;
     @Schema(description = "授课人数")
     private Integer teachingCount;
     @Schema(description = "擅长说明")

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

@@ -58,14 +58,14 @@
     </select>
     <select id="findByTeachingCount" resultType="java.lang.Long">
         select count(1)  from nm_order_pro_info
-        where product_id in
+        where  product_id in
         <foreach collection="productIds" item="productId" open="(" separator="," close=")">
             #{productId}
         </foreach>
     </select>
     <select id="findByOrderNumCount" resultType="java.lang.Long">
         select count(DISTINCT  order_id)  from nm_order_pro_info
-        where product_id in
+        where order_type = 5 and product_id in
         <foreach collection="productIds" item="productId" open="(" separator="," close=")">
             #{productId}
         </foreach>

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

@@ -79,6 +79,8 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
         if (appCoursesDTO.getCourses().getSellingPrice() == null ||
                 appCoursesDTO.getCourses().getSellingPrice().compareTo(BigDecimal.ZERO) == 0) {
             appCourses.setPriceType(1);
+        }else {
+            appCourses.setPriceType(0);
         }
 
         appCourses.setUserId(coursesCuDTO.getUserId());