修改部门用户查询方式

This commit is contained in:
wanggeng 2022-05-16 18:49:12 +08:00
parent 3ac822acb1
commit 2828b5ff4f
3 changed files with 67 additions and 11 deletions

View File

@ -102,4 +102,12 @@ public interface IDepartmentUserDao extends IInitBaseTable {
*/
List<String> listSameDepartmentUserId(Map<String, Object> params) throws SearchException;
/**
* 部门用户列表
*
* @param params
* @return
* @throws SearchException
*/
List<DepartmentUserDTO> listDepartmentUser(Map<String, Object> params) throws SearchException;
}

View File

@ -318,16 +318,13 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe
* @return
*/
private SuccessResultList<List<DepartmentUserDTO>> listPageUser(String departmentId, ListPage page) {
List<DepartmentUserDTO> hasDepartmentUsers = list(departmentId);
if (hasDepartmentUsers.isEmpty()) {
return new SuccessResultList<>(new ArrayList<>(), 1, 0L);
}
List<String> userIds = new ArrayList<>();
for (DepartmentUserDTO hasDepartmentUserId : hasDepartmentUsers) {
userIds.add(hasDepartmentUserId.getUserId());
}
SuccessResultList<List<UserDTO>> successResultList = userBaseService.listPageByIds(userIds, page);
return listPageDepartmentUser(successResultList, hasDepartmentUsers);
page.getParams().put("departmentId", departmentId);
page.getParams().put("sort", "userSort");
page.getParams().put("order", "asc");
PageHelper.startPage(page.getPage(), page.getRows());
List<DepartmentUserDTO> departmentUserDTOS = departmentUserDao.listDepartmentUser(page.getParams());
PageInfo<DepartmentUserDTO> pageInfo = new PageInfo<>(departmentUserDTOS);
return new SuccessResultList<>(departmentUserDTOS, pageInfo.getPageNum(), pageInfo.getTotal());
}
/**

View File

@ -4,10 +4,17 @@
<cache flushInterval="3600000"/>
<resultMap id="departmentUserDTO" type="ink.wgink.pojo.dtos.department.DepartmentUserDTO" extends="ink.wgink.service.user.dao.IUserDao.userDTO">
<resultMap id="departmentUserDTO" type="ink.wgink.pojo.dtos.department.DepartmentUserDTO">
<result column="department_id" property="departmentId"/>
<result column="user_id" property="userId"/>
<result column="user_sort" property="userSort"/>
<result column="user_username" property="userUsername"/>
<result column="user_name" property="userName"/>
<result column="user_phone" property="userPhone"/>
<result column="user_email" property="userEmail"/>
<result column="user_avatar" property="userAvatar"/>
<result column="user_type" property="userType"/>
<result column="user_state" property="userState"/>
</resultMap>
<!-- 建表 -->
@ -300,4 +307,48 @@
)
</select>
<!-- 部门用户列表 -->
<select id="listDepartmentUser" parameterType="map" resultMap="departmentUserDTO" useCache="true">
SELECT
t1.user_id,
t1.user_username,
t1.user_name,
t1.user_phone,
t1.user_email,
t1.user_avatar,
t1.user_type,
t1.user_state,
jt1.department_id,
jt1.user_sort
FROM
sys_user t1
INNER JOIN
sys_department_user jt1
ON
t1.user_id = jt1.user_id
WHERE
t1.is_delete = 0
AND
t1.user_name != 'admin'
<if test="departmentId != null and departmentId != ''">
AND
jt1.department_id = #{departmentId}
</if>
<if test="departmentIds != null and departmentIds.size > 0">
AND
jt1.department_id IN
<foreach collection="departmentIds" index="index" open="(" separator="," close=")">
#{departmentIds[${index}]}
</foreach>
</if>
<choose>
<when test="sort != null and (sort == 'userSort')">
ORDER BY
<if test="sort == 'userSort'">
user_sort ${order}
</if>
</when>
</choose>
</select>
</mapper>