Explorar o código

feat(instructor): 根据订单数对教练进行排序并优化详情展示

- 在 AppCoursesMapper 中添加 getInstructorOrderCount 方法,用于获取教练订单数
- 修改 AppHomeServiceImpl 中的 coachList排序逻辑,根据订单数进行排序
- 更新 DetailServiceImpl 中的 instructor 详情展示,使用真实姓名并添加用户 ID
SheepHy hai 2 semanas
pai
achega
3548bec7dc

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

@@ -79,10 +79,10 @@ public class AppHomeServiceImpl implements IAppHomeService {
                             Wrappers.<AppInstructor>lambdaQuery().eq(AppInstructor::getUserId, userId));
                     return new Object() {
                         final String id = userId;
-                        final Double goodRate = instructor != null ? Double.parseDouble(String.valueOf(instructor.getGoodRate())) : 0.0;
+                        final Integer orderSum = instructor != null ? appCoursesMapper.getInstructorOrderCount(userId) : 0;
                     };
                 })
-                .sorted((a, b) -> Double.compare(b.goodRate, a.goodRate))
+                .sorted((a, b) -> Integer.compare(b.orderSum, a.orderSum))
                 .limit(2)
                 .map(obj -> obj.id)
                 .collect(Collectors.toList());

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

@@ -132,7 +132,8 @@ public class DetailServiceImpl implements IDetailService {
                 });
                 vo.setCategory(category);
                 SysUser sysUser = sysUserMapper.selectById(instructor.getUserId());
-                vo.setName(sysUser.getUsername()).setAvatar(sysUser.getAvatar());
+                vo.setName(sysUser.getRealname()).setAvatar(sysUser.getAvatar());
+                vo.setId(sysUser.getId());
                 instructorVOList.add(vo);
             }
         }

+ 9 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/AppCoursesMapper.java

@@ -59,6 +59,15 @@ public interface AppCoursesMapper extends BaseMapper<AppCourses> {
 
     List<AppCoursesPageVO> queryMakeUpClassTable(@Param("orgCode")String orgCode, @Param("userId")String userId);
 
+    /**
+     * @Author SheepHy
+     * @Description 根据教练ID获取教练订单数
+     * @Date 14:14 2025/9/4
+     * @Param
+     * @return
+     **/
+    int getInstructorOrderCount(@Param("id") String id);
+
     /**
      * 查询课程详情(包含逻辑删除数据)
      * @param id

+ 8 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppCoursesMapper.xml

@@ -248,5 +248,13 @@
         </where>
         ORDER BY c.create_time DESC
     </select>
+    <select id="getInstructorOrderCount" resultType="integer">
+        SELECT
+            SUM((SELECT COUNT(*) FROM nm_order b
+                 WHERE FIND_IN_SET(a.id, b.product_ids)
+            ))
+                AS orderCount
+        FROM nm_courses a WHERE a.user_id = #{id}
+    </select>
 
 </mapper>