Forráskód Böngészése

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

yonge 4 éve
szülő
commit
4360cbf7ef

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

@@ -842,12 +842,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> findCourseScheduleWithDate(@Param("startDate") String startDate, @Param("endDate") String endDate);
 
     /**
-     * @describe 统计指定时间段内已结算的课程组类型数量
-     * @author Joburgess
-     * @date 2020/12/29 0029
      * @param startDate:
      * @param endDate:
      * @return int
+     * @describe 统计指定时间段内已结算的课程组类型数量
+     * @author Joburgess
+     * @date 2020/12/29 0029
      */
     int countIsSalaryGroupTypes(@Param("startDate") String startDate, @Param("endDate") String endDate);
 
@@ -1744,6 +1744,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 根据班级编号和课程编号获取课程列表
+     *
      * @param classGroupId
      * @param allLockCourseIds
      * @return
@@ -1752,8 +1753,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取班级总剩余时长
+     *
      * @param masterClassGroupId
      * @return
      */
     Integer queryTotalCourseTimes(Integer masterClassGroupId);
+
+
+    /**
+     * 获取进行中课程数量
+     *
+     * @return
+     */
+    Integer getUnderwayCourseNum(@Param("musicGroupId") String musicGroupId, @Param("groupType") GroupType groupType, @Param("status") CourseStatusEnum status);
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import java.util.List;
+import java.util.Set;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import org.apache.ibatis.annotations.Param;
@@ -34,5 +35,5 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
 	 * @param teachers
 	 * @param teacherId
 	 */
-	void batchInsert(@Param("teachers") List<BasicUserDto> teachers, @Param("teacherId") Integer teacherId);
+	void batchInsert(@Param("teachers") Set<BasicUserDto> teachers, @Param("teacherId") Integer teacherId);
 }

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

@@ -78,7 +78,7 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @param search
      * @return
      */
