Pārlūkot izejas kodu

fix 课酬设置

周箭河 5 gadi atpakaļ
vecāks
revīzija
ebd6189ac3
35 mainītis faili ar 907 papildinājumiem un 114 dzēšanām
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 11 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  3. 36 41
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  4. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java
  5. 10 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java
  6. 142 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassGroupDto.java
  7. 116 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java
  8. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/KitPurchaseMethodEnum.java
  11. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MusicGroupStatusEnum.java
  12. 2 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/PlatformCashAccountDetailTypeEnum.java
  13. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  14. 19 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleRewardsRulesService.java
  15. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java
  16. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  17. 18 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  18. 103 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java
  19. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  20. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  21. 19 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  22. 127 15
      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. 7 3
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  25. 5 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  26. 94 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml
  27. 3 3
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  28. 2 6
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  29. 10 2
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  30. 2 0
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  31. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  32. 7 0
      mec-common/common-core/src/main/java/com/ym/mec/common/config/LocalFastJsonHttpMessageConverter.java
  33. 24 0
      mec-task/src/main/java/com/ym/mec/task/jobs/VipGroupAwardedMonthlyRewardsTask.java
  34. 2 7
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/eseal/provider/TsignPlugin.java
  35. 15 6
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

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

@@ -235,4 +235,13 @@ 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);
+
 }

+ 11 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -1,9 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -26,18 +24,25 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
 	ClassGroupStudentMapper query(@Param("classGroupId") int classGroupId, @Param("userId") Integer userId);
 
 	/**
-	 * 根据乐团编号修改学生状态
+	 * 根据乐团编号删除指定学生
 	 * @param musicGroupId 乐团编号
 	 * @param userId 学生编号
-	 * @param status 状态
 	 * @return
 	 */
-	int updateUserStatusByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId,
-			@Param("status") ClassGroupStudentStatusEnum status);
+	int deleteStudentByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
 
 	/**
 	 * 根据班级编号删除关联
 	 * @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);
 }

+ 36 - 41
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,16 +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.ClassGroupTeacherMapper;
 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> {
 
@@ -23,15 +25,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     TeacherAttendanceDto getCurrentCourseDetail(@Param("courseID") Long courseID);
 
     /**
-     * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
      * @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);
+    TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("teacherId") Long teacherId);
 
     int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
 
@@ -50,28 +50,26 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseScheduleDto> getCourseSchedulesWithDate(@Param("classDate") Date classDate);
 
     /**
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @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);
+    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);
 
     /**
-     * @return java.util.List<java.lang.String>
      * @Author: Joburgess
      * @Date: 2019/10/11
      * @params [courseScheduleId]
+     * @return java.util.List<java.lang.String>
      * @describe 获取课程签到学生姓名
      */
     List<String> findStudentNamesByCourseSchedule(Long courseScheduleId);
@@ -81,14 +79,13 @@ 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);
 
     /**
-     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      * @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);
@@ -107,35 +104,30 @@ 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);
 
     /**
-     * @return java.util.List<java.util.Date>
      * @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);
+    List<Date> getCourseScheduleDate(@Param("month") Date month, @Param("organId") Long organId);
 
     /**
      * @Author: Joburgess
@@ -149,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
@@ -164,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);
 
     /**
@@ -183,9 +173,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> findCourseSchedulesByIds(@Param("ids") Long[] ids);
 
     /**
-     * 获取班级的课程计划
-     *
-     * @param classGroupList
+     * 获取班级未开始的课程计划
+     * @param classGroupTeacherMapperList
      * @return
      */
     List<CourseSchedule> findClassGroupNoStartCourseSchedules(@Param("classGroupTeacherMapperList") List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
@@ -209,14 +198,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @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);
 
     /**
-     * @return int
      * @Author: Joburgess
      * @Date: 2019/10/8
      * @params [classGroupId]
+     * @return int
      * @describe 统计已上课次
      */
     int countClassTimes(Long classGroupId);
