浏览代码

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 年之前
父节点
当前提交
2148cdaa79

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

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassHeadInfo.java

@@ -32,6 +32,9 @@ public class TeacherClassHeadInfo {
     @ApiModelProperty(value = "当前课次",required = false)
     private Integer currentClassTimes;
 
+    @ApiModelProperty(value = "声部信息",required = false)
+    private String subjectNames;
+
     public Integer getTotalClassTimes() {
         return totalClassTimes;
     }
@@ -95,4 +98,12 @@ public class TeacherClassHeadInfo {
     public void setTeachingTeacher(String teachingTeacher) {
         this.teachingTeacher = teachingTeacher;
     }
+
+    public String getSubjectNames() {
+        return subjectNames;
+    }
+
+    public void setSubjectNames(String subjectNames) {
+        this.subjectNames = subjectNames;
+    }
 }

+ 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", "教学点变动"),

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1069,10 +1069,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             throw new BizException("未找到该班级");
         }
 
+        String subjectNames = subjectDao.findNames(classGroup.getSubjectIdList());
+
         TeacherClassHeadInfo teacherClassHeadInfo = new TeacherClassHeadInfo();
         teacherClassHeadInfo.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
         teacherClassHeadInfo.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(classGroup.getId(),new Date()));
         teacherClassHeadInfo.setTotalClassTimes(courseScheduleDao.countClassGroupCourses(classGroup.getId()));
+        if(subjectNames != null && !subjectNames.isEmpty()){
+            teacherClassHeadInfo.setSubjectNames(subjectNames);
+        }
         ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(classGroupId, TeachTypeEnum.BISHOP);
         if (Objects.nonNull(bishopTeacher)) {
             teacherClassHeadInfo.setBishopTeacherId(bishopTeacher.getId());

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

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -3034,7 +3034,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
             }
             if(order.getStatus().equals(DealStatusEnum.SUCCESS)){
-                sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "重复支付,退还余额");
+                sysUserCashAccountService.updateBalance(order.getUserId(), order.getExpectAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "重复支付,退还余额");
+                order.setMemo("重复支付,进入余额");
             }
             studentPaymentOrderDao.update(order);
             return;
@@ -3103,7 +3104,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             order.setMemo("支付成功,在重新支付时,用户选择取消,金额进入账户");
             studentPaymentOrderDao.update(order);
 
-            sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "支付成功,用户取消,退还余额");
+            sysUserCashAccountService.updateBalance(order.getUserId(), order.getExpectAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "支付成功,用户取消,退还余额");
 
             return;
         }

+ 4 - 4
mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml

@@ -22,11 +22,11 @@
     </resultMap>
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        INSERT INTO course_schedule_evaluate (music_group_id_, class_group_id_, course_schedule_id_,
-                                              teacher_id_, item_, comment_,
-                                              create_time_,student_id_list_,version_)
+        INSERT INTO course_schedule_evaluate (music_group_id_, class_group_id_, course_schedule_id_,music_theory_,song_,
+        teaching_material_,teacher_id_, item_, comment_,create_time_,student_id_list_,version_)
         values (#{musicGroupId,jdbcType=VARCHAR}, #{classGroupId,jdbcType=INTEGER}, #{courseScheduleId,jdbcType=BIGINT},
-                #{teacherId,jdbcType=INTEGER}, #{item,jdbcType=VARCHAR}, #{comment,jdbcType=LONGVARCHAR},
+                #{musicTheory,jdbcType=VARCHAR},#{song,jdbcType=VARCHAR},#{teachingMaterial,jdbcType=VARCHAR},#{teacherId,jdbcType=INTEGER},
+        #{item,jdbcType=VARCHAR}, #{comment,jdbcType=LONGVARCHAR},
                 NOW(),#{studentIdList},#{version,jdbcType=INTEGER})
     </insert>
 

+ 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){