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; } }