【开发记录】国标GB28181协议国标视频平台EasyGBS云端录像批量设置功能开发

目前EasyGBS云端录像功能都是单个通道分开设置,在通道数多的情况的下,操作非常繁琐不便,因此我们决定对该处功能进行升级调整。(关于EasyGBS云端录像的其他内容,可以点击如何修改云端录像的存储位置云端录像与按需直播是否可以同时开启国标通道录像云端存储查询功能。)

在进行了不同形式的调整测试之后,我们打算添加批量设置云端录像的功能,并且可以对录像的时间段进行控制。

添加如下批量设置录像计划代码:

for _, v := range bodyMap {
        device := models.GetDevice(v.GetString("DeviceId"))

        if device == nil {
            c.AbortWithStatusJSON(400, fmt.Sprintf("device[%s] not found", v.GetString("DeviceId")))
            return
        }
        channelInfo := models.GetChannel(v.GetString("ChannelId"), v.GetString("DeviceId"))
        if channelInfo == nil {
            c.AbortWithStatusJSON(400, fmt.Sprintf("channel[%s] not found", v.GetString("ChannelId")))
            return
        }
        var updateMap = map[string]interface{}{"record": recordDay,
            "record_plan_switch": v.GetBool("RecordPlanSwitch")} //, "record_plan": string(weekJson.ToJSON())
        if v.GetString("RecordPlan") != "" {
            recordPlan := v.GetString("RecordPlan")
            recordPlanmap, err := values.NewValuesFromJSON([]byte(recordPlan))
            if err != nil {
                c.AbortWithStatusJSON(400, err.Error())
                return
            }
            //判断录像计划数据中每日的字段是否存在
            if !checkMap(recordPlanmap) {
                c.AbortWithStatusJSON(400, errors.New("请传入有效的数据"))
            }
            updateMap["record_plan"] = recordPlan
        }
        db.SQLite.Model(models.Channel{}).Where("id = ? and device_id=?",

修改代码后,EasyGBS云端录像可以配合前端页面对多个通道进行批量设置录像计划:

用户在界面点击批量设置过后,录像时间能够正常的按照设置的录像时间段来进行录像,最终达到要求。

EasyGBS视频平台已经运用到多个不同的领域及场景,比如:应急管理综合应用平台安保行业日常巡查视频监控系统,大家有兴趣可以去了解一下。同时,EasyGBS平台提供测试版本,欢迎大家的试用。

posted on 2020-10-28 17:42  EasyGBS  阅读(145)  评论(0编辑  收藏  举报