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

View File

@@ -62,3 +62,56 @@ func GetStatistics(db *DaoDB, startTime, endTime time.Time, storeId []int, offse
return pageInfo, err 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
}

View File

@@ -308,12 +308,12 @@ func (c *BiddingController) UpdateStockBySkuID() {
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /UpdateMtActivity [get] // @router /UpdateMtActivity [get]
func (c *BiddingController) UpdateMtActivity() { //func (c *BiddingController) UpdateMtActivity() {
c.callUpdateMtActivity(func(params *tBindUpdateMtActivityParams) (retVal interface{}, hint string, err error) { // c.callUpdateMtActivity(func(params *tBindUpdateMtActivityParams) (retVal interface{}, hint string, err error) {
retVal = bidding.GetMTInfo() // retVal = bidding.GetMTInfo()
return retVal, "", err // return retVal, "", err
}) // })
} //}
// GetActivityList 更新美团任务数据 // GetActivityList 更新美团任务数据
// @Title 更新美团任务数据 // @Title 更新美团任务数据
@@ -327,13 +327,37 @@ func (c *BiddingController) UpdateMtActivity() {
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /GetActivityList [get] // @router /GetActivityList [get]
func (c *BiddingController) GetActivityList() { //func (c *BiddingController) GetActivityList() {
c.callGetActivityList(func(params *tBindGetActivityListParams) (retVal interface{}, hint string, err error) { // c.callGetActivityList(func(params *tBindGetActivityListParams) (retVal interface{}, hint string, err error) {
var storeIDs []int // var storeIDs []int
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err != nil { // if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err != nil {
// return nil, "", err
// }
// retVal, err = bidding.GetStatisticsList(utils.Str2Time(params.StartTime), utils.Str2Time(params.EndTime), storeIDs, params.Offset, params.PageSize)
// return
// })
//}
//StoreOrderList 统计相同负责人门店订单量
//@Title 统计门店订单数量
//@Description 统计门店订单数量
//@Param token header string true "认证token"
//@Param startTime query string true "开始时间"
//@Param endTime query string true "结束时间"
//@Param storeIDs query string false "门店ID"
//@Param vendorId query string false "平台id"
//@Param offset query int false "结果起始序号以0开始缺省为0"
//@Param pageSize query int false "结果页大小缺省为50-1表示全部"
//@Success 200 {object} controllers.CallResult
//@Failure 200 {object} controllers.CallResult
//@router /StoreOrderList [get]
func (c *BiddingController) StoreOrderList() {
c.callStoreOrderList(func(params *tBindStoreOrderListParams) (retVal interface{}, hint string, err error) {
var storeIDs, vendorIds []int
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.VendorId, &vendorIds); err != nil {
return nil, "", err return nil, "", err
} }
retVal, err = bidding.GetStatisticsList(utils.Str2Time(params.StartTime), utils.Str2Time(params.EndTime), storeIDs, params.Offset, params.PageSize) retVal, err = bidding.StatisticsOrderCount(utils.Str2Time(params.StartTime), utils.Str2Time(params.EndTime), storeIDs, vendorIds, params.Offset, params.PageSize)
return return retVal, "", err
}) })
} }

View File

@@ -4708,24 +4708,33 @@ func init() {
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
// 更新美团任务数据 // 统计相同负责人门店订单数量
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"], web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"],
web.ControllerComments{ web.ControllerComments{
Method: "UpdateMtActivity", Method: "StoreOrderList",
Router: `/UpdateMtActivity`, Router: `/StoreOrderList`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
// 更新美团任务数据 // 更新美团任务数据
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"], //web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"],
web.ControllerComments{ // web.ControllerComments{
Method: "GetActivityList", // Method: "UpdateMtActivity",
Router: `/GetActivityList`, // Router: `/UpdateMtActivity`,
AllowHTTPMethods: []string{"get"}, // AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), // MethodParams: param.Make(),
Filters: nil, // Filters: nil,
Params: nil}) // Params: nil})
// 更新美团任务数据
//web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"],
// web.ControllerComments{
// Method: "GetActivityList",
// Router: `/GetActivityList`,
// AllowHTTPMethods: []string{"get"},
// MethodParams: param.Make(),
// Filters: nil,
// Params: nil})
// 版本设置 // 版本设置
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:VersionController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:VersionController"], web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:VersionController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:VersionController"],

File diff suppressed because it is too large Load Diff

View File

