浏览代码

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

yonge 5 年之前
父节点
当前提交
5c544b0d9f
共有 52 个文件被更改,包括 974 次插入217 次删除
  1. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseHomeworkDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  4. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java
  5. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentEntitiesDao.java
  6. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java
  7. 38 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  8. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultMusicGroupSalaryDao.java
  9. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java
  11. 67 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupTeacherAttendanceDto.java
  12. 93 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupTeachersDto.java
  13. 1 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java
  14. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  15. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupBuildLog.java
  16. 0 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupQueryInfo.java
  17. 51 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupTeacherAttendanceQueryInfo.java
  18. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupTeachersQueryInfo.java
  19. 13 7
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  20. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java
  21. 0 7
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  22. 20 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  23. 8 8
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  24. 11 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  25. 43 68
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  26. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  27. 0 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  28. 7 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultMusicGroupSalaryServiceImpl.java
  29. 65 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  30. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupDefaultClassesCycleServiceImpl.java
  31. 17 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  32. 4 4
      mec-biz/src/main/resources/config/mybatis/ChargeTypeMapper.xml
  33. 16 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  34. 12 5
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  35. 3 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupBuildLogMapper.xml
  36. 8 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  37. 12 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentEntitiesMapper.xml
  38. 1 0
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml
  39. 10 1
      mec-biz/src/main/resources/config/mybatis/TeacherDefaultMusicGroupSalaryMapper.xml
  40. 87 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  41. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupClassGroupMapperMapper.xml
  42. 2 1
      mec-biz/src/main/resources/config/mybatis/VipGroupDefaultClassesCycleMapper.xml
  43. 1 0
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  44. 7 14
      mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java
  45. 142 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java
  46. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseHomeworkReplyController.java
  47. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  48. 13 26
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  49. 7 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  50. 4 9
      mec-web/src/main/java/com/ym/mec/web/controller/StudentWithdrawController.java
  51. 21 4
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java
  52. 1 2
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentPaymentOrderController.java

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

@@ -266,4 +266,18 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     List<TeacherClassGroupDto> findTeacherVipClassGroup(@Param("teacherId") Long teacherId);
 
+    /**
+     * 根据合奏班编号列表,获取单技班名称列表
+     * @param classGroupIds
+     * @return
+     */
+    List<Map<Integer, String>> queryNamesByClassId(@Param("classGroupIds") String classGroupIds);
+    /**
+     * @describe 查询班级下所有学生的部门编号列表
+     * @author Joburgess
+     * @date 2019/10/21
+     * @param classGroupId: 班级编号
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findStudentOrganIdsByClassGroup(Long classGroupId);
 }

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

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -27,7 +28,7 @@ public interface CourseHomeworkDao extends BaseDAO<Long, CourseHomework> {
      * @param userId: 用户编号
      * @return com.ym.mec.biz.dal.entity.CourseHomework
      */
-    CourseHomework findByTeacherAndCourseHomewok(Long courseHomeworkId,
-                                                 Long userId);
+    CourseHomework findByTeacherAndCourseHomewok(@Param("courseHomeworkId") Long courseHomeworkId,
+                                                 @Param("userId") Long userId);
 
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -328,4 +328,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
     List<Map<Integer,Integer>> findCourseScheduleCurrentTimes(List<Integer> courseSchedules);
+
+    /**
+     * 根据乐团编号修改课程教学点
+     * @param musicGroupId
+     * @param schoolId
+     */
+    void updateByMusicGroupId(@Param("musicGroupId") String musicGroupId,@Param("schoolId") Integer schoolId);
 }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -20,4 +21,11 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      * @return
      */
     List<MusicGroupPaymentCalender> findByMusicGroupId(String musicGroupId);
+
+    /**
+     * 批量新增乐团缴费周期
+     * @param calender
+     * @param musicGroupId
+     */
+    void batchAdd(@Param("calender") List<Integer> calender,@Param("musicGroupId") String musicGroupId);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentEntitiesDao.java

@@ -2,6 +2,20 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface MusicGroupPaymentEntitiesDao extends BaseDAO<Integer, MusicGroupPaymentEntities> {
+    /**
+     * 批量新增
+     * @param entities
+     */
+    void batchAdd(@Param("entities") List<MusicGroupPaymentEntities> entities,@Param("musicGroupId")String musicGroupId);
+
+    /**
+     * 根据乐团编号删除
+     * @param musicGroupId
+     */
+    void delByGroupId(String musicGroupId);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java

@@ -98,4 +98,18 @@ public interface StudentManageDao {
      * @return
      */
     int countStudentPayment(Map<String, Object> params);
+
+    /**
+     * 获取乐团管理学员列表
+     * @param params
+     * @return
+     */
+    List queryMusicGroupStudent(Map<String, Object> params);
+
+    /**
+     * COUNT乐团管理学员列表
+     * @param params
+     * @return
+     */
+    int countMusicGroupStudent(Map<String, Object> params);
 }

+ 38 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeacherAttendanceDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeachersDto;
 import com.ym.mec.biz.dal.dto.TeacherCloseDto;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.common.dal.BaseDAO;
@@ -81,7 +83,7 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @param musicGroupId: 乐团编号
      * @return java.util.List<com.ym.mec.biz.dal.dto.BasicUserDto>
      */
-    List<BasicUserDto> findTeacherByMusicGroup(Long musicGroupId);
+    List<BasicUserDto> findTeacherByMusicGroup(String musicGroupId);
 
 
     /**
@@ -91,4 +93,39 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      */
     BigDecimal findTeacherNoPay(Integer teacherId);
 
+    /**
+     * 获取乐团详情老师列表
+     * @param params
+     * @return
+     */
+    List<MusicGroupTeachersDto> queryMusicGroupTeachers(Map<String, Object> params);
+
+    /**
+     * Count乐团详情老师列表
+     * @param params
+     * @return
+     */
+    int countMusicGroupTeachers(Map<String, Object> params);
+
+    /**
+     * 根据教师编号列表,和班级编号列表获取教师签到次数
+     * @param teacherIdStr
+     * @param classGroupIdStr
+     * @return
+     */
+    List<Map<Integer, Integer>> findSignNum(@Param("teacherIdStr") String teacherIdStr,@Param("classGroupIdStr") String classGroupIdStr);
+
+    /**
+     * 获取教师乐团上课记录(乐团管理--乐团详情)
+     * @param params
+     * @return
+     */
+    List<MusicGroupTeacherAttendanceDto> queryTeacherAttendance(Map<String, Object> params);
+
+    /**
+     * COUNT教师乐团上课记录(乐团管理--乐团详情)
+     * @param params
+     * @return
+     */
+    int countTeacherAttendance(Map<String, Object> params);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultMusicGroupSalaryDao.java

@@ -27,4 +27,10 @@ public interface TeacherDefaultMusicGroupSalaryDao extends BaseDAO<Long, Teacher
      * @param settlementType
      */
     void delByTeacherId(@Param("userId")Integer userId, @Param("settlementType") String settlementType);
+
+    /**
+     * 批量新增
+     * @param salaries
+     */
+    void batchAdd(@Param("salaries") List<TeacherDefaultMusicGroupSalary> salaries);
 }

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

