zouxuan 5 years ago
parent
commit
4cea100284

+ 24 - 1
edu-common/src/main/java/com/keao/edu/common/page/QueryInfo.java

@@ -7,9 +7,12 @@
  */
 package com.keao.edu.common.page;
 
+import com.keao.edu.common.tenant.OrganContextHolder;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import org.apache.commons.lang3.StringUtils;
 
+import java.util.List;
+
 /**
  * 查询对象基类
  */
@@ -31,10 +34,30 @@ public class QueryInfo {
 	 */
 	private String order = "desc";
 
-	private String tenantId= (String) TenantContextHolder.getTenantId();
+	private String tenantId= TenantContextHolder.getTenantId();
+
+	private Integer organId= OrganContextHolder.getOrganId();
+
+	private List<Integer> organIds;
 	
 	private String search;
 
+	public List<Integer> getOrganIds() {
+		return organIds;
+	}
+
+	public void setOrganIds(List<Integer> organIds) {
+		this.organIds = organIds;
+	}
+
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
 	public String getTenantId() {
 		return tenantId;
 	}

+ 28 - 0
edu-common/src/main/java/com/keao/edu/common/tenant/OrganContextHolder.java

@@ -0,0 +1,28 @@
+package com.keao.edu.common.tenant;
+
+
+public class OrganContextHolder {
+	
+
+	private static final ThreadLocal<Integer> organContextHolder = new ThreadLocal<Integer>();
+
+	public static void setOrganId(Integer organId) {
+		organContextHolder.set(organId);
+	}
+
+	/**
+	 * 获取数据源
+	 * @return
+	 */
+	public static Integer getOrganId() {
+		return organContextHolder.get();
+	}
+
+	/**
+	 * 重置数据源
+	 */
+	public static void clearOrganId() {
+		organContextHolder.remove();
+	}
+
+}

+ 11 - 4
edu-common/src/main/java/com/keao/edu/common/tenant/TenantInterceptor.java

@@ -1,14 +1,15 @@
 package com.keao.edu.common.tenant;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 public class TenantInterceptor extends HandlerInterceptorAdapter {
 
 	private static final String TENANT_ID = "tenantId";
+	private static final String ORGAN_ID = "organId";
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
@@ -17,7 +18,13 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 			tenantId = request.getParameter(TENANT_ID);
 		}
 		TenantContextHolder.setTenantId(tenantId);
-
+		String organId = request.getHeader(ORGAN_ID);
+		if (StringUtils.isEmpty(organId)) {
+			organId = request.getParameter(ORGAN_ID);
+		}
+		if(StringUtils.isNotEmpty(organId)){
+			OrganContextHolder.setOrganId(Integer.parseInt(organId));
+		}
 		return true;
 	}
 

+ 6 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/EmployeeController.java

@@ -10,6 +10,7 @@ import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.page.EmployeeQueryInfo;
 import com.keao.edu.user.service.EmployeeService;
+import com.keao.edu.user.service.OrganizationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
@@ -25,12 +26,17 @@ public class EmployeeController extends BaseController {
 	private EmployeeService employeeService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private OrganizationService organizationService;
 	
 	@ApiOperation("员工服务分页查询")
 	@GetMapping(value = "/list")
 	public HttpResponseResult<PageInfo<Employee>> getList(EmployeeQueryInfo queryInfo) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		queryInfo.setUserId(sysUser.getId());
+		if(queryInfo.getOrganId() != null){
+			queryInfo.setOrganIds(organizationService.getChildOrganIds(queryInfo.getOrganId(),true));
+		}
 		return succeed(employeeService.queryPage(queryInfo));
 	}
 

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

@@ -37,6 +37,9 @@ public class OrganizationController extends BaseController {
 	public HttpResponseResult<PageInfo<Organization>> configList(OrganizationQueryInfo queryInfo) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		queryInfo.setParentId(sysUser.getId());
+		if(queryInfo.getOrganId() != null){
+			queryInfo.setOrganIds(organizationService.getChildOrganIds(queryInfo.getOrganId(),false));
+		}
 		return succeed(organizationService.queryPage(queryInfo));
 	}
 
@@ -77,6 +80,7 @@ public class OrganizationController extends BaseController {
 	@PreAuthorize("@pcs.hasPermissions('organization/getChildOrgans')")
 	public HttpResponseResult<List<Organization>> getChildOrgans(){
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		return succeed(organizationService.getChildOrgans(sysUser.getId()));
+		Organization organization = organizationService.findByUserId(sysUser.getId());
+		return succeed(organizationService.getChildOrgans(organization.getId()));
 	}
 }

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

@@ -8,6 +8,7 @@ import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.user.entity.Teacher;
 import com.keao.edu.user.page.TeacherQueryInfo;
+import com.keao.edu.user.service.OrganizationService;
 import com.keao.edu.user.service.TeacherService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -25,11 +26,16 @@ public class TeacherController extends BaseController {
 
 	@Autowired
 	private TeacherService teacherService;
+	@Autowired
+	private OrganizationService organizationService;
 
 	@ApiOperation(value = "教师列表")
 	@GetMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('teacher/list')")
 	public HttpResponseResult<PageInfo<Teacher>> list(TeacherQueryInfo queryInfo) {
+		if(queryInfo.getOrganId() != null){
+			queryInfo.setOrganIds(organizationService.getChildOrganIds(queryInfo.getOrganId(),true));
+		}
 		return succeed(teacherService.queryTeacherPage(queryInfo));
 	}
 

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/OrganizationDao.java

@@ -53,4 +53,6 @@ public interface OrganizationDao extends BaseDAO<Integer, Organization> {
      * @return java.util.List<com.keao.edu.user.entity.Organization>
      */
     List<Organization> getOrgans(@Param("organIds") List<Integer> organIds);
+
+    Organization findByUserId(Integer userId);
 }

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/OrganizationService.java

@@ -58,4 +58,6 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     void del(Integer id);
 
     Organization getOrganization(Integer id);
+
+    Organization findByUserId(Integer id);
 }

+ 5 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -259,4 +259,9 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		sysUser.setRoles(roleIds);
 		return organization;
 	}
+
+	@Override
+	public Organization findByUserId(Integer userId) {
+		return organDao.findByUserId(userId);
+	}
 }

+ 6 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -160,4 +160,10 @@
 			#{organId}
 		</foreach>
 	</select>
+	<select id="findByUserId" resultMap="Organization" >
+		SELECT <include refid="organizationColumn"/>,su.*
+		FROM organization o
+		LEFT JOIN sys_user su ON o.user_id_ = su.id_
+		WHERE o.user_id_ = #{userId} LIMIT 1
+	</select>
 </mapper>