zouxuan 5 سال پیش
والد
کامیت
27cea6e6dd
22فایلهای تغییر یافته به همراه357 افزوده شده و 119 حذف شده
  1. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  3. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  4. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java
  5. 34 11
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EmployeeDto.java
  6. 5 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  7. 14 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  8. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  9. 21 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  10. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  11. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  12. 1 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  13. 55 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  14. 16 4
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  15. 6 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  16. 32 47
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  17. 13 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  18. 1 1
      mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml
  19. 11 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  20. 45 19
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java
  21. 11 7
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java
  22. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java

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

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
@@ -175,4 +176,19 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      */
     int addStudentNum(@Param("classGroup") ClassGroup classGroup);
+
+    /**
+     * 获取当前班级老师id列表
+     * @param id
+     * @return
+     */
+    Set<Integer> queryTeacherIds(String id);
+
+    /**
+     * 获取老师所在班级群组列表
+     * @param userId
+     * @param search
+     * @return
+     */
+    List<ImGroupModel> queryTeacherGroups(@Param("userId") Integer userId, @Param("search") String search);
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -10,6 +10,7 @@ import com.ym.mec.common.entity.ImUserModel;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Set;
 
 public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
 	
@@ -71,4 +72,19 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      */
     List<ImUserModel> findGroupUsers(String musicGroupId);
+
+    /**
+     * 获取教师所在乐团列表
+     * @param userId
+     * @param search
+     * @return
+     */
+    List<ImGroupModel> queryTeacherGroups(@Param("userId") Integer userId, @Param("search")String search);
+
+    /**
+     * 获取当前乐团所有教师列表
+     * @param id
+     * @return
+     */
+    Set<Integer> queryTeacherIds(String id);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -1,11 +1,15 @@
 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.entity.Teacher;
 import com.ym.mec.common.dal.BaseDAO;
 
+import com.ym.mec.common.entity.ImGroupModel;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
     /**
@@ -26,4 +30,12 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @param user
      */
     void addSysUser(SysUser user);
+
+    /**
+     * 获取和当前教师相关的学员列表
+     * @param teacherId
+     * @param search
+     * @return
+     */
+    List<BasicUserDto> queryGroupStudents(@Param("teacherId") Integer teacherId, @Param("search") String search);
 }

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

