瀏覽代碼

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

zouxuan 5 年之前
父節點
當前提交
9ac44c34cf
共有 49 個文件被更改,包括 446 次插入130 次删除
  1. 8 2
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  2. 7 0
      cms/src/main/java/com/ym/mec/cms/dal/dao/SysNewsInformationDao.java
  3. 10 0
      cms/src/main/java/com/ym/mec/cms/dal/entity/SysNewsInformation.java
  4. 7 0
      cms/src/main/java/com/ym/mec/cms/service/SysNewsInformationService.java
  5. 6 0
      cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java
  6. 15 5
      cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml
  7. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupRelationDao.java
  8. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherSalaryDao.java
  9. 14 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentApplyRefundsDao.java
  10. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseListDto.java
  11. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupManageDetailDto.java
  12. 18 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  13. 24 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentApplyRefunds.java
  14. 6 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java
  15. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentApplyrefundsQueryInfo.java
  16. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherLeaveRecordService.java
  17. 20 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  18. 11 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  19. 9 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  20. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  21. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  22. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  23. 87 25
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  24. 3 7
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  25. 3 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupRelationMapper.xml
  26. 1 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  27. 4 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherSalaryMapper.xml
  28. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleComplaintsMapper.xml
  29. 9 6
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  30. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  31. 20 1
      mec-biz/src/main/resources/config/mybatis/StudentApplyRefundsMapper.xml
  32. 1 1
      mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml
  33. 2 2
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  34. 6 2
      mec-gateway/mec-gateway-web/src/main/resources/application.yml
  35. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java
  36. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/HomeworkNoReplyRemaindTask.java
  37. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/PushNoSignOutMessageTask.java
  38. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/StudentCoursesScheduleRemaindTask.java
  39. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/StudentHomeworkRemaindTask.java
  40. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/StudentSignInRemaindTask.java
  41. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/TeacherCoursesScheduleRemaindTask.java
  42. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/TeacherSignInRemaindTask.java
  43. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/UserAutoUnlockedTask.java
  44. 2 0
      mec-task/src/main/java/com/ym/mec/task/jobs/VipGroupTeacherSalarySettlementTask.java
  45. 1 1
      mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java
  46. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  47. 9 1
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  48. 20 7
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherLeaveRecordController.java
  49. 32 26
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

+ 8 - 2
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -29,8 +29,8 @@ public class NewsController extends BaseController {
 
 	@ApiOperation("查询资讯详情")
 	@ApiImplicitParam(name = "id", value = "资讯ID编号", required = true, dataType = "Long", paramType = "path")
-	@GetMapping(value = "/query/{id}")
-	public Object query(@PathVariable("id") Long id) {
+	@GetMapping(value = "/query")
+	public Object query(Long id) {
 
 		return succeed(sysNewsInformationService.get(id));
 	}
@@ -50,4 +50,10 @@ public class NewsController extends BaseController {
 		return succeed(sysNewsInformationService.update(newsInfo));
 	}
 
+	@ApiOperation("删除")
+	@PostMapping(value = "/del/{id}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	public Object add(@PathVariable("id") Long id) {
+		return succeed(sysNewsInformationService.deleteWithLogical(id));
+	}
+
 }

+ 7 - 0
cms/src/main/java/com/ym/mec/cms/dal/dao/SysNewsInformationDao.java

@@ -13,4 +13,11 @@ public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation>
 	 * @return
 	 */
 	List<SysNewsInformation> queryByType(Integer type);
+
+	/**
+	 * 逻辑删除
+	 * @param id
+	 * @return
+	 */
+	int deleteWithLogical(Long id);
 }

+ 10 - 0
cms/src/main/java/com/ym/mec/cms/dal/entity/SysNewsInformation.java

@@ -45,6 +45,8 @@ public class SysNewsInformation {
 
 	/**  */
 	private java.util.Date updateTime;
+	
+	private Boolean delFlag;
 
 	public String getLinkUrl() {
 		return linkUrl;
@@ -134,6 +136,14 @@ public class SysNewsInformation {
 		return this.updateTime;
 	}
 
+	public Boolean getDelFlag() {
+		return delFlag;
+	}
+
+	public void setDelFlag(Boolean delFlag) {
+		this.delFlag = delFlag;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 7 - 0
cms/src/main/java/com/ym/mec/cms/service/SysNewsInformationService.java

@@ -13,4 +13,11 @@ public interface SysNewsInformationService extends BaseService<Long, SysNewsInfo
 	 * @return
 	 */
 	List<SysNewsInformation> queryByType(Integer type);
+
+	/**
+	 * 逻辑删除
+	 * @param id
+	 * @return
+	 */
+	boolean deleteWithLogical(Long id);
 }

+ 6 - 0
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java

@@ -27,4 +27,10 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 		return sysNewsInformationDao.queryByType(type);
 	}
 
+	@Override
+	public boolean deleteWithLogical(Long id) {
+		sysNewsInformationDao.deleteWithLogical(id);
+		return true;
+	}
+
 }

+ 15 - 5
cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -16,10 +16,12 @@
 		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="del_flag_" property="delFlag" />
 	</resultMap>
 	
 	<sql id="queryCondition">
 		<where>
+			del_flag_=0
 			<if test="type != null">
 				and type_ = #{type}
 			</if>
