Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 years ago
parent
commit
90a7e8237c
29 changed files with 337 additions and 24 deletions
  1. 6 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java
  2. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentDao.java
  3. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherDao.java
  4. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java
  5. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CacheNameEnum.java
  6. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java
  7. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java
  8. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java
  9. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderPaymentService.java
  10. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java
  11. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  12. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java
  13. 14 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  14. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentStarServiceImpl.java
  15. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthEntryRecordServiceImpl.java
  16. 20 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  17. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderPaymentServiceImpl.java
  18. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  19. 8 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonEvaluateServiceImpl.java
  20. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java
  21. 102 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CountVideoGroupVo.java
  22. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/HomeUserToDoNum.java
  23. 2 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/HomeMapper.xml
  24. 16 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml
  25. 11 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  26. 19 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml
  27. 3 4
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/PaymentController.java
  28. 12 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentController.java
  29. 10 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java

+ 6 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -133,4 +133,10 @@ public class VideoLessonController extends BaseController {
         lessonGroupService.updateGroup(examineVo);
         return succeed();
     }
+
+    @ApiOperation(value = "首页-视频课统计")
+    @GetMapping("/countVideoGroup")
+    public HttpResponseResult<CountVideoGroupVo> countVideoGroup() {
+        return succeed(lessonGroupService.countVideoGroup());
+    }
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentDao.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -32,4 +33,12 @@ public interface StudentDao extends BaseMapper<Student> {
 	 * @return: java.lang.Integer
 	 */
     Integer setSubject(@Param("id") Long id, @Param("subjectIds") String subjectIds);
+	/***
+	 * 获取声部下拉框
+	 * @author liweifan
+	 * @param: id
+	 * @updateTime 2022/5/9 10:17
+	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+	 */
+	List<Subject> querySubjectItem(@Param("userId")Long id);
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherDao.java

@@ -67,4 +67,12 @@ public interface TeacherDao extends BaseMapper<Teacher> {
      * @return: java.lang.Integer
      */
     Integer addHomeBrowse(@Param("userId")Long userId);
+    /***
+     * 获取声部下拉框
+     * @author liweifan
+     * @param: id
+     * @updateTime 2022/5/9 10:17
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+     */
+    List<Subject> querySubjectItem(@Param("userId")Long id);
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java

@@ -44,4 +44,10 @@ public interface VideoLessonGroupDao extends BaseMapper<VideoLessonGroup> {
 
     //根据组id查详情
     VideoLessonGroup selectGroupById(Long groupId);
+
+    //统计课时数
+    CountVideoGroupVo countVideoGroup();
+
+    //查询付费人数前5的课程
+    List<CountVideoGroupVo.VideoLesson> selectVideoLesson();
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CacheNameEnum.java

@@ -15,6 +15,8 @@ import java.time.Duration;
 public enum CacheNameEnum implements BaseEnum<String, CacheNameEnum> {
     TEACHER_TOTAL("老师统计缓存"),
     STUDENT_TOTAL("学生统计缓存"),
+    TEACHER_SUBJECT_ITEM("老师声部下拉缓存", Duration.ofHours(1L)),
+    STUDENT_SUBJECT_ITEM("学生声部下拉缓存", Duration.ofHours(1L)),
 
     LOCK_EXECUTE_ORDER("用户下单/付款/取消订单锁"),
     LOCK_CHANGE_ACCOUNT("账户变更锁"),
@@ -50,6 +52,10 @@ public enum CacheNameEnum implements BaseEnum<String, CacheNameEnum> {
         return msg;
     }
 
+    public Duration getDuration() {
+        return duration;
+    }
+
     public String getRedisKey(Object... detils) {
         String key = this.getCode();
         for (Object detil : detils) {

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -69,11 +69,19 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
         this.msg = msg;
     }
 
+    MessageTypeEnum(String code, String msg, String url) {
+        this.code = code;
+        this.msg = msg;
+        this.url = url;
+    }
+
     @EnumValue
     private String code;
 
     private String msg;
 
+    private String url;
+
     public void setCode(String code) {
         this.code = code;
     }
@@ -90,4 +98,12 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     public String getCode() {
         return code;
     }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
 }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.vo.StudentHomeVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
@@ -50,4 +51,13 @@ public interface StudentService extends IService<Student>  {
      * @return: java.lang.Integer
      */
     Integer setSubject(Long id, String subjectIds);
+
+    /***
+     * 获取声部下拉框
+     * @author liweifan
+     * @param: id
+     * @updateTime 2022/5/9 10:16
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+     */
+    List<Subject> querySubjectItem(Long id);
 }

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java

@@ -115,5 +115,12 @@ public interface TeacherService extends IService<Teacher> {
      * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.lang.Boolean>
      */
     HttpResponseResult<Boolean> addHomeBrowse(Long userId);
-
+    /***
+     * 获取声部下拉框
+     * @author liweifan
+     * @param: id
+     * @updateTime 2022/5/9 10:16
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+     */
+    List<Subject> querySubjectItem(Long id);
 }

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderPaymentService.java

@@ -38,7 +38,14 @@ public interface UserOrderPaymentService extends IService<UserOrderPayment> {
      * @return: com.yonge.cooleshow.biz.dal.entity.UserOrderPayment
      */
     UserOrderPayment detailByTransNo(String transNo);
-
+    /***
+     * 通过汇付支付订单号查询付款单
+     * @author liweifan
+     * @param: orderNo
+     * @updateTime 2022/4/13 16:09
+     * @return: com.yonge.cooleshow.biz.dal.entity.UserOrderPayment
+     */
+    UserOrderPayment detailByAdapayNo(String transNo);
     /***
      * 关闭付款单
      * @author liweifan

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java

@@ -44,4 +44,6 @@ public interface VideoLessonGroupService extends IService<VideoLessonGroup> {
     IPage<VideoLessonAuthGroup> queryGroupList(IPage<VideoLessonAuthGroup> page, VideoGroupSearch query);
 
     IPage<LessonGroupVo> selectLessonGroupById(IPage<LessonGroupVo> page, VideoLessonGroupSearch query);
+
+    CountVideoGroupVo countVideoGroup();
 }

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -601,13 +601,13 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 .eq(CourseGroup::getId, groupId)
                 .eq(CourseGroup::getType, CourseScheduleEnum.LIVE.getCode())
         );
+        if (Objects.isNull(courseGroup)) {
+            throw new BizException("课程组不存在!");
+        }
         //只要不是销售中的课程组都提示无法购买
         if (!courseGroup.getStatus().equals(CourseGroupEnum.APPLY.getCode())) {
             throw new BizException("课程已结束销售!");
         }
-        if (Objects.isNull(courseGroup)) {
-            throw new BizException("课程组不存在!");
-        }
         //课程信息
         List<CourseSchedule> courseList = courseScheduleService.list(Wrappers.<CourseSchedule>lambdaQuery()
                 .eq(CourseSchedule::getCourseGroupId, groupId));

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

@@ -34,6 +34,7 @@ public class HomeServiceImpl implements HomeService {
         userToDoNum.setEntryNum(null == userToDoNum.getEntryNum() ? 0 : userToDoNum.getEntryNum());
         userToDoNum.setMusicianNum(null == userToDoNum.getMusicianNum() ? 0 : userToDoNum.getMusicianNum());
         userToDoNum.setMusicNum(null == userToDoNum.getMusicNum() ? 0 : userToDoNum.getMusicNum());
+        userToDoNum.setVideoCourseNum(null == userToDoNum.getVideoCourseNum() ? 0 : userToDoNum.getVideoCourseNum());
         return userToDoNum;
     }
 

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dao.StudentStarDao;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.vo.*;
@@ -24,6 +25,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 
@@ -76,4 +78,16 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     public Integer setSubject(Long id, String subjectIds) {
         return baseMapper.setSubject(id, subjectIds);
     }
+
+    @Override
+    public List<Subject> querySubjectItem(Long id) {
+        List<Subject> subjectList = (List<Subject>) redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(id)).get();
+        if (null == subjectList) {
+            subjectList = baseMapper.querySubjectItem(id);
+            redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(id))
+                    .set(subjectList, CacheNameEnum.STUDENT_SUBJECT_ITEM.getDuration().toHours(),
+                            TimeUnit.HOURS);
+        }
+        return subjectList;
+    }
 }

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentStarServiceImpl.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;

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

@@ -94,7 +94,7 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
         teacherDao.updateById(newTeacher);
 
         // 发送审核通知
-        authSend(teacher.getUserId(), teacher.getPhone(), authOperaReq.getPass(),authOperaReq.getReason());
+        authSend(teacher.getUserId(), teacher.getPhone(), authOperaReq.getPass(), authOperaReq.getReason());
         return HttpResponseResult.succeed(baseMapper.updateById(build) > 0);
     }
 
@@ -105,7 +105,7 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
         if (isPass) {
             try {
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_AUTH_PASS,
-                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(), "app内陪练课设置链接");
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(), MessageTypeEnum.TEACHER_AUTH_PASS.getUrl());
             } catch (Exception e) {
                 log.error("入驻审核极光消息推送异常,userId={}", userId);
             }

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

@@ -20,7 +20,6 @@ import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
@@ -36,6 +35,7 @@ import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Service
@@ -148,8 +148,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
     @Override
     public HttpResponseResult<Boolean> openLive(Long id) {
-        TeacherTotalVo totalVo = (TeacherTotalVo) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id)).get();
-        if (null == totalVo) {
+        TeacherTotal teacherTotal = (TeacherTotal) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id)).get();
+        if (null == teacherTotal) {
             return HttpResponseResult.succeed(false);
         }
         //开通直播需要粉丝数
@@ -157,7 +157,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         //开通直播需要已完成课时数
         Integer overClass = Integer.parseInt(sysConfigService.findByParamName(SysConfigConstant.OPEN_LIVE_OVER_CLASS).getParamValue());
         //根据老师规则,判断老师直播权限
-        if (totalVo.getFansNum() >= fansNum && totalVo.getExpTime() >= overClass) {
+        if (teacherTotal.getFansNum() >= fansNum && teacherTotal.getExpTime() >= overClass) {
             Teacher teacher = new Teacher();
             teacher.setUserId(id);
             teacher.setLiveFlag(YesOrNoEnum.YES);
@@ -300,7 +300,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
     @Override
     public Integer setSubject(Long id, String subjectIds) {
-        return baseMapper.setSubject(id, subjectIds);
+        Integer integer = baseMapper.setSubject(id, subjectIds);
+        //清除老师声部缓存
+        redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(id)).delete();
+        return integer;
     }
 
     @Override
@@ -354,4 +357,16 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         Integer num = baseMapper.addHomeBrowse(userId);
         return HttpResponseResult.succeed(num > 0);
     }
+
+    @Override
+    public List<Subject> querySubjectItem(Long id) {
+        List<Subject> subjectList = (List<Subject>) redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(id)).get();
+        if (null == subjectList) {
+            subjectList = baseMapper.querySubjectItem(id);
+            redissonClient.getBucket(CacheNameEnum.TEACHER_SUBJECT_ITEM.getRedisKey(id))
+                    .set(subjectList, CacheNameEnum.TEACHER_SUBJECT_ITEM.getDuration().toHours(),
+                            TimeUnit.HOURS);
+        }
+        return subjectList;
+    }
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderPaymentServiceImpl.java

@@ -54,6 +54,12 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
                 .eq(UserOrderPayment::getTransNo, transNo));
     }
 
+    @Override
+    public UserOrderPayment detailByAdapayNo(String adapayNo) {
+        return baseMapper.selectOne(Wrappers.<UserOrderPayment>lambdaQuery()
+                .eq(UserOrderPayment::getAdapayNo, adapayNo));
+    }
+
     /***
      * 入订单付款表
      * @author liweifan

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -344,8 +344,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
      * @updateTime 2022/4/27 15:09
      */
     private void paymentSucceededHandle(JSONObject hfRes) {
+        UserOrderPayment orderPayment = orderPaymentService.detailByAdapayNo(hfRes.getString("order_no"));
+        if(null == orderPayment){
+            return;
+        }
         //订单完成
-        UserOrderVo detail = detail(hfRes.getString("order_no"), null);
+        UserOrderVo detail = detail(orderPayment.getOrderNo(), null);
         if (null == detail) {
             log.error("汇付支付回调,订单未找到。 req is {}", hfRes.toJSONString());
             return;
@@ -679,5 +683,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                 userOrderVoConsumer.accept(orderDetailVo);
             }
         }
+
+        //清除老师声部缓存
+        redissonClient.getBucket(CacheNameEnum.STUDENT_SUBJECT_ITEM.getRedisKey(detail.getUserId())).delete();
     }
 }

+ 8 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonEvaluateServiceImpl.java

@@ -51,7 +51,7 @@ public class VideoLessonEvaluateServiceImpl extends ServiceImpl<VideoLessonEvalu
     @Transactional(rollbackFor = Exception.class)
     public void evaluate(VideoLessonEvaluate evaluate, SysUser sysUser) {
         Long userId = sysUser.getId();
-        String userType = sysUser.getUserType();
+//        String userType = sysUser.getUserType();
         Long videoId = evaluate.getVideoId();
 
         //根据课程id查询已购学生id
@@ -64,10 +64,15 @@ public class VideoLessonEvaluateServiceImpl extends ServiceImpl<VideoLessonEvalu
             throw new RuntimeException("未购买该课程无法参与讨论");
         }
 
-        List<String> typeList = Arrays.asList(userType.split(","));
-        if (typeList.contains("TEACHER")) {
+//        List<String> typeList = Arrays.asList(userType.split(","));
+//        if (typeList.contains("TEACHER")) {
+//            evaluate.setIsTeacher(YesOrNoEnum.YES);
+//        }
+        //当前用户为课程创建者  是:老师  否:学生
+        if (teacherId==userId){
             evaluate.setIsTeacher(YesOrNoEnum.YES);
         }
+
         evaluate.setStudentId(userId);
         videoLessonEvaluateDao.insert(evaluate);
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java

@@ -291,4 +291,15 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     public IPage<LessonGroupVo> selectLessonGroupById(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) {
         return page.setRecords(baseMapper.selectLessonGroup(page, query));
     }
+
+    /**
+     * @Description: 首页-视频课统计
+     * @Author: cy
+     * @Date: 2022/5/7
+     */
+    public CountVideoGroupVo countVideoGroup(){
+        CountVideoGroupVo countVideoGroup = baseMapper.countVideoGroup();
+        countVideoGroup.setVideoLessonList(baseMapper.selectVideoLesson());
+        return countVideoGroup;
+    }
 }

+ 102 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CountVideoGroupVo.java

@@ -0,0 +1,102 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author: cy
+ * @Date: 2022/5/7
+ */
+public class CountVideoGroupVo implements Serializable {
+
+    @ApiModelProperty(value = "视频课总数")
+    private Integer videoLessonCount;
+
+    @ApiModelProperty(value = "课程总数")
+    private Integer lessonCount;
+
+    @ApiModelProperty(value = "付费用户")
+    private Integer payingUser;
+
+    private List<VideoLesson> videoLessonList;
+
+    public static class VideoLesson{
+        @ApiModelProperty(value = "视屏课组id")
+        private Long videoLessonGroupId;
+
+        @ApiModelProperty(value = "视屏课组名称")
+        private String lessonName;
+
+        @ApiModelProperty(value = "课时数")
+        private Integer lessonNum;
+
+        @ApiModelProperty(value = "付费人数")
+        private Integer payCount;
+
+        public Long getVideoLessonGroupId() {
+            return videoLessonGroupId;
+        }
+
+        public void setVideoLessonGroupId(Long videoLessonGroupId) {
+            this.videoLessonGroupId = videoLessonGroupId;
+        }
+
+        public String getLessonName() {
+            return lessonName;
+        }
+
+        public void setLessonName(String lessonName) {
+            this.lessonName = lessonName;
+        }
+
+        public Integer getLessonNum() {
+            return lessonNum;
+        }
+
+        public void setLessonNum(Integer lessonNum) {
+            this.lessonNum = lessonNum;
+        }
+
+        public Integer getPayCount() {
+            return payCount;
+        }
+
+        public void setPayCount(Integer payCount) {
+            this.payCount = payCount;
+        }
+    }
+
+    public Integer getVideoLessonCount() {
+        return videoLessonCount;
+    }
+
+    public void setVideoLessonCount(Integer videoLessonCount) {
+        this.videoLessonCount = videoLessonCount;
+    }
+
+    public Integer getLessonCount() {
+        return lessonCount;
+    }
+
+    public void setLessonCount(Integer lessonCount) {
+        this.lessonCount = lessonCount;
+    }
+
+    public Integer getPayingUser() {
+        return payingUser;
+    }
+
+    public void setPayingUser(Integer payingUser) {
+        this.payingUser = payingUser;
+    }
+
+    public List<VideoLesson> getVideoLessonList() {
+        return videoLessonList;
+    }
+
+    public void setVideoLessonList(List<VideoLesson> videoLessonList) {
+        this.videoLessonList = videoLessonList;
+    }
+}

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/HomeUserToDoNum.java

@@ -15,6 +15,8 @@ public class HomeUserToDoNum {
     private Integer musicianNum;
     @ApiModelProperty("待审核乐谱 ")
     private Integer musicNum;
+    @ApiModelProperty("待审核视频课 ")
+    private Integer videoCourseNum;
 
     public Integer getEntryNum() {
         return entryNum;
@@ -39,4 +41,12 @@ public class HomeUserToDoNum {
     public void setMusicNum(Integer musicNum) {
         this.musicNum = musicNum;
     }
+
+    public Integer getVideoCourseNum() {
+        return videoCourseNum;
+    }
+
+    public void setVideoCourseNum(Integer videoCourseNum) {
+        this.videoCourseNum = videoCourseNum;
+    }
 }

+ 2 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/HomeMapper.xml

@@ -6,7 +6,8 @@
 		select
 			(select count(1) from teacher_auth_entry_record where teacher_auth_status_ = 'DOING') as entryNum,
 			(select count(1) from teacher_auth_musician_record where teacher_auth_status_ = 'DOING') as musicianNum,
-        	(select count(1) from music_sheet where del_flag_ = 0 and audit_status_ = 'DOING') as musicNum
+        	(select count(1) from music_sheet where del_flag_ = 0 and audit_status_ = 'DOING') as musicNum,
+        	(select count(1) from video_lesson_auth_record where audit_status_ = 'DOING') as videoCourseNum
         from dual
 	</select>
 

+ 16 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -96,4 +96,20 @@
         </where>
     </select>
 
+    <select id="querySubjectItem" resultType="com.yonge.cooleshow.biz.dal.entity.Subject">
+        select * from subject t
+        where exists(
+            select 1 from music_sheet a
+            left join music_sheet_purchase_record a1 on a.id_ = a1.music_sheet_id_
+            where a1.student_id_ = #{userId} and a1.order_status_ = 'PAID' and find_in_set(t.id_,a.music_subject_)
+            union
+            select 1 from course_group b
+            left join course_schedule_student_payment b1 on b.id_ = b1.course_group_id_
+            where b1.user_id_ = #{userId} and find_in_set(t.id_,b.subject_id_)
+            union
+            select 1 from video_lesson_group c
+            left join video_lesson_purchase_record c1 on c.id_ = c1.video_lesson_group_id_
+            where c1.student_id_ = #{userId} and find_in_set(t.id_,c.lesson_subject_)
+        )
+    </select>
 </mapper>

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

@@ -140,4 +140,15 @@
     <update id="addHomeBrowse">
         update teacher set browse_ = browse_ + 1 where user_id_ = #{userId}
     </update>
+
+    <select id="querySubjectItem" resultType="com.yonge.cooleshow.biz.dal.entity.Subject">
+        select * from subject t
+        where exists(
+            select 1 from music_sheet a where a.user_id_ = #{userId} and find_in_set(t.id_,a.music_subject_)
+            union
+            select 1 from course_group b where b.teacher_id_ = #{userId} and find_in_set(t.id_,b.subject_id_)
+            union
+            select 1 from video_lesson_group c where c.teacher_id_ = #{userId} and find_in_set(t.id_,c.lesson_subject_)
+        )
+    </select>
 </mapper>

+ 19 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -311,4 +311,23 @@
 		WHERE g.id_=#{groupId}
 		AND s.del_flag_ = 0
 	</select>
+	<select id="countVideoGroup" resultType="com.yonge.cooleshow.biz.dal.vo.CountVideoGroupVo">
+		SELECT
+			COUNT(1) AS videoLessonCount,
+			(SELECT COUNT(1) FROM (SELECT COUNT(1) FROM video_lesson_purchase_record GROUP BY student_id_) a) AS payingUser,
+			(SELECT COUNT(1) FROM video_lesson_group_detail WHERE video_lesson_group_id_ IN (SELECT id_ FROM video_lesson_group WHERE audit_status_='PASS')) AS lessonCount
+		FROM video_lesson_group WHERE audit_status_='PASS'
+	</select>
+	<select id="selectVideoLesson" resultType="com.yonge.cooleshow.biz.dal.vo.CountVideoGroupVo$VideoLesson">
+		SELECT
+			r.video_lesson_group_id_ AS videoLessonGroupId,
+			g.lesson_name_ AS lessonName,
+			g.lesson_count_ AS lessonNum,
+			COUNT(1) AS payCount
+		FROM video_lesson_purchase_record r
+		LEFT JOIN video_lesson_group g ON r.video_lesson_group_id_=g.id_
+		GROUP BY r.video_lesson_group_id_
+		ORDER BY payCount DESC
+		LIMIT 5
+	</select>
 </mapper>

+ 3 - 4
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/PaymentController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.student.controller;
 
 import com.alipay.api.response.AlipaySystemOauthTokenResponse;
 import com.huifu.adapay.core.AdapayCore;
+import com.huifu.adapay.core.util.AdapaySign;
 import com.huifu.adapay.core.util.StringUtil;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -103,13 +104,11 @@ public class PaymentController extends BaseController {
             //验签传参publicKey
             String publicKey = AdapayCore.PUBLIC_KEY;
             //验签
-            //todo 测试先取消验签
-           /* boolean checkSign = AdapaySign.verifySign(data, sign, publicKey);
+            boolean checkSign = AdapaySign.verifySign(data, sign, publicKey);
             if (checkSign) {
                 log.info("验签成功");
                 userOrderService.orderCallback(data, type);
-            }*/
-            userOrderService.orderCallback(data, type);
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 12 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.student.controller;
 
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.vo.StudentHomeVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -16,6 +17,8 @@ import org.springframework.web.bind.annotation.*;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
 
+import java.util.List;
+
 @RestController
 @RequestMapping("/student")
 @Api(value = "学生表", tags = "学生表")
@@ -59,4 +62,13 @@ public class StudentController extends BaseController {
         return status(studentService.setSubject(user.getId(), subjectIds) > 0);
     }
 
+    @ApiOperation(value = "获取声部搜索下拉框")
+    @PostMapping("/querySubjectItem")
+    public HttpResponseResult<List<Subject>> querySubjectItem() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(studentService.querySubjectItem(user.getId()));
+    }
 }

+ 10 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java

@@ -4,7 +4,6 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.TeacherDto;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
@@ -16,7 +15,6 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -73,6 +71,16 @@ public class TeacherController extends BaseController {
         return status(teacherService.setSubject(user.getId(), subjectIds) > 0);
     }
 
+    @ApiOperation(value = "获取声部搜索下拉框")
+    @PostMapping("/querySubjectItem")
+    public HttpResponseResult<List<Subject>> querySubjectItem() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(teacherService.querySubjectItem(user.getId()));
+    }
+
     @ApiOperation(value = "我的-个人风采")
     @GetMapping("/queryTeacherStyle")
     public HttpResponseResult<TeacherVo> queryTeacherStyle() {