@@ -13,6 +13,15 @@ import java.util.Map;
 public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 
 	/**
+	 * @describe 锁定指定vip课
+	 * @author Joburgess
+	 * @date 2019/10/21
+	 * @param vipGroupId: vip课编号
+	 * @return com.ym.mec.biz.dal.entity.VipGroup
+	 */
+	VipGroup getLockVipGroup(Long vipGroupId);
+
+	/**
 	 * @Author: Joburgess
 	 * @Date: 2019/10/9
 	 * @params [organId]

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java

@@ -20,6 +20,9 @@ public class CourseScheduleDto extends CourseSchedule {
     @ApiModelProperty(value = "学生总人数")
     private Integer totalStudentNum;
 
+    @ApiModelProperty(value = "学生姓名")
+    private String studentNames;
+
     @ApiModelProperty(value = "学校名称",required = false)
     private String schoolName;
 
@@ -32,6 +35,14 @@ public class CourseScheduleDto extends CourseSchedule {
     @ApiModelProperty(value = "签退状态(1已签到,0未签到)",required = false)
     private Integer signOutStatus;
 
+    public String getStudentNames() {
+        return studentNames;
+    }
+
+    public void setStudentNames(String studentNames) {
+        this.studentNames = studentNames;
+    }
+
     public Integer getTotalStudentNum() {
         return totalStudentNum;
     }

+ 67 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupTeacherAttendanceDto.java

@@ -0,0 +1,67 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupTeacherAttendanceDto {
+
+    @ApiModelProperty(value = "课程计划ID",required = false)
+    private String classDate;
+
+    private String startClassTime;
+
+    private String courseScheduleName;
+
+    private String realName;
+
+    private String signInStatus;
+
+    private String signOutStatus;
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public String getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(String startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public String getCourseScheduleName() {
+        return courseScheduleName;
+    }
+
+    public void setCourseScheduleName(String courseScheduleName) {
+        this.courseScheduleName = courseScheduleName;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getSignInStatus() {
+        return signInStatus;
+    }
+
+    public void setSignInStatus(String signInStatus) {
+        this.signInStatus = signInStatus;
+    }
+
+    public String getSignOutStatus() {
+        return signOutStatus;
+    }
+
+    public void setSignOutStatus(String signOutStatus) {
+        this.signOutStatus = signOutStatus;
+    }
+}

+ 93 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupTeachersDto.java

@@ -0,0 +1,93 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupTeachersDto{
+    @ApiModelProperty(value = "教师名称",required = true)
+    private String teacherName;
+
+    @ApiModelProperty(value = "教师编号",required = true)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "联系电话",required = true)
+    private String teacherPhone;
+
+    @ApiModelProperty(value = "工作类型",required = true)
+    private String jobNature;
+
+    @ApiModelProperty(value = "合奏班名称",required = true)
+    private String classGroupName;
+
+    @ApiModelProperty(value = "合奏班级编号",required = true)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "执教班级名称",required = true)
+    private String courseScheduleName;
+
+    @ApiModelProperty(value = "出勤次数",required = true)
+    private Integer num;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getTeacherPhone() {
+        return teacherPhone;
+    }
+
+    public void setTeacherPhone(String teacherPhone) {
+        this.teacherPhone = teacherPhone;
+    }
+
+    public String getJobNature() {
+        return jobNature;
+    }
+
+    public void setJobNature(String jobNature) {
+        this.jobNature = jobNature;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public String getCourseScheduleName() {
+        return courseScheduleName;
+    }
+
+    public void setCourseScheduleName(String courseScheduleName) {
+        this.courseScheduleName = courseScheduleName;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+}

+ 1 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java

@@ -1,14 +1,10 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.*;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
 
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-
 public class SubFeeSettingDto {
 
     @ApiModelProperty(value = "乐团明细",required = false)

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

@@ -24,8 +24,11 @@ public class CourseSchedule {
 
 	public enum CourseScheduleType implements BaseEnum<String, CourseScheduleType> {
 
-		SINGLE("SINGLE", "单技课"), MIX("MIX", "合奏课"), HIGH("HIGH", "小班课"), VIP("VIP", "vip课"), DEMO("DEMO", "试听课"), COMPREHENSIVE("COMPREHENSIVE", "综合课"), PRACTICE(
-				"PRACTICE", "练习课"), ENLIGHTENMENT("ENLIGHTENMENT", "启蒙课"), TRAINING("TRAINING", "集训课");
+		SINGLE("SINGLE", "单技课"), MIX("MIX", "合奏课"),
+		HIGH("HIGH", "小班课"), VIP("VIP", "vip课"),
+		DEMO("DEMO", "试听课"), COMPREHENSIVE("COMPREHENSIVE", "综合课"),
+		PRACTICE("PRACTICE", "练习课"), ENLIGHTENMENT("ENLIGHTENMENT", "启蒙课"),
+		TRAINING("TRAINING", "集训课");
 
 		private String code;
 

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupBuildLog.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -11,20 +12,36 @@ public class MusicGroupBuildLog {
 	private Integer id;
 	
 	/**  */
+	@ApiModelProperty(value = "乐团编号",required = false)
 	private String musicGroupId;
 	
 	/** 事件 */
+	@ApiModelProperty(value = "事件",required = false)
 	private String event;
 	
 	/**  */
+	@ApiModelProperty(value = "创建人编号",required = false)
 	private Integer operator;
 	
 	/**  */
+	@ApiModelProperty(value = "备注",required = false)
 	private String memo;
+
+	/**  */
+	@ApiModelProperty(value = "创建人名字",required = false)
+	private String realName;
 	
 	/**  */
 	private java.util.Date createTime;
 
+	public String getRealName() {
+		return realName;
+	}
+
+	public void setRealName(String realName) {
+		this.realName = realName;
+	}
+
 	public MusicGroupBuildLog(String musicGroupId, String event, Integer operator, String memo) {
 		this.musicGroupId = musicGroupId;
 		this.event = event;

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

@@ -1,6 +0,0 @@
-package com.ym.mec.biz.dal.page;
-
-import com.ym.mec.common.page.QueryInfo;
-
-public class MusicGroupQueryInfo extends QueryInfo {
-}

+ 51 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupTeacherAttendanceQueryInfo.java

@@ -0,0 +1,51 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupTeacherAttendanceQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "老师名称",required = false)
+    private String teacherName;
+
+    @ApiModelProperty(value = "开始时间(不包含时分秒)",required = false)
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间(不包含时分秒)",required = false)
+    private String endTime;
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+}

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupTeachersQueryInfo.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class MusicGroupTeachersQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "工作类型",required = false)
+    private String jobNature;
+
+    @ApiModelProperty(value = "合奏班名称",required = false)
+    private String classGroupName;
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getJobNature() {
+        return jobNature;
+    }
+
+    public void setJobNature(String jobNature) {
+        this.jobNature = jobNature;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+}

