This commit is contained in:
邹宗楠
2026-03-31 14:02:51 +08:00
parent 29de059c4f
commit 44b4249bc8
9 changed files with 63726 additions and 63088 deletions

View File

@@ -14,11 +14,19 @@ import (
"time"
)
func GetMTInfo() {
// 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)
}
// GetMTInfo 更新美团门店信息
func GetMTInfo() []error {
var db = dao.GetDB()
var errList = make([]error, 0, 0)
// 获取当前一月有效订单的门店信息
effectiveStores, err := dao.StoreInformationStatistics()
effectiveStores, err := dao.StoreInformationStatistics(db)
if err != nil {
return
return append(errList, err)
}
var mtApi *mtwmapi.API
@@ -40,9 +48,9 @@ func GetMTInfo() {
//Activity: 0,
//StoreSkuNum: 0,
//StoreRating: 0,
DeliveryFee: "",
//DeliveryFee: "",
//DeliveryFee2: "",
PromotionFee: "",
PromotionFee: "暂无法获取",
//BusinessHours: "",
}
dao.WrapAddIDCULEntity(statistics, "system")
@@ -52,7 +60,7 @@ func GetMTInfo() {
statistics.Activity = int64(down + up)
score, err := mtApi.CommentScore(v.VendorStoreID)
if err != nil {
globals.SugarLogger.Debugf("门店评分获取错误:%v", err)
errList = append(errList, fmt.Errorf("%s获取评分错误:%s", v.VendorStoreID, err.Error()))
}
if score != nil {
statistics.StoreRating = score.AvgPoiScore
@@ -60,17 +68,36 @@ func GetMTInfo() {
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)
dao.CreateEntity(db, statistics)
}
return errList
}
// 获取门店折扣活动商品数量
@@ -192,3 +219,9 @@ func mergeIntervals(ints []interval) []interval {
merged = append(merged, curr)
return merged
}
type ShippingList struct {
TimeRange string `json:"time_range"` // 配送生效时间范围
MinPrice float64 `json:"min_price"` // 最小起送价
ShippingFee float64 `json:"shipping_fee"` // 配送费
}

View File

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

View File

@@ -1,12 +1,15 @@
package dao
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-print/dao"
"time"
)
// StoreInformationStatistics 门店信息统计
func StoreInformationStatistics() (result []*model.EffectiveStores, err error) {
func StoreInformationStatistics(db *DaoDB) (result []*model.EffectiveStores, err error) {
sql := `
SELECT
gs.jx_store_id,
@@ -21,9 +24,41 @@ func StoreInformationStatistics() (result []*model.EffectiveStores, err error) {
`
parma := []interface{}{time.Now().AddDate(0, -1, 0), model.VendorIDMTWM}
if err = GetRows(GetDB(), &result, sql, parma...); err != nil {
if err = GetRows(db, &result, sql, parma...); err != nil {
return nil, err
}
return
}
func GetStatistics(db *DaoDB, startTime, endTime time.Time, storeId []int, offset, pageSize int) (pageInfo *model.PagedInfo, err error) {
sql := ` SELECT SQL_CALC_FOUND_ROWS * FROM activity_station WHERE 1=1 `
param := []interface{}{}
if !utils.IsTimeZero(startTime) {
sql += ` AND created_at >= ?`
param = append(param, startTime)
}
if !utils.IsTimeZero(endTime) {
sql += ` AND created_at <= ?`
param = append(param, endTime)
}
if len(storeId) > 0 {
sql += " AND store_id (" + dao.GenQuestionMarks(len(storeId)) + ")"
param = append(param, storeId)
}
sql += ` ORDER BY created_at desc LIMIT ? OFFSET ?`
param = append(param, jxutils.FormalizePageSize(pageSize), offset)
txDB, _ := Begin(db)
defer Commit(db, txDB)
var data []*model.ActivityStation
if err := GetRowsTx(txDB, &data, sql, param...); err == nil {
pageInfo = &model.PagedInfo{
TotalCount: GetLastTotalRowCount2(db, txDB),
Data: data,
}
}
return pageInfo, err
}