项目整合
This commit is contained in:
parent
5d151d4d8a
commit
d0f4f89f9d
|
|
@ -21,5 +21,6 @@ Any value defined here will override the pom.xml file value but is only applicab
|
|||
-->
|
||||
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>1.7-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
|
||||
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>Tomcat</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
|
||||
<org-netbeans-modules-maven-jaxws.generate_5f_nonjsr109>false</org-netbeans-modules-maven-jaxws.generate_5f_nonjsr109>
|
||||
</properties>
|
||||
</project-shared-configuration>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class Tbl_Vender implements java.io.Serializable {
|
|||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private static final long serialVersionUID = -487543106603936914L;
|
||||
private static final long serialVersionUID = 2462685903502867014L;
|
||||
|
||||
/**
|
||||
* 鱼缸厂编号
|
||||
|
|
@ -33,13 +33,6 @@ public class Tbl_Vender implements java.io.Serializable {
|
|||
@Column(name = "brand_code", unique = true, nullable = false, length = 20)
|
||||
private String brandCode;
|
||||
|
||||
/**
|
||||
* 电子厂代码
|
||||
*/
|
||||
@Id
|
||||
@Column(name = "factory_code", unique = true, nullable = false, length = 20)
|
||||
private String factoryCode;
|
||||
|
||||
/**
|
||||
* logo
|
||||
*/
|
||||
|
|
@ -106,24 +99,6 @@ public class Tbl_Vender implements java.io.Serializable {
|
|||
this.brandCode = brandCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取电子厂代码
|
||||
*
|
||||
* @return 电子厂代码
|
||||
*/
|
||||
public String getFactoryCode() {
|
||||
return this.factoryCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置电子厂代码
|
||||
*
|
||||
* @param factoryCode 电子厂代码
|
||||
*/
|
||||
public void setFactoryCode(String factoryCode) {
|
||||
this.factoryCode = factoryCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取logo
|
||||
*
|
||||
|
|
|
|||
|
|
@ -5,16 +5,15 @@
|
|||
*/
|
||||
package com.ifish.helper;
|
||||
|
||||
import com.ifish.bean.LoginRecord;
|
||||
import com.ifish.bean.Tbl_Device;
|
||||
import com.ifish.bean.Tbl_Device_Statistics;
|
||||
import com.ifish.bean.Tbl_Device_User;
|
||||
import com.ifish.bean.Tbl_Factory_List;
|
||||
import com.ifish.bean.Tbl_HardWare_Type;
|
||||
import com.ifish.mapper.Tbl_Device_Mapper;
|
||||
import com.ifish.mapper.Tbl_Hardware_Type_Mapper;
|
||||
import com.ifish.socket.model.send.DeviceLoginContextLength24;
|
||||
import com.ifish.util.ByteUtil;
|
||||
import com.ifish.util.IfishUtil;
|
||||
import com.ifish.util.RedisKey;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -36,14 +35,27 @@ public class DeviceHelper implements DeviceHelperI {
|
|||
@Autowired
|
||||
private RedisHelperI redisHelperI;
|
||||
|
||||
@Autowired
|
||||
private RedisKeyHelperI redisKeyHelperI;
|
||||
|
||||
@Autowired
|
||||
private Tbl_Device_Mapper tbl_Device_Mapper;
|
||||
|
||||
/**
|
||||
* 修改设备信息
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Tbl_Device update(Tbl_Device device) {
|
||||
try {
|
||||
if (device.getDeviceId() == 0) {
|
||||
return null;
|
||||
}
|
||||
int i = tbl_Device_Mapper.updateTbl_Device(device);
|
||||
if (i > 0) {
|
||||
redisKeyHelperI.deleteRedisByTbl_Device(device);
|
||||
return device;
|
||||
} else {
|
||||
return null;
|
||||
|
|
@ -53,85 +65,171 @@ public class DeviceHelper implements DeviceHelperI {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 登陆修改设备的厂家等信息
|
||||
*
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Tbl_Device update(DeviceLoginContextLength24 model) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateWarnOnoff(String macAddress, String onOff) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tbl_Device getUniqueByProperty(String property, Object value) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Tbl_Device> getByProperty(String property, Object value) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tbl_Device_User getUniqueByProperty(String macAddress) {
|
||||
Tbl_Device device = getDeviceByMacAddress(macAddress);
|
||||
Tbl_Device_User deviceUser = null;
|
||||
public Tbl_Device updateDeviceWhenLogin(DeviceLoginContextLength24 model) {
|
||||
try {
|
||||
// String key = RedisKey.DeviceUser_Key + "m" + macAddress;
|
||||
// String redisString = redisHelperI.getRedis(key);
|
||||
// if (StringUtils.isNotBlank(redisString)) {
|
||||
// deviceUser = (Tbl_Device_User) IfishUtil.JsonToBean(redisString, Tbl_Device_User.class);
|
||||
// } else {
|
||||
// device = tbl_Device_Mapper.getDeviceUsersByUserIdAndDeviceId(device.get, deviceId);
|
||||
// if (device != null && device.getDeviceId() > 0) {
|
||||
// redisHelperI.setRedis(key, IfishUtil.ObjectToJson(device));
|
||||
// }
|
||||
// }
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return deviceUser;
|
||||
}
|
||||
//macAddr地址
|
||||
String stcMac = ByteUtil.bytesToHexString(model.getSrc());
|
||||
//IP
|
||||
byte[] log_Ip = model.getLogin_ip();
|
||||
StringBuilder ipStr = new StringBuilder();
|
||||
for (int i = 0; i < log_Ip.length; i++) {
|
||||
int v = log_Ip[i] & 0xff;
|
||||
if (i == 0) {
|
||||
ipStr.append(v);
|
||||
} else {
|
||||
ipStr.append("." + v);
|
||||
}
|
||||
}
|
||||
//版本
|
||||
Integer version = model.getVersion() & 0xff;
|
||||
//电子厂
|
||||
String factoryCode = ByteUtil.toHex(model.getfactoryCode());
|
||||
factoryCode = factoryCode.equals("01") ? "0a" : factoryCode;
|
||||
//硬件类型
|
||||
String typeCode = ByteUtil.toHex(model.getHardware_type());
|
||||
|
||||
@Override
|
||||
public List<Tbl_Device_User> getListByProperty(Integer deviceId) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
Tbl_Device device = getDeviceByMacAddress(stcMac);
|
||||
if (device != null) {
|
||||
Tbl_Device_Statistics device_Statistics = getDeviceStatisticsByDeviceId(device.getDeviceId());
|
||||
Integer loginConut = device_Statistics.getLoginCount();
|
||||
if (loginConut != null) {
|
||||
device_Statistics.setLoginCount(++loginConut);
|
||||
} else {
|
||||
device_Statistics.setLoginCount(1);
|
||||
}
|
||||
device.setFactoryCode(factoryCode);
|
||||
device_Statistics.setFactoryCode(factoryCode);
|
||||
device.setHardwareType(typeCode);
|
||||
device_Statistics.setHardwareType(typeCode);
|
||||
device_Statistics.setSoftwareVersion(version.toString());
|
||||
device.setDeviceIp(ipStr.toString());
|
||||
Date date = new Date();
|
||||
device.setLoginTime(date);
|
||||
device_Statistics.setLoginTime(date);
|
||||
tbl_Device_Mapper.updateTbl_Device(device);
|
||||
redisKeyHelperI.deleteRedisByTbl_Device(device);
|
||||
|
||||
@Override
|
||||
public LoginRecord save(LoginRecord loginRecord) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tbl_Factory_List getFactoryListById(String factoryCode) {
|
||||
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tbl_HardWare_Type getHardwareTypeById(String typeCode) {
|
||||
|
||||
Tbl_HardWare_Type hardwareType = null;
|
||||
try {
|
||||
String key = RedisKey.HardWareType_key + typeCode;
|
||||
String redisString = redisHelperI.getRedis(key);
|
||||
if (StringUtils.isNotBlank(redisString)) {
|
||||
hardwareType = (Tbl_HardWare_Type) IfishUtil.JsonToBean(redisString, Tbl_HardWare_Type.class);
|
||||
tbl_Device_Mapper.updateDeviceStatistics(device_Statistics);
|
||||
redisKeyHelperI.deleteRedisByTbl_Device_Statistics(device_Statistics);
|
||||
return device;
|
||||
} else {
|
||||
hardwareType = tbl_Hardware_Type_Mapper.getHardwareTypeByTypeCode(typeCode);
|
||||
if (hardwareType != null && StringUtils.isNotBlank(hardwareType.getHardwareType())) {
|
||||
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(hardwareType));
|
||||
//新增
|
||||
//log.warn("macAddress not exist in database:{}",stcMac);
|
||||
device = new Tbl_Device();
|
||||
device.setMacAddress(stcMac);
|
||||
device.setFactoryCode(factoryCode);
|
||||
device.setHardwareType(typeCode);
|
||||
device.setDeviceIp(ipStr.toString());
|
||||
Date date = new Date();
|
||||
device.setLoginTime(date);
|
||||
device.setCreateTime(date);
|
||||
device.setIsCamera("0");
|
||||
int i = tbl_Device_Mapper.insertDevice(device);
|
||||
if (i > 0) {
|
||||
Tbl_Device_Statistics device_Statistics = new Tbl_Device_Statistics();
|
||||
device_Statistics.setSoftwareVersion(version.toString());
|
||||
device_Statistics.setLoginCount(1);
|
||||
device_Statistics.setLoginTime(date);
|
||||
device_Statistics.setCreateDate(date);
|
||||
device_Statistics.setCreateTime(date);
|
||||
device_Statistics.setMacAddress(stcMac);
|
||||
device_Statistics.setFactoryCode(factoryCode);
|
||||
device_Statistics.setHardwareType(typeCode);
|
||||
device_Statistics.setDeviceId(device.getDeviceId());
|
||||
tbl_Device_Mapper.insertDeviceStatistics(device_Statistics);
|
||||
}
|
||||
return device;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设备统计信息
|
||||
*
|
||||
* @param device_Statistics
|
||||
* @return
|
||||
*/
|
||||
public Tbl_Device_Statistics updateDevice_Statistics(Tbl_Device_Statistics device_Statistics) {
|
||||
try {
|
||||
if (device_Statistics.getDeviceId() != 0 || StringUtils.isNotBlank(device_Statistics.getMacAddress())) {
|
||||
int i = tbl_Device_Mapper.updateDeviceStatistics(device_Statistics);
|
||||
if (i > 0) {
|
||||
//清楚已缓存的redis
|
||||
redisKeyHelperI.deleteRedisByTbl_Device_Statistics(device_Statistics);
|
||||
//返回修改成功的设备统计数据
|
||||
if (StringUtils.isNotBlank(device_Statistics.getMacAddress())) {
|
||||
return getDeviceStatisticsByMacAddress(device_Statistics.getMacAddress());
|
||||
} else if (device_Statistics.getDeviceId() != 0) {
|
||||
return getDeviceStatisticsByDeviceId(device_Statistics.getDeviceId());
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return hardwareType;
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置温度是否报警
|
||||
*
|
||||
* @param macAddress
|
||||
* @param onOff
|
||||
*/
|
||||
@Override
|
||||
public void updateWarnOnoff(String macAddress, String onOff) {
|
||||
Tbl_Device device = getDeviceByMacAddress(macAddress);
|
||||
if (device != null) {
|
||||
device.setOnOff(onOff);
|
||||
tbl_Device_Mapper.updateTbl_Device(device);
|
||||
redisKeyHelperI.deleteRedisByTbl_Device(device);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备ID获取此设备所有的用户关系列表
|
||||
*
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Tbl_Device_User> getTbl_Device_UsersListByDeviceId(Integer deviceId) {
|
||||
List<Tbl_Device_User> deviceUserList = null;
|
||||
try {
|
||||
String key = redisKeyHelperI.getListTbl_Device_UserKeyByDeviceId(deviceId);
|
||||
String redisString = redisHelperI.getRedis(key);
|
||||
if (StringUtils.isNotBlank(redisString)) {
|
||||
deviceUserList = (List<Tbl_Device_User>) IfishUtil.JsonToList(redisString, Tbl_Device_User.class);
|
||||
} else {
|
||||
deviceUserList = tbl_Device_Mapper.getDeviceUsersByUserId(deviceId);
|
||||
if (deviceUserList != null && deviceUserList.size() > 0) {
|
||||
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(deviceUserList));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return deviceUserList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据mac地址查找设备
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Tbl_Device getDeviceByMacAddress(String macAddress) {
|
||||
Tbl_Device device = null;
|
||||
try {
|
||||
String key = RedisKey.Device_key + macAddress;
|
||||
String key = redisKeyHelperI.getTbl_DeviceRedisKeyByMacAddress(macAddress);
|
||||
String redisString = redisHelperI.getRedis(key);
|
||||
if (StringUtils.isNotBlank(redisString)) {
|
||||
device = (Tbl_Device) IfishUtil.JsonToBean(redisString, Tbl_Device.class);
|
||||
|
|
@ -146,4 +244,47 @@ public class DeviceHelper implements DeviceHelperI {
|
|||
return device;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备ID获取设备统计信息
|
||||
*
|
||||
* @param deviceId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Tbl_Device_Statistics getDeviceStatisticsByDeviceId(Integer deviceId) throws Exception {
|
||||
Tbl_Device_Statistics device = null;
|
||||
String key = redisKeyHelperI.getTbl_Device_StatisticsRedisKeyByDeviceId(deviceId);
|
||||
String redisString = redisHelperI.getRedis(key);
|
||||
if (StringUtils.isNotBlank(redisString)) {
|
||||
device = (Tbl_Device_Statistics) IfishUtil.JsonToBean(redisString, Tbl_Device_Statistics.class);
|
||||
} else {
|
||||
device = tbl_Device_Mapper.getDevStatisticsByDeviceId(deviceId);
|
||||
if (device != null && device.getDeviceId() > 0) {
|
||||
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(device));
|
||||
}
|
||||
}
|
||||
return device;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备ID获取设备统计信息
|
||||
*
|
||||
* @param deviceId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Tbl_Device_Statistics getDeviceStatisticsByMacAddress(String macAddress) throws Exception {
|
||||
Tbl_Device_Statistics device = null;
|
||||
String key = redisKeyHelperI.getTbl_Device_StatisticsRedisKeyByMacAddress(macAddress);
|
||||
String redisString = redisHelperI.getRedis(key);
|
||||
if (StringUtils.isNotBlank(redisString)) {
|
||||
device = (Tbl_Device_Statistics) IfishUtil.JsonToBean(redisString, Tbl_Device_Statistics.class);
|
||||
} else {
|
||||
device = tbl_Device_Mapper.getDevStatisticsByMacAddress(macAddress);
|
||||
if (device != null && device.getDeviceId() > 0) {
|
||||
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(device));
|
||||
}
|
||||
}
|
||||
return device;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ package com.ifish.helper;
|
|||
|
||||
import com.ifish.bean.LoginRecord;
|
||||
import com.ifish.bean.Tbl_Device;
|
||||
import com.ifish.bean.Tbl_Device_Statistics;
|
||||
import com.ifish.bean.Tbl_Device_User;
|
||||
import com.ifish.bean.Tbl_Factory_List;
|
||||
import com.ifish.bean.Tbl_HardWare_Type;
|
||||
|
|
@ -19,23 +20,52 @@ import java.util.List;
|
|||
*/
|
||||
public interface DeviceHelperI {
|
||||
|
||||
/**
|
||||
* 修改设备信息
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
*/
|
||||
public Tbl_Device update(Tbl_Device device);
|
||||
|
||||
public Tbl_Device update(DeviceLoginContextLength24 model);
|
||||
/**
|
||||
* 登陆时修改设备的厂家等信息
|
||||
*
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
public Tbl_Device updateDeviceWhenLogin(DeviceLoginContextLength24 model);
|
||||
|
||||
/**
|
||||
* 设置温度是否报警
|
||||
*
|
||||
* @param macAddress
|
||||
* @param onOff
|
||||
*/
|
||||
public void updateWarnOnoff(String macAddress, String onOff);
|
||||
|
||||
public Tbl_Device getUniqueByProperty(String property, Object value);
|
||||
/**
|
||||
* 根据mac地址查找设备
|
||||
*
|
||||
* @param property
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
public Tbl_Device getDeviceByMacAddress(String macAddress);
|
||||
|
||||
public List<Tbl_Device> getByProperty(String property, Object value);
|
||||
/**
|
||||
* 修改设备统计信息
|
||||
*
|
||||
* @param device_Statistics
|
||||
* @return
|
||||
*/
|
||||
public Tbl_Device_Statistics updateDevice_Statistics(Tbl_Device_Statistics device_Statistics);
|
||||
|
||||
public Tbl_Device_User getUniqueByProperty(String macAddress);
|
||||
|
||||
public List<Tbl_Device_User> getListByProperty(Integer deviceId);
|
||||
|
||||
public LoginRecord save(LoginRecord loginRecord);
|
||||
|
||||
public Tbl_Factory_List getFactoryListById(String factoryCode);
|
||||
|
||||
public Tbl_HardWare_Type getHardwareTypeById(String typeCode);
|
||||
/**
|
||||
* 根据设备ID获取此设备所有的用户关系列表
|
||||
*
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
public List<Tbl_Device_User> getTbl_Device_UsersListByDeviceId(Integer deviceId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,85 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.ifish.helper;
|
||||
|
||||
import cn.jpush.api.JPushClient;
|
||||
import cn.jpush.api.push.PushResult;
|
||||
import cn.jpush.api.push.model.Platform;
|
||||
import cn.jpush.api.push.model.PushPayload;
|
||||
import cn.jpush.api.push.model.audience.Audience;
|
||||
import cn.jpush.api.push.model.notification.Notification;
|
||||
import java.util.Map;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@Component
|
||||
public class JpushHelper implements JpushHelperI {
|
||||
|
||||
private static JPushClient jPushClient = null;
|
||||
//正式
|
||||
// private static final String masterSecret = "60162c8cf195ce9f4dc76629";
|
||||
// private static final String appKey = "d970d5e193cb2a0bbe41653c";
|
||||
//测试
|
||||
private final static String masterSecret = "a7d41825e75082b13675c326";
|
||||
private final static String appKey = "d147124018074eb970474e48";
|
||||
|
||||
static {
|
||||
jPushClient = new JPushClient(masterSecret, appKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 向安卓手机推送一条信息
|
||||
*
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean pushMessageByAndroid(String message, String registrationID, Map map) {
|
||||
try {
|
||||
PushPayload payload = PushPayload.newBuilder()
|
||||
.setPlatform(Platform.android())
|
||||
.setAudience(Audience.registrationId(registrationID))
|
||||
.setNotification(Notification.android("爱鱼奇提示", message, map))
|
||||
.build();
|
||||
|
||||
PushResult result = jPushClient.sendPush(payload);
|
||||
if (result.msg_id > 0 && result.isResultOK()) {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 向苹果手机推送一条信息
|
||||
*
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean pushMessageByIOS(String message, String registrationID, Map map) {
|
||||
try {
|
||||
PushPayload payload = PushPayload.newBuilder()
|
||||
.setPlatform(Platform.ios())
|
||||
.setAudience(Audience.registrationId(registrationID))
|
||||
.setNotification(Notification.android("爱鱼奇提示", message, map))
|
||||
.build();
|
||||
|
||||
PushResult result = jPushClient.sendPush(payload);
|
||||
if (result.msg_id > 0 && result.isResultOK()) {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.ifish.helper;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
public interface JpushHelperI {
|
||||
|
||||
/**
|
||||
* 向安卓手机推送一条信息
|
||||
*
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
boolean pushMessageByAndroid(String message, String registrationID, Map map);
|
||||
|
||||
/**
|
||||
* 向苹果手机推送一条信息
|
||||
*
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
boolean pushMessageByIOS(String message, String registrationID, Map map);
|
||||
}
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.ifish.helper;
|
||||
|
||||
import com.ifish.bean.Tbl_Device;
|
||||
import com.ifish.bean.Tbl_Device_Statistics;
|
||||
import com.ifish.bean.Tbl_Device_User;
|
||||
import com.ifish.bean.Tbl_User;
|
||||
import com.ifish.util.RedisKey;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@Component
|
||||
public class RedisKeyHelper implements RedisKeyHelperI {
|
||||
|
||||
@Autowired
|
||||
private RedisHelperI redisHelperI;
|
||||
|
||||
/**
|
||||
* 根据userId获取Tbl_User用户信息的Redis缓存key键值
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_UserRedisKeyByUserId(Integer userId) {
|
||||
return RedisKey.USER_ID_KEY + userId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据mac地址获取Tbl_Device的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getTbl_DeviceRedisKeyByMacAddress(String macAddress) {
|
||||
return RedisKey.DEVICE_KEY_MACADDRESS + macAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据Id获取Tbl_Device的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getTbl_DeviceRedisKeyByDeviceId(Integer deviceId) {
|
||||
return RedisKey.DEVICE_KEY_DEVICEID + deviceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备ID和用户ID获取Tbl_Device_User的redis缓存key键值
|
||||
*
|
||||
* @param userId
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getTbl_Device_UserRedisKeyByDeviceIdAndUserId(Integer userId, Integer deviceId) {
|
||||
return RedisKey.DEVICE_USER_DEVICEID_AND_USERID + "u_" + userId + "_d_" + deviceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备ID获取Tbl_Device_User(列表)的redis缓存key键值
|
||||
*
|
||||
* @param userId
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getListTbl_Device_UserKeyByDeviceId(Integer deviceId) {
|
||||
return RedisKey.DEVICE_USER_LIST_DEVICEID + deviceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据mac地址获取Tbl_Device_Statistics的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getTbl_Device_StatisticsRedisKeyByMacAddress(String macAddress) {
|
||||
return RedisKey.DEVICE_STATISTICS_MACADDRESS + macAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据Id获取Tbl_Device_Statistics的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getTbl_Device_StatisticsRedisKeyByDeviceId(Integer deviceId) {
|
||||
return RedisKey.DEVICE_STATISTICS_DEVICEID + deviceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据typeCode获取Tbl_HardWare_Type的redis缓存key键值
|
||||
*
|
||||
* @param typeCode
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_HardWare_TypeRedisKeyByTypeCode(String typeCode) {
|
||||
return RedisKey.HARD_WARE_TYPE + typeCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除redis中某个设备详情Tbl_Device的缓存
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void deleteRedisByTbl_Device(Tbl_Device device) {
|
||||
if (device.getDeviceId() > 0) {
|
||||
redisHelperI.deleteRedis(getTbl_DeviceRedisKeyByDeviceId(device.getDeviceId()));
|
||||
}
|
||||
if (StringUtils.isNotBlank(device.getMacAddress())) {
|
||||
redisHelperI.deleteRedis(getTbl_DeviceRedisKeyByMacAddress(device.getMacAddress()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除redis中某个设备统计信息Tbl_Device_Statistics的缓存
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void deleteRedisByTbl_Device_Statistics(Tbl_Device_Statistics device) {
|
||||
if (device.getDeviceId() > 0) {
|
||||
redisHelperI.deleteRedis(getTbl_DeviceRedisKeyByDeviceId(device.getDeviceId()));
|
||||
}
|
||||
if (StringUtils.isNotBlank(device.getMacAddress())) {
|
||||
redisHelperI.deleteRedis(getTbl_DeviceRedisKeyByMacAddress(device.getMacAddress()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除redis中某个设备和用户关系Tbl_Device_User的缓存
|
||||
*
|
||||
* @param tbl_Device_User
|
||||
*/
|
||||
@Override
|
||||
public void deleteRedisByTbl_Device_User(Tbl_Device_User tbl_Device_User) {
|
||||
if (tbl_Device_User.getDeviceId() > 0 && tbl_Device_User.getUserId() > 0) {
|
||||
redisHelperI.deleteRedis(getTbl_Device_UserRedisKeyByDeviceIdAndUserId(tbl_Device_User.getUserId(), tbl_Device_User.getDeviceId()));
|
||||
}
|
||||
if (tbl_Device_User.getDeviceId() > 0) {
|
||||
redisHelperI.deleteRedis(getListTbl_Device_UserKeyByDeviceId(tbl_Device_User.getDeviceId()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除redis中某个用户Tbl_User的缓存
|
||||
*
|
||||
* @param tbl_User
|
||||
*/
|
||||
@Override
|
||||
public void deleteRedisByTbl_User(Tbl_User tbl_User) {
|
||||
if (tbl_User.getUserId() > 0) {
|
||||
redisHelperI.deleteRedis(getTbl_UserRedisKeyByUserId(tbl_User.getUserId()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.ifish.helper;
|
||||
|
||||
import com.ifish.bean.Tbl_Device;
|
||||
import com.ifish.bean.Tbl_Device_Statistics;
|
||||
import com.ifish.bean.Tbl_Device_User;
|
||||
import com.ifish.bean.Tbl_User;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
public interface RedisKeyHelperI {
|
||||
|
||||
/**
|
||||
* 根据userId获取Tbl_User用户信息的Redis缓存key键值
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_UserRedisKeyByUserId(Integer userId);
|
||||
|
||||
/**
|
||||
* 根据mac地址获取Tbl_Device的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_DeviceRedisKeyByMacAddress(String macAddress);
|
||||
|
||||
/**
|
||||
* 根据Id获取Tbl_Device的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_DeviceRedisKeyByDeviceId(Integer deviceId);
|
||||
|
||||
/**
|
||||
* 根据mac地址获取Tbl_Device_Statistics的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_Device_StatisticsRedisKeyByMacAddress(String macAddress);
|
||||
|
||||
/**
|
||||
* 根据Id获取Tbl_Device_Statistics的redis缓存key键值
|
||||
*
|
||||
* @param macAddress
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_Device_StatisticsRedisKeyByDeviceId(Integer deviceId);
|
||||
|
||||
/**
|
||||
* 根据设备ID和用户ID获取Tbl_Device_User的redis缓存key键值
|
||||
*
|
||||
* @param userId
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_Device_UserRedisKeyByDeviceIdAndUserId(Integer userId, Integer deviceId);
|
||||
|
||||
/**
|
||||
* 根据设备ID获取Tbl_Device_User(列表)的redis缓存key键值
|
||||
*
|
||||
* @param userId
|
||||
* @param deviceId
|
||||
* @return
|
||||
*/
|
||||
public String getListTbl_Device_UserKeyByDeviceId(Integer deviceId);
|
||||
|
||||
/**
|
||||
* 根据typeCode获取Tbl_HardWare_Type的redis缓存key键值
|
||||
*
|
||||
* @param typeCode
|
||||
* @return
|
||||
*/
|
||||
public String getTbl_HardWare_TypeRedisKeyByTypeCode(String typeCode);
|
||||
|
||||
/**
|
||||
* 删除redis中某个设备详情的缓存
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
*/
|
||||
public void deleteRedisByTbl_Device(Tbl_Device device);
|
||||
|
||||
/**
|
||||
* 删除redis中某个设备统计信息Tbl_Device_Statistics的缓存
|
||||
*
|
||||
* @param device
|
||||
* @return
|
||||
*/
|
||||
public void deleteRedisByTbl_Device_Statistics(Tbl_Device_Statistics device);
|
||||
|
||||
/**
|
||||
* 删除redis中某个设备和用户关系Tbl_Device_User的缓存
|
||||
*
|
||||
* @param tbl_Device_User
|
||||
*/
|
||||
public void deleteRedisByTbl_Device_User(Tbl_Device_User tbl_Device_User);
|
||||
|
||||
/**
|
||||
* 删除redis中某个用户Tbl_User的缓存
|
||||
*
|
||||
* @param tbl_User
|
||||
*/
|
||||
public void deleteRedisByTbl_User(Tbl_User tbl_User);
|
||||
}
|
||||
|
|
@ -10,7 +10,6 @@ import com.ifish.bean.Tbl_User;
|
|||
import com.ifish.mapper.Tbl_Push_List_Mapper;
|
||||
import com.ifish.mapper.Tbl_User_Mapper;
|
||||
import com.ifish.util.IfishUtil;
|
||||
import com.ifish.util.RedisKey;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -31,11 +30,14 @@ public class UserHelper implements UserHelperI {
|
|||
@Autowired
|
||||
private Tbl_Push_List_Mapper tbl_Push_List_Mapper;
|
||||
|
||||
@Autowired
|
||||
private RedisKeyHelperI redisKeyHelperI;
|
||||
|
||||
@Override
|
||||
public Tbl_User findById(Integer userId) {
|
||||
Tbl_User tmpUser = null;
|
||||
try {
|
||||
String userKey = RedisKey.User_Key + userId;
|
||||
String userKey = redisKeyHelperI.getTbl_UserRedisKeyByUserId(userId);
|
||||
String userString = redisHelperI.getRedis(userKey);
|
||||
//1.从数据库或缓存中读取用户对象
|
||||
if (StringUtils.isNotBlank(userString)) {
|
||||
|
|
@ -69,7 +71,7 @@ public class UserHelper implements UserHelperI {
|
|||
* @param user
|
||||
*/
|
||||
private void saveUserToRedis(Tbl_User user) throws Exception {
|
||||
String key = RedisKey.User_Key + user.getUserId();
|
||||
String key = redisKeyHelperI.getTbl_UserRedisKeyByUserId(user.getUserId());
|
||||
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(user));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,6 +120,16 @@ public interface Tbl_Device_Mapper {
|
|||
+ "upgrade_time,authorize_time,create_code,MCU_count,module_count,router_count,server_count,server_try_count,software_version,hardware_type,factory_code,brand_code FROM tbl_device_statistics WHERE device_id=#{deviceid}")
|
||||
Tbl_Device_Statistics getDevStatisticsByDeviceId(@Param("deviceid") Integer deviceid);
|
||||
|
||||
/**
|
||||
* 根据设备ID查询设备统计信息
|
||||
*
|
||||
* @param deviceid
|
||||
* @return
|
||||
*/
|
||||
@Select("SELECT id,device_id,mac_address,login_count,login_time,first_activate,create_time,is_charge,sdk_version,sdk_time,create_date,is_upgrade,upgrade_version,"
|
||||
+ "upgrade_time,authorize_time,create_code,MCU_count,module_count,router_count,server_count,server_try_count,software_version,hardware_type,factory_code,brand_code FROM tbl_device_statistics WHERE mac_address=#{mac}")
|
||||
Tbl_Device_Statistics getDevStatisticsByMacAddress(@Param("mac") String macAddress);
|
||||
|
||||
/**
|
||||
* 插入一条设备统计信息
|
||||
*
|
||||
|
|
@ -168,7 +178,6 @@ public interface Tbl_Device_Mapper {
|
|||
@Delete("DELETE from tbl_device where id = #{id}")
|
||||
int deleteDeviceById(@Param("id") Integer id);
|
||||
|
||||
|
||||
/**
|
||||
* 修改设备信息
|
||||
*
|
||||
|
|
@ -186,5 +195,5 @@ public interface Tbl_Device_Mapper {
|
|||
*/
|
||||
@Update("UPDATE tbl_activa_code set is_used='1' WHERE active_code = #{code}")
|
||||
Integer updateTblActivaCodeIsUse(@Param("code") String activa_Code);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.ifish.push;
|
||||
|
||||
import cn.jiguang.common.ClientConfig;
|
||||
import cn.jpush.api.JPushClient;
|
||||
import cn.jpush.api.push.model.PushPayload;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
public class JiGuangPush {
|
||||
|
||||
}
|
||||
|
|
@ -168,7 +168,7 @@ public class ServerDecode implements ProtocolDecoder {
|
|||
model.setDest(dest);
|
||||
model.setRemote_len(buf.get());
|
||||
//登陆信息
|
||||
model.setVendor(buf.get());
|
||||
model.setfactoryCode(buf.get());
|
||||
model.setHardware_type(buf.get());
|
||||
model.setVersion(buf.get());
|
||||
byte[] login_ip = model.getLogin_ip();
|
||||
|
|
|
|||
|
|
@ -13,11 +13,13 @@ import com.ifish.bean.Tbl_Push_List;
|
|||
import com.ifish.bean.Tbl_User;
|
||||
import com.ifish.enums.PushTypeEnum;
|
||||
import com.ifish.helper.DeviceHelperI;
|
||||
import com.ifish.helper.JpushHelperI;
|
||||
import com.ifish.helper.UserHelperI;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.mina.core.session.IoSession;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobDataMap;
|
||||
|
|
@ -40,6 +42,8 @@ public class ExecuteJob implements Job {
|
|||
private UserHelperI userHelperI;
|
||||
@Autowired
|
||||
private DeviceHelperI deviceHelperI;
|
||||
@Autowired
|
||||
private JpushHelperI jpushHelperI;
|
||||
|
||||
public void execute(JobExecutionContext context) throws JobExecutionException {
|
||||
//任务传递的参数
|
||||
|
|
@ -53,7 +57,7 @@ public class ExecuteJob implements Job {
|
|||
SomeServer.sessions_cz.remove(macAddress);
|
||||
}
|
||||
//设备是否存在
|
||||
Tbl_Device device = deviceHelperI.getUniqueByProperty("macAddress", macAddress);
|
||||
Tbl_Device device = deviceHelperI.getDeviceByMacAddress(macAddress);
|
||||
Tbl_Device_Statistics device_Statistics = null;
|
||||
if (device != null) {
|
||||
//记录次数
|
||||
|
|
@ -62,7 +66,7 @@ public class ExecuteJob implements Job {
|
|||
Integer number3 = device_Statistics.getRouterCount();
|
||||
Integer number4 = device_Statistics.getServerCount();
|
||||
Integer number5 = device_Statistics.getServerTryCount();
|
||||
List<Tbl_Device_User> list = deviceHelperI.getListByProperty(device.getDeviceId());
|
||||
List<Tbl_Device_User> list = deviceHelperI.getTbl_Device_UsersListByDeviceId(device.getDeviceId());
|
||||
//是否被绑定
|
||||
if (list != null) {
|
||||
for (Tbl_Device_User deviceUser : list) {
|
||||
|
|
@ -70,42 +74,44 @@ public class ExecuteJob implements Job {
|
|||
String showName = deviceUser.getShowName();
|
||||
String title = PushTypeEnum.offline_push.getValue();
|
||||
String msg = "【" + title + "】你的水族箱“" + showName + "”于" + timestamp + "离线,请及时查看!";
|
||||
//发送云信消息
|
||||
boolean neteaseBln = false;
|
||||
// Map<String, String> neteaseMap = neteaseIM.sendMsg("ifish", userId.toString(), msg);
|
||||
// if (neteaseMap != null) {
|
||||
// neteaseBln = neteaseMap.get("code").equals(NeteaseEnum.status200.getKey());
|
||||
// }
|
||||
//IOS极光推送
|
||||
boolean jpushIosBln = false;
|
||||
Tbl_User user = userHelperI.findById(userId);
|
||||
//推送记录
|
||||
Tbl_Push_List pushList = new Tbl_Push_List();
|
||||
Integer deviceId = deviceUser.getDeviceId();
|
||||
Tbl_User user = userHelperI.findById(userId);
|
||||
if (user != null) {
|
||||
String loginType = user.getLoginType();
|
||||
if (loginType != null) {
|
||||
String registrationID = user.getJiguangUserid();
|
||||
if (StringUtils.isNotBlank(loginType) && StringUtils.isNotBlank(registrationID)) {
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("device_id", deviceId.toString());
|
||||
map.put("device_name", showName);
|
||||
map.put("timestamp", timestamp);
|
||||
map.put("msg_type", PushTypeEnum.offline_push.getKey());
|
||||
//推送记录
|
||||
pushList.setUserId(userId);
|
||||
pushList.setDeviceId(deviceId);
|
||||
pushList.setPhoneType(loginType.toLowerCase());
|
||||
pushList.setShowName(showName);
|
||||
pushList.setPushType(PushTypeEnum.offline_push.getKey());
|
||||
pushList.setJpushStatus(neteaseBln ? "1" : "0");
|
||||
pushList.setPushTitle(title);
|
||||
pushList.setPushContext(msg);
|
||||
pushList.setCreateTime(new Date());
|
||||
pushList.setMcuCount(number1);
|
||||
pushList.setModularCount(number2);
|
||||
pushList.setRouterCount(number3);
|
||||
pushList.setServerCount(number4);
|
||||
pushList.setServerTryCount(number5);
|
||||
userHelperI.save(pushList);
|
||||
//极光推送
|
||||
boolean result = false;
|
||||
if (loginType.equals("android")) {
|
||||
result = jpushHelperI.pushMessageByAndroid(msg, registrationID, map);
|
||||
} else if (loginType.equals("ios")) {
|
||||
result = jpushHelperI.pushMessageByAndroid(msg, registrationID, map);
|
||||
}
|
||||
if (result) {
|
||||
//推送记录
|
||||
pushList.setUserId(userId);
|
||||
pushList.setDeviceId(deviceId);
|
||||
pushList.setPhoneType(loginType.toLowerCase());
|
||||
pushList.setShowName(showName);
|
||||
pushList.setPushType(PushTypeEnum.offline_push.getKey());
|
||||
pushList.setJpushStatus(result ? "1" : "0");
|
||||
pushList.setPushTitle(title);
|
||||
pushList.setPushContext(msg);
|
||||
pushList.setCreateTime(new Date());
|
||||
pushList.setMcuCount(number1);
|
||||
pushList.setModularCount(number2);
|
||||
pushList.setRouterCount(number3);
|
||||
pushList.setServerCount(number4);
|
||||
pushList.setServerTryCount(number5);
|
||||
userHelperI.save(pushList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.ifish.bean.Tbl_Push_List;
|
|||
import com.ifish.bean.Tbl_User;
|
||||
import com.ifish.enums.PushTypeEnum;
|
||||
import com.ifish.helper.DeviceHelperI;
|
||||
import com.ifish.helper.JpushHelperI;
|
||||
import com.ifish.helper.UserHelperI;
|
||||
import com.ifish.socket.model.JobGroup;
|
||||
import com.ifish.socket.model.OrderModel;
|
||||
|
|
@ -33,6 +34,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.mina.core.session.IoSession;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -43,7 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
* @author Administrator
|
||||
*/
|
||||
public class SomeServer {
|
||||
|
||||
|
||||
@Autowired
|
||||
private UserHelperI userHelperI;
|
||||
@Autowired
|
||||
|
|
@ -53,9 +55,12 @@ public class SomeServer {
|
|||
// @Autowired
|
||||
// private NeteaseIM neteaseIM;
|
||||
|
||||
@Autowired
|
||||
private JpushHelperI jpushHelperI;
|
||||
|
||||
//是否回复心跳
|
||||
public static boolean isReplay = true;
|
||||
|
||||
|
||||
private static Logger log = LoggerFactory.getLogger(SomeServer.class);
|
||||
public static ConcurrentHashMap<String, String> remoteAddress = new ConcurrentHashMap<String, String>();
|
||||
public static ConcurrentHashMap<String, IoSession> sessions_cz = new ConcurrentHashMap<String, IoSession>();
|
||||
|
|
@ -80,6 +85,7 @@ public class SomeServer {
|
|||
}
|
||||
String strSrc = ByteUtil.bytesToHexString(srcByte);
|
||||
//心跳
|
||||
|
||||
if (length >= 28) {
|
||||
sendToApp(session, strSrc, message);
|
||||
} else {
|
||||
|
|
@ -133,19 +139,7 @@ public class SomeServer {
|
|||
scheduleJob.deleteJob(jobGroup);
|
||||
try {
|
||||
//更新设备信息
|
||||
deviceHelperI.update(receive);
|
||||
// if(device==null){
|
||||
// String HexDump = ByteUtil.toHex(receive.getType())+ByteUtil.toHex(receive.getCheck_code())+ByteUtil.bytesToHexString(receive.getSrc())+ByteUtil.bytesToHexString(destBytes)+ByteUtil.toHex(receive.getRemote_len())+ByteUtil.toHex(receive.getVendor())+ByteUtil.toHex(receive.getHardware_type())+ByteUtil.toHex(receive.getVersion())+ByteUtil.bytesToHexString(receive.getLogin_ip())+ByteUtil.bytesToHexString(receive.getCrc16_code());
|
||||
// log.error("HexDump:{}",HexDump);
|
||||
// log.error("factoryCode or hardwareType not exist:macAddress:{},factoryCode:{},hardwareType:{}",strSrc,ByteUtil.toHex(receive.getVendor()),ByteUtil.toHex(receive.getHardware_type()));
|
||||
// }
|
||||
// else{
|
||||
//记录登录时间
|
||||
LoginRecord loginRecord = new LoginRecord();
|
||||
loginRecord.setMacAddress(strSrc);
|
||||
loginRecord.setLoginTime(new Date());
|
||||
deviceHelperI.save(loginRecord);
|
||||
// }
|
||||
deviceHelperI.updateDeviceWhenLogin(receive);
|
||||
} catch (Exception e) {
|
||||
log.warn("save device login error:macAddress:{},error msg:{}", strSrc, e.toString());
|
||||
}
|
||||
|
|
@ -188,7 +182,7 @@ public class SomeServer {
|
|||
String strSrc = ByteUtil.bytesToHexString(macBytes);
|
||||
try {
|
||||
//查找设备
|
||||
Tbl_Device device = deviceHelperI.getUniqueByProperty("macAddress", strSrc);
|
||||
Tbl_Device device = deviceHelperI.getDeviceByMacAddress(strSrc);
|
||||
Tbl_Device_Statistics device_Statistics = null;
|
||||
if (device != null) {
|
||||
//是否升级
|
||||
|
|
@ -215,7 +209,7 @@ public class SomeServer {
|
|||
String strSrc = ByteUtil.bytesToHexString(macBytes);
|
||||
try {
|
||||
//查找设备
|
||||
Tbl_Device device = deviceHelperI.getUniqueByProperty("macAddress", strSrc);
|
||||
Tbl_Device device = deviceHelperI.getDeviceByMacAddress(strSrc);
|
||||
Tbl_Device_Statistics device_Statistics = null;
|
||||
if (device != null) {
|
||||
//是否升级
|
||||
|
|
@ -297,8 +291,7 @@ public class SomeServer {
|
|||
*/
|
||||
public void pushNotifcation(String strSrc, String title, String contont) {
|
||||
try {
|
||||
//Device device = deviceService.getUniqueByProperty("macAddress", strSrc);
|
||||
Tbl_Device device = deviceHelperI.getUniqueByProperty("macAddress", strSrc);
|
||||
Tbl_Device device = deviceHelperI.getDeviceByMacAddress(strSrc);
|
||||
Tbl_Device_Statistics device_Statistics = null;
|
||||
if (device != null) {
|
||||
Integer deviceId = device.getDeviceId();
|
||||
|
|
@ -306,7 +299,7 @@ public class SomeServer {
|
|||
String onOff = device.getOnOff();
|
||||
if (onOff != null && onOff.equals("1")) {
|
||||
//绑定设备的用户
|
||||
List<Tbl_Device_User> list = deviceHelperI.getListByProperty(device.getDeviceId());
|
||||
List<Tbl_Device_User> list = deviceHelperI.getTbl_Device_UsersListByDeviceId(device.getDeviceId());
|
||||
for (Tbl_Device_User deviceUser : list) {
|
||||
Integer userId = deviceUser.getUserId();
|
||||
String showName = deviceUser.getShowName();
|
||||
|
|
@ -314,18 +307,11 @@ public class SomeServer {
|
|||
String msg = "【" + title + "】你的水族箱“" + showName + "”在" + timestamp + contont;
|
||||
Tbl_User user = userHelperI.findById(userId);
|
||||
if (user != null) {
|
||||
//云信推送
|
||||
boolean neteaseBln = false;
|
||||
//极光推送
|
||||
boolean jpushIosBln = false;
|
||||
boolean jpushAndroidBln = false;
|
||||
//发送云信消息
|
||||
// Map<String, String> neteaseMap = neteaseIM.sendMsg("ifish", userId.toString(), msg);
|
||||
// if (neteaseMap != null) {
|
||||
// neteaseBln = neteaseMap.get("code").equals(NeteaseEnum.status200.getKey());
|
||||
// }
|
||||
boolean result = false;
|
||||
String loginType = user.getLoginType();
|
||||
if (loginType != null) {
|
||||
String registrationID = user.getJiguangUserid();
|
||||
if (StringUtils.isNotBlank(loginType) && StringUtils.isNotBlank(registrationID)) {
|
||||
//推送记录
|
||||
Tbl_Push_List pushList = new Tbl_Push_List();
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
|
|
@ -333,8 +319,14 @@ public class SomeServer {
|
|||
map.put("device_name", showName);
|
||||
map.put("timestamp", timestamp);
|
||||
map.put("msg_type", PushTypeEnum.wendu_warn.getKey());
|
||||
|
||||
if (loginType.equals("android")) {
|
||||
result = jpushHelperI.pushMessageByAndroid(msg, registrationID, map);
|
||||
} else if (loginType.equals("ios")) {
|
||||
result = jpushHelperI.pushMessageByAndroid(msg, registrationID, map);
|
||||
}
|
||||
//记录推送
|
||||
if (jpushIosBln || jpushAndroidBln || neteaseBln) {
|
||||
if (result) {
|
||||
pushList.setUserId(userId);
|
||||
pushList.setDeviceId(deviceId);
|
||||
pushList.setPhoneType(loginType.toLowerCase());
|
||||
|
|
@ -342,7 +334,7 @@ public class SomeServer {
|
|||
pushList.setPushType(PushTypeEnum.wendu_warn.getKey());
|
||||
pushList.setPushTitle(title);
|
||||
pushList.setPushContext(msg);
|
||||
pushList.setJpushStatus(neteaseBln ? "1" : "0");
|
||||
pushList.setJpushStatus(result ? "1" : "0");
|
||||
pushList.setCreateTime(new Date());
|
||||
pushList.setMcuCount(device_Statistics.getMcuCount());
|
||||
pushList.setModularCount(device_Statistics.getModuleCount());
|
||||
|
|
@ -354,7 +346,7 @@ public class SomeServer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ import java.io.Serializable;
|
|||
public class DeviceLoginContextLength24 extends HeadModel implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 5329299292101065390L;
|
||||
//厂商
|
||||
private byte vendor;
|
||||
//鱼缸厂商
|
||||
private byte factoryCode;
|
||||
//硬件型号
|
||||
private byte hardware_type;
|
||||
//版本
|
||||
|
|
@ -26,12 +26,12 @@ public class DeviceLoginContextLength24 extends HeadModel implements Serializabl
|
|||
//登陆IP
|
||||
private byte[] login_ip = new byte[4];
|
||||
|
||||
public byte getVendor() {
|
||||
return vendor;
|
||||
public byte getfactoryCode() {
|
||||
return factoryCode;
|
||||
}
|
||||
|
||||
public void setVendor(byte vendor) {
|
||||
this.vendor = vendor;
|
||||
public void setfactoryCode(byte factoryCode) {
|
||||
this.factoryCode = factoryCode;
|
||||
}
|
||||
|
||||
public byte getHardware_type() {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,6 @@ public class ServiceBean {
|
|||
private static boolean push = false;
|
||||
|
||||
public ServiceBean() {
|
||||
Endpoint.publish("http://localhost:9001/Service/webService", new MyService());
|
||||
Endpoint.publish("http://localhost:9002/Service/webService", new MyService());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,67 +12,43 @@ package com.ifish.util;
|
|||
public class RedisKey {
|
||||
|
||||
/**
|
||||
* 用户缓存前缀
|
||||
* 用户缓存前缀,以id进行存储
|
||||
*/
|
||||
public static final String User_Key = "userE:";
|
||||
public static final String USER_ID_KEY = "userE:id_";
|
||||
|
||||
/**
|
||||
* 商家信息缓存前缀
|
||||
* 设备用户关系缓存前缀,以设备ID和用户ID进行存储
|
||||
*/
|
||||
public static final String ShopsInfo_Key = "shopsInfoE:";
|
||||
public static final String DEVICE_USER_DEVICEID_AND_USERID = "deviceUserE:";
|
||||
|
||||
/**
|
||||
* 用户绑定设备缓存前缀
|
||||
* 设备用户关系缓存前缀(列表),以设备ID进行存储
|
||||
*/
|
||||
public static final String DeviceUser_Key = "deviceUserE:";
|
||||
public static final String DEVICE_USER_LIST_DEVICEID = "deviceUserlistE:id_";
|
||||
|
||||
/**
|
||||
* 设备绑定摄像头缓存前缀
|
||||
* 设备详情缓存前缀,以macAddress进行存储
|
||||
*/
|
||||
public static final String DeviceCamera_key = "deviceCameraE:";
|
||||
public static final String DEVICE_KEY_MACADDRESS = "deviceE:mac_";
|
||||
|
||||
/**
|
||||
* 设备详情缓存前缀
|
||||
* 设备详情缓存前缀,以deviceId进行存储
|
||||
*/
|
||||
public static final String Device_key = "deviceE:";
|
||||
public static final String DEVICE_KEY_DEVICEID = "deviceE:id_";
|
||||
|
||||
/**
|
||||
* 设备统计信息表缓存前缀,以deviceId为前缀
|
||||
*/
|
||||
public static final String DEVICE_STATISTICS_DEVICEID = "devicestatiE:id_";
|
||||
|
||||
/**
|
||||
* 设备统计信息表缓存前缀,以mac地址为前缀
|
||||
*/
|
||||
public static final String DEVICE_STATISTICS_MACADDRESS = "devicestatiE:mac_";
|
||||
|
||||
/**
|
||||
* 设备类型缓存前缀
|
||||
*/
|
||||
public static final String HardWareType_key = "hardwaretypeE:";
|
||||
public static final String HARD_WARE_TYPE = "hardwaretypeE:";
|
||||
|
||||
/**
|
||||
* 厂家列表缓存前缀
|
||||
*/
|
||||
public static final String VenderList_key = "venderlistE:";
|
||||
|
||||
/**
|
||||
* 用户和摄像头的绑定关系存前缀
|
||||
*/
|
||||
public static final String CameraUser_key = "cameraUserE:";
|
||||
|
||||
/**
|
||||
* 摄像头详情缓存前缀
|
||||
*/
|
||||
public static final String Camera_key = "cameraE:";
|
||||
|
||||
/**
|
||||
* 设备统计信息表缓存前缀
|
||||
*/
|
||||
public static final String DeviceStatistic_key = "deviceStaticticsE:";
|
||||
|
||||
/**
|
||||
* 直播间详情表缓存前缀
|
||||
*/
|
||||
public static final String LiveRoom_key = "liveroomE:";
|
||||
|
||||
/**
|
||||
* 直播间数量缓存前缀
|
||||
*/
|
||||
public static final String LIVEROOM_COUNT_KEY = "liveroomcountE:";
|
||||
|
||||
/**
|
||||
* 推送消息缓存前缀
|
||||
*/
|
||||
public static final String PUSHLIST_KEY = "pushlistE:";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@ check_style=GIF,PNG,BMP,JPG,JPEG
|
|||
#\u662f\u5426\u5f00\u53d1\u6a21\u5f0f\uff0cfalse\u5219\u4ee3\u8868\u8981\u53d1\u5e03\u5230\u6d4b\u8bd5\u6216\u8005\u6b63\u5f0f\u73af\u5883\uff0c\u4f1a\u8fdb\u884c\u5168\u5c40\u5934\u90e8\u9a8c\u8bc1\uff0ctrue\u4ee3\u8868\u5728\u672c\u5730\u8fdb\u884c\u4ee3\u7801\u7f16\u5199\uff0c\u4e0d\u4f1a\u8fdb\u884c\u9a8c\u8bc1
|
||||
devModel=true
|
||||
#\u672c\u5730
|
||||
#ifiship=192.168.199.129
|
||||
ifiship=192.168.2.146
|
||||
ifiship=192.168.199.129
|
||||
#ifiship=192.168.2.146
|
||||
#\u6d4b\u8bd5\u4e91
|
||||
#ifiship=139.196.24.156
|
||||
#\u6b63\u5f0f\u4e91
|
||||
#ifiship=120.55.190.56
|
||||
#\u670d\u52a1\u5668\u7aef\u53e3
|
||||
ifishport=9955
|
||||
ifishport=9956
|
||||
Loading…
Reference in New Issue