+ 13 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -1,20 +1,20 @@
 package com.ym.mec.biz.service;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	/**
 	 * 建团申请数据提交
@@ -110,5 +110,11 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param queryInfo
 	 * @return
 	 */
-	PageInfo<MusicGroup> queryMusicGroupPage(MusicGroupQueryInfo queryInfo);
+	PageInfo<MusicGroup> queryMusicGroupPage(QueryInfo queryInfo);
+
+	/**
+	 * 修改乐团基本信息
+	 * @param subFeeSettingDto
+	 */
+    void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -71,4 +71,11 @@ public interface StudentManageService {
      * @return
      */
     PageInfo queryStudentPayment(TeacherPaymentRecordInfo queryInfo);
+
+    /**
+     * 获取乐团管理、学员列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo queryMusicGroupStudent(StudentManageQueryInfo queryInfo);
 }

+ 0 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -43,11 +43,4 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 	 * @return
 	 */
 	int findPayOrderNum();
-
-	/**
-	 * 获取学员的缴费订单
-	 * @param queryInfo
-	 * @return
-	 */
-    PageInfo queryOrderPage(StudentPaymentOrderQueryInfo queryInfo);
 }

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

@@ -1,12 +1,17 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeacherAttendanceDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeachersDto;
 import com.ym.mec.biz.dal.dto.TeacherCloseDto;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.page.MusicGroupTeacherAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupTeachersQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import org.apache.ibatis.annotations.Param;
 
@@ -92,7 +97,7 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @param musicGroupId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.BasicUserDto>
      */
-    List<BasicUserDto> queryMusicGroupTeacher(Long musicGroupId);
+    List<BasicUserDto> queryMusicGroupTeacher(String musicGroupId);
 
 
     /**
@@ -101,4 +106,18 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @return
      */
     BigDecimal findTeacherNoPay(Integer teacherId);
+
+    /**
+     * 获取乐团详情老师列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<MusicGroupTeachersDto> queryMusicGroupTeachers(QueryInfo queryInfo);
+
+    /**
+     * 获取教师上课记录列表(乐团管理--乐团详情)
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<MusicGroupTeacherAttendanceDto> queryTeacherAttendance(MusicGroupTeacherAttendanceQueryInfo queryInfo);
 }

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

@@ -52,20 +52,20 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
     PageInfo findVipGroups(VipGroupQueryInfo queryInfo);
 
     /**
-     * @Author: Joburgess
-     * @Date: 2019/10/9
-     * @params [queryInfo]
-     * @return com.ym.mec.common.page.PageInfo
      * @describe 获取vip课教学记录
+     * @author Joburgess
+     * @date 2019/10/21
+     * @param queryInfo: 查询条件
+     * @return java.util.Map<java.lang.String,java.lang.Object>
      */
     Map<String, Object> findVipGroupTeachingRecord(VipGroupTeachingRecordQueryInfo queryInfo);
 
     /**
-     * @Author: Joburgess
-     * @Date: 2019/10/9
-     * @params [vipGroupId]
-     * @return com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo
      * @describe 获取vip课教学记录基本信息
+     * @author Joburgess
+     * @date 2019/10/21
+     * @param vipGroupId: vip课编号
+     * @return com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo
      */
     TeachingRecordBaseInfo findTeachingRecordBaseInfo(Long vipGroupId);
 

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

@@ -2,10 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
@@ -55,7 +52,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private StudentAttendanceDao studentAttendanceDao;
 	@Autowired
 	private SysConfigService sysConfigService;
-	
+	@Autowired
+	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
 	@Autowired
 	private SysMessageService sysMessageService;
 
@@ -227,7 +225,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(null==user){
 			throw new BizException("请登录");
 		}
