Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
21a5687573
36 changed files with 658 additions and 347 deletions
  1. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeDao.java
  2. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  3. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  4. 14 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherLeaveRecordDao.java
  5. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDefaultClassesCycleDao.java
  6. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  7. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRecharge.java
  8. 211 184
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherLeaveRecord.java
  9. 23 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRechargeQueryInfo.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  11. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java
  12. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  13. 15 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherLeaveRecordService.java
  14. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  15. 5 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  16. 2 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  17. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  18. 18 67
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  19. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  20. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  21. 15 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  22. 55 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  23. 78 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  24. 1 4
      mec-biz/src/main/resources/config/mybatis/ChargeTypeMapper.xml
  25. 2 2
      mec-biz/src/main/resources/config/mybatis/CooperationOrganMapper.xml
  26. 48 9
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  27. 2 1
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  28. 22 3
      mec-biz/src/main/resources/config/mybatis/StudentRechargeMapper.xml
  29. 3 2
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  30. 14 0
      mec-biz/src/main/resources/config/mybatis/TeacherLeaveRecordMapper.xml
  31. 10 0
      mec-biz/src/main/resources/config/mybatis/VipGroupDefaultClassesCycleMapper.xml
  32. 6 3
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  33. 23 2
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java
  34. 32 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRechargeController.java
  35. 4 4
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  36. 3 5
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeDao.java

@@ -6,7 +6,6 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 public interface ChargeTypeDao extends BaseDAO<Integer, ChargeType> {
 
@@ -16,5 +15,5 @@ public interface ChargeTypeDao extends BaseDAO<Integer, ChargeType> {
      * @param chargeTypeIds
      * @return
      */
-    List<Map<Integer, String>> queryNameByIds(@Param("chargeTypeIds") Set<Integer> chargeTypeIds);
+    List<Map<Integer, String>> queryNameByIds(@Param("chargeTypeIds") String chargeTypeIds);
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -259,7 +259,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @params [classGroupId]
      * @describe 统计已上课次
      */
-    int countClassTimes(Long classGroupId);
+    int countClassTimes(@Param("classGroupId") Long classGroupId,
+                        @Param("startClassTime") Date startClassTime);
 
     /**
      * @Author: Joburgess

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

@@ -130,11 +130,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     /**
      * 批量调剂学生专业
      *
-     * @param userIds
+     * @param userId
      * @param subId
      * @return
      */
-    int batchUpdateSubject(@Param("userIds") String userIds, @Param("subId") Integer subId, @Param("musicGroupId") String musicGroupId);
+    int batchUpdateSubject(@Param("userId") Integer userId, @Param("subId") Integer subId, @Param("musicGroupId") String musicGroupId);
 
     /**
      * 根据id list 查询报名学生

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherLeaveRecordDao.java

@@ -2,8 +2,21 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
 
 public interface TeacherLeaveRecordDao extends BaseDAO<Long, TeacherLeaveRecord> {
 
+    /**
+     * @describe 获取指定日期后的教师请假记录
+     * @author Joburgess
+     * @date 2019/10/29
+     * @param teacherIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.TeacherLeaveRecord>
+     */
+    List<TeacherLeaveRecord> findByTeacherIds(@Param("teacherIds") List<Long> teacherIds,
+                                              @Param("date")Date date);
 	
-}
+}

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDefaultClassesCycleDao.java

@@ -31,4 +31,15 @@ public interface VipGroupDefaultClassesCycleDao extends BaseDAO<Integer, VipGrou
 
     List<VipGroupDefaultClassesCycle> findAllByOrgan(@Param("organId") Long organId);
 
