zoukankan      html  css  js  c++  java
  • 国标GB28181协议视频融合智能分析平台EasyCVR中创建数据库表结构体表名无效问题排查

    大家知道EasyCVR作为TSINGSEE青犀视频研发的多协议融合视频智能分析平台,具备目前市面上很多视频平台所不具备的能力,比如支持同时接入GB28181协议、RTSP拉流协议、HIKSDK、Ehome等私有协议,按需灵活扩展、收缩资源,免去了插件安装、浏览器限定等条件,实现了无插件、多平台自由观看回放。

    鉴于很多用户都需要在EasyCVR视频平台内增加用户管理的功能,我们就添加了用户及角色管理功能的接口,但是在创建数据库表结构体的时候,通过指定表名tablename方法重写该数据表,发现前端界面显示的数据表并没有生效。

    注:结构包含构造函数、常量、字段、方法、属性、索引器、运算符、事件和嵌套类型,但如果同时需要上述几种成员,则应当考虑改为使用类作为类型。结构可以实现接口,但它们无法继承另一个结构。

    原始数据库代码如下:

    func (Device) TableName() string {
    	return "t_devices"
    }
    
    for _, value := range dbDevices {
    		if value.DeviceType == "GB" {
    			gbsdevices := make([]*models.Device, 0)
    			q := db.SQLite.Model(models.Device{})
    			q.Where("[index] = ?", value.DeviceID).Find(&gbsdevices)
    			if len(gbsdevices) != 1 {
    				continue
    			}
    

    该代码不生效后,我们对代码进行了如下修改:

    for _, value := range dbDevices {
    		if value.DeviceType == "GB" {
    			gbsdevices := make([]*models.Device, 0)
    			q := db.SQLite.Model(models.Device{})
    			q.Table(models.Device{}.TableName()).Where("[index] = ?", value.DeviceID).Find(&gbsdevices)
    			if len(gbsdevices) != 1 {
    				continue
    			}
    
    

    修改后再次查看前端,数据表显示正常:

    EasyCVR视频智能分析平台支持阿里云、腾讯云、华为云、七牛云等,支持S3和Swift接口的对象存储服务,简单配置,部署更高效,当然EasyCVR也可以通过GB28181协议与第三方平台进行级联,联动不同网络环境下的多个平台。

    TSINGSEE青犀视频研发的EasyGBS视频平台也支持GB28181协议设备的接入,如果大家需要了解更多EasyCVR及GB28181协议相关内容,欢迎咨询,同时TSINGSEE青犀视频开发的云边端架构视频平台支持试用,欢迎大家测试!

  • 相关阅读:
    雅虎公司C#笔试题
    DES
    从Socket看Visual C#.Net网络程序开发
    进一步接触C#委托与事件
    学习C#消息:循序渐进
    解惑答疑:C#委托和事件
    利用Visual C#实现Windows管道技术1
    使用命名管道通过网络在进程之间进行通信
    C#体验编程技术 类与对象
    学习C#实现HTTP协议:多线程文件传输
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14116365.html
Copyright © 2011-2022 走看看