Browse Source

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

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
zouxuan 5 years ago
parent
commit
ff452c0ab4
37 changed files with 937 additions and 322 deletions
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 12 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  3. 34 37
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  4. 15 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  5. 142 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassGroupDto.java
  6. 7 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java
  7. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysConfig.java
  8. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  9. 2 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/PlatformCashAccountDetailTypeEnum.java
  10. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  11. 4 3
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  12. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  13. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  14. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java
  15. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  16. 73 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  17. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java
  18. 20 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  19. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  20. 7 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  21. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  22. 123 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  23. 33 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  24. 4 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  25. 1 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  26. 221 208
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  27. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  28. 5 0
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  29. 18 11
      mec-biz/src/main/resources/config/mybatis/SysConfigMapper.xml
  30. 10 2
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  31. 2 0
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  32. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  33. 24 0
      mec-task/src/main/java/com/ym/mec/task/jobs/VipGroupAwardedMonthlyRewardsTask.java
  34. 42 0
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleRewardsRulesController.java
  35. 8 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  36. 6 2
      mec-web/src/main/java/com/ym/mec/web/controller/SysConfigController.java
  37. 15 6
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -236,9 +236,19 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<Map<Integer, Integer>> countTeacherNums(@Param("classGroupIds") String classGroupIds);
 
     /**
+     * @Author: Joburgess
+     * @Date: 2019/10/17
+     * @params [teacherId]
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassGroupDto>
+     * @describe 获取老师乐团班级
+     */
+    List<TeacherClassGroupDto> findTeacherMusicClassGroup(@Param("teacherId") Long teacherId);
+
+    /**
      * 根据老师编号列表获取小课数量
      * @param teacherIds
      * @return
      */
     List<Map<Integer, Long>> countTeacherVipNum(String teacherIds);
+
 }

+ 12 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -1,11 +1,10 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStudentMapper> {
 
@@ -37,4 +36,13 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
 	 * @param classGroupId
 	 */
 	void deleteByClassId(Integer classGroupId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/17
+	 * @params [classGroupId, userId]
+	 * @return int
+	 * @describe 删除班级上的指定学生
+	 */
+	int deleteStudentByClassGroupId(@Param("classGroupId") Long classGroupId,@Param("userId") Long userId);
 }

+ 34 - 37
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,15 +1,18 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
 
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
@@ -28,9 +31,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
      * @describe 根据时间区间获取教师上课的课程
      */
-    TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime,
-                                                     @Param("endTime") Date endTime,
-                                                     @Param("teacherId") Long teacherId);
+    TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("teacherId") Long teacherId);
 
     int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
 
@@ -55,16 +56,14 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 根据班级和上课日期获取课程计划
      */
-    List<CourseSchedule> findByClassGroupAndDate(@Param("classDates") List<Date> classDates,
-                                                 @Param("classGroupId") Long classGroupId);
+    List<CourseSchedule> findByClassGroupAndDate(@Param("classDates") List<Date> classDates, @Param("classGroupId") Long classGroupId);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/17
      * 根据日期获取学生当日排课信息
      */
-    List<CourseScheduleDto> getStudentCourseSchedulesWithDate(@Param("classDate") Date classDate,
-                                                              @Param("studentId") Long studentId);
+    List<CourseScheduleDto> getStudentCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("studentId") Long studentId);
 
     /**
      * @Author: Joburgess
@@ -80,8 +79,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @Date: 2019/9/17
      * 根据日期获取老师当日排课信息
      */
-    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate,
-                                                              @Param("teacherId") Long teacherId);
+    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId);
 
     /**
      * @Author: Joburgess
@@ -90,8 +88,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      * @describe 根据
      */
-    List<CourseScheduleDto> getCourseSchedulesWithDate(Map<String,Object> params);
-    int countCourseSchedulesWithDate(Map<String,Object> params);
+    List<CourseScheduleDto> getCourseSchedulesWithDate(Map<String, Object> params);
+
+    int countCourseSchedulesWithDate(Map<String, Object> params);
 
     /**
      * @Author: Joburgess
@@ -105,25 +104,21 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @Date: 2019/9/17
      * 根据月份获取乐团在该月有课的日期
      */
-    List<Date> getCourseScheduleDateByMonth(@Param("musicGroupID") Long musicGroupID,
-                                            @Param("month") Date month);
+    List<Date> getCourseScheduleDateByMonth(@Param("musicGroupID") Long musicGroupID, @Param("month") Date month);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/27
      * 获取学生有课日期
      */
-    List<Date> getStudentCourseScheduleDate(@Param("studentId") Long studentId,
-                                            @Param("month") Date month,
-                                            @Param("isAttend") Integer isAttend);
+    List<Date> getStudentCourseScheduleDate(@Param("studentId") Long studentId, @Param("month") Date month, @Param("isAttend") Integer isAttend);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/27
      * 获取教师有课日期
      */
-    List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId,
-                                            @Param("month") Date month);
+    List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId, @Param("month") Date month);
 
     /**
      * @Author: Joburgess
@@ -132,8 +127,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return java.util.List<java.util.Date>
      * @describe 获取当月有课的日期
      */
-    List<Date> getCourseScheduleDate(@Param("month") Date month,
-                                     @Param("organId") Long organId);
+    List<Date> getCourseScheduleDate(@Param("month") Date month, @Param("organId") Long organId);
 
     /**
      * @Author: Joburgess
@@ -147,8 +141,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @Date: 2019/9/24
      * 根据日期获取对应老师的课程
      */
-    List<CourseSchedule> findTeacherCoursesInDates(@Param("dates") List<Date> dates,
-                                                   @Param("teacherId") Long teacherId);
+    List<CourseSchedule> findTeacherCoursesInDates(@Param("dates") List<Date> dates, @Param("teacherId") Long teacherId);
 
     /**
      * @Author: Joburgess
@@ -162,8 +155,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @Date: 2019/9/24
      * 获取在指定时间段内存在重复的课程
      */
-    List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates,
-                                                 @Param("startClassTime") Date startClassTime,
+    List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates, @Param("startClassTime") Date startClassTime,
                                                  @Param("endClassTime") Date endClassTime);
 
     /**
@@ -181,33 +173,32 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> findCourseSchedulesByIds(@Param("ids") Long[] ids);
 
     /**
-     * 获取班级的课程计划
-     * @param classGroupList
+     * 获取班级未开始的课程计划
+     * @param classGroupTeacherMapperList
      * @return
      */
-    List<CourseSchedule> findClassGroupCourseSchedules(@Param("classGroupList") List classGroupList);
+    List<CourseSchedule> findClassGroupNoStartCourseSchedules(@Param("classGroupTeacherMapperList") List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/30
      * 获取学生上课记录
      */
-    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleRecords(Map<String,Object> params);
+    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleRecords(Map<String, Object> params);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/30
      * 统计学生上课记录
      */
-    int countStudentCourseScheduleRecords(Map<String,Object> params);
+    int countStudentCourseScheduleRecords(Map<String, Object> params);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/30
      * 获取学生未上课记录
      */
-    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleNotStartRecords(@Param("userId") Long userId,
-                                                                                  @Param("date") Date date);
+    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleNotStartRecords(@Param("userId") Long userId, @Param("date") Date date);
 
     /**
      * @Author: Joburgess
@@ -243,6 +234,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     String findClassTypeByCourse(@Param("courseScheduleId") Long courseScheduleId);
 
-
+    /**
+     * 根据课程状态查询老师指定月份的VIP课程记录数
+     * @param monthDate 指定月份
+     * @param status 课程状态
+     * @return
+     */
+    List<Map<Integer, Integer>> queryVipGroupTeachereClassTimesByMonth(@Param("monthDate") Date monthDate,@Param("status") CourseStatusEnum status);
 
 }

