大家知道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青犀视频开发的云边端架构视频平台支持试用,欢迎大家测试!