在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打造智能多媒体展厅、教学直播+录播+在线考试方案。如果大家有兴趣或者有需求,欢迎联系我们了解。
转载:https://blog.csdn.net/EasyDSS/article/details/111319400
查看评论