-		return courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate,user.getId().longValue());
+		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, user.getId().longValue());
+		teacherCourseSchedulesWithDate.forEach(courseScheduleDto -> {
+			if(Objects.nonNull(courseScheduleDto.getClassGroupId())){
+				String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(courseScheduleDto.getClassGroupId().longValue());
+				courseScheduleDto.setStudentNames(org.apache.commons.lang3.StringUtils.join(studentNums, ","));
+			}
+		});
+		return teacherCourseSchedulesWithDate;
 	}
 
 	/**

+ 43 - 68
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,74 +1,32 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-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.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.SchoolDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.entity.ApprovalStatus;
-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.MusicGroupPaymentCalender;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+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.StudentPaymentOrder;
-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.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.PayService;
-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.dal.enums.*;
+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;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
+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 {
@@ -135,7 +93,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Transactional(rollbackFor = Exception.class)
 	public String createGroup(SubFeeSettingDto subFeeSettingDto, Integer userId) {
 		MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
-		List<MusicGroupPaymentEntities> musicGroupPaymentEntities = subFeeSettingDto.getMusicGroupPaymentEntities();
 		List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroups = subFeeSettingDto.getMusicGroupSubjectGoodsGroups();
 		List<MusicGroupSubjectPlan> musicGroupSubjectPlans = subFeeSettingDto.getMusicGroupSubjectPlans();
 		String musicGroupId = idGeneratorService.generatorId() + "";
@@ -143,20 +100,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		// 保存乐团基本信息
 		musicGroupDao.insert(musicGroup);
 		// 保存乐团付费主体列表
-		musicGroupPaymentEntities.forEach(e -> {
-			e.setMusicGroupId(musicGroupId);
-			musicGroupPaymentEntitiesDao.insert(e);
-		});
+		//批量新增
+		musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
 		// 保存学员付费周期
 		List<Integer> months = subFeeSettingDto.getMonths();
 		if (months != null && months.size() > 0) {
-			MusicGroupPaymentCalender mg;
-			for (Integer month : months) {
-				mg = new MusicGroupPaymentCalender();
-				mg.setMusicGroupId(musicGroupId);
-				mg.setPaymentMonth(month);
-				musicGroupPaymentCalenderDao.insert(mg);
-			}
+			musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
 		}
 		// 保存乐团声部规划
 		if (musicGroupSubjectPlans == null) {
@@ -463,7 +412,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	}
 
 	@Override
-	public PageInfo<MusicGroup> queryMusicGroupPage(MusicGroupQueryInfo queryInfo) {
+	public PageInfo<MusicGroup> queryMusicGroupPage(QueryInfo queryInfo) {
 		PageInfo<MusicGroup> musicGroupPageInfo = queryPage(queryInfo);
 		List<MusicGroup> musicGroupList = musicGroupPageInfo.getRows();
 		// 获取学校编号列表
@@ -503,4 +452,30 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		});
 		return musicGroupPageInfo;
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) {
+		MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
+		String musicGroupId = musicGroup.getId();
+		MusicGroup group = musicGroupDao.get(musicGroupId);
+		if(group != null){
+			musicGroupDao.update(musicGroup);
+			//修改课程里面的教学点
+			if(!group.getSchoolId().equals(musicGroup.getSchoolId())){
+				courseScheduleDao.updateByMusicGroupId(musicGroupId,musicGroup.getSchoolId());
+			}
+			// 删除乐团付费主体列表
+			musicGroupPaymentEntitiesDao.delByGroupId(musicGroupId);
+			//批量新增
+			musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
+
+			// 修改学员付费周期
+			List<Integer> calender = subFeeSettingDto.getMonths();
+			//删除乐团相关付费周期
+			musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
+			//批量插入
+			musicGroupPaymentCalenderDao.batchAdd(calender,musicGroupId);
+		}
+	}
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -148,4 +148,24 @@ public class StudentManageServiceImpl implements StudentManageService {
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo queryMusicGroupStudent(StudentManageQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List dataList = null;
+        int count = studentManageDao.countMusicGroupStudent(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentManageDao.queryMusicGroupStudent(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

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

@@ -45,10 +45,4 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public int findPayOrderNum() {
         return studentPaymentOrderDao.findPayOrderNum();
     }
-
-    @Override
-    public PageInfo queryOrderPage(StudentPaymentOrderQueryInfo queryInfo) {
-        return queryPage(queryInfo);
-    }
-
 }

+ 7 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultMusicGroupSalaryServiceImpl.java

@@ -1,18 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
 import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.service.TeacherDefaultMusicGroupSalaryService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
-import java.util.Date;
 import java.util.List;
 
 @Service
@@ -32,16 +28,13 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
     }
 
 	@Override
-	public void batchUpset(List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries) {
-		if(teacherDefaultMusicGroupSalaries != null && teacherDefaultMusicGroupSalaries.size() > 0){
+	public void batchUpset(List<TeacherDefaultMusicGroupSalary> salaries) {
+		if(salaries != null && salaries.size() > 0){
 			//删除当前教师所有的结算类型的数据
-			TeacherDefaultMusicGroupSalary salary = teacherDefaultMusicGroupSalaries.get(0);
+			TeacherDefaultMusicGroupSalary salary = salaries.get(0);
 			teacherDefaultMusicGroupSalaryDao.delByTeacherId(salary.getUserId(),salary.getSettlementType().getCode());
 			//批量新增
-			teacherDefaultMusicGroupSalaries.forEach(e->{
-				teacherDefaultMusicGroupSalaryDao.insert(e);
-			});
-
+			teacherDefaultMusicGroupSalaryDao.batchAdd(salaries);
 			/*Date date = new Date();
 			teacherDefaultMusicGroupSalaries.forEach(e->{
 				if(e.getId() == null){

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

@@ -6,10 +6,14 @@ import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeacherAttendanceDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeachersDto;
 import com.ym.mec.biz.dal.dto.TeacherCloseDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.page.MusicGroupTeacherAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupTeachersQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.biz.service.TeacherService;
@@ -19,6 +23,7 @@ import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
@@ -186,7 +191,66 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	}
 
 	@Override
-	public List<BasicUserDto> queryMusicGroupTeacher(Long musicGroupId) {
+	public PageInfo<MusicGroupTeachersDto> queryMusicGroupTeachers(QueryInfo queryInfo) {
+		PageInfo<MusicGroupTeachersDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<MusicGroupTeachersDto> dataList = null;
+		int count = teacherDao.countMusicGroupTeachers(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = teacherDao.queryMusicGroupTeachers(params);
+			//获取合奏班id列表
+			Set<Integer> classGroupIds = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
+			String classGroupIdStr = StringUtils.join(classGroupIds,",");
+			//获取教师id列表
+			Set<Integer> teacherIds = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
+			String teacherIdStr = StringUtils.join(teacherIds,",");
+
+			//根据教师编号和班级编号,获取老师签到次数
+			List<Map<Integer,Integer>> signNum =  teacherDao.findSignNum(teacherIdStr,classGroupIdStr);
+			Map<Integer,Integer> signNumMap = MapUtil.convertMybatisMap(signNum);
+
+			//根据合奏班编号,获取子班级名称列表
+			List<Map<Integer,String>> classNames =  classGroupDao.queryNamesByClassId(classGroupIdStr);
+			Map<Integer,String> classNameMap = MapUtil.convertMybatisMap(classNames);
+
+			dataList.forEach(e->{
+				e.setCourseScheduleName(classNameMap.get(e.getClassGroupId()));
+				e.setNum(signNumMap.get(e.getTeacherId()));
+			});
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	public PageInfo<MusicGroupTeacherAttendanceDto> queryTeacherAttendance(MusicGroupTeacherAttendanceQueryInfo queryInfo) {
+		PageInfo<MusicGroupTeacherAttendanceDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<MusicGroupTeacherAttendanceDto> dataList = null;
+		int count = teacherDao.countTeacherAttendance(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = teacherDao.queryTeacherAttendance(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	public List<BasicUserDto> queryMusicGroupTeacher(String musicGroupId) {
 		if(Objects.isNull(musicGroupId)){
 			throw new BizException("请指定乐团");
 		}

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

@@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Comparator;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Service
@@ -27,6 +28,10 @@ public class VipGroupDefaultClassesCycleServiceImpl extends BaseServiceImpl<Inte
 
 	@Override
 	public long insert(VipGroupDefaultClassesCycle bean) {
+		if(Objects.isNull(bean.getOrganId())){
+			throw new BizException("请指定部门");
+		}
+
 		if(vipGroupDefaultClassesCycleDao.countAll()<=0){
 			bean.setMinClassTimes(0);
 			return super.insert(bean);
@@ -50,7 +55,10 @@ public class VipGroupDefaultClassesCycleServiceImpl extends BaseServiceImpl<Inte
 
 	@Override
 	public int update(VipGroupDefaultClassesCycle bean) {
+		VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.get(bean.getId());
 		vipGroupDefaultClassesCycleDao.delete(bean.getId());
+		bean.setId(null);
+		bean.setOrganId(vipGroupDefaultClassesCycle.getOrganId());
 		return (int) insert(bean);
 	}
 
@@ -73,6 +81,7 @@ public class VipGroupDefaultClassesCycleServiceImpl extends BaseServiceImpl<Inte
 			}else{
 				vipGroupDefaultClassesCycles.get(i).setMinClassTimes(vipGroupDefaultClassesCycles.get(i-1).getMaxClassTimes()+1);
 			}
+			vipGroupDefaultClassesCycles.get(i).setId(null);
 		}
 		return vipGroupDefaultClassesCycles;
 	}

+ 17 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -515,7 +515,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Override
 	public void updateVipGroupStudentNumAndStatus(Long vipGroupId, Integer num) {
-		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
+		VipGroup vipGroup = vipGroupDao.getLockVipGroup(vipGroupId);
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("指定的vip课程不存在");
 		}
@@ -597,6 +597,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		 */
 		Long vipGroupId=1L;
 		Integer userId = 1;