-}
+    /**
+     * @describe 根据乐团获取指定课次课排课范围
+     * @author Joburgess
+     * @date 2019/10/29
+     * @param organId: 部门编号
+     * @param classTimes: 课次
+     * @return com.ym.mec.biz.dal.entity.VipGroupDefaultClassesCycle
+     */
+    VipGroupDefaultClassesCycle findByOrganAndClassTimes(@Param("organId") Long organId,
+                                                         @Param("classTimes") Integer classTimes);
+
+}

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -138,7 +138,7 @@ public class CourseSchedule {
 	}
 
 	public void setStartClassTimeStr(String startClassTimeStr) throws ParseException {
-		if(Objects.nonNull(this.classDate)){
+		if(Objects.nonNull(this.classDate)&&!StringUtils.isBlank(startClassTimeStr)){
 			String startTime = simpleDateFormat.format(this.classDate);
 			startTime=startTime+" "+startClassTimeStr;
 			this.startClassTime=simpleDateFormat1.parse(startTime);
@@ -151,7 +151,7 @@ public class CourseSchedule {
 	}
 
 	public void setEndClassTimeStr(String endClassTimeStr) throws ParseException {
-		if(Objects.nonNull(this.classDate)){
+		if(Objects.nonNull(this.classDate)&&!StringUtils.isBlank(endClassTimeStr)){
 			String endTime = simpleDateFormat.format(this.classDate);
 			endTime=endTime+" "+endClassTimeStr;
 			this.endClassTime=simpleDateFormat1.parse(endTime);

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRecharge.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 
 import io.swagger.annotations.ApiModelProperty;
@@ -61,6 +62,10 @@ public class StudentRecharge {
 	/** 最后修改时间 */
 	private java.util.Date modifyTime;
 	
+	private SysUser user = new SysUser();
+	
+	private SysUserCashAccountDetail detail = new SysUserCashAccountDetail();
+	
 	public void setId(String id){
 		this.id = id;
 	}
@@ -165,6 +170,22 @@ public class StudentRecharge {
 		return this.modifyTime;
 	}
 			
+	public SysUser getUser() {
+		return user;
+	}
+
+	public void setUser(SysUser user) {
+		this.user = user;
+	}
+
+	public SysUserCashAccountDetail getDetail() {
+		return detail;
+	}
+
+	public void setDetail(SysUserCashAccountDetail detail) {
+		this.detail = detail;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 211 - 184
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherLeaveRecord.java

@@ -1,194 +1,221 @@
 package com.ym.mec.biz.dal.entity;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
  * 对应数据库表(teacher_leave_record):
  */
 public class TeacherLeaveRecord {
 
-	/**  */
-	private Long id;
-	
-	/**  */
-	private Integer userId;
-	
-	/** 请假天数 */
-	private double days;
-	
-	/** 请假类型 */
-	private Integer leaveCategoryId;
-
-	/** 请假类型名称 */
-	private String leaveCategoryName;
-	
-	/** 请假状态(审批中、拒绝、通过) */
-	private AuditStatusEnum status;
-	
-	/** 备注 */
-	private String remark;
-	
-	/**  */
-	private java.util.Date createTime;
-	
-	/**  */
-	private java.util.Date updateTime;
-	
-	/** 请假开始时间 */
-	private java.util.Date startTime;
-	
-	/** 请假结束时间 */
-	private java.util.Date endTime;
-	
-	/** 课程调整 */
-	private String coursesScheduleJson;
-	
-	/** 流程定义 */
-	private String wfProcessId;
-	
-	/** 流程实例 */
-	private String wfOrderId;
-
-	public String getLeaveCategoryName() {
-		return leaveCategoryName;
-	}
-
-	public void setLeaveCategoryName(String leaveCategoryName) {
-		this.leaveCategoryName = leaveCategoryName;
-	}
-
-	public void setId(Long id){
-		this.id = id;
-	}
-	
-	public Long getId(){
-		return this.id;
-	}
-			
-	public void setUserId(Integer userId){
-		this.userId = userId;
-	}
-	
-	public Integer getUserId(){
-		return this.userId;
-	}
-			
-	public void setDays(double days){
-		this.days = days;
-	}
-	
-	public double getDays(){
-		return this.days;
-	}
-			
-	public Integer getLeaveCategoryId() {
-		return leaveCategoryId;
-	}
-
-	public void setLeaveCategoryId(Integer leaveCategoryId) {
-		this.leaveCategoryId = leaveCategoryId;
-	}
-
-	public void setStatus(AuditStatusEnum status){
-		this.status = status;
-	}
-	
-	public AuditStatusEnum getStatus(){
-		return this.status;
-	}
-			
-	public void setRemark(String remark){
-		this.remark = remark;
-	}
-	
-	public String getRemark(){
-		return this.remark;
-	}
-			
-	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;
-	}
-			
-	public void setStartTime(java.util.Date startTime){
-		this.startTime = startTime;
-	}
-	
-	public java.util.Date getStartTime(){
-		return this.startTime;
-	}
-			
-	public void setEndTime(java.util.Date endTime){
-		this.endTime = endTime;
-	}
-	
-	public java.util.Date getEndTime(){
-		return this.endTime;
-	}
-			
-	public void setCoursesScheduleJson(String coursesScheduleJson){
-		this.coursesScheduleJson = coursesScheduleJson;
-	}
-	
-	public String getCoursesScheduleJson(){
-		return this.coursesScheduleJson;
-	}
-			
-	public void setWfProcessId(String wfProcessId){
-		this.wfProcessId = wfProcessId;
-	}
-	
-	public String getWfProcessId(){
-		return this.wfProcessId;
-	}
-			
-	public void setWfOrderId(String wfOrderId){
-		this.wfOrderId = wfOrderId;
-	}
-	
-	public String getWfOrderId(){
-		return this.wfOrderId;
-	}
-			
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
-	}
-
-
-	public class CoursesScheduleHistory{
-	
-	private CourseSchedule before;
-	
-	private CourseSchedule after;
-
-	public CourseSchedule getBefore() {
-		return before;
-	}
-
-	public void setBefore(CourseSchedule before) {
-		this.before = before;
-	}
-
-	public CourseSchedule getAfter() {
-		return after;
-	}
-
-	public void setAfter(CourseSchedule after) {
-		this.after = after;
-	}
-}
+    /**
+     *
+     */
+    private Long id;
+
+    /**
+     *
+     */
+    private Integer userId;
+
+    /**
+     * 请假天数
+     */
+    private double days;
+
+    /**
+     * 请假类型
+     */
+    private Integer leaveCategoryId;
+
+    /**
+     * 请假类型名称
+     */
+    private String leaveCategoryName;
+
+    /**
+     * 请假状态(审批中、拒绝、通过)
+     */
+    private AuditStatusEnum status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     *
+     */
+    private java.util.Date createTime;
+
+    /**
+     *
+     */
+    private java.util.Date updateTime;
+
+    /**
+     * 请假开始时间
+     */
+    private java.util.Date startTime;
+
+    /**
+     * 请假结束时间
+     */
+    private java.util.Date endTime;
+
+    /**
+     * 课程调整
+     */
+    private String coursesScheduleJson;
+
+    /**
+     * 流程定义
+     */
+    private String wfProcessId;
+
+    /**
+     * 流程实例
+     */
+    private String wfOrderId;
+
+    public String getLeaveCategoryName() {
+        return leaveCategoryName;
+    }
+
+    public void setLeaveCategoryName(String leaveCategoryName) {
+        this.leaveCategoryName = leaveCategoryName;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return this.id;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getUserId() {
+        return this.userId;
+    }
+
+    public void setDays(double days) {
+        this.days = days;
+    }
+
+    public double getDays() {
+        return this.days;
+    }
+
+    public Integer getLeaveCategoryId() {
+        return leaveCategoryId;
+    }
+
+    public void setLeaveCategoryId(Integer leaveCategoryId) {
+        this.leaveCategoryId = leaveCategoryId;
+    }
+
+    public void setStatus(AuditStatusEnum status) {
+        this.status = status;
+    }
+
+    public AuditStatusEnum getStatus() {
+        return this.status;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getRemark() {
+        return this.remark;
+    }
+
+    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;
+    }
+
+    public void setStartTime(java.util.Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public java.util.Date getStartTime() {
+        return this.startTime;
+    }
+
+    public void setEndTime(java.util.Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public java.util.Date getEndTime() {
+        return this.endTime;
+    }
+
+    public void setCoursesScheduleJson(String coursesScheduleJson) {
+        this.coursesScheduleJson = coursesScheduleJson;
+    }
+
+    public String getCoursesScheduleJson() {
+        return this.coursesScheduleJson;
+    }
+
+    public void setWfProcessId(String wfProcessId) {
+        this.wfProcessId = wfProcessId;
+    }
+
+    public String getWfProcessId() {
+        return this.wfProcessId;
+    }
+
+    public void setWfOrderId(String wfOrderId) {
+        this.wfOrderId = wfOrderId;
+    }
+
+    public String getWfOrderId() {
+        return this.wfOrderId;
+    }
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this);
+    }
+
+
+    public static class CoursesScheduleHistory {
+
+        private CourseSchedule before;
+
+        private CourseSchedule after;
+
+        public CourseSchedule getBefore() {
+            return before;
+        }
+
+        public void setBefore(CourseSchedule before) {
+            this.before = before;
+        }
+
+        public CourseSchedule getAfter() {
+            return after;
+        }
+
+        public void setAfter(CourseSchedule after) {
+            this.after = after;
+        }
+    }
 }

+ 23 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRechargeQueryInfo.java

@@ -1,12 +1,29 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.TransTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
 
-/**
- * @author : chengp
- * @version V1.0
- * @Description: TODO
- * @date Date : 2019年09月24日 10:07
- */
 public class StudentRechargeQueryInfo extends QueryInfo {
+
+	private DealStatusEnum status;
+	
+	private TransTypeEnum transType;
+
+	public DealStatusEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(DealStatusEnum status) {
+		this.status = status;
+	}
+
+	public TransTypeEnum getTransType() {
+		return transType;
+	}
+
+	public void setTransType(TransTypeEnum transType) {
+		this.transType = transType;
+	}
+
 }

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

@@ -77,7 +77,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
      * @Date: 2019/9/17
      * 根据日期获取当日排课信息
      */
-    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Date classDate);
+    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate);
 
     /**
      * @Author: Joburgess

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

@@ -47,5 +47,5 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
      * @param musicGroupId
      * @param subjectId
      */
-    void addApplyStudentNum(String musicGroupId, Integer subjectId);
+    void addApplyStudentNum(String musicGroupId, Integer subjectId,int num);
 }

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

@@ -35,7 +35,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @param subId
 	 * @return
 	 */
-	Integer batchUpdateSubject(String userId, Integer subId,String musicGroupId);
+	Integer batchUpdateSubject(Integer userId, Integer subId,String musicGroupId) throws Exception;
 
 	/**
 	 * 学生报名缴费金额详情

+ 15 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherLeaveRecordService.java

@@ -1,9 +1,12 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeaveRecord> {
 
 	/**
@@ -23,4 +26,15 @@ public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeav
 	 * @return
 	 */
 	public boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark);
-}
+
+	/**
+	 * @describe 检测课程安排是否与老师的请假时间存在冲突
+	 * @author Joburgess
+	 * @date 2019/10/29
+	 * @param courseSchedules: 课程计划
+	 * @return void
+	 */
+	void checkCourseSchedulePlansExitLeaveRecord(List<CourseSchedule> courseSchedules);
+
+
+}

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

@@ -99,7 +99,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param computeTotalPrice: 是否计算课程购买总价
      * @return java.util.Map
      */
-    Map countVipGroupPredictFee(VipGroup vipGroup,
+    <K extends VipGroup> Map countVipGroupPredictFee(K vipGroup,
                                 Integer teacherId,
                                 BigDecimal onlineClassesUnitPrice,
                                 BigDecimal offlineClassesUnitPrice,
@@ -219,4 +219,4 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     List<School> querySchoolByUserId(Integer userId);
     
-}
+}

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

@@ -764,7 +764,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (Objects.isNull(courseScheduleId)) {
             throw new BizException("请指定课程编号");
         }
-        return classGroupStudentMapperDao.findStudentByCourse(courseScheduleId);
+        List<StudentAttendanceViewDto> studentByCourse = classGroupStudentMapperDao.findStudentByCourse(courseScheduleId);
+        List<StudentAttendanceViewDto> leaveStudent = studentByCourse.stream().filter(studentAttendanceViewDto -> StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())).collect(Collectors.toList());
+        List<StudentAttendanceViewDto> notLeaveStudent = studentByCourse.stream().filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())).collect(Collectors.toList());
+        notLeaveStudent.addAll(leaveStudent);
+        return notLeaveStudent;
     }
 
     @Override

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

