From 5dec8dcc45b40a1d7acdf05be2f2ffd00759535e Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期六, 07 六月 2025 16:11:30 +0800
Subject: [PATCH] 1、*-global.yml配置文件中增加有关萤石云应用的配置; 2、萤石云视频监控相关数据库设计(萤石应用+视频监控站); 3、remote模块增加定时下载萤石应用AccessToken的监听器,及网络下载逻辑,数据库存储等功能实现;
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsAppMapper.xml | 101 ++++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsCamera.java | 70 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsJob.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsCameraMapper.xml | 113 +++++++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskSupport.java | 12
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties | 1
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java | 8
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenData.java | 18 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/msCenter/Register2MwMsCenterListener.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenResponse.java | 19 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java | 135 +++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java | 3
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsCameraMapper.java | 25 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppCtrl.java | 48 +++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenQuartzJob.java | 25 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppListener.java | 120 ++++++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsApp.java | 60 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/fm/DyFmListener.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsAppMapper.java | 31 ++
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java | 4
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsListener.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 10
pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppSv.java | 47 +++
24 files changed, 847 insertions(+), 13 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskSupport.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskSupport.java
index 0fc205e..7b135ad 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskSupport.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskSupport.java
@@ -19,6 +19,17 @@
SchedulerTaskSupport.threadPoolPriority = threadPoolPriority;
}
}
+
+ /**
+ * 鍒犻櫎宸ヤ綔浠诲姟
+ * @param jobName
+ * @param jobGroupName
+ * @throws SchedulerException
+ */
+ public static void deleteJob(String jobName, String jobGroupName) throws SchedulerException{
+ Scheduler sched = SchedulerTaskFactory.getSingleScheduler() ;
+ sched.deleteJob(new JobKey(jobName, jobGroupName));
+ }
/**
* 娣诲姞姣廥绉掗挓閲嶅宸ヤ綔涓�娆$殑宸ヤ綔浠诲姟锛�
@@ -61,7 +72,6 @@
.withIntervalInSeconds(intervalInSeconds)
.withRepeatCount(repeatCount))
.build();
-
sched.scheduleJob(job, trigger);
sched.start();
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsAppMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsAppMapper.java
new file mode 100644
index 0000000..d257f4f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsAppMapper.java
@@ -0,0 +1,31 @@
+package com.dy.pipIrrGlobal.daoVi;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoVi.ViYsApp;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 10:44
+ * @Description
+ */
+@Mapper
+public interface ViYsAppMapper extends BaseMapper<ViYsApp> {
+ int deleteByPrimaryKey(Long id);
+
+ int deleteAll();
+
+ int insert(ViYsApp record);
+
+ int insertSelective(ViYsApp record);
+
+ ViYsApp selectByPrimaryKey(Long id);
+
+ List<ViYsApp> selectAll();
+
+ int updateByPrimaryKeySelective(ViYsApp record);
+
+ int updateByPrimaryKey(ViYsApp record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsCameraMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsCameraMapper.java
new file mode 100644
index 0000000..ceabdb3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoVi/ViYsCameraMapper.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrGlobal.daoVi;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoVi.ViYsCamera;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 16:00
+ * @Description
+ */
+@Mapper
+public interface ViYsCameraMapper extends BaseMapper<ViYsCamera> {
+ int deleteByPrimaryKey(Long id);
+
+ int insert(ViYsCamera record);
+
+ int insertSelective(ViYsCamera record);
+
+ ViYsCamera selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(ViYsCamera record);
+
+ int updateByPrimaryKey(ViYsCamera record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsApp.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsApp.java
new file mode 100644
index 0000000..91bc3c5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsApp.java
@@ -0,0 +1,60 @@
+package com.dy.pipIrrGlobal.pojoVi;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 10:44
+ * @Description
+ */
+
+/**
+ * 钀ょ煶浜戝簲鐢ˋpp鐩稿叧
+ */
+@TableName(value="vi_ys_app", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "钀ょ煶浜戝簲鐢ˋpp")
+public class ViYsApp implements BaseEntity {
+
+ public static final long serialVersionUID = 202506071603001L;
+
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 钀ょ煶浜戠殑AccessToken
+ */
+ @Schema(description = "钀ょ煶浜戝紑鏀惧钩鍙板簲鐢ˋccessToken", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String accessToken;
+
+ /**
+ * AccessToken杩囨湡鏃堕棿
+ */
+ @Schema(description = "AccessToken杩囨湡鏃堕棿锛堟绉掞級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Long expireTime;
+
+ /**
+ * AccessToken杩囨湡鏃堕棿
+ */
+ @Schema(description = "AccessToken杩囨湡鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Date expireDt;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsCamera.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsCamera.java
new file mode 100644
index 0000000..a7efb51
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoVi/ViYsCamera.java
@@ -0,0 +1,70 @@
+package com.dy.pipIrrGlobal.pojoVi;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 16:00
+ * @Description
+ */
+/**
+ * 钀ょ煶鎽勫儚鏈猴紙瑙嗛绔欙級
+ */
+
+@TableName(value="vi_ys_camera", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "瑙嗛鐩戞帶鎽勫儚鏈�")
+public class ViYsCamera implements BaseEntity {
+
+ public static final long serialVersionUID = 202506071604001L;
+
+ /**
+ * 涓婚敭
+ */
+ @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ @TableId(type = IdType.INPUT)
+ public Long id;
+
+ /**
+ * 鎽勫儚鏈哄簭鍒楀彿
+ */
+ @Schema(description = "鎽勫儚鏈哄簭鍒楀彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String devNo;
+
+ /**
+ * 瑙嗛绔欏悕绉�
+ */
+ @Schema(description = "瑙嗛绔欏悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String name;
+
+ /**
+ * 缁忓害
+ */
+ @Schema(description = "瑙嗛绔欑粡搴�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Double lng;
+
+ /**
+ * 绾害
+ */
+ @Schema(description = "瑙嗛绔欑含搴�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public Double lat;
+
+ /**
+ * 澶囨敞
+ */
+ @Schema(description = "澶囨敞淇℃伅", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String remark;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java
index 233e6f8..dacdd4b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java
@@ -15,14 +15,14 @@
public abstract class OrgListenerSupport {
/**
- * 瀹炲鍖�
+ * 鍒濆鍖�
*/
@SuppressWarnings("unused ")
protected void init(ResourceLoader resourceLoader) {
this.doInit(resourceLoader);
}
/**
- * 瀹炲鍖�
+ * 鍒濆鍖�
*/
@SuppressWarnings("unused ")
protected void doInit(ResourceLoader resourceLoader) {
@@ -61,7 +61,7 @@
// 寰楀埌
////////////////////////////////
/**
- * 瀹炲鍖�
+ * 鍒濆鍖�
*/
@SuppressWarnings("unused ")
protected List<Org.OrgVo> get(ResourceLoader resourceLoader) {
@@ -69,7 +69,7 @@
}
/**
- * 瀹炲鍖�
+ * 鍒濆鍖�
*/
@SuppressWarnings("unused ")
protected List<Org.OrgVo> doGet(ResourceLoader resourceLoader) {
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index e37b6d4..3f34f1f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -472,6 +472,16 @@
at-all: true
mobile: 18602657034
+#钀ょ煶浜戝紑鏀惧钩鍙�
+ys:
+ accessTokenExpireDay: 7 #AccessToken杩囨湡鏃堕棿锛屽崟浣嶅ぉ
+ appKey: 93987fd687444c23b427181a108f5253
+ secret: d73a08e4fb3c3d9d0b696630eea8bd4e
+ requestAccessTokenUrl: https://open.ys7.com/api/lapp/token/get
+ requestVideoCommonUrl: https://open.ys7.com/console/jssdk/pc.html
+ requestVideoCameraPreUrl: ezopen://open.ys7.com/
+ requestVideoCameraTailUrl: /1.live&themeId=
+
#闃�鎺у櫒鍙傛暟
rtu:
signalIntensity:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsAppMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsAppMapper.xml
new file mode 100644
index 0000000..84e711a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsAppMapper.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoVi.ViYsAppMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoVi.ViYsApp">
+ <!--@mbg.generated-->
+ <!--@Table vi_ys_app-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="access_token" jdbcType="VARCHAR" property="accessToken" />
+ <result column="expire_time" jdbcType="BIGINT" property="expireTime" />
+ <result column="expire_dt" jdbcType="TIMESTAMP" property="expireDt" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, access_token, expire_time, expire_dt
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from vi_ys_app
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <select id="selectAll" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from vi_ys_app
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from vi_ys_app
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <delete id="deleteAll" >
+ <!--@mbg.generated-->
+ delete from vi_ys_app
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsApp">
+ <!--@mbg.generated-->
+ insert into vi_ys_app (id, access_token, expire_time,
+ expire_dt)
+ values (#{id,jdbcType=BIGINT}, #{accessToken,jdbcType=VARCHAR}, #{expireTime,jdbcType=BIGINT},
+ #{expireDt,jdbcType=TIMESTAMP})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsApp">
+ <!--@mbg.generated-->
+ insert into vi_ys_app
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="accessToken != null">
+ access_token,
+ </if>
+ <if test="expireTime != null">
+ expire_time,
+ </if>
+ <if test="expireDt != null">
+ expire_dt,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="accessToken != null">
+ #{accessToken,jdbcType=VARCHAR},
+ </if>
+ <if test="expireTime != null">
+ #{expireTime,jdbcType=BIGINT},
+ </if>
+ <if test="expireDt != null">
+ #{expireDt,jdbcType=TIMESTAMP},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsApp">
+ <!--@mbg.generated-->
+ update vi_ys_app
+ <set>
+ <if test="accessToken != null">
+ access_token = #{accessToken,jdbcType=VARCHAR},
+ </if>
+ <if test="expireTime != null">
+ expire_time = #{expireTime,jdbcType=BIGINT},
+ </if>
+ <if test="expireDt != null">
+ expire_dt = #{expireDt,jdbcType=TIMESTAMP},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsApp">
+ <!--@mbg.generated-->
+ update vi_ys_app
+ set access_token = #{accessToken,jdbcType=VARCHAR},
+ expire_time = #{expireTime,jdbcType=BIGINT},
+ expire_dt = #{expireDt,jdbcType=TIMESTAMP}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsCameraMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsCameraMapper.xml
new file mode 100644
index 0000000..82ec412
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/ViYsCameraMapper.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoVi.ViYsCameraMapper">
+ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoVi.ViYsCamera">
+ <!--@mbg.generated-->
+ <!--@Table vi_ys_camera-->
+ <id column="id" jdbcType="BIGINT" property="id" />
+ <result column="dev_no" jdbcType="VARCHAR" property="devNo" />
+ <result column="name" jdbcType="VARCHAR" property="name" />
+ <result column="lng" jdbcType="DOUBLE" property="lng" />
+ <result column="lat" jdbcType="DOUBLE" property="lat" />
+ <result column="remark" jdbcType="VARCHAR" property="remark" />
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, dev_no, `name`, lng, lat, remark
+ </sql>
+ <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+ <!--@mbg.generated-->
+ select
+ <include refid="Base_Column_List" />
+ from vi_ys_camera
+ where id = #{id,jdbcType=BIGINT}
+ </select>
+ <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+ <!--@mbg.generated-->
+ delete from vi_ys_camera
+ where id = #{id,jdbcType=BIGINT}
+ </delete>
+ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsCamera">
+ <!--@mbg.generated-->
+ insert into vi_ys_camera (id, dev_no, `name`,
+ lng, lat, remark)
+ values (#{id,jdbcType=BIGINT}, #{devNo,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
+ #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR})
+ </insert>
+ <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsCamera">
+ <!--@mbg.generated-->
+ insert into vi_ys_camera
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="devNo != null">
+ dev_no,
+ </if>
+ <if test="name != null">
+ `name`,
+ </if>
+ <if test="lng != null">
+ lng,
+ </if>
+ <if test="lat != null">
+ lat,
+ </if>
+ <if test="remark != null">
+ remark,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=BIGINT},
+ </if>
+ <if test="devNo != null">
+ #{devNo,jdbcType=VARCHAR},
+ </if>
+ <if test="name != null">
+ #{name,jdbcType=VARCHAR},
+ </if>
+ <if test="lng != null">
+ #{lng,jdbcType=DOUBLE},
+ </if>
+ <if test="lat != null">
+ #{lat,jdbcType=DOUBLE},
+ </if>
+ <if test="remark != null">
+ #{remark,jdbcType=VARCHAR},
+ </if>
+ </trim>
+ </insert>
+ <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsCamera">
+ <!--@mbg.generated-->
+ update vi_ys_camera
+ <set>
+ <if test="devNo != null">
+ dev_no = #{devNo,jdbcType=VARCHAR},
+ </if>
+ <if test="name != null">
+ `name` = #{name,jdbcType=VARCHAR},
+ </if>
+ <if test="lng != null">
+ lng = #{lng,jdbcType=DOUBLE},
+ </if>
+ <if test="lat != null">
+ lat = #{lat,jdbcType=DOUBLE},
+ </if>
+ <if test="remark != null">
+ remark = #{remark,jdbcType=VARCHAR},
+ </if>
+ </set>
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoVi.ViYsCamera">
+ <!--@mbg.generated-->
+ update vi_ys_camera
+ set dev_no = #{devNo,jdbcType=VARCHAR},
+ `name` = #{name,jdbcType=VARCHAR},
+ lng = #{lng,jdbcType=DOUBLE},
+ lat = #{lat,jdbcType=DOUBLE},
+ remark = #{remark,jdbcType=VARCHAR}
+ where id = #{id,jdbcType=BIGINT}
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
index ec1f674..08e4d72 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
@@ -42,6 +42,7 @@
# 鐢樺窞锛� mqtt.enable=false
# 鍑夊窞锛� mqtt.enable=false
# 閲戝窛锛� mqtt.enable=true
+# mq/sd1/338220031439/weather
mqtt.enable=true
mqtt.topicAndQos=ym/sd1/10000/control/m1,1;ym/sd1/10000/control/m2,1;ym/sd1/control/m4,1;ym/sd1/10000/control/m80,1
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
index 6a4d699..365f3ec 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
@@ -120,7 +120,7 @@
@Override
public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
try {
- //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+ //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource鍒濆鍖栧畬鎴�
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
@@ -130,7 +130,7 @@
}
/**
- * 瀹炲鍖�
+ * 鍒濆鍖�
*/
@SuppressWarnings("unused ")
private void init(ApplicationReadyEvent event){
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/fm/DyFmListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/fm/DyFmListener.java
index ae28607..e7becdf 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/fm/DyFmListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/fm/DyFmListener.java
@@ -23,7 +23,7 @@
@Override
public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
try {
- //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+ //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource鍒濆鍖栧畬鎴�
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
index 3992ced..9ff5fe0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
@@ -30,7 +30,8 @@
"com.dy.pipIrrGlobal.daoFi",
"com.dy.pipIrrGlobal.daoAllRound",
"com.dy.pipIrrGlobal.daoLargeScreen",
- "com.dy.pipIrrGlobal.daoIr"
+ "com.dy.pipIrrGlobal.daoIr",
+ "com.dy.pipIrrGlobal.daoVi"
})
public class PipIrrRemoteApplication {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/msCenter/Register2MwMsCenterListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/msCenter/Register2MwMsCenterListener.java
index c7fcc00..4fcac51 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/msCenter/Register2MwMsCenterListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/msCenter/Register2MwMsCenterListener.java
@@ -51,7 +51,7 @@
@Override
public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
try {
- //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+ //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource鍒濆鍖栧畬鎴�
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppCtrl.java
new file mode 100644
index 0000000..baab85e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppCtrl.java
@@ -0,0 +1,48 @@
+package com.dy.pipIrrRemote.video;
+
+import com.dy.common.multiDataSource.DataSourceContext;
+import com.dy.pipIrrGlobal.pojoVi.ViYsApp;
+import com.dy.pipIrrGlobal.util.Org;
+import com.dy.pipIrrGlobal.util.OrgListenerSupport;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 12:45
+ * @Description 绫诲悕涓寘鍚獻nner锛岃〃绀哄唴閮ㄥ簲鐢ㄧ殑Controller
+ */
+@Slf4j
+@RestController
+public class YsAppCtrl extends OrgListenerSupport {
+
+ @Autowired
+ protected ResourceLoader resourceLoader ;
+
+ @Autowired
+ protected YsAppSv ysAppSv;
+
+ public ViYsApp selectSingletonYsApp(){
+ return ysAppSv.selectSingleton() ;
+ }
+
+ public Long saveAccessTokenOfYs(String accessToken, Long expireTime){
+ if(Org.OrgList == null || Org.OrgList.size() == 0){
+ super.init(resourceLoader);
+ }
+ List<Org.OrgVo> orgList = Org.OrgList ;
+ if(orgList != null || orgList.size() > 0){
+ for(Org.OrgVo vo : orgList){
+ //閬嶅巻鎵�鏈塷rg锛屽緱鍒板悇鑷殑钀ょ煶搴旂敤AccessToken
+ DataSourceContext.set(vo.tag);//璁剧疆鏁版嵁婧�
+ ysAppSv.deleteAll();
+ ysAppSv.save(accessToken, expireTime) ;
+ }
+ }
+ return null ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppListener.java
new file mode 100644
index 0000000..e3f6165
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppListener.java
@@ -0,0 +1,120 @@
+package com.dy.pipIrrRemote.video;
+
+
+import com.dy.common.multiDataSource.DataSourceContext;
+import com.dy.pipIrrGlobal.pojoVi.ViYsApp;
+import com.dy.pipIrrGlobal.util.Org;
+import com.dy.pipIrrGlobal.util.OrgListenerSupport;
+import com.dy.pipIrrRemote.video.ys.YsAppClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.lang.NonNull;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/6 17:19
+ * @Description 瑙嗛鐩戞帶
+ * 鐩戝惉鍣紝瀹炵幇鍔熻兘锛氬惎鍔ㄦ棩缁熻瀹氭椂浠诲姟
+ * 鏈洃鍚櫒涓嶈兘閲囩敤ServletContextListener鏂瑰紡锛屽洜涓篠ervlet涓婁笅鏂嘋ontext鍒涘缓鍚�
+ * Spring瀹瑰櫒骞舵病鏈夊垱寤哄畬锛岃�屾湰绫讳腑鐢ㄤ簡Spring瀹瑰櫒涓殑Bean锛屽嵆*Dao 銆�
+ * 鎵�浠ラ噰鐢ㄤ簡Spring浜嬩欢鐩戝惉鍣ㄦ潵瀹炵幇
+ */
+@Slf4j
+@Component
+public class YsAppListener extends OrgListenerSupport implements ApplicationListener<ApplicationReadyEvent> {
+
+ @Autowired
+ protected ResourceLoader resourceLoader ;
+
+ @Autowired
+ protected YsAppCtrl ysAppCtrl;
+
+ @Autowired
+ protected YsAppClient ysAppClient;
+
+ /**
+ * SpringBoot瀹瑰櫒宸茬粡鍑嗗濂戒簡锛屾墽琛屼笅闈㈡柟娉�
+ * @param event 浜嬩欢
+ */
+ @Override
+ public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
+ try {
+ //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource鍒濆鍖栧畬鎴�
+ Thread.sleep(1000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }finally {
+ try{
+ super.init(resourceLoader);
+ this.atSysStart(event);
+ }catch (Exception e){
+ log.error("娉ㄥ唽钀ょ煶浜戝畾鏃朵换鍔″嚭閿�", e);
+ }
+ }
+ }
+ /**
+ * 鍒濆鍖�
+ */
+ private void atSysStart(ApplicationReadyEvent event) throws Exception{
+ //鎵�鏈塐rg锛屽叡鐢ㄤ竴涓悿鐭冲簲鐢ㄧ殑AccessToken
+ boolean isNowGetNewAccessToken = false ;//褰撲笅鏄惁鑾峰緱AccessToken
+ List<Org.OrgVo> orgList = Org.OrgList ;
+ Map<String, ViYsApp> viYsAppMap = new HashMap<>() ;
+ if(orgList != null && orgList.size() >0){
+ for(Org.OrgVo vo : orgList){
+ //閬嶅巻鎵�鏈塷rg锛屽緱鍒板悇鑷殑钀ょ煶搴旂敤AccessToken
+ DataSourceContext.set(vo.tag);//璁剧疆鏁版嵁婧�
+ ViYsApp po = ysAppCtrl.selectSingletonYsApp() ;
+ if(po == null){
+ isNowGetNewAccessToken = true ;
+ }else{
+ viYsAppMap.put(vo.tag, po) ;
+ }
+ }
+ this.dealAtSysStart(viYsAppMap, isNowGetNewAccessToken);
+ }
+ }
+ private void dealAtSysStart(Map<String, ViYsApp> viYsAppMap, boolean isNowGetNewAccessToken){
+ if(!isNowGetNewAccessToken){
+ if(viYsAppMap != null && viYsAppMap.size() >0){
+ long nowMustAtMillis = System.currentTimeMillis() ;
+ Collection<ViYsApp> col = viYsAppMap.values() ;
+ Iterator<ViYsApp> it = col.iterator() ;
+ ViYsApp po ;
+ while (it.hasNext()){
+ po = it.next() ;
+ if(po.expireTime != null && nowMustAtMillis > po.expireTime){
+ isNowGetNewAccessToken = true ;
+ }
+ }
+ }else{
+ isNowGetNewAccessToken = true ;
+ }
+ }
+ if(isNowGetNewAccessToken){
+ this.ysAppClient.getAccessToken();
+ this.ysAppClient.reSetNextGetAccessToken(null) ;
+ }else{
+ long nextGetTokenAtMillis = 0L ;
+ Collection<ViYsApp> col = viYsAppMap.values() ;
+ Iterator<ViYsApp> it = col.iterator() ;
+ ViYsApp po ;
+ while (it.hasNext()){
+ po = it.next() ;
+ if(nextGetTokenAtMillis == 0 || nextGetTokenAtMillis > po.expireTime){
+ nextGetTokenAtMillis = po.expireTime ;
+ }
+ }
+ if(nextGetTokenAtMillis > 0L){
+ this.ysAppClient.reSetNextGetAccessToken(nextGetTokenAtMillis);
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppSv.java
new file mode 100644
index 0000000..8040186
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/YsAppSv.java
@@ -0,0 +1,47 @@
+package com.dy.pipIrrRemote.video;
+
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.daoVi.ViYsAppMapper;
+import com.dy.pipIrrGlobal.pojoVi.ViYsApp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 9:14
+ * @Description
+ */
+@Component
+public class YsAppSv {
+
+ @Autowired
+ protected ViYsAppMapper viYsAppDao ;
+
+
+ public ViYsApp selectSingleton(){
+ List<ViYsApp> all = this.viYsAppDao.selectAll() ;
+ if(all == null || all.size() == 0){
+ return null ;
+ }else{
+ return all.get(0) ;
+ }
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ public Long save(String accessToken, Long expireTime){
+ ViYsApp po = new ViYsApp() ;
+ po.accessToken = accessToken ;
+ po.expireTime = expireTime ;
+ po.expireDt = DateTime.getDate(expireTime) ;
+ this.viYsAppDao.insert(po) ;
+ return po.id ;
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(){
+ viYsAppDao.deleteAll() ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenData.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenData.java
new file mode 100644
index 0000000..54471a2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenData.java
@@ -0,0 +1,18 @@
+package com.dy.pipIrrRemote.video.ys;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 14:00
+ * @Description
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class YsAccessTokenData {
+ public String accessToken ;
+ public Long expireTime ;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenQuartzJob.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenQuartzJob.java
new file mode 100644
index 0000000..ab21d5f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenQuartzJob.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrRemote.video.ys;
+
+import com.dy.common.schedulerTask.TaskJob;
+import com.dy.common.springUtil.SpringContextUtil;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 15:39
+ * @Description
+ */
+public class YsAccessTokenQuartzJob extends TaskJob {
+ /**
+ * Quartz瀹氭椂浠诲姟锛屽叾涓嶅湪Spring瀹瑰櫒涓�
+ * @param ctx
+ * @throws JobExecutionException
+ */
+ @Override
+ public void execute(JobExecutionContext ctx) throws JobExecutionException {
+ YsAppClient ysCli = SpringContextUtil.getBean(YsAppClient.class);
+ ysCli.getAccessToken();
+ ysCli.reSetNextGetAccessToken(null);
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenResponse.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenResponse.java
new file mode 100644
index 0000000..9a4b8ed
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAccessTokenResponse.java
@@ -0,0 +1,19 @@
+package com.dy.pipIrrRemote.video.ys;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 14:00
+ * @Description
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class YsAccessTokenResponse {
+ public YsAccessTokenData data ;
+ public String code ;
+ public String msg ;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java
new file mode 100644
index 0000000..84ddc10
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java
@@ -0,0 +1,135 @@
+package com.dy.pipIrrRemote.video.ys;
+
+import com.dy.common.schedulerTask.SchedulerTaskSupport;
+import com.dy.pipIrrRemote.video.YsAppCtrl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.*;
+import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponentsBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/7 11:40
+ * @Description
+ */
+@Slf4j
+@Component
+public class YsAppClient {
+
+ private static final String JobName = "VideoYsJob" ;
+ private static final String JobGroupName = "VideoYsGroup" ;
+ private static final Integer ThreadPoolMaxCount = 1 ;//绾跨▼姹犵嚎绋嬫渶澶т釜鏁�
+ private static final Integer ThreadPoolPriority = 5 ;//绾跨▼浼樺厛绾�
+ private static final boolean quartzJobRunOneTimes = true ;//瀹氭椂浠诲姟鍙墽琛屼竴娆�
+
+ @Value("${ys.accessTokenExpireDay: 7}")
+ protected Integer accessTokenExpireDay;//AccessToken杩囨湡鏃堕棿锛屽崟浣嶅ぉ
+
+ @Value("${ys.appKey}")
+ protected String appKey;
+
+ @Value("${ys.secret}")
+ protected String secret;
+
+ @Value("${ys.requestAccessTokenUrl}")
+ protected String requestAccessTokenUrl;
+
+ @Autowired
+ protected RestTemplate restTemplate ;
+
+ @Autowired
+ protected YsAppCtrl ysVideoCtrl;
+
+ private Long computeNetGetAccessTokenAt(){
+ Long millis = (System.currentTimeMillis() + (accessTokenExpireDay * 24 * 60 * 60 * 1000) ) ;
+ // millis = 10000L ;
+ return millis ;
+ }
+
+ /**
+ * 鑾峰緱AccessToken
+ */
+ public void getAccessToken(){
+ if((appKey != null && appKey.trim().length() > 0)
+ && (secret != null && secret.trim().length() > 0)
+ && (requestAccessTokenUrl != null && requestAccessTokenUrl.trim().length() > 0)){
+ MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
+ formData.add("appKey", appKey);
+ formData.add("appSecret", secret);
+ YsAccessTokenResponse response = this.postRequest2Ys(restTemplate, requestAccessTokenUrl, formData);
+ if(response != null){
+ switch (response.code){
+ case "200" :{
+ this.dealSuccessOfRequestAccessTokenFromYs(response) ;
+ break ;
+ }
+ default: {
+ this.dealErrorOfRequestAccessTokenFromYs(response) ;
+ break ;
+ }
+ }
+ }
+ }
+ }
+ private void dealSuccessOfRequestAccessTokenFromYs(YsAccessTokenResponse response){
+ if(response != null && response.data != null){
+ ysVideoCtrl.saveAccessTokenOfYs(response.data.accessToken, response.data.expireTime);
+ }
+ }
+
+ private void dealErrorOfRequestAccessTokenFromYs(YsAccessTokenResponse response){
+ log.error("浠庤悿鐭冲紑鏀惧钩鍙拌幏寰桝ccessToken澶辫触锛岄敊璇爜锛歿}锛岄敊璇俊鎭細{}", response.code, response.msg);
+ }
+ /**
+ * 璁剧疆涓嬫鑾峰緱AccessToken
+ */
+ public void reSetNextGetAccessToken(Long getAccessTokenAt){
+ if(getAccessTokenAt == null || getAccessTokenAt.longValue() == 0){
+ getAccessTokenAt = this.computeNetGetAccessTokenAt() ;
+ }
+ //姣鍙樻垚绉�
+ int futureSecond = (int)((getAccessTokenAt - System.currentTimeMillis()) / 1000) ;
+ try {
+ SchedulerTaskSupport.setThreadPoolPro(ThreadPoolMaxCount , ThreadPoolPriority);
+ //鍥犱负瑕侀噸澶嶅姞宸ヤ綔浠诲姟锛屾墍浠ュ厛鎶婁笂娆″姞鐨勫悓缁勫悓鍚嶄换鍔″垹闄�
+ SchedulerTaskSupport.deleteJob(JobName , JobGroupName) ;
+ // 鍙墽琛屼竴娆$殑浠诲姟
+ SchedulerTaskSupport.addSecondlyJob(JobName , JobGroupName, YsAccessTokenQuartzJob.class, null, futureSecond, 1, 0) ;
+ } catch (Exception e) {
+ log.error("璁剧疆浠庤悿鐭冲紑鏀惧钩鍙板畾鏃惰幏寰桝ccessToken浠诲姟鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+ /**
+ * 鍚戣悿鐭冲紑鏀惧钩鍙板彂閫丳ost璇锋眰
+ * @param restTemplate SpringBoot鐨凴estTemplate
+ * @param toMwUrl web璇锋眰Url
+ * @param body 鏁版嵁
+ * @return
+ */
+ private YsAccessTokenResponse postRequest2Ys(RestTemplate restTemplate, String toMwUrl, Object body) {
+ String url = UriComponentsBuilder.fromUriString(toMwUrl)
+ .build()
+ .toUriString();
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+
+ HttpEntity<?> httpEntity = new HttpEntity<>(body, headers);
+ ResponseEntity<YsAccessTokenResponse> resEntity = null;
+ try {
+ // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+ resEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, YsAccessTokenResponse.class);
+ } catch (Exception e) {
+ log.error("浠庤悿鐭冲紑鏀惧钩鍙板畾鏃惰幏寰桝ccessToken浠诲姟鎵ц鏃跺彂鐢熷紓甯�", e);
+ }
+ if(resEntity != null){
+ return resEntity.getBody();
+ }
+ return null ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java
index 7a24c20..3effafc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java
@@ -17,7 +17,7 @@
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
try {
- //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+ //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource鍒濆鍖栧畬鎴�
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsJob.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsJob.java
index febf5bb..8cd56c4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsJob.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsJob.java
@@ -21,7 +21,7 @@
*/
public class StatisticsJob extends TaskJob {
- private static Logger log = LogManager.getLogger(Test.class.getName()) ;
+ private static Logger log = LogManager.getLogger(StatisticsJob.class.getName()) ;
private String orgTag ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsListener.java
index b313e63..4461e3a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StatisticsListener.java
@@ -53,7 +53,7 @@
@Override
public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
try {
- //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+ //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource鍒濆鍖栧畬鎴�
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
--
Gitblit v1.8.0