소스 검색

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
Joburgess 5 년 전
부모
커밋
0a9f23b536

+ 232 - 236
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,248 +1,244 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
 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> {
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
 
-    /**
-     * 根据教师ID获取当前课程信息
-     *
-     * @param teacherID
-     * @return
-     */
-    TeacherAttendanceDto getCurrentCourseDetail(@Param("courseID") Long courseID);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/16
-     * @params [startTime, endTime, teacherId]
-     * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
-     * @describe 根据时间区间获取教师上课的课程
-     */
-    TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime,
-                                                     @Param("endTime") Date endTime,
-                                                     @Param("teacherId") Long teacherId);
-
-    int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 统计学生所属班级数量
-     */
-    Integer[] countStudentInClass(List<Integer> classGroupIDs);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据日期获取当日排课信息
-     */
-    List<CourseScheduleDto> getCourseSchedulesWithDate(@Param("classDate") Date classDate);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/14
-     * @params [classDates, classGroupId]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
-     * @describe 根据班级和上课日期获取课程计划
-     */
-    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);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/11
-     * @params [courseScheduleId]
-     * @return java.util.List<java.lang.String>
-     * @describe 获取课程签到学生姓名
-     */
-    List<String> findStudentNamesByCourseSchedule(Long courseScheduleId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据日期获取老师当日排课信息
-     */
-    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate,
-                                                              @Param("teacherId") Long teacherId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/11
-     * @params [params]
-     * @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);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据乐团ID删除排课
-     */
-    int deleteCourseSchedulesByMusicGroupID(@Param("musicGroupID") Long musicGroupID);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 根据月份获取乐团在该月有课的日期
-     */
-    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);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/27
-     * 获取教师有课日期
-     */
-    List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId,
-                                            @Param("month") Date month);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/11
-     * @params [month, organId]
-     * @return java.util.List<java.util.Date>
-     * @describe 获取当月有课的日期
-     */
-    List<Date> getCourseScheduleDate(@Param("month") Date month,
-                                     @Param("organId") Long organId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/23
-     * 统计教师在一天内有时间重复的课数
-     */
-    int countTeacherCourseInOnDayRepeats(CourseSchedule courseSchedule);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/24
-     * 根据日期获取对应老师的课程
-     */
-    List<CourseSchedule> findTeacherCoursesInDates(@Param("dates") List<Date> dates,
-                                                   @Param("teacherId") Long teacherId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/24
-     * 根据日期获取课程
-     */
-    List<CourseSchedule> findCoursesByDates(@Param("dates") List<Date> dates);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/24
-     * 获取在指定时间段内存在重复的课程
-     */
-    List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates,
-                                                 @Param("startClassTime") Date startClassTime,
-                                                 @Param("endClassTime") Date endClassTime);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/29
-     * 获取班级的声部
-     */
-    String[] findClassSubjects(List<Integer> ids);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/24
-     * 根据id批量获取课程
-     */
-    List<CourseSchedule> findCourseSchedulesByIds(@Param("ids") Long[] ids);
-
-    /**
-     * 获取班级的课程计划
-     * @param classGroupList
-     * @return
-     */
-    List<CourseSchedule> findClassGroupCourseSchedules(@Param("classGroupList") List classGroupList);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/30
-     * 获取学生上课记录
-     */
-    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleRecords(Map<String,Object> params);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/30
-     * 统计学生上课记录
-     */
-    int countStudentCourseScheduleRecords(Map<String,Object> params);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/30
-     * 获取学生未上课记录
-     */
-    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleNotStartRecords(@Param("userId") Long userId,
-                                                                                  @Param("date") Date date);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/8
-     * @params [classGroupId]
-     * @return int
-     * @describe 统计已上课次
-     */
-    int countClassTimes(Long classGroupId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/17
-     * 获取课程信息
-     */
-    CourseScheduleDto getCourseSchedules(@Param("courseScheduleId") Long courseScheduleId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/14
-     * @params [vipGroupId]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
-     * @describe 获取vip课排课计划
-     */
-    List<CourseSchedule> findVipGroupCourseSchedules(@Param("vipGroupId") Long vipGroupId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/16
-     * @params [courseScheduleId]
-     * @return java.lang.String
-     * @describe 获取课程关联班级类型
-     */
-    String findClassTypeByCourse(@Param("courseScheduleId") Long courseScheduleId);
-
-
+	/**
+	 * 根据教师ID获取当前课程信息
+	 *
+	 * @param teacherID
+	 * @return
+	 */
+	TeacherAttendanceDto getCurrentCourseDetail(@Param("courseID") Long courseID);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/16
+	 * @params [startTime, endTime, teacherId]
+	 * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
+	 * @describe 根据时间区间获取教师上课的课程
+	 */
+	TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("teacherId") Long teacherId);
+
+	int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 统计学生所属班级数量
+	 */
+	Integer[] countStudentInClass(List<Integer> classGroupIDs);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据日期获取当日排课信息
+	 */
+	List<CourseScheduleDto> getCourseSchedulesWithDate(@Param("classDate") Date classDate);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/14
+	 * @params [classDates, classGroupId]
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+	 * @describe 根据班级和上课日期获取课程计划
+	 */
+	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);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/11
+	 * @params [courseScheduleId]
+	 * @return java.util.List<java.lang.String>
+	 * @describe 获取课程签到学生姓名
+	 */
+	List<String> findStudentNamesByCourseSchedule(Long courseScheduleId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据日期获取老师当日排课信息
+	 */
+	List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/11
+	 * @params [params]
+	 * @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);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据乐团ID删除排课
+	 */
+	int deleteCourseSchedulesByMusicGroupID(@Param("musicGroupID") Long musicGroupID);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 根据月份获取乐团在该月有课的日期
+	 */
+	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);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/27
+	 * 获取教师有课日期
+	 */
+	List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId, @Param("month") Date month);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/11
+	 * @params [month, organId]
+	 * @return java.util.List<java.util.Date>
+	 * @describe 获取当月有课的日期
+	 */
+	List<Date> getCourseScheduleDate(@Param("month") Date month, @Param("organId") Long organId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/23
+	 * 统计教师在一天内有时间重复的课数
+	 */
+	int countTeacherCourseInOnDayRepeats(CourseSchedule courseSchedule);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 根据日期获取对应老师的课程
+	 */
+	List<CourseSchedule> findTeacherCoursesInDates(@Param("dates") List<Date> dates, @Param("teacherId") Long teacherId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 根据日期获取课程
+	 */
+	List<CourseSchedule> findCoursesByDates(@Param("dates") List<Date> dates);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 获取在指定时间段内存在重复的课程
+	 */
+	List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates, @Param("startClassTime") Date startClassTime,
+			@Param("endClassTime") Date endClassTime);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/29
+	 * 获取班级的声部
+	 */
+	String[] findClassSubjects(List<Integer> ids);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 根据id批量获取课程
+	 */
+	List<CourseSchedule> findCourseSchedulesByIds(@Param("ids") Long[] ids);
+
+	/**
+	 * 获取班级的课程计划
+	 * @param classGroupList
+	 * @return
+	 */
+	List<CourseSchedule> findClassGroupCourseSchedules(@Param("classGroupList") List classGroupList);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/30
+	 * 获取学生上课记录
+	 */
+	List<StudentCourseScheduleRecordDto> findStudentCourseScheduleRecords(Map<String, Object> params);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/30
+	 * 统计学生上课记录
+	 */
+	int countStudentCourseScheduleRecords(Map<String, Object> params);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/30
+	 * 获取学生未上课记录
+	 */
+	List<StudentCourseScheduleRecordDto> findStudentCourseScheduleNotStartRecords(@Param("userId") Long userId, @Param("date") Date date);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/8
+	 * @params [classGroupId]
+	 * @return int
+	 * @describe 统计已上课次
+	 */
+	int countClassTimes(Long classGroupId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 获取课程信息
+	 */
+	CourseScheduleDto getCourseSchedules(@Param("courseScheduleId") Long courseScheduleId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/14
+	 * @params [vipGroupId]
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+	 * @describe 获取vip课排课计划
+	 */
+	List<CourseSchedule> findVipGroupCourseSchedules(@Param("vipGroupId") Long vipGroupId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/16
+	 * @params [courseScheduleId]
+	 * @return java.lang.String
+	 * @describe 获取课程关联班级类型
+	 */
+	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);
 
 
 }
 }

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

@@ -98,6 +98,10 @@ public class VipGroup {
 
 
 	@ApiModelProperty(value = "赠送课时类型")
 	@ApiModelProperty(value = "赠送课时类型")
 	private TeachModeEnum giveTeachMode;
 	private TeachModeEnum giveTeachMode;
+	
+	private Integer organId;
+	
+	private Integer schoolId;
 
 
 	public String getVipGroupActivityName() {
 	public String getVipGroupActivityName() {
 		return vipGroupActivityName;
 		return vipGroupActivityName;
@@ -307,6 +311,22 @@ public class VipGroup {
 		this.giveTeachMode = giveTeachMode;
 		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
 	@Override
 	public String toString() {
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 		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 人工补账)
  * 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账)
  */
  */
 public enum PlatformCashAccountDetailTypeEnum implements BaseEnum<String, PlatformCashAccountDetailTypeEnum> {
 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;
 	private String code;
 
 

+ 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;
 import com.ym.mec.common.service.BaseService;
 
 
 public interface SysUserCashAccountDetailService extends BaseService<Long, SysUserCashAccountDetail> {
 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);
 	SysUserCashAccountDetail queryDetailByTransNo(String transNo);
 
 

+ 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);
 		List<CourseScheduleRewardsRules> CourseScheduleRewardsRulesList = courseScheduleRewardsDao.query(organId, courseScheduleType);
 
 
 		if (CourseScheduleRewardsRulesList == null || CourseScheduleRewardsRulesList.size() == 0) {
 		if (CourseScheduleRewardsRulesList == null || CourseScheduleRewardsRulesList.size() == 0) {
-			return null;
+			return new BigDecimal(0);
 		}
 		}
 
 
 		CourseScheduleRewardsRules courseScheduleRewardsRules = CourseScheduleRewardsRulesList.get(0);
 		CourseScheduleRewardsRules courseScheduleRewardsRules = CourseScheduleRewardsRulesList.get(0);

+ 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
 	@Override
 	public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
 	public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
 		List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
 		List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
-		//获取学员在该乐团续费状态
-		musicCardDtos.forEach(e->{
+		// 获取学员在该乐团续费状态
+		musicCardDtos.forEach(e -> {
 			e.setPaymentStatus(musicGroupStudentFeeDao.findByUser(userId, e.getMusicGroupId()).getPaymentStatus());
 			e.setPaymentStatus(musicGroupStudentFeeDao.findByUser(userId, e.getMusicGroupId()).getPaymentStatus());
 		});
 		});
 		return musicCardDtos;
 		return musicCardDtos;
@@ -229,8 +229,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		for (StudentPaymentOrder order : studentPaymentOrders) {
 		for (StudentPaymentOrder order : studentPaymentOrders) {
 			sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount());
 			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;
 		return true;
@@ -377,8 +377,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 				}
 				}
 				if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
 				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, "退出乐团");
 				}
 				}
 			}
 			}
 		}
 		}

