Bläddra i källkod

feat:六一活动排课

Joburgess 4 år sedan
förälder
incheckning
810a5ba9d6

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

@@ -27,6 +27,8 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	int batchInsert(List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries);
 
+	int updateEnableChangeSalaryByClassGroup(@Param("classGroupId") Long classGroupId, @Param("enableChangeSalary") Boolean enableChangeSalary);
+
 	/**
 	 * @param courseScheduleIds: 课程编号列表
 	 * @return int

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

@@ -28,6 +28,8 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
 
 	List<VipGroupActivity> queryByIds(@Param("activityIds") String activityIds);
 
+	List<VipGroupActivity> findByName(@Param("name") String name);
+
 	/**
 	 * 导出vip活动
 	 * @param params

+ 136 - 64
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -530,10 +530,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请选择学员");
 		}
 
-		if(Objects.isNull(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())||Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())){
-			throw new BizException("请设置教师课酬");
-		}
-
 		Integer totalClassTimes=vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum();
 		//获取第一节课
 		CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
@@ -548,11 +544,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("报名开始时间必须在报名截至时间之前");
 		}
 
-		if(vipGroupApplyBaseInfoDto.getPaymentExpireDate().after(firstCourseSchedule.getStartClassTime())
-				||DateUtil.isSameDay(vipGroupApplyBaseInfoDto.getPaymentExpireDate(),firstCourseSchedule.getEndClassTime())){
-			throw new BizException("创建失败,报名截止时间必须在开课时间前一天");
-		}
-
 		List<Integer> canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
 		List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
 
@@ -623,13 +614,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		className.append(StringUtils.join(studentNames, ","));
 		vipGroupApplyBaseInfoDto.setName(className.toString());
 
-		//计算课程相关费用信息
-		Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
-				vipGroupApplyBaseInfoDto.getUserId(), null);
 
-		vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
+		if(!vipGroupApplyBaseInfoDto.getFreeCourse()){
+			//计算课程相关费用信息
+			Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
+					vipGroupApplyBaseInfoDto.getUserId(), null);
+			vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(costInfo.get("onlineTeacherSalary"));
+			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(costInfo.get("offlineTeacherSalary"));
+			vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
+		}else{
+			vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(BigDecimal.ZERO);
+			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(BigDecimal.ZERO);
+			vipGroupApplyBaseInfoDto.setTotalPrice(BigDecimal.ZERO);
+		}
 
-		vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
+		vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
 		vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.PROGRESS);
 
 		if(CollectionUtils.isEmpty(vscps)){
@@ -706,7 +705,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			classGroupStudentMapper.setUserId(studentId);
 			classGroupStudentMapper.setCreateTime(now);
 			classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-			classGroupStudentMapper.setGroupType(GroupType.MUSIC);
+			classGroupStudentMapper.setGroupType(GroupType.VIP);
 			classGroupStudentMapperList.add(classGroupStudentMapper);
 		}
 		classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
@@ -744,7 +743,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			for (CourseSchedule courseSchedule : courseSchedules) {
 				CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
 				courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
-				courseScheduleTeacherSalary.setGroupType(GroupType.MUSIC);
+				courseScheduleTeacherSalary.setGroupType(GroupType.VIP);
 				courseScheduleTeacherSalary.setMusicGroupId(classGroup.getMusicGroupId());
 				courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
 				courseScheduleTeacherSalary.setUserId(vipGroupApplyBaseInfoDto.getTeacherId().intValue());
@@ -752,17 +751,32 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				courseScheduleTeacherSalary.setCreateTime(now);
 				courseScheduleTeacherSalary.setUpdateTime(now);
 				courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+				courseScheduleTeacherSalary.setEnableChangeSalary(false);
 				courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
 			}
+			List<TeacherAttendance> teacherAttendances = new ArrayList<>();
+			for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
+				TeacherAttendance teacherAttendance = new TeacherAttendance();
+				teacherAttendance.setGroupType(courseScheduleTeacherSalary.getGroupType());
+				teacherAttendance.setClassGroupId(courseScheduleTeacherSalary.getClassGroupId());
+				teacherAttendance.setMusicGroupId(courseScheduleTeacherSalary.getMusicGroupId());
+				teacherAttendance.setTeacherId(courseScheduleTeacherSalary.getUserId());
+				teacherAttendance.setCourseScheduleId(courseScheduleTeacherSalary.getCourseScheduleId());
+				teacherAttendances.add(teacherAttendance);
+			}
 			courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
+			if (!CollectionUtils.isEmpty(teacherAttendances)) {
+				teacherAttendanceDao.batchInsert(teacherAttendances);
+			}
 		}else{
 			courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroupApplyBaseInfoDto,
 					courseSchedules,
 					classGroupTeacherSalary.getOnlineClassesSalary(),
 					classGroupTeacherSalary.getSalary());
+			courseScheduleTeacherSalaryDao.updateEnableChangeSalaryByClassGroup(classGroup.getId().longValue(), false);
 		}
 
-		SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
+//		SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
 
 		List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
 
@@ -799,40 +813,41 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		courseScheduleService.checkNewCourseSchedules(courseSchedules, false,false);
 
-		try {
-			imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroupApplyBaseInfoDto.getName(), null, null, GroupType.VIP.getCode());
-			imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
-			imUserFriendService.refreshGroupImUserFriend(classGroup.getMusicGroupId(),classGroup.getGroupType());
+//		try {
+//			imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroupApplyBaseInfoDto.getName(), null, null, GroupType.VIP.getCode());
+//			imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+//			imUserFriendService.refreshGroupImUserFriend(classGroup.getMusicGroupId(),classGroup.getGroupType());
 			//发送推送短信
-			Map<Integer,String> map = new HashMap<>(1);
-			map.put(vipGroupApplyBaseInfoDto.getUserId(),sysUser.getPhone());
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_ADD,
-					map,null,0,"","",vipGroupApplyBaseInfoDto.getName());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+//			Map<Integer,String> map = new HashMap<>(1);
+//			map.put(vipGroupApplyBaseInfoDto.getUserId(),sysUser.getPhone());
+//			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_ADD,
+//					map,null,0,"","",vipGroupApplyBaseInfoDto.getName());
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//		}
 
-		Set<Integer> roleIds = new HashSet<>(1);
-		roleIds.add(SysUserRole.SECTION_MANAGER);
-		Map<String,Long> memo = new HashMap<>(1);
-		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
-		if(Objects.isNull(teacher)){
-			throw new BizException("该用户不存在");
-		}
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
-		if(CollectionUtils.isEmpty(userIds)){
-			throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
-		}
-		if(vipGroupApplyBaseInfoDto.getEducationalTeacherId() != null){
-			userIds.add(vipGroupApplyBaseInfoDto.getEducationalTeacherId());
-		}
+//		Set<Integer> roleIds = new HashSet<>(1);
+//		roleIds.add(SysUserRole.SECTION_MANAGER);
+//		Map<String,Long> memo = new HashMap<>(1);
+//		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
+//		if(Objects.isNull(teacher)){
+//			throw new BizException("该用户不存在");
+//		}
+//		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
+//		if(CollectionUtils.isEmpty(userIds)){
+//			throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
+//		}
+//		if(vipGroupApplyBaseInfoDto.getEducationalTeacherId() != null){
+//			userIds.add(vipGroupApplyBaseInfoDto.getEducationalTeacherId());
+//		}
 
-		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
+//		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
 
 		return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public HttpResponseResult importActivityVipGroup(String data) {
 		if(StringUtils.isBlank(data)){
 			return BaseController.succeed();
@@ -841,14 +856,23 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Date date = new Date();
 		for (JSONObject courseData : datas) {
 			boolean skipHoliday = "是".equals(courseData.getString("skip_holiday"))?true:false;
+			String vipGroupActivityName = courseData.getString("vip_group_activity");
 			String vipGroupCategoryStr = courseData.getString("vip_group_category");
-			int courseMinute = "考前辅导课".equals(vipGroupCategoryStr)?25:45;
+			boolean freeCourse = "考前辅导课".equals(vipGroupCategoryStr);
+			int courseMinute = freeCourse?25:45;
 			String vipGroupCategoryName = "1v1".equals(vipGroupCategoryStr)?"1v1":"1v2";
-			int onlineCourseNum = courseData.getIntValue("online_course_num");
-			int onlineWeekNum = courseData.getIntValue("online_course_week_num");
+			Integer schoolId = courseData.getInteger("school_id");
+			int onlineCourseNum = StringUtils.isBlank(courseData.getString("online_course_num"))?0:courseData.getIntValue("online_course_num");
+			int onlineWeekNum = 0;
+			if(onlineCourseNum>0){
+				onlineWeekNum = courseData.getIntValue("online_course_week_num");
+			}
 			String onlineCourseStartTime = courseData.getString("online_course_start_time");
-			int offlineCourseNum = courseData.getIntValue("offline_course_num");
-			int offlineWeekNum = courseData.getIntValue("offline_course_week_num");
+			int offlineCourseNum = StringUtils.isBlank(courseData.getString("offline_course_num"))?0:courseData.getIntValue("offline_course_num");
+			int offlineWeekNum = 0;
+			if(offlineCourseNum>0){
+				offlineWeekNum = courseData.getIntValue("offline_course_week_num");
+			}
 			String offlineCourseStartTime = courseData.getString("offline_course_start_time");
 			int totalCourseNum = onlineCourseNum + offlineCourseNum;
 			Integer teacherId = courseData.getInteger("teacher_id");
@@ -858,16 +882,34 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 			List<Integer> studentIds = Arrays.stream(studentIdsStr.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
 			SysUser student = studentDao.getUser(studentIds.get(0));
+			Student stu = studentDao.get(studentIds.get(0));
+			if(Objects.isNull(student)){
+				throw new BizException("学员信息异常");
+			}
 
 			List<VipGroupCategory> vipGroupCategories = vipGroupCategoryDao.findAllByOrgan(student.getOrganId().toString());
 			VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals(vipGroupCategoryName)).findFirst().get();
 
-			LocalDate onlineCourseStartDay = LocalDate.parse(courseData.getString("online_course_start_day"), DateUtil.dateFormatter);
-			LocalDate offlineCourseStartDay = LocalDate.parse(courseData.getString("offline_course_start_day"), DateUtil.dateFormatter);
+			List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.findByName(vipGroupActivityName);
+			VipGroupActivity vipGroupActivity = null;
+			if(!CollectionUtils.isEmpty(vipGroupActivities)){
+				vipGroupActivity = vipGroupActivities.get(0);
+			}
+
+			LocalDate courseStartDay = null;
+			LocalDate onlineCourseStartDay = null;
+			LocalDate offlineCourseStartDay = null;
+
+			if(onlineCourseNum>0){
+				onlineCourseStartDay = LocalDate.parse(courseData.getString("online_course_start_day").replace(" 00:00:00", ""), DateUtil.dateFormatter);
+				courseStartDay = onlineCourseStartDay;
+			}
 
-			LocalDate courseStartDay = onlineCourseStartDay;
-			if(onlineCourseStartDay.compareTo(offlineCourseStartDay)>0){
-				courseStartDay = offlineCourseStartDay;
+			if(offlineCourseNum>0){
+				offlineCourseStartDay = LocalDate.parse(courseData.getString("offline_course_start_day").replace(" 00:00:00", ""), DateUtil.dateFormatter);
+				if(Objects.isNull(courseStartDay)||onlineCourseStartDay.compareTo(offlineCourseStartDay)>0){
+					courseStartDay = offlineCourseStartDay;
+				}
 			}
 
 			Set<String> holidayDays = new HashSet<>();
@@ -890,13 +932,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				}
 				int dayOfWeek = courseStartDay.getDayOfWeek().getValue();//当前星期
 
-				if (onlineWeekNum < 1 || onlineWeekNum > 7) {
+				if (onlineCourseNumCreated<onlineCourseNum&&(onlineWeekNum < 1 || onlineWeekNum > 7)) {
 					throw new BizException("排课循环周期错误,请核查");
 				}
-				if(courseStartDay.compareTo(onlineCourseStartDay)>=0&&onlineCourseNumCreated<onlineCourseNum&&dayOfWeek==onlineWeekNum){
+				if(onlineCourseNumCreated<onlineCourseNum&&courseStartDay.compareTo(onlineCourseStartDay)>=0&&dayOfWeek==onlineWeekNum){
 					Date classDate = DateConvertor.toDate(courseStartDay);
 					String startClassTime = DateUtil.getDate(classDate) + " " + onlineCourseStartTime;
-					String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime), courseMinute));
+					String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime, "yyyy-MM-dd HH:mm:ss"), courseMinute), "yyyy-MM-dd HH:mm:ss");
 
 					CourseSchedule courseSchedule = new CourseSchedule();
 					courseSchedule.setStatus(CourseStatusEnum.NOT_START);
@@ -913,16 +955,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					courseSchedule.setActualTeacherId(teacherId);
 					courseSchedules.add(courseSchedule);
 
-					onlineCourseNum++;
+					onlineCourseNumCreated++;
 				}
 
-				if (offlineWeekNum < 1 || offlineWeekNum > 7) {
+				if (offlineCourseNumCreated<offlineCourseNum&&(offlineWeekNum < 1 || offlineWeekNum > 7)) {
 					throw new BizException("排课循环周期错误,请核查");
 				}
-				if(courseStartDay.compareTo(offlineCourseStartDay)>=0&&offlineCourseNumCreated<offlineCourseNum&&dayOfWeek==offlineWeekNum){
+				if(offlineCourseNumCreated<offlineCourseNum&&courseStartDay.compareTo(offlineCourseStartDay)>=0&&dayOfWeek==offlineWeekNum){
 					Date classDate = DateConvertor.toDate(courseStartDay);
 					String startClassTime = DateUtil.getDate(classDate) + " " + offlineCourseStartTime;
-					String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime), courseMinute));
+					String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime, "yyyy-MM-dd HH:mm:ss"), courseMinute), "yyyy-MM-dd HH:mm:ss");
 
 					CourseSchedule courseSchedule = new CourseSchedule();
 					courseSchedule.setStatus(CourseStatusEnum.NOT_START);
@@ -931,6 +973,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
 					courseSchedule.setCreateTime(date);
 					courseSchedule.setUpdateTime(date);
+					courseSchedule.setSchoolId(schoolId);
 					courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
 					courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
 					courseSchedule.setGroupType(VIP);
@@ -939,7 +982,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					courseSchedule.setActualTeacherId(teacherId);
 					courseSchedules.add(courseSchedule);
 
-					offlineCourseNum++;
+					offlineCourseNumCreated++;
 				}
 
 				if (courseSchedules.size()>=totalCourseNum) {
@@ -949,9 +992,38 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				courseStartDay = courseStartDay.plusDays(1);
 			}
 
-		}
-
-		return null;
+			VipGroupApplyDto vipGroupApplyDto = new VipGroupApplyDto();
+			VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto = new VipGroupApplyBaseInfoDto();
+			vipGroupApplyBaseInfoDto.setStudentIdList(studentIdsStr);
+			
+			vipGroupApplyBaseInfoDto.setAllCourseNum(totalCourseNum);
+			vipGroupApplyBaseInfoDto.setTeacherId(teacherId.longValue());
+			vipGroupApplyBaseInfoDto.setSubjectIdList(stu.getSubjectIdList());
+			vipGroupApplyBaseInfoDto.setFirstStudentId(studentIds.get(0));
+			vipGroupApplyBaseInfoDto.setUserId(teacherId);
+			vipGroupApplyBaseInfoDto.setSingleClassMinutes(courseMinute);
+			vipGroupApplyBaseInfoDto.setRegistrationStartTime(date);
+			vipGroupApplyBaseInfoDto.setPaymentExpireDate(date);
+			vipGroupApplyBaseInfoDto.setCourseStartDate(courseSchedules.get(0).getStartClassTime());
+			vipGroupApplyBaseInfoDto.setCoursesExpireDate(courseSchedules.get(courseSchedules.size()-1).getEndClassTime());
+			vipGroupApplyBaseInfoDto.setTeacherSchoolId(schoolId);
+			vipGroupApplyBaseInfoDto.setOnlineClassesNum(onlineCourseNum);
+			vipGroupApplyBaseInfoDto.setOfflineClassesNum(offlineCourseNum);
+			vipGroupApplyBaseInfoDto.setVipGroupCategoryId(vipGroupCategory.getId());
+			vipGroupApplyBaseInfoDto.setFreeCourse(freeCourse);
+			if(Objects.nonNull(vipGroupActivity)){
+				vipGroupApplyBaseInfoDto.setVipGroupActivityId(vipGroupActivity.getId());
+			}
+			vipGroupApplyBaseInfoDto.setOrganId(student.getOrganId());
+			vipGroupApplyBaseInfoDto.setOnlineClassesUnitPrice(vipGroupCategory.getOnlineClassesUnitPrice());
+			vipGroupApplyBaseInfoDto.setOfflineClassesUnitPrice(vipGroupCategory.getOfflineClassesUnitPrice());
+			vipGroupApplyDto.setVipGroupApplyBaseInfo(vipGroupApplyBaseInfoDto);
+
+			vipGroupApplyDto.setCourseSchedules(courseSchedules);
+			createActivityVipGroup(vipGroupApplyDto);
+		}
+
+		return BaseController.succeed();
 	}
 
 	@Override

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

@@ -532,6 +532,10 @@
 		</foreach>
 	</update>
 
+    <update id="updateEnableChangeSalaryByClassGroup">
+		UPDATE course_schedule_teacher_salary SET enable_change_salary_ = #{enableChangeSalary} WHERE class_group_id_=#{classGroupId}
+	</update>
+
     <select id="findCourseScheduleTeacherSalaryByMusicGroupId" resultMap="CourseScheduleTeacherSalary">
 		SELECT * FROM course_schedule_teacher_salary WHERE music_group_id_=#{musicGroupId} AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>

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

@@ -269,4 +269,8 @@
 		</where>
 		GROUP BY vga.`id_`
 	</select>
+
+    <select id="findByName" resultMap="VipGroupActivity">
+		SELECT * FROM vip_group_activity vga WHERE vga.name_ = #{name}
+	</select>
 </mapper>

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupManageController.java

@@ -59,7 +59,7 @@ public class EduVipGroupManageController extends BaseController {
 
     @PostMapping("/exportActivityVipGroup")
     public HttpResponseResult importActivityVipGroup(String data){
-
+        vipGroupService.importActivityVipGroup(data);
         return succeed();
     }
 

+ 143 - 0
mec-web/src/main/resources/application.yml

@@ -0,0 +1,143 @@
+server:
+  port: 8005
+  connection-timeout: 60000
+  tomcat:
+    min-spare-threads: 50
+    max-threads: 500
+    accesslog:
+      enabled: true
+      buffered: true
+      directory: /var/logs
+      file-date-format: -yyyy-MM-dd
+      pattern: common
+      prefix: tomcat-web
+      rename-on-rotate: false
+      request-attributes-enabled: false
+      rotate: true
+      suffix: .log
+
+eureka:
+  client:
+    serviceUrl:
+      defaultZone: http://admin:admin123@localhost:8761/eureka/eureka/
+    instance:
+      lease-renewal-interval-in-seconds: 5
+      prefer-ip-address: true
+
+spring:
+  servlet:
+    multipart:
+      max-file-size: 150MB
+      max-request-size: 150MB
+  application:
+    name: web-server
+
+  data:
+    mongodb:
+      uri: mongodb://root:dayayuemeng2019@47.114.1.200:27017/mec_dev
+
+  datasource:
+    name: test
+    url: jdbc:mysql://rm-bp13774a2o87ti8c7mo.mysql.rds.aliyuncs.com:3306/mec_pro?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
+    username: mec_pro
+    password: mec@Pro9
+    # 使用druid数据源
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      connection-init-sqls: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    filters: stat
+    maxActive: 50
+    initialSize: 10
+    maxWait: 60000
+    minIdle: 1
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    validationQuery: select 'x'
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+    maxOpenPreparedStatements: 20
+
+  redis:
+    host: 47.114.1.200
+    port: 6379
+    password: dyym
+    database: 1
+    #连接超时时间(毫秒)
+    timeout: 10000
+    jedis:
+      pool:
+        #连接池最大连接数(使用负值表示没有限制)
+        max-active: 20
+        #连接池最大阻塞等待时间(使用负值表示没有限制)
+        max-wait: 10000
+        #连接池中的最大空闲连接
+        max-idle: 10
+        #连接池中的最小空闲连接
+        min-idle: 5
+
+mybatis:
+  mapperLocations: classpath:config/mybatis/*.xml
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+swagger:
+  base-package: com.ym.mec.web.controller
+
+##认证
+security:
+  oauth2:
+    client:
+      client-id: app
+      client-secret: app
+    resource:
+      token-info-uri: http://localhost:8001/oauth/check_token
+
+#spring boot admin 相关配置
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: ALWAYS
+
+
+ribbon:
+  ReadTimeout: 600000
+  ConnectTimeout: 60000
+
+logging:
+  level:
+    com.ym.mec.auth.api.client.SysUserFeignService: INFO
+
+message:
+  debugMode: true
+
+##支付流水隐藏
+payment:
+  hiddenMode: false
+  #隐藏的支付方式
+  channel: YQPAY
+
+eseal:
+  tsign:
+    projectid: 4438776254
+    projectSecret: a94cf63d6361084d232f345d71321691
+    apisUrl: http://smlitsm.tsign.cn:8080/tgmonitor/rest/app!getAPIInfo2
+
+push:
+  jiguang:
+    reqURL: https://api.jpush.cn/v3/push
+    appKey:
+      student: 0e7422e1d6e73637e678716a
+      teacher: 7e0282ca92c12c8c45a93bb3
+      system: 496fc1007dea59b1b4252d2b
+    masterSecret:
+      student: c2361016604eab56ab2db2ac
+      teacher: d47430e2f4755ef5dc050ac5
+      system: a5e51e9cdb25417463afbf7a
+    apns_production: false