Browse Source

酷乐秀优化

zouxuan 4 months ago
parent
commit
4284014c95

+ 12 - 36
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java

@@ -6,10 +6,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
-import com.yonge.cooleshow.biz.dal.service.StudentStarService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
-import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.HotTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
@@ -31,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -38,31 +36,27 @@ import java.util.stream.Collectors;
 @RequestMapping("${app-config.url.student:}/teacher")
 @Api(value = "教师表", tags = "教师表")
 public class TeacherController extends BaseController {
-    @Autowired
+    @Resource
     private TeacherStyleVideoService styleVideoService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private TeacherService teacherService;
-    @Autowired
+    @Resource
     private StudentStarService studentStarService;
-    @Autowired
+    @Resource
     private AppVersionInfoService appVersionInfoService;
 
     @ApiOperation(value = "老师风采-分页")
     @PostMapping("/stylePage")
     public HttpResponseResult<PageInfo<TeacherStyleVideoVo>> stylePage(@RequestBody TeacherStyleSearch query) {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
         /*if(StringUtils.isBlank(query.getSubjectId())){
         	Student student = studentService.getById(user.getId());
         	query.setSubjectId(student.getSubjectId());
         }*/
         // 检查app版本
         query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(), query.getVersion()));
-        query.setStudentId(user.getId());
+        query.setStudentId(sysUserService.getUserId());
         IPage<TeacherStyleVideoVo> pages = styleVideoService.stylePage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
@@ -73,11 +67,7 @@ public class TeacherController extends BaseController {
         if (null == userId) {
             return failed("缺少老师ID");
         }
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        HttpResponseResult<TeacherHomeVo> res = teacherService.queryTeacherHome(user.getId(), userId);
+        HttpResponseResult<TeacherHomeVo> res = teacherService.queryTeacherHome(sysUserService.getUserId(), userId);
         //学生端过滤只看审核通过的
         if (null != res.getData() && !CollectionUtils.isEmpty(res.getData().getStyleVideo())) {
             List<TeacherStyleVideo> styleVideo = res.getData().getStyleVideo();
@@ -98,11 +88,7 @@ public class TeacherController extends BaseController {
         if (null == starStatusEnum) {
             return failed("缺少关注状态");
         }
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return studentStarService.starOrUnStar(user.getId(), userId, starStatusEnum);
+        return studentStarService.starOrUnStar(sysUserService.getUserId(), userId, starStatusEnum);
     }
 
     @ApiOperation(value = "增加视频浏览量")
@@ -126,20 +112,10 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "推荐老师列表")
     @GetMapping("/queryHotTeacherList")
     public HttpResponseResult<List<HotTeacherVo>> queryHotTeacherList() {
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        Long userId = null;
-        if (user != null && null != user.getId()) {
-            userId = user.getId();
-        }
-        List<HotTeacherVo> list = teacherService.queryHotTeacherList(userId);
-        
+        List<HotTeacherVo> list = teacherService.queryHotTeacherList(sysUserService.getUserId());
         for(HotTeacherVo vo : list){
         	vo.setGraduateSchool(null);
         }
-        
         return HttpResponseResult.succeed(list);
     }
 }

+ 3 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java