+		boolean isOk=true;
+
+		//将学生加入到班级,更新班级报名状态及人数信息
+		if(!isOk){
+			updateVipGroupStudentNumAndStatus(vipGroupId,-1);
+		}
 
 		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
 
@@ -610,22 +616,22 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
 		studentPaymentOrderDao.update(studentPaymentOrder);
 
-		//将学生加入到班级,更新班级报名状态及人数信息
-		ClassGroup classGroup = classGroupDao.get(vipGroupClassGroupMapper.getClassGroupId());
-		int classStudents = classGroupDao.countClassStudent(vipGroupClassGroupMapper.getClassGroupId().longValue());
-		if(classGroup.getExpectStudentNum()==classStudents){
-			vipGroup.setStatus(VipGroupStatusEnum.FINISH);
-			vipGroupDao.update(vipGroup);
-		}
-		classGroup.setStudentNum(classGroup.getStudentNum()+1);
-		classGroupDao.update(classGroup);
+		ClassGroupStudentMapper classGroupStudentMapper=new ClassGroupStudentMapper(vipGroupClassGroupMapper.getClassGroupId(),userId.intValue());
+		classGroupStudentMapperDao.insert(classGroupStudentMapper);
 
+		//更新所属分部列表
+		List<Integer> organIds = classGroupDao.findStudentOrganIdsByClassGroup(vipGroupClassGroupMapper.getClassGroupId().longValue());
+		organIds.add(vipGroup.getOrganId());
+		HashSet<Integer> hashSet = new HashSet<>(organIds);
+		String organIdsString = StringUtils.join(hashSet, ",");
+		vipGroup.setOrganIdList(organIdsString);
+		vipGroupDao.update(vipGroup);
 	}
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public void applyRefund(Long vipGroupId,Integer studentId) {
-		
+
 		StudentApplyRefunds studentApplyRefunds=new StudentApplyRefunds();
 		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId);
 		if(null==studentPaymentOrder){

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

@@ -22,12 +22,12 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="ChargeType">
-		SELECT * FROM charge_type WHERE id_ = #{id} 
+		SELECT * FROM charge_type WHERE id_ = #{id}
 	</select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="ChargeType">
-		SELECT * FROM charge_type ORDER BY id_
+		SELECT * FROM charge_type WHERE del_flag_ = 0 ORDER BY id_
 	</select>
 
     <!-- 向数据库增加一条记录 -->
@@ -68,7 +68,7 @@
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="ChargeType" parameterType="map">
         SELECT ct.*,s.id_ subject_id_,s.name_ subject_name_
-        FROM (SELECT * FROM charge_type <include refid="global.limit"/>) ct
+        FROM (SELECT * FROM charge_type WHERE del_flag_ = 0 <include refid="global.limit"/>) ct
         LEFT JOIN charge_type_subject_mapper ctsm ON ct.id_ = ctsm.charge_type_id_
         LEFT JOIN `subject` s ON ctsm.subject_id_ = s.id_
         ORDER BY ct.update_time_
@@ -76,7 +76,7 @@
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM charge_type
+		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

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

@@ -516,6 +516,22 @@
 		LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
         WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
     </select>
+    <select id="findStudentOrganIdsByClassGroup" resultType="int">
+        SELECT
+            DISTINCT su.organ_id_
+        FROM
+            class_group_student_mapper cgsm
+            LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
+            WHERE cgsm.class_group_id_=#{classGroupId}
+    </select>
+
+    <select id="queryNamesByClassId" resultType="java.util.Map">
+        SELECT cgr.class_group_id_ 'key',GROUP_CONCAT(cg.name_) 'value'
+        FROM class_group_relation cgr
+        LEFT JOIN class_group cg ON cgr.sub_class_group_id_ = cg.id_
+        WHERE FIND_IN_SET(cgr.class_group_id_,#{classGroupIds})
+        GROUP BY cgr.class_group_id_
+    </select>
 
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">

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

@@ -339,12 +339,14 @@
         cgsm.status_ attendance_status_,
         cs.teach_mode_
         FROM
-        course_schedule cs
+        course_schedule_student_payment cssp
+	    LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
         LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
         WHERE
         cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
-        AND cgsm.user_id_ = #{studentId}
+        AND cssp.user_id_ = #{studentId}
+        ORDER BY start_class_time_
     </select>
 
     <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
@@ -354,6 +356,7 @@
         su.username_ teacher_name_,
         cs.type_,
         cs.id_,
+        cs.class_group_id_,
         cs.class_date_,
         CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
         CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
@@ -476,10 +479,10 @@
         SELECT
         cs.class_date_
         FROM
-        class_group_student_mapper cgsm
-        LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
+        course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
         WHERE
-        cgsm.user_id_ = #{studentId}
+        cssp.user_id_ = #{studentId}
         <if test="month==null">
             AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
         </if>
@@ -746,6 +749,10 @@
         WHERE id_ = #{item.id}
         </foreach>
     </update>
+    <update id="updateByMusicGroupId">
+        UPDATE course_schedule cs SET cs.schoole_id_ = #{schoolId}
+        WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId})
+    </update>
 
     <select id="queryNoSignInListByBeforeMinutes" resultMap="CourseSchedule">
         SELECT cs.* FROM course_schedule cs left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ WHERE ta.sign_in_time_ is null and SUBTIME(start_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()

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

@@ -13,6 +13,7 @@
         <result column="operator_" property="operator"/>
         <result column="memo_" property="memo"/>
         <result column="create_time_" property="createTime"/>
+        <result column="real_name_" property="realName"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -68,6 +69,7 @@
 		SELECT COUNT(*) FROM music_group_build_log
 	</select>
     <select id="findById" resultMap="MusicGroupBuildLog">
-		SELECT * FROM music_group_build_log WHERE music_group_id_ = #{musicGroupId}
+		SELECT mgbl.*,su.real_name_ FROM music_group_build_log mgbl LEFT JOIN sys_user su ON mgbl.operator_ = su.id_
+		WHERE music_group_id_ = #{musicGroupId}
 	</select>
 </mapper>

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -32,6 +32,14 @@
         (id_,music_group_id_,payment_month_,start_payment_date_,create_time_,update_time_)
         VALUES(#{id},#{musicGroupId},#{paymentMonth},#{startPaymentDate},now(),now())
     </insert>
+    <insert id="batchAdd">
+        INSERT INTO music_group_payment_calender
+        (music_group_id_,payment_month_,create_time_,update_time_)
+        VALUES
+        <foreach collection="calender" item="item" separator=",">
+            (#{musicGroupId},#{item},now(),now())
+        </foreach>
+    </insert>
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender">

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

@@ -32,8 +32,15 @@
 		INSERT INTO music_group_payment_entities (id_,music_group_id_,name_,payment_method_,amount_,memo_,create_time_,update_time_)
 		VALUES(#{id},#{musicGroupId},#{name},#{paymentMethod, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{memo},now(),now())
 	</insert>
+    <insert id="batchAdd">
+		INSERT INTO music_group_payment_entities (music_group_id_,name_,payment_method_,amount_,memo_,create_time_,update_time_)
+		VALUES
+		<foreach collection="entities" item="item" separator=",">
+			(#{musicGroupId},#{item.name},#{item.paymentMethod.code},#{item.amount},now(),now())
+		</foreach>
+	</insert>
 
-	<!-- 根据主键查询一条记录 -->
+    <!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities">
 		UPDATE music_group_payment_entities
 		<set>
@@ -63,7 +70,10 @@
 	<delete id="delete" >
 		DELETE FROM music_group_payment_entities WHERE id_ = #{id} 
 	</delete>
-	
+	<delete id="delByGroupId">
+		DELETE FROM music_group_payment_entities WHERE music_group_id_ = #{musicGroupId}
+	</delete>
+
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="MusicGroupPaymentEntities" parameterType="map">
 		SELECT * FROM music_group_payment_entities ORDER BY id_ <include refid="global.limit"/>

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

@@ -103,6 +103,7 @@
         student_course_homework_reply schr
         LEFT JOIN sys_user suc ON schr.user_id_=suc.id_
         <include refid="queryCondition"/>
+        ORDER BY schr.id_ DESC
         <include refid="global.limit"/>
     </select>
 

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

@@ -38,6 +38,16 @@
 		#{settlementType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{durationMin},#{durationMax},
 		#{mainTeacherSalary},#{assistantTeacherSalary},now(),now())
 	</insert>
+	<insert id="batchAdd" parameterType="list">
+		INSERT INTO teacher_default_music_group_salary
+		(user_id_,course_schedule_type_,settlement_type_,duration_min_,duration_max_,main_teacher_salary_,
+		assistant_teacher_salary_,create_time_,update_time_)
+		VALUES
+		<foreach collection="salaries" item="item" separator=",">
+			(#{item.userId},#{item.courseScheduleType.code},#{item.settlementType.code},#{item.durationMin},
+			#{item.durationMax},#{item.mainTeacherSalary},#{item.assistantTeacherSalary},now(),now())
+		</foreach>
+	</insert>
 
 	<!-- 根据主键查询一条记录 -->
 	<update id="update"
@@ -76,7 +86,6 @@
 	<delete id="delete">
 		DELETE FROM teacher_default_music_group_salary WHERE id_ = #{id}
 	</delete>
-
     <delete id="delByTeacherId">
 		DELETE FROM teacher_default_music_group_salary WHERE user_id_ = #{userId} AND settlement_type_ = #{settlementType}
 	</delete>

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

@@ -309,6 +309,93 @@
             LEFT JOIN sys_user su ON cgtm.user_id_=su.id_
             WHERE cg.music_group_id_=#{musicGroupId}
     </select>
+    <resultMap id="MusicGroupTeachersDto" type="com.ym.mec.biz.dal.dto.MusicGroupTeachersDto">
+        <result property="teacherName" column="real_name_"/>
+        <result property="teacherPhone" column="phone_"/>
+        <result property="jobNature" column="job_nature_"/>
+        <result property="classGroupName" column="class_group_name_"/>
+        <result property="classGroupId" column="class_group_id_"/>
+        <result property="teacherId" column="teacher_id_"/>
+    </resultMap>
+    <select id="queryMusicGroupTeachers" resultMap="MusicGroupTeachersDto">
+        SELECT su.real_name_,su.phone_,t.job_nature_,GROUP_CONCAT(cg.name_) class_group_name_,cgtm.class_group_id_,t.id_ teacher_id_
+        FROM teacher t
+        LEFT JOIN class_group_teacher_mapper cgtm ON t.id_ = cgtm.user_id_
+        LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        <include refid="queryMusicGroupTeachersSql"/>
+        GROUP BY t.id_,cgtm.class_group_id_
+        <include refid="global.limit"/>
+    </select>
+    <select id="countMusicGroupTeachers" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT t.id_)
+        FROM teacher t
+        LEFT JOIN class_group_teacher_mapper cgtm ON t.id_ = cgtm.user_id_
+        LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        <include refid="queryMusicGroupTeachersSql"/>
+    </select>
+    <sql id="queryMusicGroupTeachersSql">
+        <where>
+                cg.type_ = 'MIX'
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND cg.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="jobNature != null and jobNature != ''">
+                AND t.job_nature_ = #{jobNature}
+            </if>
+            <if test="classGroupName != null and classGroupName != ''">
+                AND cg.name_ LIKE CONCAT('%',#{classGroupName},'%')
+            </if>
+        </where>
+    </sql>
+
+    <select id="findSignNum" resultType="java.util.Map">
+        SELECT ta.teacher_id_ 'key',COUNT(ta.id_) 'value' FROM teacher_attendance ta
+        WHERE FIND_IN_SET(ta.teacher_id_,#{teacherIdStr}) AND FIND_IN_SET(ta.class_group_id_,#{classGroupIdStr})
+        GROUP BY ta.teacher_id_,ta.class_group_id_
+    </select>
+
+    <sql id="queryTeacherAttendanceSql">
+        <where>
+            (cs.type_ = 'SINGLE' OR cs.type_ = 'MIX')
+            <if test="startTime != null and startTime != ''">
+                AND cs.class_date_ &gt;= #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND cs.class_date_ &lt;= #{endTime}
+            </if>
+            <if test="musicGroupId != null and musicGroupId != ''">
+                AND ta.music_group_id_ = #{musicGroupId}
+            </if>
+            <if test="teacherName != null and teacherName != ''">
+                AND su.real_name_ LIKE CONCAT('%',#{teacherName},'%')
+            </if>
+        </where>
+    </sql>
+    <resultMap id="MusicGroupTeacherAttendanceDto" type="com.ym.mec.biz.dal.dto.MusicGroupTeacherAttendanceDto">
+        <result property="classDate" column="class_date_"/>
+        <result property="startClassTime" column="start_class_time_"/>
+        <result property="courseScheduleName" column="name_"/>
+        <result property="realName" column="real_name_"/>
+        <result property="signInStatus" column="sign_in_status_"/>
+        <result property="signOutStatus" column="sign_out_status_"/>
+    </resultMap>
+    <select id="queryTeacherAttendance" resultMap="MusicGroupTeacherAttendanceDto">
+        SELECT cs.class_date_,cs.start_class_time_,cs.name_,su.real_name_,ta.sign_in_status_,ta.sign_out_status_
+        FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON cs.id_ = ta.course_schedule_id_
+        LEFT JOIN sys_user su ON su.id_ = ta.teacher_id_
+        <include refid="queryTeacherAttendanceSql"/>
+        <include refid="global.limit"/>
+    </select>
+    <select id="countTeacherAttendance" resultType="java.lang.Integer">
+        SELECT COUNT(cs.id_)
+        FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON cs.id_ = ta.course_schedule_id_
+        LEFT JOIN sys_user su ON su.id_ = ta.teacher_id_
+        <include refid="queryTeacherAttendanceSql"/>
+    </select>
 
     <sql id="queryCloses">
         <where>

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

@@ -76,6 +76,6 @@
         FROM
             vip_group_class_group_mapper vgcgm
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
-            WHERE vgcgm.vip_group_id_=#{vipGroupId}
+            WHERE vgcgm.vip_group_id_=#{vipGroupId} FOR UPDATE
     </select>
 </mapper>

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

@@ -36,7 +36,8 @@
 		INSERT INTO vip_group_default_classes_cycle (id_,min_class_times_,max_class_times_,month_,create_time_,update_time_,organ_id_)
 		VALUE
 		<foreach collection="list" item="vipGroupDefaultClassesCycle" separator=",">
-			(#{vipGroupDefaultClassesCycle.id},#{vipGroupDefaultClassesCycle.minClassTimes},#{vipGroupDefaultClassesCycle.maxClassTimes},#{vipGroupDefaultClassesCycle.month},now(),now(),#{vipGroupDefaultClassesCycle.organId})
+			(#{vipGroupDefaultClassesCycle.id},#{vipGroupDefaultClassesCycle.minClassTimes},
+			#{vipGroupDefaultClassesCycle.maxClassTimes},#{vipGroupDefaultClassesCycle.month},now(),now(),#{vipGroupDefaultClassesCycle.organId})
 		</foreach>
 	</insert>
 

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

@@ -254,6 +254,7 @@
     <sql id="studentVipGroupQueryCondition">
         <where>
             vg.status_!=3
+            AND vg.audit_status_='PASS'
             <if test="subjectId!=null">
                AND FIND_IN_SET(#{subjectId},cg.subject_id_list_)
             </if>

+ 7 - 14
mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java

@@ -1,24 +1,21 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
 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.security.access.prepost.PreAuthorize;
 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.page.StudentPayLogQueryInfo;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
-
 @RequestMapping("course")
 @Api(tags = "课程服务")
 @RestController
@@ -33,7 +30,6 @@ public class CourseController extends BaseController {
 
     @ApiOperation("获取学生所购买课程列表")
     @GetMapping(value = "/queryUserMusicGroups")
-    @PreAuthorize("@pcs.hasPermissions('course/queryUserMusicGroups')")
     public Object queryCoursePage(QueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
@@ -44,7 +40,6 @@ public class CourseController extends BaseController {
 
     @ApiOperation("获取学员所有聊天群组")
     @GetMapping(value = "/queryUserGroups")
-    @PreAuthorize("@pcs.hasPermissions('course/queryUserGroups')")
     public Object queryUserGroups(String search){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
@@ -55,7 +50,6 @@ public class CourseController extends BaseController {
 
     @ApiOperation(value = "根据群编号,获取群组基本信息")
     @GetMapping("/findGroupById")
-    @PreAuthorize("@pcs.hasPermissions('course/findGroupById')")
     public Object findGroupById(String groupId){
         if(StringUtils.isEmpty(groupId)){
             return failed("参数校验错误");
@@ -70,7 +64,6 @@ public class CourseController extends BaseController {
 
     @ApiOperation(value = "分页获取学员购买记录")
     @PostMapping("/queryStudentPayLog")
-    @PreAuthorize("@pcs.hasPermissions('course/queryStudentPayLog')")
     public Object queryStudentPayLog(StudentPayLogQueryInfo studentPayLogQueryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null || sysUser.getId() == null){

+ 142 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java

@@ -0,0 +1,142 @@
+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.entity.SysMessage;
+import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
+import com.ym.mec.util.validator.CommonValidator;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.StringUtils;
+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 java.io.IOException;
+
+@RestController
+@Api(tags = "消息服务")
+@RequestMapping("sysMessage")
+public class SysMessageController extends BaseController {
+
+	@Autowired
+	private SysMessageService sysMessageService;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation("获取所有消息列表")
+	@GetMapping(value = "list")
+	public Object list(SysMessageQueryInfo queryInfo) throws IOException {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		queryInfo.setUserId(sysUser.getId());
+		queryInfo.setType(3);
+		PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
+		return succeed(pageInfo);
+	}
+
+	@ApiOperation("一键已读")
+	@PostMapping("batchSetRead")
+	public Object batchSetRead() {
+		int status = 1;
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return sysMessageService.updateStatus(sysUser.getId(), status) > 0 ? succeed() : failed();
+	}
+
+	@ApiOperation("设置已读")
+	@PostMapping("setRead")
+	public Object setRead(Long id) {
+		int status = 1;
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
+	}
+
+	@ApiOperation(value = "查询用户未读消息条数")
+	@GetMapping("/queryCountOfUnread")
+	public Object queryCountOfUnread() {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("请重新登录");
+		}
+		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
+	}
+
+	@ApiOperation(value = "发送短信验证码")
+	@PostMapping("/sendSmsCode")
+	public Object sendSmsCode(String sendCodeType, String mobileNo) {
+
+		SysUser sysUser;
+
+		if (StringUtils.isBlank(mobileNo)) {
+			sysUser = sysUserFeignService.queryUserInfo();
+		} else {
+			sysUser = sysUserFeignService.queryUserByMobile(mobileNo);
+		}
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		Integer userId = sysUser.getId();
+
+		mobileNo = sysUser.getPhone();
+
+		MessageType messageType = MessageType.getMessageType(sendCodeType);
+		if (messageType == null) {
+			throw new BizException("消息类型参数错误");
+		}
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
+		return succeed();
+	}
+
+	@ApiOperation(value = "发送短信验证码")
+	@PostMapping("/noAuth/sendSmsCode")
+	public Object noAuthSendSmsCode(String sendCodeType, String mobileNo) {
+		MessageType messageType = MessageType.getMessageType(sendCodeType);
+		if (messageType == null) {
+			throw new BizException("消息类型参数错误");
+		}
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+//		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
+		return succeed();
+	}
+
+	@ApiOperation(value = "发送消息")
+	@PostMapping("/sendMessage")
+	public Object sendMessage(MessageSender messageSender, MessageSendMode sendMode, String content, String receiver, int readStatus, String url) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		Integer userId = sysUser.getId();
+
+		String mobileNo = sysUser.getPhone();
+		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
+			throw new BizException("请输入正确的手机号");
+		}
+		sysMessageService.sendMessage(messageSender, userId, sendMode, "", content, receiver, null, readStatus, url);
+		return succeed();
+	}
+}

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseHomeworkReplyController.java

@@ -31,7 +31,7 @@ public class TeacherCourseHomeworkReplyController extends BaseController {
 
     @ApiOperation(value = "新增回复")
     @PostMapping("/add")
-    public Object add(StudentCourseHomeworkReply studentCourseHomeworkReply) {
+    public Object add(@RequestBody StudentCourseHomeworkReply studentCourseHomeworkReply) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if(Objects.isNull(user)){
             return failed(HttpStatus.FORBIDDEN,"请登录");

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

@@ -49,7 +49,7 @@ public class ClassGroupController extends BaseController {
 
     @ApiOperation(value = "新增提高班")
     @PostMapping("/addHighClass")
-    //@PreAuthorize("@pcs.hasPermissions('classGroup/addHighClass')")
+    @PreAuthorize("@pcs.hasPermissions('classGroup/addHighClass')")
     @ApiParam(value = "乐团提高班json", required = true)
     public Object addHighClass(@RequestBody List<HighClassGroupDto> highClassGroupDtoList) throws Exception {
         if (highClassGroupDtoList.size() <= 0) {

+ 13 - 26
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -2,27 +2,15 @@ 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.SubFeeSettingDto;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import java.util.Date;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.common.controller.BaseController;
+import org.springframework.web.bind.annotation.*;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -34,26 +22,25 @@ public class MusicGroupController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
-    @ApiOperation(value = "修改乐团")
+    @ApiOperation(value = "修改乐团基本信息")
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
-    public Object update(MusicGroup musicGroup){
-        musicGroup.setUpdateTime(new Date());
-        musicGroupService.update(musicGroup);
+    public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto){
+        musicGroupService.updateBaseInfo(subFeeSettingDto);
         return succeed();
     }
 
-    @ApiOperation(value = "根据乐团编号查询乐团")
-    @GetMapping("/get/{id}")
+    @ApiOperation(value = "根据乐团编号查询乐团详情")
+    @GetMapping("/get")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/get')")
-    public Object get(@ApiParam(value = "乐团编号", required = true) @PathVariable("id") String id){
-        return succeed(musicGroupService.get(id));
+    public Object get(String musicGroupId){
+        return succeed(musicGroupService.get(musicGroupId));
     }
 
     @ApiOperation(value = "分页查询乐团列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
-    public Object queryPage(MusicGroupQueryInfo queryInfo){
+    public Object queryPage(QueryInfo queryInfo){
         return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
     }
 

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -34,6 +34,13 @@ public class StudentManageController extends BaseController {
         return succeed(studentManageService.findStudentsByOrganId(queryInfo));
     }
 
+    @ApiOperation(value = "乐团管理--乐团详情--获取学员列表")
+    @GetMapping("/queryMusicGroupStudent")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryMusicGroupStudent')")
+    public Object queryMusicGroupStudent(StudentManageQueryInfo queryInfo){
+        return succeed(studentManageService.queryMusicGroupStudent(queryInfo));
+    }
+
     @ApiOperation(value = "根据学生ID获取学生基本报名信息")
     @GetMapping("/findStudentBaseInfo")
     @PreAuthorize("@pcs.hasPermissions('studentManage/findStudentBaseInfo')")

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

@@ -3,22 +3,17 @@ 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.WithdrawDto;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
 import com.ym.mec.biz.dal.entity.StudentWithdraw;
-import com.ym.mec.biz.service.CooperationOrganService;
 import com.ym.mec.biz.service.StudentWithdrawService;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
+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;
 
 @RequestMapping("studentWithdraw")
 @Api(tags = "提现服务")

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

@@ -1,13 +1,15 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.page.MusicGroupTeacherAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupTeachersQueryInfo;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,9 +35,24 @@ public class TeacherController extends BaseController {
     }
 
     @ApiOperation(value = "获取乐团所有老师")
-    @GetMapping("/findMusicGoupTeachers")
-    public HttpResponseResult findMusicGoupTeachers(Long musicGroupId){
+    @GetMapping("/findMusicGroupTeachers")
+    @PreAuthorize("@pcs.hasPermissions('teacher/findMusicGroupTeachers')")
+    public HttpResponseResult findMusicGroupTeachers(String musicGroupId){
         return succeed(teacherService.queryMusicGroupTeacher(musicGroupId));
     }
 
+    @ApiOperation(value = "分页查询乐团管理--详情--老师列表")
+    @GetMapping("/queryMusicGroupTeachers")
+    @PreAuthorize("@pcs.hasPermissions('teacher/queryMusicGroupTeachers')")
+    public HttpResponseResult queryMusicGroupTeachers(MusicGroupTeachersQueryInfo queryInfo){
+        return succeed(teacherService.queryMusicGroupTeachers(queryInfo));
+    }
+
+    @ApiOperation(value = "分页查询乐团管理--详情--老师上课记录")
+    @GetMapping("/queryTeacherAttendance")
+    @PreAuthorize("@pcs.hasPermissions('teacher/queryTeacherAttendance')")
+    public HttpResponseResult queryTeacherAttendance(MusicGroupTeacherAttendanceQueryInfo queryInfo){
+        return succeed(teacherService.queryTeacherAttendance(queryInfo));
+    }
+
 }

+ 1 - 2
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentPaymentOrderController.java

@@ -22,8 +22,7 @@ public class StudentPaymentOrderController extends BaseController {
     @ApiOperation(value = "获取学员订单列表")
     @GetMapping("/queryOrderPage")
     public Object queryOrderPage(StudentPaymentOrderQueryInfo queryInfo){
-        studentPaymentOrderService.queryOrderPage(queryInfo);
-        return succeed();
+        return succeed(studentPaymentOrderService.queryPage(queryInfo));
     }
 
 }