+ 108 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1,14 +1,91 @@
 package com.ym.mec.biz.service.impl;
 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.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 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.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.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -84,6 +161,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Autowired
 	@Autowired
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 
 
+	@Autowired
+	private CourseScheduleRewardsRulesService courseScheduleRewardsRulesService;
+
+	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
+
 	@Override
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
 	public BaseDAO<Long, VipGroup> getDAO() {
 		return vipGroupDao;
 		return vipGroupDao;
@@ -747,6 +829,25 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 
 	@Override
 	@Override
 	public boolean awardedMonthlyRewards() {
 	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;
 	}
 	}
 }
 }

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

@@ -665,6 +665,7 @@
             </if>
             </if>
         </where>
         </where>
     </select>
     </select>
+    
     <select id="findClassTypeByCourse" resultType="string">
     <select id="findClassTypeByCourse" resultType="string">
         SELECT
         SELECT
             cg.type_
             cg.type_
@@ -673,4 +674,8 @@
             LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
             LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
             WHERE cs.id_=#{courseScheduleId}
             WHERE cs.id_=#{courseScheduleId}
     </select>
     </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>
 </mapper>

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

@@ -33,6 +33,8 @@
         <result column="current_class_times_" property="currentClassTimes"/>
         <result column="current_class_times_" property="currentClassTimes"/>
         <result column="vip_group_category_id_" property="vipGroupCategoryId"/>
         <result column="vip_group_category_id_" property="vipGroupCategoryId"/>
         <result column="give_teach_mode_" property="giveTeachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <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>
 
 
     <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
     <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
@@ -144,8 +146,8 @@
         </selectKey>
         </selectKey>
         -->
         -->
         INSERT INTO vip_group
         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>
     </insert>
 
 
     <!-- 根据主键查询一条记录 -->
     <!-- 根据主键查询一条记录 -->
@@ -206,6 +208,12 @@
             <if test="giveTeachMode!=null">
             <if test="giveTeachMode!=null">
                 give_teach_mode_=#{giveTeachMode}
                 give_teach_mode_=#{giveTeachMode}
             </if>
             </if>
+            <if test="organId!=null">
+                organ_id_=#{organId}
+            </if>
+            <if test="schoolId!=null">
+                schoole_id_=#{schoolId}
+            </if>
         </set>
         </set>
         WHERE id_ = #{id}
         WHERE id_ = #{id}
     </update>
     </update>