Переглянути джерело

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

zouxuan 5 роки тому
батько
коміт
3725e2041a
19 змінених файлів з 228 додано та 66 видалено
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  2. 14 12
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupActivityDao.java
  3. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  4. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  5. 4 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  6. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  7. 7 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  8. 19 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultMusicGroupSalaryServiceImpl.java
  9. 57 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java
  10. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  11. 18 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  12. 4 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  13. 3 0
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  14. 4 0
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  15. 25 2
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultMusicGroupSalaryController.java
  16. 24 2
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultVipGroupSalaryController.java
  17. 7 0
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java
  18. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java
  19. 6 6
      mec-web/src/main/resources/application.yml

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

@@ -26,6 +26,15 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     int batchUpdate(List<StudentAttendance> studentAttendances);
 
     /**
+     * @describe
+     * @author Joburgess
+     * @date 2020/1/19
+     * @param courseId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.StudentAttendance>
+     */
+    List<StudentAttendance> findByCourseId(@Param("courseId") Integer courseId);
+
+    /**
      * @describe 根据课程删除对应的点名记录
      * @author Joburgess
      * @date 2019/10/21

+ 14 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupActivityDao.java

@@ -9,17 +9,19 @@ import java.util.Map;
 
 public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity> {
 
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/2
-     * 根据课程类型获取vip课 活动方案
-     */
-    List<VipGroupActivity> findByCategory(@Param("categoryId") Long categoryId,@Param("organIds") String organIds);
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/2
+	 * 根据课程类型获取vip课 活动方案
+	 */
+	List<VipGroupActivity> findByCategory(@Param("categoryId") Long categoryId, @Param("organIds") String organIds);
 
