package service import ( "pure-admin/global" "pure-admin/model" "pure-admin/model/request" "pure-admin/model/response" ) // @function: CreateBusiness // @description: 创建Business记录 // @param: business model.Business // @return: err error func CreateBusiness(business model.SellerStore) (err error) { err = global.MG_DB.Create(&business).Error return err } func DeleteBusiness(business model.SellerStore) (err error) { err = global.MG_DB.Delete(&business).Error return err } func DeleteBusinessByIds(ids request.IdsReq) (err error) { err = global.MG_DB.Delete(&[]model.SellerStore{}, "id in (?)", ids.Ids).Error return err } func UpdateBusiness(business model.SellerStore) (err error) { err = global.MG_DB.Updates(&business).Error return err } func GetBusiness(id uint) (v response.StoreInfoItem, err error) { var business model.SellerStore err = global.MG_DB.Where("id = ?", id).First(&business).Error if err != nil { return } var ( wallet model.Wallet account model.Account ) err = global.MG_DB.Model(&model.Wallet{}).Where("user_id=?", business.StoreNo).Find(&wallet).Error if err != nil { return v, err } err = global.MG_DB.Model(&model.Account{}).Where("user_id=?", business.StoreNo).Find(&account).Error if err != nil { return v, err } return response.StoreInfoItem{ ID: business.ID, StoreNo: business.StoreNo, Type: business.Type, Email: business.Email, Phone: account.Phone, PapaylName: account.AccountName, ValidMissionNum: 0, GoodsNum: 0, Balance: wallet.Balance, TransitBalance: wallet.TransitBalance, }, nil } func GetBusinessInfoList(info request.PageInfo) (list any, total int64, err error) { limit := info.PageSize offset := info.PageSize * (info.Page - 1) // 创建db db := global.MG_DB.Model(&model.SellerStore{}) var businesss []model.SellerStoreInfo // 如果有条件搜索 下方会自动创建搜索语句 err = db.Count(&total).Error if err != nil { return } err = db.Limit(limit).Offset(offset).Find(&businesss).Error if err != nil { return } return businesss, total, nil } func SearchBusiness(info request.SearchStore) (list any, total int64, err error) { var ( bIds = make([]string, 0) cIds = make([]string, 0) ) limit := info.PageSize offset := info.PageSize * (info.Page - 1) // 创建db db := global.MG_DB.Model(&model.SellerStore{}) if info.Email != "" { db = db.Where("email = ?", info.Email) } if info.StoreNo != "" { db = db.Where("store_no = ?", info.StoreNo) } if info.StartAt != "" && info.EndAt != "" { db = db.Where("created_at between ? and ?", info.StartAt, info.EndAt) } var businesss []model.SellerStoreInfo // 如果有条件搜索 下方会自动创建搜索语句 err = db.Count(&total).Error if err != nil { return } err = db.Limit(limit).Offset(offset).Find(&businesss).Error if err != nil { return } for _, v := range businesss { bIds = append(bIds, v.StoreNo) cIds = append(cIds, v.CreateBy) } var users []model.User err = global.MG_DB.Model(&model.User{}).Where("uuid in (?)", cIds).Find(&users).Error if err != nil { return } //上架商品数 missionCount, err := model.GetMissionCount(bIds) if err != nil { return } //发布任务数 goodsCount, err := model.GetGoodsCount(bIds) if err != nil { return } for k, v := range businesss { // businesss[k].ReleaseMissionNum = missionCount[v.StoreNo] businesss[k].ValidMissionNum = missionCount[v.StoreNo] businesss[k].GoodsNum = goodsCount[v.StoreNo] for i, _ := range users { if businesss[k].CreateBy == users[i].UUID.String() { businesss[k].Phone = users[i].Phone } } } return businesss, total, err }