package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.stylefeng.guns.modular.system.model.TDriver;
|
import com.stylefeng.guns.modular.system.dao.TDriverMapper;
|
import com.stylefeng.guns.modular.system.service.ITDriverService;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.modular.system.util.GaoDeMapUtil;
|
import com.stylefeng.guns.modular.system.util.GeodesyUtil;
|
import com.stylefeng.guns.modular.system.util.RedisUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* <p>
|
* 司机表 服务实现类
|
* </p>
|
*
|
* @author 吕雪
|
* @since 2020-06-04
|
*/
|
@Service
|
public class TDriverServiceImpl extends ServiceImpl<TDriverMapper, TDriver> implements ITDriverService {
|
|
@Autowired
|
private RedisUtil redisUtil;
|
|
@Autowired
|
private GeodesyUtil geodesyUtil;
|
|
@Override
|
public List<Map<String, Object>> getAuthDriverList(Page<Map<String, Object>> page,Integer roleType, Integer objectId, String beginTime, String endTime, String companyName, String phone, String account, Integer addType, Integer authState) {
|
return this.baseMapper.getAuthDriverList(page,roleType,objectId, beginTime, endTime, companyName, phone, account, addType, authState);
|
}
|
|
@Override
|
public Map<String, Object> getDriverById(Integer driverId) {
|
return this.baseMapper.getDriverById(driverId);
|
}
|
|
@Override
|
public List<Map<String, Object>> getDriverList(Page<Map<String, Object>> page, Integer roleType,Integer nowUserId,String beginTime, String endTime, String companyName, String phone, String name, Integer addType, Integer authState) {
|
return this.baseMapper.getDriverList(page,roleType,nowUserId, beginTime, endTime, companyName, phone, name, addType, authState);
|
}
|
|
@Override
|
public String getUseCarIdStr(Integer carId) {
|
return this.baseMapper.getUseCarIdStr(carId);
|
}
|
|
@Override
|
public List<Map<String, Object>> getCanSelectCarList(Page<Map<String, Object>> page, Integer roleType, Integer nowUserId, String carIdStr, String carLicensePlate, String brandName, String modelName, String color, String serverStr) {
|
return this.baseMapper.getCanSelectCarList(page, roleType, nowUserId, carIdStr, carLicensePlate, brandName, modelName, color, serverStr);
|
}
|
|
@Override
|
public void updateCompanyDriverState(Integer authState, Integer companyId) {
|
this.baseMapper.updateCompanyDriverState(authState, companyId);
|
}
|
|
@Override
|
public void updateFranchiseeDriverState(Integer authState, Integer franchiseeId) {
|
this.baseMapper.updateFranchiseeDriverState(authState, franchiseeId);
|
}
|
|
@Override
|
public List<Map<String, Object>> getDriverListNoPage(Integer roleType, Integer nowUserId) {
|
return this.baseMapper.getDriverListNoPage(roleType, nowUserId);
|
}
|
|
|
@Override
|
public List<TDriver> queryIdleDriver(Integer type, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
|
List<TDriver> drivers = this.baseMapper.queryIdleDriver(type, companyId);
|
List<TDriver> list = new ArrayList<>();
|
for(TDriver driver : drivers){
|
String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
|
if(null != value){
|
// Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离
|
Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
|
double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
|
System.err.println("d="+d+",distance="+distance);
|
if(d < (distance * 1000)){
|
list.add(driver);
|
}
|
}
|
}
|
System.err.println("满足条件司机=="+list);
|
return list;
|
}
|
}
|