| | |
| | | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xiaopeng.api.model.operation.XpOpenCity; |
| | | import com.xiaopeng.api.model.operation.XpPricing; |
| | | import com.xiaopeng.api.model.operation.XpRoutePlan; |
| | | import com.xiaopeng.common.core.exception.ServiceException; |
| | | import com.xiaopeng.common.core.web.page.PageInfo; |
| | | import com.xiaopeng.common.security.utils.SecurityUtils; |
| | | import com.xiaopeng.operation.constant.I18nKeyConstant; |
| | | import com.xiaopeng.operation.dto.OpenCityAddDTO; |
| | | import com.xiaopeng.operation.dto.OpenCityEditDTO; |
| | | import com.xiaopeng.operation.mapper.XpOpenCityMapper; |
| | | import com.xiaopeng.operation.query.OpenCityPageQuery; |
| | | import com.xiaopeng.operation.service.IXpPricingItemService; |
| | | import com.xiaopeng.operation.service.IXpRoutePlanService; |
| | | import com.xiaopeng.operation.service.XpOpenCityService; |
| | | import com.xiaopeng.operation.service.XpPricingService; |
| | | import com.xiaopeng.operation.vo.OpenCityListVO; |
| | | import com.xiaopeng.operation.vo.XpOpenCityNextVo; |
| | | import com.xiaopeng.operation.vo.XpOpenCityVo; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | */ |
| | | @Service |
| | | public class XpOpenCityServiceImpl extends ServiceImpl<XpOpenCityMapper, XpOpenCity> implements XpOpenCityService { |
| | | @Autowired |
| | | private IXpRoutePlanService xpRoutePlanService; |
| | | |
| | | @Autowired |
| | | private XpPricingService xpPricingService; |
| | | |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<OpenCityListVO> getOpenCityListForAdmin() { |
| | | public List<OpenCityListVO> getOpenCityListForAdmin(Integer type) { |
| | | // 1. 查询所有启用状态的开通城市 |
| | | List<XpOpenCity> xpOpenCities = this.baseMapper.selectList( |
| | | new LambdaQueryWrapper<XpOpenCity>() |
| | | .eq(XpOpenCity::getStatus, 1) |
| | | .orderByAsc(XpOpenCity::getId) |
| | | ); |
| | | |
| | | List<Long> existsOpenCityIds = new ArrayList<>(); |
| | | //2.根据type过滤已配置的开通城市 |
| | | if (Integer.valueOf(1).equals(type)) { |
| | | //路径规划 |
| | | existsOpenCityIds = xpRoutePlanService.list().stream().map(XpRoutePlan::getOpenCityId).collect(Collectors.toList()); |
| | | } else { |
| | | //定价管理 |
| | | existsOpenCityIds = xpPricingService.list().stream().map(XpPricing::getCityId).collect(Collectors.toList()); |
| | | } |
| | | if (CollUtil.isNotEmpty(existsOpenCityIds)) { |
| | | List<Long> finalExistsOpenCityIds = existsOpenCityIds; |
| | | xpOpenCities = xpOpenCities.stream().filter(item -> !finalExistsOpenCityIds.contains(item.getId())).collect(Collectors.toList()); |
| | | } |
| | | // 2. 转换为VO,处理区/县级拼接逻辑 |
| | | return xpOpenCities.stream() |
| | | .map(city -> { |