浏览代码

1、添加教务老师字段
2、布置作业

Joburgess 5 年之前
父节点
当前提交
678cf62c23

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CoursesGroupDao.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.entity.CoursesGroup;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -48,4 +49,12 @@ public interface CoursesGroupDao extends BaseDAO<Long, CoursesGroup> {
      */
     List<Map<Long, Long>> findConsumeMinutes(@Param("groupIds") List<Long> groupIds);
 
+    /**
+     * @describe 根据开课时间获取无学生加入的课程组
+     * @author Joburgess
+     * @date 2020/3/17
+     * @param startDate: 开始时间
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CoursesGroup>
+     */
+    List<CoursesGroup> findNoStudentsGroups(@Param("startDate")Date startDate);
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -48,6 +48,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     STUDENT_PUSH_JOB_MESSAGE("STUDENT_PUSH_JOB_MESSAGE", "作业提醒"),
     HOMEWORK_REMIND("HOMEWORK_REMIND", "作业提醒-网管课"),
     STUDENT_PUSH_CLASS_MESSAGE("STUDENT_PUSH_CLASS_MESSAGE", "班级消息"),
+    COMM_NO_STUDENTS_PUSH("COMM_NO_STUDENTS_PUSH", "对外课程组无学生提醒"),
 
     TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN("TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN", "乐团课新增安排"),
     TEACHER_SMS_VIP_COURSE_APPLY_RESULT("TEACHER_SMS_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupService.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseGroupCreateDto;
-import com.ym.mec.biz.dal.dto.CourseGroupTeacherCardDto;
 import com.ym.mec.biz.dal.dto.GroupHeadInfoDto;
 import com.ym.mec.biz.dal.entity.CoursesGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
@@ -10,7 +9,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.util.List;
 import java.util.Map;
 
 public interface CoursesGroupService extends BaseService<Long, CoursesGroup> {
@@ -62,4 +60,13 @@ public interface CoursesGroupService extends BaseService<Long, CoursesGroup> {
     HttpResponseResult buyCourseGroup(Integer userId, Long courseGroupId, boolean isUseBalancePayment);
 
     void orderCallback(StudentPaymentOrder studentPaymentOrder);
+
+    /**
+     * @describe 无学生课程组提醒
+     * @author Joburgess
+     * @date 2020/3/17
+     * @param :
+     * @return void
+     */
+    void noStudentsCourseGroupRemind();
 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -19,7 +19,9 @@ import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -80,6 +82,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     private SysTenantAccountService sysTenantAccountService;
     @Autowired
     private StudentDao studentDao;
+    @Autowired
+    private SysMessageService sysMessageService;
 
     private static final Logger LOGGER = LoggerFactory
             .getLogger(PracticeGroupService.class);
@@ -589,4 +593,19 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         // 创建群组
         imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
     }
+
+    @Override
+    public void noStudentsCourseGroupRemind() {
+        Date startDate = DateUtil.addDays(new Date(), -1);
+        List<CoursesGroup> noStudentsGroups = coursesGroupDao.findNoStudentsGroups(startDate);
+        if(CollectionUtils.isEmpty(noStudentsGroups)){
+            return;
+        }
+        Map<Integer, String> userMap = new HashMap<>();
+        for (CoursesGroup noStudentsGroup : noStudentsGroups) {
+            userMap.put(noStudentsGroup.getTeacherId(), noStudentsGroup.getTeacherId().toString());
+        }
+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.COMM_NO_STUDENTS_PUSH,
+                userMap, null, 0, null, "TEACHER");
+    }
 }

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GroupClassServiceImpl.java

@@ -150,13 +150,16 @@ public class GroupClassServiceImpl implements GroupClassService {
             if(coursesGroup.getCoursesEndDate().before(now)){
                 throw new BizException("当前课程组不可关闭");
             }
-            cleanGroupInfo(groupId.toString(), GroupType.COMM);
+            if(coursesGroup.getStatus().equals(GroupStatusEnum.CANCEL)){
+                throw new BizException("此课程组已关闭");
+            }
             List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(groupId.toString(), groupType);
             if(!CollectionUtils.isEmpty(groupNotStartCourses)){
                 //剩余课程时长
                 Integer totalCourseTime=groupNotStartCourses.size()*coursesGroup.getSingleClassMinutes();
                 sysTenantAccountService.update(coursesGroup.getTeacherId(), totalCourseTime, "", SysTenantAccountDetail.TransType.CONSUME, "",BigDecimal.ZERO,"关闭课程组");
             }
+            cleanGroupInfo(groupId.toString(), GroupType.COMM);
             coursesGroup.setMemo("主动关闭课程组");
             coursesGroup.setStatus(GroupStatusEnum.CANCEL);
             coursesGroupDao.update(coursesGroup);

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2724,7 +2724,7 @@
         )
     </select>
     <select id="findGroupNotStartCourses" resultMap="CourseSchedule">
-        SELECT * FROM course_schedule WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND music_group_id_ = #{groupId} AND CONCAT(class_date_, ' ', start_class_time_)>NOW()
+        SELECT * FROM course_schedule WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND music_group_id_ = #{groupId} AND CONCAT(class_date_, ' ', start_class_time_)&gt;NOW()
     </select>
     <select id="getSubjectNameById" resultType="java.lang.String">
         SELECT GROUP_CONCAT(DISTINCT s.name_) FROM course_schedule cs

+ 13 - 0
mec-biz/src/main/resources/config/mybatis/CoursesGroupMapper.xml

@@ -169,4 +169,17 @@
 		AND cs.group_type_ = 'COMM' AND CONCAT(cs.class_date_,' ',cs.start_class_time_) &lt;= NOW()
 		GROUP BY cg.id_
 	</select>
+    <select id="findNoStudentsGroups" resultMap="CoursesGroup">
+		SELECT
+			csg.*
+		FROM
+			courses_group csg
+			LEFT JOIN class_group cg ON cg.music_group_id_ = csg.id_
+			LEFT JOIN course_schedule cs ON cs.music_group_id_ = csg.id_
+		WHERE
+			cg.group_type_ = 'COMM'
+			AND cs.group_type_ = 'COMM'
+			AND cg.student_num_ = 0
+		GROUP BY csg.id_ HAVING MAX(cs.class_date_)&lt;=DATE_FORMAT(#{startDate}, '%Y-%m-%d')
+    </select>
 </mapper>

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -96,4 +96,8 @@ public interface TaskRemoteService {
 	@GetMapping("task/pushNeedReview2Teacher")
 	void pushNeedReview2Teacher();
 
+	//对外无学生课程组提醒
+	@GetMapping("/noStudentsCourseGroupRemind")
+	void noStudentsCourseGroupRemind();
+
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -120,4 +120,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void pushNeedReview2Teacher() {
 		logger.info("新增待填写评论推送失败");
 	}
+
+	@Override
+	public void noStudentsCourseGroupRemind() {
+		logger.info("对外课程组无学生推送失败");
+	}
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/CoursesGroupNoStudentsRemindTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CoursesGroupNoStudentsRemindTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.noStudentsCourseGroupRemind();
+	}
+}

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -53,6 +53,9 @@ public class TaskController extends BaseController {
 	@Autowired
 	private CourseReviewService courseReviewService;
 
+	@Autowired
+	private CoursesGroupService coursesGroupService;
+
 	@GetMapping("/refreshPaymentFeeStatus")
 	// 刷新付费状态
 	public void refreshPaymentFeeStatus() {
@@ -190,4 +193,10 @@ public class TaskController extends BaseController {
 		courseReviewService.pushNeedReview2Teacher();
 	}
 
+	//对外无学生课程组提醒
+	@GetMapping("/noStudentsCourseGroupRemind")
+	public void noStudentsCourseGroupRemind(){
+		coursesGroupService.noStudentsCourseGroupRemind();
+	}
+
 }