Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

hgw 3 tahun lalu
induk
melakukan
f07bccc5f0
26 mengubah file dengan 270 tambahan dan 36 penghapusan
  1. 7 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/TeacherFeignService.java
  2. 5 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/TeacherFeignServiceFallback.java
  3. 9 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
  4. 21 0
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseRemindTask.java
  5. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  6. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicAlbumDao.java
  7. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserOrderDao.java
  8. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java
  9. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  10. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java
  11. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseRepliedServiceImpl.java
  12. 28 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  13. 4 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  14. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  15. 12 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  16. 37 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumAndSheetVo.java
  17. 23 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumDetailVo.java
  18. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CountVo.java
  19. 7 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  20. 12 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml
  21. 16 12
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml
  22. 5 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml
  23. 36 3
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  24. 5 4
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/PaymentController.java
  25. 1 1
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  26. 9 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

+ 7 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/TeacherFeignService.java

@@ -25,4 +25,11 @@ public interface TeacherFeignService {
     @GetMapping(value = "/task/opsCourseGroup")
     HttpResponseResult<Object> opsCourseGroup();
 
+    /**
+     * @Description: 课程提醒(每晚9点)
+     * @Author: cy
+     * @Date: 2022/5/6
+     */
+    @GetMapping("/task/courseRemind")
+    HttpResponseResult<Object> courseRemind();
 }

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/TeacherFeignServiceFallback.java

@@ -16,4 +16,9 @@ public class TeacherFeignServiceFallback implements TeacherFeignService {
     public HttpResponseResult<Object> opsCourseGroup() {
         return null;
     }
+
+    @Override
+    public HttpResponseResult<Object> courseRemind() {
+        return null;
+    }
 }

+ 9 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -101,7 +101,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
         SysUser user = get(id);
 
         if (user == null) {
-            throw new BizException("户不存在");
+            throw new BizException("户不存在");
         }
 
         user.setUpdateTime(new Date());
@@ -158,11 +158,19 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
             sysUserDao.saveTeacher(sysUser.getId());
             //创建老师账户
             sysUserDao.createUserAccount(sysUser.getId());
+
+            //用户默认昵称
+            sysUser.setUsername("游客"+sysUser.getId());
+            sysUserDao.update(sysUser);
             return queryUserInfoByPhone(phone);
         } else if (StringUtils.equalsIgnoreCase(clientId, "STUDENT")) {
             sysUser.setUserType("STUDENT");
             sysUserDao.insert(sysUser);
             saveStudent(sysUser);
+
+            //用户默认昵称
+            sysUser.setUsername("游客"+sysUser.getId());
+            sysUserDao.update(sysUser);
             return queryUserInfoByPhone(phone);
         }
         return null;

+ 21 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseRemindTask.java

@@ -0,0 +1,21 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.TeacherFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Author: cy
+ * @Date: 2022/5/6
+ */
+public class CourseRemindTask extends BaseTask {
+
+    @Autowired
+    private TeacherFeignService teacherFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        teacherFeignService.courseRemind();
+    }
+}

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

@@ -173,5 +173,8 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //查询明天有课的老师
     List<SysUser> selectTeacher(String tomorrow);
+
+    //根据老师id统计明日课程
+    List<CountVo> selectTypeCount(@Param("teacherId")Long teacherId,@Param("tomorrow") String tomorrow);
 }
 

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicAlbumDao.java

@@ -45,4 +45,6 @@ public interface MusicAlbumDao extends BaseMapper<MusicAlbum> {
      * @return
      */
     List<MusicAlbumVo> selectFavoriteNumAndMusicNum(@Param("records") List<MusicAlbumVo> records);
+
+    MusicAlbumVo selectMusicAlbumById(@Param("musicAlbumId") Long musicAlbumId);
 }

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

