1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-06 07:21:24 +08:00

Rewrite getDepartAndUser

This commit is contained in:
2023-06-04 19:29:48 +08:00
parent 305af9be83
commit c64e23d9ba
6 changed files with 36 additions and 27 deletions

View File

@@ -35,12 +35,8 @@ public class DepartmentController {
//获取所有部门及其各部门所属成员 //获取所有部门及其各部门所属成员
@GetMapping("/user") @GetMapping("/user")
@Deprecated public ResponseResult<List<Department>> getDepartAndUser() {
public ResponseResult getDepartAndUser() { return ResponseResult.databaseSelectSuccess(departmentService.getDepartmentWithUser());
List<Department> getDepartAndUser = departmentService.getDepartAndUser();
Integer code = getDepartAndUser != null ? ResponseCode.DATABASE_SELECT_OK : ResponseCode.DATABASE_SELECT_ERROR;
String msg = getDepartAndUser != null ? "" : "数据查询失败,请尝试!";
return ResponseResult.build(code, msg, getDepartAndUser);
} }
@GetMapping @GetMapping

View File

@@ -66,6 +66,5 @@ public class Department implements Serializable {
* 部门成员 * 部门成员
*/ */
@TableField(exist = false) @TableField(exist = false)
@Deprecated
private List<User> userList; private List<User> userList;
} }

View File

@@ -18,8 +18,7 @@ import java.util.List;
*/ */
@Mapper @Mapper
public interface DepartmentMapper extends BaseMapper<Department> { public interface DepartmentMapper extends BaseMapper<Department> {
@Deprecated List<Department> getDepartmentWithUser();
List<Department> getDepartAndUser();
IPage<Department> getAllDepartment(IPage<Department> page, @Param("searchType") Integer searchType, @Param("searchInput") String searchInput, @Param("searchRegex") Integer searchRegex); IPage<Department> getAllDepartment(IPage<Department> page, @Param("searchType") Integer searchType, @Param("searchInput") String searchInput, @Param("searchRegex") Integer searchRegex);
} }

View File

@@ -15,8 +15,8 @@ import java.util.List;
* @since 2023-04-30 * @since 2023-04-30
*/ */
public interface IDepartmentService extends IService<Department> { public interface IDepartmentService extends IService<Department> {
@Deprecated
List<Department> getDepartAndUser(); List<Department> getDepartmentWithUser();
IPage<Department> getAllDepartment(Long currentPage, Long pageSize, Integer searchType, String searchInput, Integer searchRegex); IPage<Department> getAllDepartment(Long currentPage, Long pageSize, Integer searchType, String searchInput, Integer searchRegex);
} }

View File

@@ -29,9 +29,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
} }
@Override @Override
@Deprecated public List<Department> getDepartmentWithUser() {
public List<Department> getDepartAndUser() { return departmentMapper.getDepartmentWithUser();
return departmentMapper.getDepartAndUser();
} }
@Override @Override

View File

@@ -51,19 +51,35 @@
</if> </if>
</select> </select>
<select id="getDepartAndUser" resultMap="department"> <select id="getDepartmentWithUser" resultMap="departmentWithUserMap">
select d.id did, name, u.id uid, username select td.id as department_id, td.name as department_name
from t_department d, from (select * from t_department where deleted = 0) as td
t_user u
where d.id = u.department_id
and d.deleted = 0
and u.deleted = 0
</select> </select>
<resultMap id="department" type="department" autoMapping="true">
<id column="did" property="id"/> <select id="getUserInDepartment" resultMap="userInDepartmentMap">
<collection property="userList" ofType="user" autoMapping="true"> select tu.id as user_id,
<id column="uid" property="id"/> tu.username as user_username,
<result column="uid" property="id"/> ts.id as staff_id,
</collection> ts.first_name as staff_first_name,
ts.last_name as staff_last_name
from (select * from t_user where deleted = 0) as tu
left join (select * from t_staff where deleted = 0) as ts on ts.user_id = tu.id
where tu.department_id = #{department_id}
</select>
<resultMap id="departmentWithUserMap" type="department">
<id property="id" column="department_id"/>
<result property="name" column="department_name"/>
<collection property="userList" ofType="user" column="department_id" select="getUserInDepartment"/>
</resultMap>
<resultMap id="userInDepartmentMap" type="user">
<id property="id" column="user_id"/>
<result property="username" column="user_username"/>
<association property="staff" javaType="staff">
<id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/>
<result property="lastName" column="staff_last_name"/>
</association>
</resultMap> </resultMap>
</mapper> </mapper>