GB28181/RTSP/Ehome协议视频智能分析平台EasyCVR新增一键生成导出分享链接信息功能

EasyCVR视频融合平台能够兼容RTSP、GB28181、SDK、Ehome等协议前端设备的接入,也正因如此,很多设备数量多且复杂的项目团队会找到我们,希望通过EasyCVR来解决问题。

很多项目团队由于项目庞大,视频通道高达百路或者千路,急需一款高性能的视频集中管理平台来集中管理。一般此类项目通道数量大,需要更加便捷的操作到导入如此多的通道,在分享时,如果手动复制粘贴分享链接到自己的业务平台也是不现实的。

针对该问题,我们也对EasyCVR的功能做了新增,EasyCVR1.0.40版本内提供了一键导出分享链接到csv表格中的功能,现实如下:

客户可以根据导出的分享csv表格,编写脚本文件直接将csv中的信息导入数据库中,实现一键添加,极大方便了管理者的运维。

我们实现的代码如下,大家可以参考:

func (h *APIHandler)GetShareAddr(c *gin.Context){
	columns := [][]string{{"CameraName", "BranchName", "Iframes", "ShareConnection"}}
	devs,err:=cvrdao.GetDeviceDao().GetAll()
	if err == nil{
		for _,v:=range *devs{
			chns,e:=cvrdao.GetChannelDao().GetAllByDeviceID(v.DeviceID)
			if e == nil{
				for _,value:=range *chns{
					m := []string{value.Name, v.DeviceName,
					    fmt.Sprintf("<iframe src=\"http://127.0.0.1:18000/#/players/%d/%d/1?autoplay=true\" allowfullscreen allow=\"autoplay\" ></iframe>",v.DeviceID,value.ChannelID),
						fmt.Sprintf("http://127.0.0.1:18000/#/players/%d/%d/1?autoplay=true",v.DeviceID,value.ChannelID),}
					columns = append(columns, m)
				}
			}
		}
	}
	ExportCsv("share.csv",columns)
}

func ExportCsv(filePath string, data [][]string) {
	fp, err := os.OpenFile(filePath,os.O_RDWR|os.O_CREATE|os.O_TRUNC,0664)
	if err != nil {
		log.Printf("创建文件["+filePath+"]句柄失败,%v", err)
		return
	}
	defer fp.Close()
	fp.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM
	w := csv.NewWriter(fp) //创建一个新的写入文件流
	w.WriteAll(data)
	w.Flush()
}
posted on 2020-12-25 16:43  TSINGSEE  阅读(90)  评论(0编辑  收藏  举报