@@ -233,15 +233,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Date classDate) {
+	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate) {
 		if(Objects.isNull(classDate)){
 			throw new BizException("请选择上课日期!");
 		}
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if(null==user){
-			throw new BizException("请登录");
-		}
-		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, user.getId().longValue());
+		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, userId.longValue());
 		teacherCourseSchedulesWithDate.forEach(courseScheduleDto -> {
 			if(Objects.nonNull(courseScheduleDto.getClassGroupId())){
 				String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(courseScheduleDto.getClassGroupId().longValue());

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

@@ -22,6 +22,7 @@ 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.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
@@ -86,7 +87,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		sysUserCashAccountDao.insert(new SysUserCashAccount(employee.getId(),"CNY"));
 		//添加用户电子签章账户
 		contractService.register(employee.getId());
-		ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(), employee.getAvatar()));
+		ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(),
+				StringUtils.isEmpty(employee.getAvatar())?"https://daya-online.oss-cn-beijing.aliyuncs.com/201910/RgHwgKc.jpg":employee.getAvatar()));
 		employee.setImToken(imResult.getToken());
 		employeeDao.update(employee);
 	}

+ 18 - 67
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,75 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang3.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 com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ChargeTypeDao;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
-import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.SchoolDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
-import com.ym.mec.biz.dal.dto.MusicCardDto;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
-import com.ym.mec.biz.dal.entity.ApprovalStatus;
-import com.ym.mec.biz.dal.entity.ChargeType;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+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.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.entity.School;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.PayService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.biz.service.SysUserCashAccountDetailService;
-import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -80,6 +19,15 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.lang3.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 java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
@@ -616,7 +564,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         // 获取收费类型编号列表
         Set<Integer> chargeTypeIds = musicGroupList.stream().map(e -> e.getChargeTypeId()).collect(Collectors.toSet());