@@ -229,22 +217,29 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     CourseScheduleDto getCourseSchedules(@Param("courseScheduleId") Long courseScheduleId);
 
     /**
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @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);
 
     /**
-     * @return java.lang.String
      * @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/dao/CourseScheduleRewardsRulesDao.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseScheduleRewardsRules> {
+
+	/**
+	 * 查询课程奖励对象
+	 * @param organId 分部编号
+	 * @param courseScheduleType 课程类型
+	 * @return
+	 */
+	List<CourseScheduleRewardsRules> query(@Param("organId") Integer organId, @Param("courseScheduleType") CourseScheduleType courseScheduleType);
+}

+ 10 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -28,8 +29,11 @@ public class MusicCardDto {
     @ApiModelProperty(value = "所在班级",required = true)
     private String currentClass;
 
-    @ApiModelProperty(value = "是否缴费",required = true)
-    private YesOrNoEnum paymentStatus;
+//    @ApiModelProperty(value = "是否缴费",required = true)
+//    private YesOrNoEnum paymentStatus;
+
+    @ApiModelProperty(value = "缴费状态",required = true)
+    private MusicGroupStudentFee.PaymentStatus paymentStatus;
 
     @ApiModelProperty(value = "乐团数量",required = true)
     private Integer musicGroupNum;
@@ -37,6 +41,10 @@ public class MusicCardDto {
     @ApiModelProperty(value = "vip课数量",required = true)
     private Integer vipClassNum;
 
+    public void setPaymentStatus(MusicGroupStudentFee.PaymentStatus paymentStatus) {
+        this.paymentStatus = paymentStatus;
+    }
+
     public String getMusicGroupId() {
         return musicGroupId;
     }
@@ -101,14 +109,6 @@ public class MusicCardDto {
         this.currentClass = currentClass;
     }
 
-    public YesOrNoEnum getPaymentStatus() {
-        return paymentStatus;
-    }
-
-    public void setPaymentStatus(YesOrNoEnum paymentStatus) {
-        this.paymentStatus = paymentStatus;
-    }
-
     public String getRegisterId() {
         return registerId;
     }

+ 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;
+    }
+}

+ 116 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java

