| | |
| | | limit := info.PageSize |
| | | offset := info.PageSize * (info.Page - 1) |
| | | db := global.GVA_DB.Model(&purchase.Purchase{}) |
| | | var ids []uint |
| | | var purchaseList = make([]*purchase.Purchase, 0) |
| | | if info.Keyword != "" { |
| | | db.Distinct("purchases.id").Joins("left join purchase_products on purchase_products.purchase_id = purchases.id"). |
| | | Joins("left join Product on Product.Id = purchase_products.product_id"). |
| | |
| | | Where("purchases.name like ?", "%"+info.Keyword+"%"). |
| | | Or("Product.name like ?", "%"+info.Keyword+"%"). |
| | | Or("supplier.name like ?", "%"+info.Keyword+"%") |
| | | err = db.Limit(limit).Offset(offset).Find(&ids).Error |
| | | if err != nil { |
| | | return purchaseList, total, err |
| | | } |
| | | } |
| | | var purchaseList []*purchase.Purchase |
| | | |
| | | err = db.Count(&total).Error |
| | | if err != nil { |
| | | return purchaseList, total, err |
| | | } |
| | | err = db.Limit(limit).Offset(offset).Find(&purchaseList).Error |
| | | if len(ids) != 0 { |
| | | db = global.GVA_DB.Model(&purchase.Purchase{}) |
| | | err = db.Where("id in (?)", ids).Find(&purchaseList).Error |
| | | } else { |
| | | err = db.Limit(limit).Offset(offset).Find(&purchaseList).Error |
| | | } |
| | | |
| | | return purchaseList, total, err |
| | | } |
| | | |