瀏覽代碼

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

yonge 5 年之前
父節點
當前提交
ccafa13b4e
共有 26 個文件被更改,包括 248 次插入103 次删除
  1. 2 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  2. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  3. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java
  4. 13 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  5. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  6. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultMusicGroupSalaryDao.java
  7. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  9. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  10. 13 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  11. 72 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  12. 29 72
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  13. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  14. 5 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  15. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  16. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  17. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  18. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  19. 10 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  20. 3 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  21. 6 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  22. 9 1
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  23. 4 0
      mec-biz/src/main/resources/config/mybatis/TeacherDefaultMusicGroupSalaryMapper.xml
  24. 4 5
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseHomeworkController.java
  25. 8 5
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  26. 15 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

+ 2 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -148,6 +148,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 					sysUser.setPhone(phone);
 					sysUser.setPassword(null);
 					sysUser.setUpdateTime(date);
+					sysUser.setSalt(null);
 					sysUserDao.update(sysUser);
 					return queryUserInfoByPhone(phone);
 				}
@@ -157,6 +158,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 					sysUser.setPhone(phone);
 					sysUser.setPassword(null);
 					sysUser.setUpdateTime(date);
+					sysUser.setSalt(null);
 					sysUserDao.update(sysUser);
 					return queryUserInfoByPhone(phone);
 				}

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

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -134,4 +135,17 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
      * @return
      */
     List<ClassGroupStudentMapper> findHighClassGroupHasUser(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
+
+    /**
+     * @describe 获取学生在指定日期对应状态的班级编号
+     * @author Joburgess
+     * @date 2019/11/20
+     * @param userId: 用户编号
+     * @param date: 日期
+     * @param status: 状态
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findClassGroupIdByUserAndCourseDateAndStatus(@Param("userId") Integer userId,
+                                                               @Param("data")Date date,
+                                                               @Param("status") String status);
 }

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

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
@@ -56,6 +55,8 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      */
     List<ClassGroupTeacherMapper> findByMusicGroup(String musicGroupId);
 
+    List<ClassGroupTeacherMapper> findByClassGroup(Integer classGroupId);
+
     /**
      * 批量查询班级的老师关联关系
      *
@@ -79,4 +80,4 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      * @return
      */
     String queryTeachingNames(Long classGroupId);
-}
+}

+ 13 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
@@ -10,8 +9,8 @@ import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
-
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.Date;
 import java.util.List;
@@ -131,7 +130,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @Date: 2019/9/17
      * 根据日期获取学生当日排课信息
      */
-    List<CourseScheduleDto> getStudentCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("studentId") Long studentId);
+    List<CourseScheduleDto> getStudentCourseSchedulesWithDate(@Param("classDate") Date classDate,
+                                                              @Param("studentId") Long studentId,
+                                                              @Param("quitClassGroupIds") List<Integer> quitClassGroupIds);
 
     /**
      * @return java.util.List<java.lang.String>
@@ -417,6 +418,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     void updateByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("schoolId") Integer schoolId);
 
+    /**
+     * @describe 统计课程上的学生人数
+     * @author Joburgess
+     * @date 2019/11/21
+     * @param courseScheduleId:
+     * @return int
+     */
+    @Select("SELECT COUNT(*) FROM course_schedule_student_payment sa WHERE sa.course_schedule_id_ = #{courseScheduleID}")
+    int countCourseStudentNum(@Param("courseScheduleID") Long courseScheduleId);
 
     /**
      * 获取班级某时间后相应节数的课程

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

@@ -271,4 +271,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     List<Map<String,Integer>> countNormalNum(String musicGroupIds);
+
+    /**
+     * 获取学员基本信息
+     * @param mobile
+     * @return
+     */
+    StudentRegistration queryUserByPhone(String mobile);
 }

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

@@ -39,4 +39,7 @@ public interface TeacherDefaultMusicGroupSalaryDao extends BaseDAO<Long, Teacher
      * @return java.util.List<com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary>
      */
     List<TeacherDefaultMusicGroupSalary> findByTeacher(@Param("userIds") List<Integer> userIds);