@@ -0,0 +1,116 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 对应数据库表(course_schedule_rewards_rules):
+ */
+public class CourseScheduleRewardsRules {
+
+	public enum RewardMode implements BaseEnum<String, RewardMode> {
+		PER, TOTAL;
+
+		@Override
+		public String getCode() {
+			return name();
+		}
+
+	}
+
+	/**  */
+	private Integer id;
+
+	/** 名称 */
+	private String name;
+
+	/** 课程类型 */
+	private CourseScheduleType courseScheduleType;
+
+	/** 奖励方式(每节课奖励、一次性奖励) */
+	private RewardMode rewardMode;
+
+	/** 分部列表(用逗号分开) */
+	private String organIdList;
+
+	/** 梯度奖励规则 */
+	private String rewardsRulesJson;
+
+	/**  */
+	private java.util.Date createTime;
+
+	/**  */
+	private java.util.Date updateTime;
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Integer getId() {
+		return this.id;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getName() {
+		return this.name;
+	}
+
+	public void setCourseScheduleType(CourseScheduleType courseScheduleType) {
+		this.courseScheduleType = courseScheduleType;
+	}
+
+	public CourseScheduleType getCourseScheduleType() {
+		return this.courseScheduleType;
+	}
+
+	public void setRewardMode(RewardMode rewardMode) {
+		this.rewardMode = rewardMode;
+	}
+
+	public RewardMode getRewardMode() {
+		return this.rewardMode;
+	}
+
+	public void setOrganIdList(String organIdList) {
+		this.organIdList = organIdList;
+	}
+
+	public String getOrganIdList() {
+		return this.organIdList;
+	}
+
+	public void setRewardsRulesJson(String rewardsRulesJson) {
+		this.rewardsRulesJson = rewardsRulesJson;
+	}
+
+	public String getRewardsRulesJson() {
+		return this.rewardsRulesJson;
+	}
+
+	public void setCreateTime(java.util.Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public java.util.Date getCreateTime() {
+		return this.createTime;
+	}
+
+	public void setUpdateTime(java.util.Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public java.util.Date getUpdateTime() {
+		return this.updateTime;
+	}
+
+	@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);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java

@@ -10,7 +10,7 @@ public enum ClassGroupTypeEnum implements BaseEnum<String, ClassGroupTypeEnum> {
 	MIX("MIX", "合奏班级"),
 	HIGH("HIGH", "提高班"),
 	VIP("VIP", "vip课"),
-	DEMO("demo", "试听课");
+	DEMO("DEMO", "试听课");
 
 	private String code;
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/KitPurchaseMethodEnum.java

@@ -6,7 +6,7 @@ import com.ym.mec.common.enums.BaseEnum;
  * 器材购买方式(团购、自备)
  */
 public enum KitPurchaseMethodEnum implements BaseEnum<String, KitPurchaseMethodEnum> {
-	GROUP("GROUP", "团购"), OWNED("OWNED", "自备");
+	GROUP("GROUP", "团购"), OWNED("OWNED", "自备"), LEASE("LEASE", "租赁");
 
 	private String code;
 

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MusicGroupStatusEnum.java

@@ -4,7 +4,9 @@ import com.ym.mec.common.enums.BaseEnum;
 
 public enum MusicGroupStatusEnum implements BaseEnum<String, MusicGroupStatusEnum> {
 
-	APPLY("APPLY", "报名中"), PAY("PAY", "缴费中"), PREPARE("PREPARE", "筹备中"), PROGRESS("PROGRESS", "进行中"), CANCELED("CANCELED", "取消"), PAUSE("PAUSE", "暂停");
+	APPLY("APPLY", "报名中"), PAY("PAY", "缴费中"),
+	PREPARE("PREPARE", "筹备中"), PROGRESS("PROGRESS", "进行中"),
+	CANCELED("CANCELED", "取消"), PAUSE("PAUSE", "暂停");
 
 	private String code;
 	private String msg;

+ 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();
 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleRewardsRulesService.java

@@ -0,0 +1,19 @@
+package com.ym.mec.biz.service;
+
+import java.math.BigDecimal;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
+import com.ym.mec.common.service.BaseService;
+
+public interface CourseScheduleRewardsRulesService extends BaseService<Integer, CourseScheduleRewardsRules> {
+
+	/**
+	 * 查询课程奖励额度
+	 * @param organId 分部编号
+	 * @param courseScheduleType 课程类型
+	 * @param coursesNum 课程数
+	 * @return
+	 */
+	BigDecimal queryRewardsAmount(Integer organId, CourseScheduleType courseScheduleType, int coursesNum);
+}

+ 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);
 

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

@@ -175,4 +175,10 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     void stopGroup(Long vipGroupId);
 
+    /**
+     * 发放月度奖励
+     * @return
+     */
+    boolean awardedMonthlyRewards();
+    
 }

+ 18 - 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.*;
@@ -58,6 +60,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private ClassGroupTeacherSalaryService classGroupTeacherSalaryService;
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @Override
     public BaseDAO<Integer, ClassGroup> getDAO() {
@@ -303,6 +307,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         return classGroupAndTeachers;
     }
 
+    @Override
     public PageInfo<CourseListDto> queryCoursePage(QueryInfo queryInfo, Integer userId) {
         queryInfo.setSearch(userId.toString());
         PageInfo<CourseListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
@@ -472,6 +477,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);

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

@@ -0,0 +1,103 @@
+package com.ym.mec.biz.service.impl;
+
+import java.math.BigDecimal;
+import java.util.Collections;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ym.mec.biz.dal.dao.CourseScheduleRewardsRulesDao;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules.RewardMode;
+import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
+import com.ym.mec.biz.service.CourseScheduleRewardsRulesService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.json.JsonUtil;
+
+@Service
+public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integer, CourseScheduleRewardsRules> implements CourseScheduleRewardsRulesService {
+
+	@Autowired
+	private CourseScheduleRewardsRulesDao courseScheduleRewardsDao;
+
+	@Override
+	public BaseDAO<Integer, CourseScheduleRewardsRules> getDAO() {
+		return courseScheduleRewardsDao;
+	}
+
+	@Override
+	public BigDecimal queryRewardsAmount(Integer organId, CourseScheduleType courseScheduleType, int coursesNum) {
+
+		List<CourseScheduleRewardsRules> CourseScheduleRewardsRulesList = courseScheduleRewardsDao.query(organId, courseScheduleType);
+
+		if (CourseScheduleRewardsRulesList == null || CourseScheduleRewardsRulesList.size() == 0) {
+			return new BigDecimal(0);
+		}
+
+		CourseScheduleRewardsRules courseScheduleRewardsRules = CourseScheduleRewardsRulesList.get(0);
+
+		String json = courseScheduleRewardsRules.getRewardsRulesJson();
+
+		List<RewardsRules> rewardsRulesList = JsonUtil.parseArray(json, RewardsRules.class);
+		
+		Collections.sort(rewardsRulesList);
+		
+		RewardsRules rewardsRules = new RewardsRules();
+		
+		for(RewardsRules rule : rewardsRulesList){
+			if(rule.min >= coursesNum && rule.max < coursesNum){
+				rewardsRules = rule;
+				break;
+			}
+		}
+		
+		if(courseScheduleRewardsRules.getRewardMode() == RewardMode.TOTAL){
+			return rewardsRules.getAmount();
+		}
+
+		return rewardsRules.getAmount().multiply(new BigDecimal(coursesNum));
+	}
+
+	class RewardsRules implements Comparable<RewardsRules> {
+
+		private int min;
+
+		private int max;
+
+		private BigDecimal amount = new BigDecimal(0);
+
+		public int getMin() {
+			return min;
+		}
+
+		public void setMin(int min) {
+			this.min = min;
+		}
+
+		public int getMax() {
+			return max;
+		}
+
+		public void setMax(int max) {
+			this.max = max;
+		}
+
+		public BigDecimal getAmount() {
+			return amount;
+		}
+
+		public void setAmount(BigDecimal amount) {
+			this.amount = amount;
+		}
+
+		@Override
+		public int compareTo(RewardsRules rules) {
+			if (this.min > rules.min) {
+				return 1;
+			}
+			return -1;
+		}
+	}
+}

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

@@ -25,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;
@@ -462,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);

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

@@ -178,7 +178,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 	@Override
 	public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
-		return musicGroupDao.queryUserMusicGroups(userId);
+		List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
+		// 获取学员在该乐团续费状态
+		musicCardDtos.forEach(e -> {
+			e.setPaymentStatus(musicGroupStudentFeeDao.findByUser(userId, e.getMusicGroupId()).getPaymentStatus());
+		});
+		return musicCardDtos;
 	}
 
 	@Override
@@ -224,8 +229,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;
@@ -343,22 +348,28 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(id);
 		if (musicGroupQuit != null) {
 
+			Date date = new Date();
+
 			String musicGroupId = musicGroupQuit.getMusicGroupId();
 			Integer userId = musicGroupQuit.getUserId();
 
 			musicGroupQuit.setStatus(status);
 			musicGroupQuit.setReason(reason);
-			musicGroupQuit.setQuitDate(new Date());
+			musicGroupQuit.setQuitDate(date);
 			musicGroupQuitDao.update(musicGroupQuit);
 
 			if (status == ApprovalStatus.APPROVED) {
-				classGroupStudentMapperDao.updateUserStatusByMusicGroupId(musicGroupId, userId, ClassGroupStudentStatusEnum.QUIT);
+				classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 
 				// 判断乐器是否是租赁
 				StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
 				if (studentRegistration == null) {
 					throw new BizException("用户注册信息不存在");
 				}
+				// 退团
+				studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
+				studentRegistration.setUpdateTime(date);
+
 				Integer subjectId = studentRegistration.getActualSubjectId();
 				MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
 				if (musicGroupSubjectPlan == null) {
@@ -366,8 +377,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, "退出乐团");
 				}
 			}
 		}

+ 127 - 15
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:
 
@@ -732,4 +819,29 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
 		vipGroupDao.update(vipGroup);
 	}