-        List<Map<Integer, String>> chargeTypeNames = chargeTypeDao.queryNameByIds(chargeTypeIds);
+        if(chargeTypeIds == null){
+            chargeTypeIds = new HashSet<>();
+        }
+        List<Map<Integer, String>> chargeTypeNames = chargeTypeDao.queryNameByIds(StringUtils.join(chargeTypeIds,","));
         Map<Integer, String> chargeTypeNameMap = MapUtil.convertMybatisMap(chargeTypeNames);
 
         musicGroupList.forEach(e -> {

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

@@ -106,10 +106,10 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     }
 
     @Override
-    public void addApplyStudentNum(String musicGroupId, Integer subjectId) {
+    public void addApplyStudentNum(String musicGroupId, Integer subjectId,int num) {
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
         int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
-        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + 1);
+        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + num);
         musicOneSubjectClassPlan.setUpdateTime(new Date());
         musicGroupSubjectPlanDao.update(musicOneSubjectClassPlan);
     }

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

@@ -72,10 +72,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			throw new BizException("请指定课程");
 		}
 		studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
-		int classTimes=courseScheduleDao.countClassTimes(courseSchedule.getClassGroupId().longValue());
+		int classTimes=courseScheduleDao.countClassTimes(courseSchedule.getClassGroupId().longValue(),courseSchedule.getStartClassTime());
 		studentAttendances.forEach(studentAttendance -> {
 			studentAttendance.setTeacherId(sysUser.getId());
-			studentAttendance.setCurrentClassTimes(classTimes);
+			studentAttendance.setCurrentClassTimes(classTimes+1);
 			StudentAttendance studentAttendanceInfo = studentAttendanceDao.getStudentAttendanceInfo(studentAttendance);
 			if (studentAttendance.getStatus() != StudentAttendanceStatusEnum.DROP_OUT) {
 				//判断是否为连续旷课

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

@@ -88,9 +88,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
-    public Integer batchUpdateSubject(String userIds, Integer subId, String musicGroupId) {
+    @Transactional(rollbackFor = Exception.class)
+    public Integer batchUpdateSubject(Integer userId, Integer subId, String musicGroupId) throws Exception {
+        //获取当前学员的当前声部
+        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+        if(studentRegistration == null){
+            throw new Exception("学员信息不存在");
+        }
+        //当前专业报名人数减一
+        musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId,subId,-1);
         //批量调剂(未缴费学员)
-        return studentRegistrationDao.batchUpdateSubject(userIds, subId, musicGroupId);
+        int i = studentRegistrationDao.batchUpdateSubject(userId, subId, musicGroupId);
+        //修改专业已报名人数
+        musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId,subId,1);
+        return i;
     }
 
     @Override
@@ -164,7 +175,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistration.setUserId(sysUser.getId());
         studentRegistrationDao.insert(studentRegistration);
         //增加报名学生数
-        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
         return studentRegistration;
     }
 
@@ -383,7 +394,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             //学生报名表
             studentRegistrationDao.insert(studentRegistration);
             //增加报名学生数
-            musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+            musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
             if (studentRegistration.getClassGroupId() != null) {
                 ClassGroup classGroup = classGroupDao.get(studentRegistration.getClassGroupId());
                 if (classGroup != null) {

+ 55 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -1,15 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-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 com.ym.mec.biz.dal.dao.TeacherLeaveRecordDao;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
@@ -22,6 +12,18 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
+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 java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord> implements TeacherLeaveRecordService {
@@ -49,6 +51,28 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		teacherLeaveRecord.setStatus(AuditStatusEnum.ING);
 		teacherLeaveRecord.setDays(DateUtil.hoursBetween(teacherLeaveRecord.getStartTime(), teacherLeaveRecord.getEndTime()) / 8d);
 
+		if (StringUtils.isNotBlank(teacherLeaveRecord.getCoursesScheduleJson())) {
+			List<CoursesScheduleHistory> coursesScheduleHistoryList = JsonUtil.parseArray(teacherLeaveRecord.getCoursesScheduleJson(),
+					CoursesScheduleHistory.class);
+
+			if (coursesScheduleHistoryList != null && coursesScheduleHistoryList.size() > 0) {
+
+				List<CourseSchedule> list = new ArrayList<CourseSchedule>();
+
+				for (CoursesScheduleHistory his : coursesScheduleHistoryList) {
+
+					if(!teacherLeaveRecord.getEndTime().before(his.getAfter().getStartClassTime())
+							&&!teacherLeaveRecord.getStartTime().after(his.getAfter().getEndClassTime())){
+						throw new BizException("课程时间与老师请假时间存在冲突");
+					}
+
+					list.add(his.getAfter());
+				}
+
+				checkCourseSchedulePlansExitLeaveRecord(list);
+			}
+		}
+
 		teacherLeaveRecordDao.insert(teacherLeaveRecord);
 		return true;
 	}
@@ -89,4 +113,24 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 
 		return true;
 	}
-}
+
+	@Override
+	public void checkCourseSchedulePlansExitLeaveRecord(List<CourseSchedule> courseSchedules){
+		Date now=new Date();
+		List<Long> teacherIds = courseSchedules.stream().map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
+		List<TeacherLeaveRecord> teacherLeaveRecords = teacherLeaveRecordDao.findByTeacherIds(teacherIds, now);
+		Map<Integer, List<TeacherLeaveRecord>> teacherLeaveRecordByTeacher = teacherLeaveRecords.stream().collect(Collectors.groupingBy(TeacherLeaveRecord::getUserId));
+		courseSchedules.forEach(courseSchedule -> {
+			List<TeacherLeaveRecord> teacherLeaveRecordsWithTeacher = teacherLeaveRecordByTeacher.get(courseSchedule.getActualTeacherId());
+			if(CollectionUtils.isEmpty(teacherLeaveRecordsWithTeacher)){
+				return;
+			}
+			teacherLeaveRecordsWithTeacher.forEach(teacherLeaveRecord -> {
+				if(!teacherLeaveRecord.getEndTime().before(courseSchedule.getStartClassTime())
+					&&!teacherLeaveRecord.getStartTime().after(courseSchedule.getEndClassTime())){
+					throw new BizException("课程时间与老师请假时间存在冲突");
+				}
+			});
+		});
+	}
+}