@@ -2241,63 +2241,6 @@
} }
} }
}, },
"/bind/GetActivityList": {
"get": {
"tags": [
"bind"
],
"description": "更新美团任务数据",
"operationId": "BiddingController.更新美团任务数据",
"parameters": [
{
"in": "header",
"name": "token",
"description": "认证token",
"required": true,
"type": "string"
},
{
"in": "formData",
"name": "startTime",
"description": "开始时间",
"required": true,
"type": "string"
},
{
"in": "formData",
"name": "endTime",
"description": "结束时间",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "storeIDs",
"description": "门店ID",
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "结果起始序号以0开始缺省为0",
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "pageSize",
"description": "结果页大小缺省为50-1表示全部",
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "{object} controllers.CallResult"
}
}
}
},
"/bind/GetBiddingMsg": { "/bind/GetBiddingMsg": {
"get": { "get": {
"tags": [ "tags": [
@@ -2566,13 +2509,13 @@
} }
} }
}, },
"/bind/UpdateMtActivity": { "/bind/StoreOrderList": {
"get": { "get": {
"tags": [ "tags": [
"bind" "bind"
], ],
"description": "更新美团任务数据", "description": "统计门店订单数量",
"operationId": "BiddingController.更新美团任务数据", "operationId": "BiddingController.统计门店订单数量",
"parameters": [ "parameters": [
{ {
"in": "header", "in": "header",
@@ -2580,6 +2523,46 @@
"description": "认证token", "description": "认证token",
"required": true, "required": true,
"type": "string" "type": "string"
},
{
"in": "query",
"name": "startTime",
"description": "开始时间",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "endTime",
"description": "结束时间",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "storeIDs",
"description": "门店ID",
"type": "string"
},
{
"in": "query",
"name": "vendorId",
"description": "平台id",
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "结果起始序号以0开始缺省为0",
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "pageSize",
"description": "结果页大小缺省为50-1表示全部",
"type": "integer",
"format": "int64"
} }
], ],
"responses": { "responses": {
@@ -17110,9 +17093,7 @@
"in": "formData", "in": "formData",
"name": "storeId", "name": "storeId",
"description": "门店ID", "description": "门店ID",
"required": true, "type": "string"
"type": "integer",
"format": "int64"
}, },
{ {
"in": "formData", "in": "formData",

View File

@@ -1528,45 +1528,6 @@ paths:
responses: responses:
"200": "200":
description: '{object} controllers.CallResult' description: '{object} controllers.CallResult'
/bind/GetActivityList:
get:
tags:
- bind
description: 更新美团任务数据
operationId: BiddingController.更新美团任务数据
parameters:
- in: header
name: token
description: 认证token
required: true
type: string
- in: formData
name: startTime
description: 开始时间
required: true
type: string
- in: formData
name: endTime
description: 结束时间
required: true
type: string
- in: query
name: storeIDs
description: 门店ID
type: string
- in: query
name: offset
description: 结果起始序号以0开始缺省为0
type: integer
format: int64
- in: query
name: pageSize
description: 结果页大小缺省为50-1表示全部
type: integer
format: int64
responses:
"200":
description: '{object} controllers.CallResult'
/bind/GetBiddingMsg: /bind/GetBiddingMsg:
get: get:
tags: tags:
@@ -1748,18 +1709,46 @@ paths:
responses: responses:
"200": "200":
description: '{object} controllers.CallResult' description: '{object} controllers.CallResult'
/bind/UpdateMtActivity: /bind/StoreOrderList:
get: get:
tags: tags:
- bind - bind
description: 更新美团任务数据 description: 统计门店订单数量
operationId: BiddingController.更新美团任务数据 operationId: BiddingController.统计门店订单数量
parameters: parameters:
- in: header - in: header
name: token name: token
description: 认证token description: 认证token
required: true required: true
type: string type: string
- in: query
name: startTime
description: 开始时间
required: true
type: string
- in: query
name: endTime
description: 结束时间
required: true
type: string
- in: query
name: storeIDs
description: 门店ID
type: string
- in: query
name: vendorId
description: 平台id
type: string
- in: query
name: offset
description: 结果起始序号以0开始缺省为0
type: integer
format: int64
- in: query
name: pageSize
description: 结果页大小缺省为50-1表示全部
type: integer
format: int64
responses: responses:
"200": "200":
description: '{object} controllers.CallResult' description: '{object} controllers.CallResult'
@@ -11608,9 +11597,7 @@ paths:
- in: formData - in: formData
name: storeId name: storeId
description: 门店ID description: 门店ID
required: true type: string
type: integer
format: int64
- in: formData - in: formData
name: vendorOrgCode name: vendorOrgCode
description: 平台账号 description: 平台账号