+
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean awardedMonthlyRewards() {
+		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

@@ -449,6 +449,39 @@
             WHERE cg.id_=#{classGroupId} FOR UPDATE
     </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

+ 7 - 3
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -80,7 +80,11 @@
 		SELECT * FROM class_group_student_mapper where class_group_id_ = #{classGroupId} and user_id_ = #{userId}
 	</select>
 	
-	<update id="updateUserStatusByMusicGroupId" parameterType="map">
-		UPDATE class_group_student_mapper set status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} where class_group_id_ in (select id_ from class_group where music_group_id_ = #{musicGroupId}) and user_id_ = #{userId}
-	</update>
+    <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>

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

@@ -673,6 +673,7 @@
             </if>
         </where>
     </select>
+    
     <select id="findClassTypeByCourse" resultType="string">
         SELECT
         cg.type_
@@ -681,4 +682,8 @@
         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>

+ 94 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!-- 这个文件是自动生成的。 不要修改此文件。所有改动将在下次重新自动生成时丢失。 -->
+<mapper namespace="com.ym.mec.biz.dal.dao.CourseScheduleRewardsRulesDao">
+
+	<resultMap type="com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules"
+		id="CourseScheduleRewardsRules">
+		<result column="id_" property="id" />
+		<result column="name_" property="name" />
+		<result column="course_schedule_type_" property="courseScheduleType"
+			typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
+		<result column="reward_mode_" property="rewardMode"
+			typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
+		<result column="organ_id_list_" property="organIdList" />
+		<result column="rewards_rules_json_" property="rewardsRulesJson" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+	</resultMap>
+
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="CourseScheduleRewardsRules">
+		SELECT * FROM course_schedule_rewards_rules WHERE id_ = #{id}
+	</select>
+
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="CourseScheduleRewardsRules">
+		SELECT * FROM course_schedule_rewards_rules ORDER BY id_
+	</select>
+
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules"
+		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
+			AS ID FROM DUAL </selectKey> -->
+		INSERT INTO course_schedule_rewards_rules
+		(id_,name_,course_schedule_type_,reward_mode_,organ_id_list_,rewards_rules_json_,create_time_,update_time_)
+		VALUES(#{id},#{name},#{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{rewardMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{organIdList},#{rewardsRulesJson},#{createTime},#{updateTime})
+	</insert>
+
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules">
+		UPDATE course_schedule_rewards_rules
+		<set>
+			<if test="rewardMode != null">
+				reward_mode_ =
+				#{rewardMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="courseScheduleType != null">
+				course_schedule_type_ =
+				#{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="updateTime != null">
+				update_time_ = #{updateTime},
+			</if>
+			<if test="organIdList != null">
+				organ_id_list_ = #{organIdList},
+			</if>
+			<if test="name != null">
+				name_ = #{name},
+			</if>
+			<if test="rewardsRulesJson != null">
+				rewards_rules_json_ = #{rewardsRulesJson},
+			</if>
+			<if test="createTime != null">
+				create_time_ = #{createTime},
+			</if>
+		</set>
+		WHERE id_ = #{id}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete">
+		DELETE FROM course_schedule_rewards_rules WHERE id_ = #{id}
+	</delete>
+
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="CourseScheduleRewardsRules"
+		parameterType="map">
+		SELECT * FROM course_schedule_rewards_rules ORDER BY id_
+		<include refid="global.limit" />
+	</select>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM course_schedule_rewards_rules
+	</select>
+	
+	<select id="query" resultType="map">
+		SELECT * FROM course_schedule_rewards_rules where find_in_set(#{organId},organ_id_list_) and course_schedule_type_ = #{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} order by update_time_ desc
+	</select>
+</mapper>

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

@@ -150,12 +150,12 @@
 		<result column="music_group_id_" property="musicGroupId" />
 		<result column="vip_class_num_" property="vipClassNum" />
 		<result column="music_group_num_" property="musicGroupNum" />
-		<result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<!--<result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>-->
 	</resultMap>
 
     <select id="queryUserMusicGroups" resultMap="queryUserMusicGroupsMap">
-		SELECT sr.id_ register_id_,sr.name_ user_name_,sr.current_class_,sr.current_grade_,
-		sr.payment_status_,mg.name_ music_group_name_,s.name_ subject_name_,s.id_ subject_id_,mg.id_ music_group_id_
+		SELECT sr.id_ register_id_,sr.name_ user_name_,sr.current_class_,sr.current_grade_
+		,mg.name_ music_group_name_,s.name_ subject_name_,s.id_ subject_id_,mg.id_ music_group_id_
 		FROM student_registration sr
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 		LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_

+ 2 - 6
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -155,8 +155,7 @@
             CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,
             cs.status_ course_status_,
             su.username_ teacher_name_
-        FROM
-            class_group cg
+        FROM class_group cg
             LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
             <if test="vipGroupId!=null">
                 LEFT JOIN vip_group_class_group_mapper vgcgm ON cgsm.class_group_id_=vgcgm.class_group_id_
@@ -169,10 +168,7 @@
     </select>
 
     <select id="countStudentCourses" resultType="int">
-        SELECT
-        count(*)
-        FROM
-        class_group cg
+        SELECT count(cg.*) FROM class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
         <if test="vipGroupId!=null">
             LEFT JOIN vip_group_class_group_mapper vgcgm ON cgsm.class_group_id_=vgcgm.class_group_id_

+ 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课月度奖励的服务调用失败");
+	}
+
 }

+ 7 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/config/LocalFastJsonHttpMessageConverter.java

@@ -6,7 +6,9 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 import org.apache.commons.lang.StringUtils;
+import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
@@ -20,6 +22,11 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
 
 	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
 		OutputStream out = outputMessage.getBody();

+ 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();
+	}
+
+}

+ 2 - 7
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/eseal/provider/TsignPlugin.java

@@ -1,7 +1,5 @@
 package com.ym.mec.thirdparty.eseal.provider;
 
-import java.text.MessageFormat;
-
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Value;
@@ -56,15 +54,12 @@ public class TsignPlugin implements ESealPlugin, InitializingBean, DisposableBea
 		projectconfig.setItsmApiUrl(apisUrl);
 		Result result = ServiceClientManager.registClient(projectconfig, null, null);
 		if (result.getErrCode() != 0) {
-			//throw new ThirdpartyException("e签宝客户端注册失败");
+			throw new ThirdpartyException("e签宝客户端注册失败");
 		}
 
 		serviceClient = ServiceClientManager.get(projectId);
 		if (serviceClient == null) {
-			//throw new ThirdpartyException(MessageFormat.format("ServiceClient为null,获取客户端接口调用失败 ", projectId));
-		}
-		if (serviceClient == null) {
-			//throw new ThirdpartyException("获取e签宝客户端失败");
+			throw new ThirdpartyException("获取e签宝客户端失败");
 		}
 	}
 

+ 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();
+	}
 }