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.common.core.utils.SensitiveDataCryptoUtil;
|
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;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class XpTargetedServiceVehicleServiceImpl extends ServiceImpl<XpTargetedServiceVehicleMapper, XpTargetedServiceVehicle> implements XpTargetedServiceVehicleService {
|
|
@Resource
|
private XpVehicleClient xpVehicleClient;
|
|
@Resource
|
private XpTargetedServiceService xpTargetedServiceService;
|
|
|
|
@Override
|
public void deleteByTargetedServiceId(Long targetedServiceId) {
|
if (targetedServiceId == null) {
|
return;
|
}
|
LambdaQueryWrapper<XpTargetedServiceVehicle> wrapper = new LambdaQueryWrapper<>();
|
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();
|
String vin = SensitiveDataCryptoUtil.decryptIfPossible(xpVehicle.getVehicleVin());
|
return vin;
|
}).collect(Collectors.toList());
|
return vinList;
|
}
|
}
|