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
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
|
|
}
|
|
|