@@ -37,18 +39,18 @@
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="SysNewsInformation" >
-		SELECT * FROM sys_news_information WHERE id_ = #{id} 
+		SELECT * FROM sys_news_information WHERE id_ = #{id} WHERE del_flag_=0
 	</select>
 	
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="SysNewsInformation">
-		SELECT * FROM sys_news_information ORDER BY id_
+		SELECT * FROM sys_news_information WHERE del_flag_=0 ORDER BY id_
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.cms.dal.entity.SysNewsInformation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_,link_url_,href_target_,order_)
-		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now,#{linkUrl},#{hrefTarget},#{order})
+		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_,link_url_,href_target_,order_,del_flag_)
+		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),#{linkUrl},#{hrefTarget},#{order},0)
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -82,6 +84,9 @@
 			<if test="order != null">
 				order_ = #{order},
 			</if>
+			<if test="delFlag != null">
+				del_flag_ = #{delFlag},
+			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -101,16 +106,21 @@
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM sys_news_information 
+		SELECT COUNT(*) FROM sys_news_information
 		<include refid="queryCondition" />
 	</select>
 	
 	<select id="queryByType" resultMap="SysNewsInformation" parameterType="java.lang.Integer">
 		SELECT * FROM sys_news_information 
 		<where>
+			del_flag_=0
 			<if test="type != null">
 				and type_ = #{type}
 			</if>
 		</where>
 	</select>
+	
+	<update id="deleteWithLogical">
+		UPDATE sys_news_information SET del_flag_ = 1,update_time_ = NOW() WHERE id_ = #{id}
+	</update>
 </mapper>

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupRelationDao.java

@@ -27,8 +27,16 @@ public interface ClassGroupRelationDao extends BaseDAO<Integer, ClassGroupRelati
 
     /**
      * 根据子班id'查询父班id
+     *
      * @param subClassGroupId
      * @return
      */
     ClassGroupRelation findClassGroupRelation(@Param("subClassGroupId") Integer subClassGroupId);
+
+    /**
+     * 删除单技跟跟合奏班关系
+     * @param subClassGroupId
+     * @return
+     */
+    int deleteBySubClassId(@Param("classGroupId") Integer subClassGroupId);
 }

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

@@ -15,4 +15,15 @@ public interface ClassGroupTeacherSalaryDao extends BaseDAO<Long, ClassGroupTeac
      * @return
      */
     List<ClassGroupTeacherSalary> findByMusicGroupId(@Param("musicGroupId") String musicGroupId);
-}
+
+    /**
+     * @describe 获取班级与老师课酬
+     * @author Joburgess
+     * @date 2019/11/11
+     * @param vipGroupId: vip课编号
+     * @param teacherId: 老师编号
+     * @return com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary
+     */
+    ClassGroupTeacherSalary findByVipGoupAndTeacher(@Param("vipGroupId") Integer vipGroupId,
+                                                    @Param("teacherId") Integer teacherId);
+}

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

@@ -2,8 +2,21 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 public interface StudentApplyRefundsDao extends BaseDAO<Long, StudentApplyRefunds> {
 
+    /**
+     * @describe 检测对应课程是否存在退课申请
+     * @author Joburgess
+     * @date 2019/11/10
+     * @param musicGroupIds: 乐团编号列表
+     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Integer>>
+     */
+    List<Map<String,Integer>> checkIsApplyRefund(@Param("musicGroupIds") List<String> musicGroupIds,
+                                                 @Param("userId") Integer userId);
 	
-}
+}

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

