zouxuan před 5 roky
rodič
revize
383e8a6ec0

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/TeacherController.java

@@ -29,7 +29,7 @@ public class TeacherController extends BaseController {
 	@GetMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('teacher/list')")
 	public HttpResponseResult<PageInfo<Teacher>> list(TeacherQueryInfo queryInfo) {
-		return succeed(teacherService.queryPage(queryInfo));
+		return succeed(teacherService.queryTeacherPage(queryInfo));
 	}
 
 	@ApiOperation(value = "修改教师")

+ 8 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/TeacherDao.java

@@ -6,9 +6,17 @@ import com.keao.edu.user.entity.Teacher;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
     List<Teacher> getWithTeachers(@Param("teacherIds") List<Integer> teacherIds);
 
+    /**
+     * 获取教师声部名
+     * @param teacherIds
+     * @return
+     */
+    List<Map<Integer, String>> queryTeacherSubjectNames(@Param("teacherIds") Set<Integer> teacherIds);
 }

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/Teacher.java

@@ -51,6 +51,16 @@ public class Teacher {
 
 	private String tenantId;
 
+	private String subjectName;
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
 	public String getTenantId() {
 		return tenantId;
 	}

+ 4 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/TeacherService.java

@@ -1,8 +1,10 @@
 package com.keao.edu.user.service;
 
 
+import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.entity.Teacher;
+import com.keao.edu.user.page.TeacherQueryInfo;
 
 public interface TeacherService extends BaseService<Integer, Teacher> {
 
@@ -17,4 +19,6 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @param teacher
      */
     void updateTeacher(Teacher teacher);
+
+    PageInfo<Teacher> queryTeacherPage(TeacherQueryInfo queryInfo);
 }

+ 30 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/TeacherServiceImpl.java

@@ -5,6 +5,7 @@ import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.exception.BizException;
+import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.im.api.client.ImFeignService;
 import com.keao.edu.im.api.entity.ImResult;
@@ -13,13 +14,16 @@ import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.dao.TeacherDao;
 import com.keao.edu.user.entity.Teacher;
 import com.keao.edu.user.enums.YesOrNoEnum;
+import com.keao.edu.user.page.TeacherQueryInfo;
 import com.keao.edu.user.service.TeacherService;
+import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implements TeacherService {
@@ -103,4 +107,29 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
 		sysUserDao.update(sysUser);
 		imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName(),sysUser.getAvatar()));
 	}
+
+	@Override
+	public PageInfo<Teacher> queryTeacherPage(TeacherQueryInfo queryInfo) {
+		PageInfo<Teacher> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<Teacher> dataList = null;
+		int count = this.findCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = this.getDAO().queryPage(params);
+			Set<Integer> teacherIds = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+			Map<Integer,String> subjectNames = MapUtil.convertMybatisMap(teacherDao.queryTeacherSubjectNames(teacherIds));
+			dataList.forEach(e->{
+				e.setSubjectName(subjectNames.get(e.getUserId()));
+			});
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 9 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -116,4 +116,13 @@
 			(#{teacherId})
 		</foreach>
 	</select>
+	<select id="queryTeacherSubjectNames" resultType="java.util.Map">
+		SELECT t.user_id_ 'key',GROUP_CONCAT(s.name_) 'value' FROM teacher t
+		LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_list_)
+		WHERE t.user_id_ IN
+		<foreach collection="teacherIds" separator="," open="(" close=")" item="item">
+			#{item}
+		</foreach>
+		GROUP BY t.user_id_
+	</select>
 </mapper>