فهرست منبع

Merge remote-tracking branch 'origin/master'

周箭河 5 سال پیش
والد
کامیت
c0dc9088f7

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

@@ -424,4 +424,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     List<String> queryMusicGroupIds(Map<String, Object> params);
+
+    /**
+     * @describe 获取时间段内的课程
+     * @author Joburgess
+     * @date 2019/10/31
+     * @param startTime: 开始时间
+     * @param endTime: 结束时间
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+     */
+    List<CourseSchedule> findByDateZone(@Param("startTime") Date startTime,
+                                        @Param("endTime") Date endTime);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysConfigDao.java

@@ -13,5 +13,12 @@ public interface SysConfigDao extends BaseDAO<Long, SysConfig> {
      * @describe 根据配置名称获取配置信息
      */
     SysConfig findByParamName(String paramName);
+
+    /**
+     * 获取value
+     * @param paramName
+     * @return
+     */
+    String findConfigValue(String paramName);
 	
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageConfigDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,4 +13,6 @@ public interface SysMessageConfigDao extends BaseDAO<Integer, SysMessageConfig>
 	 * @return
 	 */
 	SysMessageConfig queryByType(@Param("messageType") String messageType);
+
+    String findContent(String messageType);
 }

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -64,15 +64,17 @@ public interface ContractService {
 	 * 传递商品协议
 	 * @param userId
 	 * @param musicGroupId
+	 * @param musicGroupSubjectGoodsGroupIds
 	 * @return
 	 */
-	boolean transferGoodsContract(Integer userId, String musicGroupId);
+	boolean transferGoodsContract(Integer userId, String musicGroupId, String musicGroupSubjectGoodsGroupIds);
 
 	/**
 	 * 查询商品协议
 	 * @param userId
 	 * @param musicGroupId
+	 * @param musicGroupSubjectGoodsGroupIds
 	 * @return
 	 */
-	String queryGoodsContract(Integer userId, String musicGroupId);
+	String queryGoodsContract(Integer userId, String musicGroupId, String musicGroupSubjectGoodsGroupIds);
 }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -140,6 +140,24 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
     void courseSwapWithDay(Date day1,Date day2);
 
     /**
+     * @describe 检测数据库不存在的课程是否存在错误
+     * @author Joburgess
+     * @date 2019/10/31
+     * @param courseSchedules: 课程列表
+     * @return void
+     */
+    void checkNewCourseSchedules(List<CourseSchedule> courseSchedules);
+
+    /**
+     * @describe 检测数据库中存在的课程调整后是否存在错误
+     * @author Joburgess
+     * @date 2019/10/31
+     * @param courseSchedules: 课程列表
+     * @return void
+     */
+    void checkOldCourseSchedules(List<CourseSchedule> courseSchedules);
+
+    /**
      * 获取班级未开始的课程计划
      *
      * @param classGroupTeacherMapperList

+ 23 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -22,6 +22,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
@@ -29,8 +30,9 @@ import com.ym.mec.biz.dal.entity.SysUserContracts;
 import com.ym.mec.biz.dal.entity.SysUserContracts.ContractType;
 import com.ym.mec.biz.dal.entity.SysUserTsign;
 import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.GoodsService;
+import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.biz.service.StudentRegistrationService;
@@ -68,6 +70,9 @@ public class ContractServiceImpl implements ContractService {
 
 	@Autowired
 	private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+	
+	@Autowired
+	private MusicGroupSubjectGoodsGroupService musicGroupSubjectGoodsGroupService;
 
 	@Autowired
 	private VipGroupService vipGroupService;
@@ -80,6 +85,9 @@ public class ContractServiceImpl implements ContractService {
 
 	@Autowired
 	private StoragePlugin storagePlugin;
+	
+	@Autowired
+	private GoodsService goodsService;
 
 	@Value("${contract.baseDir:/var/pdf}")
 	private String contractBaseDir;
@@ -469,7 +477,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public boolean transferGoodsContract(Integer userId, String musicGroupId) {
+	public boolean transferGoodsContract(Integer userId, String musicGroupId, String musicGroupSubjectGoodsGroupIds) {
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
 		if (sysUserTsign == null) {
@@ -504,8 +512,12 @@ public class ContractServiceImpl implements ContractService {
 		studentInfo.setSubject(subject);
 
 		params.put("studentInfo", studentInfo);
-
-		List<Goods> goodsList = studentPaymentOrderService.queryApplyGoodsList(musicGroupId, OrderDetailTypeEnum.MUSICAL);
+		
+		List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroupList = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(musicGroupSubjectGoodsGroupIds);
+		
+		String goodIdList = musicGroupSubjectGoodsGroupList.stream().map(t -> t.getGoodsIdList()).collect(Collectors.joining(","));
+		
+		List<Goods> goodsList = goodsService.findGoodsByIds(goodIdList);
 		params.put("goodsList", goodsList);
 
 		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
@@ -546,7 +558,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public String queryGoodsContract(Integer userId, String musicGroupId) {
+	public String queryGoodsContract(Integer userId, String musicGroupId, String musicGroupSubjectGoodsGroupIds) {
 
 		// 合成freemarker
 		String srcPdfPath = contractBaseDir + "/goods/" + userId + ".pdf";
@@ -572,8 +584,12 @@ public class ContractServiceImpl implements ContractService {
 		studentInfo.setSubject(subject);
 
 		params.put("studentInfo", studentInfo);
-
-		List<Goods> goodsList = studentPaymentOrderService.queryApplyGoodsList(musicGroupId, OrderDetailTypeEnum.MUSICAL);
+		
+		List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroupList = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(musicGroupSubjectGoodsGroupIds);
+		
+		String goodIdList = musicGroupSubjectGoodsGroupList.stream().map(t -> t.getGoodsIdList()).collect(Collectors.joining(","));
+		
+		List<Goods> goodsList = goodsService.findGoodsByIds(goodIdList);
 		params.put("goodsList", goodsList);
 
 		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, subjectId);

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

@@ -17,6 +17,7 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 
+import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -126,7 +127,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(Objects.isNull(courseSchedules)&&courseSchedules.size()<=0){
 			throw new BizException("参数错误!");
 		}
-		checkCourseSchedule(courseSchedules);
+		checkNewCourseSchedules(courseSchedules);
         createCourseScheduleName(courseSchedules);
 		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
 	}
@@ -250,6 +251,104 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		return teacherCourseSchedulesWithDate;
 	}
 
+	@Override
+	public void checkNewCourseSchedules(List<CourseSchedule> courseSchedules){
+		//第一节课
+		CourseSchedule firstCourseSchedule = courseSchedules.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		//最后一节课
+		CourseSchedule latestCourseSchedule = courseSchedules.stream().max(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		//获取第一节课和最后一节课所包含的时间段内已存在的课程
+		List<CourseSchedule> existCourseSchedules = courseScheduleDao.findByDateZone(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
+		//只需要调整课程信息的课程编号列表
+		List<Long> updateCourseScheduleIds = courseSchedules
+				.stream()
+				.filter(courseSchedule -> Objects.nonNull(courseSchedule.getId()))
+				.map(CourseSchedule::getId)
+				.collect(Collectors.toList());
+		//排除只需调整的课程
+		existCourseSchedules=existCourseSchedules.stream()
+				.filter(courseSchedule -> !updateCourseScheduleIds.contains(courseSchedule.getId()))
+				.collect(Collectors.toList());
+		//合并新课程和已存在的课程
+		List<CourseSchedule> allCourseSchedules;
+		if(!CollectionUtils.isEmpty(existCourseSchedules)){
+			allCourseSchedules = ListUtils.sum(courseSchedules, existCourseSchedules);
+		}else{
+			allCourseSchedules = courseSchedules;
+		}
+		//所有课程的班级编号
+		List<Integer> classGroupIds = courseSchedules
+				.stream()
+				.map(CourseSchedule::getClassGroupId)
+				.distinct()
+				.collect(Collectors.toList());
+		//班级与学生的关联记录
+		List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperDao.findByClassGroups(classGroupIds);
+		Map<Integer, List<ClassGroupStudentMapper>> classGroupStudentsMap = classGroupStudentMappers
+				.stream()
+				.collect(Collectors.groupingBy(ClassGroupStudentMapper::getClassGroupId));
+
+		//将课程计划按照开课时间排序
+		allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+		if(allCourseSchedules.size()>1){
+			for (int i=0;i<allCourseSchedules.size()-1;i++){
+				//当前课程
+				CourseSchedule preCourseSchedule = allCourseSchedules.get(i);
+				//后面一节课程
+				CourseSchedule backCourseSchedule = allCourseSchedules.get(i+1);
+				//判断存在时间重叠的课程
+				if(backCourseSchedule.getStartClassTime().before(preCourseSchedule.getEndClassTime())){
+					//提示信息
+					StringBuffer errInfo = new StringBuffer("在");
+					errInfo.append(DateUtil.dateToString(preCourseSchedule.getStartClassTime(),DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT));
+					errInfo.append("至");
+					errInfo.append(DateUtil.dateToString(backCourseSchedule.getEndClassTime(),DateUtil.ISO_EXPANDED_DATE_TIME_FORMAT));
+					errInfo.append("时间段内");
+					//如果存在时间重叠,则需要判断前后两节课的教师和学生是否存在冲突
+					//教师冲突检测
+					if(Objects.nonNull(preCourseSchedule.getActualTeacherId())
+							&&preCourseSchedule.getActualTeacherId().equals(backCourseSchedule.getActualTeacherId())){
+						errInfo.append("安排的教师有课程冲突");
+						throw new BizException(errInfo.toString());
+					}
+					//学生冲突检测
+					if(preCourseSchedule.getClassGroupId().equals(backCourseSchedule.getClassGroupId())){
+						//如果班级相同,则学生肯定存在冲突
+						errInfo.append("安排的课程存在学生冲突");
+						throw new BizException(errInfo.toString());
+					}
+					//如果班级不同,则需要检测两个班级是否存在重复的学生
+					List<ClassGroupStudentMapper> preClassGroupStudents=classGroupStudentsMap.get(preCourseSchedule.getClassGroupId());
+					List<ClassGroupStudentMapper> backClassGroupStudents=classGroupStudentsMap.get(backCourseSchedule.getClassGroupId());
+					//如果有一个存在没有学生的班级则不存在冲突
+					if(CollectionUtils.isEmpty(preClassGroupStudents)||CollectionUtils.isEmpty(backClassGroupStudents)){
+						continue;
+					}
+					//当前课程所在班级的学生编号列表
+					List<Integer> preClassGroupStudentIds = preClassGroupStudents.stream()
+							.map(ClassGroupStudentMapper::getUserId)
+							.collect(Collectors.toList());
+					//后面一节课程所在班级的学生编号列表
+					List<Integer> backClassGroupStudentIds = backClassGroupStudents.stream()
+							.map(ClassGroupStudentMapper::getUserId)
+							.collect(Collectors.toList());
+					List<Integer> repeatStudentIds = preClassGroupStudentIds.stream()
+							.filter(backClassGroupStudentIds::contains)
+							.collect(Collectors.toList());
+					if(!CollectionUtils.isEmpty(repeatStudentIds)){
+						errInfo.append("安排的课程存在学生冲突");
+						throw new BizException(errInfo.toString());
+					}
+				}
+			}
+		}
+	}
+
+	@Override
+	public void checkOldCourseSchedules(List<CourseSchedule> courseSchedules) {
+
+	}
+
 	/**
 	 * 判断课程安排中是否存在冲突
 	 * 计算课程课次
@@ -720,11 +819,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			String classNamesStr=StringUtils.join(classGroupNamesByClassGroups,",");
 			throw new BizException(classNamesStr+"班级未排课");
 		}
-//		for (Integer key:classCourseNumMap.keySet()){
-//			if(classCourseNumMap.get(key)<=0){
-//				throw new BizException("存在未排课的班级");
-//			}
-//		}
 	}
 
 	@Override

+ 10 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -62,6 +62,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
     @Autowired
     private SubjectService subjectService;
+    @Autowired
+    private SysConfigDao sysConfigDao;
+    @Autowired
+    private SysMessageConfigDao sysMessageConfigDao;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -170,7 +174,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 			contractService.register(userId, sysUser.getRealName(), sysUser.getIdCardNo(), sysUser.getPhone());
             //注册到融云
             if(StringUtils.isEmpty(sysUser.getAvatar())){
-                sysUser.setAvatar("https://daya-online.oss-cn-beijing.aliyuncs.com/201910/RgHwgKc.jpg");
+                sysUser.setAvatar(sysConfigDao.findConfigValue("user_default_head_url"));
             }
             ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
             sysUser.setImToken(register.getToken());
@@ -183,11 +187,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistrationDao.insert(studentRegistration);
         //增加报名学生数
         musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
-//        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
-//        int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
-//        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + 1);
-//        musicOneSubjectClassPlan.setUpdateTime(date);
-//        musicGroupSubjectPlanDao.updateApplyStudentNum(musicOneSubjectClassPlan);
+        //报名成功后,发送短信
+//        String studentApplyUrl = sysConfigDao.findConfigValue("student_apply_url" + studentRegistration.getMusicGroupId());
+//        sysMessageConfigDao.findContent(MessageTypeEnum.SMS_APPLY_MESSAGE.getCode());
+
+        sysConfigDao.findConfigValue("");
         return studentRegistration;
     }
 

+ 14 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -11,8 +11,6 @@ import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.entity.ImGroupMember;
-import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -213,9 +211,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//创建融云班级群
 		// 指导老师加入群组
-		ImGroupMember[] imGroupMembers = { new ImGroupMember(vipGroup.getVipGroupApplyBaseInfo().getUserId().toString())};
+//		ImGroupMember[] imGroupMembers = { new ImGroupMember(vipGroup.getVipGroupApplyBaseInfo().getUserId().toString())};
 		// 创建群组
-		imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+//		imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
 		//创建班级老师关联记录
 		ClassGroupTeacherMapper classGroupTeacherMapper=new ClassGroupTeacherMapper();
@@ -276,7 +274,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(CollectionUtils.isEmpty(courseSchedules)){
 			return;
 		}
-		
+
 	}
 
 	@Override
@@ -563,14 +561,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 						teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
 					}
 
-					if(!Objects.isNull(teacherOnlineSalary)){
-						teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
-					}
-
 					if(Objects.isNull(teacherOnlineSalary)){
-						throw new BizException("请设置教师课酬");
+						teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
+						if(Objects.isNull(teacherOnlineSalary)){
+							throw new BizException("请设置教师课酬");
+						}
+						teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
 					}
-					results.put("onlineTeacherSalary",teacherOnlineSalary.multiply(classTimeDuty));
+					results.put("onlineTeacherSalary",teacherOnlineSalary);
 					break;
 				case RATIO_DISCOUNT:
 					results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
@@ -592,11 +590,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					}
 					if(Objects.isNull(teacherOfflineSalary)){
 						teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
+						if(Objects.isNull(teacherOfflineSalary)){
+							throw new BizException("请设置教师课酬");
+						}
+						teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
 					}
-					if(Objects.isNull(teacherOfflineSalary)){
-						throw new BizException("请设置教师课酬");
-					}
-					results.put("offlineTeacherSalary",teacherOfflineSalary.multiply(classTimeDuty));
+					results.put("offlineTeacherSalary",teacherOfflineSalary);
 					break;
 				case RATIO_DISCOUNT:
 					results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));

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

@@ -1040,7 +1040,7 @@
     </select>
     <select id="queryMusicGroupIds" resultType="java.lang.String">
         SELECT DISTINCT spo.music_group_id_ FROM student_payment_order spo
-        WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL AND spo.user_id_ = #{userId}
+        WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL AND spo.user_id_ = #{userId} AND spo.type_='SUCCESS'
         <include refid="global.limit"/>
     </select>
     <select id="countExistRepeatInDateZone" resultType="int">
@@ -1055,4 +1055,29 @@
             AND DATE_FORMAT( #{startTime}, '%H:%i:%S' ) &lt;= DATE_FORMAT( cs.end_class_time_, '%H:%i:%S' )
             AND DATE_FORMAT( #{endTime}, '%H:%i:%S' ) &gt;= DATE_FORMAT( cs.start_class_time_, '%H:%i:%S' )
     </select>
+    <select id="findByDateZone" resultMap="CourseSchedule">
+        SELECT
+            cs.id_,
+            cs.class_group_id_,
+            cs.status_,
+            cs.subsidy_,
+            cs.class_date_,
+            CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+            CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+            cs.teacher_id_,
+            csts.user_id_ actual_teacher_id_,
+            cs.create_time_,
+            cs.update_time_,
+            cs.teach_mode_,
+            cs.type_,
+            cs.name_,
+            cs.student_num_,
+            cs.leave_student_num_,
+            cs.schoole_id_
+        FROM
+            course_schedule cs
+            LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
+            WHERE cs.class_date_ BETWEEN DATE_FORMAT(#{startTime},'%Y%m%d') AND DATE_FORMAT(#{endTime},'%Y%m%d')
+
+    </select>
 </mapper>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/SysConfigMapper.xml

@@ -79,4 +79,7 @@
 	<select id="findByParamName" resultMap="SysConfig">
 		SELECT * FROM sys_config WHERE param_name_ = #{paramName}
 	</select>
+    <select id="findConfigValue" resultType="java.lang.String">
+		SELECT paran_value_ FROM sys_config WHERE param_name_ = #{paramName}
+	</select>
 </mapper>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/SysMessageConfigMapper.xml

@@ -107,4 +107,7 @@
 	<select id="queryByType" resultMap="SysMessageConfig">
 		SELECT * FROM sys_message_config WHERE message_type_ = #{messageType}
 	</select>
+    <select id="findContent" resultType="java.lang.String">
+		SELECT content_ FROM sys_message_config WHERE message_type_ = #{messageType}
+	</select>
 </mapper>

+ 2 - 2
mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java

@@ -36,12 +36,12 @@ public class ContractsController extends BaseController {
 
 	@ApiOperation("查询商品协议")
 	@GetMapping(value = "queryGoodsContract")
-	public Object queryGoodsContract(String musicGroupId) {
+	public Object queryGoodsContract(String musicGroupId, String musicGroupSubjectGoodsGroupIds) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 			return failed("获取用户信息失败");
 		}
-		return succeed(contractService.queryGoodsContract(sysUser.getId(), musicGroupId));
+		return succeed(contractService.queryGoodsContract(sysUser.getId(), musicGroupId, musicGroupSubjectGoodsGroupIds));
 	}
 
 	@ApiOperation("查询乐团课程协议")

+ 10 - 0
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -867,6 +867,16 @@ public class DateUtil {
 	}
 
 	/**
+	 * 时间转字符串
+	 * @param date
+	 * @return
+	 */
+	public static String dateToString(Date date, String format) {
+		SimpleDateFormat df = new SimpleDateFormat(format);
+		return df.format(date);
+	}
+
+	/**
 	 * @describe 获取时间段内对应星期数的集合
 	 * @author Joburgess
 	 * @date 2019/10/25