zouxuan 5 năm trước cách đây
mục cha
commit
4391d0de59

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BasicUserDto.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import java.util.Objects;
+
 public class BasicUserDto {
 
     private Integer userId;
@@ -81,4 +83,17 @@ public class BasicUserDto {
     public void setGender(Integer gender) {
         this.gender = gender;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        BasicUserDto that = (BasicUserDto) o;
+        return userId.equals(that.userId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(userId);
+    }
 }

+ 1 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -26,9 +26,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.Function;
-import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 @Service
@@ -363,12 +360,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		//获取当前管理人员所在分部,所有老师,以及没有乐团的学生
 		List<BasicUserDto> userDtos = teacherDao.queryEducationIpa(userId, search);
 		userDtos.addAll(basicUserDtos);
-		userDtos.parallelStream().filter(distinctByKey(BasicUserDto::getUserId)).forEach(System.out::println);
-		return userDtos;
-	}
-	public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
-		Set<Object> seen = ConcurrentHashMap.newKeySet();
-		return t -> seen.add(keyExtractor.apply(t));
+		return userDtos.stream().distinct().collect(Collectors.toList());
 	}
 
 	@Override

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

@@ -852,9 +852,9 @@
         SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,NULL subject_name_,su.user_type_
         FROM employee e
         LEFT JOIN sys_user su ON FIND_IN_SET(su.organ_id_,e.organ_id_list_)
-        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND sr.music_group_status_ != 'QUIT'
-        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_ AND mg.status_ = 'PROGRESS'
-        WHERE e.user_id_ = #{userId} AND sr.id_ IS NULL AND mg.id_ IS NULL
+        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
+        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
+        WHERE e.user_id_ = #{userId} AND (sr.id_ IS NULL OR sr.music_group_status_ = 'QUIT' OR mg.status_ != 'PROGRESS')
         <if test="search != null and search != ''">
             AND su.username_ LIKE CONCAT('%',#{search},'%')
         </if>