@@ -25,7 +25,7 @@ public interface UserOrderDao extends BaseMapper<UserOrder>{
 	 * @date 2022-03-30 13:53:51
 	 * @return: com.yonge.cooleshow.biz.dal.vo.OrderVo
 	 */
-	UserOrderVo detailByOrderNo(@Param("orderNo") String orderNo);
+	UserOrderVo detailByOrderNo(@Param("param") UserOrder param);
 	/***
 	 * app查询
 	 * @author liweifan

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -61,7 +61,8 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
 
     SMS_VIDEO_BUY("SMS_VIDEO_BUY","视频课购买(短信)"),
     SMS_STUDENT_BUY_PRACTICE("SMS_STUDENT_BUY_PRACTICE","学员购买陪练课(短信)"),
-    SMS_PRACTICE_BUY("SMS_PRACTICE_BUY", "陪练课购买(短信)");
+    SMS_PRACTICE_BUY("SMS_PRACTICE_BUY", "陪练课购买(短信)"),
+    SMS_TOMORROW_COURSE_REMINDER("SMS_TOMORROW_COURSE_REMINDER", "明日课程提醒(每晚9点)(短信)");
 
     MessageTypeEnum(String code, String msg) {
         this.code = code;

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

@@ -220,5 +220,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      * @return 老师本周收到的评价
      */
     Integer getWeekStudentRepliedCourseSchedule(Long userId);
+
+    void courseRemind();
 }
 

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