-    /**
-     * 根据活动方案编号列表获取名称
-     * @param activityIds
-     * @return
-     */
-    List<Map<Integer, String>> queryNamesById(String activityIds);
+	/**
+	 * 根据活动方案编号列表获取名称
+	 * @param activityIds
+	 * @return
+	 */
+	List<Map<Integer, String>> queryNamesById(String activityIds);
+
+	List<VipGroupActivity> queryByIds(@Param("activityIds") String activityIds);
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -85,7 +85,7 @@ public class VipGroup {
 	private String organIdList;
 
 	@ApiModelProperty("活动方案编号")
-	private Long vipGroupActivityId;
+	private Integer vipGroupActivityId;
 
 	@ApiModelProperty(value = "活动方案名称")
 	private String vipGroupActivityName;
@@ -220,11 +220,11 @@ public class VipGroup {
 		this.status = status;
 	}
 
-	public Long getVipGroupActivityId() {
+	public Integer getVipGroupActivityId() {
 		return vipGroupActivityId;
 	}
 
-	public void setVipGroupActivityId(Long vipGroupActivityId) {
+	public void setVipGroupActivityId(Integer vipGroupActivityId) {
 		this.vipGroupActivityId = vipGroupActivityId;
 	}
 

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -124,6 +124,15 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
     VipGroupManageDetailDto getVipGroupDetail(Long vipGroupId);
 
     /**
+     * @Author: Joburgess
+     * @Date: 2019/10/3
+     * @params [vipGroupId]
+     * @return com.ym.mec.biz.dal.dto.VipGroupManageDetailDto
+     * @describe 获取vip课详情
+     */
+    VipGroupManageDetailDto getVipGroupDetailForAudit(Long vipGroupId);
+
+    /**
      * @describe 计算vip课程购买总价,及老师课酬
      * @author Joburgess
      * @date 2019/10/23

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

@@ -415,6 +415,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     .collect(Collectors.toList());
             //根据教学点将当前老师的课程分组
             Map<Integer, List<CourseSchedule>> schoolCourseSchedules = currentTeacherCourseSchedules.stream()
+                    .filter(courseSchedule -> Objects.nonNull(courseSchedule.getSchoolId()))
                     .collect(Collectors.groupingBy(CourseSchedule::getSchoolId));
             Map<Integer, Map<Date,Integer>> schoolClassMinutesMap = new HashMap<>();
             for (Integer schoolId : schoolCourseSchedules.keySet()) {
@@ -453,7 +454,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             CourseSchedule courseSchedule = courseScheduleIdMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
             Map<Integer, Map<Date,Integer>> schoolClassMinutesMap = teacherClassMinutesMap.get(courseScheduleTeacherSalary.getUserId());
             Map<Date,Integer> classDateMinutes = schoolClassMinutesMap.get(courseSchedule.getSchoolId());
-            Integer schoolClassMinutes = classDateMinutes.get(courseSchedule.getClassDate());
+
             //结算方式
             String settlementType = musicGroupSettlementsMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
             if(StringUtils.isEmpty(settlementType)){
@@ -469,9 +470,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             //当前课程的时长
             int duration = DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
             //如果是单技课或者合奏课并且结算方式为3.0
-            if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY.getCode())
+            if (Objects.nonNull(classDateMinutes)&&settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY.getCode())
                     &&(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.SINGLE)
                     || courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MIX))) {
+                Integer schoolClassMinutes = classDateMinutes.get(courseSchedule.getClassDate());
                 if (schoolClassMinutes >= settlementClassMinutes && duration < singleClassTime) {
                     duration = singleClassTime;
                     durationIsChange = true;

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -232,6 +232,13 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			studentAttendance.setCourseScheduleId(courseSchedule.getId());
 		}
 		studentAttendanceDao.addStudentAttendances(studentAttendances);
+		List<StudentAttendance> allStudentAttendances = studentAttendanceDao.findByCourseId(studentAttendanceInfo.getCourseScheduleId());
+		Map<StudentAttendanceStatusEnum, List<StudentAttendance>> studentAttendanceGroupByStatus = allStudentAttendances.stream().collect(Collectors.groupingBy(StudentAttendance::getStatus));
+		Integer studentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.NORMAL).size();
+		Integer leaveStudentNum=studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE)==null?0:studentAttendanceGroupByStatus.get(StudentAttendanceStatusEnum.LEAVE).size();
+		courseSchedule.setStudentNum(studentNum);
+		courseSchedule.setLeaveStudentNum(leaveStudentNum);
+		courseScheduleDao.update(courseSchedule);
 	}
 
 	@Override

+ 7 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -416,9 +416,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(Objects.isNull(teacherAttendanceInfo.getCourseScheduleId())){
 			throw new BizException("请指定课程");
 		}
-		if(Objects.isNull(teacherAttendanceInfo.getTeacherId())){
-			throw new BizException("请指定教师");
-		}
 		if(Objects.isNull(teacherAttendanceInfo.getSignInStatus())){
 			throw new BizException("请指定签到状态");
 		}
@@ -429,8 +426,15 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(Objects.isNull(courseSchedule)){
 			throw new BizException("课程不存在");
 		}
+		if(Objects.isNull(teacherAttendanceInfo.getTeacherId())){
+			if(Objects.isNull(courseSchedule.getActualTeacherId())){
+				throw new BizException("请指定教师");
+			}
+			teacherAttendanceInfo.setTeacherId(courseSchedule.getActualTeacherId());
+		}
 		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(teacherAttendanceInfo.getTeacherId().longValue(),teacherAttendanceInfo.getCourseScheduleId());
 
+
 		Date date = new Date();
 		if(Objects.isNull(teacherAttendance)){
 			teacherAttendance=new TeacherAttendance();

+ 19 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultMusicGroupSalaryServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -25,6 +26,7 @@ import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.service.TeacherDefaultMusicGroupSalaryService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
 
 @Service
 public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<Long, TeacherDefaultMusicGroupSalary> implements
@@ -70,7 +72,9 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 				// 修改了哪些课酬
 				TeacherDefaultMusicGroupSalary oldMS = map.get(ms.getCourseScheduleType());
 
-				if (oldMS.getAssistantTeacher30MinSalary().doubleValue() != ms.getAssistantTeacher30MinSalary().doubleValue()
+				if (oldMS == null || oldMS.getAssistantTeacher30MinSalary() == null || oldMS.getMainTeacher30MinSalary() == null
+						|| oldMS.getAssistantTeacher90MinSalary() == null || oldMS.getMainTeacher90MinSalary() == null
+						|| oldMS.getAssistantTeacher30MinSalary().doubleValue() != ms.getAssistantTeacher30MinSalary().doubleValue()
 						|| oldMS.getMainTeacher30MinSalary().doubleValue() != ms.getMainTeacher30MinSalary().doubleValue()
 						|| oldMS.getAssistantTeacher90MinSalary().doubleValue() != ms.getAssistantTeacher90MinSalary().doubleValue()
 						|| oldMS.getMainTeacher90MinSalary().doubleValue() != ms.getMainTeacher90MinSalary().doubleValue()) {
@@ -80,6 +84,12 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 			}
 
 			if (salaryMap.size() > 0) {
+
+				// 删除当前教师所有的结算类型的数据
+				teacherDefaultMusicGroupSalaryDao.delByTeacherId(userId);
+				// 批量新增
+				teacherDefaultMusicGroupSalaryDao.batchAdd(salaries);
+
 				String typeList = salaryMap.keySet().stream().map(e -> e.getCode()).collect(Collectors.joining(","));
 				// 查询所有需要修改的课酬
 				List<CourseScheduleTeacherSalary> updateTeacherSalaryList = courseScheduleTeacherSalaryDao.queryUserNoSettlementListByTypeAndStartClassDate(
@@ -98,20 +108,24 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 						if (musicGroup != null) {
 							TeacherDefaultMusicGroupSalary tdms = salaryMap.get(ts.getCourseSchedule().getType());
 							if (tdms != null) {
+
+								BigDecimal duration = new BigDecimal(DateUtil.minutesBetween(ts.getCourseSchedule().getStartClassTime(), ts.getCourseSchedule()
+										.getEndClassTime()));
+
 								if (musicGroup.getSettlementType() == SalarySettlementTypeEnum.GRADIENT_SALARY) {// 3.0课酬
 
 									// 判断是助教、主教
 									if (ts.getTeacherRole() == TeachTypeEnum.BISHOP) {
-										ts.setExpectSalary(tdms.getMainTeacher90MinSalary());
+										ts.setExpectSalary(duration.divide(new BigDecimal(90)).multiply(tdms.getMainTeacher90MinSalary()));
 									} else {
-										ts.setExpectSalary(tdms.getAssistantTeacher90MinSalary());
+										ts.setExpectSalary(duration.divide(new BigDecimal(90)).multiply(tdms.getAssistantTeacher90MinSalary()));
 									}
 								} else if (musicGroup.getSettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT) {// 默认课酬
 									// 判断是助教、主教
 									if (ts.getTeacherRole() == TeachTypeEnum.BISHOP) {
-										ts.setExpectSalary(tdms.getMainTeacher30MinSalary());
+										ts.setExpectSalary(duration.divide(new BigDecimal(30)).multiply(tdms.getMainTeacher30MinSalary()));
 									} else {
-										ts.setExpectSalary(tdms.getAssistantTeacher30MinSalary());
+										ts.setExpectSalary(duration.divide(new BigDecimal(30)).multiply(tdms.getAssistantTeacher30MinSalary()));
 									}
 								}
 							}
@@ -119,11 +133,6 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 					}
 					courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(updateTeacherSalaryList);
 				}
-
-				// 删除当前教师所有的结算类型的数据
-				teacherDefaultMusicGroupSalaryDao.delByTeacherId(userId);
-				// 批量新增
-				teacherDefaultMusicGroupSalaryDao.batchAdd(salaries);
 			}
 		}
 	}

+ 57 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -14,30 +15,38 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
 import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
+import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
 import com.ym.mec.biz.dal.dao.VipGroupDao;
+import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
 import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.entity.VipGroupActivity;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.service.TeacherDefaultVipGroupSalaryService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
 @Service
-public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Long, TeacherDefaultVipGroupSalary>  implements TeacherDefaultVipGroupSalaryService {
-	
+public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Long, TeacherDefaultVipGroupSalary> implements TeacherDefaultVipGroupSalaryService {
+
 	@Autowired
 	private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
 
 	@Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
-	
+
 	@Autowired
 	private VipGroupDao vipGroupDao;
 
+	@Autowired
+	private VipGroupActivityDao vipGroupActivityDao;
+
 	@Override
 	public BaseDAO<Long, TeacherDefaultVipGroupSalary> getDAO() {
 		return teacherDefaultVipGroupSalaryDao;
@@ -46,7 +55,7 @@ public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Lon
 	@Override
 	public TeacherDefaultVipGroupSalary findByTeacherAndCategory(Integer userId, Long categoryId) {
 		TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(userId, categoryId);
-		if(Objects.isNull(byTeacherAndCategory)){
+		if (Objects.isNull(byTeacherAndCategory)) {
 			byTeacherAndCategory.setOfflineClassesSalary(new BigDecimal(0));
 			byTeacherAndCategory.setOnlineClassesSalary(new BigDecimal(0));
 		}
@@ -75,14 +84,21 @@ public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Lon
 				// 修改了哪些课酬
 				TeacherDefaultVipGroupSalary oldMS = map.get(ms.getVipGroupCategoryId());
 
-				if (oldMS.getOfflineClassesSalary().doubleValue() != ms.getOfflineClassesSalary().doubleValue()
-						|| oldMS.getOnlineClassesSalary().doubleValue() != ms.getOnlineClassesSalary().doubleValue()) {
+				if (oldMS == null || oldMS.getOfflineClassesSalary() == null
+						|| oldMS.getOfflineClassesSalary().doubleValue() != ms.getOfflineClassesSalary().doubleValue()
+						|| oldMS.getOnlineClassesSalary() == null || oldMS.getOnlineClassesSalary().doubleValue() != ms.getOnlineClassesSalary().doubleValue()) {
 					salaryMap.put(ms.getVipGroupCategoryId(), ms);
 				}
 
 			}
 
 			if (salaryMap.size() > 0) {
+
+				// 根据教师编号删除
+				teacherDefaultVipGroupSalaryDao.delByTeacherId(salary.getUserId());
+				// 新增
+				teacherDefaultVipGroupSalaryDao.batchAdd(teacherDefaultVipGroupSalaries);
+
 				String typeList = CourseScheduleType.VIP.getCode();
 				// 查询所有需要修改的课酬
 				List<CourseScheduleTeacherSalary> updateTeacherSalaryList = courseScheduleTeacherSalaryDao.queryUserNoSettlementListByTypeAndStartClassDate(
@@ -91,33 +107,58 @@ public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Lon
 				if (updateTeacherSalaryList != null && updateTeacherSalaryList.size() > 0) {
 					Set<String> musicGroupIdList = updateTeacherSalaryList.stream().map(ts -> ts.getMusicGroupId()).collect(Collectors.toSet());
 					// 查询包含的VIP信息
-					Map<Long, VipGroup> vipGroupMap = vipGroupDao.queryByIds(StringUtils.join(musicGroupIdList, ",")).stream()
-							.collect(Collectors.toMap(VipGroup::getId, mg -> mg));
+					List<VipGroup> vipGroupList = vipGroupDao.queryByIds(StringUtils.join(musicGroupIdList, ","));
+					if (vipGroupList == null || vipGroupList.size() == 0) {
+						return;
+					}
+
+					Map<Long, VipGroup> vipGroupMap = vipGroupList.stream().collect(Collectors.toMap(VipGroup::getId, mg -> mg));
+
+					// 查询活动
+					Map<Integer, VipGroupActivity> vipGroupActivityMap = vipGroupActivityDao
+							.queryByIds(StringUtils.join(vipGroupList.stream().map(vg -> vg.getVipGroupActivityId()).collect(Collectors.toList()), ","))
+							.stream().collect(Collectors.toMap(VipGroupActivity::getId, va -> va));
 
 					// 批量修改课程课酬
+					List<CourseScheduleTeacherSalary> list = new ArrayList<CourseScheduleTeacherSalary>();
+
 					for (CourseScheduleTeacherSalary ts : updateTeacherSalaryList) {
 						VipGroup vipGroup = vipGroupMap.get(ts.getMusicGroupId());
 						// 课酬结算标准
 						if (vipGroup != null) {
+
+							VipGroupActivity vipGroupActivity = vipGroupActivityMap.get(vipGroup.getVipGroupActivityId());
+							if (vipGroupActivity == null) {
+								continue;
+							}
+
+							VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(),
+									VipGroupSalarySettlementDto.class);
+
+							if (vipGroupSalarySettlementDto == null) {
+								continue;
+							}
+
 							TeacherDefaultVipGroupSalary tdms = salaryMap.get(vipGroup.getVipGroupCategoryId());
 							if (tdms != null) {
-								if (ts.getCourseSchedule().getTeachMode() == TeachModeEnum.ONLINE) {// 线上课
+								if (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY
+										&& (ts.getCourseSchedule().getTeachMode() == TeachModeEnum.ONLINE)) {// 线上课
 
 									ts.setExpectSalary(tdms.getOnlineClassesSalary());
-								} else if (ts.getCourseSchedule().getTeachMode() == TeachModeEnum.OFFLINE) {// 线下课
+									list.add(ts);
+								} else if (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY
+										&& ts.getCourseSchedule().getTeachMode() == TeachModeEnum.OFFLINE) {// 线下课
 									ts.setExpectSalary(tdms.getOfflineClassesSalary());
+									list.add(ts);
 								}
 							}
 						}
 					}
+					if (list.size() > 0) {
+						courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(list);
+					}
 				}
-				courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(updateTeacherSalaryList);
 			}
-
-			// 根据教师编号删除
-			teacherDefaultVipGroupSalaryDao.delByTeacherId(salary.getUserId());
-			// 新增
-			teacherDefaultVipGroupSalaryDao.batchAdd(teacherDefaultVipGroupSalaries);
 		}
 	}
 }

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -100,7 +100,9 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 					list.add(his.getAfter());
 				}
 
-				checkCourseSchedulePlansExitLeaveRecord(list);
+				if(list.size() > 0){
+					// checkCourseSchedulePlansExitLeaveRecord(list);
+				}
 			}
 		}
 		teacherLeaveRecordDao.insert(teacherLeaveRecord);
@@ -152,7 +154,9 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 					list.add(his.getAfter());
 				}
 				// 课时调整
-				courseScheduleService.courseAdjust(list);
+				if (list.size() > 0) {
+					courseScheduleService.courseAdjust(list);
+				}
 			}
 		}
 		//教师请假结果通知

+ 18 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -714,6 +714,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
+	public VipGroupManageDetailDto getVipGroupDetailForAudit(Long vipGroupId) {
+		if(Objects.isNull(vipGroupId)){
+			throw new BizException("请指定vip课程");
+		}
+		VipGroupManageDetailDto vipGroupBaseInfo = vipGroupDao.getVipGroupBaseInfo(vipGroupId);
+		vipGroupBaseInfo.setSubjectName(StringUtils.join(subjectDao.findBySubIds(vipGroupBaseInfo.getSubjectIdList()),","));
+		ClassGroupTeacherSalary byVipGoupAndTeacher = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroupBaseInfo.getUserId());
+		if(Objects.nonNull(byVipGoupAndTeacher)){
+			vipGroupBaseInfo.setOnlineTeacherSalary(byVipGoupAndTeacher.getOnlineClassesSalary());
+			vipGroupBaseInfo.setOfflineTeacherSalary(byVipGoupAndTeacher.getSalary());
+		}
+		return vipGroupBaseInfo;
+	}
+
+	@Override
 	public PageInfo findVipGroupAttendances(VipGroupAttendanceQueryInfo queryInfo) {
 		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
@@ -2296,10 +2311,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("未找到指定的vip课程");
 		}
-		if(!vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)
-				&&!vipGroup.getStatus().equals(VipGroupStatusEnum.NOT_START)){
-			throw new BizException("此课程不处于报名状态");
-		}
 		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
 
         Integer studentNum = classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId());
@@ -2583,7 +2594,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			
 			for (VipGroup noCreateSuccessVipGroup : noCreateSuccessVipGroups) {
 				//推送消息
-				stopVipPush(noCreateSuccessVipGroup.getId(),noCreateSuccessVipGroup.getName());
+				if(noCreateSuccessVipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)) {
+					stopVipPush(noCreateSuccessVipGroup.getId(), noCreateSuccessVipGroup.getName());
+				}
 			}
 		}
 	}

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

@@ -23,6 +23,9 @@
 		<result column="class_group_id_" property="classGroupId" />
 		<result column="type_" property="courseSchedule.type" />
 		<result column="teach_mode_" property="courseSchedule.teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result column="class_date_" property="courseSchedule.classDate" />
+		<result column="start_class_time_" property="courseSchedule.startClassTime" />
+		<result column="end_class_time_" property="courseSchedule.endClassTime" />
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -421,7 +424,7 @@
 	</delete>
 
 	<select id="queryUserNoSettlementListByTypeAndStartClassDate" resultMap="CourseScheduleTeacherSalary">
-		SELECT ts.*,cs.type_,cs.teach_mode_ FROM course_schedule_teacher_salary ts LEFT JOIN course_schedule cs ON ts.course_schedule_id_ = cs.id_
+		SELECT ts.*,cs.type_,cs.teach_mode_,cs.class_date_,cs.start_class_time_,cs.end_class_time_ FROM course_schedule_teacher_salary ts LEFT JOIN course_schedule cs ON ts.course_schedule_id_ = cs.id_
 		WHERE cs.type_ IN (#{typeList}) AND ts.user_id_ = #{userId} AND ts.settlement_time_ IS NULL AND cs.class_date_ &gt;= #{startClassDate}
 	</select>
 </mapper>

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

@@ -443,4 +443,7 @@
         FROM course_schedule_student_payment
         WHERE course_schedule_id_ = #{search}
     </select>
+    <select id="findByCourseId" resultMap="StudentAttendance">
+        SELECT * FROM student_attendance WHERE course_schedule_id_=#{courseId}
+    </select>
 </mapper>

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

@@ -165,4 +165,8 @@
     <select id="queryNamesById" resultType="java.util.Map">
 		SELECT vga.id_ `key`,vga.name_ `value` FROM vip_group_activity vga WHERE FIND_IN_SET(vga.id_,#{activityIds}) AND vga.del_flag_=0
 	</select>
+	
+    <select id="queryByIds" resultMap="VipGroupActivity">
+		SELECT * FROM vip_group_activity vga WHERE FIND_IN_SET(vga.id_,#{activityIds})
+	</select>
 </mapper>

+ 25 - 2
mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultMusicGroupSalaryController.java

@@ -30,8 +30,8 @@ public class TeacherDefaultMusicGroupSalaryController extends BaseController {
     @ApiOperation(value = "批量新增、修改教师乐团课薪酬")
     @PostMapping("/batchUpset")
     @PreAuthorize("@pcs.hasPermissions('teacherDefaultMusicGroupSalary/batchUpset')")
-    public Object batchUpset(@RequestBody List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries, Date startDate) {
-        teacherDefaultMusicGroupSalaryService.batchUpset(teacherDefaultMusicGroupSalaries, startDate);
+    public Object batchUpset(@RequestBody TeacherDefaultMusicGroupSalaryTemp teacherDefaultMusicGroupSalaryTemp) {
+        teacherDefaultMusicGroupSalaryService.batchUpset(teacherDefaultMusicGroupSalaryTemp.teacherDefaultMusicGroupSalaries, teacherDefaultMusicGroupSalaryTemp.startDate);
         return succeed();
     }
 
@@ -41,4 +41,27 @@ public class TeacherDefaultMusicGroupSalaryController extends BaseController {
     public Object queryPage(TeacherMusicGroupSalaryQueryInfo queryInfo) {
         return succeed(teacherDefaultMusicGroupSalaryService.queryPage(queryInfo));
     }
+
+    static class TeacherDefaultMusicGroupSalaryTemp{
+    	
+    	private List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries;
+    	
+    	private Date startDate;
+
+		public List<TeacherDefaultMusicGroupSalary> getTeacherDefaultMusicGroupSalaries() {
+			return teacherDefaultMusicGroupSalaries;
+		}
+
+		public void setTeacherDefaultMusicGroupSalaries(List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries) {
+			this.teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaries;
+		}
+
+		public Date getStartDate() {
+			return startDate;
+		}
+
+		public void setStartDate(Date startDate) {
+			this.startDate = startDate;
+		}
+    }
 }

+ 24 - 2
mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultVipGroupSalaryController.java

@@ -48,9 +48,31 @@ public class TeacherDefaultVipGroupSalaryController extends BaseController {
     @ApiOperation(value = "批量新增、修改教师vip课酬")
     @PostMapping("/upSet")
     @PreAuthorize("@pcs.hasPermissions('teacherDefaultVipGroupSalary/upSet')")
-    public Object setVipGroupSalary(@RequestBody List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries, Date startDate){
-        teacherDefaultVipGroupSalaryService.upSet(teacherDefaultVipGroupSalaries, startDate);
+    public Object setVipGroupSalary(@RequestBody TeacherDefaultVipGroupSalaryTemp teacherDefaultVipGroupSalaryTemp){
+        teacherDefaultVipGroupSalaryService.upSet(teacherDefaultVipGroupSalaryTemp.teacherDefaultVipGroupSalaries, teacherDefaultVipGroupSalaryTemp.startDate);
         return succeed();
     }
 
+    static class TeacherDefaultVipGroupSalaryTemp{
+    	
+    	private List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries;
+    	
+    	private Date startDate;
+
+		public List<TeacherDefaultVipGroupSalary> getTeacherDefaultVipGroupSalaries() {
+			return teacherDefaultVipGroupSalaries;
+		}
+
+		public void setTeacherDefaultVipGroupSalaries(List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries) {
+			this.teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaries;
+		}
+
+		public Date getStartDate() {
+			return startDate;
+		}
+
+		public void setStartDate(Date startDate) {
+			this.startDate = startDate;
+		}
+    }
 }

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -141,6 +141,13 @@ public class VipGroupManageController extends BaseController {
         return succeed(vipGroupService.getVipGroupDetail(vipGroupId));
     }
 
+    @ApiOperation(value = "vip课详情")
+    @GetMapping("/getVipGroupDetailForAudit")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupManage/getVipGroupDetailForAudit')")
+    public Object getVipGroupDetailForAudit(Long vipGroupId){
+        return succeed(vipGroupService.getVipGroupDetail(vipGroupId));
+    }
+
     @ApiOperation(value = "获取vip课考勤记录")
     @PostMapping("/getVipGroupAttendances")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/getVipGroupAttendances')")

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

@@ -45,14 +45,14 @@ public class StudentAttendanceController extends BaseController {
 
     @ApiOperation(value = "查询课程学生列表")
     @GetMapping("/findAttendanceStudentByCourseWithPage")
-    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/findAttendanceStudentByCourseWithPage')")
+    @PreAuthorize("@pcs.hasPermissions('studentAttendance/findAttendanceStudentByCourseWithPage')")
     public Object findAttendanceStudentByCourseWithPage(CourseScheduleQueryInfo queryInfo){
         return succeed(classGroupService.findAttendanceStudentByCourseWithPage(queryInfo));
     }
 
     @ApiOperation(value = "更新学生签到记录")
     @PostMapping("/updateStudentAttendances")
-    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/updateStudentAttendances')")
+    @PreAuthorize("@pcs.hasPermissions('studentAttendance/updateStudentAttendances')")
     public Object updateStudentAttendances(@RequestBody StudentAttendanceDto studentAttendanceInfo){
         studentAttendanceService.updateStudentAttendances(studentAttendanceInfo);
         return succeed();

+ 6 - 6
mec-web/src/main/resources/application.yml

@@ -30,12 +30,12 @@ spring:
 
   datasource:
     name: test
-#    url: jdbc:mysql://47.99.212.176:3306/mec_dev?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
-    url: jdbc:mysql://47.99.212.176:3306/mec_data_online?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
-    username: dayaData
-    password: dayaDataOnline2019
-#    username: mec_dev
-#    password: mec_dev
+#    url: jdbc:mysql://47.99.212.176:3306/mec_data_online?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
+#    username: dayaData
+#    password: dayaDataOnline2019
+    url: jdbc:mysql://120.26.238.168:3306/mec_dev?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
+    username: mec_dev
+    password: mec_dev
     # 使用druid数据源
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.cj.jdbc.Driver