@@ -57,6 +57,16 @@ public class CourseListDto {
     //续费状态
     private MusicGroupStudentFee.PaymentStatus paymentStatus;
 
+    private Integer isApply;
+
+    public Integer getIsApply() {
+        return isApply;
+    }
+
+    public void setIsApply(Integer isApply) {
+        this.isApply = isApply;
+    }
+
     public Integer getClassGroupId() {
         return classGroupId;
     }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupManageDetailDto.java

@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.VipGroup;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -33,6 +34,26 @@ public class VipGroupManageDetailDto extends VipGroup {
     @ApiModelProperty(value = "教学点名称")
     private String teacherSchoolName;
 
+    private BigDecimal onlineTeacherSalary;
+
+    private BigDecimal offlineTeacherSalary;
+
+    public BigDecimal getOnlineTeacherSalary() {
+        return onlineTeacherSalary;
+    }
+
+    public void setOnlineTeacherSalary(BigDecimal onlineTeacherSalary) {
+        this.onlineTeacherSalary = onlineTeacherSalary;
+    }
+
+    public BigDecimal getOfflineTeacherSalary() {
+        return offlineTeacherSalary;
+    }
+
+    public void setOfflineTeacherSalary(BigDecimal offlineTeacherSalary) {
+        this.offlineTeacherSalary = offlineTeacherSalary;
+    }
+
     public String getTeacherSchoolName() {
         return teacherSchoolName;
     }

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

@@ -1,6 +1,13 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.common.enums.BaseEnum;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
@@ -8,15 +15,6 @@ import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Objects;
 
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachModeEnum;
-import com.ym.mec.common.enums.BaseEnum;
-
 /**
  * 对应数据库表(course_schedule):
  */
@@ -117,7 +115,17 @@ public class CourseSchedule {
 
 	/** 主教是否不需要重新生成课酬 */
 	private boolean bishopTeacherSalaryNotCreate;
-	
+
+	private String classGroupName;
+
+	public String getClassGroupName() {
+		return classGroupName;
+	}
+
+	public void setClassGroupName(String classGroupName) {
+		this.classGroupName = classGroupName;
+	}
+
 	private SysUser teacher = new SysUser();
 
 	public boolean isBishopTeacherSalaryNotCreate() {

+ 24 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentApplyRefunds.java

@@ -1,10 +1,8 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.enums.AuditStatusEnum;
-
+import com.ym.mec.common.enums.BaseEnum;
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -13,6 +11,25 @@ import java.math.BigDecimal;
  * 对应数据库表(student_apply_refunds):
  */
 public class StudentApplyRefunds {
+	
+	public enum StudentApplyRefundsStatus implements BaseEnum<String, StudentApplyRefundsStatus>{
+		ING("审核中"), REJECT("拒绝"), WAIT_PAYMENT("待支付"),DONE("完成");
+		private String desc;
+		
+		private StudentApplyRefundsStatus(String desc) {
+			this.desc = desc;
+		}
+
+		@Override
+		public String getCode() {
+			return name();
+		}
+
+		public String getDesc() {
+			return desc;
+		}
+
+	}
 
 	/**  */
 	private Long id;
@@ -26,7 +43,7 @@ public class StudentApplyRefunds {
 	private String orderNo;
 
 	@ApiModelProperty(value = "审核状态",required = true)
-	private AuditStatusEnum status;
+	private StudentApplyRefundsStatus status;
 	
 	/** 预计退费金额 */
 	@ApiModelProperty(value = "预计退费金额",required = true)
@@ -51,7 +68,7 @@ public class StudentApplyRefunds {
 	private StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
 	
 	private SysUser user = new SysUser();
-	
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -76,11 +93,11 @@ public class StudentApplyRefunds {
 		return this.orderNo;
 	}
 
-	public AuditStatusEnum getStatus() {
+	public StudentApplyRefundsStatus getStatus() {
 		return status;
 	}
 
-	public void setStatus(AuditStatusEnum status) {
+	public void setStatus(StudentApplyRefundsStatus status) {
 		this.status = status;
 	}
 

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

@@ -12,10 +12,10 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
     private String musicGroupId;
 
     @ApiModelProperty(value = "学员状态 NORMAL(NORMAL, 在读), LEAVE(LEAVE, 请假), QUIT(QUIT, 退班)",required = false)
-    private Integer studentStatus;
+    private String studentStatus;
 
     @ApiModelProperty(value = "缴费状态  PAID_COMPLETED(完成缴费), NON_PAYMENT(未缴费), PROCESSING(缴费中)",required = false)
-    private Integer paymentStatus;
+    private String paymentStatus;
 
     public String getMusicGroupId() {
         return musicGroupId;
@@ -33,19 +33,19 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
         this.subjectId = subjectId;
     }
 
-    public Integer getStudentStatus() {
+    public String getStudentStatus() {
         return studentStatus;
     }
 
-    public void setStudentStatus(Integer studentStatus) {
+    public void setStudentStatus(String studentStatus) {
         this.studentStatus = studentStatus;
     }
 
-    public Integer getPaymentStatus() {
+    public String getPaymentStatus() {
         return paymentStatus;
     }
 
-    public void setPaymentStatus(Integer paymentStatus) {
+    public void setPaymentStatus(String paymentStatus) {
         this.paymentStatus = paymentStatus;
     }
 }

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentApplyrefundsQueryInfo.java

@@ -1,15 +1,25 @@
 package com.ym.mec.biz.dal.page;
 
-import java.util.Date;
-
 import com.ym.mec.common.page.QueryInfo;
 
+import java.util.Date;
+
 public class StudentApplyrefundsQueryInfo extends QueryInfo {
 
 	private Date startTime;
 
 	private Date endTime;
 
+	private String status;
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
 	public Date getStartTime() {
 		return startTime;
 	}

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

@@ -15,7 +15,7 @@ public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeav
 	 * @param teacherLeaveRecord
 	 * @return
 	 */
-	public boolean askForLeave(Integer userId, TeacherLeaveRecord teacherLeaveRecord);
+	boolean askForLeave(Integer userId, TeacherLeaveRecord teacherLeaveRecord);
 
 	/**
 	 * 审批
@@ -25,7 +25,7 @@ public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeav
 	 * @param remark 备注
 	 * @return
 	 */
-	public boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark);
+	boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark);
 
 	/**
 	 * @describe 检测课程安排是否与老师的请假时间存在冲突

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
@@ -34,6 +35,15 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
     void updateVipGroup(VipGroupApplyDto vipGroupApplyInfo);
 
     /**
+     * @describe 新增vip课程计划
+     * @author Joburgess
+     * @date 2019/11/11
+     * @param vipGroupApplyDto:
+     * @return void
+     */
+    void appendVipGroupCourseSchedules(VipGroupApplyDto vipGroupApplyDto);
+
+    /**
      * @describe vip课程审核
      * @author Joburgess
      * @date 2019/10/22
@@ -187,7 +197,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return void
      * @describe 退课申请审核
      */
-    void applyRefundAudit(Long id,AuditStatusEnum status,String remark,BigDecimal amount);
+    void applyRefundAudit(Long id,StudentApplyRefundsStatus status,String remark,BigDecimal amount);
 
     /**
      * @Author: Joburgess
@@ -229,5 +239,14 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return
      */
     List<School> querySchoolByUserId(Integer userId);
+
+    /**
+     * @describe 更新vip课基本信息
+     * @author Joburgess
+     * @date 2019/11/11
+     * @param vipGroupApplyBaseInfo:
+     * @return void
+     */
+    void updateVipGroupBaseInfo(VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo);
     
 }

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

@@ -98,6 +98,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private CourseScheduleService courseScheduleService;
     @Autowired
     private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
+    @Autowired
+    private StudentApplyRefundsDao studentApplyRefundsDao;
 
 
     @Override
@@ -128,7 +130,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public List<ClassGroup> findAllMixClassGroupByMusicGroupId(String musicGroupId) {
         List<ClassGroup> allMixClassGroup = classGroupDao.findAllMixClassGroup(musicGroupId);
         for (ClassGroup mixClassGroup : allMixClassGroup) {
-            mixClassGroup.setClassNames(classGroupDao.findMixClassChildClassGroupNames(mixClassGroup.getId()).getName());
+            ClassGroup mixClassChildClassGroup = classGroupDao.findMixClassChildClassGroupNames(mixClassGroup.getId());
+            if (mixClassChildClassGroup != null) {
+                mixClassGroup.setClassNames(mixClassChildClassGroup.getName());
+            }
         }
         return allMixClassGroup;
     }
@@ -495,12 +500,16 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取学员的乐团列表详情
         courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ",")));
         courseListDtos.addAll(vipCourses);
+        //检测对应乐团是否已申请退费
+        List<Map<String, Integer>> isApplyMaps = studentApplyRefundsDao.checkIsApplyRefund(musicGroupIds, userId);
+        Map<String, Integer> isApplyMap= MapUtil.convertMybatisMap(isApplyMaps);
         //获取所有教学点名称列表
         Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
         Map<Integer, String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ",")));
 
         courseListDtos.forEach(e -> {
             e.setAddress(schoolNames.get(e.getTeacherSchoolId()));
+            e.setIsApply(isApplyMap.get(e.getMusicGroupId()));
             if (ClassGroupTypeEnum.VIP == e.getType()) {
                 e.setStudentNames(vipStuNames.get(e.getMusicGroupId()));
                 if (e.getOffLineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
@@ -650,10 +659,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupStudentMapperDao.deleteByClassId(classGroupId);
         studentRegistrationDao.deleteClassGroup(classGroupId);
         //删除班级跟合奏班关系
-        ClassGroupRelation classGroupRelation = classGroupRelationDao.findClassGroupRelation(classGroupId);
-        if(classGroupRelation != null){
-            classGroupRelationDao.delete(classGroupRelation.getId());
-        }
+        classGroupRelationDao.deleteBySubClassId(classGroupId);
         //删除班级
         classGroupDao.delete(classGroupId);
     }

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

@@ -110,6 +110,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupTeacherMapperList);
 
+        if(classGroupNoStartCourseSchedules == null || classGroupNoStartCourseSchedules.size()==0){
+            return true;
+        }
+        //删除未开始的课程老师课酬
+        List<Long> courseScheduleIds = classGroupNoStartCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+        courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+
         for (CourseSchedule classGroupNoStartCourseSchedule : classGroupNoStartCourseSchedules) {
 
             if (!classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.SINGLE) &&
@@ -137,13 +144,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 //基准课酬
                 if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
                     //课程时长与结算单位时长占比
-                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(30));
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(30),6,BigDecimal.ROUND_HALF_UP);
                     baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                 }
                 //阶梯课酬
                 if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
                     //课程时长与结算单位时长占比
-                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(90));
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(90),6,BigDecimal.ROUND_HALF_UP);
                     baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
                 }
                 salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);

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