+ 15 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -36,7 +36,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * @param musicGroupId
 	 * @return
 	 */
-	List<Map<Integer,Integer>> countPayNum(@Param("musicGroupId") String musicGroupId);
+	List<Map<Integer, Integer>> countPayNum(@Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 学生报名缴费金额详情
@@ -62,10 +62,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 	 * @param musicGroupId
 	 * @return
 	 */
-	List<Map<Integer,Long>> getNoClassStuCountBySubjectId(@Param("musicGroupId") String musicGroupId);
+	List<Map<Integer, Long>> getNoClassStuCountBySubjectId(@Param("musicGroupId") String musicGroupId);
 
 	/**
 	 * 根据乐团id和user_id 更新
+	 *
 	 * @param studentRegistration
 	 * @return
 	 */
@@ -73,6 +74,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
 	/**
 	 * 查询学生信息
+	 *
 	 * @param userId
 	 * @return
 	 */
@@ -80,7 +82,8 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
 	/**
 	 * 查询用户指定乐团的报名信息
-	 * @param userId 用户编号
+	 *
+	 * @param userId       用户编号
 	 * @param musicGroupId 乐团编号
 	 * @return
 	 */
@@ -98,8 +101,17 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
 	/**
 	 * 查询用户是否存在
+	 *
 	 * @param phone
 	 * @return
 	 */
 	SysUser getSysUserByPhone(String phone);
+
+	/**
+	 * 获取班级学生
+	 * @param musicGroupId
+	 * @param classGroupId
+	 * @return
+	 */
+	List<StudentRegistration> findClassGroupStu(@Param("musicGroupId") String musicGroupId, @Param("classGroupId") Integer classGroupId);
 }

+ 142 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassGroupDto.java

