作者 钟来

模块整理

正在显示 100 个修改的文件 包含 769 行增加310 行删除

要显示太多修改。

为保证性能只显示 100 of 100+ 个文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-jar</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>lh-jar-device-analysis</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-jar-device-service</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
... ...
package com.zhonglai.luhui.mqtt.comm.agreement;
package com.zhonglai.luhui.device.analysis.comm.agreement;
import com.zhonglai.luhui.mqtt.comm.factory.BusinessAgreement;
import com.zhonglai.luhui.mqtt.comm.factory.BusinessAgreementFactory;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.factory.BusinessAgreement;
import com.zhonglai.luhui.device.analysis.comm.factory.BusinessAgreementFactory;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
... ...
package com.zhonglai.luhui.mqtt.comm.agreement;
package com.zhonglai.luhui.device.analysis.comm.agreement;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.dto.business.BusinessDto;
import com.zhonglai.luhui.mqtt.comm.factory.BusinessAgreement;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.business.BusinessDto;
import com.zhonglai.luhui.device.analysis.comm.factory.BusinessAgreement;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
... ...
package com.zhonglai.luhui.mqtt.comm.clien;
package com.zhonglai.luhui.device.analysis.comm.clien;
import com.zhonglai.luhui.mqtt.comm.dto.ApiClientRePlyDto;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.device.analysis.comm.dto.ApiClientRePlyDto;
import com.zhonglai.luhui.device.analysis.dto.Message;
/**
* 客户端链接
... ...
package com.zhonglai.luhui.mqtt.comm.clien.impl;
package com.zhonglai.luhui.device.analysis.comm.clien.impl;
import com.zhonglai.luhui.mqtt.comm.clien.ClienConnection;
import com.zhonglai.luhui.mqtt.comm.dto.ApiClientRePlyDto;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.mqtt.dto.MessageCode;
import com.zhonglai.luhui.mqtt.dto.MessageCodeType;
import com.zhonglai.luhui.device.analysis.comm.clien.ClienConnection;
import com.zhonglai.luhui.device.analysis.comm.dto.ApiClientRePlyDto;
import com.zhonglai.luhui.device.analysis.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.MessageCode;
import com.zhonglai.luhui.device.analysis.dto.MessageCodeType;
public class ClienConnectionImpl implements ClienConnection {
private Message message = new Message();
... ...
package com.zhonglai.luhui.mqtt.comm.dto;
package com.zhonglai.luhui.device.analysis.comm.dto;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.Message;
/**
* 回复给前端的消息
... ...
package com.zhonglai.luhui.mqtt.comm.dto;
package com.zhonglai.luhui.device.analysis.comm.dto;
import com.zhonglai.luhui.mqtt.comm.config.SysParameter;
import lombok.Data;
@Data
... ... @@ -23,18 +22,18 @@ public class DeviceInfoDto {
private String sensorType; //设备配置
private Boolean isadd; //是否添加
public static DeviceInfoDto newDefaultDeviceInfoDto(String imei, String sensor_number, String device_model, String device_type)
{
DeviceInfoDto deviceInfoDto = new DeviceInfoDto();
deviceInfoDto.setId(imei+"_"+sensor_number);
deviceInfoDto.setDeviceId(imei);
deviceInfoDto.setSensorNumber(sensor_number);
deviceInfoDto.setDeviceModel(device_model);
deviceInfoDto.setDeviceType(device_type);
deviceInfoDto.setAlarmCode("00");
deviceInfoDto.setOnline("01");
deviceInfoDto.setDeviceServiceIp(SysParameter.service_ip);
deviceInfoDto.setIsadd(true);
return deviceInfoDto;
}
// public static DeviceInfoDto newDefaultDeviceInfoDto(String imei, String sensor_number, String device_model, String device_type)
// {
// DeviceInfoDto deviceInfoDto = new DeviceInfoDto();
// deviceInfoDto.setId(imei+"_"+sensor_number);
// deviceInfoDto.setDeviceId(imei);
// deviceInfoDto.setSensorNumber(sensor_number);
// deviceInfoDto.setDeviceModel(device_model);
// deviceInfoDto.setDeviceType(device_type);
// deviceInfoDto.setAlarmCode("00");
// deviceInfoDto.setOnline("01");
// deviceInfoDto.setDeviceServiceIp(SysParameter.service_ip);
// deviceInfoDto.setIsadd(true);
// return deviceInfoDto;
// }
}
... ...
package com.zhonglai.luhui.mqtt.comm.dto;
package com.zhonglai.luhui.device.analysis.comm.dto;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.Message;
import lombok.Data;
@Data
... ...
package com.zhonglai.luhui.mqtt.comm.dto;
package com.zhonglai.luhui.device.analysis.comm.dto;
import com.zhonglai.luhui.device.domain.IotDevice;
... ...
package com.zhonglai.luhui.mqtt.comm.dto;
package com.zhonglai.luhui.device.analysis.comm.dto;
import com.zhonglai.luhui.mqtt.comm.util.TableUtil;
import com.zhonglai.luhui.device.analysis.comm.util.TableUtil;
import java.util.Date;
... ...
package com.zhonglai.luhui.mqtt.comm.dto;
package com.zhonglai.luhui.device.analysis.comm.dto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
/**
* 回复给终端的消息
... ...
package com.zhonglai.luhui.mqtt.comm.dto.business;
package com.zhonglai.luhui.device.analysis.comm.dto.business;
public class BusinessDtoClassNew {
public static BusinessDto newBean(String payloadtype,byte[] data )
... ...
package com.zhonglai.luhui.mqtt.comm.dto.business;
package com.zhonglai.luhui.device.analysis.comm.dto.business;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import lombok.Data;
import org.apache.commons.lang3.ArrayUtils;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.business;
package com.zhonglai.luhui.device.analysis.comm.dto.business;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import lombok.Data;
import java.io.UnsupportedEncodingException;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.business;
package com.zhonglai.luhui.device.analysis.comm.dto.business;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import lombok.Data;
/**
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels;
import com.zhonglai.luhui.device.domain.IotThingsModel;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs.*;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs.*;
/**
* 物模型数据类型,及对应显示解析方案
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels;
import com.zhonglai.luhui.device.domain.IotThingsModel;
import lombok.Data;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import lombok.Data;
@Data
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import lombok.Data;
@Data
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import lombok.Data;
import java.math.BigDecimal;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.EnumItemOutput;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.EnumItemOutput;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import lombok.Data;
import java.math.BigDecimal;
... ...
package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
package com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import lombok.Data;
/**
... ...
package com.zhonglai.luhui.mqtt.comm.factory;
package com.zhonglai.luhui.device.analysis.comm.factory;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.dto.business.BusinessDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.business.BusinessDto;
/**
* mqtt业务协议
... ...
package com.zhonglai.luhui.device.analysis.comm.factory;
import com.zhonglai.luhui.device.analysis.comm.dto.MyException;
import com.zhonglai.luhui.device.analysis.comm.util.StringUtils;
import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
import java.util.Optional;
@Data
public class Topic {
private String roleid;
private String username;
private String clientid;
private String topicType;
private String messageid;
private String payloadtype;
public Topic() {
}
public Topic(String roleid, String username, String clientid, String topicType, String payloadtype) {
this.roleid = roleid;
this.username = username;
this.clientid = clientid;
this.topicType = topicType;
this.payloadtype = payloadtype;
}
public Topic(String roleid, String username, String clientid, String topicType, String messageid, String payloadtype) {
this.roleid = roleid;
this.username = username;
this.clientid = clientid;
this.topicType = topicType;
this.messageid = messageid;
this.payloadtype = payloadtype;
}
}
... ...
package com.zhonglai.luhui.mqtt.comm.util;
package com.zhonglai.luhui.device.analysis.comm.util;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
... ...
package com.zhonglai.luhui.mqtt.comm.util;
package com.zhonglai.luhui.device.analysis.comm.util;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
... ...
package com.zhonglai.luhui.mqtt.comm.util;
package com.zhonglai.luhui.device.analysis.comm.util;
import org.apache.commons.lang3.ArrayUtils;
... ...
package com.zhonglai.luhui.mqtt.comm.util;
package com.zhonglai.luhui.device.analysis.comm.util;
import org.apache.commons.lang3.time.DateFormatUtils;
... ... @@ -116,7 +116,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
}
try
{
return parseDate(str.toString(), parsePatterns);
return DateUtils.parseDate(str.toString(), parsePatterns);
}
catch (ParseException e)
{
... ...
package com.zhonglai.luhui.mqtt.comm.util;
package com.zhonglai.luhui.device.analysis.comm.util;
import org.springframework.util.AntPathMatcher;
... ... @@ -327,13 +327,13 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
*/
public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences)
{
if (isEmpty(cs) || isEmpty(searchCharSequences))
if (StringUtils.isEmpty(cs) || isEmpty(searchCharSequences))
{
return false;
}
for (CharSequence testStr : searchCharSequences)
{
if (containsIgnoreCase(cs, testStr))
if (StringUtils.containsIgnoreCase(cs, testStr))
{
return true;
}
... ...
package com.zhonglai.luhui.mqtt.comm.util.http;
package com.zhonglai.luhui.device.analysis.comm.util.http;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
... ...
package com.zhonglai.luhui.mqtt.comm.util.http;
package com.zhonglai.luhui.device.analysis.comm.util.http;
import com.zhonglai.luhui.mqtt.comm.util.Constants;
import com.zhonglai.luhui.mqtt.comm.util.StringUtils;
import com.zhonglai.luhui.device.analysis.comm.util.Constants;
import com.zhonglai.luhui.device.analysis.comm.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
... ...
package com.zhonglai.luhui.mqtt.comm.util.http;
package com.zhonglai.luhui.device.analysis.comm.util.http;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
... ...
package com.zhonglai.luhui.mqtt.dto;
package com.zhonglai.luhui.device.analysis.dto;
public enum MessageCode implements MessageCodeType{
DEFAULT_FAIL_CODE(0, "请求失败"),
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class AddPostDto extends ServerDto {
private JSONObject data;
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class AllPostDto extends ServerDto {
private JSONObject data;
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class GetDto extends ServerDto {
private JSONObject data;
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class GetReqDto extends ServerDto {
}
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class OnlineDto extends ServerDto {
private Integer state;
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
/**
* 服务器下发数据
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class PutReqDto extends ServerDto {
private Integer code;
... ...
package com.zhonglai.luhui.mqtt.dto.topic;
package com.zhonglai.luhui.device.analysis.dto.topic;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.mqtt.dto.MessageCode;
import java.util.HashMap;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
public class ReadReqDto extends ServerDto {
private Integer code;
... ...
... ... @@ -13,6 +13,7 @@
<modules>
<module>lh-jar-action</module>
<module>lh-jar-chatgpt</module>
<module>lh-jar-device-analysis</module>
<module>lh-jar-device-service</module>
<module>lh-jar-rocketmq</module>
<module>lh-jar-sys-service</module>
... ...
... ... @@ -4,6 +4,7 @@ import java.util.*;
import javax.servlet.http.HttpServletResponse;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs.*;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import com.zhonglai.luhui.sys.utils.ExcelUtil;
import com.alibaba.fastjson.JSON;
... ... @@ -12,8 +13,7 @@ import com.zhonglai.luhui.device.domain.DistributionCurrencyModel;
import com.zhonglai.luhui.device.domain.IotProduct;
import com.zhonglai.luhui.device.service.IIotProductService;
import com.zhonglai.luhui.admin.dto.IotThingsModelAddApi;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs.*;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.mqtt.service.db.mode.TerminalDataThingsModeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
... ...
... ... @@ -5,14 +5,14 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.specs.*;
import com.zhonglai.luhui.device.service.IIotProductService;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import com.zhonglai.luhui.sys.utils.ExcelUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.admin.dto.IotThingsModelAddApi;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs.*;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
... ...
... ... @@ -6,9 +6,6 @@ import cn.hutool.extra.ssh.ChannelType;
import cn.hutool.extra.ssh.JschUtil;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSchException;
import com.zhonglai.luhui.mqtt.comm.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.io.*;
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-modules</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>lh-http-service</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 核心模块-->
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-jar-sys-service</artifactId>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-common-swagger</artifactId>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-common-datasource</artifactId>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-public-dao</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.zhonglai.luhui</groupId>-->
<!-- <artifactId>lh-jar-device-analysis</artifactId>-->
<!-- </dependency>-->
</dependencies>
<build>
<finalName>lh-http-service</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<!--
生成的jar中,不要包含pom.xml和pom.properties这两个文件
-->
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<!--
是否要把第三方jar放到manifest的classpath中
-->
<addClasspath>true</addClasspath>
<!--
生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/
-->
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.zhonglai.luhui.http.service.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- The configuration of maven-assembly-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>src/main/resources/package.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
... ...
package com.zhonglai.luhui.http.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan(basePackages = {
"com.ruoyi.common",
"com.ruoyi.framework",
"com.zhonglai.luhui.datasource",
"com.zhonglai.luhui.dao",
"com.zhonglai.luhui.http.service",
}
)
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class})
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
SpringApplication.run(Main.class,args);
logger.info("启动服务");
}
}
\ No newline at end of file
... ...
package com.zhonglai.luhui.http.service.config;
import com.ruoyi.common.config.RuoYiConfig;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/** 系统基础配置 */
@Autowired
private RuoYiConfig ruoyiConfig;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("设备http服务器")
.apiInfo(
new ApiInfoBuilder().title("标题:设备http服务器")
.description("设备http服务器")
.contact(new Contact(ruoyiConfig.getName(), null, null))
.version("版本号:" + ruoyiConfig.getVersion())
.build()
)
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
}
\ No newline at end of file
... ...
package com.zhonglai.luhui.http.service.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Api(tags = "设备操作")
@RestController
@RequestMapping("/device")
public class DeviceService {
private static String authKey = "key";
/**
* 添加校验
* @return
*/
@ModelAttribute
public void preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
{
String key = request.getParameter(authKey);
if(StringUtils.isNoneEmpty(key))
{
response.setStatus(403);
}
}
@ApiOperation("更新指定设备的全部数据")
@RequestMapping(value = "putAllData/{deviceid}")
public AjaxResult putAllData(@PathVariable String deviceid)
{
return AjaxResult.success();
}
@ApiOperation("更新指定设备的部分数据")
@RequestMapping(value = "putPartialData/{deviceid}")
public AjaxResult putPartialData(@PathVariable String deviceid)
{
return AjaxResult.success();
}
}
... ...
restart.include.json=/com.alibaba.fastjson.*.jar
\ No newline at end of file
... ...
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://rm-wz9740un21f09iokuao.mysql.rds.aliyuncs.com:3306/mqtt_broker?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: luhui
password: Luhui586
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
\ No newline at end of file
... ...
# 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 8065 servlet: # 应用的访问路径 context-path: / tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # 连接数满后的排队数,默认为100 accept-count: 1000 threads: # tomcat最大线程数,默认为200 max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 # 日志配置 logging: level: com.ruoyi: debug org.springframework: warn # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 pathMapping: /dev-api # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/*
\ No newline at end of file
... ...
#错误消息
not.null=* 必须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=用户不存在/密码错误
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟
user.password.delete=对不起,您的账号已被删除
user.blocked=用户已封禁,请联系管理员
role.blocked=角色已封禁,请联系管理员
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
upload.filename.exceed.length=上传的文件名最长{0}个字符
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 全局参数 -->
<settings>
<!-- 使全局的映射器启用或禁用缓存 -->
<setting name="cacheEnabled" value="true" />
<!-- 允许JDBC 支持自动生成主键 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
<setting name="defaultExecutorType" value="SIMPLE" />
<!-- 指定 MyBatis 所用日志的具体实现 -->
<setting name="logImpl" value="SLF4J" />
<!-- 使用驼峰命名法转换字段 -->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
</settings>
</configuration>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<id>bin</id>
<!-- 最终打包成一个用于发布的zip文件 -->
<formats>
<format>zip</format>
</formats>
<!-- Adds dependencies to zip package under lib directory -->
<dependencySets>
<dependencySet>
<!--
不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录
-->
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<!-- 把项目相关的说明文件,打包进zip文件的根目录 -->
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<!-- 把项目的配置文件,打包进zip文件的config目录 -->
<fileSet>
<directory>${project.basedir}\src\main\resources\configs</directory>
<outputDirectory>../configs</outputDirectory>
<includes>
<include>*.properties</include>
</includes>
</fileSet>
<!-- 把项目的配置文件,提出来 -->
<fileSet>
<directory>${project.basedir}\src\main\resources</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.properties</include>
<include>*.yml</include>
</includes>
</fileSet>
<!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 -->
<fileSet>
<directory>${project.basedir}\bin</directory>
<outputDirectory></outputDirectory>
<includes>
<include>start.*</include>
<include>stop.*</include>
</includes>
</fileSet>
<!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
\ No newline at end of file
... ...
... ... @@ -174,10 +174,13 @@
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-jar-device-service</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>lh-jar-device-analysis</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
... ...
... ... @@ -9,7 +9,7 @@ import org.springframework.context.annotation.ComponentScan;
@ComponentScan(basePackages = {
"com.zhonglai.luhui.mqtt.comm.config",
"com.zhonglai.luhui.mqtt.comm.agreement",
"com.zhonglai.luhui.device.analysis",
"com.zhonglai.luhui.mqtt.comm.service",
"com.zhonglai.luhui.mqtt.comm.rocketMq",
"com.zhonglai.luhui.mqtt.config",
... ...
... ... @@ -9,18 +9,11 @@ import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct;
import java.util.Properties;
@Configuration
public class RedisConfig {
... ...
package com.zhonglai.luhui.mqtt.comm.config;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.mqtt.comm.util.http.HttpUtils;
import com.zhonglai.luhui.device.analysis.comm.util.http.HttpUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
... ...
... ... @@ -2,12 +2,12 @@ package com.zhonglai.luhui.mqtt.comm.dao;
import com.alibaba.fastjson.JSONArray;
import com.ruoyi.common.annotation.PublicSQLConfig;
import com.zhonglai.luhui.device.analysis.comm.util.StringUtils;
import org.apache.commons.dbutils.*;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
... ... @@ -56,7 +56,7 @@ public class BaseDao {
}
Method method;
try {
method = object.getClass().getMethod("get"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(field.getName()));
method = object.getClass().getMethod("get"+ StringUtils.getName(field.getName()));
Object value = method.invoke(object);
if(null != value)
... ... @@ -66,7 +66,7 @@ public class BaseDao {
sql += ",";
values += ",";
}
sql += "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`";
sql += "`"+ StringUtils.toUnderScoreCase(field.getName())+"`";
values += "?";
valueList.add(value);
}
... ... @@ -126,7 +126,7 @@ public class BaseDao {
String sql = "insert into ";
if(StringUtils.isBlank(tableName))
{
tableName = com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(object.getClass().getSimpleName());
tableName = StringUtils.toUnderScoreCase(object.getClass().getSimpleName());
}
List<Object> valueList = new ArrayList<Object>();
... ... @@ -155,7 +155,7 @@ public class BaseDao {
{
attributeStr += ",";
}
attributeStr += "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`";
attributeStr += "`"+ StringUtils.toUnderScoreCase(field.getName())+"`";
}
attributeStr += ")";
return attributeStr;
... ... @@ -177,7 +177,7 @@ public class BaseDao {
}
Method method;
try {
method = object.getClass().getMethod("get"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(field.getName()));
method = object.getClass().getMethod("get"+ StringUtils.getName(field.getName()));
Object value = method.invoke(object);
if(!"(".equals(values) )
{
... ... @@ -253,7 +253,7 @@ public class BaseDao {
}
Method method = null;
try {
method = object.getClass().getMethod("get"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(field.getName()));
method = object.getClass().getMethod("get"+ StringUtils.getName(field.getName()));
} catch (NoSuchMethodException e) {
continue;
}
... ... @@ -264,7 +264,7 @@ public class BaseDao {
{
sql += ",";
}
sql += "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`"+"=?";
sql += "`"+ StringUtils.toUnderScoreCase(field.getName())+"`"+"=?";
j++;
valueList.add(value);
}
... ... @@ -293,10 +293,10 @@ public class BaseDao {
for(int i =0;i<wheres.length;i++)
{
try {
Method method = object.getClass().getMethod("get"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(wheres[i]));
Method method = object.getClass().getMethod("get"+ StringUtils.getName(wheres[i]));
Object value = method.invoke(object);
sql += " and ";
sql += com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(wheres[i]) + "=?";
sql += StringUtils.toUnderScoreCase(wheres[i]) + "=?";
valueList.add(value);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
... ... @@ -334,7 +334,7 @@ public class BaseDao {
idName = field.getName();
}
}
method = object.getClass().getMethod("get"+ com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(idName));
method = object.getClass().getMethod("get"+ StringUtils.getName(idName));
Object value = method.invoke(object);
sql += " and ";
... ... @@ -369,7 +369,7 @@ public class BaseDao {
{
QueryRunner runner = new QueryRunner(dBFactory.getDataSource());
String tableName = com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(clas.getSimpleName());
String tableName = StringUtils.toUnderScoreCase(clas.getSimpleName());
String sql = "select * from "+tableName+" where 1=1 ";
try {
... ... @@ -415,7 +415,7 @@ public class BaseDao {
{
QueryRunner runner = new QueryRunner(dBFactory.getDataSource());
String tableName = com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(clas.getSimpleName());
String tableName = StringUtils.toUnderScoreCase(clas.getSimpleName());
String sql = "select * from "+tableName+" where 1=1 ";
String idName = "id";
... ... @@ -454,7 +454,7 @@ public class BaseDao {
{
QueryRunner runner = new QueryRunner(dBFactory.getDataSource());
String tableName = com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(clas.getSimpleName());
String tableName = StringUtils.toUnderScoreCase(clas.getSimpleName());
String sql = "DELETE FROM "+tableName+" WHERE 1=1 ";
try {
List<Object> valueList = new ArrayList<Object>();
... ... @@ -487,7 +487,7 @@ public class BaseDao {
if(StringUtils.isBlank(tableName))
{
tableName = com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(clas.getSimpleName());
tableName = StringUtils.toUnderScoreCase(clas.getSimpleName());
}
String sql = "DELETE FROM "+tableName+" WHERE 1=1 ";
try {
... ... @@ -745,7 +745,7 @@ public class BaseDao {
}
try {
Method method;
method = object.getClass().getMethod("get"+ com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(field.getName()));
method = object.getClass().getMethod("get"+ StringUtils.getName(field.getName()));
Object value = method.invoke(object);
if(!(null == value))
{
... ... @@ -757,17 +757,17 @@ public class BaseDao {
if("like".equals(s))
{
value = "%"+value+"%";
like += " or " + "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`"+s+" ?"+orther ;
like += " or " + "`"+ StringUtils.toUnderScoreCase(field.getName())+"`"+s+" ?"+orther ;
valueList.add(value);
continue;
}
if("time".equals(s))
{
s = ">";
orther = " and `"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`< '"+whereMap.get("end_"+field.getName())+"'";
orther = " and `"+ StringUtils.toUnderScoreCase(field.getName())+"`< '"+whereMap.get("end_"+field.getName())+"'";
}
}
where += " and `"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`"+s+" ?"+orther;
where += " and `"+ StringUtils.toUnderScoreCase(field.getName())+"`"+s+" ?"+orther;
valueList.add(value);
}
} catch (NoSuchMethodException e) {
... ... @@ -819,7 +819,7 @@ public class BaseDao {
{
continue;
}
method = object.getClass().getMethod("get"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(field.getName()));
method = object.getClass().getMethod("get"+ StringUtils.getName(field.getName()));
Object value = method.invoke(object);
if(null != value)
{
... ... @@ -829,9 +829,9 @@ public class BaseDao {
values += ",";
update += ",";
}
sql += "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`";
sql += "`"+ StringUtils.toUnderScoreCase(field.getName())+"`";
values += "'"+ value+"'";
update += "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`"+"=VALUES("+"`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`)";
update += "`"+ StringUtils.toUnderScoreCase(field.getName())+"`"+"=VALUES("+"`"+ StringUtils.toUnderScoreCase(field.getName())+"`)";
}
} catch (NoSuchMethodException e) {
} catch (SecurityException e) {
... ... @@ -891,8 +891,8 @@ public class BaseDao {
sb.append(",");
update += ",";
}
sb.append("`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`");
update += "`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`"+"=VALUES("+"`"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(field.getName())+"`)";
sb.append("`"+ StringUtils.toUnderScoreCase(field.getName())+"`");
update += "`"+ StringUtils.toUnderScoreCase(field.getName())+"`"+"=VALUES("+"`"+ StringUtils.toUnderScoreCase(field.getName())+"`)";
}
sb.append(")");
sb.append("VALUES ");
... ... @@ -904,7 +904,7 @@ public class BaseDao {
Field field = fields[j];
Method method;
try {
method = object.getClass().getMethod("get"+com.zhonglai.luhui.mqtt.comm.util.StringUtils.getName(field.getName()));
method = object.getClass().getMethod("get"+ StringUtils.getName(field.getName()));
Object value = method.invoke(object);
if(null == value)
{
... ... @@ -963,7 +963,7 @@ public class BaseDao {
{
Object value = mapwhere.get(key);
where += " and ";
where += com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(key) + "=?";
where += StringUtils.toUnderScoreCase(key) + "=?";
valueList.add(value);
}
return where;
... ... @@ -1007,6 +1007,6 @@ public class BaseDao {
e.printStackTrace();
}
return com.zhonglai.luhui.mqtt.comm.util.StringUtils.toUnderScoreCase(tableNmae);
return StringUtils.toUnderScoreCase(tableNmae);
}
}
... ...
package com.zhonglai.luhui.mqtt.dto;
package com.zhonglai.luhui.mqtt.comm.dto;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.device.analysis.dto.ApiName;
import com.zhonglai.luhui.device.analysis.dto.DeviceCommandApiParameter;
import com.zhonglai.luhui.device.analysis.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.MessageCode;
import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.mqtt.service.db.DeviceService;
... ...
package com.zhonglai.luhui.mqtt.comm.rocketMq;
import com.alibaba.fastjson.JSON;
import com.zhonglai.luhui.mqtt.comm.service.MqttCallback;
import com.zhonglai.luhui.mqtt.dto.DeviceCommandApi;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.mqtt.dto.MessageCode;
import com.zhonglai.luhui.mqtt.comm.dto.DeviceCommandApi;
import com.zhonglai.luhui.device.analysis.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.MessageCode;
import com.zhonglai.luhui.mqtt.service.db.DeviceService;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.dto.SaveDataDto;
import com.zhonglai.luhui.device.analysis.dto.topic.AddPostDto;
import com.zhonglai.luhui.device.analysis.dto.topic.AllPostDto;
import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.config.SysParameter;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.mqtt.dto.SaveDataDto;
import com.zhonglai.luhui.mqtt.dto.topic.AddPostDto;
import com.zhonglai.luhui.mqtt.dto.topic.AllPostDto;
import com.zhonglai.luhui.mqtt.service.CacheServiceImpl;
import com.zhonglai.luhui.mqtt.service.db.DeviceService;
import org.slf4j.Logger;
... ... @@ -55,7 +55,7 @@ public class BusinessDataUpdateService {
* @param type
* @param topic
*/
public void updataDta(Type type, Topic topic, ServerDto serverDto,String operationType,boolean isLog)
public void updataDta(Type type, Topic topic, ServerDto serverDto, String operationType, boolean isLog)
{
IotDevice olddevice = cacheService.getIotDevice(topic.getClientid());
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
/**
* 缓存业务
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.zhonglai.luhui.mqtt.comm.clien.ClienConnection;
import com.zhonglai.luhui.mqtt.comm.clien.impl.ClienConnectionImpl;
import com.zhonglai.luhui.mqtt.comm.dto.ApiClientRePlyDto;
import com.zhonglai.luhui.mqtt.comm.dto.TerminalClientRePlyDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.ByteUtil;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.device.analysis.comm.clien.ClienConnection;
import com.zhonglai.luhui.device.analysis.comm.clien.impl.ClienConnectionImpl;
import com.zhonglai.luhui.device.analysis.comm.dto.ApiClientRePlyDto;
import com.zhonglai.luhui.device.analysis.comm.dto.TerminalClientRePlyDto;
import com.zhonglai.luhui.device.analysis.comm.util.ByteUtil;
import com.zhonglai.luhui.device.analysis.dto.Message;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.TopicUtil;
import net.jodah.expiringmap.ExpirationListener;
import net.jodah.expiringmap.ExpirationPolicy;
import net.jodah.expiringmap.ExpiringMap;
... ... @@ -56,10 +57,10 @@ public class ClienNoticeService {
public Message sendMessage(Topic topic, MqttMessage mqttMessage) throws MqttException, InterruptedException {
//设置通知渠道
ClienConnection clienConnection = new ClienConnectionImpl();
String key = topic.generateClienKey().replace(topic.getTopicType(),top_return_map.get(topic.getTopicType()));
String key = TopicUtil.generateClienKey(topic).replace(topic.getTopicType(),top_return_map.get(topic.getTopicType()));
log.info("设置通知渠道 {} {}",key,clienConnection);
clienConnectionMap.put(key,clienConnection);
sendMessage(topic.generateSendMessageTopic(),mqttMessage);
sendMessage(TopicUtil.generateSendMessageTopic(topic),mqttMessage);
synchronized(clienConnection)
{
log.info("{}等待通知",topic.getClientid());
... ... @@ -88,7 +89,7 @@ public class ClienNoticeService {
public ClienConnection getClienConnection(Topic topic)
{
return clienConnectionMap.get(topic.generateClienKey());
return clienConnectionMap.get(TopicUtil.generateClienKey(topic));
}
/**
... ...
... ... @@ -2,16 +2,16 @@ package com.zhonglai.luhui.mqtt.comm.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelBase;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelDataTypeEnum;
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.comm.util.StringUtils;
import com.zhonglai.luhui.device.analysis.dto.SaveDataDto;
import com.zhonglai.luhui.device.domain.IotThingsModel;
import com.zhonglai.luhui.mqtt.comm.dao.BaseDao;
import com.zhonglai.luhui.mqtt.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelBase;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelDataTypeEnum;
import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.mqtt.comm.util.StringUtils;
import com.zhonglai.luhui.mqtt.dto.SaveDataDto;
import com.zhonglai.luhui.mqtt.service.db.mode.TerminalDataThingsModeService;
import org.apache.commons.lang3.EnumUtils;
import org.slf4j.Logger;
... ... @@ -59,7 +59,7 @@ public class DataModeAnalysisService {
/**
* 解析物模型数据
*/
public SaveDataDto analysisThingsModelValue(String id,String userName ,JSONObject jsData, ServerDto serverDto)
public SaveDataDto analysisThingsModelValue(String id, String userName , JSONObject jsData, ServerDto serverDto)
{
if(null != jsData && jsData.size() != 0 )
{
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.zhonglai.luhui.device.analysis.comm.dto.DeviceAlarmInfo;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.comm.util.TableUtil;
import com.zhonglai.luhui.mqtt.comm.dao.BaseDao;
import com.zhonglai.luhui.mqtt.comm.dto.*;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.mqtt.comm.util.TableUtil;
import org.apache.commons.lang3.StringUtils;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import java.util.ArrayList;
import java.util.List;
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation;
import com.zhonglai.luhui.device.analysis.comm.dto.TableGenerateSqlEnum;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.mqtt.comm.dao.BaseDao;
import com.zhonglai.luhui.mqtt.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.mqtt.comm.dto.LogDeviceOperation;
import com.zhonglai.luhui.mqtt.comm.dto.TableGenerateSqlEnum;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import org.springframework.stereotype.Service;
import java.util.List;
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.dto.business.BusinessDto;
import com.zhonglai.luhui.device.analysis.comm.dto.business.BusinessDtoClassNew;
import com.zhonglai.luhui.device.analysis.comm.util.ByteUtil;
import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.dto.business.BusinessDto;
import com.zhonglai.luhui.mqtt.comm.dto.business.BusinessDtoClassNew;
import com.zhonglai.luhui.mqtt.comm.factory.BusinessAgreement;
import com.zhonglai.luhui.mqtt.comm.factory.BusinessAgreementFactory;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.ByteUtil;
import com.zhonglai.luhui.device.analysis.comm.factory.BusinessAgreement;
import com.zhonglai.luhui.device.analysis.comm.factory.BusinessAgreementFactory;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.TopicUtil;
import com.zhonglai.luhui.mqtt.service.db.DeviceService;
import lombok.SneakyThrows;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
... ... @@ -53,7 +54,7 @@ public class MqttCallback implements MqttCallbackExtended {
@Override
public void messageArrived(String s, MqttMessage mqttMessage) {
Topic desttopic = new Topic(s);
Topic desttopic = TopicUtil.initTopic(s);
desttopic.setPayloadtype("POST_REQ");
//接收到消息
... ... @@ -70,12 +71,12 @@ public class MqttCallback implements MqttCallbackExtended {
buffer.append("\r\n");
try {
Topic topic = new Topic(s);
Topic topic = TopicUtil.initTopic(s);
if(null == topic)
{
log.error("消息{},topic为空,不做解析");
log.error("消息《"+s+"》解析为空 》》》内容:\r\n"+buffer.toString());
terminalService.publish(desttopic.generateSendMessageTopic(),"0");
terminalService.publish(TopicUtil.generateSendMessageTopic(topic),"0");
return;
}
... ... @@ -88,7 +89,7 @@ public class MqttCallback implements MqttCallbackExtended {
if(null == iotDevice)
{
log.info("设备{}不存在",topic.getClientid());
terminalService.publish(desttopic.generateSendMessageTopic(),"1");
terminalService.publish(TopicUtil.generateSendMessageTopic(topic),"1");
return;
}
if("ONLINE".equals(topic.getTopicType().toUpperCase()))
... ... @@ -113,12 +114,12 @@ public class MqttCallback implements MqttCallbackExtended {
//数据持久化
dataPersistenceService.persistence(topic,dto);
terminalService.publish(desttopic.generateSendMessageTopic(),"2");
terminalService.publish(TopicUtil.generateSendMessageTopic(desttopic),"2");
log.info("{}payload解析完成",s);
} catch (Exception e) {
log.error(s+"消息解析异常",e);
try {
terminalService.publish(desttopic.generateSendMessageTopic(),"3");
terminalService.publish(TopicUtil.generateSendMessageTopic(desttopic),"3");
} catch (MqttException ex) {
log.error(s+"消息解析异常时返回的执行结果消息异常",ex);
}
... ...
package com.zhonglai.luhui.mqtt.comm.service;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.config.SysParameter;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.util.TopicUtil;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
... ... @@ -139,7 +140,7 @@ public class TerminalService {
List<String> ts = getCompletionTopics();
for(String topicstr:ts)
{
Topic topic = new Topic(topicstr);
Topic topic = TopicUtil.initTopic(topicstr);
if(null != topic)
{
String rild = topic.getRoleid();
... ...
... ... @@ -3,7 +3,6 @@ package com.zhonglai.luhui.mqtt.comm.service.redis;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
... ...
package com.zhonglai.luhui.mqtt.comm.factory;
package com.zhonglai.luhui.mqtt.comm.util;
import com.zhonglai.luhui.mqtt.comm.config.RedisConfig;
import com.zhonglai.luhui.device.analysis.comm.dto.MyException;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.util.StringUtils;
import com.zhonglai.luhui.mqtt.comm.config.SysParameter;
import com.zhonglai.luhui.mqtt.comm.dto.MyException;
import com.zhonglai.luhui.mqtt.comm.service.MqttCallback;
import com.zhonglai.luhui.mqtt.comm.util.StringUtils;
import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
import java.util.Optional;
@Data
public class Topic {
private static final Logger log = LoggerFactory.getLogger(Topic.class);
public class TopicUtil {
private static final Logger log = LoggerFactory.getLogger(TopicUtil.class);
private String roleid;
private String username;
private String clientid;
private String topicType;
private String messageid;
private String payloadtype;
public Topic() {
}
public Topic(String roleid, String username, String clientid, String topicType, String payloadtype) {
this.roleid = roleid;
this.username = username;
this.clientid = clientid;
this.topicType = topicType;
this.payloadtype = payloadtype;
}
public Topic(String roleid, String username, String clientid, String topicType, String messageid, String payloadtype) {
this.roleid = roleid;
this.username = username;
this.clientid = clientid;
this.topicType = topicType;
this.messageid = messageid;
this.payloadtype = payloadtype;
}
public Topic(String topic)
public static Topic initTopic(String topic)
{
topic = Optional.ofNullable(topic).orElseThrow(()->new MyException("topic为空"));
String[] sts = topic.split("/");
... ... @@ -53,83 +23,85 @@ public class Topic {
{
number = config.length;
}
Topic topicObject = new Topic();
for(int i=1;i<number;i++)
{
String cf = config[i].replace("{{","").replace("}}","");
try {
Field field = this.getClass().getDeclaredField(cf);
field.set(this,sts[i]);
Field field = topicObject.getClass().getDeclaredField(cf);
field.set(topicObject,sts[i]);
} catch (NoSuchFieldException e) {
log.info("{}生成topic时没有属性{}",topic,cf);
} catch (IllegalAccessException e) {
log.info("{}生成topic时无法给{}赋值{}",topic,cf,sts[i]);
}
}
return topicObject;
}
/**
* 生成缓存关键字
* @return
*/
public String generateRedicKey()
public static String generateRedicKey(Topic topic)
{
return generate(":");
return generate(topic,":");
}
/**
* 生成发送消息的topic
* @return
*/
public String generateSendMessageTopic()
public static String generateSendMessageTopic(Topic topic)
{
return "/"+generate("/");
return "/"+generate(topic,"/");
}
/**
* 生成客户端关键字
* @return
*/
public String generateClienKey()
public static String generateClienKey(Topic topic)
{
return "/"+generate("/");
return "/"+generate(topic,"/");
}
private String generate(String division)
private static String generate(Topic topic,String division)
{
String str = SysParameter.topicconfig;
if(StringUtils.isEmpty(roleid))
if(StringUtils.isEmpty(topic.getRoleid()))
{
roleid = "2";
topic.setRoleid("2");
}
str = str.replace("/{{roleid}}",roleid+division);
str = str.replace("/{{roleid}}",topic.getRoleid()+division);
if(StringUtils.isEmpty(username))
if(StringUtils.isEmpty(topic.getUsername()))
{
username = "+";
topic.setUsername("+");
}
str = str.replace("/{{username}}",username+division);
str = str.replace("/{{username}}",topic.getUsername()+division);
if(StringUtils.isEmpty(clientid))
if(StringUtils.isEmpty(topic.getClientid()))
{
clientid = "+";
topic.setClientid( "+");
}
str = str.replace("/{{clientid}}",clientid+division);
str = str.replace("/{{clientid}}",topic.getClientid()+division);
if(StringUtils.isEmpty(payloadtype))
if(StringUtils.isEmpty(topic.getPayloadtype()))
{
payloadtype = "String";
topic.setPayloadtype( "String");
}
str = str.replace("/{{payloadtype}}",payloadtype+division);
str = str.replace("/{{payloadtype}}",topic.getPayloadtype()+division);
if(StringUtils.isEmpty(topicType))
if(StringUtils.isEmpty(topic.getTopicType()))
{
topicType = "PUT";
topic.setTopicType("PUT");
}
str = str.replace("/{{topicType}}",topicType+division);
str = str.replace("/{{topicType}}",topic.getTopicType()+division);
if(StringUtils.isNotEmpty(messageid))
if(StringUtils.isNotEmpty(topic.getMessageid()))
{
str = str.replace("/{{messageid}}",messageid);
str = str.replace("/{{messageid}}",topic.getMessageid());
}
return str;
... ...
... ... @@ -3,8 +3,8 @@ package com.zhonglai.luhui.mqtt.controller;
import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.device.domain.IotThingsModel;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.mqtt.dto.MessageCode;
import com.zhonglai.luhui.device.analysis.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.MessageCode;
import com.zhonglai.luhui.mqtt.service.db.DeviceService;
import com.zhonglai.luhui.mqtt.service.db.mode.TerminalDataThingsModeService;
import io.swagger.annotations.Api;
... ...
... ... @@ -2,20 +2,18 @@ package com.zhonglai.luhui.mqtt.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.util.IOUtils;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.mqtt.dto.Message;
import com.zhonglai.luhui.mqtt.dto.MessageCode;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.dto.Message;
import com.zhonglai.luhui.device.analysis.dto.MessageCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Date;
... ...
... ... @@ -5,11 +5,11 @@ import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.mqtt.comm.config.RedisConfig;
import com.zhonglai.luhui.mqtt.comm.dao.BaseDao;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.service.CacheService;
import com.zhonglai.luhui.mqtt.comm.service.redis.RedisService;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import com.zhonglai.luhui.mqtt.service.redis.RedisDeleteListener;
import com.zhonglai.luhui.mqtt.service.redis.RedisExpiredListener;
import org.slf4j.Logger;
... ...
... ... @@ -2,10 +2,10 @@ package com.zhonglai.luhui.mqtt.service;
import com.zhonglai.luhui.device.domain.IotDevice;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.mqtt.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.mqtt.comm.dto.LogDeviceOperation;
import com.zhonglai.luhui.mqtt.comm.dto.ServerDto;
import com.zhonglai.luhui.mqtt.comm.factory.Topic;
import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation;
import com.zhonglai.luhui.device.analysis.comm.dto.ServerDto;
import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
import com.zhonglai.luhui.mqtt.comm.service.DataPersistenceService;
import com.zhonglai.luhui.mqtt.comm.service.DeviceLogService;
import org.slf4j.Logger;
... ...
package com.zhonglai.luhui.mqtt.service;
import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
import com.zhonglai.luhui.device.analysis.comm.util.DateUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
... ...