视频上云网关服务平台EasyNTS“已删除”搜索框内搜索结果不准确问题修复

EasyNTS平台正在进行界面的更新,但是发现当用户想要在设备列表的“已删除”一栏中按照条件搜索,未删除的设备也会被搜索出来。按照正常的来说,只会在删除数据中进行条件检索,但是获得的列表却还有未删除的设备信息。

检查代码后,我们发现是因为在进行关键字和状态两种条件同时筛选的时候,关键字筛选将状态筛选覆盖了,所以导致在已删除状态中能看到所有能匹配到的设备信息。

对于此问题的解决,我们可以将db对象添加多个条件搜索,其中对于删除和未删除的状态检索需要放在最前面,这样可以避免和关键字搜索条件冲突。

代码示例:

if pageForm.State != "" {
   db = db.Where(consts.SqlWhereState, estring.ParseInt(pageForm.State))
} else {
   db = db.Where(consts.SqlWhereState, consts.DataStateValid)
}
 
if id != consts.EmptyString {
   db = db.Where("id = ?", id)
}
if pageForm.Q != "" {
   db = db.Where("(device_name like ?", "%"+pageForm.Q+"%").Or("device_id like ?", "%"+pageForm.Q+"%").Or("device_ip like ?)", "%"+pageForm.Q+"%")
}
if pageForm.Sort != "" {
   db = db.Order(fmt.Sprintf("%s %s", gorm.ToDBName(pageForm.Sort), strings.TrimSuffix(pageForm.Order, "ending")))
}

  

修改代码后,再次在“已删除”栏中搜索,搜索结果已经恢复正常了。

新的平台目前正在不断优化中,EasyNTS目前也仍然可以使用,TSINGSEE青犀视频提供了试用版本,如果大家还想了解更多关于EasyNTS相关内容,欢迎来试用了解。

原文地址:https://www.cnblogs.com/EasyNVR/p/13935258.html