wangliang 3 жил өмнө
parent
commit
4c8b9fd1f3

+ 14 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysOrgMapper.java

@@ -2,6 +2,11 @@ package com.qmth.teachcloud.common.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +18,13 @@ import com.qmth.teachcloud.common.entity.SysOrg;
  */
 public interface SysOrgMapper extends BaseMapper<SysOrg> {
 
+    /**
+     * 根据机构类型查找用户
+     *
+     * @param schoolId
+     * @param orgId
+     * @param orgTypeEnum
+     * @return
+     */
+    List<SysUser> findUserByOrgType(@Param("schoolId") Long schoolId, @Param("orgId") Long orgId, @Param("orgTypeEnum") String orgTypeEnum);
 }

+ 22 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -3,6 +3,8 @@ package com.qmth.teachcloud.common.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.dto.OrgDto;
 import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 
 import java.util.List;
 
@@ -41,9 +43,28 @@ public interface SysOrgService extends IService<SysOrg> {
     /**
      * 查询或新建学院
      * 根据学院名称查询数据库是否有该开课学院,有则查询id,没有则新增并取出id
-     * @param schoolId 学校id
+     *
+     * @param schoolId    学校id
      * @param collegeName 学院名称
      * @return 查询或新增的开课学院id
      */
     Long searchOrInsert(Long schoolId, String collegeName);
+
+    /**
+     * 根据机构类型查找用户
+     *
+     * @param schoolId
+     * @param orgId
+     * @param orgTypeEnum
+     * @return
+     */
+    List<SysUser> findUserByOrgType(Long schoolId, Long orgId, OrgTypeEnum orgTypeEnum);
+
+    /**
+     * 根据orgId查找下属机构信息
+     *
+     * @param orgId
+     * @return
+     */
+    List<SysOrg> findAllByOrgId(Long orgId);
 }

+ 32 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -11,8 +11,10 @@ import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.mapper.SysOrgMapper;
+import com.qmth.teachcloud.common.mapper.SysUserMapper;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysRoleService;
 import com.qmth.teachcloud.common.service.SysUserService;
@@ -40,9 +42,13 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
 
     @Resource
     private SysUserService sysUserService;
+
     @Resource
     private SysRoleService sysRoleService;
 
+    @Resource
+    SysOrgMapper sysOrgMapper;
+
     @Override
     public List<OrgDto> listOrgTree() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -73,7 +79,6 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         for (Long key : deleteKeys) {
             map.remove(key);
         }
-
         return new ArrayList<>(map.values());
     }
 
@@ -206,4 +211,30 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         }
         return orgId;
     }
+
+    /**
+     * 根据机构类型查找用户
+     *
+     * @param schoolId
+     * @param orgId
+     * @param orgTypeEnum
+     * @return
+     */
+    @Override
+    public List<SysUser> findUserByOrgType(Long schoolId, Long orgId, OrgTypeEnum orgTypeEnum) {
+        return sysOrgMapper.findUserByOrgType(schoolId, orgId, orgTypeEnum.name());
+    }
+
+    /**
+     * 根据orgId查找下属机构信息
+     *
+     * @param orgId
+     * @return
+     */
+    @Override
+    public List<SysOrg> findAllByOrgId(Long orgId) {
+        QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
+        sysOrgQueryWrapper.lambda().eq(SysOrg::getParentId, orgId);
+        return this.list(sysOrgQueryWrapper);
+    }
 }

+ 19 - 19
teachcloud-common/src/main/resources/mapper/SysOrgMapper.xml

@@ -2,24 +2,24 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.teachcloud.common.mapper.SysOrgMapper">
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.qmth.teachcloud.common.entity.SysOrg">
-    <result column="id" property="id" />
-        <result column="school_id" property="schoolId" />
-        <result column="ode" property="ode" />
-        <result column="name" property="name" />
-        <result column="parent_id" property="parentId" />
-        <result column="enable" property="enable" />
-        <result column="create_id" property="createId" />
-        <result column="create_time" property="createTime" />
-        <result column="update_id" property="updateId" />
-        <result column="update_time" property="updateTime" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id,
-        school_id, ode, name, parent_id, enable, create_id, create_time, update_id, update_time
-    </sql>
+    <select id="findUserByOrgType" resultType="com.qmth.teachcloud.common.entity.SysUser">
+        select
+            *
+        from
+            sys_user su
+        join sys_org so on
+            su.org_id = so.id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                and so.school_id = #{schoolId}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                and so.id = #{orgId}
+            </if>
+            <if test="orgTypeEnum != null and orgTypeEnum != ''">
+                and so.`type` = #{orgTypeEnum}
+            </if>
+        </where>
+    </select>
 
 </mapper>