作者 钟来

模块整理

正在显示 21 个修改的文件 包含 467 行增加185 行删除
package com.ruoyi.framework.config;
package com.zhonglai.luhui.datasource.config;
//import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
... ... @@ -21,13 +21,5 @@ import java.util.TimeZone;
//@tk.mybatis.spring.annotation.MapperScan(basePackages={"com.ruoyi.system.tk"})
public class ApplicationConfig
{
/**
* 时区配置
*/
@Bean
public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
{
return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
}
}
... ...
... ... @@ -2,6 +2,7 @@ package com.ruoyi.framework.config;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
... ... @@ -10,6 +11,8 @@ import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.TimeZone;
/**
* 通用配置
*
... ... @@ -70,4 +73,13 @@ public class ResourcesConfig implements WebMvcConfigurer
source.registerCorsConfiguration("/**", buildConfig()); // 4
return new CorsFilter(source);
}
/**
* 时区配置
*/
@Bean
public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
{
return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
}
}
\ No newline at end of file
... ...
... ... @@ -9,7 +9,7 @@
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>lh-smart-feeder-pureness</artifactId>
<artifactId>lh-data-file-service</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
... ... @@ -18,24 +18,26 @@
</properties>
<dependencies>
<!-- mqtt -->
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
<dependency>
<groupId>com.zhonglai.luhui</groupId>
<artifactId>ruoyi-common</artifactId>
<artifactId>lh-common-swagger</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
... ...
package com.zhonglai.luhui.data.file.service;
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.data.file.service",
}
)
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class,args);
System.out.println("启动成功");
}
}
\ No newline at end of file
... ...
package com.zhonglai.luhui.data.file.service.baidu;
import lombok.Data;
@Data
public class BaiDuWangPanResponse {
/**
* Access Token的有效期,单位为秒。
*/
private Integer expires_in; //: 2592000,
/**
* 用于刷新Access Token, 有效期为10年。
*/
private String refresh_token; //: "122.51265f007055bc895cb02c639410a90d.YDLFcE2nee3Cyu-Bsn7SAFVCAfdCkvSm4EnCdkO.Zs_FiQ",
/**
* 获取到的Access Token,Access Token是调用网盘开放API访问用户授权资源的凭证。
*/
private String access_token; //: "121.60bf4c9911cb554aac39a1c701a4dae8.YDjwYds0zFgbM1rifQhjMLwsfb6xYus5tUhNEoA.XNNoOQ",
private String session_secret; //: "",
private String session_key; //: "",
/**
* Access Token 最终的访问权限,即用户的实际授权列表。
*/
private String scope; //: "basic netdisk"
}
... ...
package com.zhonglai.luhui.data.file.service.baidu;
import com.zhonglai.luhui.data.file.service.config.SysConfig;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* 百度网盘服务
*/
public class BaiDuWangPanService {
/**
* 获取授权地址
* @param redirect_uri
* @return
*/
public static String getOauth2Url(String redirect_uri)
{
return "http://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id="+ SysConfig.BaiDuWangPanAppConfig.AppKey+"&redirect_uri="+redirect_uri+"&scope=basic,netdisk&device_id="+SysConfig.BaiDuWangPanAppConfig.AppID;
}
/**
* 授权
* @param code
* @param redirect_uri
* @return
*/
public static String oauth2(String code,String redirect_uri)
{
try {
URL url = new URL("https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code="+code+"&client_id="+SysConfig.BaiDuWangPanAppConfig.AppKey+"&client_secret="+SysConfig.BaiDuWangPanAppConfig.Secretkey+"&redirect_uri="+redirect_uri);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String str = response.toString();
System.out.println(str);
return str;
} catch (Exception e) {
System.out.println(e);
}
return null;
}
/**
* 刷新token
* @param refresh_token
* @return
*/
public static String refreshToken(String refresh_token)
{
try {
URL url = new URL("https://openapi.baidu.com/oauth/2.0/token?grant_type=refresh_token&refresh_token="+refresh_token+"&client_id="+SysConfig.BaiDuWangPanAppConfig.AppKey+"&client_secret="+SysConfig.BaiDuWangPanAppConfig.Secretkey);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String str = response.toString();
System.out.println(str);
return str;
} catch (Exception e) {
System.out.println(e);
}
return null;
}
}
... ...
package com.zhonglai.luhui.data.file.service.config;
import com.ruoyi.common.config.RuoYiConfig;
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("数据文件管理服务")
.apiInfo(
new ApiInfoBuilder().title("标题:数据文件管理服务api")
.description("数据文件管理服务")
.contact(new Contact(ruoyiConfig.getName(), null, null))
.version("版本号:" + ruoyiConfig.getVersion())
.build()
)
.select()
.apis(RequestHandlerSelectors.basePackage("com.zhonglai.luhui.data.file.service.controller"))
.paths(PathSelectors.any())
.build();
}
}
\ No newline at end of file
... ...
package com.zhonglai.luhui.data.file.service.config;
public class SysConfig {
public static String DATA_FILE_DOMAIN = "/禄辉/ly_sensor_data";
public static class BaiDuWangPanAppConfig
{
public static String AppID = "42678014";
public static String AppKey = "Euj78joa7qLVAXKEgGyv0jGgeyUuyfrA";
public static String Secretkey = "bCPrMDpbRVG3K2x7HLuRuXQwGuQt6wGG";
public static String Signkey = "~7YysF+j@hgg=XWAGGkEEOScaWwY^btE";
}
}
... ...
package com.zhonglai.luhui.data.file.service.controller;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import com.ruoyi.common.core.domain.Message;
import com.ruoyi.common.core.domain.MessageCode;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.GsonConstructor;
import com.ruoyi.common.utils.StringUtils;
import com.zhonglai.luhui.data.file.service.baidu.BaiDuWangPanResponse;
import com.zhonglai.luhui.data.file.service.baidu.BaiDuWangPanService;
import com.zhonglai.luhui.data.file.service.dto.SysTripartitePlatformToken;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@Api(tags = "百度网盘管理")
@Controller
@RequestMapping("/baiDuWangPan")
public class BaiDuWangPanController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private static String typestr = "BaiDuWangPanToken_ZL";
@ApiOperation("获取授权连接")
@GetMapping("/getOauth2Url")
public void getOauth2Url(HttpServletResponse httpServletResponse,HttpServletRequest httpServletRequest)
{
try {
httpServletResponse.sendRedirect(BaiDuWangPanService.getOauth2Url(getRedirectUri(httpServletRequest)));
} catch (IOException e) {
logger.error("获取授权连接失败", e);
}
}
@ApiOperation("授权回调")
@GetMapping("/oauth2")
@ResponseBody
public String oauth2(String code,HttpServletRequest httpServletRequest)
{
String str = BaiDuWangPanService.oauth2(code,getRedirectUri(httpServletRequest));
logger.info("收到授权返回的数据{}", str);
if(StringUtils.isEmpty(str))
{
return "获取授权码错误";
}
saveOauth2(str);
return str;
}
public static void main(String[] args) {
BaiDuWangPanController baiDuWangPanController = new BaiDuWangPanController();
baiDuWangPanController.saveOauth2("{\"expires_in\":2592000,\"refresh_token\":\"122.0053b4548d54856cceccae388c878853.Y3HekPPrUdJIXRDKIxMD7CpGAuPOWcVU61SGsQQ.1BN3ew\",\"access_token\":\"121.1cd4766c1e1cd5d58a461b3c2a09f213.YHdmmMQr0l3iHKQUJVJHNfp2f_fk3y6RFWHNSLY.GvxSuA\",\"session_secret\":\"\",\"session_key\":\"\",\"scope\":\"basic netdisk\"}\n");
}
private void saveOauth2(String str)
{
BaiDuWangPanResponse baiDuWangPanResponse = GsonConstructor.get().fromJson(str,BaiDuWangPanResponse.class);
try {
SysTripartitePlatformToken sysTripartitePlatformToken = new SysTripartitePlatformToken();
sysTripartitePlatformToken.setTripartite_platform_type(typestr);
sysTripartitePlatformToken.setTripartite_platform_name("百度网络的授权token(钟来的)");
sysTripartitePlatformToken.setCreate_time(DateUtils.getNowTimeMilly());
sysTripartitePlatformToken.setUpdate_time(DateUtils.getNowTimeMilly());
sysTripartitePlatformToken.setAccess_token(baiDuWangPanResponse.getAccess_token());
sysTripartitePlatformToken.setAccess_token_end_time(sysTripartitePlatformToken.getUpdate_time()+baiDuWangPanResponse.getExpires_in());
sysTripartitePlatformToken.setRefresh_token(baiDuWangPanResponse.getRefresh_token());
sysTripartitePlatformToken.setRefresh_token_end_time(sysTripartitePlatformToken.getUpdate_time()+(10*365*24*60*60));
Db.use().insert(Entity.create().parse(sysTripartitePlatformToken).setTableName("sys_tripartite_platform_token"));
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@ApiOperation("获取token")
@GetMapping("/getToekn")
@ResponseBody
public Message getToekn()
{
try {
Entity entity = Db.use().get("sys_tripartite_platform_token","tripartite_platform_type",typestr);
if(null == entity)
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"未授权");
}
SysTripartitePlatformToken sysTripartitePlatformToken = entity.toBean(SysTripartitePlatformToken.class);
int time = DateUtils.getNowTimeMilly();
if((sysTripartitePlatformToken.getAccess_token_end_time()-time)<=3600)
{
if((sysTripartitePlatformToken.getRefresh_token_end_time()-time)<=(24*60*60))
{
String str = BaiDuWangPanService.refreshToken(sysTripartitePlatformToken.getRefresh_token());
BaiDuWangPanResponse baiDuWangPanResponse = GsonConstructor.get().fromJson(str,BaiDuWangPanResponse.class);
sysTripartitePlatformToken.setAccess_token(baiDuWangPanResponse.getAccess_token());
sysTripartitePlatformToken.setAccess_token_end_time(sysTripartitePlatformToken.getUpdate_time()+baiDuWangPanResponse.getExpires_in());
sysTripartitePlatformToken.setRefresh_token(baiDuWangPanResponse.getRefresh_token());
sysTripartitePlatformToken.setRefresh_token_end_time(sysTripartitePlatformToken.getUpdate_time()+(10*365*24*60*60));
sysTripartitePlatformToken.setUpdate_time(DateUtils.getNowTimeMilly());
Db.use().update(Entity.create().parse(sysTripartitePlatformToken).setTableName("sys_tripartite_platform_token"),Entity.create().addFieldNames("id"));
}
return new Message(MessageCode.DEFAULT_FAIL_CODE,"授权到期,请重新授权");
}
return new Message(MessageCode.DEFAULT_SUCCESS_CODE,sysTripartitePlatformToken.getAccess_token());
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
private String getRedirectUri(HttpServletRequest httpServletRequest)
{
String requestUrl = httpServletRequest.getRequestURL().toString();
String rootUrl = requestUrl.substring(0, requestUrl.lastIndexOf("/"));
// return rootUrl+"/baiDuWangPan/oauth2";
return "oob";
}
}
... ...
package com.zhonglai.luhui.data.file.service.db;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import com.ruoyi.common.utils.DateUtils;
import com.zhonglai.luhui.data.file.service.config.SysConfig;
import com.zhonglai.luhui.data.file.service.dto.DataFile;
import java.sql.SQLException;
public class DataFileDb {
/**
* 从数据库获取数据文件对象
* @param id
* @return
*/
public DataFile getDataFile(String id)
{
//查询
try {
DataFile dataFile = Db.use().get("data_file","id",id).toBean(DataFile.class);
return dataFile;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
/**
* 保存数据文件对象
* @param id
* @return
*/
public DataFile insert(String id)
{
DataFile dataFile = new DataFile();
dataFile.setId(id);
String time = DateUtils.getTime();
String[] ts = time.split("-");
dataFile.setFile_path("/"+ts[0]+"/"+ts[1]);
dataFile.setCreate_time(time);
try {
Db.use().insert(Entity.parse(dataFile));
} catch (SQLException e) {
throw new RuntimeException(e);
}
return dataFile;
}
/**
* 获取文件路径
* @param id
* @return
*/
public String getDataFilePath(String id)
{
DataFile dataFile =getDataFile(id);
if(null == dataFile)
{
dataFile = insert(id);
}
return SysConfig.DATA_FILE_DOMAIN+dataFile.getFile_path();
}
}
... ...
package com.zhonglai.luhui.data.file.service.dto;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true) //链式写法
public class DataFile {
private String id; //主键
private String file_path; //路径
private String create_time; //创建时间
}
... ...
package com.zhonglai.luhui.data.file.service.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel(value = "SysTripartitePlatformToken", description = "第三方平台的token管理")
public class SysTripartitePlatformToken {
private Integer id; // int NOT NULL AUTO_INCREMENT COMMENT '主键',
private String access_token; // varchar(200) DEFAULT NULL COMMENT '第三方平台的api请求token',
private Integer access_token_end_time; // int DEFAULT NULL COMMENT 'api请求token到期时间',
private String refresh_token; // varchar(200) DEFAULT NULL COMMENT '第三方平台的刷新token',
private Integer refresh_token_end_time; // int DEFAULT NULL COMMENT '刷新token的到期时间',
private String tripartite_platform_type; // varchar(50) DEFAULT NULL COMMENT '第三方平台类型',
private String tripartite_platform_name; // varchar(150) DEFAULT NULL COMMENT '第三方平台名称',
private Integer create_time; // int DEFAULT NULL COMMENT '创建时间',
private Integer update_time; // int DEFAULT NULL COMMENT '更新时间',
}
... ...
# 项目相关配置 jhlt: # 名称 name: zhonglai # 版本 version: 3.8.2 # 版权年份 copyrightYear: 2023 # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 8067 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
\ No newline at end of file
... ...
url=jdbc:mysql://rm-wz9740un21f09iokuao.mysql.rds.aliyuncs.com:3306/mqtt_broker?useUnicode=true&characterEncoding=utf8&autoReconnect=true
user = luhui
pass = Luhui586
## 可选配置
# 是否在日志中显示执行的SQL
showSql = true
# 是否格式化显示的SQL
formatSql = false
# 是否显示SQL参数
showParams = true
# 打印SQL的日志等级,默认debug,可以是info、warn、error
sqlLevel = debug
## 连接池配置项
# 自动提交
autoCommit = true
# 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
connectionTimeout = 30000
# 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟
idleTimeout = 600000
# 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';)
maxLifetime = 1800000
# 获取连接前的测试SQL
connectionTestQuery = SELECT 1
# 最小闲置连接数
minimumIdle = 2
# 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count)
maximumPoolSize = 10
# 连接只读数据库时配置为true, 保证安全
readOnly = false
\ No newline at end of file
... ...
package com.zhonglai.luhui.smart.feeder.pureness;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
\ No newline at end of file
package com.zhonglai.luhui.smart.feeder.pureness.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class SysConfig {
private static final Logger log = LoggerFactory.getLogger(SysConfig.class);
private static Map<String,String> map = new HashMap<>();
private void loadconfig(String configpath) throws IOException {
log.info("加载系统配置文件:{}",configpath);
Properties p = new Properties();
//创建一个字节输入流对象读取文件默认在当前项目下查找
FileInputStream in = new FileInputStream(configpath);
//Properties类的load()方法进行配置文件的加载
p.load(in);
for(String key:p.stringPropertyNames())
{
p.getProperty(key);
}
}
public static String sys_srs_push_address;
public static String sys_mp4_file_path;
public static String mqtt_broke;
public static String mqtt_clientId;
public static String mqtt_topics;
public static String mqtt_username;
public static String mqtt_password;
public static String mqtt_client_operationTime;
}
package com.zhonglai.luhui.smart.feeder.pureness.service;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.ip.IpUtils;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
public class TerminalService {
private static final Logger log = LoggerFactory.getLogger(TerminalService.class);
private MqttClient mqttclient;
private MqttConnectOptions options;
private MqttCallback mqttCallback;
private String broker;
private String clientId;
private List<String> topics;
private List<String> mqtt_usernames;
private String username;
private String password;
public void startMqttListenerService() throws MqttException {
log.info("-----------开始启动mqtt监听服务--------------------");
init();
connect();
subscribe();
Map<String,Object> dmap = new HashMap<>();
Map<String,Object> map = new HashMap<>();
dmap.put("summary",map);
map.put("localhostIp", IpUtils.getLocalHost());
JSONObject jsonObject = new JSONObject();
jsonObject.put("0",dmap);
String topic = "ADD_POST";
publish(topic,jsonObject.toJSONString());
}
public void init() throws MqttException {
if(null == mqttclient)
{
mqttclient = new MqttClient(broker, clientId, new MemoryPersistence());
}
options = new MqttConnectOptions();
options.setCleanSession(true);
options.setConnectionTimeout(15);
//设置断开后重新连接
options.setAutomaticReconnect(true);
mqttclient.setCallback(mqttCallback);
}
private void connect() throws MqttException {
options.setUserName(username);
options.setPassword(password.toCharArray());
mqttclient.connect(options);
}
public void subscribe() throws MqttException {
mqttclient.subscribe(topics.toArray(new String[topics.size()]));
}
public void publish(String topic, MqttMessage message) throws MqttException {
mqttclient.publish(topic,message);
}
public void publish(String topic, String messageStr) throws MqttException {
MqttMessage message = new MqttMessage();
message.setPayload(messageStr.getBytes());
mqttclient.publish(topic,message);
}
public void scheduledSubmissionData(String messageStr) throws MqttException {
String topic = "ALL_POST";
publish(topic,messageStr);
}
public void close()
{
try {
options.setAutomaticReconnect(false);
if(null != mqttclient && mqttclient.isConnected())
{
mqttclient.disconnect();
mqttclient.close();
}
} catch (MqttException e) {
log.error("关闭失败",e);
}
}
}
sys.srs_push_address=rtmp://119.23.218.181:21935/live/${mqtt.clientId}
sys.mp4_file_path=D:/lh-smart-feeder/2.mp4
mqtt.broker=tcp://175.24.61.68:1883
mqtt.clientId=70094a59d1d991d
mqtt.topics=PUT/+,GET_REQ/+, READ/+,POST_REQ/+
mqtt.username=12_ZNZY
mqtt.password=Luhui586
mqtt.client.operationTime=10
\ No newline at end of file
... ... @@ -29,11 +29,16 @@ public class SysConfig implements OperatingDataType{
private Boolean ifRegisterConfig = false;
/**
* 摄像头密码,默认是验证码
*/
private String password;
public SysConfig creteDefault()
{
ifUpLoadData = false;
ifVeiw = false;
nettyConfig = new NettyConfig();
password = "Luhui586";
return this;
}
... ...
... ... @@ -118,7 +118,7 @@ public class CameraRtspHandle implements CameraHandle {
return false;
}
String rtspUrl = "rtsp://admin:Luhui586@"+ip+":554/h264/ch1/main/av_stream";
String rtspUrl = "rtsp://admin:"+OperatingData.sysConfig.getPassword()+"@"+ip+":554/h264/ch1/main/av_stream";
grabber = new FFmpegFrameGrabber(rtspUrl);
// grabber.setOption("framerate", "30"); // 设置帧率为30帧/秒
// grabber.setOption("skip_frame", "nokey"); // 只抓取关键帧
... ...
... ... @@ -26,7 +26,7 @@
<module>lh-smart-feeder</module>
<module>lh-server-ops</module>
<module>lh-http-service</module>
<module>lh-smart-feeder-pureness</module>
<module>lh-data-file-service</module>
</modules>
<properties>
... ...