package com.ld.igds.io.notify;
|
|
import com.ld.igds.constant.Constant;
|
import com.ld.igds.oa.dto.GpsData;
|
import com.ld.igds.oa.dto.GpsLocationData;
|
import com.ld.igds.oa.service.CoreGpsService;
|
import com.ld.igds.util.ContextUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Repository;
|
|
import java.util.Date;
|
|
@Slf4j
|
@Repository(NotifyGpsMacService.BEAN_ID)
|
public class NotifyGpsMacServiceImpl implements NotifyGpsMacService {
|
|
@Autowired
|
private CoreGpsService coreGpsService;
|
|
@Override
|
public void registerAndAuthNotify(GpsData data) {
|
//判断组织编码是否为空
|
if (StringUtils.isEmpty(data.getCompanyId())) {
|
data.setCompanyId(ContextUtil.getDefaultCompanyId());
|
}
|
data.setUpdateTime(new Date());
|
|
//更新GPS设备到数据库
|
data.setStatus(Constant.YN_Y);
|
coreGpsService.updateGps(data);
|
|
//更新GPS设备信息到缓存
|
coreGpsService.updateCacheListGpsData(data);
|
}
|
|
@Override
|
public void locationNotify(GpsLocationData data) {
|
|
//设置数据id,更新位置信息到数据库
|
data.setRecordId(ContextUtil.getUUID());
|
coreGpsService.updateGpsRecord(data);
|
|
//更新设备位置信息到缓存
|
coreGpsService.updateCacheLocationData(data);
|
}
|
|
@Override
|
public void onCreate(String address, Integer port) {
|
// 更新状态
|
coreGpsService.updateGpsStatus(address, port, Constant.YN_Y);
|
}
|
|
@Override
|
public void onDestroy(String address, Integer port) {
|
// 更新状态
|
coreGpsService.updateGpsStatus(address, port, Constant.YN_Y);
|
}
|
|
@Override
|
public boolean authSn(GpsData data) {
|
if (StringUtils.isEmpty(data.getCompanyId())) {
|
data.setCompanyId(ContextUtil.getDefaultCompanyId());
|
}
|
GpsData gpsData = coreGpsService.getCacheBySerialNum(data.getCompanyId(), data.getSn());
|
if (gpsData == null) {
|
log.info("GPS设备登录,没有获取到注册信息,拒绝登录,请求信息:" + data.toString());
|
return false;
|
}
|
//更新设备数据到数据库
|
coreGpsService.updateGps(data);
|
|
//更新缓存信息
|
coreGpsService.updateCacheListGpsData(data);
|
return true;
|
}
|
|
}
|