+
+    TeacherDefaultMusicGroupSalary findByTeacherAndCourseType(@Param("userId") Integer userID,
+                                                              @Param("courseType") String courseType);
 }

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

@@ -33,6 +33,8 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      */
     boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception;
 
+    void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules,String musicGroupId);
+
     /**
      * @describe 创建乐团课单节课对应教师课酬
      * @author Joburgess

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

@@ -3,7 +3,6 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
@@ -46,6 +45,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 */
 	void batchDeleteMusicGroupNotStartCourse(String musicGroupId);
 
+
 	/**
 	 * @describe 判断该课程是否只能进行正常签到
 	 * @author Joburgess

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

@@ -6,6 +6,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
@@ -220,4 +221,11 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @return
 	 */
 	StudentRegistration updateStudent(StudentRegistration studentRegistration);
+
+	/**
+	 * 获取学员基本信息
+	 * @param mobile
+	 * @return
+	 */
+	StudentRegistration queryUserByPhone(String mobile);
 }

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

@@ -144,6 +144,8 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         List<ClassGroupStudentMapper> classGroupStudentMappers = new ArrayList<>();
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
 
+        ClassGroupRelation classGroupRelation = classGroupRelationService.findClassGroupRelation(classGroupId);
+
         for (String userIdStr : userIdStrSet) {
             ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
             classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
@@ -152,13 +154,23 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             classGroupStudentMapper.setCreateTime(nowDate);
             classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
             classGroupStudentMapper.setGroupType(GroupType.MUSIC);
-            classGroupStudentMapper.setGroupType(groupType);
             classGroupStudentMappers.add(classGroupStudentMapper);
             if (classGroup.getType().equals(ClassGroupTypeEnum.NORMAL)) {
                 StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(Integer.parseInt(userIdStr), classGroup.getMusicGroupId());
                 studentRegistration.setClassGroupId(classGroupId);
                 studentRegistrationService.update(studentRegistration);
             }
+            //班级在合奏班中
+            if(classGroupRelation != null){
+                classGroupStudentMapper = new ClassGroupStudentMapper();
+                classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
+                classGroupStudentMapper.setClassGroupId(classGroupRelation.getClassGroupId());
+                classGroupStudentMapper.setUserId(Integer.parseInt(userIdStr));
+                classGroupStudentMapper.setCreateTime(nowDate);
+                classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
+                classGroupStudentMapper.setGroupType(GroupType.MUSIC);
+                classGroupStudentMappers.add(classGroupStudentMapper);
+            }
             imGroupMemberList.add(new ImGroupMember(userIdStr));
         }
         classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMappers);
@@ -174,7 +186,6 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
 
         //4、班级在合奏班、添加合奏课程
