You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
3.7 KiB

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
}