调整网格用户查询方式

This commit is contained in:
TS-QD1 2023-06-13 18:31:44 +08:00
parent fb48afc6ae
commit 7242bf50fd
5 changed files with 85 additions and 26 deletions

View File

@ -67,6 +67,13 @@ public class GridUserResourceController extends DefaultBaseController {
return gridUserService.list(gridId, params); return gridUserService.list(gridId, params);
} }
@ApiOperation(value = "网格用户列表", notes = "网格用户列表接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("list/grid-ids")
public List<GridUserDTO> listByGridIds(@RequestBody IdsVO idsVO) {
return gridUserService.listByGridIds(idsVO.getIds());
}
@ApiOperation(value = "网格用户分页列表", notes = "网格用户分页列表接口") @ApiOperation(value = "网格用户分页列表", notes = "网格用户分页列表接口")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "access_token", value = "access_token", paramType = "query", required = true), @ApiImplicitParam(name = "access_token", value = "access_token", paramType = "query", required = true),

View File

@ -1,5 +1,6 @@
package ink.wgink.module.map.dao.grid; package ink.wgink.module.map.dao.grid;
import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO;
import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.dtos.user.UserDTO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -8,6 +9,11 @@ import java.util.Map;
@Repository @Repository
public interface IGridUserDao { public interface IGridUserDao {
List<GridUserDTO> listGridUser(Map<String, Object> params);
List<UserDTO> listUser(Map<String, Object> params); List<UserDTO> listUser(Map<String, Object> params);
} }

View File

@ -59,6 +59,9 @@ public interface IGridUserService {
*/ */
List<String> listUserId(String gridId, Map<String, Object> params); List<String> listUserId(String gridId, Map<String, Object> params);
List<GridUserDTO> listGridUser(Map<String, Object> params);
/** /**
* 网格用户列表 * 网格用户列表
* *
@ -68,6 +71,11 @@ public interface IGridUserService {
*/ */
List<GridUserDTO> list(String gridId, Map<String, Object> params); List<GridUserDTO> list(String gridId, Map<String, Object> params);
List<GridUserDTO> listByGridIds(List<String> ids);
/** /**
* 网格用户分页列表 * 网格用户分页列表
* *
@ -78,4 +86,7 @@ public interface IGridUserService {
SuccessResultList<List<GridUserDTO>> listPage(String gridId, ListPage page); SuccessResultList<List<GridUserDTO>> listPage(String gridId, ListPage page);
List<UserDTO> listUser(Map<String, Object> params); List<UserDTO> listUser(Map<String, Object> params);
} }

View File

@ -75,34 +75,22 @@ public class GridUserServiceImpl extends DefaultBaseService implements IGridUser
return gridRelationService.listRelationId(gridId); return gridRelationService.listRelationId(gridId);
} }
@Override
public List<GridUserDTO> listGridUser(Map<String, Object> params) {
return gridUserDao.listGridUser(params);
}
@Override @Override
public List<GridUserDTO> list(String gridId, Map<String, Object> params) { public List<GridUserDTO> list(String gridId, Map<String, Object> params) {
List<GridRelationDTO> gridRelationDTOs = gridRelationService.listByGridId(gridId); params.put("gridId", gridId);
if (gridRelationDTOs.isEmpty()) { return listGridUser(params);
return new ArrayList(); }
}
Set<String> userIdSet = new HashSet<>(); @Override
for (GridRelationDTO gridRelationDTO : gridRelationDTOs) { public List<GridUserDTO> listByGridIds(List<String> gridIds) {
userIdSet.add(gridRelationDTO.getRelationId()); Map<String, Object> params = getHashMap(2);
} params.put("gridIds", gridIds);
List<UserDTO> userDTOs = userBaseService.listByUserIds(new ArrayList<>(userIdSet)); return listGridUser(params);
if (userDTOs.isEmpty()) {
return new ArrayList<>();
}
List<GridUserDTO> gridUserDTOs = new ArrayList<>();
for (UserDTO userDTO : userDTOs) {
GridUserDTO gridUserDTO = new GridUserDTO();
gridUserDTO.setGridId(gridId);
BeanUtils.copyProperties(userDTO, gridUserDTO);
for (GridRelationDTO gridRelationDTO : gridRelationDTOs) {
if (StringUtils.equals(gridUserDTO.getUserId(), gridRelationDTO.getRelationId())) {
gridUserDTO.setGmtCreate(gridRelationDTO.getGmtCreate());
break;
}
}
gridUserDTOs.add(gridUserDTO);
}
return gridUserDTOs;
} }
@Override @Override
@ -117,4 +105,6 @@ public class GridUserServiceImpl extends DefaultBaseService implements IGridUser
public List<UserDTO> listUser(Map<String, Object> params) { public List<UserDTO> listUser(Map<String, Object> params) {
return gridUserDao.listUser(params); return gridUserDao.listUser(params);
} }
} }

View File

@ -2,6 +2,51 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="ink.wgink.module.map.dao.grid.IGridUserDao"> <mapper namespace="ink.wgink.module.map.dao.grid.IGridUserDao">
<resultMap id="gridUserDTO" type="ink.wgink.module.map.pojo.dtos.grid.GridUserDTO">
<id column="grid_id" property="gridId"/>
<result column="useRId" property="userId"/>
<result column="user_username" property="userUsername"/>
<result column="user_name" property="userName"/>
<result column="user_phone" property="userPhone"/>
<result column="gmt_create" property="gmtCreate"/>
</resultMap>
<select id="listGridUser" parameterType="map" resultMap="gridUserDTO">
SELECT
mgr.grid_id,
su.user_id,
su.user_username,
su.user_name,
su.user_email,
su.user_phone,
su.gmt_create
FROM
map_grid_relation mgr
INNER JOIN
map_grid mg
ON
mgr.grid_id = mg.grid_id
INNER JOIN
sys_user su
ON
mgr.relation_id = su.user_id
WHERE
mg.is_delete = 0
AND
su.is_delete = 0
<if test="gridId != null and gridId != ''">
AND
mgr.grid_id = #{gridId}
</if>
<if test="gridIds != null and gridIds.size > 0">
AND
mgr.grid_id IN
<foreach collection="gridIds" index="index" open="(" separator="," close=")">
#{gridIds[${index}]}
</foreach>
</if>
</select>
<select id="listUser" parameterType="map" resultMap="ink.wgink.service.user.dao.IUserDao.userDTO"> <select id="listUser" parameterType="map" resultMap="ink.wgink.service.user.dao.IUserDao.userDTO">
SELECT SELECT
su.user_id, su.user_id,