Browse Source

bug处理

cy 3 years ago
parent
commit
31f6df7d42

+ 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;
+    }
 }

+ 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

@@ -172,5 +172,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 - 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();
 }
 

+ 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

@@ -1108,7 +1108,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);
             }
         }
     }

+ 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

@@ -608,4 +608,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>

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

@@ -249,6 +249,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 +293,6 @@
 				<![CDATA[AND g.create_time_ <= #{param.endTime} ]]>
 			</if>
 		</where>
+		ORDER BY g.create_time_ DESC
 	</select>
 </mapper>

+ 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();
+    }
 }