This commit is contained in:
邹宗楠
2026-06-15 11:29:43 +08:00
parent b71ad6737f
commit 6bb017e73b
8 changed files with 68841 additions and 68892 deletions

View File

@@ -3,11 +3,8 @@ package bidding
import (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"sort"
"strconv"
"strings"
@@ -15,93 +12,93 @@ import (
)
// GetStatisticsList 京西数据查询
func GetStatisticsList(start, end time.Time, storeIds []int, offset, pageSize int) (*model.PagedInfo, error) {
return dao.GetStatistics(dao.GetDB(), start, end, storeIds, offset, pageSize)
}
//func GetStatisticsList(start, end time.Time, storeIds []int, offset, pageSize int) (*model.PagedInfo, error) {
// return dao.GetStatistics(dao.GetDB(), start, end, storeIds, offset, pageSize)
//}
// GetMTInfo 更新美团门店信息
func GetMTInfo() []error {
var db = dao.GetDB()
var errList = make([]error, 0, 0)
// 获取当前一月有效订单的门店信息
effectiveStores, err := dao.StoreInformationStatistics(db)
if err != nil {
return append(errList, err)
}
var mtApi *mtwmapi.API
for _, v := range effectiveStores {
if v.VendorOrgCode == globals.Mtwm2Code {
mtApi = api.Mtwm2API
mtApi.SetToken(v.MtwmToken)
} else {
mtApi = api.MtwmAPI
}
statistics := &model.ActivityStation{
StoreID: v.JxStoreID,
VendorID: model.VendorIDMTWM,
VendorStoreID: v.VendorStoreID,
BrandID: v.VendorOrgCode,
//Activity1: 0,
//Activity2: 0,
//Activity: 0,
//StoreSkuNum: 0,
//StoreRating: 0,
//DeliveryFee: "",
//DeliveryFee2: "",
PromotionFee: "暂无法获取",
//BusinessHours: "",
}
dao.WrapAddIDCULEntity(statistics, "system")
down, up := getActivityCount(mtApi, v.VendorStoreID)
statistics.Activity1 = int64(down)
statistics.Activity2 = int64(up)
statistics.Activity = int64(down + up)
score, err := mtApi.CommentScore(v.VendorStoreID)
if err != nil {
errList = append(errList, fmt.Errorf("%s获取评分错误:%s", v.VendorStoreID, err.Error()))
}
if score != nil {
statistics.StoreRating = score.AvgPoiScore
} else {
statistics.StoreRating = 0
}
// 获取门店营业时长
detail, _ := mtApi.PoiMGet([]string{v.VendorStoreID})
if detail != nil {
statistics.BusinessHours, err = getStoreShippingTime(detail[0].ShippingTime)
if err != nil {
errList = append(errList, fmt.Errorf("%s获取营业时长错误:%s", v.VendorStoreID, err.Error()))
statistics.BusinessHours = err.Error()
}
statistics.DeliveryFee2 = utils.Float64ToStr(detail[0].ShippingFee)
}
// 获取门店起送价
result, err := mtApi.ShippingList(v.VendorStoreID)
if err != nil {
errList = append(errList, fmt.Errorf("%s获取起送价错误:%s", v.VendorStoreID, err.Error()))
statistics.DeliveryFee = err.Error()
}
shippingList := make([]ShippingList, 0, 0)
for _, v2 := range result {
shippingList = append(shippingList, ShippingList{
TimeRange: utils.Interface2String(v2["time_range"]),
MinPrice: utils.MustInterface2Float64(v2["min_price"]),
ShippingFee: utils.MustInterface2Float64(v2["shipping_fee"]),
})
}
statistics.DeliveryFee = utils.Format4Output(shippingList, false)
if len(result) == 0 {
statistics.DeliveryFee = ""
}
dao.CreateEntity(db, statistics)
}
return errList
}
//func GetMTInfo() []error {
// var db = dao.GetDB()
// var errList = make([]error, 0, 0)
// // 获取当前一月有效订单的门店信息
// effectiveStores, err := dao.StoreInformationStatistics(db)
// if err != nil {
// return append(errList, err)
// }
//
// var mtApi *mtwmapi.API
// for _, v := range effectiveStores {
// if v.VendorOrgCode == globals.Mtwm2Code {
// mtApi = api.Mtwm2API
// mtApi.SetToken(v.MtwmToken)
// } else {
// mtApi = api.MtwmAPI
// }
//
// statistics := &model.ActivityStation{
// StoreID: v.JxStoreID,
// VendorID: model.VendorIDMTWM,
// VendorStoreID: v.VendorStoreID,
// BrandID: v.VendorOrgCode,
// //Activity1: 0,
// //Activity2: 0,
// //Activity: 0,
// //StoreSkuNum: 0,
// //StoreRating: 0,
// //DeliveryFee: "",
// //DeliveryFee2: "",
// PromotionFee: "暂无法获取",
// //BusinessHours: "",
// }
// dao.WrapAddIDCULEntity(statistics, "system")
// down, up := getActivityCount(mtApi, v.VendorStoreID)
// statistics.Activity1 = int64(down)
// statistics.Activity2 = int64(up)
// statistics.Activity = int64(down + up)
// score, err := mtApi.CommentScore(v.VendorStoreID)
// if err != nil {
// errList = append(errList, fmt.Errorf("%s获取评分错误:%s", v.VendorStoreID, err.Error()))
// }
// if score != nil {
// statistics.StoreRating = score.AvgPoiScore
// } else {
// statistics.StoreRating = 0
// }
//
// // 获取门店营业时长
// detail, _ := mtApi.PoiMGet([]string{v.VendorStoreID})
// if detail != nil {
// statistics.BusinessHours, err = getStoreShippingTime(detail[0].ShippingTime)
// if err != nil {
// errList = append(errList, fmt.Errorf("%s获取营业时长错误:%s", v.VendorStoreID, err.Error()))
// statistics.BusinessHours = err.Error()
// }
// statistics.DeliveryFee2 = utils.Float64ToStr(detail[0].ShippingFee)
// }
// // 获取门店起送价
// result, err := mtApi.ShippingList(v.VendorStoreID)
// if err != nil {
// errList = append(errList, fmt.Errorf("%s获取起送价错误:%s", v.VendorStoreID, err.Error()))
// statistics.DeliveryFee = err.Error()
// }
// shippingList := make([]ShippingList, 0, 0)
// for _, v2 := range result {
// shippingList = append(shippingList, ShippingList{
// TimeRange: utils.Interface2String(v2["time_range"]),
// MinPrice: utils.MustInterface2Float64(v2["min_price"]),
// ShippingFee: utils.MustInterface2Float64(v2["shipping_fee"]),
// })
// }
// statistics.DeliveryFee = utils.Format4Output(shippingList, false)
// if len(result) == 0 {
// statistics.DeliveryFee = ""
// }
//
// dao.CreateEntity(db, statistics)
// }
//
// return errList
//}
// 获取门店折扣活动商品数量
func getActivityCount(api *mtwmapi.API, vendorStoreId string) (int, int) {
@@ -228,3 +225,7 @@ type ShippingList struct {
MinPrice float64 `json:"min_price"` // 最小起送价
ShippingFee float64 `json:"shipping_fee"` // 配送费
}
func StatisticsOrderCount(startTime, endTime time.Time, storeId []int, vendorId []int, offset, pageSize int) (*model.PagedInfo, error) {
return dao.StatisticsOrderCount(dao.GetDB(), startTime, endTime, storeId, vendorId, offset, pageSize)
}

View File

@@ -208,11 +208,12 @@ func Init() {
"05:00:00",
})
ScheduleTimerFunc("UpdateMtActivityInfo", func() {
bidding.GetMTInfo()
}, []string{
"13:00:00",
})
// 更新美团店铺信息
//ScheduleTimerFunc("UpdateMtActivityInfo", func() {
// bidding.GetMTInfo()
//}, []string{
// "13:00:00",
//})
/// 更新淘鲜达结算信息
//ScheduleTimerFunc("UpdateTaoTotalMoney", func() {
// orderman.UpdateTaoSettleInfo()

View File

@@ -62,3 +62,56 @@ func GetStatistics(db *DaoDB, startTime, endTime time.Time, storeId []int, offse
return pageInfo, err
}
type StatisticsOrderObj struct {
OrderCount int64 `json:"order_count"`
Name string `json:"name"`
Mobile string `json:"mobile"`
}
// StatisticsOrderCount 统计负责人订单量
func StatisticsOrderCount(db *DaoDB, startTime, endTime time.Time, storeId []int, vendorId []int, offset, pageSize int) (pageInfo *model.PagedInfo, err error) {
sql := `
SELECT SQL_CALC_FOUND_ROWS
COUNT(a.vendor_order_id) AS order_count,
c.name AS name,
c.mobile AS mobile
FROM goods_order a
LEFT JOIN store b ON IF(a.store_id = 0, a.jx_store_id, a.store_id) = b.id
LEFT JOIN user c ON c.mobile = b.market_man_phone
WHERE 1 = 1
`
param := []interface{}{}
if !utils.IsTimeZero(startTime) {
sql += ` AND a.order_created_at >= ?`
param = append(param, startTime)
}
if !utils.IsTimeZero(endTime) {
sql += ` AND a.order_created_at <= ?`
param = append(param, endTime)
}
if len(storeId) > 0 {
sql += " AND IF(a.store_id <> '', a.store_id, a.jx_store_id) IN (" + dao.GenQuestionMarks(len(storeId)) + ")"
param = append(param, storeId)
}
if len(vendorId) != 0 {
sql += " AND a.vendor_id IN (" + dao.GenQuestionMarks(len(vendorId)) + ")"
param = append(param, vendorId)
}
sql += `AND a.status = 110 `
sql += `GROUP BY c.mobile, c.name ORDER BY order_count desc LIMIT ? OFFSET ?`
param = append(param, jxutils.FormalizePageSize(pageSize), offset)
txDB, _ := Begin(db)
defer Commit(db, txDB)
var msgList []*StatisticsOrderObj
if err = GetRowsTx(txDB, &msgList, sql, param...); err == nil {
pageInfo = &model.PagedInfo{
TotalCount: GetLastTotalRowCount2(db, txDB),
Data: msgList,
}
}
return pageInfo, err
}