diff --git a/internal/dao/bundleDao.go b/internal/dao/bundleDao.go index 26a4b87..592fdb3 100644 --- a/internal/dao/bundleDao.go +++ b/internal/dao/bundleDao.go @@ -135,23 +135,27 @@ func BundleListV2(req *bundle.BundleListRequest) (res *bundle.BundleListResponse res.Bundles = make([]*bundle.BundleProfile, 0) bundles := make([]*model.BundleProfile, 0) - query := app.ModuleClients.BundleDB.Model(&model.BundleProfile{}).Preload("BundleProfileLang") + baseQuery := app.ModuleClients.BundleDB.Model(&model.BundleProfile{}) if req.Name != "" { - query = query.Where("name like ?", "%"+req.Name+"%") + baseQuery = baseQuery.Where("name like ?", "%"+req.Name+"%") } if req.Content != "" { - query = query.Where("content like ?", "%"+req.Content+"%") + baseQuery = baseQuery.Where("content like ?", "%"+req.Content+"%") } if req.Language != "" { - query = query.Where("language like ?", req.Language) + baseQuery = baseQuery.Where("language like ?", req.Language) } - count := *query + var total int64 + if err = baseQuery.Count(&total).Error; err != nil { + return res, commonErr.ReturnError(err, msg.ErrorGetBundleList, "获取套餐总数失败: ") + } // 排序:sort 升序,相同 sort 按 created_at 倒序 + query := baseQuery.Preload("BundleProfileLang") query = query.Order("sort ASC").Order("created_at DESC") if req.PageSize != 0 && req.Page != 0 { query = query.Limit(int(req.PageSize)).Offset(int(req.Page-1) * int(req.PageSize)) @@ -223,10 +227,6 @@ func BundleListV2(req *bundle.BundleListRequest) (res *bundle.BundleListResponse } } - var total int64 - - count.Count(&total) - res.Total = int32(total) return