@@ -0,0 +1,142 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/17
+ */
+public class TeacherClassGroupDto {
+
+    @ApiModelProperty(value = "班级编号")
+    private Long classGroupId;
+
+    @ApiModelProperty(value = "班级名称")
+    private String classGroupName;
+
+    @ApiModelProperty(value = "学生数量")
+    private Integer studentNum;
+
+    @ApiModelProperty(value = "当前课时")
+    private Integer currentClassTimes;
+
+    @ApiModelProperty(value = "课程总数")
+    private Integer totalClassTimes;
+
+    @ApiModelProperty(value = "乐团编号")
+    private Long musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "学校编号")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "学校名称")
+    private String schoolName;
+
+    @ApiModelProperty(value = "科目编号列表")
+    private String subjectIdList;
+
+    @ApiModelProperty(value = "科目名称")
+    private String subjectNames;
+
+    @ApiModelProperty(value = "连续3节课未签到人数")
+    private Integer threeClassNoAttendanceStudentNum;
+
+    public String getSubjectIdList() {
+        return subjectIdList;
+    }
+
+    public void setSubjectIdList(String subjectIdList) {
+        this.subjectIdList = subjectIdList;
+    }
+
+    public Long getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Long classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public Integer getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Integer studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
+    public Long getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(Long musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public String getSubjectNames() {
+        return subjectNames;
+    }
+
+    public void setSubjectNames(String subjectNames) {
+        this.subjectNames = subjectNames;
+    }
+
+    public Integer getThreeClassNoAttendanceStudentNum() {
+        return threeClassNoAttendanceStudentNum;
+    }
+
+    public void setThreeClassNoAttendanceStudentNum(Integer threeClassNoAttendanceStudentNum) {
+        this.threeClassNoAttendanceStudentNum = threeClassNoAttendanceStudentNum;
+    }
+}

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
+import io.swagger.annotations.ApiModelProperty;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
@@ -23,19 +25,19 @@ public class CourseScheduleRewardsRules {
 	/**  */
 	private Integer id;
 
-	/** 名称 */
+	@ApiModelProperty(value = "名称", required = true)
 	private String name;
 
-	/** 课程类型 */
+	@ApiModelProperty(value = "课程类型", required = true)
 	private CourseScheduleType courseScheduleType;
 
-	/** 奖励方式(每节课奖励、一次性奖励) */
+	@ApiModelProperty(value = "奖励方式(PER, TOTAL)", required = true)
 	private RewardMode rewardMode;
 
-	/** 分部列表(用逗号分开) */
+	@ApiModelProperty(value = "分部列表(用逗号分开)", required = true)
 	private String organIdList;
 
-	/** 梯度奖励规则 */
+	@ApiModelProperty(value = "梯度奖励规则", required = true)
 	private String rewardsRulesJson;
 
 	/**  */

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysConfig.java

@@ -30,6 +30,9 @@ public class SysConfig {
 	/** 修改时间 */
 	private java.util.Date modifyOn;
 	
+	@ApiModelProperty(value = "消息组", required = true)
+	private String group;
+	
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -78,6 +81,14 @@ public class SysConfig {
 		return this.modifyOn;
 	}
 			
+	public String getGroup() {
+		return group;
+	}
+
+	public void setGroup(String group) {
+		this.group = group;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -98,6 +98,10 @@ public class VipGroup {
 
 	@ApiModelProperty(value = "赠送课时类型")
 	private TeachModeEnum giveTeachMode;
+	
+	private Integer organId;
+	
+	private Integer schoolId;
 
 	public String getVipGroupActivityName() {
 		return vipGroupActivityName;
@@ -307,6 +311,22 @@ public class VipGroup {
 		this.giveTeachMode = giveTeachMode;
 	}
 
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
+	public Integer getSchoolId() {
+		return schoolId;
+	}
+
+	public void setSchoolId(Integer schoolId) {
+		this.schoolId = schoolId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 2 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/PlatformCashAccountDetailTypeEnum.java

@@ -6,11 +6,8 @@ import com.ym.mec.common.enums.BaseEnum;
  * 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账)
  */
 public enum PlatformCashAccountDetailTypeEnum implements BaseEnum<String, PlatformCashAccountDetailTypeEnum> {
-	RECHARGE("RECHARGE", "充值"),
-	WITHDRAW("WITHDRAW", "提现"),
-	PAY_FEE("PAY_FEE", "缴费"),
-	FILL_ACCOUNT("FILL_ACCOUNT", "人工补账"),
-	REFUNDS("REFUNDS", "退费");
+	RECHARGE("RECHARGE", "充值"), WITHDRAW("WITHDRAW", "提现"), PAY_FEE("PAY_FEE", "缴费"), FILL_ACCOUNT("FILL_ACCOUNT", "人工补账"), REFUNDS("REFUNDS", "退费"), REWARDS(
+			"REWARDS", "奖励");
 
 	private String code;
 

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

@@ -200,4 +200,13 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param musicGroupId
      */
     void addMusicGroupTeam(Integer teacherId, String musicGroupId) throws Exception;
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/17
+     * @params []
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassGroupDto>
+     * @describe 获取老师所在班级列表
+     */
+    List<TeacherClassGroupDto> findTeacherClassGroups();
 }

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -129,12 +130,12 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
     void courseSwapWithDay(Date day1,Date day2);
 
     /**
-     * 获取班级的课程计划
+     * 获取班级未开始的课程计划
      *
-     * @param classGroupList
+     * @param classGroupTeacherMapperList
      * @return
      */
-    List<CourseSchedule> findClassGroupCourseSchedules(List classGroupList);
+    List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
 
     /**

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
+import org.apache.ibatis.annotations.Param;
 
 public interface StudentRegistrationService extends BaseService<Long, StudentRegistration> {
 
@@ -130,4 +131,13 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @return
 	 */
     Integer insertStudent(StudentRegistration studentRegistration) throws Exception;
+
+	/**
+	 * 获取班级学生
+	 * @param musicGroupId
+	 * @param classGroupId
+	 * @return
+	 */
+	List<StudentRegistration> findClassGroupStu(String musicGroupId, Integer classGroupId);
+
 }

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -56,9 +56,19 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 	public static final String DEFAULT_PASSWORD = "default_password";
 
 	/**
-	 * 梯度结算规则设置
+	 * 单技课梯度结算规则设置
 	 */
-	public static final String MUSIC_GRADIENT_SETTLEMENT_RULE = "music_gradient_settlement_rule";
+	public static final String SIGLE_GRADIENT_SETTLEMENT_RULE = "sigle_gradient_settlement_rule";
+
+	/**
+	 * 合奏课梯度结算规则设置
+	 */
+	public static final String MAX_GRADIENT_SETTLEMENT_RULE = "max_gradient_settlement_rule";
+
+	/**
+	 * 小班课梯度结算规则设置
+	 */
+	public static final String HIGH_GRADIENT_SETTLEMENT_RULE = "high_gradient_settlement_rule";
 
 	/**
 	 * @params paramName

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java

@@ -9,6 +9,12 @@ import com.ym.mec.biz.dal.enums.TransTypeEnum;
 import com.ym.mec.common.service.BaseService;
 
 public interface SysUserCashAccountDetailService extends BaseService<Long, SysUserCashAccountDetail> {
+	
+	final static String MUSIC_GROUP = "group";
+	
+	final static String ORGAN = "organ";
+	
+	final static String COURSE_SCHEDULE = "cs";
 
 	SysUserCashAccountDetail queryDetailByTransNo(String transNo);
 

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

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -53,6 +55,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @Override
     public BaseDAO<Integer, ClassGroup> getDAO() {
@@ -471,6 +475,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
+    public List<TeacherClassGroupDto> findTeacherClassGroups() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(user)){
+            throw new BizException("请登录");
+        }
+
+        List<TeacherClassGroupDto> teacherMusicClassGroup = classGroupDao.findTeacherMusicClassGroup(user.getId().longValue());
+
+
+        return null;
+    }
+
+    @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean updateClassStudentNum(Long classGroupId, Integer num) {
         ClassGroup classGroup=classGroupDao.lockClassGroup(classGroupId);

+ 73 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -1,16 +1,25 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -18,6 +27,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
     @Autowired
     private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+    @Autowired
+    private CourseScheduleService courseScheduleService;
+    @Autowired
+    private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
     @Override
     public BaseDAO<Long, ClassGroupTeacherMapper> getDAO() {
@@ -39,14 +52,67 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
-        for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
-            List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaryList = classGroupTeacherMapper.getTeacherDefaultMusicGroupSalaryList();
-            for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalaryList) {
-                
+        Date date = new Date();
+
+        List<ClassGroupTeacherSalary> classGroupTeacherSalaryList = new ArrayList<>();
+        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+
+        List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupTeacherMapperList);
+        for (CourseSchedule classGroupNoStartCourseSchedule : classGroupNoStartCourseSchedules) {
+
+            if (!classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.SINGLE) &&
+                    !classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MIX) &&
+                    !classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH)
+            ) {
+                continue;
             }
+            //课时长度
+            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getEndClassTime(), classGroupNoStartCourseSchedule.getStartClassTime());
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                if (!classGroupTeacherMapper.getClassGroupId().equals(classGroupNoStartCourseSchedule.getClassGroupId())) {
+                    continue;
+                }
+                BigDecimal salary = new BigDecimal("0");
+                List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaryList = classGroupTeacherMapper.getTeacherDefaultMusicGroupSalaryList();
+                for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalaryList) {
+                    //对应基准课酬
+                    BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                    //基准课酬
+                    if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                        salary = new BigDecimal(duration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);
+                        break;
+                    }
+                    //阶梯课酬
+                    if (duration >= teacherDefaultMusicGroupSalary.getDurationMin() && duration <= teacherDefaultMusicGroupSalary.getDurationMin()) {
+                        salary = baseSalary;
+                        break;
+                    }
+                }
+
+                //班级与老师课酬表
+//                ClassGroupTeacherSalary classGroupTeacherSalary = new ClassGroupTeacherSalary();
+//                classGroupTeacherSalary.setMusicGroupId(classGroupTeacherMapper.getMusicGroupId());
+//                classGroupTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
+//                classGroupTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+//                classGroupTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+//                classGroupTeacherSalary.setDuration(duration);
+//                classGroupTeacherSalary.setSalary(salary);
+//                classGroupTeacherSalary.setCreateTime(date);
+//                classGroupTeacherSalary.setUpdateTime(date);
+//                classGroupTeacherSalaryList.add(classGroupTeacherSalary);
 
-            classGroupTeacherMapperDao.update(classGroupTeacherMapper);
+                //课程与老师薪水表
+                CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                courseScheduleTeacherSalary.setCourseScheduleId(classGroupNoStartCourseSchedule.getId());
+                courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+                courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+                courseScheduleTeacherSalary.setExpectSalary(salary);
+                courseScheduleTeacherSalary.setCreateTime(date);
+                courseScheduleTeacherSalary.setCreateUpdate(date);
+                courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+            }
         }
+        courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
         return true;
     }
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java

@@ -33,7 +33,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 		List<CourseScheduleRewardsRules> CourseScheduleRewardsRulesList = courseScheduleRewardsDao.query(organId, courseScheduleType);
 
 		if (CourseScheduleRewardsRulesList == null || CourseScheduleRewardsRulesList.size() == 0) {
-			return null;
+			return new BigDecimal(0);
 		}
 
 		CourseScheduleRewardsRules courseScheduleRewardsRules = CourseScheduleRewardsRulesList.get(0);

+ 20 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.entity.SysConfig;
@@ -24,6 +25,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -389,8 +391,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-    public List<CourseSchedule> findClassGroupCourseSchedules(List classGroupList) {
-		return courseScheduleDao.findClassGroupCourseSchedules(classGroupList);
+    public List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
+		return courseScheduleDao.findClassGroupNoStartCourseSchedules(classGroupTeacherMapperList);
     }
 
     /**
@@ -461,6 +463,22 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	public void courseScheduleCommplaint(CourseScheduleComplaints courseScheduleComplaints) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 
+		if(Objects.isNull(user)){
+			throw new BizException("请登录");
+		}
+
+		if(Objects.isNull(courseScheduleComplaints.getCourseScheduleId())){
+			throw new BizException("请指定需要投诉的课程");
+		}
+
+		if(StringUtils.isBlank(courseScheduleComplaints.getReason())){
+			throw new BizException("请说明投诉原因");
+		}
+
+		if(StringUtils.length(courseScheduleComplaints.getReason())>150){
+			throw new BizException("字符长度超限");
+		}
+
 		courseScheduleComplaints.setUserId(user.getId());
 
 		CourseScheduleComplaints byUserAndCourse = courseScheduleComplaintsDao.findByUserAndCourse(courseScheduleComplaints.getUserId().longValue(), courseScheduleComplaints.getCourseScheduleId());

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -39,6 +39,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 	private SysUserCashAccountService sysUserCashAccountService;
 	@Autowired
 	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
+	@Autowired
+	private StudentPaymentOrderDao studentPaymentOrderDao;
 
 	private static final Logger LOGGER = LoggerFactory
 			.getLogger(CourseScheduleTeacherSalaryServiceImpl.class);
@@ -235,6 +237,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 				sysUserCashAccountService.updateBalance(studentPayment.getUserId(),returnPrice);
 				SysUserCashAccount studentCashAccount = sysUserCashAccountService.get(studentPayment.getUserId().intValue());
 				SysUserCashAccountDetail studentAccountDetail=new SysUserCashAccountDetail();
+//				studentAccountDetail.setTransNo(studentPayment.getT());
 				studentAccountDetail.setUserId(studentPayment.getUserId());
 				studentAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
 				studentAccountDetail.setStatus(DealStatusEnum.SUCCESS);

+ 7 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -179,8 +179,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Override
 	public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
 		List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
-		//获取学员在该乐团续费状态
-		musicCardDtos.forEach(e->{
+		// 获取学员在该乐团续费状态
+		musicCardDtos.forEach(e -> {
 			MusicGroupStudentFee groupStudentFee = musicGroupStudentFeeDao.findByUser(userId, e.getMusicGroupId());
 			if(groupStudentFee != null){
 				e.setPaymentStatus(musicGroupStudentFeeDao.findByUser(userId, e.getMusicGroupId()).getPaymentStatus());
@@ -232,8 +232,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		for (StudentPaymentOrder order : studentPaymentOrders) {
 			sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount());
 			// 增加交易流水
-			sysUserCashAccountDetailService.addCashAccountDetail(order.getUserId(), order.getActualAmount(), "", "", PlatformCashAccountDetailTypeEnum.REFUNDS,
-					null, DealStatusEnum.SUCCESS, "取消乐团");
+			sysUserCashAccountDetailService.addCashAccountDetail(order.getUserId(), order.getActualAmount(), SysUserCashAccountDetailService.MUSIC_GROUP
+					+ musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "取消乐团");
 		}
 
 		return true;
@@ -380,8 +380,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 				}
 				if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
 					// 增加交易流水
-					sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(), "", "",
-							PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+					sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(),
+							SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null,
+							DealStatusEnum.SUCCESS, "退出乐团");
 				}
 			}
 		}

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -422,4 +422,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
     }
 
+    @Override
+    public List<StudentRegistration> findClassGroupStu(String musicGroupId, Integer classGroupId) {
+        return studentRegistrationDao.findClassGroupStu(musicGroupId, classGroupId);
+    }
 }

+ 123 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1,14 +1,93 @@
 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;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.dal.page.*;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.StudentApplyRefundsDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentVipGroupPaymentDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
+import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
+import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
+import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
+import com.ym.mec.biz.dal.dao.VipGroupClassGroupMapperDao;
+import com.ym.mec.biz.dal.dao.VipGroupDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
+import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
+import com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo;
+import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
+import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
+import com.ym.mec.biz.dal.dto.VipGroupBuyParamsDto;
+import com.ym.mec.biz.dal.dto.VipGroupCostCountDto;
+import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
+import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
+import com.ym.mec.biz.dal.dto.VipGroupSalaryBaseInfo;
+import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
+import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentVipGroupPayment;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+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.entity.VipGroupCategory;
+import com.ym.mec.biz.dal.entity.VipGroupClassGroupMapper;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
+import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.CourseScheduleRewardsRulesService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.PayService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -17,15 +96,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
@@ -81,6 +151,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
 	@Autowired
 	private PayService payService;
+	@Autowired
+	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+
+	@Autowired
+	private CourseScheduleRewardsRulesService courseScheduleRewardsRulesService;
+
+	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
 
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
@@ -596,7 +673,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     	if(Objects.isNull(studentApplyRefunds.getId())){
     		throw new BizException("请指定退费订单!");
 		}
+
 		StudentApplyRefunds oldStudentApplyRefunds=studentApplyRefundsDao.get(studentApplyRefunds.getId());
+
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(oldStudentApplyRefunds.getOrigPaymentOrderId());
+		if(null==studentPaymentOrder){
+			throw new BizException("未找到原订单信息!");
+		}
+
 		oldStudentApplyRefunds.setStatus(studentApplyRefunds.getStatus());
 		if(null==studentApplyRefunds.getActualAmount()){
 			oldStudentApplyRefunds.setActualAmount(oldStudentApplyRefunds.getExpectAmount());
@@ -617,6 +701,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
 				sysUserCashAccountDetail.setAttribute(oldStudentApplyRefunds.getId().toString());
 				sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
+
+				classGroupStudentMapperDao.deleteStudentByClassGroupId(studentPaymentOrder.getClassGroupId().longValue(),
+						studentPaymentOrder.getUserId().longValue());
 				break;
 			case REJECT:
 
@@ -734,7 +821,27 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public boolean awardedMonthlyRewards() {
-		return false;
+		List<Map<Integer, Integer>> list = courseScheduleDao.queryVipGroupTeachereClassTimesByMonth(new Date(), CourseStatusEnum.OVER);
+
+		if (list != null && list.size() > 0) {
+
+			Integer organId = null, teacherId = null, coursesTimes = 0;
+
+			for (Map<Integer, Integer> map : list) {
+				organId = map.get("organ_id_");
+				teacherId = map.get("teacher_id_");
+				coursesTimes = map.get("times");
+
+				BigDecimal decimal = courseScheduleRewardsRulesService.queryRewardsAmount(organId, CourseScheduleType.VIP, coursesTimes);
+				if (decimal.doubleValue() > 0) {
+					sysUserCashAccountDetailService.addCashAccountDetail(teacherId, decimal, "", SysUserCashAccountDetailService.ORGAN,
+							PlatformCashAccountDetailTypeEnum.REWARDS, null, DealStatusEnum.SUCCESS, "分部奖励");
+				}
+			}
+		}
+
+		return true;
 	}
 }

+ 33 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -454,6 +454,39 @@
         WHERE FIND_IN_SET(vg.user_id_,#{teacherIds}) GROUP BY user_id_
     </select>
 
+    <resultMap id="TeacherClassGroupDto" type="com.ym.mec.biz.dal.dto.TeacherClassGroupDto">
+        <result property="classGroupId" column="class_group_id_"/>
+        <result property="classGroupName" column="class_group_name_"/>
+        <result property="studentNum" column="student_num_"/>
+        <result property="currentClassTimes" column="current_class_times_"/>
+        <result property="totalClassTimes" column="total_class_times_"/>
+        <result property="musicGroupId" column="music_group_id_"/>
+        <result property="musicGroupName" column="music_group_name_"/>
+        <result property="schoolId" column="school_id_"/>
+        <result property="schoolName" column="school_name_"/>
+        <result property="subjectIdList" column="subject_id_list_"/>
+    </resultMap>
+
+    <select id="findTeacherMusicClassGroup" resultType="com.ym.mec.biz.dal.dto.TeacherClassGroupDto">
+        SELECT
+            cg.id_ class_group_id_,
+            cg.name_ class_group_name_,
+            cg.student_num_,
+            cg.current_class_times_,
+            cg.total_class_times_,
+            cg.subject_id_list_,
+            mg.id_ music_group_id_,
+            mg.name_ music_group_name_,
+            s.id_ school_id_,
+            s.name_ school_name_
+        FROM
+            class_group_teacher_mapper cgtm
+            LEFT JOIN class_group cg ON cgtm.class_group_id_=cg.id_
+            LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+            LEFT JOIN school s ON mg.school_id_=s.id_
+        WHERE cgtm.user_id_=#{teacherId} AND cg.type_!="VIP" AND cg.type_!="DEMO"
+    </select>
+
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">
         UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{updateTime} WHERE id_ = #{id} AND

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

@@ -83,4 +83,8 @@
     <delete id="deleteStudentByMusicGroupId" parameterType="map">
         DELETE FROM class_group_student_mapper WHERE class_group_id_ in (select id_ from class_group where music_group_id_ = #{musicGroupId}) and user_id_ = #{userId}
     </delete>
+
+    <delete id="deleteStudentByClassGroupId">
+        DELETE FROM class_group_student_mapper WHERE class_group_id_=#{classGroupId} AND user_id_=#{userId}
+    </delete>
 </mapper>

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

@@ -96,7 +96,7 @@
         (id_,music_group_id_,class_group_id_,teacher_role_,user_id_,salary_,create_time_,update_time_)
         VALUES
         <foreach collection="classGroupTeacherMapperList" item="item" index="index" separator=",">
-            (#{item.id},#{item.musicGroupId},#{item.classGroupId},#{item.teacherRole},#{item.userId},#{item.salary},#{item.createTime},#{item.updateTime})
+            (#{item.id},#{item.musicGroupId},#{item.classGroupId},#{item.teacherRole},#{item.userId},#{item.salary},NOW(),NOW())
         </foreach>
     </insert>
 

+ 221 - 208
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -53,13 +53,15 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="CourseSchedule">
-		SELECT * FROM course_schedule WHERE id_ = #{id} 
-	</select>
+        SELECT * FROM course_schedule WHERE id_ = #{id}
+    </select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="CourseSchedule">
-		SELECT * FROM course_schedule ORDER BY id_
-	</select>
+        SELECT *
+        FROM course_schedule
+        ORDER BY id_
+    </select>
 
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" useGeneratedKeys="true" keyColumn="id"
@@ -74,7 +76,8 @@
         VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{teacherId},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{name},#{teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{studentNum},#{leaveStudentNum})
     </insert>
 
-    <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+    <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
         INSERT INTO course_schedule
         (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_)
         VALUE
@@ -129,14 +132,14 @@
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
-		DELETE FROM course_schedule WHERE id_ = #{id}
-	</delete>
+        DELETE FROM course_schedule WHERE id_ = #{id}
+    </delete>
 
     <delete id="deleteCourseSchedulesByMusicGroupID">
         DELETE
-          cs
+        cs
         FROM
-            course_schedule cs
+        course_schedule cs
         INNER JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cg.music_group_id_=#{musicGroupID}
     </delete>
@@ -149,8 +152,9 @@
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM course_schedule
-	</select>
+        SELECT COUNT(*)
+        FROM course_schedule
+    </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.TeacherAttendanceDto" id="TeacherAttendanceViewUtilEntity">
         <result property="courseScheduleId" column="id_"/>
@@ -158,7 +162,8 @@
         <result property="classDate" column="class_date_"/>
         <result property="startClassTime" column="start_class_time_"/>
         <result property="endClassTime" column="end_class_time_"/>
-        <result property="courseStatus" column="course_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="courseStatus" column="course_status_"
+                typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="classId" column="class_id"/>
         <result property="className" column="class_name"/>
         <result property="classType" column="class_type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -174,24 +179,24 @@
     <select id="getCurrentCourseDetail"
             resultMap="TeacherAttendanceViewUtilEntity">
         SELECT
-            cs.id_ ,
-            cs.name_ course_schedule_name_,
-            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.status_ course_status_,
-            cg.id_ class_id,
-            cg.name_ class_name,
-            cs.type_ class_type,
-            mg.id_ music_group_id,
-            mg.name_ music_group_name,
-            s.id_ school_id_,
-            s.address_,
-            s.longitude_latitude_,
-            su.username_ teacher_name_,
-            ta.sign_in_time_
+        cs.id_ ,
+        cs.name_ course_schedule_name_,
+        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.status_ course_status_,
+        cg.id_ class_id,
+        cg.name_ class_name,
+        cs.type_ class_type,
+        mg.id_ music_group_id,
+        mg.name_ music_group_name,
+        s.id_ school_id_,
+        s.address_,
+        s.longitude_latitude_,
+        su.username_ teacher_name_,
+        ta.sign_in_time_
         FROM
-            course_schedule cs
+        course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
         LEFT JOIN school s ON mg.school_id_=s.id_
@@ -203,24 +208,24 @@
     <select id="getTeacherCourseByDateSpeed"
             resultMap="TeacherAttendanceViewUtilEntity">
         SELECT
-            cs.id_ ,
-            cs.name_ course_schedule_name_,
-            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.status_ course_status_,
-            cg.id_ class_id,
-            cg.name_ class_name,
-            cs.type_ class_type,
-            mg.id_ music_group_id,
-            mg.name_ music_group_name,
-            s.id_ school_id_,
-            s.address_,
-            s.longitude_latitude_,
-            su.username_ teacher_name_,
-            ta.sign_in_time_
+        cs.id_ ,
+        cs.name_ course_schedule_name_,
+        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.status_ course_status_,
+        cg.id_ class_id,
+        cg.name_ class_name,
+        cs.type_ class_type,
+        mg.id_ music_group_id,
+        mg.name_ music_group_name,
+        s.id_ school_id_,
+        s.address_,
+        s.longitude_latitude_,
+        su.username_ teacher_name_,
+        ta.sign_in_time_
         FROM
-            course_schedule cs
+        course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
         LEFT JOIN school s ON mg.school_id_=s.id_
@@ -243,15 +248,15 @@
 
     <select id="getCurrentCourseStudents" resultMap="studentAttendanceViewUtilEntity">
         SELECT
-            cgsm.class_group_id_,
-            su.id_ student_id_,
-            su.username_,
-            mg.id_ music_group_id_,
-            s.id_ subject_id_,
-            s.name_ subject_name_,
-            cgsm.status_
+        cgsm.class_group_id_,
+        su.id_ student_id_,
+        su.username_,
+        mg.id_ music_group_id_,
+        s.id_ subject_id_,
+        s.name_ subject_name_,
+        cgsm.status_
         FROM
-            class_group cg
+        class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
@@ -273,29 +278,29 @@
 
     <select id="getCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cg.id_ seal_class_id_,
-            cs.name_,
-            cs.type_,
-            cs.id_,
-            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.status_,
-            cs.student_num_,
-            cs.leave_student_num_,
-            cg.student_num_ total_student_num_,
-	        su.username_ teacher_name_,
-	        ta.sign_in_status_ attendance_status_
+        cg.id_ seal_class_id_,
+        cs.name_,
+        cs.type_,
+        cs.id_,
+        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.status_,
+        cs.student_num_,
+        cs.leave_student_num_,
+        cg.student_num_ total_student_num_,
+        su.username_ teacher_name_,
+        ta.sign_in_status_ attendance_status_
         FROM
-            music_group mg
-            LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
-            LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
-            LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
-	        LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
+        music_group mg
+        LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
+        LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+        LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
+        LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
         WHERE
-            mg.organ_id_ = #{organId}
-            AND cs.id_ IS NOT NULL
-            AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
+        mg.organ_id_ = #{organId}
+        AND cs.id_ IS NOT NULL
+        AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
         <include refid="global.limit"/>
     </select>
 
@@ -314,65 +319,66 @@
 
     <select id="getStudentCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cgsm.class_group_id_ seal_class_id_,
-            cs.name_,
-            cs.type_,
-            cs.id_,
-            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.status_,
-	        su.username_ teacher_name_,
-	        cgsm.status_ attendance_status_,
-	        cs.teach_mode_
+        cgsm.class_group_id_ seal_class_id_,
+        cs.name_,
+        cs.type_,
+        cs.id_,
+        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.status_,
+        su.username_ teacher_name_,
+        cgsm.status_ attendance_status_,
+        cs.teach_mode_
         FROM
-            course_schedule cs
-            LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
-            LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
+        course_schedule cs
+        LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
+        LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
         WHERE
-            cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
-            AND cgsm.user_id_ = #{studentId}
+        cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+        AND cgsm.user_id_ = #{studentId}
     </select>
 
     <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cg.id_ seal_class_id_,
-            cg.name_,
-            su.username_ teacher_name_,
-            cs.type_,
-            cs.id_,
-            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.status_,
-	        s.name_ school_name_,
-	        if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
-	        if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
-	        cs.teach_mode_
+        cg.id_ seal_class_id_,
+        cg.name_,
+        su.username_ teacher_name_,
+        cs.type_,
+        cs.id_,
+        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.status_,
+        s.name_ school_name_,
+        if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
+        if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
+        cs.teach_mode_
         FROM
-            course_schedule cs
-            LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
-            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
-            LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
-            LEFT JOIN school s ON mg.school_id_=s.id_
-	        LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
+        course_schedule cs
+        LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
+        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+        LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+        LEFT JOIN school s ON mg.school_id_=s.id_
+        LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
         WHERE
-            cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
-            AND cs.actual_teacher_id_ = #{teacherId}
+        cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+        AND cs.actual_teacher_id_ = #{teacherId}
     </select>
 
     <select id="getCourseScheduleDateByMonth" resultType="java.util.Date">
         SELECT
-            cs.class_date_
+        cs.class_date_
         FROM
-            course_schedule cs
+        course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE DATE_FORMAT(cs.class_date_,'%Y%m')=DATE_FORMAT(#{month},'%Y%m')
         AND cg.music_group_id_=#{musicGroupID}
         GROUP BY cs.class_date_
     </select>
 
-    <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" resultType="int">
+    <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule"
+            resultType="int">
         SELECT
         COUNT( * )
         FROM
@@ -430,8 +436,8 @@
             DATE_FORMAT(#{date},'%Y-%m-%d')
         </foreach>
         AND (
-          DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' )
-          OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
+        DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' )
+        OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
         )=0
     </select>
 
@@ -447,34 +453,36 @@
         </foreach>
     </select>
 
-    <!-- 获取班级的课程 -->
-    <select id="findClassGroupCourseSchedules" resultMap="CourseSchedule">
+    <!-- 获取班级未开始的课程 -->
+    <select id="findClassGroupNoStartCourseSchedules" resultMap="CourseSchedule">
         SELECT * FROM course_schedule
-        WHERE class_group_id_ IN
-        <foreach collection="classGroupList" item="classGroup" index="index" open="(" close=")" separator=",">
-            #{classGroup.id}
+        WHERE status_ = 'NOT_START'
+        AND class_group_id_ IN
+        <foreach collection="classGroupTeacherMapperList" item="classGroupTeacherMapper" index="index" open="("
+                 close=")" separator=",">
+            #{classGroupTeacherMapper.classGroupId}
         </foreach>
     </select>
 
     <select id="getStudentCourseScheduleDate" resultType="java.util.Date">
         SELECT
-            cs.class_date_
+        cs.class_date_
         FROM
-            class_group_student_mapper cgsm
-            LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
+        class_group_student_mapper cgsm
+        LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
         WHERE
-            cgsm.user_id_ = #{studentId}
-            <if test="month==null">
-                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
-            <if test="month!=null">
-                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
-            <if test="isAttend!=null">
-                AND cs.status_='NOT_START'
-            </if>
+        cgsm.user_id_ = #{studentId}
+        <if test="month==null">
+            AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="month!=null">
+            AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="isAttend!=null">
+            AND cs.status_='NOT_START'
+        </if>
         GROUP BY
-            cs.class_date_
+        cs.class_date_
     </select>
 
     <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
@@ -496,29 +504,29 @@
 
     <select id="getCourseScheduleDate" resultType="java.util.Date">
         SELECT
-            cs.class_date_
+        cs.class_date_
         FROM
-            music_group mg
-            LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
-            LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+        music_group mg
+        LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
+        LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
         WHERE
-            mg.organ_id_ = #{organId} AND cs.id_ IS NOT NULL
-            <if test="month==null">
-                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
-            <if test="month!=null">
-                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
+        mg.organ_id_ = #{organId} AND cs.id_ IS NOT NULL
+        <if test="month==null">
+            AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="month!=null">
+            AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
         GROUP BY
-            cs.class_date_
+        cs.class_date_
     </select>
 
     <select id="findClassSubjects" resultType="string">
         SELECT
-            CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))
+        CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))
         FROM
-            class_group cg
-            LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
+        class_group cg
+        LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
         WHERE cg.id_ IN
         <foreach collection="list" item="id" open="(" close=")" separator=",">
             #{id}
@@ -543,21 +551,21 @@
 
     <select id="findStudentCourseScheduleRecords" resultMap="studentCourseScheduleRecord">
         SELECT
-            sa.id_,
-            sa.status_,
-            sa.teacher_id_,
-            su.username_,
-            cs.id_ course_schedule_id_,
-            cs.name_,
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.end_class_time_,
-            cs.teacher_id_,
-            cs.teach_mode_
+        sa.id_,
+        sa.status_,
+        sa.teacher_id_,
+        su.username_,
+        cs.id_ course_schedule_id_,
+        cs.name_,
+        cs.class_date_,
+        cs.start_class_time_,
+        cs.end_class_time_,
+        cs.teacher_id_,
+        cs.teach_mode_
         FROM
-            student_attendance sa
-            LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
-            LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
+        student_attendance sa
+        LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
+        LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
         <include refid="queryStudentCourseScheduleRecordCondition"/>
         ORDER BY sa.id_
         <include refid="global.limit"/>
@@ -573,68 +581,68 @@
     </select>
     <select id="findStudentCourseScheduleNotStartRecords" resultMap="studentCourseScheduleRecord">
         SELECT
-            cs.teacher_id_,
-            su.username_ teacher_name_,
-            cs.id_ course_schedule_id_,
-            cs.name_,
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.end_class_time_,
-            cs.teach_mode_,
-	        (cg.total_class_times_-cg.current_class_times_) rest_of_class_
+        cs.teacher_id_,
+        su.username_ teacher_name_,
+        cs.id_ course_schedule_id_,
+        cs.name_,
+        cs.class_date_,
+        cs.start_class_time_,
+        cs.end_class_time_,
+        cs.teach_mode_,
+        (cg.total_class_times_-cg.current_class_times_) rest_of_class_
         FROM
-            class_group_student_mapper cgsm
-            LEFT JOIN course_schedule cs ON cs.class_group_id_=cgsm.class_group_id_
-            LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
-            LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
+        class_group_student_mapper cgsm
+        LEFT JOIN course_schedule cs ON cs.class_group_id_=cgsm.class_group_id_
+        LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
+        LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
         WHERE cs.status_='NOT_START' AND cgsm.user_id_=#{userId} AND cs.class_date_=DATE_FORMAT(#{date},'%Y%m%d')
     </select>
     <select id="findCourseScheduleByMusicGroup" resultMap="CourseSchedule">
         SELECT
-            cs.*
+        cs.*
         FROM
-            class_group cg
-            LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
-            WHERE  cg.music_group_id_=#{musicGroupId}
+        class_group cg
+        LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
+        WHERE cg.music_group_id_=#{musicGroupId}
     </select>
     <select id="countClassTimes" resultType="int">
         SELECT
-            COUNT(*)
+        COUNT(*)
         FROM
-            course_schedule cs
-            WHERE cs.class_group_id_=#{classGroupId} AND cs.status_!="NOT_START"
+        course_schedule cs
+        WHERE cs.class_group_id_=#{classGroupId} AND cs.status_!="NOT_START"
     </select>
     <select id="getCourseSchedules" resultMap="courseScheduleDto">
         SELECT
-            cs.type_,
-            cs.id_,
-            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_,
-			sc.paran_value_
+        cs.type_,
+        cs.id_,
+        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_,
+        sc.paran_value_
         FROM
-            course_schedule cs
-			LEFT JOIN sys_config sc ON sc.param_name_="vip_appeal_days_range"
+        course_schedule cs
+        LEFT JOIN sys_config sc ON sc.param_name_="vip_appeal_days_range"
         WHERE
-            cs.id_=#{courseScheduleId}
+        cs.id_=#{courseScheduleId}
     </select>
 
     <select id="findStudentNamesByCourseSchedule" resultType="string">
         SELECT
-            su.username_
+        su.username_
         FROM
-            student_attendance sa
-            LEFT JOIN sys_user su ON sa.user_id_=su.id_
-            WHERE sa.course_schedule_id_=#{courseScheduleId}
+        student_attendance sa
+        LEFT JOIN sys_user su ON sa.user_id_=su.id_
+        WHERE sa.course_schedule_id_=#{courseScheduleId}
     </select>
     <select id="findVipGroupCourseSchedules" resultMap="CourseSchedule">
-      SELECT
-            cs.*
+        SELECT
+        cs.*
         FROM
-            vip_group_class_group_mapper vgcgm
-            LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
+        vip_group_class_group_mapper vgcgm
+        LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
         WHERE
-            vgcgm.vip_group_id_ =#{vipGroupId}
+        vgcgm.vip_group_id_ =#{vipGroupId}
     </select>
     <select id="findByClassGroupAndDate" resultMap="CourseSchedule">
         SELECT
@@ -652,7 +660,7 @@
         type_,name_,
         teach_mode_
         FROM
-            course_schedule
+        course_schedule
         <where>
             <if test="classGroupId!=null">
                 AND class_group_id_ = #{classGroupId}
@@ -665,12 +673,17 @@
             </if>
         </where>
     </select>
+    
     <select id="findClassTypeByCourse" resultType="string">
         SELECT
-            cg.type_
+        cg.type_
         FROM
-            course_schedule cs
-            LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
-            WHERE cs.id_=#{courseScheduleId}
+        course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
+        WHERE cs.id_=#{courseScheduleId}
+    </select>
+    
+    <select id="queryVipGroupTeachereClassTimesByMonth" resultType="map" parameterType="map">
+        SELECT vp.organ_id_ organ_id_,cs.actual_teacher_id_ teacher_id_,count(cs.id_) times FROM course_schedule cs left join vip_group_class_group_mapper vgm on cs.class_group_id_ = vgm.class_group_id_ left join vip_group vp on vgm.vip_group_id_ = vp.id_ where cs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and date_format(#{monthDate} , '%Y%m' ) = date_format(cs.class_date_, '%Y%m' ) group by vp.organ_id_,cs.actual_teacher_id_
     </select>
 </mapper>

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

@@ -40,7 +40,7 @@
 	</insert>
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
 		INSERT INTO course_schedule_teacher_salary (id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,create_update_,subsidy_,actual_salary_,settlement_time_)
-		VALUE
+		VALUES
 		<foreach collection="list" item="data" separator=",">
 			(#{data.id},#{data.courseScheduleId},#{data.teacherRole},#{data.userId},#{data.expectSalary},now(),now(),#{data.subsidy},#{data.actualSalary},#{data.settlementTime})
 		</foreach>

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -294,4 +294,9 @@
     <select id="getSysUserByPhone" resultMap="FindSysUser">
         SELECT * FROM sys_user WHERE phone_ = #{phone}
     </select>
+
+    <!-- 获取班级下的学生 -->
+    <select id="findClassGroupStu" resultMap="StudentRegistration">
+        SELECT * FROM student_registration WHERE music_group_id_= #{musicGroupId} AND class_group_id_=#{classGroupId}
+    </select>
 </mapper>

+ 18 - 11
mec-biz/src/main/resources/config/mybatis/SysConfigMapper.xml

@@ -4,23 +4,27 @@
 <mapper namespace="com.ym.mec.biz.dal.dao.SysConfigDao">
 
 	<resultMap type="com.ym.mec.biz.dal.entity.SysConfig" id="SysConfig">
-		<result column="id" property="id" />
+		<result column="id_" property="id" />
 		<result column="param_name_" property="paramName" />
 		<result column="paran_value_" property="paranValue" />
 		<result column="description_" property="description" />
 		<result column="create_on_" property="createOn" />
 		<result column="modify_on_" property="modifyOn" />
+		<result column="group_" property="group" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="SysConfig">
-		SELECT * FROM sys_config WHERE id = #{id}
+		SELECT * FROM sys_config WHERE id_ = #{id}
 	</select>
 
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="SysConfig">
-		SELECT * FROM sys_config ORDER BY
-		id
+		SELECT * FROM sys_config where 1=1
+		<if test="group != null">
+			and group_ = #{group}
+		</if>
+		ORDER BY id_
 	</select>
 
 	<!-- 向数据库增加一条记录 -->
@@ -29,8 +33,8 @@
 		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
 			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO sys_config
-		(id,param_name_,paran_value_,description_,create_on_,modify_on_)
-		VALUES(#{id},#{paramName},#{paranValue},#{description},#{createOn},#{modifyOn})
+		(id_,param_name_,paran_value_,description_,create_on_,modify_on_,group_)
+		VALUES(#{id},#{paramName},#{paranValue},#{description},#{createOn},#{modifyOn},#{group})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -47,7 +51,7 @@
 				description_ = #{description},
 			</if>
 			<if test="id != null">
-				id = #{id},
+				id_ = #{id},
 			</if>
 			<if test="createOn != null">
 				create_on_ = #{createOn},
@@ -55,26 +59,29 @@
 			<if test="paramName != null">
 				param_name_ = #{paramName},
 			</if>
+			<if test="group != null">
+				group_ = #{group},
+			</if>
 		</set>
 		WHERE id = #{id}
 	</update>
 
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete">
-		DELETE FROM sys_config WHERE id = #{id}
+		DELETE FROM sys_config WHERE id_ = #{id}
 	</delete>
 
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="SysConfig" parameterType="map">
-		SELECT * FROM sys_config ORDER BY id
+		SELECT * FROM sys_config ORDER BY id_
 		<include refid="global.limit" />
 	</select>
 
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM
-		sys_config
+		SELECT COUNT(*) FROM sys_config
 	</select>
+	
 	<select id="findByParamName" resultMap="SysConfig">
 		SELECT * FROM sys_config WHERE param_name_=#{paramName}
 	</select>

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

@@ -33,6 +33,8 @@
         <result column="current_class_times_" property="currentClassTimes"/>
         <result column="vip_group_category_id_" property="vipGroupCategoryId"/>
         <result column="give_teach_mode_" property="giveTeachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="schoole_id_" property="schoolId"/>
     </resultMap>
 
     <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
@@ -144,8 +146,8 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId})
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,schoole_id_,organ_id_)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{schoolId},#{organId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -206,6 +208,12 @@
             <if test="giveTeachMode!=null">
                 give_teach_mode_=#{giveTeachMode}
             </if>
+            <if test="organId!=null">
+                organ_id_=#{organId}
+            </if>
+            <if test="schoolId!=null">
+                schoole_id_=#{schoolId}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 2 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -12,4 +12,6 @@ public interface TaskRemoteService {
 	@GetMapping(value = "task/refreshPaymentFeeStatus")
 	public void refreshPaymentFeeStatus();
 
+	@GetMapping(value = "task/vipGroupAwardedMonthlyRewards")
+	public void vipGroupAwardedMonthlyRewards();
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -16,4 +16,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 		logger.info("更新学生缴费状态的服务调用失败");
 	}
 
+	@Override
+	public void vipGroupAwardedMonthlyRewards() {
+		logger.info("vip课月度奖励的服务调用失败");
+	}
+
 }

+ 24 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/VipGroupAwardedMonthlyRewardsTask.java

@@ -0,0 +1,24 @@
+package com.ym.mec.task.jobs;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+
+/**
+ * vip课月度奖励
+ */
+@Service
+public class VipGroupAwardedMonthlyRewardsTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.vipGroupAwardedMonthlyRewards();
+	}
+
+}

+ 42 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleRewardsRulesController.java

@@ -0,0 +1,42 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
+import com.ym.mec.biz.service.CourseScheduleRewardsRulesService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
+
+@RequestMapping("courseSchedule")
+@Api(tags = "课程奖励规则")
+@RestController
+public class CourseScheduleRewardsRulesController extends BaseController {
+
+	@Autowired
+	private CourseScheduleRewardsRulesService courseScheduleRewardsRulesService;
+
+	@ApiOperation(value = "查询规则列表")
+	@GetMapping("/queryPage")
+	public Object queryPage(QueryInfo queryInfo) {
+		return succeed(courseScheduleRewardsRulesService.queryPage(queryInfo));
+	}
+
+	@ApiOperation(value = "单查询")
+	@GetMapping("/query")
+	public Object query(Integer id) {
+		return succeed(courseScheduleRewardsRulesService.get(id));
+	}
+
+	@ApiOperation(value = "新增")
+	@PostMapping("/add")
+	public Object add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
+		return succeed(courseScheduleRewardsRulesService.insert(courseScheduleRewardsRules));
+	}
+}

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -84,4 +84,12 @@ public class StudentRegistrationController extends BaseController {
         return succeed(studentRegistrationService.getNoClassStuBySubjectId(musicGroupId, actualSubjectId));
     }
 
+    @ApiOperation(value = "获取班级学生")
+    @GetMapping("/getClassStu")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "classGroupId", value = "班级id", required = true, dataType = "int")})
+    public Object getClassStu(String musicGroupId, int classGroupId) {
+        return succeed(studentRegistrationService.findClassGroupStu(musicGroupId, classGroupId));
+    }
+
 }