-        ClassGroupRelation classGroupRelation = classGroupRelationService.findClassGroupRelation(classGroupId);
         if (classGroupRelation != null) {
             //合奏班增加人数
             classGroupService.updateClassStudentNum(classGroupRelation.getClassGroupId().longValue(), userIdStrSet.size());

+ 72 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -195,6 +195,78 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     @Override
+    public void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules, String musicGroupId) {
+        Date date=new Date();
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+        //老师默认的课酬
+        Map<String, TeacherDefaultMusicGroupSalary> teacherDefaultSalary = new HashMap<>();
+        for (CourseSchedule classGroupNoStartCourseSchedule : courseSchedules) {
+            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+            //课时长度
+            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getStartClassTime(), classGroupNoStartCourseSchedule.getEndClassTime());
+            List<ClassGroupTeacherMapper> byClassGroup = classGroupTeacherMapperDao.findByClassGroup(classGroupNoStartCourseSchedule.getClassGroupId());
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : byClassGroup) {
+                if (!classGroupTeacherMapper.getClassGroupId().equals(classGroupNoStartCourseSchedule.getClassGroupId())) {
+                    continue;
+                }
+                BigDecimal salary;
+
+                TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=teacherDefaultMusicGroupSalaryDao.findByTeacherAndCourseType(classGroupTeacherMapper.getUserId(),
+                        classGroupNoStartCourseSchedule.getType().getCode());
+
+                if (teacherDefaultMusicGroupSalary == null) {
+                    throw new BizException("请先设置老师课酬");
+                }
+
+                //对应基准课酬
+                BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
+
+
+                //2.0课酬
+                if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(30), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                }
+                //3.0课酬
+                if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(90), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+                }
+                //课堂课课酬
+                if (musicGroup.isClassroomLessons()) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(40), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                }
+                //基础技能提高课
+                if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(45), 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);
+
+                //课程与老师薪水表
+                CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                courseScheduleTeacherSalary.setCourseScheduleId(classGroupNoStartCourseSchedule.getId());
+                courseScheduleTeacherSalary.setGroupType(classGroupNoStartCourseSchedule.getGroupType());
+                courseScheduleTeacherSalary.setMusicGroupId(classGroupNoStartCourseSchedule.getMusicGroupId());
+                courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+                courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+                courseScheduleTeacherSalary.setExpectSalary(salary);
+                courseScheduleTeacherSalary.setCreateTime(date);
+                courseScheduleTeacherSalary.setUpdateTime(date);
+                courseScheduleTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
+                courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+            }
+            courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
+        }
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, Map<Long, CourseSchedule> oldCourseSchedules) {
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();

+ 29 - 72
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1,83 +1,19 @@
 package com.ym.mec.biz.service.impl;
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.commons.collections.ListUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
-import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
-import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
-import com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleDto;
-import com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto;
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
-import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
-import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.enums.AuditStatusEnum;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.ParamEnum;
-import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
-import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -85,6 +21,18 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.collections.ListUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule>  implements CourseScheduleService {
@@ -208,6 +156,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         classGroupService.batchUpdateClassCourseTimes(classGroupIds);
         //创建学生单节课的缴费记录,乐团课的缴费为0
 		courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(courseSchedules);
+
 	}
 
 	@Override
@@ -290,7 +239,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		Map<String,Object> result=new HashMap<>(3);
 		result.put("vipAppealDaysRange",sysConfigDao.findConfigValue(SysConfigService.VIP_APPEAL_DAYS_RANGE));
 		result.put("advanceLeaveHours",Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_LEAVE_HOURS)));
-		List<CourseScheduleDto> studentCourseSchedulesWithDate = courseScheduleDao.getStudentCourseSchedulesWithDate(classDate, user.getId().longValue());
+//		List<Integer> quitClassGroupIds=classGroupStudentMapperDao.findClassGroupIdByUserAndCourseDateAndStatus(user.getId(),classDate, ClassGroupStudentStatusEnum.QUIT.getCode());
+		List<CourseScheduleDto> studentCourseSchedulesWithDate = courseScheduleDao.getStudentCourseSchedulesWithDate(classDate, user.getId().longValue(),null);
 		List<Long> courseScheduleIds = studentCourseSchedulesWithDate.stream()
 				.filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) || cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO))
 				.map(CourseScheduleDto::getId).collect(Collectors.toList());