+ 78 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -18,6 +18,7 @@ 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 com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -86,6 +87,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private SysConfigService sysConfigService;
 	@Autowired
 	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
+	@Autowired
+	private VipGroupDefaultClassesCycleDao vipGroupDefaultClassesCycleDao;
+
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
 		return vipGroupDao;
@@ -118,6 +122,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				||(!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE))&&(courseScheduleGroup.get(TeachModeEnum.OFFLINE).size()<vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()))){
 	        throw new BizException("线下课课时数量安排有误!");
         }
+
         if((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE))&&vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()!=0)
 				||(!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE))&&(courseScheduleGroup.get(TeachModeEnum.ONLINE).size()<vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()))){
             throw new BizException("线上课课时数量安排有误!");
@@ -129,11 +134,30 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         	throw new BizException("该用户不存在");
 		}
 
+		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
+
 		//获取活动信息
-        VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId().intValue());
+		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId().intValue());
+		Integer totalClassTimes=vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum();
+		//获取第一节课
+		CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		//获取最后一节课
+		CourseSchedule latestCourseSchedule = vipGroup.getCourseSchedules().stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
+		//判断课程安排是否超出范围
+		if(Objects.nonNull(vipGroupActivity.getCoursesEndTime())||Objects.nonNull(vipGroupActivity.getCoursesStartTime())){
+			if(latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
+					||firstCourseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())){
+				throw new BizException("课时安排时间超出范围!");
+			}
+		}else{
+			VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.findByOrganAndClassTimes(sysUser.getOrganId().longValue(), totalClassTimes);
+			int month = DateUtil.monthsBetween(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
+			if(month>vipGroupDefaultClassesCycle.getMonth()){
+				throw new BizException("课时安排时间超出范围!");
+			}
+		}
 
 		//生成vip课信息
-		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
 		List<String> bySubIds = subjectDao.findBySubIds(vipGroupApplyBaseInfoDto.getSubjectIdList());
 		StringBuffer className=new StringBuffer(StringUtils.join(bySubIds,","));
 		className.append("•");
@@ -158,6 +182,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
 		vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.APPLYING);
 		vipGroupApplyBaseInfoDto.setOrganId(sysUser.getOrganId());
+		//课程结束时间为排课的最后一节课的结束时间
+		vipGroupApplyBaseInfoDto.setCoursesExpireDate(latestCourseSchedule.getEndClassTime());
 		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
 
 		//获取vip课类型信息
@@ -168,8 +194,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroup.setSubjectIdList(vipGroupApplyBaseInfoDto.getSubjectIdList());
 		classGroup.setExpectStudentNum(vipGroupCategory.getStudentNum());
 		classGroup.setName(vipGroupApplyBaseInfoDto.getName());
-		classGroup.setExpectStudentNum(vipGroupApplyBaseInfoDto.getExpectStudentNum());
-		classGroup.setTotalClassTimes(vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum());
+		classGroup.setExpectStudentNum(vipGroupApplyBaseInfoDto.getStudentNum());
+		classGroup.setTotalClassTimes(totalClassTimes);
 		classGroup.setType(ClassGroupTypeEnum.VIP);
 		classGroup.setDelFlag(YesOrNoEnum.NO);
 		classGroup.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
@@ -203,10 +229,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//课程信息调整
 		vipGroup.getCourseSchedules().forEach(courseSchedule -> {
-		    if(courseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
-                &&courseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())){
-		        throw new BizException("课时安排时间超出范围!");
-            }
 		    courseSchedule.setSchoolId(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId());
 		    courseSchedule.setTeacherId(vipGroupApplyBaseInfoDto.getUserId().longValue());
 			courseSchedule.setActualTeacherId(vipGroupApplyBaseInfoDto.getUserId().longValue());
@@ -449,11 +471,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     }
 
     @Override
