|
@@ -33,7 +33,9 @@ import java.util.HashSet;
|
|
|
import java.util.LinkedHashMap;
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
+import java.util.Objects;
|
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@Service
|
|
@Service
|
|
@@ -106,7 +108,7 @@ public class ErpShopServiceImpl extends ServiceImpl<ErpShopMapper, ErpShop> impl
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public IPage<ErpShop> listAll(String keyword, int page, int pageSize) {
|
|
|
|
|
|
|
+ public IPage<ErpShop> listAll(String keyword, Integer boundStatus, int page, int pageSize) {
|
|
|
LambdaQueryWrapper<ErpShop> wrapper = new LambdaQueryWrapper<ErpShop>()
|
|
LambdaQueryWrapper<ErpShop> wrapper = new LambdaQueryWrapper<ErpShop>()
|
|
|
.eq(ErpShop::getStatus, 1);
|
|
.eq(ErpShop::getStatus, 1);
|
|
|
if (StringUtils.hasText(keyword)) {
|
|
if (StringUtils.hasText(keyword)) {
|
|
@@ -115,6 +117,30 @@ public class ErpShopServiceImpl extends ServiceImpl<ErpShopMapper, ErpShop> impl
|
|
|
.or()
|
|
.or()
|
|
|
.like(ErpShop::getNickName, keyword));
|
|
.like(ErpShop::getNickName, keyword));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 已绑定/未绑定筛选:通过 t_device.erp_shop_id 关联判断
|
|
|
|
|
+ if (boundStatus != null) {
|
|
|
|
|
+ List<Device> boundDevices = deviceMapper.selectList(new LambdaQueryWrapper<Device>()
|
|
|
|
|
+ .isNotNull(Device::getErpShopId)
|
|
|
|
|
+ .select(Device::getErpShopId));
|
|
|
|
|
+ Set<Long> boundErpShopIds = boundDevices.stream()
|
|
|
|
|
+ .map(Device::getErpShopId).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
|
|
+
|
|
|
|
|
+ if (boundStatus == 1) {
|
|
|
|
|
+ // 已绑定
|
|
|
|
|
+ if (boundErpShopIds.isEmpty()) {
|
|
|
|
|
+ // 没有任何设备已绑定,返回空页
|
|
|
|
|
+ return new Page<>(page, pageSize);
|
|
|
|
|
+ }
|
|
|
|
|
+ wrapper.in(ErpShop::getErpShopId, boundErpShopIds);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 未绑定
|
|
|
|
|
+ if (!boundErpShopIds.isEmpty()) {
|
|
|
|
|
+ wrapper.notIn(ErpShop::getErpShopId, boundErpShopIds);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return page(new Page<>(page, pageSize), wrapper.orderByAsc(ErpShop::getShopName));
|
|
return page(new Page<>(page, pageSize), wrapper.orderByAsc(ErpShop::getShopName));
|
|
|
}
|
|
}
|
|
|
|
|
|