|
|
@@ -11,10 +11,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.dromara.common.mybatis.utils.WrapperUtils;
|
|
|
import org.dromara.service.api.RemoteStoreServiceService;
|
|
|
import org.dromara.service.api.domain.bo.RemoteStoreServiceBo;
|
|
|
+import org.dromara.system.domain.SysAreaStation;
|
|
|
+import org.dromara.system.domain.bo.SysStorePageBo;
|
|
|
import org.dromara.system.domain.vo.SysStoreStatusVo;
|
|
|
+import org.dromara.system.enums.AreaStationStatusEnum;
|
|
|
import org.dromara.system.enums.SysStoreStatusEnum;
|
|
|
+import org.dromara.system.mapper.SysAreaStationMapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.dromara.system.domain.bo.SysStoreBo;
|
|
|
import org.dromara.system.domain.vo.SysStoreVo;
|
|
|
@@ -36,6 +41,7 @@ import java.util.*;
|
|
|
public class SysStoreServiceImpl implements ISysStoreService {
|
|
|
|
|
|
private final SysStoreMapper baseMapper;
|
|
|
+ private final SysAreaStationMapper areaStationMapper;
|
|
|
|
|
|
@DubboReference
|
|
|
private final RemoteStoreServiceService storeServiceService;
|
|
|
@@ -62,17 +68,44 @@ public class SysStoreServiceImpl implements ISysStoreService {
|
|
|
* @return 门店管理分页列表
|
|
|
*/
|
|
|
@Override
|
|
|
- public TableDataInfo<SysStoreVo> queryPageList(SysStoreBo bo, PageQuery pageQuery) {
|
|
|
- LambdaQueryWrapper<SysStore> lqw = buildQueryWrapper(bo);
|
|
|
+ public TableDataInfo<SysStoreVo> queryPageList(SysStorePageBo bo, PageQuery pageQuery) {
|
|
|
+ LambdaQueryWrapper<SysStore> lqw = buildPageQueryWrapper(bo);
|
|
|
Page<SysStoreVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
|
|
|
List<Long> storeIds = new ArrayList<>();
|
|
|
result.getRecords().forEach(e -> storeIds.add(e.getId()));
|
|
|
Map<Long, List<Long>> map = storeServiceService.getByIds(storeIds);
|
|
|
- result.getRecords().forEach(e -> e.setServices(map.get(e.getId())));
|
|
|
+ result.getRecords().forEach(e -> {
|
|
|
+ e.setServices(map.get(e.getId()));
|
|
|
+ e.setServiceOrder(0L);
|
|
|
+ });
|
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
|
|
|
|
+ private LambdaQueryWrapper<SysStore> buildPageQueryWrapper(SysStorePageBo bo) {
|
|
|
+
|
|
|
+ List<Long> siteIds = new ArrayList<>();
|
|
|
+
|
|
|
+ if (bo.getStation() == null) {
|
|
|
+ siteIds = areaStationMapper.selectList(
|
|
|
+ Wrappers.lambdaQuery(SysAreaStation.class)
|
|
|
+ .select(SysAreaStation::getId)
|
|
|
+ .eq(bo.getArea() != null, SysAreaStation::getParentId, bo.getArea())
|
|
|
+ .eq(SysAreaStation::getStatus, AreaStationStatusEnum.ENABLE.getValue())
|
|
|
+ ).stream().map(SysAreaStation::getId).toList();
|
|
|
+ } else {
|
|
|
+ siteIds.add(bo.getStation());
|
|
|
+ }
|
|
|
+
|
|
|
+ return Wrappers.lambdaQuery(SysStore.class)
|
|
|
+ .like(StringUtils.isNotBlank(bo.getStoreOrContact()), SysStore::getName, bo.getStoreOrContact())
|
|
|
+ .or()
|
|
|
+ .like(StringUtils.isNotBlank(bo.getStoreOrContact()), SysStore::getContact, bo.getStoreOrContact())
|
|
|
+ .in(SysStore::getSite, WrapperUtils.convertIds(siteIds))
|
|
|
+ .eq(bo.getStatus() != null, SysStore::getStatus, bo.getStatus())
|
|
|
+ .orderByDesc(SysStore::getId);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询符合条件的门店管理列表
|
|
|
*
|