-    public Map<String,BigDecimal> countVipGroupPredictFee(VipGroup vipGroup,
+    public <K extends VipGroup> Map<String,BigDecimal> countVipGroupPredictFee(K vipGroup,
 														  Integer teacherId,
 														  BigDecimal onlineClassesUnitPrice,
 														  BigDecimal offlineClassesUnitPrice,
 														  boolean computeTotalPrice){
+
 		if(Objects.isNull(teacherId)){
 			throw new BizException("请指定教师");
 		}
@@ -496,15 +519,25 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 		BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 		BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum);
+		BigDecimal teacherOnlineSalary,teacherOfflineSalary;
 
 		//教师课酬线上单课酬计算
 		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
 			switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
 				case TEACHER_DEFAULT:
 					if(Objects.isNull(teacherDefaultVipGroupSalary)){
-						throw new BizException("未设置教师默认课酬");
+						if(vipGroup instanceof VipGroupApplyBaseInfoDto){
+							teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
+						}else{
+							throw new BizException("未设置教师默认课酬");
+						}
+					}else{
+						teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
+					}
+					if(Objects.isNull(teacherOnlineSalary)){
+						throw new BizException("请设置教师课酬");
 					}
-					results.put("onlineTeacherSalary",teacherDefaultVipGroupSalary.getOnlineClassesSalary().multiply(classTimeDuty));
+					results.put("onlineTeacherSalary",teacherOnlineSalary.multiply(classTimeDuty));
 					break;
 				case RATIO_DISCOUNT:
 					results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
@@ -522,9 +555,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){
 				case TEACHER_DEFAULT:
 					if(Objects.isNull(teacherDefaultVipGroupSalary)){
-						throw new BizException("未设置教师默认课酬");
+						if(vipGroup instanceof VipGroupApplyBaseInfoDto){
+							teacherOfflineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOfflineTeacherSalary();
+						}else{
+							throw new BizException("未设置教师默认课酬");
+						}
+					}else{
+						teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
 					}
-					results.put("offlineTeacherSalary",teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(classTimeDuty));
+					if(Objects.isNull(teacherOfflineSalary)){
+						throw new BizException("请设置教师课酬");
+					}
+					results.put("offlineTeacherSalary",teacherOfflineSalary.multiply(classTimeDuty));
 					break;
 				case RATIO_DISCOUNT:
 					results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
@@ -669,6 +711,29 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//将学生加入到班级,更新班级报名状态及人数信息
 		if(!isOk){
 			updateVipGroupStudentNumAndStatus(vipGroupId,-1);
+		}else{
+			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
+			//插入缴费明细
+			//收入
+			SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
+			sysUserIncomeCashAccountDetail.setUserId(userId);
+			sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
+			sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+			sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
+			sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
+			sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
+
+			//支出
+			SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
+			sysUserExpendCashAccountDetail.setUserId(userId);
+			sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
+			sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+			sysUserExpendCashAccountDetail.setAmount(order.getActualAmount());
+			sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+			sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
+
+			sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+			sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
 		}
 
 		VipGroup vipGroup = vipGroupDao.get(vipGroupId);

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

@@ -79,9 +79,6 @@
 		SELECT COUNT(*) FROM charge_type WHERE del_flag_ = 0
 	</select>
     <select id="queryNameByIds" resultType="java.util.Map" parameterType="list">
-        SELECT id_ `key`,name_ `value` FROM charge_type WHERE id_ IN
-        <foreach item="item" index="index" collection="chargeTypeIds" open="(" separator="," close=")">
-            #{item}
-        </foreach>
+        SELECT id_ `key`,name_ `value` FROM charge_type WHERE FIND_IN_SET(id_,#{chargeTypeIds})
     </select>
 </mapper>

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

@@ -25,7 +25,7 @@
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="CooperationOrgan">
-		SELECT * FROM cooperation_organ
+		SELECT * FROM cooperation_organ AND del_flag_ = 0
 		ORDER BY id_
 	</select>
 
@@ -99,6 +99,6 @@
         </where>
 	</select>
     <select id="queryByOrganId" resultMap="CooperationOrgan">
-        SELECT * FROM cooperation_organ WHERE organ_id_ = #{organId}
+        SELECT * FROM cooperation_organ WHERE organ_id_ = #{organId} AND del_flag_ = 0
     </select>
 </mapper>

+ 48 - 9
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -55,7 +55,25 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="CourseSchedule">
-        SELECT * FROM course_schedule WHERE id_ = #{id}
+        SELECT
+          	id_,
+            class_group_id_,
+            status_,
+            subsidy_,
+            class_date_,
+            CONCAT(class_date_,' ',start_class_time_) start_class_time_,
+            CONCAT(class_date_,' ',end_class_time_) end_class_time_,
+            teacher_id_,
+            actual_teacher_id_,
+            create_time_,
+            update_time_,
+            teach_mode_,
+            type_,
+            name_,
+            student_num_,
+            leave_student_num_,
+            schoole_id_
+        FROM course_schedule WHERE id_ = #{id}
     </select>
 
     <!-- 全查询 -->
@@ -544,11 +562,12 @@
 
     <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
         SELECT
-        cs.class_date_
+          cs.class_date_
         FROM
-        course_schedule cs
+            course_schedule_teacher_salary csts
+            LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
         WHERE
-        cs.actual_teacher_id_ = #{teacherId}
+          csts.user_id_ = #{teacherId}
         <if test="month==null">
             AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
         </if>
@@ -664,10 +683,12 @@
     </select>
     <select id="countClassTimes" resultType="int">
         SELECT
-        COUNT(*)
+          COUNT( * )
         FROM
-        course_schedule cs
-        WHERE cs.class_group_id_=#{classGroupId} AND cs.status_!="NOT_START"
+          course_schedule
+        WHERE
+          class_group_id_ = #{classGroupId}
+         AND CONCAT( class_date_, ' ', end_class_time_ ) &lt;= #{startClassTime}
     </select>
     <select id="getCourseSchedules" resultMap="courseScheduleDto">
         SELECT
@@ -873,7 +894,7 @@
             cs.actual_teacher_id_,
             su.username_,
             cg.total_class_times_,
-            GROUP_CONCAT(ssu.username_) student_names_,
+            GROUP_CONCAT(IF(sa.status_='NORMAL',ssu.username_,NULL)) student_names_,
             MAX(sa.current_class_times_) current_class_times_
         FROM
           student_attendance sa
@@ -931,7 +952,25 @@
     </select>
     
     <select id="queryTeacherCourseScheduleListByTimeRangeAndType" resultMap="CourseSchedule" parameterType="map">
-        SELECT * FROM course_schedule WHERE teacher_id_=#{teacherId} and CONCAT( class_date_, ' ', start_class_time_ ) between #{startTime} and #{endTime}
+        SELECT
+            id_,
+            class_group_id_,
+            status_,
+            subsidy_,
+            class_date_,
+            CONCAT(class_date_,' ',start_class_time_) start_class_time_,
+            CONCAT(class_date_,' ',end_class_time_) end_class_time_,
+            teacher_id_,
+            actual_teacher_id_,
+            create_time_,
+            update_time_,
+            teach_mode_,
+            type_,
+            name_,
+            student_num_,
+            leave_student_num_,
+            schoole_id_
+        FROM course_schedule WHERE teacher_id_=#{teacherId} and CONCAT( class_date_, ' ', start_class_time_ ) between #{startTime} and #{endTime}
         <if test="type != null">
         and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>

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

@@ -157,7 +157,8 @@
             #{teacherId} teacher_id_,
             #{status} status_,
             #{remark} remark_,
-            #{courseScheduleId} course_schedule_id_
+            #{courseScheduleId} course_schedule_id_,
+            #{currentClassTimes} current_class_times_
         FROM
             course_schedule cs
             LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_

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

@@ -21,6 +21,12 @@
         <result column="create_time_" property="createTime"/>
         <result column="modify_time_" property="modifyTime"/>
     </resultMap>
+    
+    <resultMap type="com.ym.mec.biz.dal.entity.StudentRecharge" id="StudentRechargeVO" extends="StudentRecharge">
+        <result column="username_" property="user.username"/>
+        <result column="trans_no_" property="transNo"/>
+        <result column="trans_type_" property="transType"/>
+    </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="StudentRecharge">
@@ -92,14 +98,27 @@
 	</delete>
 
     <!-- 分页查询 -->
-    <select id="queryPage" resultMap="StudentRecharge" parameterType="map">
-        SELECT * FROM student_recharge ORDER BY id_
+    <select id="queryPage" resultMap="StudentRechargeVO" parameterType="map">
+        SELECT sr.*,u.username_,cad.trans_no_,cad.trans_type_ FROM student_recharge sr left join sys_user u on sr.user_id_ = u.id_ left join sys_user_cash_account_detail cad on sr.user_id_ = cad.user_id_ where 1 = 1
+        <if test="status != null">
+           and sr.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+        <if test="transType != null">
+           and cad.trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+        ORDER BY sr.id_
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM student_recharge
+		SELECT COUNT(1) FROM student_recharge sr left join sys_user u on sr.user_id_ = u.id_ left join sys_user_cash_account_detail cad on sr.user_id_ = cad.user_id_ where 1 = 1
+		<if test="status != null">
+           and sr.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+        <if test="transType != null">
+           and cad.trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
 	</select>
 
     <select id="queryByTransNo" resultMap="StudentRecharge">

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

@@ -264,9 +264,10 @@
         UPDATE student_registration SET class_group_id_ = #{studentRegistration.classGroupId} WHERE user_id_ =
         #{studentRegistration.userId} AND music_group_id_ = #{studentRegistration.musicGroupId}
     </update>
+
     <update id="batchUpdateSubject">
         UPDATE student_registration SET actual_subject_id_ = #{subId},update_time_ = now()
-        WHERE FIND_IN_SET(user_id_,#{userIds}) AND payment_status_ = 0 AND music_group_id_ = #{musicGroupId}
+        WHERE user_id_ = #{userIds} AND payment_status_ = 0 AND music_group_id_ = #{musicGroupId}
     </update>
 
     <select id="queryStudentInfo" resultMap="StudentInfo">
@@ -326,7 +327,7 @@
         <if test="actualSubjectId != null and actualSubjectId !=''">
             AND actual_subject_id_ = #{actualSubjectId}
         </if>
-        AND payment_status_ = 1 AND class_group_id_ IS NULL;
+        AND payment_status_ = 1 AND class_group_id_ IS NULL
     </select>
 
 

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/TeacherLeaveRecordMapper.xml

@@ -126,4 +126,18 @@
 		SELECT COUNT(tlr.id_) FROM teacher_leave_record tlr
 		<include refid="queryLeavePage"/>
 	</select>
+
+    <select id="findByTeacherIds" resultMap="TeacherLeaveRecord">
+		SELECT
+			*
+		FROM
+			teacher_leave_record tlr
+		WHERE
+			tlr.start_time_ >= #{date}
+			AND status_ = 'PASS'
+			AND user_id_ IN
+			<foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+				#{teacherId}
+			</foreach>
+    </select>
 </mapper>

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupDefaultClassesCycleMapper.xml

@@ -128,4 +128,14 @@ create_time_ = #{createTime},
 		</if>
 		ORDER BY max_class_times_
 	</select>
+    <select id="findByOrganAndClassTimes" resultMap="VipGroupDefaultClassesCycle">
+		SELECT
+			*
+		FROM
+			vip_group_default_classes_cycle
+		WHERE
+			organ_id_ = #{organId}
+			AND #{classTimes} &gt;= min_class_times_
+			AND #{classTimes} $lt;= max_class_times_
+    </select>
 </mapper>

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

@@ -163,8 +163,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_,organ_id_,stop_reason_)
-        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},#{organId},#{stopReason})
+        (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_,organ_id_,stop_reason_,audit_status_)
+        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},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -231,6 +231,9 @@
             <if test="stopReason!=null">
                 stop_reason_=#{stopReason}
             </if>
