소스 검색

Merge remote-tracking branch 'origin/master'

周箭河 4 년 전
부모
커밋
785064acfb

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

@@ -489,7 +489,7 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @param classGroupId
 	 * @param classGroupId
 	 * @return
 	 * @return
 	 */
 	 */
-    List<Integer> queryTeacherByTeaching(@Param("classGroupId") Integer classGroupId);
+    List<Integer> queryTeacherByTeaching(@Param("classGroupId") Integer classGroupId,@Param("teacherRole") String teacherRole);
 
 
 	/**
 	/**
 	 * 根据助教主教获取教师列表
 	 * 根据助教主教获取教师列表

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

@@ -80,6 +80,8 @@ public class StudentManageListDto {
     private String subjectIdList;
     private String subjectIdList;
 
 
     private Integer isNewUser;
     private Integer isNewUser;
+    
+    private boolean isSignedContract;
 
 
     public Integer getIsNewUser() {
     public Integer getIsNewUser() {
         return isNewUser;
         return isNewUser;
@@ -304,4 +306,12 @@ public class StudentManageListDto {
 	public void setSubjectIdList(String subjectIdList) {
 	public void setSubjectIdList(String subjectIdList) {
 		this.subjectIdList = subjectIdList;
 		this.subjectIdList = subjectIdList;
 	}
 	}
+
+	public boolean getIsSignedContract() {
+		return isSignedContract;
+	}
+
+	public void setIsSignedContract(boolean isSignedContract) {
+		this.isSignedContract = isSignedContract;
+	}
 }
 }

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

@@ -3229,7 +3229,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					ta.setMusicGroupId(newCourseSchedule.getMusicGroupId());
 					ta.setMusicGroupId(newCourseSchedule.getMusicGroupId());
 					ta.setTeacherId(teacherId);
 					ta.setTeacherId(teacherId);
 					insertTeacherAttendanceList.add(ta);
 					insertTeacherAttendanceList.add(ta);
-					imUserFriendService.classGroupChangeTeacher(newCourseSchedule.getClassGroupId(), teacherId);
+					imUserFriendService.courseScheduleChangeTeacher(courseScheduleId, teacherId);
 				}
 				}
 				
 				
 			}
 			}
@@ -4614,6 +4614,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
 		courseScheduleComplaintsDao.delByCourseScheduleIds(courseScheduleIds);
 		//清除考勤申述
 		//清除考勤申述
 		teacherAttendanceDao.clearAttendanceComplaints(courseScheduleIds);
 		teacherAttendanceDao.clearAttendanceComplaints(courseScheduleIds);
+		//添加通讯录
+		imUserFriendService.classGroupChangeTeacher(oldCourseSchedule.getClassGroupId(),teacherId);
 		//保存修改记录
 		//保存修改记录
 		saveModifyLog(modifyLogs,courseIds);
 		saveModifyLog(modifyLogs,courseIds);
 
 
@@ -4987,7 +4989,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//获取助教老师列表
 		//获取助教老师列表
 		if(courseSchedules.size() > 0){
 		if(courseSchedules.size() > 0){
 			courseSchedules.forEach(e->{
 			courseSchedules.forEach(e->{
-				e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId()));
+				e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId(),"TEACHING"));
 				e.setActualTeacherId(targetTeacherId);
 				e.setActualTeacherId(targetTeacherId);
 			});
 			});
 			this.courseAdjust(courseSchedules);
 			this.courseAdjust(courseSchedules);

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java

@@ -82,6 +82,8 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
     @Autowired
     @Autowired
     private ImFeignService imFeignService;
     private ImFeignService imFeignService;
     @Autowired
     @Autowired
+    private ImUserFriendService imUserFriendService;
+    @Autowired
     private TeacherFreeTimeDao teacherFreeTimeDao;
     private TeacherFreeTimeDao teacherFreeTimeDao;
     @Autowired
     @Autowired
     private CourseScheduleService courseScheduleService;
     private CourseScheduleService courseScheduleService;
@@ -579,6 +581,10 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         practiceGroup.setGroupStatus(GroupStatusEnum.NORMAL);
         practiceGroup.setGroupStatus(GroupStatusEnum.NORMAL);
         practiceGroupDao.update(practiceGroup);
         practiceGroupDao.update(practiceGroup);
 
 
+        imUserFriendService.groupChangeEducation(practiceGroup.getId().toString(), practiceGroup.getEducationalTeacherId(), GroupType.PRACTICE);
+        imUserFriendService.classGroupChangeTeacher(classGroup.getId(), practiceGroup.getUserId());
+        imUserFriendService.classGroupAddStudent(classGroup.getId(), Arrays.asList(practiceGroup.getStudentId()));
+
         try {
         try {
             contractService.transferPracticeCoursesContract(order.getUserId(),classGroup.getTotalClassTimes(),practiceGroup.getCoursesStartDate(),practiceGroup.getCoursesExpireDate(),order.getExpectAmount());
             contractService.transferPracticeCoursesContract(order.getUserId(),classGroup.getTotalClassTimes(),practiceGroup.getCoursesStartDate(),practiceGroup.getCoursesExpireDate(),order.getExpectAmount());
         } catch (Exception e) {
         } catch (Exception e) {
@@ -1154,6 +1160,10 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             e.printStackTrace();
             e.printStackTrace();
         }
         }
 
 
+        imUserFriendService.groupChangeEducation(practiceGroupBuyParams.getId().toString(), practiceGroupBuyParams.getEducationalTeacherId(), GroupType.PRACTICE);
+        imUserFriendService.classGroupChangeTeacher(classGroup.getId(), practiceGroupBuyParams.getUserId());
+        imUserFriendService.classGroupAddStudent(classGroup.getId(), Arrays.asList(practiceGroupBuyParams.getStudentId()));
+
         studentDao.updateStudentServiceTag(practiceGroupBuyParams.getStudentId(),null,YesOrNoEnum.YES.getCode());
         studentDao.updateStudentServiceTag(practiceGroupBuyParams.getStudentId(),null,YesOrNoEnum.YES.getCode());
 
 
         return BaseController.succeed();
         return BaseController.succeed();

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

@@ -1,18 +1,23 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ImGroupDao;
 import com.ym.mec.biz.dal.dao.ImGroupDao;
 import com.ym.mec.biz.dal.dao.ImGroupMemberDao;
 import com.ym.mec.biz.dal.dao.ImGroupMemberDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupMemberService;
@@ -22,6 +27,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.entity.GroupMember;
 import com.ym.mec.im.entity.GroupMember;
 import com.ym.mec.im.entity.GroupModel;
 import com.ym.mec.im.entity.GroupModel;
+import com.ym.mec.util.collection.MapUtil;
 
 
 @Service
 @Service
 public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMember> implements ImGroupMemberService {
 public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMember> implements ImGroupMemberService {
@@ -37,6 +43,9 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 
 	@Autowired
 	@Autowired
 	private ImFeignService imFeignService;
 	private ImFeignService imFeignService;
+	
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 
 	@Override
 	@Override
 	public BaseDAO<Long, ImGroupMember> getDAO() {
 	public BaseDAO<Long, ImGroupMember> getDAO() {
@@ -56,6 +65,8 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 			return true;
 			return true;
 		}
 		}
 		
 		
+		SysUser user = sysUserFeignService.queryUserById(userId);
+		
 		ImGroupMember imGroupMember = new ImGroupMember();
 		ImGroupMember imGroupMember = new ImGroupMember();
 		Date date = new Date();
 		Date date = new Date();
 
 
@@ -65,6 +76,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		imGroupMember.setRoleType(roleType);
 		imGroupMember.setRoleType(roleType);
 		imGroupMember.setUpdateTime(date);
 		imGroupMember.setUpdateTime(date);
 		imGroupMember.setUserId(userId);
 		imGroupMember.setUserId(userId);
+		imGroupMember.setNickname(StringUtils.isBlank(user.getUsername()) ? user.getRealName() : user.getUsername());
 
 
 		imGroupMemberDao.insert(imGroupMember);
 		imGroupMemberDao.insert(imGroupMember);
 
 

+ 17 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -19,8 +19,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
-import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
-import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+import static com.ym.mec.biz.dal.enums.GroupType.*;
 
 
 @Service
 @Service
 public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend> implements ImUserFriendService {
 public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend> implements ImUserFriendService {
@@ -38,6 +37,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 	@Autowired
 	@Autowired
 	private VipGroupDao vipGroupDao;
 	private VipGroupDao vipGroupDao;
 	@Autowired
 	@Autowired
+	private PracticeGroupDao practiceGroupDao;
+	@Autowired
 	private TeacherDao teacherDao;
 	private TeacherDao teacherDao;
 	@Autowired
 	@Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
@@ -141,8 +142,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 		//获取班级关联的老师
 		//获取班级关联的老师
 		List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
 		List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
 		teacherIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 		teacherIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
-		//学员关联的课程上的主教老师
-		teacherIds.add(courseScheduleTeacherSalaryDao.queryTeacherByBishop(classGroupId));
+		//学员关联的课程上的老师
+		teacherIds.addAll(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(classGroupId,null));
 		teacherIds.addAll(studentIds);
 		teacherIds.addAll(studentIds);
 
 
 		MusicGroup musicGroup = new MusicGroup();
 		MusicGroup musicGroup = new MusicGroup();
@@ -164,6 +165,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 			teacherIds.add(vipGroup.getEducationalTeacherId());
 			teacherIds.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
+		}else if(groupType == PRACTICE){
+			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
+			teacherIds.add(practiceGroup.getEducationalTeacherId());
+			educations.add(practiceGroup.getEducationalTeacherId());
 		}
 		}
 		educations.removeAll(Collections.singleton(null));
 		educations.removeAll(Collections.singleton(null));
 		teacherIds.removeAll(Collections.singleton(null));
 		teacherIds.removeAll(Collections.singleton(null));
@@ -256,6 +261,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
 			studentIds.add(vipGroup.getEducationalTeacherId());
 			studentIds.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
+		}else if(groupType == PRACTICE){
+			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
+			studentIds.add(practiceGroup.getEducationalTeacherId());
+			educations.add(practiceGroup.getEducationalTeacherId());
 		}
 		}
 		educations.removeAll(Collections.singleton(null));
 		educations.removeAll(Collections.singleton(null));
 		studentIds.removeAll(Collections.singleton(null));
 		studentIds.removeAll(Collections.singleton(null));
@@ -383,6 +392,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 			VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
 			educations.add(vipGroup.getEducationalTeacherId());
 			educations.add(vipGroup.getEducationalTeacherId());
 			studentIds.add(vipGroup.getEducationalTeacherId());
 			studentIds.add(vipGroup.getEducationalTeacherId());
+		}else if(groupType == PRACTICE){
+			PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
+			studentIds.add(practiceGroup.getEducationalTeacherId());
+			educations.add(practiceGroup.getEducationalTeacherId());
 		}
 		}
 		educations.removeAll(Collections.singleton(null));
 		educations.removeAll(Collections.singleton(null));
 		studentIds.removeAll(Collections.singleton(null));
 		studentIds.removeAll(Collections.singleton(null));

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -97,6 +97,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Autowired
     @Autowired
     private ImFeignService imFeignService;
     private ImFeignService imFeignService;
     @Autowired
     @Autowired
+    private ImUserFriendService imUserFriendService;
+    @Autowired
     private TeacherFreeTimeDao teacherFreeTimeDao;
     private TeacherFreeTimeDao teacherFreeTimeDao;
     @Autowired
     @Autowired
     private CourseScheduleService courseScheduleService;
     private CourseScheduleService courseScheduleService;
@@ -2075,6 +2077,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
         }
         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 
 
+        imUserFriendService.groupChangeEducation(practiceGroup.getId().toString(), practiceGroup.getEducationalTeacherId(), GroupType.PRACTICE);
+        imUserFriendService.classGroupChangeTeacher(classGroup.getId(), practiceGroup.getUserId());
+        imUserFriendService.classGroupAddStudent(classGroup.getId(), Arrays.asList(practiceGroup.getStudentId()));
+
         //推送
         //推送
         List<CourseSchedule> courseSchedules1 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(0), practiceCourseMinutes));
         List<CourseSchedule> courseSchedules1 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(0), DateUtil.addMinutes(allCourseDates.get(0), practiceCourseMinutes));
         List<CourseSchedule> courseSchedules2 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(1), practiceCourseMinutes));
         List<CourseSchedule> courseSchedules2 = courseScheduleDao.findTeacherCoursesWithIncludeDateRange(practiceGroup.getUserId(), allCourseDates.get(1), DateUtil.addMinutes(allCourseDates.get(1), practiceCourseMinutes));
@@ -3266,6 +3272,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         practiceGroup.setGroupStatus(GroupStatusEnum.NORMAL);
         practiceGroup.setGroupStatus(GroupStatusEnum.NORMAL);
         practiceGroupDao.update(practiceGroup);
         practiceGroupDao.update(practiceGroup);
 
 
+        imUserFriendService.groupChangeEducation(practiceGroup.getId().toString(), practiceGroup.getEducationalTeacherId(), GroupType.PRACTICE);
+        imUserFriendService.classGroupChangeTeacher(classGroup.getId(), practiceGroup.getUserId());
+        imUserFriendService.classGroupAddStudent(classGroup.getId(), Arrays.asList(practiceGroup.getStudentId()));
+
         try {
         try {
             contractService.transferPracticeCoursesContract(order.getUserId(), classGroup.getTotalClassTimes(), practiceGroup.getCoursesStartDate(), practiceGroup.getCoursesExpireDate(), order.getExpectAmount());
             contractService.transferPracticeCoursesContract(order.getUserId(), classGroup.getTotalClassTimes(), practiceGroup.getCoursesStartDate(), practiceGroup.getCoursesExpireDate(), order.getExpectAmount());
         } catch (Exception e) {
         } catch (Exception e) {

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

@@ -1430,6 +1430,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroupApplyBaseInfoDto.getName(), null, null, GroupType.VIP.getCode());
 			imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroupApplyBaseInfoDto.getName(), null, null, GroupType.VIP.getCode());
 			imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
 			imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
 			List<Integer> studentIds = classGroupStudents.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toList());
 			List<Integer> studentIds = classGroupStudents.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toList());
+
+			imUserFriendService.groupChangeEducation(vipGroupApplyBaseInfoDto.getId().toString(), vipGroupApplyBaseInfoDto.getEducationalTeacherId(), GroupType.PRACTICE);
+			imUserFriendService.classGroupChangeTeacher(classGroup.getId(), vipGroupApplyBaseInfoDto.getUserId());
 			imUserFriendService.classGroupAddStudent(classGroup.getId(), studentIds);
 			imUserFriendService.classGroupAddStudent(classGroup.getId(), studentIds);
 
 
 			//发送推送短信
 			//发送推送短信
@@ -3103,6 +3106,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		try {
 		try {
 			imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroup.getName(), null, null, GroupType.VIP.getCode());
 			imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroup.getName(), null, null, GroupType.VIP.getCode());
 			imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
 			imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+
+			imUserFriendService.groupChangeEducation(vipGroup.getId().toString(), vipGroup.getEducationalTeacherId(), GroupType.PRACTICE);
+			imUserFriendService.classGroupChangeTeacher(classGroup.getId(), vipGroup.getUserId());
 			imUserFriendService.classGroupAddStudent(classGroup.getId(), studentIds);
 			imUserFriendService.classGroupAddStudent(classGroup.getId(), studentIds);
 		} catch (Exception e) {
 		} catch (Exception e) {
 			e.printStackTrace();
 			e.printStackTrace();

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

@@ -1012,7 +1012,9 @@
     <select id="queryTeacherByTeaching" resultType="java.lang.Integer">
     <select id="queryTeacherByTeaching" resultType="java.lang.Integer">
 		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm
 		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm
 		WHERE cgtm.class_group_id_ = #{classGroupId}
 		WHERE cgtm.class_group_id_ = #{classGroupId}
-		  AND cgtm.teacher_role_ = 'TEACHING'
+		<if test="teacherRole != null">
+			AND cgtm.teacher_role_ = #{teacherRole}
+		</if>
 	</select>
 	</select>
     <select id="queryTeacherByBishop" resultType="java.lang.Integer">
     <select id="queryTeacherByBishop" resultType="java.lang.Integer">
 		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm
 		SELECT DISTINCT cgtm.user_id_ FROM class_group_teacher_mapper cgtm

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

@@ -63,6 +63,7 @@
         <result property="teacherId" column="teacher_id_"/>
         <result property="teacherId" column="teacher_id_"/>
         <result property="subjectIdList" column="subject_id_list_"/>
         <result property="subjectIdList" column="subject_id_list_"/>
         <result property="isNewUser" column="is_new_user_"/>
         <result property="isNewUser" column="is_new_user_"/>
+        <result property="isSignedContract" column="is_signed_contract_"/>
     </resultMap>
     </resultMap>
 
 
     <sql id="queryCondition">
     <sql id="queryCondition">
@@ -152,13 +153,15 @@
         SELECT o.`name_` organ_name_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,su.`real_name_` ,su.`gender_` , su.organ_id_,
         SELECT o.`name_` organ_name_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,su.`real_name_` ,su.`gender_` , su.organ_id_,
 		tu.`real_name_` teacher_name_,IF(s.service_tag_=2,0,s.service_tag_) service_tag_ ,s.`operating_tag_` , suca.`course_balance_` ,
 		tu.`real_name_` teacher_name_,IF(s.service_tag_=2,0,s.service_tag_) service_tag_ ,s.`operating_tag_` , suca.`course_balance_` ,
 		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,
 		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,
-		case when su.password_ is null then false else true end isActive_,s.is_new_user_
+		case when su.password_ is null then false else true end isActive_,s.is_new_user_,case when count(sut.user_id_) > 0 then 1 else 0 end is_signed_contract_
 		FROM `student` s LEFT JOIN `sys_user` su on s.`user_id_` = su.`id_`
 		FROM `student` s LEFT JOIN `sys_user` su on s.`user_id_` = su.`id_`
 		LEFT JOIN `organization` o on o.`id_` = su.`organ_id_`
 		LEFT JOIN `organization` o on o.`id_` = su.`organ_id_`
 		LEFT JOIN `sys_user` tu on tu.`id_` = s.`teacher_id_` 
 		LEFT JOIN `sys_user` tu on tu.`id_` = s.`teacher_id_` 
 		LEFT JOIN `sys_user_cash_account` suca on suca.`user_id_` = s.`user_id_`
 		LEFT JOIN `sys_user_cash_account` suca on suca.`user_id_` = s.`user_id_`
 		LEFT JOIN `subject` sub on sub.id_ = s.`subject_id_list_`
 		LEFT JOIN `subject` sub on sub.id_ = s.`subject_id_list_`
+		left join sys_user_tsign sut on sut.user_id_ = s.user_id_
         <include refid="findStudentsByOrganIdSql"/>
         <include refid="findStudentsByOrganIdSql"/>
+        group by s.user_id_
         ORDER BY su.create_time_ DESC
         ORDER BY su.create_time_ DESC
         <include refid="global.limit"/>
         <include refid="global.limit"/>
     </select>
     </select>

+ 44 - 8
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -255,6 +255,29 @@ public class RoomServiceImpl implements RoomService {
         return roomResult;
         return roomResult;
     }
     }
 
 
+    public RoomMember saveRoomMember(String roomId,String userId){
+        SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(userId));
+
+        Teacher teacher = teacherDao.get(Integer.parseInt(userId));
+        CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId.substring(1)));
+
+        Date curTime = DateTimeUtils.currentUTC();
+
+        RoleEnum roleEnum;
+        RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
+        String userName;
+        if (member == null) {
+            if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
+                roleEnum = RoleTeacher;
+                userName = sysUser.getRealName();
+            }else {
+                roleEnum = RoleStudent;
+                userName = sysUser.getUsername();
+            }
+            member = saveRoomMember(userId, sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime);
+        }
+        return member;
+    }
 
 
 
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
@@ -274,7 +297,7 @@ public class RoomServiceImpl implements RoomService {
     public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
     public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         if(roomMember == null){
         if(roomMember == null){
-            return ;
+            roomMember = saveRoomMember(roomId,userId);
         }
         }
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         if(redisTemplate.hasKey(joinSuccessKey)){
         if(redisTemplate.hasKey(joinSuccessKey)){
@@ -411,20 +434,33 @@ public class RoomServiceImpl implements RoomService {
     @Override
     @Override
     public void leaveRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
     public void leaveRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-        if(roomMember == null){
-            return ;
-        }
         String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
         String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
         Integer firstCourseId = Integer.parseInt(roomId.substring(1));
         Integer firstCourseId = Integer.parseInt(roomId.substring(1));
         if(redisTemplate.hasKey(leaveSuccessKey)){
         if(redisTemplate.hasKey(leaveSuccessKey)){
             redisTemplate.delete(leaveSuccessKey);
             redisTemplate.delete(leaveSuccessKey);
-            //如果设备号不为空,更新设备号
-            RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
-            if(roleEnum == RoleTeacher && StringUtils.isNotEmpty(deviceNum)){
-                teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
+            if (StringUtils.isNotEmpty(deviceNum)){
+                //如果设备号不为空,更新设备号
+                RoleEnum roleEnum;
+                if(roomMember == null){
+                    Teacher teacher = teacherDao.get(Integer.parseInt(userId));
+                    CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
+                    if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
+                        roleEnum = RoleTeacher;
+                    }else {
+                        roleEnum = RoleStudent;
+                    }
+                }else {
+                    roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
+                }
+                if(roleEnum == RoleTeacher){
+                    teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
+                }
             }
             }
             return;
             return;
         }
         }
+        if(roomMember == null){
+            return ;
+        }
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
         if(redisTemplate.hasKey(joinSuccessKey)){
         if(redisTemplate.hasKey(joinSuccessKey)){
             redisTemplate.delete(joinSuccessKey);
             redisTemplate.delete(joinSuccessKey);

+ 7 - 6
mec-web/src/main/java/com/ym/mec/web/controller/ContractsController.java

@@ -2,15 +2,14 @@ package com.ym.mec.web.controller;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -79,9 +78,11 @@ public class ContractsController extends BaseController {
 		return succeed(contractService.queryPracticeCoursesContract(sysUser.getId(), courseSectionNum, startDate, endDate, fee));
 		return succeed(contractService.queryPracticeCoursesContract(sysUser.getId(), courseSectionNum, startDate, endDate, fee));
 	}
 	}
 
 
-	@GetMapping("transferProduceContract")
-	public HttpResponseResult transferProduceContract(Integer userId,String musicGroupId){
-		contractService.transferProduceContract(userId,musicGroupId);
+	@PostMapping("transferProduceContract")
+	public HttpResponseResult transferProduceContract(@RequestBody List<Integer> userIds){
+		for (Integer userId : userIds) {
+			contractService.transferProduceContract(userId,null);
+		}
 		return succeed();
 		return succeed();
 	}
 	}
 }
 }

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -605,10 +605,10 @@ public class ExportController extends BaseController {
         try {
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
                     "家长联系电话", "是否激活", "是否有课", "是否有网管课", "课程余额(元)", "账户余额(元)",
                     "家长联系电话", "是否激活", "是否有课", "是否有网管课", "课程余额(元)", "账户余额(元)",
-                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师"}, new String[]{
+                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师","是否签订协议"}, new String[]{
                     "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
                     "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
                     "isActive.msg", "hasCourse.msg", "hasPracticeCourse.msg", "courseBalance", "balance", "musicGroupName",
                     "isActive.msg", "hasCourse.msg", "hasPracticeCourse.msg", "courseBalance", "balance", "musicGroupName",
-                    "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus", "serviceTag.msg", "operatingTag.msg", "teacherName"}, rows);
+                    "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus", "serviceTag.msg", "operatingTag.msg", "teacherName", "isSignedContract"}, rows);
             response.setContentType("application/octet-stream");
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();
             response.flushBuffer();