package service import ( "time" "pure-admin/global" "pure-admin/model" "pure-admin/model/request" "pure-admin/model/response" ) func ListGoods(info request.PageInfo) (list any, total int64, err error) { limit := info.PageSize offset := info.PageSize * (info.Page - 1) db := global.MG_DB.Model(&model.TbGoods{}) err = db.Count(&total).Error if err != nil { return nil, 0, err } var res []model.TbGoods4List err = db.Select("id,title,tags,retail_price,price_min,price_max,stock,sales,online,created_at").Order("id DESC").Limit(limit).Offset(offset).Find(&res).Error if err != nil { return nil, 0, err } return res, total, nil } func SearchGoods(info request.SearchGoods) (res any, total int64, err error) { var ( bIds = make([]string, 0) ) limit := info.PageSize offset := info.PageSize * (info.Page - 1) db := global.MG_DB.Model(&model.TbGoods{}) if info.Id != 0 { db = db.Where("id = ?", info.Id) } if info.Title != "" { db = db.Where("title like ?", "%"+info.Title+"%") } //取消账号,使用邮箱搜索 if info.StoreNo != "" { //db = db.Where("store_no = ?", info.StoreNo) db = db.Joins("join seller_store on seller_store.store_no = tb_goods.store_no").Where("seller_store.email like ?", "%"+info.StoreNo+"%") } if info.Status == 1 { // on/off db = db.Where("online = ?", "on") } if info.Status == 2 { // on/off db = db.Where("stock = 0") } if info.Status == 3 { // on/off db = db.Where("online = ?", "off") } err = db.Count(&total).Error if err != nil { return nil, 0, err } var list []model.TbGoods err = db.Select("tb_goods.id,title,retail_price,cover,tags,tb_goods.stock,tb_goods.sales,tb_goods.store_no,tb_goods.created_at,tb_goods.price_min,tb_goods.price_max").Order("id DESC").Limit(limit).Offset(offset).Find(&list).Error if err != nil { return nil, 0, err } resp := make([]response.Goods, 0) for _, v := range list { bIds = append(bIds, v.StoreNo) resp = append(resp, response.Goods{ Id: v.ID, Cover: v.Cover, Title: v.Title, RetailPrice: v.RetailPrice, Tags: v.Tags, Stock: v.Stock, Sales: v.Sales, StoreNo: v.StoreNo, CreatedAt: v.CreatedAt, PriceMax: v.PriceMax, PriceMin: v.PriceMin, }) } // 获取商家信息 business, err := model.GetBusinessEmail(bIds) if err != nil { return nil, 0, err } for k, v := range resp { resp[k].StoreNo = business[v.StoreNo] } return resp, total, nil } func GetGoodsVisitCount() (total, yesterday int64) { global.MG_DB.Model(&model.GoodsVisit{}).Count(&total) day := time.Now().AddDate(0, 0, -1) now := time.Now() global.MG_DB.Model(&model.GoodsVisit{}).Where("created_at BETWEEN ? AND ?", day.Format("2006-01-02 00:00:00"), now.Format("2006-01-02 00:00:00")).Count(&yesterday) return } func GetGoodsCount() (total, yesterday int64) { global.MG_DB.Model(&model.TbGoods{}).Count(&total) day := time.Now().AddDate(0, 0, -1) now := time.Now() global.MG_DB.Model(&model.TbGoods{}).Where("created_at BETWEEN ? AND ?", day.Format("2006-01-02 00:00:00"), now.Format("2006-01-02 00:00:00")).Count(&yesterday) return }