+            <if test="auditStatus">
+                audit_status_=#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -291,7 +294,7 @@
             su.avatar_,
             t.introduction_,
             vga.type_,
-            vga.attribute1_,
+            IF(vga.type_='GIVE_CLASS',vga.attribute2_,vga.attribute1_) attribute1_,
             vgc.name_ category_name_
         FROM
             vip_group vg

+ 23 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -1,9 +1,12 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
@@ -32,6 +35,8 @@ public class TeacherCourseScheduleController extends BaseController {
     private CourseScheduleService scheduleService;
     @Autowired
     private StudentAttendanceService studentAttendanceService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "根据月份获取该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
@@ -46,9 +51,13 @@ public class TeacherCourseScheduleController extends BaseController {
     @GetMapping("/getCourseSchedulesWithDate")
     public Object getCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date){
         if(Objects.isNull(date)){
-            return failed(HttpStatus.FORBIDDEN, "请指定日期!");
+            return failed("请指定日期!");
         }
-        List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(date);
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(null==user){
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(user.getId(),date);
         Map<String,Object> result = new HashMap<>();
         result.put("rows",teacherCourseSchedulesWithDate);
         result.put("appealDaysRange",1);
@@ -108,4 +117,16 @@ public class TeacherCourseScheduleController extends BaseController {
         return succeed();
     }
 
+    @GetMapping("/statisticsInfo")
+    @ApiOperation("历史考勤统计-头信息")
+    public Object getStatisticsInfo(Integer classGroupId) {
+        return succeed(studentAttendanceService.getStatisticsInfo(classGroupId));
+    }
+
+    @GetMapping("/statisticsList")
+    @ApiOperation("历史考勤统计-考勤列表")
+    public Object statisticsList(CourseHomeworkQueryInfo queryInfo) {
+        return succeed(studentAttendanceService.statisticsList(queryInfo));
+    }
+
 }

+ 32 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentRechargeController.java

@@ -0,0 +1,32 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.dal.page.StudentRechargeQueryInfo;
+import com.ym.mec.biz.service.StudentRechargeService;
+import com.ym.mec.common.controller.BaseController;
+
+@RequestMapping("studentRecharge")
+@Api(tags = "充值服务")
+@RestController
+public class StudentRechargeController extends BaseController {
+
+	@Autowired
+	private StudentRechargeService studentRechargeService;
+
+	@ApiOperation(value = "列表分页查询")
+	@GetMapping(value = "/queryPage", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    @PreAuthorize("@pcs.hasPermissions('studentRecharge/queryPage')")
+	public Object queryPage(StudentRechargeQueryInfo queryInfo) {
+		return succeed(studentRechargeService.queryPage(queryInfo));
+	}
+
+}

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

@@ -44,14 +44,14 @@ public class StudentRegistrationController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "批量调剂学生报名专业")
+    @ApiOperation(value = "调剂学生报名专业")
     @PostMapping("/batchUpdateSubject")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/batchUpdateSubject')")
-    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "学生编号(多个逗号)", required = true, dataType = "String"),
+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "学生编号(多个逗号)", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "subId", value = "声部编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
-    public Object batchUpdateSubject(String userId,Integer subId,String musicGroupId) {
-        if (StringUtils.isEmpty(userId) || subId == null || StringUtils.isEmpty(musicGroupId)) {
+    public Object batchUpdateSubject(Integer userId,Integer subId,String musicGroupId) throws Exception {
+        if (null == userId || subId == null || StringUtils.isEmpty(musicGroupId)) {
             return failed("参数校验异常");
         }
         return succeed(studentRegistrationService.batchUpdateSubject(userId, subId,musicGroupId));

+ 3 - 5
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -3,9 +3,9 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
+import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
@@ -14,10 +14,8 @@ import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -120,7 +118,7 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation("课酬总费用")
     @PostMapping("/getVipGroupCostCount")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/getVipGroupCostCount')")
-    public Object getVipGroupCostCount(VipGroup vipGroup){
+    public Object getVipGroupCostCount(VipGroupApplyBaseInfoDto vipGroup){
         Map results = vipGroupService.countVipGroupPredictFee(vipGroup,
                 vipGroup.getUserId(),
                 vipGroup.getOnlineClassesUnitPrice(),
@@ -134,7 +132,7 @@ public class VipGroupManageController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/stopVipGroup')")
     public Object stopVipGroup(Long vipGroupId,String stopReason){
         if(Objects.isNull(vipGroupId)|| StringUtils.isBlank(stopReason)){
-            return failed(HttpStatus.FORBIDDEN,"请指定vip课并指定取消原因");
+            return failed("请指定vip课并指定取消原因");
         }
         vipGroupService.stopGroup(vipGroupId,stopReason);
         return succeed();