@@ -277,6 +277,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         List<CourseSchedule> yesterdayCourseSchedules = courseScheduleDao.findCourseScheduleWithDate(yesterday);
         //课程编号列表
         List<Long> courseScheduleIds = yesterdayCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(courseScheduleIds)){
+            return;
+        }
         //获取课程对应教学点补贴
         List<Map<Integer, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
         Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertMybatisMap(courseSubsidyByCourses);

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

@@ -160,6 +160,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			message.setSendTime(date);
 			message.setStatus(status);
 			message.setType(MessageSendMode.SEO);
+			message.setTitle(messageConfig.getDescription());
 			message.setReadStatus(0);
 			messages.add(message);
 		}
@@ -250,7 +251,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		} else if (messageSender.getSendMode().equals("EMAIL")) {
 			mode = MessageSendMode.EMAIL;
 		}
-		addMessage(receivers, type.getCode(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
+		addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
 				url, messageConfig.getGroup());
 	}
 

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

@@ -109,7 +109,7 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 
 		teacherLeaveRecordDao.update(teacherLeaveRecord);
 
-		if (StringUtils.isNotBlank(teacherLeaveRecord.getCoursesScheduleJson())) {
+		if (StringUtils.isNotBlank(teacherLeaveRecord.getCoursesScheduleJson())&&status==AuditStatusEnum.PASS) {
 			List<CoursesScheduleHistory> coursesScheduleHistoryList = JsonUtil.parseArray(teacherLeaveRecord.getCoursesScheduleJson(),
 					CoursesScheduleHistory.class);
 

+ 87 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -7,6 +7,7 @@ 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.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
@@ -279,17 +280,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Transactional(rollbackFor = Exception.class)
 	public void updateVipGroup(VipGroupApplyDto vipGroupApplyInfo) {
 		VipGroupApplyBaseInfoDto vipGroupUpdateInfo = vipGroupApplyInfo.getVipGroupApplyBaseInfo();
-		if(Objects.isNull(vipGroupUpdateInfo.getId())){
-			throw new BizException("请指定vip课");
-		}
-		VipGroup oldVipGroupInfo = vipGroupDao.get(vipGroupUpdateInfo.getId());
-		if(Objects.isNull(oldVipGroupInfo)){
-			throw new BizException("指定的vip课不存在");
-		}
-		Date now=new Date();
 		//更新vip课
-		vipGroupUpdateInfo.setUpdateTime(now);
-		vipGroupDao.update(vipGroupUpdateInfo);
+		updateVipGroupBaseInfo(vipGroupUpdateInfo);
 
 		//课程调整
 		List<CourseSchedule> courseSchedules = vipGroupApplyInfo.getCourseSchedules();
@@ -498,6 +490,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		VipGroupManageDetailDto vipGroupBaseInfo = vipGroupDao.getVipGroupBaseInfo(vipGroupId);
 		vipGroupBaseInfo.setSubjectName(StringUtils.join(subjectDao.findBySubIds(vipGroupBaseInfo.getSubjectIdList()),","));
+		ClassGroupTeacherSalary byVipGoupAndTeacher = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroupBaseInfo.getUserId());
+		vipGroupBaseInfo.setOnlineTeacherSalary(byVipGoupAndTeacher.getOnlineClassesSalary());
+		vipGroupBaseInfo.setOfflineTeacherSalary(byVipGoupAndTeacher.getSalary());
 		return vipGroupBaseInfo;
 	}
 
@@ -834,8 +829,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Long vipGroupId=Long.parseLong(order.getMusicGroupId());
 		Integer userId = order.getUserId();
 		boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
-
-		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
 		studentPaymentOrderDao.update(order);
 
 		//将学生加入到班级,更新班级报名状态及人数信息
@@ -846,6 +839,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
 		SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
+
+		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
 		//插入缴费明细
 		//收入
 		SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
@@ -881,9 +876,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupStudentMapper.setMusicGroupId(vipGroupId.toString());
 		classGroupStudentMapperDao.insert(classGroupStudentMapper);
 
-		//将学员加入vip班级群组
-		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
-		imFeignService.groupJoin(new ImGroupModel(vipGroupClassGroupMapper.getClassGroupId().toString(), imGroupMembers, null));
+		try {
+			//将学员加入vip班级群组
+			ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
+			imFeignService.groupJoin(new ImGroupModel(vipGroupClassGroupMapper.getClassGroupId().toString(), imGroupMembers, null));
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 
 		//更新所属分部列表
 		List<Integer> organIds = classGroupDao.findStudentOrganIdsByClassGroup(vipGroupClassGroupMapper.getClassGroupId().longValue());
@@ -893,7 +892,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroup.setOrganIdList(organIdsString);
 		vipGroupDao.update(vipGroup);
 
-		contractService.transferVipGroupCoursesContract(userId,vipGroupId);
+		try {
+			contractService.transferVipGroupCoursesContract(userId,vipGroupId);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
 	}
 
 	@Transactional(rollbackFor = Exception.class)
@@ -914,7 +917,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				new BigDecimal(Objects.isNull(surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()))?"0":surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()).toString()),
 				true,
 				false).get("totalPrice"));