@@ -23,6 +23,28 @@ public class CourseScheduleDto extends CourseSchedule {
     @ApiModelProperty(value = "班级编号,房间号",required = false)
     private String sealClassId;
 
+    @ApiModelProperty(value = "签到状态(1已签到,0未签到)",required = false)
+    private Integer signInStatus;
+
+    @ApiModelProperty(value = "签退状态(1已签到,0未签到)",required = false)
+    private Integer signOutStatus;
+
+    public Integer getSignInStatus() {
+        return signInStatus;
+    }
+
+    public void setSignInStatus(Integer signInStatus) {
+        this.signInStatus = signInStatus;
+    }
+
+    public Integer getSignOutStatus() {
+        return signOutStatus;
+    }
+
+    public void setSignOutStatus(Integer signOutStatus) {
+        this.signOutStatus = signOutStatus;
+    }
+
     public String getSealClassId() {
         return sealClassId;
     }

+ 34 - 11
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EmployeeDto.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Author Joburgess
@@ -17,7 +18,7 @@ public class EmployeeDto {
 
     /** 用户名 */
     @ApiModelProperty(value = "用户名",required = false)
-    private String username;
+    private String realName;
 
     @ApiModelProperty(value = "性别",required = false)
     private UserGenderEnum gender;
@@ -32,6 +33,12 @@ public class EmployeeDto {
     @ApiModelProperty(value = "角色名称",required = false)
     private String roleName;
 
+    @ApiModelProperty(value = "角色名称",required = false)
+    private List<String> roleNames;
+
+    @ApiModelProperty(value = "角色编号",required = false)
+    private List<Integer> roleIds;
+
     /** 工作性质(兼职、全职、临时) */
     private String jobNature;
 
@@ -42,24 +49,40 @@ public class EmployeeDto {
     private java.util.Date demissionDate;
 
     @ApiModelProperty(value = "部门ID",required = false)
-    private Long organIdList;
+    private List<Long> organIdList;
 
     @ApiModelProperty(value = "部门名称",required = false)
-    private String organNameList;
+    private List<String> organNameList;
+
+    public List<String> getRoleNames() {
+        return roleNames;
+    }
+
+    public void setRoleNames(List<String> roleNames) {
+        this.roleNames = roleNames;
+    }
+
+    public List<Integer> getRoleIds() {
+        return roleIds;
+    }
+
+    public void setRoleIds(List<Integer> roleIds) {
+        this.roleIds = roleIds;
+    }
 
-    public Long getOrganIdList() {
+    public List<Long> getOrganIdList() {
         return organIdList;
     }
 
-    public void setOrganIdList(Long organIdList) {
+    public void setOrganIdList(List<Long> organIdList) {
         this.organIdList = organIdList;
     }
 
-    public String getOrganNameList() {
+    public List<String> getOrganNameList() {
         return organNameList;
     }
 
-    public void setOrganNameList(String organNameList) {
+    public void setOrganNameList(List<String> organNameList) {
         this.organNameList = organNameList;
     }
 
@@ -71,12 +94,12 @@ public class EmployeeDto {
         this.id = id;
     }
 
-    public String getUsername() {
-        return username;
+    public String getRealName() {
+        return realName;
     }
 
-    public void setUsername(String username) {
-        this.username = username;
+    public void setRealName(String realName) {
+        this.realName = realName;
     }
 
     public UserGenderEnum getGender() {

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

@@ -9,6 +9,8 @@ import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.common.enums.BaseEnum;
 
+import java.math.BigDecimal;
+
 /**
  * 对应数据库表(course_schedule):
  */
@@ -52,7 +54,7 @@ public class CourseSchedule {
 
 	/** 补贴 */
 	@ApiModelProperty(value = "补贴", required = false)
-	private long subsidy;
+	private BigDecimal subsidy;
 
 	/** 上课日期 */
 	@ApiModelProperty(value = "上课日期", required = false)
@@ -110,11 +112,11 @@ public class CourseSchedule {
 		this.status = status;
 	}
 
-	public void setSubsidy(long subsidy) {
+	public void setSubsidy(BigDecimal subsidy) {
 		this.subsidy = subsidy;
 	}
 
-	public long getSubsidy() {
+	public BigDecimal getSubsidy() {
 		return this.subsidy;
 	}
 

+ 14 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -91,7 +91,10 @@ public class MusicGroup {
 	private String img;
 	
 	@ApiModelProperty(value = "教学主任",required = false)
-	private String directorUserId;
+	private Integer directorUserId;
+
+	@ApiModelProperty(value = "乐团创建人",required = false)
+	private Integer operatorUserId;
 
 	public String getImg() {
 		return img;
@@ -269,14 +272,22 @@ public class MusicGroup {
 		this.isExtraClass = isExtraClass;
 	}
 
-	public String getDirectorUserId() {
+	public Integer getDirectorUserId() {
 		return directorUserId;
 	}
 
-	public void setDirectorUserId(String directorUserId) {
+	public void setDirectorUserId(Integer directorUserId) {
 		this.directorUserId = directorUserId;
 	}
 
+	public Integer getOperatorUserId() {
+		return operatorUserId;
+	}
+
+	public void setOperatorUserId(Integer operatorUserId) {
+		this.operatorUserId = operatorUserId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -1,11 +1,16 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.TeacherUserDto;
 import com.ym.mec.biz.dal.entity.Teacher;
 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 java.util.List;
+
 public interface TeacherService extends BaseService<Integer, Teacher> {
 
     /**
@@ -47,4 +52,20 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * 删除教师
      */
     void deleteTeacher(Long userId);
+
+    /**
+     * 获取教师所在群组列表
+     * @param userId
+     * @param search
+     * @return
+     */
+    List<ImGroupModel> queryTeacherGroups(Integer userId,String search);
+
+    /**
+     * 获取和当前教师相关的学员列表
+     * @param id
+     * @param search
+     * @return
+     */
+    List<BasicUserDto> queryGroupStudents(Integer id, String search);
 }

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

@@ -380,19 +380,35 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public List<ImGroupModel> queryUserGroups(Integer userId, String search) {
         List<ImGroupModel> imGroupModels = musicGroupDao.queryUserGroups(userId, search);
         List<ImGroupModel> imGroupModels1 = classGroupDao.queryUserGroups(userId, search);
-        if (imGroupModels.size() < 1 || imGroupModels == null) {
-            return imGroupModels1;
-        } else {
+        if(imGroupModels != null && imGroupModels.size() > 0){
             imGroupModels.forEach(e -> {
-                e.setCount(musicGroupDao.countMusicGroupUserNum(e.getId()));
+                //获取创建乐团的老师
+                MusicGroup musicGroup = musicGroupDao.get(e.getId());
+                //获取教学老师id列表
+                Set<Integer> teachers = musicGroupDao.queryTeacherIds(e.getId());
+                teachers.add(musicGroup.getTeamTeacherId());
+                teachers.add(musicGroup.getEducationalTeacherId());
+                teachers.add(musicGroup.getOperatorUserId());
+                teachers.add(musicGroup.getDirectorUserId());
+                teachers.removeAll(Collections.singleton(null));
+                //获取乐团群用户总数
+                e.setCount(musicGroupDao.countMusicGroupUserNum(e.getId()) + teachers.size());
                 e.setId("mg" + e.getId());
             });
+        }else {
+            imGroupModels = new ArrayList<>();
+        }
+        if(imGroupModels1 != null && imGroupModels1.size() > 0){
             imGroupModels1.forEach(e -> {
+                //获取当前班级老师总数
+                Set<Integer> teachers = classGroupDao.queryTeacherIds(e.getId());
+                teachers.removeAll(Collections.singleton(null));
+                e.setCount(e.getCount() + teachers.size());
                 e.setId("cg" + e.getId());
             });
             imGroupModels.addAll(imGroupModels1);
-            return imGroupModels;
         }
+        return imGroupModels;
     }
 
     @Override

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

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.ParamEnum;

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

@@ -75,7 +75,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void updateEmployee(Employee employee) {
-		Employee employee1 = employeeDao.get(employee.getUserId());
+		Employee employee1 = employeeDao.get(employee.getId());
 		if(null==employee1){
 			employeeDao.insert(employee);
 		}else{
@@ -98,7 +98,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 
 		queryInfo.setOrganId(user.getOrganId().longValue());
 		PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
+		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
 		List<EmployeeDto> dataList = null;
@@ -107,6 +107,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = employeeDao.queryEmployByOrganId(params);
+
 		}
 		if (count == 0) {
 			dataList = new ArrayList<>();

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

@@ -7,6 +7,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
+import com.ym.mec.biz.dal.entity.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -24,13 +25,6 @@ import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
 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.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.MusicGroupSubjectGoodsGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;

+ 55 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -5,16 +5,18 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-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.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 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 org.apache.commons.lang3.StringUtils;
@@ -22,8 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 @Service
 public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  implements TeacherService {
@@ -33,6 +34,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	@Autowired
 	private SubjectDao subjectDao;
 	@Autowired
+	private MusicGroupDao musicGroupDao;
+	@Autowired
+	private ClassGroupDao classGroupDao;
+	@Autowired
 	private OrganizationDao organizationDao;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
@@ -90,6 +95,49 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	}
 
 	@Override
+	public List<ImGroupModel> queryTeacherGroups(Integer userId,String search) {
+		//获取教师所在乐团列表
+		List<ImGroupModel> imGroupModels =  musicGroupDao.queryTeacherGroups(userId,search);
+		//获取教师所在班级列表
+		List<ImGroupModel> imGroupModels1 =  classGroupDao.queryTeacherGroups(userId,search);
+		if(imGroupModels != null && imGroupModels.size() > 0){
+			imGroupModels.forEach(e -> {
+				//获取创建乐团的老师
+				MusicGroup musicGroup = musicGroupDao.get(e.getId());
+				//获取教学老师id列表
+				Set<Integer> teachers = musicGroupDao.queryTeacherIds(e.getId());
+				teachers.add(musicGroup.getTeamTeacherId());
+				teachers.add(musicGroup.getEducationalTeacherId());
+				teachers.add(musicGroup.getOperatorUserId());
+				teachers.add(musicGroup.getDirectorUserId());
+				teachers.removeAll(Collections.singleton(null));
+				//获取乐团群用户总数
+				e.setCount(musicGroupDao.countMusicGroupUserNum(e.getId()) + teachers.size());
+				e.setId("mg" + e.getId());
+			});
+		}else {
+			imGroupModels = new ArrayList<>();
+		}
+		if(imGroupModels1 != null && imGroupModels1.size() > 0){
+			imGroupModels1.forEach(e -> {
+				//获取当前班级老师总数
+				Set<Integer> teachers = classGroupDao.queryTeacherIds(e.getId());
+				teachers.removeAll(Collections.singleton(null));
+				e.setCount(e.getCount() + teachers.size());
+				e.setId("cg" + e.getId());
+			});
+			imGroupModels.addAll(imGroupModels1);
+		}
+
+		return imGroupModels;
+	}
+
+	@Override
+	public List<BasicUserDto> queryGroupStudents(Integer teacherId, String search) {
+		return teacherDao.queryGroupStudents(teacherId,search);
+	}
+
+	@Override
 	public PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo) {
 		PageInfo<Teacher> pageInfo = queryPage(queryInfo);
 		List<Teacher> teachers = pageInfo.getRows();
@@ -109,10 +157,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		if(teacher != null){
 			if(StringUtils.isNotEmpty(teacher.getFlowOrganRange())){
 				List<String> organNames = organizationDao.findByOrganIds(teacher.getFlowOrganRange());
-				teacher.setFlowOrganRange(JSON.toJSONString(organNames));
+				teacher.setFlowOrganRange(StringUtils.join(organNames,","));
 			}
 			if(StringUtils.isNotEmpty(teacher.getSubjectId())){
-				teacher.setSubjectId(JSON.toJSONString(subjectDao.findBySubIds(teacher.getSubjectId())));
+				teacher.setSubjectId(StringUtils.join(subjectDao.findBySubIds(teacher.getSubjectId()),","));
 			}
 		}
 		return teacher;

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

@@ -387,17 +387,29 @@
             LEFT JOIN teacher_school ts ON vg.teacher_school_id_ = ts.id_
             WHERE cgsm.user_id_ = #{search} AND cg.type_ = 'VIP') a
     </select>
+
     <select id="countClassStudent" resultType="int">
         select count(*) from class_group_student_mapper where class_group_id_=#{classGroupId}
     </select>
+
     <select id="findAllClassGroupByMusicGroup" resultMap="ClassGroup">
-        SELECT
-        *
-        FROM
-        class_group cg
+        SELECT * FROM class_group cg
         WHERE cg.music_group_id_=#{musicGroupId} AND del_flag_='0'
     </select>
 
+    <select id="queryTeacherIds" resultType="java.lang.Integer">
+        SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm WHERE cgtm.class_group_id_ = #{id}
+    </select>
+
+    <select id="queryTeacherGroups" resultMap="imGroupModel">
+        SELECT cg.id_,cg.name_,cg.student_num_,cg.img_ FROM class_group_teacher_mapper cgtm
+        LEFT JOIN class_group cg ON cgtm.class_group_id_ = cg.id_
+        WHERE cgtm.user_id_ = #{userId}
+        <if test="search != null">
+            AND cg.name_ LIKE CONCAT('%',#{search},'%')
+        </if>
+    </select>
+
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">
         UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{updateTime} WHERE id_ = #{id} AND student_num_=#{studentNum}

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

@@ -28,8 +28,10 @@
         <result column="name_" property="classGroupName"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="school_name_" property="schoolName"/>
-        <result column="attendance_status_" property="attendanceStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="sign_in_status_" property="signInStatus"/>
+        <result column="sign_out_status_" property="signOutStatus"/>
         <result column="seal_class_id_" property="sealClassId"/>
+        <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="paran_value_" property="vipAppealDaysRange"/>
     </resultMap>
 
@@ -271,7 +273,9 @@
             CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
             cs.status_,
 	        s.name_ school_name_,
-	        ta.status_ attendance_status_
+	        cg.teach_mode_,
+	        ta.sign_in_status_ sign_in_status_,
+	        ta.sign_out_status_ sign_out_status_,
         FROM
             course_schedule cs
             LEFT JOIN sys_user su ON cs.teacher_id_=su.id_

+ 32 - 47
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -146,66 +146,51 @@
 		SELECT COUNT(*) FROM employee
 	</select>
 
+
     <resultMap type="com.ym.mec.biz.dal.dto.EmployeeDto" id="EmployeeDto">
         <result property="id" column="id_" />
-        <result property="username" column="username_" />
+        <result property="realName" column="real_name_" />
         <result property="gender" column="gender_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="phone" column="phone_" />
         <result property="lockFlag" column="lock_flag_" />
-        <result property="roleName" column="role_name_" />
         <result property="jobNature" column="job_nature_" />
         <result property="entryDate" column="entry_date_" />
         <result property="demissionDate" column="demission_date_" />
-        <result property="organIdList" column="organ_id_list_" />
-        <result property="organNameList" column="organ_name_list_" />
+        <collection property="roleNames" ofType="string" javaType="list">
+            <result column="role_name_" />
+        </collection>
+        <collection property="organNameList" ofType="string" javaType="list">
+            <result column="organ_name_list_" />
+        </collection>
+        <collection property="roleIds" ofType="integer" javaType="list">
+            <result column="role_id_" />
+        </collection>
+        <collection property="organIdList" ofType="Long" javaType="list">
+            <result column="organ_id_list_" />
+        </collection>
     </resultMap>
-
-    <sql id="queryCondition">
-        <where>
-            su.user_type_='SYSTEM'
-            <if test="organId != null">
-                and su.organ_id_=#{organId}
-            </if>
-            <if test="roleId != null">
-                and sr.id_ = #{roleId}
-            </if>
-            <if test="userNameOrPhone != null">
-                and (su.username_ like LIKE CONCAT('%',#{userNameOrPhone},'%')
-                or su.phone_ like LIKE CONCAT('%',#{userNameOrPhone},'%') or )
-            </if>
-        </where>
-    </sql>
-
     <select id="queryEmployByOrganId" resultMap="EmployeeDto">
-        SELECT
-        su.id_,
-        su.username_,
-        su.gender_,
-        su.phone_,
-        GROUP_CONCAT(DISTINCT sr.role_name_) role_name_,
-        su.lock_flag_,
-        e.organ_id_list_,
-        GROUP_CONCAT(DISTINCT o.name_) organ_name_list_,
-        e.job_nature_,
-        e.entry_date_,
-        e.demission_date_
-        FROM
-        sys_user su
-        LEFT JOIN employee e ON su.id_=e.user_id_
-        LEFT JOIN sys_user_role sur ON su.id_=sur.user_id_
-        LEFT JOIN sys_role sr ON sur.role_id_=sr.id_
+        SELECT su.id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
+        e.entry_date_,e.demission_date_,o.name_ organ_name_list_,o.id_ organ_id_list_,sr.role_name_,sr.id_ role_id_
+        FROM sys_user su
+        LEFT JOIN employee e ON su.id_ = e.user_id_
+        LEFT JOIN sys_user_role sur ON sur.user_id_ = e.user_id_
+        LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
         LEFT JOIN organization o ON FIND_IN_SET(o.id_,e.organ_id_list_)
-        <include refid="queryCondition"/>
-        GROUP BY su.id_
+        WHERE su.user_type_ LIKE '%SYSTEM%' AND FIND_IN_SET(su.organ_id_,e.organ_id_list_)
+        <if test="search != null">
+            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+        </if>
+        <include refid="global.limit"/>
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">
-		SELECT
-			count(*)
-		FROM
-			sys_user su
-		LEFT JOIN employee e ON su.id_=e.user_id_
-		LEFT JOIN sys_user_role sur ON su.id_=sur.user_id_
-		LEFT JOIN sys_role sr ON sur.role_id_=sr.id_
+        SELECT COUNT(su.id_)
+        FROM sys_user su
+        LEFT JOIN employee e ON su.id_ = e.user_id_
+        WHERE su.user_type_ LIKE '%SYSTEM%' AND FIND_IN_SET(su.organ_id_,e.organ_id_list_)
+        <if test="search != null">
+            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+        </if>
 	</select>
 </mapper>

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

@@ -239,4 +239,17 @@
 		LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
 		WHERE cg.music_group_id_ = #{musicGroupId} GROUP BY su.id_
 	</select>
+	<select id="queryTeacherGroups" resultMap="ImUserModel">
+		SELECT mg.id_,mg.name_,mg.img_ FROM music_group mg
+		WHERE (team_teacher_id_ = #{userId} OR educational_teacher_id_ = #{userId} OR operator_user_id_ = #{userId} OR director_user_id_ = #{userId})
+		<if test="search != null">
+			AND mg.name_ LIKE CONCAT('%',#{search},'%')
+		</if>
+	</select>
+
+	<select id="queryTeacherIds" resultType="java.lang.Integer">
+		SELECT DISTINCT cgtm.user_id_ FROM class_group cg
+		LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.class_group_id_
+		WHERE cg.music_group_id_ = #{id}
+	</select>
 </mapper>

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

@@ -102,6 +102,6 @@
     </select>
 
     <select id="findByOrganIds" resultType="java.lang.String">
-        SELECT name_ FROM organization IN (#{organIds}) WHERE del_flag_ = 0
+        SELECT name_ FROM organization WHERE del_flag_ = 0 AND id_ IN (#{organIds})
     </select>
 </mapper>

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

@@ -237,4 +237,15 @@
     <select id="findByCertificateNum" resultMap="Teacher">
 		SELECT * FROM teacher WHERE certificate_num_ = #{certificateNum}
 	</select>
+    <select id="queryGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,s.name_ FROM class_group_teacher_mapper cgtm
+        LEFT JOIN class_group_student_mapper cgsm ON cgtm.class_group_id_ = cgsm.class_group_id_
+        LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
+        LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
+        LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
+        WHERE cgtm.user_id_ = #{teacherId}
+        <if test="search != null">
+            AND su.username_ LIKE CONCAT('%',#{search},'%')
+        </if>
+    </select>
 </mapper>

+ 45 - 19
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java → mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -1,21 +1,24 @@
-package com.ym.mec.web.controller;
-
-import com.ym.mec.common.security.SecurityUtils;
-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.web.bind.annotation.*;
+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.Teacher;
 import com.ym.mec.biz.dal.page.TeacherQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.TeacherService;
 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.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.util.Date;
 
 @RequestMapping("teacher")
 @Api(tags = "教师服务")
@@ -27,6 +30,8 @@ public class TeacherController extends BaseController {
 
     @Autowired
     private ClassGroupService classGroupService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "新增教师")
     @PostMapping("/add")
@@ -48,17 +53,17 @@ public class TeacherController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "删除教师")
-    @PostMapping("/delete/{userId}")
-    public Object update(@PathVariable("userId") Long userId) {
+    /*@ApiOperation(value = "删除教师")
+    @PostMapping("/delete")
+    public Object update(Long userId) {
         teacherService.deleteTeacher(userId);
         return succeed();
-    }
+    }*/
 
     @ApiOperation(value = "根据教师编号查询教师基本信息")
-    @GetMapping("/get/{id}")
+    @GetMapping("/get")
     @ApiParam(value = "教师编号", required = true)
-    public Object get(@PathVariable("id") Integer id) {
+    public Object get(Integer id) {
         return succeed(teacherService.getDetail(id));
     }
 
@@ -69,9 +74,9 @@ public class TeacherController extends BaseController {
     }
 
     @ApiOperation(value = "根据教师编号查询教师课程班列表")
-    @GetMapping("/getClass/{id}")
+    @GetMapping("/getClass")
     @ApiParam(value = "教师编号", required = true)
-    public Object getClassGroup(@PathVariable("id") Integer id) {
+    public Object getClassGroup(Integer id) {
         return succeed(classGroupService.findClassGroup4Teacher(id));
     }
 
@@ -87,4 +92,25 @@ public class TeacherController extends BaseController {
     public Object getTeacherVipClass(VipClassQueryInfo queryInfo){
         return succeed(classGroupService.getTeacherVipClass(queryInfo));
     }
+
+    @ApiOperation(value = "获取教师所有聊天群组")
+    @GetMapping("/queryTeacherGroups")
+    public Object queryTeacherGroups(String search){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
+        return succeed(teacherService.queryTeacherGroups(sysUser.getId(),search));
+    }
+
+    @ApiOperation(value = "获取和当前教师相关的所有学员聊天列表")
+    @GetMapping("/queryGroupStudents")
+    public Object queryGroupStudents(String search){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
+        return succeed(teacherService.queryGroupStudents(sysUser.getId(),search));
+    }
+
 }

+ 11 - 7
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -1,6 +1,7 @@
 package com.ym.mec.teacher.controller;
 
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
+import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
@@ -14,8 +15,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Author Joburgess
@@ -31,7 +31,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @Autowired
     private StudentAttendanceService studentAttendanceService;
 
-    @ApiOperation(value = "根据月份获取乐团在该月有课的日期")
+    @ApiOperation(value = "根据月份获取该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
     public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month) {
         if(Objects.isNull(month)){
@@ -46,19 +46,23 @@ public class TeacherCourseScheduleController extends BaseController {
         if(Objects.isNull(date)){
             return failed(HttpStatus.FORBIDDEN, "请指定日期!");
         }
-        return succeed(scheduleService.getTeacherCourseSchedulesWithDate(date));
+        List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(date);
+        Map<String,Object> result = new HashMap<>();
+        result.put("rows",teacherCourseSchedulesWithDate);
+        result.put("appealDaysRange",1);
+        return succeed(result);
     }
 
     @ApiOperation(value = "根据课程ID查询正在或即将开始的课程")
-    @GetMapping("/getCurrentCourseDetail/{courseID}")
-    public Object getCurrentCourseDetail(@ApiParam(value = "课程ID", required = true) @PathVariable("courseID") Long courseID){
+    @GetMapping("/getCurrentCourseDetail")
+    public Object getCurrentCourseDetail(Long courseID){
         if(Objects.isNull(courseID)){
             return failed(HttpStatus.FORBIDDEN, "请指定课程!");
         }
         return succeed(scheduleService.getCurrentCourseDetail(courseID));
     }
 
-    @ApiOperation(value = "根据班级ID获取当前课程的学生")
+    @ApiOperation(value = "根据班级ID获取当前课程的学生列表")
     @GetMapping("/getCurrentCourseStudents")
     public Object getCurrentCourseStudents(StudentAttendanceQueryInfo queryInfo){
         if(Objects.isNull(queryInfo.getClassGroupId())){

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

@@ -25,7 +25,7 @@ public class StudentAttendanceController extends BaseController {
     @Autowired
     private StudentAttendanceService studentAttendanceService;
 
-    @ApiOperation(value = "批量插入学生上课签到信息")
+    @ApiOperation(value = "点名完成")
     @PostMapping("/addStudentAttendances")
     public Object addStudentAttendances(@RequestBody List<StudentAttendance> studentAttendances){
         studentAttendanceService.addStudentAttendances(studentAttendances);