代码如下
func Query(ctx context.Context, in *grpcstub.QueryInfo) (*grpcstub.QueryResponse, error) {
//todo cache
var datas []model.CheckData
_db := DoSql(db.ReturnDB(), in).Select(in.Fields).Find(&datas)
if _db.Error != nil {
return nil, _db.Error
}
data_len := len(datas)
items := make([]*grpcstub.CompleteData, data_len)
for i := 0; i < data_len; i++ {
items[i].PackageName = "xxxx"
items[i].PackageName = datas[i].PackageName
items[i].Platform = datas[i].Platform
items[i].NewVersion = datas[i].Version
...未完待续
这是有问题的 因为只是把数组给初始化了
应该在每个再把每个结构体再初始化
这里有点坑
//todo cache
var datas []model.CheckData
_db := DoSql(db.ReturnDB(), in).Select(in.Fields).Find(&datas)
if _db.Error != nil {
return nil, _db.Error
}
data_len := len(datas)
items := make([]*grpcstub.CompleteData, data_len)
for i := 0; i < data_len; i++ {
item := new(grpcstub.CompleteData)
item.PackageName = datas[i].PackageName
item.Platform = datas[i].Platform
...
items[i] = item
}
return &grpcstub.QueryResponse{
Total: int64(data_len),
Data: items,
}, nil