-		studentApplyRefunds.setStatus(AuditStatusEnum.ING);
+		studentApplyRefunds.setStatus(StudentApplyRefundsStatus.ING);
 		String orderNo=StringUtils.join(new String[]{studentId.toString(),String.valueOf(System.currentTimeMillis())});
 		studentApplyRefunds.setOrderNo(orderNo);
 		studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
@@ -924,7 +927,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void applyRefundAudit(Long id, AuditStatusEnum status, String remark,BigDecimal amount) {
+	public void applyRefundAudit(Long id, StudentApplyRefundsStatus status, String remark,BigDecimal amount) {
 
 		StudentApplyRefunds studentApplyRefunds = studentApplyRefundsDao.get(id);
 		if (studentApplyRefunds == null) {
@@ -935,17 +938,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if (null == studentPaymentOrder) {
 			throw new BizException("未找到原订单信息!");
 		}
+		
+		if(status ==StudentApplyRefundsStatus.ING){
+			throw new BizException("状态不正确");
+		}
 
 		studentApplyRefunds.setStatus(status);
-		if (studentApplyRefunds.getStatus() == AuditStatusEnum.PASS) {
+		if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.DONE) {
 			studentApplyRefunds.setActualAmount(amount);
-		} else {
+		} else if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.WAIT_PAYMENT){
+			studentApplyRefunds.setExpectAmount(amount);
+		}else{
 			studentApplyRefunds.setActualAmount(new BigDecimal(0));
 		}
 		studentApplyRefunds.setRemark(remark);
+		studentApplyRefunds.setUpdateTime(new Date());
 		studentApplyRefundsDao.update(studentApplyRefunds);
 		switch (studentApplyRefunds.getStatus()) {
-			case PASS:
+			case DONE:
 				sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
 				SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
 				SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
@@ -957,8 +967,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
 				sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
 
-				ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(studentPaymentOrder.getUserId(),
-						studentPaymentOrder.getClassGroupId());
+				ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(studentPaymentOrder.getClassGroupId(),
+						studentPaymentOrder.getUserId());
 
 				classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
 				classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
@@ -970,6 +980,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			case REJECT:
 
 				break;
+			case WAIT_PAYMENT:
+
+				break;
 			default:
 				throw new BizException("审核状态错误!");
 		}
@@ -1075,15 +1088,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     	if(vipGroup.getStatus()==VipGroupStatusEnum.FINISH||vipGroup.getStatus()==VipGroupStatusEnum.CANCEL){
     		throw new BizException("该课程已结束或者已被停止,无法进行此操作");
 		}
+		List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
+		List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
     	if(vipGroup.getStatus()==VipGroupStatusEnum.NOT_START){
 			vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
     		vipGroupDao.update(vipGroup);
+			courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+			courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
     		return;
 		}
 		List<Map<Integer, BigDecimal>> maps = vipGroupDao.countSurplusCourseFee(vipGroupId);
     	if(CollectionUtils.isEmpty(maps)||(maps.size()==1&&Objects.isNull(maps.get(0)))){
 			vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
 			vipGroupDao.update(vipGroup);
+			courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+			courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 			return;
 		}
 		Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertMybatisMap(maps);
@@ -1108,8 +1127,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     	vipGroup.setStopReason(stopReason);
 		vipGroupDao.update(vipGroup);
 
-		List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
-		List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
 		courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
 		courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 		courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
@@ -1151,4 +1168,49 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public List<School> querySchoolByUserId(Integer userId) {
 		return vipGroupDao.querySchoolByUserId(userId);
 	}
+
+	@Override
+	public void updateVipGroupBaseInfo(VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo) {
+		if(Objects.isNull(vipGroupApplyBaseInfo.getId())){
+			throw new BizException("请指定vip课");
+		}
+		VipGroup oldVipGroupInfo = vipGroupDao.get(vipGroupApplyBaseInfo.getId());
+		if(Objects.isNull(oldVipGroupInfo)){
+			throw new BizException("指定的vip课不存在");
+		}
+		Date now=new Date();
+		//更新vip课
+		vipGroupApplyBaseInfo.setUpdateTime(now);
+		vipGroupDao.update(vipGroupApplyBaseInfo);
+	}
+
+	@Override
+	public void appendVipGroupCourseSchedules(VipGroupApplyDto vipGroupApplyDto) {
+		if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId())){
+			throw new BizException("请指定vip课");
+		}
+		VipGroup vipGroup = vipGroupDao.get(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId());
+		if(Objects.isNull(vipGroup)){
+			throw new BizException("指定的vip课不存在");
+		}
+		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
+		//课程信息调整
+		vipGroupApplyDto.getCourseSchedules().forEach(courseSchedule -> {
+			courseSchedule.setSchoolId(vipGroup.getTeacherSchoolId());
+			courseSchedule.setTeacherId(vipGroup.getUserId());
+			courseSchedule.setActualTeacherId(vipGroup.getUserId());
+			courseSchedule.setStatus(CourseStatusEnum.NOT_START);
+			courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
+			courseSchedule.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
+		});
+		courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
+
+		TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
+
+		//创建老师单节课课酬信息
+		courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroup,
+				vipGroupApplyDto.getCourseSchedules(),
+				byTeacherAndCategory.getOnlineClassesSalary(),
+				byTeacherAndCategory.getOfflineClassesSalary());
+	}
 }

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