@@ -35,7 +35,7 @@ public interface UserOrderService extends IService<UserOrder> {
      * @author liweifan
      * @date 2022-03-30
      */
-    UserOrderVo detail(String orderNo);
+    UserOrderVo detail(String orderNo, Long userId);
 
     /**
      * 分页查询

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

@@ -176,4 +176,8 @@ public class CourseRepliedServiceImpl extends ServiceImpl<CourseScheduleRepliedD
     public IPage<MyRepliedVo> myReplied(IPage<MyRepliedVo> page, MyCourseSearch search) {
         return page.setRecords(repliedDao.myReplied(page, search));
     }
+
+    public void noRepliedTeacher(){
+
+    }
 }

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

@@ -1111,7 +1111,35 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         List<SysUser> userList = baseMapper.selectTeacher(tomorrow);
         if (CollectionUtils.isNotEmpty(userList)) {
             for (SysUser sysUser : userList) {
+                Map<Long, String> teacherReceivers = new HashMap<>();
+                teacherReceivers.put(sysUser.getId(), sysUser.getPhone());
+                Map<Long, String> teacherSms = new HashMap<>();
+                teacherSms.put(sysUser.getId(), sysUser.getPhone());
+
+                Integer liveCount=0;
+                Integer practiceCount=0;
+                List<CountVo> typeCount=baseMapper.selectTypeCount(sysUser.getId(),tomorrow);
+                for (CountVo countVo : typeCount) {
+                    if (countVo.getType().equals(CourseScheduleEnum.LIVE.getCode())) {
+                        liveCount=countVo.getCount();
+                    }
+                    if (countVo.getType().equals(CourseScheduleEnum.PRACTICE.getCode())) {
+                        practiceCount=countVo.getCount();
+                    }
+                }
 
+                //老师端-明日课程提醒
+                String teacherUrl = sysMessageService.selectConfigUrl(MessageTypeEnum.SMS_TOMORROW_COURSE_REMINDER.getCode());
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TOMORROW_COURSE_REMINDER,
+                        teacherReceivers, null, 0, null, ClientEnum.TEACHER.getCode(),
+                        practiceCount.toString(),liveCount.toString(),teacherUrl);
+                log.info("send success {}",MessageTypeEnum.TOMORROW_COURSE_REMINDER);
+
+                //老师端-明日课程提醒(短信)
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TOMORROW_COURSE_REMINDER,
+                        teacherSms, null, 0, null, null,
+                        practiceCount, liveCount);
+                log.info("send success {}",MessageTypeEnum.SMS_STUDENT_BUY_PRACTICE);
             }
         }
     }

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

@@ -81,7 +81,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
 
     @Override
     public AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query) {
-        MusicAlbum musicAlbum = this.getById(query.getId());
+        MusicAlbumVo musicAlbum = baseMapper.selectMusicAlbumById(query.getId());
         if (musicAlbum == null) {
             throw  new BizException("未找到专辑信息");
         }
@@ -90,7 +90,10 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         albumDetailVo.setAlbumName(musicAlbum.getAlbumName());
         albumDetailVo.setAlbumDesc(musicAlbum.getAlbumDesc());
         albumDetailVo.setAlbumTag(musicAlbum.getAlbumTag());
+        albumDetailVo.setAlbumCoverUrl(musicAlbum.getAlbumCoverUrl());
         albumDetailVo.setAlbumStatue(musicAlbum.getAlbumStatus());
+        albumDetailVo.setAlbumFavoriteCount(musicAlbum.getAlbumFavoriteCount());
+        albumDetailVo.setMusicSheetCount(musicAlbum.getMusicSheetCount());
         albumDetailVo.setMusicTagNames(musicTagService.getMusicTagNames(StringUtil.toLongList(musicAlbum.getAlbumTag())));
 
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectAlbumDetailPage(page,query);

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

@@ -58,6 +58,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     private LiveRoomService liveRoomService;
     @Autowired
     private StudentStarService studentStarService;
+    @Autowired
+    private UserAccountService userAccountService;
 
     @Override
     public TeacherVo detail(Long userId) {
@@ -190,11 +192,18 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         if (num <= 0) {
             throw new BizException("插入用户信息失败");
         }
+        //设置昵称
+        sysUser.setUsername("游客" + sysUser.getId());
+        employeeDao.updateSysUser(sysUser);
         //插入老师表
         Teacher teacher = new Teacher();
         teacher.setUserId(sysUser.getId());
         teacher = getTeacherDetil(teacher, teacherSubmitReq);
         baseMapper.insert(teacher);
+        //插入老师账户表
+        UserAccount userAccount = new UserAccount();
+        userAccount.setUserId(sysUser.getId());
+        userAccountService.save(userAccount);
         return HttpResponseResult.succeed(true);
     }
 

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

@@ -140,8 +140,11 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     }
 
     @Override
-    public UserOrderVo detail(String orderNo) {
-        UserOrderVo userOrderVo = baseMapper.detailByOrderNo(orderNo);
+    public UserOrderVo detail(String orderNo, Long userId) {
+        UserOrder param = new UserOrder();
+        param.setUserId(userId);
+        param.setOrderNo(orderNo);
+        UserOrderVo userOrderVo = baseMapper.detailByOrderNo(param);
         if (null != userOrderVo) {
             userOrderVo.setOrderDetailList(orderDetailService.getOrderDetilListByOrderNo(userOrderVo.getOrderNo()));
         }
@@ -167,7 +170,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult<Boolean> orderCancel(OrderPayReq payReq) {
-        UserOrderVo detail = detail(payReq.getOrderNo());
+        UserOrderVo detail = detail(payReq.getOrderNo(), payReq.getUserId());
         if (null == detail) {
             return HttpResponseResult.failed("未找到订单信息");
         }
@@ -212,7 +215,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
     @Override
     public void setOrderStatus(String orderNo, OrderStatusEnum orderStatus) {
-        UserOrderVo detail = detail(orderNo);
+        UserOrderVo detail = detail(orderNo, null);
         if (OrderStatusEnum.WAIT_PAY.equals(detail.getStatus())
                 || OrderStatusEnum.PAYING.equals(detail.getStatus())) {
 
@@ -287,7 +290,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult<OrderPayRes> orderPay(OrderPayReq payReq) {
         //查询订单
-        UserOrderVo detail = detail(payReq.getOrderNo());
+        UserOrderVo detail = detail(payReq.getOrderNo(), payReq.getUserId());
         if (null == detail || !payReq.getUserId().equals(detail.getUserId())) {
             return HttpResponseResult.failed("订单不存在");
         }
@@ -313,7 +316,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Override
     public HttpResponseResult<OrderPayRes> orderPaytoPaying(OrderPayReq payReq) {
         //查询订单
-        UserOrderVo detail = detail(payReq.getOrderNo());
+        UserOrderVo detail = detail(payReq.getOrderNo(), payReq.getUserId());
         if (OrderStatusEnum.PAYING.equals(detail.getStatus())) {
             return orderPayPaying(payReq, detail);
         }
@@ -344,7 +347,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
      */
     private void paymentSucceededHandle(JSONObject hfRes) {
         //订单完成
-        UserOrderVo detail = detail(hfRes.getString("order_no"));
+        UserOrderVo detail = detail(hfRes.getString("order_no"), null);
         if (null == detail) {
             log.error("汇付支付回调,订单未找到。 req is {}", hfRes.toJSONString());
             return;
@@ -364,7 +367,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
      * @updateTime 2022/4/27 15:09
      */
     private void paymentFailedHandle(JSONObject hfRes) {
-        UserOrderVo detail = detail(hfRes.getString("order_no"));
+        UserOrderVo detail = detail(hfRes.getString("order_no"), null);
         if (null == detail) {
             log.error("汇付支付回调,订单未找到。 req is {}", hfRes.toJSONString());
             return;
@@ -406,7 +409,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
     @Transactional(rollbackFor = Exception.class)
     void pollingCancelOrder(String orderNo) {
-        UserOrderVo detail = detail(orderNo);
+        UserOrderVo detail = detail(orderNo, null);
         if (null == detail) {
             return;
         }

+ 37 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumAndSheetVo.java

@@ -0,0 +1,37 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.toolset.base.page.PageInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-06
+ */
+@ApiModel("专辑和曲目列表")
+public class AlbumAndSheetVo {
+
+    @ApiModelProperty("曲目信息")
+    private PageInfo<MusicSheetVo> musicSheetList;
+
+    @ApiModelProperty("专辑信息")
+    private PageInfo<MusicAlbumVo> musicAlbumList;
+
+    public PageInfo<MusicSheetVo> getMusicSheetList() {
+        return musicSheetList;
+    }
+
+    public void setMusicSheetList(PageInfo<MusicSheetVo> musicSheetList) {
+        this.musicSheetList = musicSheetList;
+    }
+
+    public PageInfo<MusicAlbumVo> getMusicAlbumList() {
+        return musicAlbumList;
+    }
+
+    public void setMusicAlbumList(PageInfo<MusicAlbumVo> musicAlbumList) {
+        this.musicAlbumList = musicAlbumList;
+    }
+}

+ 23 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumDetailVo.java

@@ -36,6 +36,29 @@ public class AlbumDetailVo {
     @ApiModelProperty("教材标签")
     private String musicTagNames;
 
+    @ApiModelProperty("曲目数量")
+    private Integer musicSheetCount;
+
+    @ApiModelProperty("收藏数量")
+    private Integer albumFavoriteCount;
+
+
+    public Integer getMusicSheetCount() {
+        return musicSheetCount;
+    }
+
+    public void setMusicSheetCount(Integer musicSheetCount) {
+        this.musicSheetCount = musicSheetCount;
+    }
+
+    public Integer getAlbumFavoriteCount() {
+        return albumFavoriteCount;
+    }
+
+    public void setAlbumFavoriteCount(Integer albumFavoriteCount) {
+        this.albumFavoriteCount = albumFavoriteCount;
+    }
+
     public YesOrNoEnum getAlbumStatue() {
         return albumStatue;
     }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CountVo.java

@@ -12,6 +12,15 @@ public class CountVo {
 
     @ApiModelProperty("数量")
     private Integer count;
+    private String type;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
 
     public Integer getCount() {
         return count;

+ 7 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -614,4 +614,11 @@
         WHERE class_date_=#{tomorrow} AND lock_=0
         GROUP BY s.teacher_id_
     </select>
+    <select id="selectTypeCount" resultType="com.yonge.cooleshow.biz.dal.vo.CountVo">
+        SELECT type_ AS type, COUNT(1) AS count
+        FROM course_schedule
+        WHERE class_date_=#{tomorrow}
+        AND teacher_id_=#{teacherId} AND lock_=0
+        GROUP BY type_
+    </select>
 </mapper>

+ 12 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -123,4 +123,16 @@
             </foreach>
         </if>
     </select>
+
+    <select id="selectMusicAlbumById" resultType="com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo">
+        select <include refid="Base_Column_List"/>
+        ,(select group_concat(mt.name_) from music_tag mt
+        where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0) as musicTagNames
+        , t1.num as musicSheetCount
+        ,t2.num as albumFavoriteCount
+        from music_album t
+        left join (select count(1) as num,amr.album_id_ from album_music_relate amr group by amr.album_id_) t1 on t1.album_id_ = t.id_
+        left join (select count(1) as num,af.album_id_ from album_favorite af group by af.album_id_) t2 on t2.album_id_ = t.id_
+        where t.id_ = #{musicAlbumId}
+    </select>
 </mapper>

+ 16 - 12
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml

@@ -54,6 +54,21 @@
         left join sys_user u on t.user_id_ = u.id_
         where t.id_ = #{id}
     </select>
+    <select id="detailByOrderNo" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderVo">
+        SELECT
+        <include refid="baseColumns"/>,
+        p.trans_no_ as transNo,
+        p.fee_amt_ as feeAmt,
+        u.username_ as username,
+        u.phone_ as phone
+        FROM user_order t
+        left join user_order_payment p on t.order_no_ = p.order_no_
+        left join sys_user u on t.user_id_ = u.id_
+        where t.order_no_ = #{param.orderNo}
+        <if test="param.userId != null">
+            and t.user_id_ = #{param.userId}
+        </if>
+    </select>
 
     <select id="detailApp" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderVo">
         SELECT
@@ -71,18 +86,7 @@
         </if>
     </select>
 
-    <select id="detailByOrderNo" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderVo">
-        SELECT
-            <include refid="baseColumns"/>,
-            p.trans_no_ as transNo,
-            p.fee_amt_ as feeAmt,
-            u.username_ as username,
-            u.phone_ as phone
-        FROM user_order t
-        left join user_order_payment p on t.order_no_ = p.order_no_
-        left join sys_user u on t.user_id_ = u.id_
-        where t.order_no_ = #{orderNo}
-    </select>
+
 
 
     <sql id="selectSql">

+ 5 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -195,7 +195,7 @@
 			p.purchase_time_ AS purchaseTime
 		FROM video_lesson_purchase_record p
 		LEFT JOIN sys_user u ON p.student_id_ = u.id_
-		<where>
+		WHERE p.order_status_='PAID'
 			<if test="param.videoLessonGroupId !=null">
 				AND p.video_lesson_group_id_ = #{param.videoLessonGroupId}
 			</if>
@@ -215,7 +215,6 @@
 			<if test="param.endTime !=null">
 				<![CDATA[AND p.purchase_time_ <= #{param.endTime} ]]>
 			</if>
-		</where>
 	</select>
 	<select id="selectLessonGroup" resultType="com.yonge.cooleshow.biz.dal.vo.LessonGroupVo">
 		SELECT
@@ -249,6 +248,9 @@
 				g.id_ IN
 				(SELECT video_lesson_group_id_ FROM video_lesson_purchase_record WHERE student_id_=#{param.studentId} AND order_status_='PAID')
 			</if>
+			<if	test="param.teacherId != null">
+				AND g.teacher_id_ = #{param.teacherId}
+			</if>
 		</where>
 		ORDER BY g.create_time_ DESC
 	</select>
@@ -290,5 +292,6 @@
 				<![CDATA[AND g.create_time_ <= #{param.endTime} ]]>
 			</if>
 		</where>
+		ORDER BY g.create_time_ DESC
 	</select>
 </mapper>

+ 36 - 3
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -5,14 +5,15 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
+import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
+import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.vo.CheckVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
-import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
@@ -22,6 +23,7 @@ import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -43,6 +45,8 @@ public class MusicSheetController extends BaseController {
 	@Autowired
 	private MusicSheetService musicSheetService;
 
+    @Autowired
+    private MusicAlbumService musicAlbumService;
 
     /**
      * 查询单条
@@ -73,6 +77,35 @@ public class MusicSheetController extends BaseController {
         return succeed(PageUtil.pageInfo(musicSheetVoIPage));
     }
 
+
+    @ApiOperation(value = "乐谱(专辑和曲目同时查询)分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
+    @PostMapping(value="/albumAndSheetList", consumes="application/json", produces="application/json")
+    public HttpResponseResult<AlbumAndSheetVo> albumAndSheetlist(@RequestBody StudentMusicSheetSearch query) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+
+        // 学生 只能看通过审核 并且 启用的 曲目
+        query.setState(YesOrNoEnum.YES);
+        query.setAuditStatus(AuthStatusEnum.PASS);
+        query.setStudentId(sysUser.getId());
+        IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectStudentPage(PageUtil.getPage(query), query);
+
+        MusicAlbumSearch musicAlbumSearch = new MusicAlbumSearch();
+        musicAlbumSearch.setAlbumStatus(YesOrNoEnum.YES);
+        musicAlbumSearch.setSortBy(1);
+        musicAlbumSearch.setAlbumTagIds(query.getMusicTagIds());
+        musicAlbumSearch.setPage(query.getPage());
+        musicAlbumSearch.setRows(query.getRows());
+        IPage<MusicAlbumVo> musicAlbumVoIPage = musicAlbumService.selectPage(PageUtil.getPage(query), musicAlbumSearch);
+
+        AlbumAndSheetVo albumAndSheetVo = new AlbumAndSheetVo();
+        albumAndSheetVo.setMusicSheetList(PageUtil.pageInfo(musicSheetVoIPage));
+        albumAndSheetVo.setMusicAlbumList(PageUtil.pageInfo(musicAlbumVoIPage));
+        return succeed(albumAndSheetVo);
+    }
+
     /**
      * 曲目收藏
      */

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

@@ -78,7 +78,7 @@ public class PaymentController extends BaseController {
             String sign = request.getParameter("sign");
             //回调业务类型
             String type = request.getParameter("type");
-            log.info("汇付回调,type is {}, res is {}", type, data);
+            log.info("汇付回调,type is {},type is {}, res is {}", type, sign, data);
             if (StringUtil.isEmpty(type)) {
                 log.error("汇付回调参数异常");
                 return;
@@ -86,12 +86,13 @@ public class PaymentController extends BaseController {
             //验签传参publicKey
             String publicKey = AdapayCore.PUBLIC_KEY;
             //验签
-            boolean checkSign = AdapaySign.verifySign(data, sign, publicKey);
+            //todo 测试先取消验签
+           /* boolean checkSign = AdapaySign.verifySign(data, sign, publicKey);
             if (checkSign) {
-                //验签成功逻辑
                 log.info("验签成功");
                 userOrderService.orderCallback(data, type);
-            }
+            }*/
+            userOrderService.orderCallback(data, type);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java

@@ -152,7 +152,7 @@ public class UserOrderController extends BaseController {
             return httpResponseResultFuture.get();
         } catch (Exception e) {
             e.printStackTrace();
-            return HttpResponseResult.failed("付款失败");
+            return HttpResponseResult.failed("取消订单失败");
         }
     }
 

+ 9 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.teacher.task;
 
 import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
+import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -23,6 +24,8 @@ public class TaskController extends BaseController {
     private TeacherTotalService teacherTotalService;
     @Autowired
     private CourseGroupService courseGroupService;
+    @Autowired
+    private CourseScheduleService scheduleService;
 
     /***
      * 查询所有老师统计数据
@@ -49,4 +52,10 @@ public class TaskController extends BaseController {
     public HttpResponseResult<Object> getRedisValueByKey(String key) {
         return succeed(teacherTotalService.getRedisValueByKey(key));
     }
+
+    @GetMapping("/courseRemind")
+    public HttpResponseResult<Object> courseRemind() {
+        scheduleService.courseRemind();
+        return HttpResponseResult.succeed();
+    }
 }