puzhibing
2026-04-30 274422a2d5cbb8f4518c29cc1748a805f8d9a00b
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTargetedServiceVehicleServiceImpl.java
@@ -1,13 +1,16 @@
package com.xiaopeng.operation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.operation.XpTargetedService;
import com.xiaopeng.api.model.operation.XpTargetedServiceVehicle;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.operation.mapper.XpTargetedServiceMapper;
import com.xiaopeng.operation.mapper.XpTargetedServiceVehicleMapper;
import com.xiaopeng.operation.service.XpTargetedServiceService;
import com.xiaopeng.operation.service.XpTargetedServiceVehicleService;
import org.springframework.stereotype.Service;
@@ -21,6 +24,12 @@
@Service
public class XpTargetedServiceVehicleServiceImpl  extends ServiceImpl<XpTargetedServiceVehicleMapper, XpTargetedServiceVehicle> implements XpTargetedServiceVehicleService {
    @Resource
    private XpVehicleClient xpVehicleClient;
    @Resource
    private XpTargetedServiceService xpTargetedServiceService;
    
    @Override
@@ -32,7 +41,23 @@
        wrapper.eq(XpTargetedServiceVehicle::getTargetedServiceId, targetedServiceId);
        this.remove(wrapper);
    }
    @Override
    public List<String> getVehicleVinByTargetedService(String cityCode) {
        List<XpTargetedService> targetedServices = xpTargetedServiceService.list(new QueryWrapper<XpTargetedService>().eq("status", 1)
                .eq("city_code", cityCode).last(" and (is_long_valid = 1 or now() between start_time and end_time)"));
        List<Long> collect = targetedServices.stream().map(XpTargetedService::getId).collect(Collectors.toList());
        if(collect.isEmpty()){
            return Collections.emptyList();
        }
        List<XpTargetedServiceVehicle> list = this.list(new QueryWrapper<XpTargetedServiceVehicle>().in("targeted_service_id", collect));
        List<String> vinList = list.stream().map(item -> {
            XpVehicle xpVehicle = xpVehicleClient.queryById(item.getVehicleId()).getData();
            return xpVehicle.getVehicleVin();
        }).collect(Collectors.toList());
        return vinList;
    }
}