소스 검색

Merge remote-tracking branch 'origin/master'

weifanli 3 년 전
부모
커밋
528b4d5f1c

+ 9 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/StudentFeignService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.api.feign;
 
 import com.yonge.cooleshow.api.feign.fallback.StudentFeignServiceFallback;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.feign.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,4 +33,12 @@ public interface StudentFeignService {
      */
     @GetMapping(value = "/task/pollingOrder")
     Object pollingOrder();
+
+    /**
+     * @Description: 当日陪练课未对老师评价(每晚9点,已评价不发)
+     * @Author: cy
+     * @Date: 2022/5/6
+     */
+    @GetMapping("/task/noRepliedTeacher")
+    HttpResponseResult noRepliedTeacher();
 }

+ 6 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/StudentFeignServiceFallback.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.api.feign.fallback;
 
 import com.yonge.cooleshow.api.feign.StudentFeignService;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -20,4 +21,9 @@ public class StudentFeignServiceFallback implements StudentFeignService {
     public Object pollingOrder() {
         return null;
     }
+
+    @Override
+    public HttpResponseResult noRepliedTeacher() {
+        return null;
+    }
 }

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

@@ -0,0 +1,21 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.StudentFeignService;
+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 NoRepliedTeacherTask extends BaseTask {
+
+    @Autowired
+    private StudentFeignService noticeRelease;
+
+    @Override
+    public void execute() throws TaskException {
+        noticeRelease.noRepliedTeacher();
+    }
+}

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

@@ -176,5 +176,11 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //根据老师id统计明日课程
     List<CountVo> selectTypeCount(@Param("teacherId")Long teacherId,@Param("tomorrow") String tomorrow);
+
+    //统计学员购买课程
+    List<RepliedCountVo> countAllReplie(String today);
+
+    //根据id统计评价
+    Integer countReplies(Long studentId);
 }
 

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

@@ -18,4 +18,6 @@ public interface CourseRepliedService extends IService<CourseScheduleReplied> {
     CourseRepliedVo selectReplied(CourseScheduleReplied replied);
 
     IPage<MyRepliedVo> myReplied(IPage<MyRepliedVo> page, MyCourseSearch search);
+
+    void noRepliedTeacher();
 }

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

@@ -19,6 +19,7 @@ import com.yonge.cooleshow.biz.dal.service.CourseRepliedService;
 import com.yonge.cooleshow.biz.dal.service.SysMessageService;
 import com.yonge.cooleshow.biz.dal.vo.CourseRepliedVo;
 import com.yonge.cooleshow.biz.dal.vo.MyRepliedVo;
+import com.yonge.cooleshow.biz.dal.vo.RepliedCountVo;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -26,7 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -177,7 +181,29 @@ public class CourseRepliedServiceImpl extends ServiceImpl<CourseScheduleRepliedD
         return page.setRecords(repliedDao.myReplied(page, search));
     }
 
+    /**
+     * @Description: 当日陪练课未对老师评价(每晚9点,已评价不发)
+     * @Author: cy
+     * @Date: 2022/5/6
+     */
     public void noRepliedTeacher(){
-
+        String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+        //统计当日所有购课学员
+        List<RepliedCountVo> repliedCounts=scheduleDao.countAllReplie(today);
+        for (RepliedCountVo repliedCount : repliedCounts) {
+            Long userId = repliedCount.getUserId();
+
+            Integer expCount = repliedCount.getCount();//应该评论课程数
+            Integer actCount=scheduleDao.countReplies(userId);//已评论课程数
+            int count = expCount - actCount;
+            if (count>0){//有课程未评价
+                Map<Long, String> studentReceivers = new HashMap<>();
+                studentReceivers.put(userId, repliedCount.getPhone());
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.NOT_EVALUATE_TEACHER_PRACTICE,
+                        studentReceivers, null, 0, null, ClientEnum.STUDENT.getCode(),
+                        count);
+                log.info("send success {}",MessageTypeEnum.NOT_EVALUATE_TEACHER_PRACTICE);
+            }
+        }
     }
 }

+ 38 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/RepliedCountVo.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import java.io.Serializable;
+
+/**
+ * @Author: cy
+ * @Date: 2022/5/6
+ */
+public class RepliedCountVo implements Serializable {
+    private Long userId;
+    private String phone;
+    private Integer count;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+}
+

+ 17 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -524,7 +524,7 @@
         FROM video_lesson_group g
         LEFT JOIN sys_user u ON g.teacher_id_=u.id_
         LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
-        LEFT JOIN (SELECT video_lesson_group_id_ ,COUNT(1) AS count_ FROM video_lesson_purchase_record GROUP BY video_lesson_group_id_) r ON g.id_= r.video_lesson_group_id_
+        LEFT JOIN (SELECT video_lesson_group_id_ ,COUNT(1) AS count_ FROM video_lesson_purchase_record WHERE order_status_='PAID' GROUP BY video_lesson_group_id_) r ON g.id_= r.video_lesson_group_id_
         WHERE g.audit_status_='PASS'
         ORDER BY g.create_time_ DESC LIMIT 4
     </select>
@@ -621,4 +621,20 @@
         AND teacher_id_=#{teacherId} AND lock_=0
         GROUP BY type_
     </select>
+    <select id="countAllReplie" resultType="com.yonge.cooleshow.biz.dal.vo.RepliedCountVo"
+            parameterType="java.lang.String">
+        SELECT
+            p.user_id_ AS userId,
+            u.phone_ AS phone,
+            COUNT(1) AS count
+        FROM course_schedule_student_payment p
+        LEFT JOIN sys_user u ON p.user_id_=u.id_
+        WHERE p.course_id_ IN (SELECT id_ FROM course_schedule  WHERE class_date_=#{today} AND lock_=0 AND type_='PRACTICE')
+        GROUP BY p.user_id_;
+    </select>
+    <select id="countReplies" resultType="java.lang.Integer" parameterType="java.lang.Integer">
+        SELECT COUNT(1)
+        FROM course_schedule_replied
+        WHERE student_id_=#{studentId}
+    </select>
 </mapper>

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

@@ -162,7 +162,7 @@
 			g.lesson_count_ AS lessonCount,
 			g.lesson_price_ AS lessonPrice,
 			g.audit_status_ AS auditStatus,
-			(SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.id_) AS countStudent,
+			(SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.id_ AND r.order_status_='PAID') AS countStudent,
 			g.create_time_ AS createTime,
 			g.lesson_desc_ AS lessonDesc
 		FROM video_lesson_group g

+ 13 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/task/TaskController.java

@@ -28,6 +28,8 @@ public class TaskController extends BaseController {
     private UserOrderService userOrderService;
     @Autowired
     private VipCardRecordService vipCardRecordService;
+    @Autowired
+    private CourseRepliedService repliedService;
     /***
      * 查询所有学生统计数据
      * @author liweifan
@@ -65,4 +67,15 @@ public class TaskController extends BaseController {
         userOrderService.pollingOrder();
         return succeed();
     }
+
+    /**
+     * @Description: 当日陪练课未对老师评价(每晚9点,已评价不发)
+     * @Author: cy
+     * @Date: 2022/5/6
+     */
+    @GetMapping("/noRepliedTeacher")
+    public HttpResponseResult noRepliedTeacher() {
+        repliedService.noRepliedTeacher();
+        return succeed();
+    }
 }