+ 6 - 2
mec-web/src/main/java/com/ym/mec/web/controller/SysConfigController.java

@@ -4,7 +4,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,8 +32,10 @@ public class SysConfigController extends BaseController {
 
 	@ApiOperation(value = "参数列表")
 	@GetMapping(value = "list")
-	public Object configList() {
-		List<SysConfig> configs = sysConfigService.findAll(null);
+	public Object configList(String group) {
+		Map<String,Object> params = new HashMap<String, Object>();
+		params.put("group", group);
+		List<SysConfig> configs = sysConfigService.findAll(params);
 		return succeed(configs);
 	}
 

+ 15 - 6
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -6,19 +6,28 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
+import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 
 @RequestMapping("task")
 @RestController
 public class TaskController extends BaseController {
-	
+
 	@Autowired
 	private MusicGroupStudentFeeService musicGroupStudentFeeService;
 
-    @GetMapping("/refreshPaymentFeeStatus")
-    //刷新付费状态
-    public void refreshPaymentFeeStatus() {
-    	musicGroupStudentFeeService.refreshPaymentFeeStatus();
-    }
+	@Autowired
+	private VipGroupService vipGroupService;
+
+	@GetMapping("/refreshPaymentFeeStatus")
+	// 刷新付费状态
+	public void refreshPaymentFeeStatus() {
+		musicGroupStudentFeeService.refreshPaymentFeeStatus();
+	}
 
+	@GetMapping("/vipGroupAwardedMonthlyRewards")
+	// vip课月度奖励
+	public void vipGroupAwardedMonthlyRewards() {
+		vipGroupService.awardedMonthlyRewards();
+	}
 }