Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
0a87574788

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -61,6 +61,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     int batchDeleteCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
+    int batchDeleteAllCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
     /**
      * @param courseScheduleIds: 课程计划编号
      * @return java.util.List<java.lang.Long>

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

@@ -40,6 +40,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     PUSH_TEACHER_COURSE_COLLIDE("PUSH_TEACHER_COURSE_COLLIDE", "课程冲突"),
     PAY_PRACTICE_BUY_SUCCESS("PAY_PRACTICE_BUY_SUCCESS", "网管课购买成功"),
     PRACTICE_COMPLETED_STUDY_REPORT("PRACTICE_COMPLETED_STUDY_REPORT", "网管课完成学习报告"),
+    FREE_PRACTICE_APPLY_PUSH("FREE_PRACTICE_APPLY_PUSH", "免费陪练课预约推送"),
     STUDENT_PUSH_NAMES_ACHIEVE("STUDENT_PUSH_NAMES_ACHIEVE", "点名完成"),
     SCHEDULE_CHANGE("SCHEDULE_CHANGE", "课表变动"),
     STUDENT_SMS_TEACHING_SCHOOL_CHANGE("STUDENT_SMS_TEACHING_SCHOOL_CHANGE", "教学点变动"),

+ 27 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -625,21 +625,42 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		String musicGroupId = courseScheduleList.get(0).getMusicGroupId();
 
 		// 批量删课
-		batchDeleteCourseSchedules(batchInsertCoursesDto.getCourseScheduleIdList());
-		
+		List<Long> courseScheduleIds = batchInsertCoursesDto.getCourseScheduleIdList();
+
+		// 学生已点名不能调整(请假可以调整)
+		for (Long courseScheduleId : courseScheduleIds) {
+			List<StudentAttendance> studentAttendanceList = studentAttendanceDao.findByCourseId(courseScheduleId);
+
+			for (StudentAttendance studentAttendance : studentAttendanceList) {
+				if (studentAttendance.getStatus() != null && studentAttendance.getStatus() != StudentAttendanceStatusEnum.LEAVE) {
+					throw new BizException("操作失败,存在已点名课程");
+				}
+			}
+		}
+
+		courseScheduleDao.batchDeleteAllCourseSchedules(courseScheduleIds);
+		courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+		courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
+		// 删除考勤
+		teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
+		studentAttendanceDao.deleteByCourseSchedules(courseScheduleIds);
+
+		// 删除作业
+		courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleIds);
+
 		Date endDate = null;
 		Date startDate = null;
-		if(batchInsertCoursesDto.getType() == CourseScheduleType.PRACTICE){
+		if (batchInsertCoursesDto.getType() == CourseScheduleType.PRACTICE) {
 			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(musicGroupId));
-			if(practiceGroup == null){
-				throw new BizException("找不到课程组[{}]信息",musicGroupId);
+			if (practiceGroup == null) {
+				throw new BizException("找不到课程组[{}]信息", musicGroupId);
 			}
 			endDate = practiceGroup.getCoursesExpireDate();
 			startDate = practiceGroup.getCoursesStartDate();
 		}
 
 		// 批量加课
-		batchAddCourseSchedule(classGroupId, batchInsertCoursesDto.getCourseScheduleIdList().size(), batchInsertCoursesDto.getStartDate(), endDate,startDate,
+		batchAddCourseSchedule(classGroupId, batchInsertCoursesDto.getCourseScheduleIdList().size(), batchInsertCoursesDto.getStartDate(), endDate, startDate,
 				batchInsertCoursesDto.getTeachingArrangementList(), batchInsertCoursesDto.getTeachMode(), batchInsertCoursesDto.getType(),
 				batchInsertCoursesDto.getSchoolId(), batchInsertCoursesDto.getIsJumpHoliday());
 		return true;

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

@@ -279,6 +279,14 @@
         </foreach>
     </delete>
 
+    <delete id="batchDeleteAllCourseSchedules">
+        DELETE FROM course_schedule
+        WHERE id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+    </delete>
+
     <select id="filterNotStartCourseIdsWithIds" resultType="long">
         SELECT id_ FROM course_schedule
         WHERE

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -348,7 +348,7 @@
             AND (t.organ_id_=#{organId} OR FIND_IN_SET(#{organId},t.flow_organ_range_))
             AND t.job_nature_='FULL_TIME'
             AND su.del_flag_=0 AND su.lock_flag_=0
-            AND t.organ_id_!=36 AND t.organ_id_!=38
+            AND t.organ_id_!=36
     </select>
     <select id="findTeaTeachersByOrganAndSubject1" resultMap="ExtendTeacherBasicDto">
         SELECT
@@ -365,7 +365,7 @@
             AND (t.organ_id_=#{organId} OR FIND_IN_SET(#{organId},t.flow_organ_range_))
             AND t.job_nature_='FULL_TIME'
             AND su.del_flag_=0 AND su.lock_flag_=0
-            AND t.organ_id_!=36 AND t.organ_id_!=38
+            AND t.organ_id_!=36
     </select>
 
     <select id="findTeaTeachersByOrganAndSubject2" resultMap="ExtendTeacherBasicDto">

+ 3 - 3
mec-client-api/src/main/java/com/ym/mec/im/UserFeignService.java

@@ -1,12 +1,12 @@
 package com.ym.mec.im;
 
-import com.ym.mec.common.config.FeignConfiguration;
-import com.ym.mec.task.fallback.UserFeignServiceFallback;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import com.ym.mec.common.config.FeignConfiguration;
+import com.ym.mec.im.fallback.UserFeignServiceFallback;
+
 @FeignClient(name = "web-server", contextId = "UserFeignService", configuration = FeignConfiguration.class, fallback = UserFeignServiceFallback.class)
 public interface UserFeignService {
 

+ 1 - 1
mec-client-api/src/main/java/com/ym/mec/task/fallback/UserFeignServiceFallback.java → mec-client-api/src/main/java/com/ym/mec/im/fallback/UserFeignServiceFallback.java

@@ -1,4 +1,4 @@
-package com.ym.mec.task.fallback;
+package com.ym.mec.im.fallback;
 
 import org.springframework.stereotype.Component;
 

+ 32 - 0
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -209,6 +209,38 @@ public class PracticeGroupController extends BaseController {
         return practiceGroupService.repay(sysUser.getId(),groupId,useBalancePayment);
     }
 
+    @ApiOperation("免费陪练课定点推送")
+    @GetMapping(value = "/freePush")
+    public HttpResponseResult freePush(Integer userId, String pushType){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
+
+        String pushUrl = baseApiUrl + "/#/auditionbanner/id";
+
+//        String smsUrl = baseApiUrl + "/#/transfer?url=" + baseApiUrl + "/#/auditionbanner/id";
+//
+//        SysUser student = sysUserFeignService.queryUserById(userId);
+
+        if(pushType.equals("ALL")||pushType.equals("JIGUANG")){
+            Map<Integer, String> userMap = new HashMap<>();
+            userMap.put(userId, userId.toString());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.FREE_PRACTICE_APPLY_PUSH,
+                    userMap, null, 0, "5?" + pushUrl, "STUDENT");
+        }
+
+//        if(pushType.equals("ALL")||pushType.equals("SMS")){
+//            Map<Integer, String> userPhoneMap = new HashMap<>();
+//            userPhoneMap.put(userId, student.getPhone());
+//            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.FREE_PRACTICE_APPLY_PUSH,
+//                    userPhoneMap, null, 0, null, "STUDENT", HttpUtil.getSortUrl(smsUrl));
+//        }
+
+        return succeed();
+    }
+
     @ApiOperation("陪练课完成报告推送")
     @GetMapping(value = "/reportPush")
     public HttpResponseResult reportPush(Integer userId, String pushType){