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

优化findTeachers

zouxuan 5 éve
szülő
commit
ba4a306be5

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

@@ -69,10 +69,10 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
     /**
      * 查询分部所有老师
-     * @param organId
+     * @param userIds
      * @return
      */
-    List<Teacher> findTeachers(@Param("organId") String[] organId);
+    List<Teacher> findTeachers(@Param("userIds") List<Integer> userIds);
 
     /**
      * count上课结算列表

+ 6 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -198,11 +198,14 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
     @Override
     public List<Teacher> findTeachers(String organId) {
-		String[] organIds = null;
+		List<Teacher> teacherList = teacherDao.findByFlowOrganRange(null);
 		if(StringUtils.isNotEmpty(organId)){
-			organIds = organId.split(",");
+			Set<String> list = new HashSet<>(Arrays.asList(organId.split(",")));
+			teacherList = teacherList.stream().
+					filter(teacher -> !Collections.disjoint(new ArrayList<>(Arrays.asList(teacher.getFlowOrganRange().split(","))),list)).collect(Collectors.toList());
 		}
-		return teacherDao.findTeachers(organIds);
+		List<Integer> userIds = teacherList.stream().map(e -> e.getId()).collect(Collectors.toList());
+		return teacherDao.findTeachers(userIds);
     }
 
 	@Override
@@ -326,7 +329,6 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	public PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo) {
 		if(StringUtils.isNotEmpty(queryInfo.getOrganId())){
 			Set<String> list = new HashSet<>(Arrays.asList(queryInfo.getOrganId().split(",")));
-			list.stream().forEach(e->list.contains(e));
 			Map<String, Object> params = new HashMap<>();
 			MapUtil.populateMap(params, queryInfo);
 			List<Teacher> teacherList = teacherDao.findByFlowOrganRange(params);

+ 4 - 5
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -268,12 +268,11 @@
     </select>
 
     <select id="findTeachers" resultMap="Teacher">
-        SELECT su.id_,su.username_,su.real_name_ FROM teacher t
-        LEFT JOIN sys_user su on t.id_ = su.id_
+        SELECT su.id_,su.username_,su.real_name_ FROM sys_user su
         <where>
-            <if test="organId != null">
-                t.organ_id_ IN
-                <foreach collection="organId" separator="," open="(" close=")" item="item">
+            <if test="userIds != null">
+                su.id_ IN
+                <foreach collection="userIds" separator="," open="(" close=")" item="item">
                     #{item}
                 </foreach>
             </if>