在 EasyDSS 的定制项目中,TSINGSEE青犀视频研发团队曾开发过将目录分配给指定用户的功能。客户测试过程中发现绑定用户无问题,但是解绑用户,会将用户的所有目录全部解除绑定。

以下图片中的1号目录的普通用户1应该在选中状态。

查看解绑操作,解绑的原理是用户选定后,系统从数据库中删除被选定的对应数据,我们写入的代码如下:

data := table.UserVodDir{
   UserID:   unbindUserID,
   VodDirID: dir.ID,
}
err := tx.Delete(&data).Error

经过测试,以上代码会删除多条数据,导致出现删除的数据与选中数据不匹配的问题。该代码会将用户 ID 为 unbindUserID 的所有数据全部删除,第二个条件目录 ID 为 dir.ID 的条件并未起作用,主要是用法的不对。因此我们修改一下使用方法。

将以上代码修改成仅会删除一条数据的方式。

err := tx.Where("user_id = ?", unbindUserID).Where("vod_dir_id = ?", dir.ID).Delete(&table.UserVodDir{}).Error

修改后,再次测试同样的操作,显示普通用户不会被解绑,该问题已经被修复。

TSINGSEE青犀视频开发的EasyDSS直播点播平台已经成功运用于多个项目场景中,经过实践证明EasyDSS是一套稳定且可靠的流媒体服务平台,比如EasyDSS打造智能多媒体展厅教学直播+录播+在线考试方案。如果大家有兴趣或者有需求,欢迎联系我们了解。

posted on 2020-12-18 17:39  EasyDSS  阅读(62)  评论(0编辑  收藏  举报