fix(P): member视角设备列表改为按id升序, 修复常用设备因状态上报而跳位
- 根因: 设备列表按 update_time DESC 排序, APP控制一次即刷新update_time, 导致被控设备跳到列表最前(如JD2BTSA跳到JD6BTSA前面) - member(APP/小程序)按 id 升序(位置固定); admin(后台)保持 update_time DESC - 已上线验证: member 返回顺序 301网关/JD2BTSA/JD6BTSA/...
This commit is contained in:
parent
230b04e691
commit
8a11c78d22
@ -154,8 +154,19 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
.eq(StringUtils.hasText(query.getParentDeviceId()), Device::getParentDeviceId, query.getParentDeviceId())
|
||||
.eq(query.getIsGateway() != null, Device::getIsGateway, query.getIsGateway())
|
||||
// 产品维度过滤:支持按 productId 精确查,或按产品名/编码模糊查
|
||||
.eq(query.getProductId() != null && query.getProductId() > 0, Device::getProductId, query.getProductId())
|
||||
.orderByDesc(Device::getUpdateTime);
|
||||
.eq(query.getProductId() != null && query.getProductId() > 0, Device::getProductId, query.getProductId());
|
||||
|
||||
// 排序策略按视角区分:
|
||||
// - member(APP / 小程序):按 id 升序,设备位置固定。
|
||||
// 原先按 update_time desc,而设备每次上报状态/DP 都会刷新 update_time,
|
||||
// 于是「点了 JD2BTSA 的开关 → 它立刻跳到 JD6BTSA 前面」,用户心智里
|
||||
// 常用设备的位置是固定的,不能因为一次操作就重排。
|
||||
// - admin(后台管理):按 update_time desc,最近更新的排前面,便于管理员排查。
|
||||
if (query.getOwnerId() != null && query.getOwnerId() > 0) {
|
||||
wrapper.orderByAsc(Device::getId);
|
||||
} else {
|
||||
wrapper.orderByDesc(Device::getUpdateTime);
|
||||
}
|
||||
|
||||
// 按产品关键字过滤:先解析出匹配的 product_id 集合,再约束 device
|
||||
if (StringUtils.hasText(query.getProductKeyword())) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user