From 98b4566c6c710c5cda7f154f96d701e777e2ba03 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Tue, 29 Oct 2024 16:56:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=93=8D=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=AE=B0=E5=BD=95=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/common/ApiSaveConstant.java | 198 ------------------ .../iot/vmp/conf/ApiAccessFilter.java | 118 ----------- .../service/impl/PlatformServiceImpl.java | 2 +- .../iot/vmp/service/ILogService.java | 34 --- .../iot/vmp/service/impl/LogServiceImpl.java | 38 ---- .../iot/vmp/storager/dao/LogMapper.java | 37 ---- .../iot/vmp/vmanager/log/LogController.java | 103 --------- 数据库/2.7.3/初始化-mysql-2.7.3.sql | 13 -- .../2.7.3/初始化-postgresql-kingbase-2.7.3.sql | 13 -- 9 files changed, 1 insertion(+), 555 deletions(-) delete mode 100644 src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java delete mode 100644 src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java delete mode 100755 src/main/java/com/genersoft/iot/vmp/service/ILogService.java delete mode 100755 src/main/java/com/genersoft/iot/vmp/service/impl/LogServiceImpl.java delete mode 100755 src/main/java/com/genersoft/iot/vmp/storager/dao/LogMapper.java delete mode 100755 src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java diff --git a/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java b/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java deleted file mode 100644 index ed1c2b9b5..000000000 --- a/src/main/java/com/genersoft/iot/vmp/common/ApiSaveConstant.java +++ /dev/null @@ -1,198 +0,0 @@ -package com.genersoft.iot.vmp.common; - -/** - * 为API重命名, 方便向数据库记录数据的时候展示 - * @author lin - */ -public class ApiSaveConstant { - - public static String getVal(String key) { - String[] keyItemArray = key.split("/"); - if (keyItemArray.length <= 1 || !"api".equals(keyItemArray[1])) { - return null; - } - if (keyItemArray.length >= 4) { - switch (keyItemArray[2]) { - case "alarm": - if ("delete".equals(keyItemArray[3])) { - return "删除报警"; - } - break; - case "device": - switch (keyItemArray[3]) { - case "config": - if (keyItemArray.length >= 5 && "basicParam".equals(keyItemArray[4])) { - return "[设备配置] 基本配置设置命令"; - } - break; - case "control": - switch (keyItemArray[4]) { - case "teleboot": - return "[设备控制] 远程启动"; - case "record": - return "[设备控制] 录像控制"; - case "guard": - return "[设备控制] 布防/撤防命令"; - case "reset_alarm": - return "[设备控制] 报警复位"; - case "i_frame": - return "[设备控制] 强制关键帧"; - case "home_position": - return "[设备控制] 看守位控制"; - default: - return ""; - } - case "query": - if (keyItemArray.length <= 5) { - return null; - } - switch (keyItemArray[4]) { - case "devices": - if (keyItemArray.length < 7) { - return null; - } - switch (keyItemArray[6]) { - case "sync": - return "[设备查询] 同步设备通道"; - case "delete": - return "[设备查询] 移除设备"; - default: - return ""; - } - case "channel": - return "[设备查询] 更新通道信息"; - case "transport": - return "[设备查询] 修改数据流传输模式"; - default: - return ""; - } - default: - return ""; - } - - break; - case "gbStream": - switch (keyItemArray[3]) { - case "del": - return "移除通道与国标的关联"; - case "add": - return "添加通道与国标的关联"; - default: - return ""; - } - case "media": - break; - case "position": - if ("subscribe".equals(keyItemArray[3])) { - return "订阅位置信息"; - } - break; - case "platform": - switch (keyItemArray[3]) { - case "save": - return "添加上级平台"; - case "delete": - return "移除上级平台"; - case "update_channel_for_gb": - return "向上级平台添加国标通道"; - case "del_channel_for_gb": - return "从上级平台移除国标通道"; - default: - return ""; - } - case "platform_gb_stream": - break; - case "play": - switch (keyItemArray[3]) { - case "start": - return "开始点播"; - case "stop": - return "停止点播"; - case "convert": - return "转码"; - case "convertStop": - return "结束转码"; - case "broadcast": - return "语音广播"; - default: - return ""; - } - case "download": - switch (keyItemArray[3]) { - case "start": - return "开始历史媒体下载"; - case "stop": - return "停止历史媒体下载"; - default: - return ""; - } - case "playback": - switch (keyItemArray[3]) { - case "start": - return "开始视频回放"; - case "stop": - return "停止视频回放"; - default: - return ""; - } - case "ptz": - switch (keyItemArray[3]) { - case "control": - return "云台控制"; - case "front_end_command": - return "通用前端控制命令"; - default: - return ""; - } - case "gb_record": - break; - case "onvif": - break; - case "server": - if ("restart".equals(keyItemArray[3])) { - return "重启流媒体服务"; - } - break; - case "proxy": - switch (keyItemArray[3]) { - case "save": - return "保存代理"; - case "del": - return "移除代理"; - case "start": - return "启用代理"; - case "stop": - return "停用代理"; - default: - return ""; - } - case "push": - switch (keyItemArray[3]) { - case "save_to_gb": - return "将推流添加到国标"; - case "remove_form_gb": - return "将推流移出到国标"; - default: - return ""; - } - case "user": - switch (keyItemArray[3]) { - case "login": - return "登录"; - case "changePassword": - return "修改密码"; - case "add": - return "添加用户"; - case "delete": - return "删除用户"; - default: - return ""; - } - default: - return ""; - } - } - return null; - } -} - diff --git a/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java b/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java deleted file mode 100644 index e55c8ecf2..000000000 --- a/src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.genersoft.iot.vmp.conf; - -import com.genersoft.iot.vmp.common.ApiSaveConstant; -import com.genersoft.iot.vmp.conf.security.SecurityUtils; -import com.genersoft.iot.vmp.service.ILogService; -import com.genersoft.iot.vmp.storager.dao.dto.LogDto; -import com.genersoft.iot.vmp.utils.DateUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Component; -import org.springframework.util.ObjectUtils; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebFilter; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * @author lin - */ -@Slf4j -@WebFilter(filterName = "ApiAccessFilter", urlPatterns = "/api/*", asyncSupported=true) -@Component -public class ApiAccessFilter extends OncePerRequestFilter { - - @Autowired - private UserSetting userSetting; - - @Autowired - private ILogService logService; - - - @Override - protected void doFilterInternal(HttpServletRequest servletRequest, HttpServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException { - String username = null; - if (SecurityUtils.getUserInfo() == null) { - username = servletRequest.getParameter("username"); - }else { - username = SecurityUtils.getUserInfo().getUsername(); - } - long start = System.currentTimeMillis(); // 请求进入时间 - String uriName = ApiSaveConstant.getVal(servletRequest.getRequestURI()); - - filterChain.doFilter(servletRequest, servletResponse); - - if (uriName != null && userSetting != null && userSetting.getLogInDatabase() != null && userSetting.getLogInDatabase()) { - - LogDto logDto = new LogDto(); - logDto.setName(uriName); - if (ObjectUtils.isEmpty(username)) { - username = ""; - } - logDto.setUsername(username); - logDto.setAddress(servletRequest.getRemoteAddr()); - logDto.setResult(HttpStatus.valueOf(servletResponse.getStatus()).toString()); - logDto.setTiming(System.currentTimeMillis() - start); - logDto.setType(servletRequest.getMethod()); - logDto.setUri(servletRequest.getRequestURI()); - logDto.setCreateTime(DateUtil.getNow()); - logService.add(logDto); - - - } - } - - /** - * 获取IP地址 - * - * @param request 请求 - * @return request发起客户端的IP地址 - */ - private String getIP(HttpServletRequest request) { - if (request == null) { - return "0.0.0.0"; - } - - String Xip = request.getHeader("X-Real-IP"); - String XFor = request.getHeader("X-Forwarded-For"); - - String UNKNOWN_IP = "unknown"; - if (StringUtils.isNotEmpty(XFor) && !UNKNOWN_IP.equalsIgnoreCase(XFor)) { - //多次反向代理后会有多个ip值,第一个ip才是真实ip - int index = XFor.indexOf(","); - if (index != -1) { - return XFor.substring(0, index); - } else { - return XFor; - } - } - - XFor = Xip; - if (StringUtils.isNotEmpty(XFor) && !UNKNOWN_IP.equalsIgnoreCase(XFor)) { - return XFor; - } - - if (StringUtils.isBlank(XFor) || UNKNOWN_IP.equalsIgnoreCase(XFor)) { - XFor = request.getHeader("Proxy-Client-IP"); - } - if (StringUtils.isBlank(XFor) || UNKNOWN_IP.equalsIgnoreCase(XFor)) { - XFor = request.getHeader("WL-Proxy-Client-IP"); - } - if (StringUtils.isBlank(XFor) || UNKNOWN_IP.equalsIgnoreCase(XFor)) { - XFor = request.getHeader("HTTP_CLIENT_IP"); - } - if (StringUtils.isBlank(XFor) || UNKNOWN_IP.equalsIgnoreCase(XFor)) { - XFor = request.getHeader("HTTP_X_FORWARDED_FOR"); - } - if (StringUtils.isBlank(XFor) || UNKNOWN_IP.equalsIgnoreCase(XFor)) { - XFor = request.getRemoteAddr(); - } - return XFor; - } -} diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformServiceImpl.java index 54e7cc2ac..ea5dbd107 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/PlatformServiceImpl.java @@ -309,7 +309,7 @@ public class PlatformServiceImpl implements IPlatformService { platformCatchForNow.setKeepAliveReply(0); redisCatchStorage.updatePlatformCatchInfo(platformCatchForNow); } - log.info("[发送心跳] 国标级联 发送心跳, code: {}, msg: {}", eventResult.statusCode, eventResult.msg); + log.info("[国标级联] 发送心跳,平台{}({}), code: {}, msg: {}", platform.getName(), platform.getServerGBId(), eventResult.statusCode, eventResult.msg); }); } catch (SipException | InvalidArgumentException | ParseException e) { log.error("[命令发送失败] 国标级联 发送心跳: {}", e.getMessage()); diff --git a/src/main/java/com/genersoft/iot/vmp/service/ILogService.java b/src/main/java/com/genersoft/iot/vmp/service/ILogService.java deleted file mode 100755 index b7a67ede0..000000000 --- a/src/main/java/com/genersoft/iot/vmp/service/ILogService.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.genersoft.iot.vmp.service; - -import com.genersoft.iot.vmp.storager.dao.dto.LogDto; -import com.github.pagehelper.PageInfo; - -/** - * 系统日志 - */ -public interface ILogService { - - /** - * 查询日志 - * @param page 当前页 - * @param count 每页数量 - * @param query 搜索内容 - * @param type 类型 - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return 日志列表 - */ - PageInfo getAll(int page, int count, String query, String type, String startTime, String endTime); - - /** - * 添加日志 - * @param logDto 日志 - */ - void add(LogDto logDto); - - /** - * 清空 - */ - int clear(); - -} diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/LogServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/LogServiceImpl.java deleted file mode 100755 index c72d6c0ab..000000000 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/LogServiceImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.genersoft.iot.vmp.service.impl; - -import com.baomidou.dynamic.datasource.annotation.DS; -import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm; -import com.genersoft.iot.vmp.service.ILogService; -import com.genersoft.iot.vmp.storager.dao.LogMapper; -import com.genersoft.iot.vmp.storager.dao.dto.LogDto; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -@DS("master") -public class LogServiceImpl implements ILogService { - - @Autowired - private LogMapper logMapper; - - @Override - public PageInfo getAll(int page, int count, String query, String type, String startTime, String endTime) { - PageHelper.startPage(page, count); - List all = logMapper.query(query, type, startTime, endTime); - return new PageInfo<>(all); - } - - @Override - public void add(LogDto logDto) { - logMapper.add(logDto); - } - - @Override - public int clear() { - return logMapper.clear(); - } -} diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/LogMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/LogMapper.java deleted file mode 100755 index f1c45850f..000000000 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/LogMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.genersoft.iot.vmp.storager.dao; - -import com.genersoft.iot.vmp.storager.dao.dto.LogDto; -import org.apache.ibatis.annotations.Delete; -import org.apache.ibatis.annotations.Insert; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * 用于存储设服务的日志 - */ -@Mapper -@Repository -public interface LogMapper { - - @Insert("insert into wvp_log ( name,type,uri,address,result,timing,username,create_time) " + - "values (#{name}, #{type}, #{uri}, #{address}, #{result}, #{timing}, #{username}, #{createTime})") - int add(LogDto logDto); - - @Select(value = {""}) - List query(@Param("query") String query, @Param("type") String type, @Param("startTime") String startTime, @Param("endTime") String endTime); - - @Delete("DELETE FROM wvp_log") - int clear(); -} diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java deleted file mode 100755 index ea5b11cce..000000000 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.genersoft.iot.vmp.vmanager.log; - -import com.genersoft.iot.vmp.conf.UserSetting; -import com.genersoft.iot.vmp.conf.exception.ControllerException; -import com.genersoft.iot.vmp.conf.redis.RedisRpcConfig; -import com.genersoft.iot.vmp.conf.security.JwtUtils; -import com.genersoft.iot.vmp.service.ILogService; -import com.genersoft.iot.vmp.storager.dao.dto.LogDto; -import com.genersoft.iot.vmp.utils.DateUtil; -import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; -import com.github.pagehelper.PageInfo; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.security.SecurityRequirement; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.ObjectUtils; -import org.springframework.web.bind.annotation.*; - -@Tag(name = "日志管理") -@Slf4j -@RestController -@RequestMapping("/api/log") -public class LogController { - - @Autowired - private ILogService logService; - - @Autowired - private UserSetting userSetting; - - /** - * 分页查询日志 - * - * @param query 查询内容 - * @param page 当前页 - * @param count 每页查询数量 - * @param type 类型 - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return - */ - @GetMapping("/all") - @Operation(summary = "分页查询日志", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "query", description = "查询内容", required = true) - @Parameter(name = "page", description = "当前页", required = true) - @Parameter(name = "count", description = "每页查询数量", required = true) - @Parameter(name = "type", description = "类型", required = true) - @Parameter(name = "startTime", description = "开始时间", required = true) - @Parameter(name = "endTime", description = "结束时间", required = true) - public PageInfo getAll( - @RequestParam int page, - @RequestParam int count, - @RequestParam(required = false) String query, - @RequestParam(required = false) String type, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime - ) { - if (ObjectUtils.isEmpty(query)) { - query = null; - } - - if (!userSetting.getLogInDatabase()) { - log.warn("自动记录日志功能已关闭,查询结果可能不完整。"); - } - - if (ObjectUtils.isEmpty(startTime)) { - startTime = null; - }else if (!DateUtil.verification(startTime, DateUtil.formatter) ){ - throw new ControllerException(ErrorCode.ERROR400.getCode(), "startTime格式为" + DateUtil.PATTERN); - } - - if (ObjectUtils.isEmpty(endTime)) { - endTime = null; - }else if (!DateUtil.verification(endTime, DateUtil.formatter) ){ - throw new ControllerException(ErrorCode.ERROR400.getCode(), "endTime格式为" + DateUtil.PATTERN); - } - - return logService.getAll(page, count, query, type, startTime, endTime); - } - - /** - * 清空日志 - * - */ - @Operation(summary = "清空日志", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @DeleteMapping("/clear") - public void clear() { - logService.clear(); - } - - @Autowired - private RedisRpcConfig redisRpcConfig; - - @GetMapping("/test/count") - public Object count() { - return redisRpcConfig.getCallbackCount(); - } - - - -} diff --git a/数据库/2.7.3/初始化-mysql-2.7.3.sql b/数据库/2.7.3/初始化-mysql-2.7.3.sql index 62842dc9d..9644a932c 100644 --- a/数据库/2.7.3/初始化-mysql-2.7.3.sql +++ b/数据库/2.7.3/初始化-mysql-2.7.3.sql @@ -67,19 +67,6 @@ create table wvp_device_mobile_position create_time character varying(50) ); -create table wvp_log -( - id serial primary key, - name character varying(50), - type character varying(50), - uri character varying(200), - address character varying(50), - result character varying(50), - timing bigint, - username character varying(50), - create_time character varying(50) -); - create table wvp_device_channel ( id serial primary key, diff --git a/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql b/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql index ce77b59ae..6fe4a67a2 100644 --- a/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql +++ b/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql @@ -83,19 +83,6 @@ create table wvp_gb_stream constraint uk_gb_stream_unique_app_stream unique (app, stream) ); -create table wvp_log -( - id serial primary key, - name character varying(50), - type character varying(50), - uri character varying(200), - address character varying(50), - result character varying(50), - timing int8, - username character varying(50), - create_time character varying(50) -); - create table wvp_device_channel ( id serial primary key,