-    void queryGroupStudents1(Integer id, String search);
+    List<ImUserFriendDto> queryGroupStudents1(Integer id, String search);
 
     /**
      * 获取教师通讯录学员列表

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

@@ -3953,13 +3953,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             }
         }
 
-		Set<Long> courseIds = null;
 		if (updateList.size() > 0) {
             courseScheduleDao.batchUpdate(updateList);
-			courseIds = updateList.stream().map(CourseSchedule::getId).collect(Collectors.toSet());
         }
 
-		courseEventSource.courseStatusChange(courseIds);
+		courseEventSource.courseStatusChange(null);
 
         // 更新班级已上课次
         if (classGroupIds.size() > 0) {

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

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import java.util.Date;
 import java.util.List;
 
+import com.ym.mec.biz.service.TeacherService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -19,6 +20,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
 	@Autowired
 	private ImUserFriendDao imUserFriendDao;
+	@Autowired
+	private TeacherService teacherService;
 
 	@Override
 	public BaseDAO<Long, ImUserFriend> getDAO() {
@@ -73,7 +76,11 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
 	@Override
 	public List<ImUserFriendDto> queryFriendListByUserId(Integer userId, String search) {
-		return imUserFriendDao.queryFriendListByUserId(userId, search);
+		List<ImUserFriendDto> imUserFriendDtos = imUserFriendDao.queryFriendListByUserId(userId, search);
+		if(imUserFriendDtos.size() == 0){
+			return teacherService.queryGroupStudents1(userId,search);
+		}
+		return imUserFriendDtos;
 	}
 
 	@Override

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

@@ -86,9 +86,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		LocalDate nowDate = LocalDate.now();
 
 		List<Organization> allOrgans = organizationDao.findAllOrgans();
-		Set<Integer> organIds = allOrgans.stream().map(Organization::getId).collect(Collectors.toSet());
-		this.organIds.get().clear();
-		this.organIds.get().addAll(organIds);
+		if(CollectionUtils.isEmpty(this.organIds.get())){
+			this.organIds.get().clear();
+			this.organIds.get().addAll(allOrgans.stream().map(Organization::getId).collect(Collectors.toSet()));
+		}
 
 		startMonth = df.format(nowDate);
 

+ 19 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import static com.ym.mec.biz.dal.enums.DealStatusEnum.CLOSE;
 import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
+import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
 
 import java.io.IOException;
 import java.math.BigDecimal;
@@ -18,6 +19,7 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.enums.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -103,20 +105,6 @@ import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectChange;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.GoodsType;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
-import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupStudentMapperService;
@@ -348,7 +336,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         studentRegistration.setId(null);
                         if (musicGroupSubjectPlan.getFee().compareTo(BigDecimal.ZERO) == 0) {
                             studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
-                            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+                            studentRegistration.setPaymentStatus(YES);
                         } else {
                             studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
                             studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
@@ -1988,7 +1976,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("缴费项目不存在");
         }
         StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, calender.getMusicGroupId());
-        if (studentRegistration == null || studentRegistration.getPaymentStatus() != PaymentStatusEnum.YES) {
+        if (studentRegistration == null || studentRegistration.getPaymentStatus() != YES) {
             throw new BizException("请走报名缴费流程");
         }
         Integer organId = studentRegistration.getOrganId();
@@ -2132,6 +2120,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
             }
+            //如果是进行中加学员
+            MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderDao.get(calenderDetail.getMusicGroupPaymentCalenderId());
+            if(paymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.ADD_STUDENT){
+                studentRegistration.setPaymentStatus(YES);
+                studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
+                studentRegistrationDao.update(studentRegistration);
+            }
             /*if (musicGroupPaymentCalender.getType().equals(MusicGroupPaymentCalender.FeeType.ONLINE)) {
                 Integer getRemainNetworkClassTimes = musicGroupStudentFee.getRemainNetworkClassTimes() == null ? 0 : musicGroupStudentFee.getRemainNetworkClassTimes();
                 musicGroupStudentFee.setRemainNetworkClassTimes(getRemainNetworkClassTimes + 1);
@@ -2689,6 +2684,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             hasUsers.add(studentRegistration.getUserId());
             newRegs.add(studentRegistration);
         }
+        if(registerIds.size() >0 && newRegs.size()<=0){
+            throw new BizException("添加的学员,乐团已存在");
+        }
         studentRegistrations = newRegs;
 
         List<Integer> subjectIds = studentRegistrations.stream().map(StudentRegistration::getActualSubjectId).collect(Collectors.toList());
@@ -2757,6 +2755,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("乐团当前状态是{},不能关闭", musicGroup.getStatus().getMsg());
         }
 
+        //有进行中的课不能关闭乐团
+        Integer underwayCourseNum = courseScheduleDao.getUnderwayCourseNum(musicGroup.getId(), GroupType.MUSIC, CourseStatusEnum.UNDERWAY);
+        if(underwayCourseNum >0){
+            throw new BizException("乐团有进行的课程,不能关闭");
+        }
         musicGroup.setStatus(MusicGroupStatusEnum.CLOSE);
         musicGroup.setUpdateTime(new Date());
         musicGroupDao.update(musicGroup);

+ 50 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -52,6 +52,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
+	private StudentRegistrationDao studentRegistrationDao;
+	@Autowired
 	private DemoGroupDao demoGroupDao;
 	@Autowired
 	private OrganizationDao organizationDao;
@@ -237,7 +239,42 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	}
 
 	@Transactional(rollbackFor = Exception.class)
-	public void queryGroupStudents1(Integer teacherId, String search) {
+	public List<ImUserFriendDto> queryGroupStudents1(Integer teacherId, String search) {
+		Set<BasicUserDto> basicUserDtos = new HashSet<>();
+		//学员关联的通讯录
+		//获取相关课程,班级老师列表
+		Set<Integer> teacherIds = teacherDao.findMusicTeacherIds(teacherId);
+		//获取学员所在乐团列表
+		List<String> musicGroupIds = studentRegistrationDao.queryStudentMusicGroup(teacherId);
+		if (musicGroupIds != null && musicGroupIds.size() > 0) {
+			List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds, ","));
+			musicGroups.forEach(e -> {
+				teacherIds.add(e.getDirectorUserId());
+				teacherIds.add(e.getEducationalTeacherId());
+				teacherIds.add(e.getTeamTeacherId());
+			});
+		}
+		//获取相关vip课老师列表
+		teacherIds.addAll(teacherDao.findVipTeacherIds(teacherId));
+		//获取陪练课老师列表
+		teacherIds.addAll(teacherDao.findPracticeTeacherIds(teacherId));
+		//获取对外课程老师列表
+		teacherIds.addAll(teacherDao.findCloseCourseTeacherIds(teacherId));
+		//获取陪练课课程教务老师
+		teacherIds.addAll(teacherDao.findPracticeEducationalTeacherId(teacherId));
+		//获取VIP课程教务老师
+		teacherIds.addAll(teacherDao.findVipEducationalTeacherId(teacherId));
+		//获取对外课程务老师
+		teacherIds.addAll(teacherDao.findCommEducationalTeacherId(teacherId));
+		//获取关联的指导老师
+		Student student = studentDao.get(teacherId);
+		if (student != null && student.getTeacherId() != null) {
+			teacherIds.add(student.getTeacherId());
+		}
+		if (teacherIds.size() > 0) {
+			basicUserDtos.addAll(teacherDao.queryTeacherBaseInfo(teacherIds, search));
+		}
+
 		//获取关联的学员列表
 		Set<Integer> studentIds = teacherDao.queryCourseClassStudentIds(teacherId);
 		//获取关联的老师列表
@@ -256,7 +293,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		}
 		studentIds.removeAll(Collections.singleton(null));
 		List<ImGroupModel> musicGroups =  musicGroupDao.queryTeacherGroups(teacherId,search);
-		List<BasicUserDto> teachers = new ArrayList<>();
+
 		if(musicGroups != null && musicGroups.size() > 0){
 			Set<String> musicGroupId = musicGroups.stream().map(ImGroupModel::getId).collect(Collectors.toSet());
 			List<MusicGroup> musicGroupList = musicGroupDao.queryListByIds(StringUtils.join(musicGroupId, ","));
@@ -271,15 +308,16 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			teacherIdSet.remove(teacherId);
 			teacherIdSet.removeAll(Collections.singleton(null));
 			if(teacherIdSet.size() > 0){
-				teachers = teacherDao.queryMusicGroupStudents(StringUtils.join(teacherIdSet,","), search);
+				basicUserDtos.addAll(teacherDao.queryMusicGroupStudents(StringUtils.join(teacherIdSet,","), search));
 			}
 		}
+
 		List<BasicUserDto> userDtos = teacherDao.queryGroupStudents(teacherId, search);
 		if(userDtos != null && userDtos.size() > 0){
-			teachers.addAll(userDtos);
-			Set<String> musicGroupIds = userDtos.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
-			if(musicGroupIds != null && musicGroupIds.size() > 0){
-				Map<String, String> musicGroupNameMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds));
+			basicUserDtos.addAll(userDtos);
+			Set<String> musicGroupIds1 = userDtos.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
+			if(musicGroupIds1 != null && musicGroupIds1.size() > 0){
+				Map<String, String> musicGroupNameMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds1));
 				userDtos.forEach(e->{
 					e.setMusicGroupName(musicGroupNameMap.get(e.getMusicGroupId()));
 				});
@@ -287,21 +325,15 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		}
 		studentIds.removeAll(userDtos.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
 		studentIds.remove(teacherId);
-		//获取课程关联的学生列表
-//		teachers.addAll(teacherDao.findCloseCourseStudentIds(teacherId, search));
-		//获取相关vip陪练教务的学员编号
-//		teachers.addAll(teacherDao.findVipEducationalStudentId(teacherId,search));
-//		teachers.addAll(teacherDao.findCommEducationalStudentId(teacherId,search));
-//		teachers.addAll(teacherDao.findPracticeEducationalStudentId(teacherId,search));
 		if(studentIds.size() > 0){
-			teachers.addAll(teacherDao.queryTeacherBaseInfo(studentIds,search));
+			basicUserDtos.addAll(teacherDao.queryTeacherBaseInfo(studentIds,search));
 		}
-		if(teachers.size() > 0){
-			//删除现有的用户通讯录
-			imUserFriendDao.deleteByUserId(teacherId);
+		if(basicUserDtos.size() > 0){
 			//批量新增
-			imUserFriendDao.batchInsert(teachers,teacherId);
+			imUserFriendDao.batchInsert(basicUserDtos,teacherId);
+			return imUserFriendDao.queryFriendListByUserId(teacherId, search);
 		}
+		return new ArrayList<>();
 	}
 
     @Override

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

@@ -3508,4 +3508,7 @@
         FROM course_schedule cs
         WHERE cs.class_group_id_ = #{classGroupId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
     </select>
+    <select id="getUnderwayCourseNum" resultType="int">
+        SELECT * FROM course_schedule WHERE music_group_id_ = #{musicGroupId} AND group_type_ = #{groupType} AND status_=#{status}
+    </select>
 </mapper>

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

@@ -226,7 +226,7 @@
 			COUNT( DISTINCT sr.user_id_ ) activate_num_,
 			COUNT( DISTINCT sr.user_id_ ) percent_
 		FROM student_registration sr
-				 LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
+			LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
 		WHERE
 			mg.del_flag_ = 0
 			AND mg.status_ = 'PROGRESS'
@@ -247,7 +247,7 @@
 			COUNT( t.id_ ) percent_
 		FROM
 			teacher t
-				LEFT JOIN sys_user su ON su.id_ = t.id_
+			LEFT JOIN sys_user su ON su.id_ = t.id_
 		WHERE
 			su.del_flag_ = 0
 		  	<if test="isDemission==null">

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

@@ -60,7 +60,6 @@ public class ImGroupController extends BaseController {
 	@ApiOperation("查询群成员列表")
 	@GetMapping(value = "/queryGroupMemberList")
 	public Object queryGroupMemberList(Long imGroupId) {
-
 		return succeed(imGroupService.queryMemberById(imGroupId));
 	}
 

+ 0 - 10
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -129,16 +129,6 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.queryGroupStudents(sysUser.getId(),search));
     }
 
-    @ApiOperation(value = "同步教师通讯录")
-    @GetMapping("/syncTeacherImFriend")
-    public Object syncTeacherImFriend(){
-        List<Integer> teacherIds = teacherService.queryAllIds();
-        for (Integer teacherId : teacherIds) {
-            teacherService.queryGroupStudents1(teacherId,null);
-        }
-        return succeed();
-    }
-
     @ApiOperation(value = "获取当前教师通讯录学员列表")
     @GetMapping("/queryGroupStudentList")
     public Object queryGroupStudentList(String search){