【BUG修复】RTMP推流协议云边端架构安防视频直播点播平台EasyDSS点播文件分享打开后无法关闭问题修复

TSINGSEE青犀视频云边端架构视频平台都是能够对外进行分享的,分享有两种方式,一种是分享直播的二维码,用户可扫码观看,二是提供视频地址的,用户点击地址既可以观看分享文件。

在TSINGSEE青犀视频接到的 EasyDSS 平台定制项目当中,用户反馈EasyDSS分享按钮打开后,再次关闭后保存,系统提示操作成功。

但是查看列表,仍然显示为分享按钮是打开状态。

原因分析

打开后台数据库命令查看,查看数据库操作。当打开分享状态,发送命令如下图,数据库中发送了将 shared 打开的字段。

当关闭分享状态,发送命令如下图:

未查找到对 shared 字段的更改,应该将 shared 字段修改为 false。

EasyDSS 底层对数据库的操作使用了 gorm 库,因此查阅官方文档,代码操作使用了 Update() 方法。

err := impl.fromTable().Model(data).Update(data).Error

查阅官方文档后,官方说明此方法仅更新修改字段。比如 data 是一个结构体,如果其中有两个字段,data.name=“sam”, data.shared=false。因为 data.shared 结构体初始化的默认为 false,则调用Update()方法更新数据到数据库中的时候,不会更新 shared 对应的字段。比如如果 data.name=“”,也不会更新此字段。

解决方案

在数据库处理层新增一个更新所有字段的方法。

// 更新所有字段
func (impl *BaseDaoImpl) Save(data interface{}) error {
   err := impl.fromTable().Model(data).Save(data).Error

   if err != nil {
      return err
   }

   return impl.Get(data)
}

调用此方法,重新测试,关闭分享成功。

如果大家还想更加深入了解EasyDSS操作方法或者各项功能,也可以联系我们获取测试账号进行下载测试,测试期间可调用接口进行开发,TSINGSEE青犀视频欢迎大家的咨询。

原文地址:https://www.cnblogs.com/easydss/p/14049412.html