@@ -133,7 +133,9 @@ public class TeacherHomeController extends BaseController {
     @PostMapping("/teacherIncomeList")
     public HttpResponseResult<PageInfo<TeacherIndexWrapper.TeacherIncome>> teacherIncomeList(@RequestBody TeacherIndexWrapper.CourseExposureSearch query) {
         query.setTeacherId(sysUserService.getUserId());
-        return succeed(homeService.teacherIncomeList(PageUtil.getPage(query),query));
+        PageInfo<TeacherIndexWrapper.TeacherIncome> teacherIncomePageInfo = homeService.teacherIncomeList(PageUtil.getPage(query), query);
+        teacherIncomePageInfo.setStatInfo(homeService.teacherIncomeSum(query));
+        return succeed(teacherIncomePageInfo);
     }
 
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/HomeDao.java

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -78,4 +79,6 @@ public interface HomeDao {
 
     IPage<TeacherIndexWrapper.TeacherIncome> teacherIncomeList(@Param("page") IPage<TeacherIndexWrapper.TeacherIncome> page,
                                                               @Param("param") TeacherIndexWrapper.CourseExposureSearch query);
+
+    BigDecimal teacherIncomeSum(@Param("param") TeacherIndexWrapper.CourseExposureSearch query);
 }

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherDao.java

@@ -134,5 +134,8 @@ public interface TeacherDao extends BaseMapper<Teacher> {
      */
     List<StatGroupWrapper> countCustomerServiceMemberNum();
 
-    List<Long> getStudentIds(@Param("teacherId") Long teacherId, @Param("subjectId") Long subjectId);
+    List<Long> getStudentIds(@Param("teacherId") Long teacherId,
+                             @Param("subjectId") Long subjectId,
+                             @Param("startTime") String startTime,
+                             @Param("endTime") String endTime);
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/HomeService.java

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -93,4 +94,6 @@ public interface HomeService {
     List<TeacherIndexWrapper.CourseExposureTotal> courseBuyTotal(TeacherIndexWrapper.CourseExposureSearch query);
 
     PageInfo<TeacherIndexWrapper.TeacherIncome> teacherIncomeList(IPage<TeacherIndexWrapper.TeacherIncome> page,TeacherIndexWrapper.CourseExposureSearch query);
+
+    BigDecimal teacherIncomeSum(TeacherIndexWrapper.CourseExposureSearch query);
 }

+ 18 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java

@@ -24,6 +24,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.utils.collection.MapUtil;
 import com.yonge.toolset.utils.date.DateUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -393,7 +394,7 @@ public class HomeServiceImpl implements HomeService {
     public TeacherIndexWrapper.TeacherPracticeHome getTeacherPracticeHome(TeacherIndexWrapper.SummarySearch summarySearch) {
         TeacherIndexWrapper.TeacherPracticeHome teacherPracticeHome = new TeacherIndexWrapper.TeacherPracticeHome();
         //获取老师关联的学员
-        List<Long> studentIds = teacherService.getDao().getStudentIds(summarySearch.getTeacherId(),summarySearch.getSubjectId());
+        List<Long> studentIds = teacherService.getDao().getStudentIds(summarySearch.getTeacherId(), summarySearch.getSubjectId(), summarySearch.getStartTime(), summarySearch.getEndTime());
         if(CollectionUtils.isEmpty(studentIds)){
             return teacherPracticeHome;
         }
@@ -481,7 +482,10 @@ public class HomeServiceImpl implements HomeService {
     @Override
     public List<TeacherIndexWrapper.StudentPracticeSummaryDto> getTeacherHomeStudent(TeacherIndexWrapper.StudentSearch studentSearch) {
         //获取老师关联的学员
-        List<Long> studentIds = teacherService.getDao().getStudentIds(studentSearch.getTeacherId(),studentSearch.getSubjectId());
+        List<Long> studentIds = teacherService.getDao().getStudentIds(studentSearch.getTeacherId(),
+                studentSearch.getSubjectId(),
+                studentSearch.getStartTime(),
+                studentSearch.getEndTime());
         if(CollectionUtils.isEmpty(studentIds)){
             return Collections.emptyList();
         }
@@ -532,7 +536,10 @@ public class HomeServiceImpl implements HomeService {
         List<TeacherIndexWrapper.CourseExposureTotal> liveSummer = userOrderDetailService.getDao().liveBuyTotal(search,groupBy);
         result.put("COURSE",exposureFillData(liveSummer,dateList));
         //获取老师关联的学员
-        List<Long> studentIds = teacherService.getDao().getStudentIds(search.getTeacherId(),null);
+        List<Long> studentIds = teacherService.getDao().getStudentIds(search.getTeacherId(),
+                null,
+                search.getStartTime(),
+                search.getEndTime());
         if(CollectionUtils.isNotEmpty(studentIds)){
             //曲谱
             search.setStudentIds(studentIds);
@@ -566,7 +573,8 @@ public class HomeServiceImpl implements HomeService {
         if (CollectionUtils.isNotEmpty(records)) {
             List<Long> userIds = records.stream().map(TeacherIndexWrapper.TeacherIncome::getUserId).collect(Collectors.toList());
             //获取用户声部信息
-//            studentService.querySubject()
+            List<Map<Integer, String>> studentSubjectMapList = studentService.getDao().getStudentSubjectMapList(userIds);
+            Map<Integer, String> studentSubjectMap = MapUtil.convertIntegerMap(studentSubjectMapList);
             List<SysUser> sysUsers = sysUserService.getDao().selectBatchIds(userIds);
             Map<Long, SysUser> sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getId, Function.identity()));
             for (TeacherIndexWrapper.TeacherIncome teacherIncome : records) {
@@ -575,9 +583,15 @@ public class HomeServiceImpl implements HomeService {
                     teacherIncome.setUserName(sysUser.getUsername());
                     teacherIncome.setUserAvatar(sysUser.getAvatar());
                 }
+                teacherIncome.setSubjectName(studentSubjectMap.get(teacherIncome.getUserId().intValue()));
             }
         }
         return PageUtil.pageInfo(record);
     }
 
+    @Override
+    public BigDecimal teacherIncomeSum(TeacherIndexWrapper.CourseExposureSearch query) {
+        return baserMapper.teacherIncomeSum(query);
+    }
+
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -1244,12 +1244,12 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         List<Long> watchTeacherIdList = new ArrayList<Long>();
 
         List<StudentStar> studentStarList = studentStarDao.queryByStudentId(userId);
-        if (studentStarList != null && studentStarList.size() > 0) {
+        if (CollectionUtils.isNotEmpty(studentStarList)) {
             watchTeacherIdList = studentStarList.stream().map(StudentStar::getTeacherId).collect(Collectors.toList());
         }
 
         Student student = studentService.getById(userId);
-        Long subjectId = -1L;
+        long subjectId = -1L;
         if (student !=null && student.getSubjectId() != null) {
             subjectId = Long.parseLong(student.getSubjectId());
         }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TeacherIndexWrapper.java

@@ -181,7 +181,7 @@ public class TeacherIndexWrapper {
         @ApiModelProperty("结束时间")
         private String endTime;
 
-        @ApiModelProperty("类型MUSIC:乐谱,LIVE:直播课,VIDEO:视频课")
+        @ApiModelProperty("类型MUSIC:乐谱,LIVE:直播课,VIDEO:视频课,VIP_COURSE vip课,GROUP 小组课,PRACTICE 趣纠课")
         private String type;
 
         @ApiModelProperty("老师id")

+ 48 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/HomeMapper.xml

@@ -528,14 +528,58 @@
 	</select>
 	<select id="teacherIncomeList"
 			resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$TeacherIncome">
-		select uo.user_id_ userId,cg.course_num_ bizQuantity,ttar.trans_amount_ amount,uo.create_time_ orderTime
+		select uo.user_id_ userId,ttar.trans_amount_ amount,
+		<if test="param.type != 'MUSIC'">
+			cg.course_num_ bizQuantity,
+		</if>
+		<if test="param.type == 'MUSIC'">
+			1 bizQuantity,
+		</if>
+		uo.create_time_ orderTime,cg.name_ bizName
 		from tenant_teacher_account_record ttar
 		left join user_order uo ON uo.order_no_ = ttar.order_no_
-		left join user_order_detail uod ON uod.order_no_ = uo.order_no_
-		left join course_group cg ON cg.id_ = ttar.biz_id_
+		<if test="param.type != 'MUSIC'">
+			left join course_group cg ON cg.id_ = ttar.biz_id_
+		</if>
+		<if test="param.type == 'MUSIC'">
+			left join music_sheet cg ON cg.id_ = ttar.biz_id_
+		</if>
 		where uo.status_ = 'PAID' AND ttar.biz_type_ = uod.good_type_ AND ttar.in_or_out_ = 'IN'
 		AND uo.create_time_ BETWEEN #{param.startTime} AND #{param.endTime} AND ttar.teacher_id_ = #{param.teacherId}
 		AND ttar.biz_type_ = #{param.type}
-		order by uo.create_time_ desc
+		UNION ALL
+		select uo.user_id_ userId,COUNT(ucar.id_) bizQuantity,SUM(ucar.trans_amount_) amount,
+		       uo.create_time_ orderTime,cg.name_ bizName
+		from user_cash_account_record ucar
+		left join user_order uo ON uo.order_no_ = ucar.order_no_
+		<if test="param.type != 'MUSIC'">
+			left join course_schedule cs ON cs.id_ = ucar.biz_id_
+			left join course_group cg ON cg.id_ = cs.course_group_id_
+		</if>
+		<if test="param.type == 'MUSIC'">
+			left join music_sheet cg ON cg.id_ = ttar.biz_id_
+		</if>
+		where uo.status_ = 'PAID' AND ucar.in_or_out_ = 'IN'
+		AND uo.create_time_ BETWEEN #{param.startTime} AND #{param.endTime} AND ucar.account_id_ = #{param.teacherId}
+		AND ucar.biz_type_ = #{param.type}
+		group by ucar.order_no_
+		order by orderTime desc
+	</select>
+	<select id="teacherIncomeSum" resultType="java.math.BigDecimal">
+		select sum(a.amount) from (
+			select SUM(ttar.trans_amount_) amount
+			from tenant_teacher_account_record ttar
+			left join user_order uo ON uo.order_no_ = ttar.order_no_
+			where uo.status_ = 'PAID' AND ttar.biz_type_ = uod.good_type_ AND ttar.in_or_out_ = 'IN'
+			  AND uo.create_time_ BETWEEN #{param.startTime} AND #{param.endTime} AND ttar.teacher_id_ = #{param.teacherId}
+			  AND ttar.biz_type_ = #{param.type}
+			UNION ALL
+			select SUM(ucar.trans_amount_) amount
+			from user_cash_account_record ucar
+			left join user_order uo ON uo.order_no_ = ucar.order_no_
+			where uo.status_ = 'PAID' AND ucar.in_or_out_ = 'IN'
+			  AND uo.create_time_ BETWEEN #{param.startTime} AND #{param.endTime} AND ucar.account_id_ = #{param.teacherId}
+			  AND ucar.biz_type_ = #{param.type}
+			) a
 	</select>
 </mapper>

+ 6 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -512,10 +512,16 @@
     <select id="getStudentIds" resultType="java.lang.Long">
         select distinct cssp.user_id_ from course_group cg
         left join course_schedule_student_payment cssp ON cssp.course_group_id_ = cg.id_
+        <if test="startTime != null and startTime != ''">
+            left join course_schedule cs ON cssp.course_id_ = cs.id_
+        </if>
         <if test="subjectId != null">
             left join student st ON st.user_id_ = cssp.user_id_
         </if>
         where cg.status_ = 'ING' AND cg.teacher_id_ = #{teacherId}
+        <if test="startTime != null and startTime != ''">
+            AND cs.class_date_ BETWEEN #{startTime} AND #{endTime}
+        </if>
         <if test="subjectId != null">
             and find_in_set(#{subjectId},st.subject_id_)
         </if>