@@ -381,9 +331,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	public void checkNewCourseSchedules(List<CourseSchedule> courseSchedules,boolean checkExistCourseSchedule){
 		//第一节课
-		CourseSchedule firstCourseSchedule = courseSchedules.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		CourseSchedule firstCourseSchedule;
 		//最后一节课
-		CourseSchedule latestCourseSchedule = courseSchedules.stream().max(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		CourseSchedule latestCourseSchedule;
+		if(courseSchedules.size()==1){
+			firstCourseSchedule = courseSchedules.get(0);
+			latestCourseSchedule = courseSchedules.get(0);
+		}else{
+			firstCourseSchedule = courseSchedules.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+			latestCourseSchedule = courseSchedules.stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
+		}
 		//获取第一节课和最后一节课所包含的时间段内已存在的课程
 		List<CourseSchedule> existCourseSchedules = courseScheduleDao.findByDateZone(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
 

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

@@ -61,7 +61,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	@Transactional(rollbackFor = Exception.class)
 	public void add(Employee employee){
 		SysUser user = sysUserFeignService.queryUserByMobile(employee.getPhone());
-		if(user != null){
+		if(user != null && user.getId() != null){
 			employee.setUserType(SysUserType.SYSTEM);
 			teacherDao.updateUser(employee);
 			Employee employee1 = employeeDao.get(user.getId());
@@ -73,6 +73,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			}else{
 				new BizException("员工已存在");
 			}
+			return;
 		}
 		employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
 		employee.setUserType(SysUserType.SYSTEM);

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

@@ -198,14 +198,14 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 
 		Date date = new Date();
 		
-		int hours = 2;
+		int days = 24;
 		String str = sysConfigDao.findConfigValue(SysConfigService.ADVANCE_LEAVE_HOURS);
 		if (StringUtils.isNotBlank(str)) {
-			hours = Integer.parseInt(str);
+			days = Integer.parseInt(str);
 		}
-		
-		if(DateUtil.addHours(date, hours).after(courseSchedule.getStartClassTime())){
-			throw new BizException("开课{}个小时之前才可以请假",hours);
+
+		if(DateUtil.addDays1(date, days).after(courseSchedule.getStartClassTime())){
+			throw new BizException("开课{}天之前才可以请假",days);
 		}
 		
 		StudentAttendance studentAttendance  = studentAttendanceDao.findByStatusAndCourseScheduleId(userId,courseScheduleId.intValue());

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

@@ -102,7 +102,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 		}
 		CourseHomework byTeacherAndCourseHomewok = courseHomeworkDao.findByTeacherAndCourseHomewok(courseHomeworkId, teacherId);
 		if (Objects.nonNull(byTeacherAndCourseHomewok)) {
-			byStudentAndCourseHomewok.setIsView(YesOrNoEnum.YES);
+			byStudentAndCourseHomewok.setIsReplied(YesOrNoEnum.YES);
 			studentCourseHomeworkDao.update(byStudentAndCourseHomewok);
 		}
 		return true;

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -737,4 +737,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         contractService.register(student.getUserId(), student.getParentsName(), student.getIdCardNo(), student.getParentsPhone());
         return student;
     }
+
+    @Override
+    public StudentRegistration queryUserByPhone(String mobile) {
+        return studentRegistrationDao.queryUserByPhone(mobile);
+    }
 }

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

@@ -126,7 +126,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			result.put("signInStatus",0);
 			if(yesOrNoEnum == YesOrNoEnum.YES){
 				//连堂课
-			}else if(DateUtil.minutesBetween(add60Minutes,date) > 0 && DateUtil.minutesBetween(date,add20Minutes) > 0){
+			}else if(DateUtil.minutesBetween(add60Minutes,date) >= 0 && DateUtil.minutesBetween(date,add20Minutes) >= 0){
 				//正常签到范围(开始前20分钟  ~  开始之前)
 			}else if(DateUtil.minutesBetween(add20Minutes,date) > 0){
 				if(StringUtils.isEmpty(teacherAttendance.getRemark())){
@@ -175,14 +175,14 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			courseHomework.setGroupType(teacherAttendance.getGroupType());
 			courseHomework.setClassGroupId(currentCourseDetail.getClassId().intValue());
 			courseHomework.setExpiryDate(DateUtil.addDays(date,7));
+			courseHomework.setExpectNum(courseScheduleDao.countCourseStudentNum(teacherAttendance.getCourseScheduleId()));
+			courseHomeworkService.insert(courseHomework);
 			List<StudentCourseHomework> studentCourseHomeworks = studentCourseHomeworkDao
 					.constructInitialStudentHomeworkRecordsWithPayment(teacherAttendance.getCourseScheduleId(),
 							courseHomework.getId());
 			if(CollectionUtils.isEmpty(studentCourseHomeworks)){
 				throw new BizException("此课程没有学生");
 			}
-			courseHomework.setExpectNum(studentCourseHomeworks.size());
-			courseHomeworkService.insert(courseHomework);
 			studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
 			return result;
 		}

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

@@ -737,7 +737,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                         }else{
                             teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
                         }
-                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
+//                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
                         results.put("onlineTeacherSalary",teacherOnlineSalary);
                         break;
                     case RATIO_DISCOUNT:
@@ -767,7 +767,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                         }else{
                             teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
                         }
-                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
+//                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
                         results.put("offlineTeacherSalary",teacherOfflineSalary);
                         break;
                     case RATIO_DISCOUNT:
@@ -1114,6 +1114,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.QUIT);
 		classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
 