@@ -341,12 +341,8 @@
         </if>
     </select>
     <select id="findNoClassSubjects" resultMap="ClassGroup">
-        SELECT * FROM class_group cg
-        WHERE cg.id_ NOT IN
-        (SELECT cgr.sub_class_group_id_ FROM class_group_relation cgr
-        LEFT JOIN class_group cg ON cg.id_ = cgr.class_group_id_
-        WHERE cg.music_group_id_ = #{musicGroupId})
-        AND cg.music_group_id_ = #{musicGroupId} AND type_ = 'NORMAL' AND cg.del_flag_ = 0
+        SELECT cg.* FROM class_group cg LEFT JOIN class_group_relation cgr ON cgr.sub_class_group_id_=cg.id_
+        WHERE cg.music_group_id_=#{musicGroupId} AND cg.type_ = 'NORMAL' AND cg.del_flag_ = '0' AND cgr.id_ IS NULL
     </select>
 
     <select id="countTeacherNum" resultType="java.lang.Integer">
@@ -598,7 +594,7 @@
     <select id="queryStudentClassGroup" resultMap="ConditionDto">
         SELECT cg.id_,cg.name_,cg.student_num_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{userId} AND cg.del_flag_ = 0
+        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId} AND cg.del_flag_ = 0
     </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseListDto" id="CourseListDto">

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

@@ -83,4 +83,7 @@
     <select id="findClassGroupRelation" resultMap="ClassGroupRelation">
         SELECT * FROM class_group_relation WHERE sub_class_group_id_ = #{subClassGroupId}
     </select>
+    <delete id="deleteBySubClassId">
+        DELETE FROM class_group_relation WHERE sub_class_group_id_ = #{classGroupId}
+    </delete>
 </mapper>

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

@@ -151,6 +151,7 @@
         <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
             #{classGroupId}
         </foreach>
+        AND status_ = 'NORMAL'
     </select>
 
     <!-- 查询班级某状态的所有学生 -->

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

@@ -121,5 +121,8 @@
   <select id="findByMusicGroupId" resultMap="ClassGroupTeacherSalary">
     SELECT * FROM class_group_teacher_salary WHERE music_group_id_ = #{musicGroupId}
   </select>
+  <select id="findByVipGoupAndTeacher" resultMap="ClassGroupTeacherSalary">
+    SELECT * FROM class_group_teacher_salary WHERE music_group_id_ = #{vipGroupId} AND user_id_=#{teacherId}
+  </select>
 
-</mapper>
+</mapper>

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

@@ -45,7 +45,7 @@
 		UPDATE course_schedule_complaints
 		<set>
 			<if test="status != null">
-			status_ = #{status, typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"},
+			status_ = #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="wfOrderId != null">
 			wf_order_id_ = #{wfOrderId},

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

@@ -26,6 +26,7 @@
         <result column="student_num_" property="studentNum"/>
         <result column="leave_student_num_" property="leaveStudentNum"/>
         <result column="schoole_id_" property="schoolId"/>
+        <result column="class_group_name_" property="classGroupName"/>
     </resultMap>
     
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -108,10 +109,10 @@
     <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO course_schedule
-        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_,schoole_id_)
+        (class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_,schoole_id_)
         VALUE
         <foreach collection="list" item="course" separator=",">
