package org.springblade.modules.location.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springblade.modules.location.entity.LiveLocation;
|
import org.springblade.modules.location.mapper.LiveLocationMapper;
|
import org.springblade.modules.location.service.LiveLocationService;
|
import org.springblade.modules.location.vo.LiveLocationVo;
|
import org.springblade.modules.location.vo.LocusVo;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* 实时位置服务实现类
|
* @author zhongrj
|
*/
|
@Service
|
public class LiveLocationServiceImpl extends ServiceImpl<LiveLocationMapper, LiveLocation> implements LiveLocationService {
|
|
/**
|
* 实时位置分页信息
|
* @param page
|
* @param liveLocation 实时位置信息对象
|
* @return
|
*/
|
@Override
|
public IPage<LiveLocationVo> selectLiveLocationPage(IPage<LiveLocationVo> page, LiveLocationVo liveLocation) {
|
return page.setRecords(baseMapper.selectLiveLocationPage(page, liveLocation));
|
}
|
|
/**
|
* 详情
|
* @param liveLocation 实时位置信息对象
|
*/
|
@Override
|
public LiveLocationVo selectLiveLocationInfo(LiveLocation liveLocation) {
|
return baseMapper.selectLiveLocationInfo(liveLocation);
|
}
|
|
/**
|
* 获取轨迹数据
|
* @param liveLocationVo 实时对象信息
|
* @return
|
*/
|
@Override
|
public List<LocusVo> getLocusInfoList(LiveLocationVo liveLocationVo) {
|
|
return baseMapper.getLocusInfoList(liveLocationVo);
|
}
|
|
|
|
/**
|
* 首页实时定位
|
* @return
|
*/
|
@Override
|
public List<LiveLocationVo> getLiveLocationVoList(LiveLocationVo liveLocationVo) {
|
//保安人员
|
if (liveLocationVo.getType()==1){
|
return baseMapper.getSecurityLocusInfoList(liveLocationVo);
|
}
|
//车辆
|
if (liveLocationVo.getType()==2){
|
return baseMapper.getCarLocusInfoList(liveLocationVo);
|
}
|
//枪支
|
if (liveLocationVo.getType()==3){
|
return baseMapper.getGunLocusInfoList(liveLocationVo);
|
}
|
return baseMapper.selectSecurityAndCarAndGunLiveLocationPage(liveLocationVo);
|
}
|
|
/**
|
* 获取实时位置信息
|
* @param liveLocation
|
* @return
|
*/
|
@Override
|
public LiveLocation getLiveLocationInfo(LiveLocation liveLocation) {
|
return baseMapper.getLiveLocationInfo(liveLocation);
|
}
|
|
|
/**
|
* 获取指令接收人的定位信息
|
* @param liveLocationVo 定位数据信息
|
* @return
|
*/
|
@Override
|
public List<LiveLocationVo> getDirectiveLiveLocationVoList(LiveLocationVo liveLocationVo) {
|
ArrayList<LiveLocationVo> arrayList = new ArrayList<>();
|
//人员
|
if (liveLocationVo.getType()==1){
|
String userIds = liveLocationVo.getUserIds();
|
if (null!=userIds && userIds!=""){
|
List<String> list = Arrays.asList(userIds.split(","));
|
if (list.size()>0){
|
list.forEach(userId->{
|
liveLocationVo.setWorkerId(Long.parseLong(userId));
|
LiveLocationVo directiveLiveLocationVo = baseMapper.getDirectiveLiveLocationVo(liveLocationVo);
|
//如果存在定位数据
|
if (null!=directiveLiveLocationVo){
|
arrayList.add(directiveLiveLocationVo);
|
}
|
});
|
}
|
}
|
}
|
return arrayList;
|
}
|
|
/**
|
* 获取指令接收人的轨迹数据
|
* @param liveLocationVo 实时对象信息
|
* @return
|
*/
|
@Override
|
public List<List<LocusVo>> getDirectiveLocusInfoList(LiveLocationVo liveLocationVo) {
|
List<List<LocusVo>> arrayList = new ArrayList<>();
|
//人员
|
if (liveLocationVo.getType()==1){
|
String userIds = liveLocationVo.getUserIds();
|
if (null!=userIds && userIds!=""){
|
List<String> list = Arrays.asList(userIds.split(","));
|
if (list.size()>0){
|
list.forEach(userId->{
|
liveLocationVo.setWorkerId(Long.parseLong(userId));
|
List<LocusVo> directiveLocusInfoList = baseMapper.getDirectiveLocusInfoList(liveLocationVo);
|
//如果存在轨迹数据
|
if (directiveLocusInfoList.size()>0){
|
arrayList.add(directiveLocusInfoList);
|
}
|
});
|
}
|
}
|
}
|
return arrayList;
|
}
|
}
|