Pārlūkot izejas kodu

通讯录和老师课时消耗列表相关内容

zouxuan 5 gadi atpakaļ
vecāks
revīzija
f5bb73f6c5

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

@@ -5,6 +5,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface CoursesGroupDao extends BaseDAO<Long, CoursesGroup> {
 
@@ -16,5 +17,34 @@ public interface CoursesGroupDao extends BaseDAO<Long, CoursesGroup> {
      * @return java.util.List<com.ym.mec.biz.dal.entity.CoursesGroup>
      */
     List<CoursesGroup> findTeacherCourseGroups(@Param("teacherId") Integer teacherId);
-	
+
+    /**
+     * @describe 获取指定教师的课程组列表
+     * @author Joburgess
+     * @date 2020/3/8
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CoursesGroup>
+     */
+    List<CoursesGroup> queryTeacherCourseGroups(Map<String, Object> params);
+
+    /**
+     * COUNT指定教师的课程组列表
+     * @param params
+     * @return
+     */
+    int countTeacherCourseGroups(Map<String, Object> params);
+
+    /**
+     * 获取冻结的课时
+     * @param groupIds
+     * @return
+     */
+    List<Map<Long, Long>> findFreezeMinutes(@Param("groupIds") List<Long> groupIds);
+
+    /**
+     * 获取已消耗的课时数
+     * @param groupIds
+     * @return
+     */
+    List<Map<Long, Long>> findConsumeMinutes(@Param("groupIds") List<Long> groupIds);
+
 }

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

@@ -390,4 +390,18 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     List<BasicUserDto> findCloseCourseStudentIds(@Param("teacherId") Integer teacherId,@Param("search") String search);
+
+    /**
+     * 获取学员相关的陪练课教务老师
+     * @param userId
+     * @return
+     */
+    Set<Integer> findPracticeEducationalTeacherId(Integer userId);
+
+    /**
+     * 获取学员相关的VIP课教务老师
+     * @param studentId
+     * @return
+     */
+    Set<Integer> findVipEducationalTeacherId(Integer studentId);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursesGroup.java

@@ -45,6 +45,12 @@ public class CoursesGroup {
 	
 	/** 最大报名人数 */
 	private Integer maxStudentNum;
+
+	/** 已消耗课时数 */
+	private Integer consumeMinutes;
+
+	/** 已冻结课时数 */
+	private Integer freezeMinutes;
 	
 	/** 报名结束时间 */
 	private java.util.Date applyClosingDate;
@@ -67,6 +73,22 @@ public class CoursesGroup {
 	/**  */
 	private java.util.Date updateTime;
 
+	public Integer getConsumeMinutes() {
+		return consumeMinutes;
+	}
+
+	public void setConsumeMinutes(Integer consumeMinutes) {
+		this.consumeMinutes = consumeMinutes;
+	}
+
+	public Integer getFreezeMinutes() {
+		return freezeMinutes;
+	}
+
+	public void setFreezeMinutes(Integer freezeMinutes) {
+		this.freezeMinutes = freezeMinutes;
+	}
+
 	public BigDecimal getTotalCoursesPrice() {
 		return totalCoursesPrice;
 	}

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

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.Date;
@@ -493,4 +494,10 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @return
 	 */
 	Object queryCourseInfoByGroupId(GroupType groupType, String groupId);
+
+	/**
+	 * 教师课时使用记录列表
+	 * @return
+	 */
+    Object teacherCourseMinutes(QueryInfo queryInfo);
 }

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

@@ -18,6 +18,7 @@ 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;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.jiari.JiaRiFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
@@ -76,6 +77,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
     @Autowired
     private VipGroupDao vipGroupDao;
+	@Autowired
+	private CoursesGroupDao coursesGroupDao;
     @Autowired
     private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
     @Autowired
@@ -3970,6 +3973,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				//统计授课次数
 				resultMap.put("teacherGiveLesson",courseScheduleTeacherSalaryDao.countTeacherGiveLesson(vipGroup.getUserId()));
 				break;
+			case COMM:
+				CoursesGroup coursesGroup = coursesGroupDao.get(Long.parseLong(groupId));
+				resultMap.put("groupName",coursesGroup.getName());
+				resultMap.put("startTime",coursesGroup.getCoursesStartDate());
+				resultMap.put("endTime",coursesGroup.getCoursesEndDate());
+				resultMap.put("groupStatus",coursesGroup.getStatus().getCode());
+				teacher = teacherDao.get(coursesGroup.getTeacherId());
+				resultMap.put("groupTeacher",teacher.getRealName());
+				resultMap.put("teacherIntroduction",teacher.getIntroduction());
+				resultMap.put("teacherAvatar",teacher.getAvatar());
+				//统计授课次数
+				resultMap.put("teacherGiveLesson",courseScheduleTeacherSalaryDao.countTeacherGiveLesson(coursesGroup.getTeacherId()));
+				break;
 			default:
 				throw new BizException("课程类型错误");
 		}
@@ -3990,6 +4006,36 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
+	public Object teacherCourseMinutes(QueryInfo queryInfo) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (null == user) {
+			throw new BizException("获取用户信息失败");
+		}
+		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>(16);
+		MapUtil.populateMap(params, queryInfo);
+		params.put("userId",user.getId());
+		int count = coursesGroupDao.countTeacherCourseGroups(params);
+		if(count > 0){
+			pageInfo.setTotal(count);
+			List<CoursesGroup> courseGroups = coursesGroupDao.queryTeacherCourseGroups(params);
+			List<Long> collect = courseGroups.stream().map(e -> e.getId()).collect(Collectors.toList());
+			//获取冻结课时
+			Map<Long,Long> freezeMinutesMap = MapUtil.convertIntegerMap(coursesGroupDao.findFreezeMinutes(collect));
+			//获取已消耗课时
+			Map<Long,Long> consumeMinutesMap = MapUtil.convertIntegerMap(coursesGroupDao.findConsumeMinutes(collect));
+			courseGroups.forEach(e->{
+				Long aLong = freezeMinutesMap.get(e.getId());
+				e.setFreezeMinutes(aLong == null?0:aLong.intValue());
+				Long aLong1 = consumeMinutesMap.get(e.getId());
+				e.setConsumeMinutes(aLong1 == null?0:aLong1.intValue());
+			});
+			pageInfo.setRows(courseGroups);
+		}
+		return pageInfo;
+	}
+
+	@Override
 	public Object teacherCourseHeadInfo(Long courseScheduleId) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (null == user) {

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1107,6 +1107,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         teacherIds.addAll(teacherDao.findPracticeTeacherIds(studentId));
         //获取陪练课,vip课代课老师关联
         teacherIds.addAll(teacherDao.findCloseCourseTeacherIds(studentId));
+        //获取陪练课课程教务老师
+//        teacherIds.addAll(teacherDao.findPracticeEducationalTeacherId(studentId));
+        //获取VIP课程教务老师
+//        teacherIds.addAll(teacherDao.findVipEducationalTeacherId(studentId));
         if(teacherIds.size() > 0){
         	return teacherDao.queryTeacherBaseInfo(teacherIds,search);
         }

+ 31 - 0
mec-biz/src/main/resources/config/mybatis/CoursesGroupMapper.xml

@@ -129,4 +129,35 @@
     <select id="findTeacherCourseGroups" resultMap="CoursesGroup">
 		SELECT * FROM courses_group WHERE teacher_id_=#{teacherId} AND status_ IN ('APPLYING', 'NORMAL') ORDER BY id_ DESC
     </select>
+
+    <select id="queryTeacherCourseGroups" resultMap="CoursesGroup">
+		SELECT * FROM courses_group
+		WHERE teacher_id_=#{userId} AND status_ IN ('APPLYING', 'NORMAL')
+		ORDER BY id_ DESC
+		<include refid="global.limit"/>
+    </select>
+    <select id="countTeacherCourseGroups" resultType="int">
+		SELECT COUNT(0) FROM courses_group
+		WHERE teacher_id_ = #{userId} AND status_ IN ('APPLYING', 'NORMAL')
+    </select>
+    <select id="findFreezeMinutes" resultType="java.util.Map">
+		SELECT COUNT(DISTINCT cs.id_) * cg.single_class_minutes_ 'value',cg.id_ 'key' FROM courses_group cg
+		LEFT JOIN course_schedule cs ON cg.id_ = cs.music_group_id_
+		WHERE cg.id_ IN
+		<foreach collection="groupIds" separator="," open="(" close=")" item="item">
+			#{item}
+		</foreach>
+		AND cs.group_type_ = 'COMM' AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
+		GROUP BY cg.id_
+	</select>
+	<select id="findConsumeMinutes" resultType="java.util.Map">
+		SELECT COUNT(DISTINCT cs.id_) * cg.single_class_minutes_ 'value',cg.id_ 'key' FROM courses_group cg
+		LEFT JOIN course_schedule cs ON cg.id_ = cs.music_group_id_
+		WHERE cg.id_ IN
+		<foreach collection="groupIds" separator="," open="(" close=")" item="item">
+			#{item}
+		</foreach>
+		AND cs.group_type_ = 'COMM' AND CONCAT(cs.class_date_,' ',cs.start_class_time_) &lt;= NOW()
+		GROUP BY cg.id_
+	</select>
 </mapper>

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

@@ -898,4 +898,16 @@
         </if>
         GROUP BY su.id_
     </select>
+    <select id="findPracticeEducationalTeacherId" resultType="java.lang.Integer">
+        SELECT DISTINCT pg.educational_teacher_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group_teacher_mapper cgtm ON cgsm.class_group_id_ = cgtm.class_group_id_
+        LEFT JOIN practice_group pg ON pg.id_ = cgsm.music_group_id_
+        WHERE cgsm.group_type_ = 'PRACTICE' AND cgsm.user_id_ = #{userId}
+    </select>
+    <select id="findVipEducationalTeacherId" resultType="java.lang.Integer">
+        SELECT DISTINCT vg.educational_teacher_id_ FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group_teacher_mapper cgtm ON cgsm.class_group_id_ = cgtm.class_group_id_
+        LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_
+        WHERE cgsm.group_type_ = 'VIP' AND cgsm.user_id_ = #{userId}
+    </select>
 </mapper>

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

@@ -2,6 +2,7 @@ package com.ym.mec.teacher.controller;
 
 import com.ym.mec.biz.dal.dto.TeacherRemarkCommitDto;
 
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -300,4 +301,10 @@ public class TeacherCourseScheduleController extends BaseController {
         return succeed(scheduleService.teacherCourseRates(courseScheduleId));
     }
 
+    @ApiOperation(value = "课时使用记录列表")
+    @GetMapping("/teacherCourseMinutes")
+    public Object teacherCourseMinutes(QueryInfo queryInfo){
+        return succeed(scheduleService.teacherCourseMinutes(queryInfo));
+    }
+
 }