-            (#{course.id},#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.teacherId},now(),now(),#{course.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.name},#{course.teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.studentNum},#{course.leaveStudentNum},#{course.schoolId})
+            (#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.teacherId},now(),now(),#{course.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.name},#{course.teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.studentNum},#{course.leaveStudentNum},#{course.schoolId})
         </foreach>
     </insert>
 
@@ -855,7 +856,7 @@
                     leave_student_num_ = #{item.leaveStudentNum},
                 </if>
                 <if test="item.schoolId != null">
-                    school_id_ = #{item.choolId},
+                    school_id_ = #{item.schoolId},
                 </if>
             </set>
             WHERE id_ = #{item.id}
@@ -1119,7 +1120,7 @@
 
     <resultMap id="IntegerAndIntegerListDto" type="com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto">
         <result property="id" column="id_"/>
-        <collection property="ids" ofType="string" javaType="list">
+        <collection property="ids" ofType="int" javaType="list">
             <result column="relate_ids"/>
         </collection>
     </resultMap>
@@ -1175,7 +1176,7 @@
         FROM
             course_schedule cs
             LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
-        WHERE cs.class_date_=DATE_FORMAT(#{date},'%Y-%m-%d %H:%i:%s')
+        WHERE cs.class_date_=DATE_FORMAT(#{date},'%Y-%m-%d')
         AND cs.type_!='VIP'
     </select>
     <select id="findByClassGroup" resultMap="CourseSchedule">
@@ -1223,9 +1224,11 @@
             cs.name_,
             cs.student_num_,
             cs.leave_student_num_,
-            cs.schoole_id_
+            cs.schoole_id_,
+            cg.name_ class_group_name_
         from  course_schedule cs
           LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
+          LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         where cs.class_group_id_ IN
         <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
             #{classGroupId}

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

@@ -88,7 +88,7 @@
 	</delete>
 
     <delete id="batchDeleteByCourseScheduleIds">
-		DELETE FROM course_schedule_teacher_salary WHERE id_ IN
+		DELETE FROM course_schedule_teacher_salary WHERE course_schedule_id_ IN
 		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
 			#{courseScheduleId}
 		</foreach>

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

@@ -22,7 +22,7 @@
     <resultMap type="com.ym.mec.biz.dal.entity.StudentApplyRefunds" extends="StudentApplyRefunds" id="StudentApplyRefundsListDTO">
     	<result column="spo.expect_amount_" property="studentPaymentOrder.expectAmount"/>
     	<result column="spo.actual_amount_" property="studentPaymentOrder.actualAmount"/>
-    	<result column="u.username_" property="user.username"/>
+    	<result column="username_" property="user.username"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -95,6 +95,9 @@
         <if test="endTime != null">
             and sar.create_time_ &lt;= #{endTime}
         </if>
+        <if test="status!=null and status!=''">
+            and status_=#{status}
+        </if>
         ORDER BY sar.id_ <include refid="global.limit"/>
     </select>
 
@@ -109,4 +112,20 @@
             and sar.create_time_ &lt;= #{endTime}
         </if>
 	</select>
+
+    <select id="checkIsApplyRefund" resultType="java.util.Map">
+        SELECT
+            DISTINCT spo.music_group_id_ AS 'key',
+            sar.id_ IS NOT NULL AS 'value'
+        FROM
+            student_payment_order spo
+            LEFT JOIN student_apply_refunds sar ON sar.orig_payment_order_id_ = spo.id_
+        WHERE
+            spo.status_ = 'SUCCESS'
+            AND spo.user_id_=#{userId}
+            AND spo.music_group_id_ IN
+            <foreach collection="musicGroupIds" item="musicGroupId" open="(" close=")" separator=",">
+                #{musicGroupId}
+            </foreach>
+    </select>
 </mapper>

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

@@ -172,7 +172,7 @@
 	</select>
 
 	<select id="queryCountOfUnread" resultMap="Mapper" parameterType="map">
-		SELECT group_ key_,COUNT(*) value_ FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0
+		SELECT group_ key_,COUNT(*) value_ FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0 and status_ = 2
 		<if test="type != null">
 		and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		</if>

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

@@ -459,14 +459,14 @@
         </if>
         GROUP BY t.id_
     </select>
-    <select id="findOrganTeacherBySubject" resultType="com.ym.mec.biz.dal.entity.Teacher">
+    <select id="findOrganTeacherBySubject" resultMap="Teacher">
         SELECT su.* FROM teacher t
         LEFT JOIN sys_user su on t.id_ = su.id_ WHERE 1=1
         <if test="organId != null">
             AND t.organ_id_ = #{organId}
         </if>
         <if test="subjectId != null">
-            AND FIND_IN_SET(#{subjectId},t.subjectId)
+            AND FIND_IN_SET(#{subjectId},t.subject_id_)
         </if>
     </select>
 

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

@@ -4,6 +4,10 @@ server:
 spring:
   application:
     name: gateway-web
+    
+  servlet:
+    multipart:
+      max-file-size: 10MB
 
 eureka:
   client:
@@ -16,8 +20,8 @@ eureka:
 ribbon:
   eureka:
     enable: true
-  ReadTimeout: 10000
-  SocketTimeout: 3000      
+  ReadTimeout: 30000
+  SocketTimeout: 10000      
 
 ### 配置网关反向代理    
 zuul:

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java

@@ -41,7 +41,7 @@ public class MusicGroupRegisterController extends BaseController {
         }
         StudentRegistration hasReg = studentRegistrationService.getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone());
         if (hasReg != null) {
-            return failed("该乐团您已注册");
+            return failed("该乐团您已报名");
         }
         if (musicGroup.getApplyExpireDate().compareTo(date) <= 0) {
             return failed("乐团已截止报名");

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/HomeworkNoReplyRemaindTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class HomeworkNoReplyRemaindTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/PushNoSignOutMessageTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class PushNoSignOutMessageTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/StudentCoursesScheduleRemaindTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class StudentCoursesScheduleRemaindTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/StudentHomeworkRemaindTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class StudentHomeworkRemaindTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/StudentSignInRemaindTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class StudentSignInRemaindTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/TeacherCoursesScheduleRemaindTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class TeacherCoursesScheduleRemaindTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/TeacherSignInRemaindTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class TeacherSignInRemaindTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/UserAutoUnlockedTask.java

@@ -1,11 +1,13 @@
 package com.ym.mec.task.jobs;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import com.ym.mec.auth.api.client.AuthTaskFeignService;
 import com.ym.mec.task.core.BaseTask;
 import com.ym.mec.task.core.TaskException;
 
+@Service
 public class UserAutoUnlockedTask extends BaseTask {
 
 	@Autowired

+ 2 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/VipGroupTeacherSalarySettlementTask.java

@@ -1,11 +1,13 @@
 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;
 
+@Service
 public class VipGroupTeacherSalarySettlementTask extends BaseTask {
 
 	@Autowired

+ 1 - 1
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -962,7 +962,7 @@ public class DateUtil {
 	 */
 	public static Date addDays1(Date date,int days) {
 		Calendar cal = Calendar.getInstance();
-		cal.setTime(getWeekMondayWithDate(date));
+		cal.setTime(date);
 		cal.add(Calendar.DATE, days);
 		return cal.getTime();
 	}

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -69,7 +69,7 @@ public class ClassGroupController extends BaseController {
     @PostMapping("/delMix")
     @PreAuthorize("@pcs.hasPermissions('classGroup/delMix')")
     public Object delMix(Integer classGroupId) {
-        classGroupService.delete(classGroupId);
+        classGroupService.delMix(classGroupId);
         return succeed();
     }
 

+ 9 - 1
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -94,6 +94,14 @@ public class CourseScheduleController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "批量删除课程")
+    @PostMapping(value = "/bathDelete")
+    @PreAuthorize("@pcs.hasPermissions('courseSchedule/bathDelete')")
+    public Object bathDelete(List<Long> courseScheduleIds){
+        scheduleService.deleteCourseSchedules(courseScheduleIds);
+        return succeed();
+    }
+
     @ApiOperation(value = "根据月份获取乐团在该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/getCourseScheduleDateByMonth')")
@@ -160,7 +168,7 @@ public class CourseScheduleController extends BaseController {
     }
 
     @ApiOperation(value = "课程投诉审核")
-    @GetMapping(value = "/courseScheduleCommplaintAudit")
+    @PostMapping(value = "/courseScheduleCommplaintAudit")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/courseScheduleCommplaintAudit')")
 	public Object courseScheduleCommplaintAudit(Long id, Double teacherLiabilityRatio, Double studentLiabilityRatio, AuditStatusEnum status) {
 		scheduleService.courseScheduleCommplaintAudit(id, teacherLiabilityRatio, studentLiabilityRatio, status);

+ 20 - 7
mec-web/src/main/java/com/ym/mec/web/controller/TeacherLeaveRecordController.java

@@ -1,20 +1,22 @@
 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.TeacherLeaveRecordDto;
+import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.service.TeacherLeaveRecordService;
+import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.TeacherLeaveRecordDto;
-import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
-import com.ym.mec.biz.service.TeacherLeaveRecordService;
-import com.ym.mec.common.controller.BaseController;
+import java.util.Objects;
 
 @RequestMapping("teacherLeaveRecord")
 @Api(tags = "教师请假记录服务")
@@ -55,4 +57,15 @@ public class TeacherLeaveRecordController extends BaseController {
     	
         return succeed(teacherLeaveRecord);
     }
+
+    @ApiOperation(value = "请假审核")
+    @PostMapping("/approve")
+    public Object approve(Long id, Integer userId, AuditStatusEnum status, String remark) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(sysUser)) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        teacherLeaveRecordService.approve(id,userId,status,remark);
+        return succeed();
+    }
 }

+ 32 - 26
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -1,36 +1,13 @@
 package com.ym.mec.web.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 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.Employee;
-import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
@@ -41,6 +18,20 @@ import com.ym.mec.biz.service.StudentApplyRefundsService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 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;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Author Joburgess
@@ -96,6 +87,7 @@ public class VipGroupManageController extends BaseController {
         return succeed(vipGroupService.findVipGroups(queryInfo));
     }
 
+
     @ApiOperation(value = "获取小课学员")
     @GetMapping(value = "/findVipGroupStudents")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/findVipGroupStudents')")
@@ -128,7 +120,7 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation(value = "退课申请审核")
     @PostMapping("/applyRefundAudit")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/applyRefundAudit')")
-	public Object applyRefundAudit(Long id, AuditStatusEnum status, String remark, BigDecimal amount) {
+	public Object applyRefundAudit(Long id, StudentApplyRefundsStatus status, String remark, BigDecimal amount) {
 		vipGroupService.applyRefundAudit(id, status, remark, amount);
 		return succeed();
 	}
@@ -162,6 +154,7 @@ public class VipGroupManageController extends BaseController {
 		model.put("student", student.getUsername());
 		model.put("teacher", teacher.getUsername());
 		model.put("className", vipGroup.getName());
+		model.put("studentApplyRefunds", studentApplyRefunds);
 
 		return succeed(model);
 	}
@@ -239,4 +232,17 @@ public class VipGroupManageController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "更新vip课基本信息")
+    @PostMapping(value = "/updateVipBaseInfo")
+    public Object updateVipBaseInfo(VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo){
+        vipGroupService.updateVipGroupBaseInfo(vipGroupApplyBaseInfo);
+        return succeed();
+    }
+
+    @ApiOperation(value = "新增vip课程计划")
+    @PostMapping(value = "/appendVipGroupCourseSchedules")
+    public Object appendVipGroupCourseSchedules(VipGroupApplyDto vipGroupApplyDto){
+        vipGroupService.appendVipGroupCourseSchedules(vipGroupApplyDto);
+        return succeed();
+    }
 }