+		courseScheduleService.batchDeleteMusicGroupNotStartCourse(vipGroupId.toString());
+
 		//学员退出班级群
 		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentId.toString())};
 		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, null));
@@ -1194,6 +1196,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.QUIT);
 				classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
 
+				courseScheduleService.batchDeleteMusicGroupNotStartCourse(studentPaymentOrder.getMusicGroupId());
+
 				//学员退出班级群
 				ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentApplyRefunds.getUserId().toString())};
 				imFeignService.groupJoin(new ImGroupModel(studentPaymentOrder.getClassGroupId().toString(), imGroupMembers, null));

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

@@ -177,4 +177,14 @@
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         WHERE cgsm.music_group_id_ = #{musicGroupId} AND cgsm.user_id_=#{userId} AND cg.type_ ='HIGH' AND cgsm.status_='NORMAL'
     </select>
+    <select id="findClassGroupIdByUserAndCourseDateAndStatus" resultType="int">
+        SELECT
+            cgsm.class_group_id_
+        FROM
+            class_group_student_mapper cgsm
+            LEFT JOIN course_schedule cs ON cgsm.class_group_id_=cs.class_group_id_
+            WHERE cgsm.user_id_=#{userId}
+            AND cs.class_date_ = DATE_FORMAT(#{data},'%Y-%m-%d')
+            AND cgsm.status_=#{status}
+    </select>
 </mapper>

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

@@ -151,6 +151,9 @@
         LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
         WHERE cgtm.teacher_role_ = 'TEACHING' AND cgtm.class_group_id_ = #{classGroupId}
     </select>
+    <select id="findByClassGroup" resultMap="ClassGroupTeacherMapper">
+        SELECT * FROM class_group_teacher_mapper WHERE class_group_id_=#{classGroupId}
+    </select>
 
     <!-- 删除对应班级老师关联关系 -->
     <delete id="delClassGroupTeacherMapper">

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

@@ -442,6 +442,12 @@
         WHERE
           cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
         AND cssp.user_id_ = #{studentId}
+        <if test="quitClassGroupIds.size()>0">
+            AND cssp.class_group_id_ NOT IN
+            <foreach collection="quitClassGroupIds" item="quitClassGroupId" open="(" close=")" separator=",">
+                #{quitClassGroupId}
+            </foreach>
+        </if>
         ORDER BY start_class_time_
     </select>
 

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

@@ -32,6 +32,8 @@
         <result column="music_group_status_" property="musicGroupStatus"/>
         <result column="class_group_name_" property="classGroupName"/>
         <result column="temporary_course_fee_" property="temporaryCourseFee" />
+        <result column="birthdate_" property="birthdate" />
+        <result column="gender_" property="gender" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
@@ -348,7 +350,7 @@
 
     <!-- 根据乐团编号和手机号查询注册乐团注册信息-->
     <select id="getByPhoneAndMusicGroupId" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE music_group_id_=#{musicGroupId} AND parents_phone_ = #{parentsPhone}
+        SELECT * FROM student_registration WHERE music_group_id_=#{musicGroupId} AND parents_phone_ = #{parentsPhone} LIMIT 1
     </select>
 
     <resultMap type="com.ym.mec.auth.api.entity.SysUser" id="FindSysUser">
@@ -525,6 +527,12 @@
         WHERE sr.payment_status_ = 2 AND sr.music_group_status_ != 'QUIT' AND FIND_IN_SET(sr.music_group_id_,#{musicGroupIds})
         GROUP BY sr.music_group_id_
     </select>
+    <select id="queryUserByPhone" resultMap="StudentRegistration">
+        SELECT sr.user_id_,sr.parents_name_,sr.parents_phone_,sr.current_grade_,
+        sr.current_class_,su.username_ name_,su.birthdate_,su.gender_
+        FROM student_registration sr
+        LEFT JOIN sys_user su ON sr.user_id_ = su.id_ LIMIT 1
+    </select>
 
     <update id="updateUser">
         UPDATE sys_user SET real_name_ = #{realName},id_card_no_=#{idCardNo} WHERE id_=#{id}

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

@@ -120,4 +120,8 @@
 			#{userId}
 		</foreach>
 	</select>
+    <select id="findByTeacherAndCourseType" resultMap="TeacherDefaultMusicGroupSalary">
+		SELECT * FROM teacher_default_music_group_salary
+		WHERE user_id_=#{userId} AND course_schedule_type_ = #{courseType}
+	</select>
 </mapper>

+ 4 - 5
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseHomeworkController.java

@@ -3,7 +3,6 @@ package com.ym.mec.teacher.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
-import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
@@ -56,14 +55,14 @@ public class CourseHomeworkController extends BaseController {
     @ApiOperation(value = "获取学生作业界面详细信息")
     @GetMapping(value = "/findCourseHomeworkStudentDetail")
     public Object findCourseHomeworkStudentDetail(Long courseScheduleID,Long userId){
-        CourseHomework courseHomework = courseScheduleService.get(courseScheduleID);
-        if(Objects.isNull(courseHomework)){
+        StudentCourseHomework studentCourseHomework1 = studentCourseHomeworkService.get(courseScheduleID);
+        if(Objects.isNull(studentCourseHomework1)){
             return failed("作业不存在");
         }
-        CourseHomeworkStudentDetailDto courseHomeworkStudentDetail = studentCourseHomeworkService.findCourseHomeworkStudentDetail(courseHomework.getCourseScheduleId(), userId);
+        CourseHomeworkStudentDetailDto courseHomeworkStudentDetail = studentCourseHomeworkService.findCourseHomeworkStudentDetail(studentCourseHomework1.getCourseScheduleId(), userId);
         if(Objects.nonNull(courseHomeworkStudentDetail)){
             StudentCourseHomework studentCourseHomework=new StudentCourseHomework();
-            studentCourseHomework.setId(courseHomeworkStudentDetail.getCourseHomeworkId());
+            studentCourseHomework.setId(studentCourseHomework1.getId());
             studentCourseHomework.setIsView(YesOrNoEnum.YES);
             studentCourseHomeworkService.update(studentCourseHomework);
         }

+ 8 - 5
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -10,12 +10,10 @@ import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.service.CourseScheduleComplaintsService;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
@@ -52,7 +50,8 @@ public class CourseScheduleController extends BaseController {
     
     @Autowired
     private CourseScheduleComplaintsService courseScheduleComplaintsService;
-
+    @Autowired
+    private ClassGroupTeacherMapperService classGroupTeacherMapperService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
     
@@ -88,6 +87,10 @@ public class CourseScheduleController extends BaseController {
         });
 
         scheduleService.createCourseSchedules(createCourseScheduleDto.getCourseSchedules());
+
+        if(musicGroup.getStatus().equals(MusicGroupStatusEnum.PROGRESS)){
+            classGroupTeacherMapperService.createMusicGroupTeacherMapper(createCourseScheduleDto.getCourseSchedules(),musicGroup.getId());
+        }
         return succeed();
     }
 

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

@@ -5,8 +5,10 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentManageService;
+import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.*;
@@ -27,6 +29,8 @@ public class StudentManageController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
+    private StudentRegistrationService studentRegistrationService;
+    @Autowired
     private EmployeeDao employeeDao;
 
     @ApiOperation(value = "获取学生列表")
@@ -127,4 +131,15 @@ public class StudentManageController extends BaseController {
     public Object queryStudentPayment(TeacherPaymentRecordInfo queryInfo){
         return succeed(studentManageService.queryStudentPayment(queryInfo));
     }
+
+    /**
+     * 获取学员基本信息
+     * @param mobile
+     * @return
+     */
+    @GetMapping(value = "/queryUserByPhone")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryUserByPhone')")
+    public StudentRegistration queryUserByPhone(String mobile) {
+        return studentRegistrationService.queryUserByPhone(mobile);
+    }
 }