From 84cc865b175705972077e4275b85465f33153aaf Mon Sep 17 00:00:00 2001 From: yiyan Date: Fri, 10 May 2019 16:33:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=A6=BB=E7=BA=BF=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E4=BF=A1=E6=81=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ifish/dao/DeviceOfflineDao.java | 25 +++++++ .../ifish/daoImpl/DeviceOfflineDaoImpl.java | 55 ++++++++++++++ .../java/com/ifish/entity/DeviceOffline.java | 73 +++++++++++++++++++ .../ifish/entity/hbm/DeviceOffline.hbm.xml | 15 ++++ .../java/com/ifish/quartz/ExecuteJob.java | 15 +++- .../java/com/ifish/service/DeviceService.java | 2 + .../ifish/serviceImpl/DeviceServiceImpl.java | 7 ++ src/main/java/com/ifish/util/IfishUtil.java | 15 ++++ 8 files changed, 203 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/ifish/dao/DeviceOfflineDao.java create mode 100644 src/main/java/com/ifish/daoImpl/DeviceOfflineDaoImpl.java create mode 100644 src/main/java/com/ifish/entity/DeviceOffline.java create mode 100644 src/main/java/com/ifish/entity/hbm/DeviceOffline.hbm.xml diff --git a/src/main/java/com/ifish/dao/DeviceOfflineDao.java b/src/main/java/com/ifish/dao/DeviceOfflineDao.java new file mode 100644 index 0000000..747dafc --- /dev/null +++ b/src/main/java/com/ifish/dao/DeviceOfflineDao.java @@ -0,0 +1,25 @@ +package com.ifish.dao; + +import com.ifish.entity.DeviceOffline; +import org.hibernate.criterion.Criterion; + +import java.util.List; + +/** + * @author: yan.y + * @Description: + * @Date: Created in 20:06 2018/9/15 + * @Modified by: + */ +public interface DeviceOfflineDao { + + DeviceOffline findById(Integer id); + + DeviceOffline save(DeviceOffline device); + + DeviceOffline update(DeviceOffline device); + + DeviceOffline getUniqueByProperty(String property, Object value); + + List getByCriterion(Criterion... criterions); +} diff --git a/src/main/java/com/ifish/daoImpl/DeviceOfflineDaoImpl.java b/src/main/java/com/ifish/daoImpl/DeviceOfflineDaoImpl.java new file mode 100644 index 0000000..033052f --- /dev/null +++ b/src/main/java/com/ifish/daoImpl/DeviceOfflineDaoImpl.java @@ -0,0 +1,55 @@ +package com.ifish.daoImpl; + +import com.ifish.dao.DeviceOfflineDao; +import com.ifish.entity.DeviceHeater; +import com.ifish.entity.DeviceOffline; +import com.ifish.hibernate.HibernateBaseDao; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @ClassName: DeviceOfflineDaoImpl + * @Description: TODO + * @author ggw + * + */ + +@Repository +public class DeviceOfflineDaoImpl extends HibernateBaseDao implements DeviceOfflineDao { + + + @Override + protected Class getEntityClass() { + return DeviceOffline.class; + } + + @Override + public DeviceOffline findById(Integer id) { + return this.get(id); + } + + @Override + public DeviceOffline getUniqueByProperty(String property, Object value) { + return this.findUniqueByProperty(Restrictions.eq(property, value)); + } + + @Override + public DeviceOffline save(DeviceOffline deviceOffline) { + this.getSession().save(deviceOffline); + return deviceOffline; + } + + @Override + public DeviceOffline update(DeviceOffline deviceOffline) { + this.getSession().update(deviceOffline); + return deviceOffline; + } + + @Override + public List getByCriterion(Criterion... criterion) { + return super.findByProperty(criterion); + } +} diff --git a/src/main/java/com/ifish/entity/DeviceOffline.java b/src/main/java/com/ifish/entity/DeviceOffline.java new file mode 100644 index 0000000..19b3d66 --- /dev/null +++ b/src/main/java/com/ifish/entity/DeviceOffline.java @@ -0,0 +1,73 @@ +package com.ifish.entity; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author: yan.y + * @Description: + * @Date: Created in 15:58 2019-05-10 + * @Modified by: + */ +public class DeviceOffline implements Serializable { + + private Integer offlineId; + + private String offlineMacAddress; + + private String offlineFactoryCode; + + private String offlineDeviceType; + + private Date offlineTime; + + private String offlineSdkVersion; + + public Integer getOfflineId() { + return offlineId; + } + + public void setOfflineId(Integer offlineId) { + this.offlineId = offlineId; + } + + public String getOfflineMacAddress() { + return offlineMacAddress; + } + + public void setOfflineMacAddress(String offlineMacAddress) { + this.offlineMacAddress = offlineMacAddress; + } + + public String getOfflineFactoryCode() { + return offlineFactoryCode; + } + + public void setOfflineFactoryCode(String offlineFactoryCode) { + this.offlineFactoryCode = offlineFactoryCode; + } + + public String getOfflineDeviceType() { + return offlineDeviceType; + } + + public void setOfflineDeviceType(String offlineDeviceType) { + this.offlineDeviceType = offlineDeviceType; + } + + public Date getOfflineTime() { + return offlineTime; + } + + public void setOfflineTime(Date offlineTime) { + this.offlineTime = offlineTime; + } + + public String getOfflineSdkVersion() { + return offlineSdkVersion; + } + + public void setOfflineSdkVersion(String offlineSdkVersion) { + this.offlineSdkVersion = offlineSdkVersion; + } +} diff --git a/src/main/java/com/ifish/entity/hbm/DeviceOffline.hbm.xml b/src/main/java/com/ifish/entity/hbm/DeviceOffline.hbm.xml new file mode 100644 index 0000000..b8d00b5 --- /dev/null +++ b/src/main/java/com/ifish/entity/hbm/DeviceOffline.hbm.xml @@ -0,0 +1,15 @@ + + + + + false + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/ifish/quartz/ExecuteJob.java b/src/main/java/com/ifish/quartz/ExecuteJob.java index 7b281e6..767a2eb 100644 --- a/src/main/java/com/ifish/quartz/ExecuteJob.java +++ b/src/main/java/com/ifish/quartz/ExecuteJob.java @@ -5,6 +5,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.ifish.entity.*; +import com.ifish.util.IfishUtil; import org.apache.mina.core.session.IoSession; import org.quartz.Job; import org.quartz.JobDataMap; @@ -14,10 +16,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import com.ifish.entity.Device; -import com.ifish.entity.DeviceUser; -import com.ifish.entity.PushList; -import com.ifish.entity.User; import com.ifish.enums.BooleanEnum; import com.ifish.enums.NeteaseEnum; import com.ifish.enums.PushTypeEnum; @@ -50,6 +48,15 @@ public class ExecuteJob implements Job { //设备是否存在 Device device = deviceService.getUniqueByProperty("macAddress", macAddress); if(device!=null){ + //保存离线的设备信息 + DeviceOffline deviceOffline = new DeviceOffline(); + deviceOffline.setOfflineMacAddress(device.getMacAddress()); + deviceOffline.setOfflineFactoryCode(device.getFactoryCode()); + deviceOffline.setOfflineDeviceType(device.getHardwareType()); + deviceOffline.setOfflineSdkVersion(String.valueOf(device.getSdkVersion())); + deviceOffline.setOfflineTime(IfishUtil.StrToDate1(timestamp)); + deviceService.saveDeviceOffline(deviceOffline); + //记录次数 Integer number1 = device.getNumber1(); Integer number2 = device.getNumber2(); diff --git a/src/main/java/com/ifish/service/DeviceService.java b/src/main/java/com/ifish/service/DeviceService.java index 605feef..e812e7f 100644 --- a/src/main/java/com/ifish/service/DeviceService.java +++ b/src/main/java/com/ifish/service/DeviceService.java @@ -38,4 +38,6 @@ public interface DeviceService { FactoryList getFactoryListById(String factoryCode); HardwareType getHardwareTypeById(String typeCode); + + void saveDeviceOffline(DeviceOffline deviceOffline); } diff --git a/src/main/java/com/ifish/serviceImpl/DeviceServiceImpl.java b/src/main/java/com/ifish/serviceImpl/DeviceServiceImpl.java index 938f2a4..aa87840 100644 --- a/src/main/java/com/ifish/serviceImpl/DeviceServiceImpl.java +++ b/src/main/java/com/ifish/serviceImpl/DeviceServiceImpl.java @@ -47,6 +47,8 @@ public class DeviceServiceImpl implements DeviceService { private FactoryListDao factoryListDao; @Autowired private HardwareTypeDao hardwareTypeDao; + @Autowired + private DeviceOfflineDao deviceOfflineDao; @Override public Device update(Device device) { @@ -193,4 +195,9 @@ public class DeviceServiceImpl implements DeviceService { List list = this.deviceHeaterDao.getByCriterion(queryList.toArray(new Criterion[queryList.size()])); return list; } + + @Override + public void saveDeviceOffline(DeviceOffline deviceOffline) { + this.deviceOfflineDao.save(deviceOffline); + } } diff --git a/src/main/java/com/ifish/util/IfishUtil.java b/src/main/java/com/ifish/util/IfishUtil.java index cdba844..6c9b894 100644 --- a/src/main/java/com/ifish/util/IfishUtil.java +++ b/src/main/java/com/ifish/util/IfishUtil.java @@ -49,6 +49,21 @@ public class IfishUtil { } return date; } + /** + * 字符串转换成日期 + * @param str + * @return date + */ + public static Date StrToDate1(String str) { + SimpleDateFormat format = new SimpleDateFormat(formatDate); + Date date = null; + try { + date = format.parse(str); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } /** * 随机生成字母与数字组合