Count 方法这里怎么会多出一个 and 条件,导致结果不正确呢,我代码有问题么?
go 新手 求指点
代码片段
util 中部分定义:
package util
type Result struct {
Code uint `json:"code"`
Data interface{} `json:"data"`
}
// NewResult creates a result with Code=0, Msg="", Data=nil.
func NewResult() *Result {
return &Result{
Code: 200,
Data: nil,
}
}
type JobRequestParam struct {
ID []uint `form:"id" binding:"required"`
OpsID uint `form:"ops_id" binding:"required"`
RunTime string `form:"run_time"`
}
查询方法
package service
import (
"OpsSimon/util"
"log"
"sync"
)
// AssetsService 资产对象
type AssetsService struct {
mutex *sync.Mutex
}
// Assets 资产实例
var Assets = &AssetsService{
mutex: &sync.Mutex{},
}
// GetList 列表查询
func (srv *AssetsService) GetList(result interface{}, id []uint) (total int) {
err := db.Where(id).Find(result).Count(&total).Error
if err != nil {
log.Println(err.Error())
}
return total
}
执行
func doJob(c *gin.Context) {
result := util.NewResult()
defer c.JSON( http.StatusOK, result)
var arg util.JobRequestParam
err := c.BindJSON(&arg)
if err != nil {
result.Code = http.StatusBadRequest
result.Data = err.Error()
return
}
log.Println(arg.ID)
log.Println(arg.OpsID)
log.Println("len:", len(arg.ID))
var host model.AssetsHosts
total := service.Assets.GetList(&host, arg.ID)
log.Println("total:", total)
if total != len(arg.ID) {
result.Code = http.StatusNotFound
result.Data = "Some host not found!"
return
}
}