1
This commit is contained in:
@@ -82,10 +82,6 @@ func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.Or
|
||||
isDuplicated, err = c.SaveOrder(order, false, db)
|
||||
}
|
||||
}
|
||||
if order.VendorOrderID == "601915622896866866" {
|
||||
globals.SugarLogger.Debugf("-----order := %s", utils.Format4Output(order, false))
|
||||
globals.SugarLogger.Debugf("-----err := %s", utils.Format4Output(err, false))
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
dao.Commit(db, txDB)
|
||||
|
||||
@@ -2,6 +2,7 @@ package dao
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"time"
|
||||
@@ -2011,3 +2012,86 @@ func GetAddressRiderInfo(db *DaoDB, address string) ([]*CourierInfo, error) {
|
||||
|
||||
return courier, nil
|
||||
}
|
||||
|
||||
func StaticStoreOrderChange(db *DaoDB, storeId []int, start, end time.Time, rank string) ([]*StoreOrderRank, error) {
|
||||
dailyOrders := `
|
||||
SELECT
|
||||
g.jx_store_id,
|
||||
DATE(g.order_created_at) AS order_date,
|
||||
COUNT(g.vendor_order_id) AS order_count
|
||||
FROM goods_order g WHERE 1=1 `
|
||||
dailyParam := []interface{}{}
|
||||
if len(storeId) != 0 {
|
||||
dailyOrders += ` AND g.jx_store_id IN (` + GenQuestionMarks(len(storeId)) + `)`
|
||||
dailyParam = append(dailyParam, storeId)
|
||||
}
|
||||
if utils.IsTimeZero(start) {
|
||||
dailyOrders += ` AND g.order_created_at >= ?`
|
||||
dailyParam = append(dailyParam, start)
|
||||
}
|
||||
if utils.IsTimeZero(end) {
|
||||
dailyOrders += ` AND g.order_created_at <= ?`
|
||||
dailyParam = append(dailyParam, start)
|
||||
}
|
||||
dailyOrders += ` AND g.status <> 115 GROUP BY g.jx_store_id,DATE(g.order_created_at) AS daily_orders `
|
||||
|
||||
storeTotals := `
|
||||
SELECT
|
||||
jx_store_id,
|
||||
SUM(order_count) AS total_orders
|
||||
FROM (
|
||||
SELECT
|
||||
g.jx_store_id,
|
||||
COUNT(g.vendor_order_id) AS order_count
|
||||
FROM goods_order g
|
||||
WHERE 1=1 `
|
||||
if len(storeId) != 0 {
|
||||
storeTotals += ` AND g.jx_store_id IN (` + GenQuestionMarks(len(storeId)) + `)`
|
||||
dailyParam = append(dailyParam, storeId)
|
||||
}
|
||||
if utils.IsTimeZero(start) {
|
||||
storeTotals += ` AND g.order_created_at >= ?`
|
||||
dailyParam = append(dailyParam, start)
|
||||
}
|
||||
if utils.IsTimeZero(end) {
|
||||
storeTotals += ` AND g.order_created_at <= ?`
|
||||
dailyParam = append(dailyParam, start)
|
||||
}
|
||||
storeTotals += ` AND g.status <> 115 GROUP BY g.jx_store_id ) AS store_counts GROUP BY jx_store_id) AS store_totals `
|
||||
|
||||
lastSql := `
|
||||
SELECT
|
||||
daily_orders.jx_store_id,
|
||||
s.name,
|
||||
daily_orders.order_date,
|
||||
daily_orders.order_count,
|
||||
store_totals.total_orders
|
||||
FROM (
|
||||
`
|
||||
lastSql += dailyOrders
|
||||
lastSql += `JOIN ` + storeTotals
|
||||
lastSql += `ON daily_orders.jx_store_id = store_totals.jx_store_id
|
||||
JOIN store s ON s.id = daily_orders.jx_store_id
|
||||
ORDER BY store_totals.total_orders ?,daily_orders.jx_store_id,daily_orders.order_date`
|
||||
if rank != "" {
|
||||
dailyParam = append(dailyParam, rank)
|
||||
} else {
|
||||
dailyParam = append(dailyParam, "DESC")
|
||||
}
|
||||
globals.SugarLogger.Debugf("-----sql := %s", lastSql)
|
||||
globals.SugarLogger.Debugf("-----dailyParam := %s", utils.Format4Output(dailyParam, false))
|
||||
data := make([]*StoreOrderRank, 0, 0)
|
||||
if err := GetRows(db, &data, lastSql, dailyParam...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// StoreOrderRank 门店订单排名
|
||||
type StoreOrderRank struct {
|
||||
JxStoreId int `json:"jx_store_id"`
|
||||
Name string `json:"name"`
|
||||
OrderDate string `json:"order_date"`
|
||||
OrderCount int `json:"order_count"`
|
||||
TotalOrders int `json:"total_orders"`
|
||||
}
|
||||
|
||||
@@ -368,15 +368,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
||||
return nil
|
||||
}
|
||||
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
||||
if GetOrderIDFromMsg(msg) == "601915622896866866" {
|
||||
globals.SugarLogger.Debugf("-----msg := %s", utils.Format4Output(msg, false))
|
||||
}
|
||||
order, orderMap, err2 := c.getOrder(msg.AppID, GetOrderIDFromMsg(msg), GetVendorStoreIDFromMsg(msg))
|
||||
if order.VendorOrderID == "601915622896866866" {
|
||||
globals.SugarLogger.Debugf("-----order := %s", utils.Format4Output(order, false))
|
||||
globals.SugarLogger.Debugf("-----orderMap := %s", utils.Format4Output(orderMap, false))
|
||||
globals.SugarLogger.Debugf("-----err2 := %s", utils.Format4Output(err2, false))
|
||||
}
|
||||
if err = err2; err == nil {
|
||||
// 存在新订单用户未支付推送,导致订单取消,但是订单又会被送出
|
||||
if order.OrderSeq == 0 {
|
||||
|
||||
@@ -566,6 +566,64 @@ func (c *OrderController) StaleIndexInfo() {
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 门店订单排行统计
|
||||
// @Description 门店订单排行统计
|
||||
// @Param token header string true "认证token"
|
||||
// @Param start query string true "起始时间"
|
||||
// @Param end query string true "结束时间"
|
||||
// @Param storeID query string false "门店id,[1,2,3]"
|
||||
// @Param rank query string true "排序方式,订单中粮,[DESC,ASC]"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /StoreOrderRank [get]
|
||||
func (c *OrderController) StoreOrderRank() {
|
||||
c.callStoreOrderRank(func(params *tOrderStoreOrderRankParams) (retVal interface{}, code string, err error) {
|
||||
var (
|
||||
storeList []*dao.StoreWithCityName
|
||||
dataList = make([]int, 0, len(storeList))
|
||||
mapDataList = make(map[int]int, len(storeList))
|
||||
)
|
||||
timeList, err := jxutils.BatchStr2Time(params.Start, params.End)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
var storeIdList []int
|
||||
if err = jxutils.Strings2Objs(params.StoreID, &storeIdList); err == nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
ctx := params.Ctx
|
||||
if !auth2.IsV2Token(ctx.GetToken()) {
|
||||
return nil, model.ErrCodeTokenIsInvalid, model.ErrTokenIsInvalid
|
||||
}
|
||||
mobile, userID := ctx.GetMobileAndUserID()
|
||||
if mobile == "" || userID == "" || userID == "null" || userID == "NULL" {
|
||||
return nil, "", fmt.Errorf("不能得到用户手机号,%s,%s", userID, mobile)
|
||||
}
|
||||
|
||||
if permission.IsRoled(ctx) {
|
||||
if storeList, err = cms.GetStoreList4User(ctx, mobile, userID); err == nil && len(storeList) > 0 {
|
||||
for _, v := range storeList {
|
||||
dataList = append(dataList, v.Store.ID)
|
||||
mapDataList[v.Store.ID] = model.YES
|
||||
}
|
||||
}
|
||||
if len(storeIdList) != model.NO {
|
||||
for _, sl := range storeIdList {
|
||||
if mapDataList[sl] != model.YES {
|
||||
return retVal, "", fmt.Errorf("此门店%d,不归属于该用户%s", sl, ctx.GetUserName())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(storeIdList) == model.NO {
|
||||
storeIdList = dataList
|
||||
}
|
||||
retVal, err = dao.StaticStoreOrderChange(dao.GetDB(), storeIdList, timeList[0], timeList[1], params.Rank)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 刷新订单真实手机号
|
||||
// @Description 刷新订单真实手机号
|
||||
// @Param token header string true "认证token"
|
||||
|
||||
@@ -1559,6 +1559,15 @@ func init() {
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
// 首页统计门店订单情况
|
||||
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
|
||||
web.ControllerComments{
|
||||
Method: "StoreOrderRank",
|
||||
Router: `/StoreOrderRank`,
|
||||
AllowHTTPMethods: []string{"get"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
|
||||
web.ControllerComments{
|
||||
|
||||
122618
swagger/param_parser.go.txt
122618
swagger/param_parser.go.txt
File diff suppressed because it is too large
Load Diff
@@ -13334,6 +13334,56 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/order/StoreOrderRank": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"order"
|
||||
],
|
||||
"description": "门店订单排行统计",
|
||||
"operationId": "OrderController.门店订单排行统计",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "header",
|
||||
"name": "token",
|
||||
"description": "认证token",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "start",
|
||||
"description": "起始时间",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "end",
|
||||
"description": "结束时间",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "storeID",
|
||||
"description": "门店id,[1,2,3]",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "rank",
|
||||
"description": "排序方式,订单中粮,[DESC,ASC]",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "{object} controllers.CallResult"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/order/TransferJdsOrder": {
|
||||
"post": {
|
||||
"tags": [
|
||||
|
||||
@@ -9036,6 +9036,40 @@ paths:
|
||||
responses:
|
||||
"200":
|
||||
description: '{object} controllers.CallResult'
|
||||
/order/StoreOrderRank:
|
||||
get:
|
||||
tags:
|
||||
- order
|
||||
description: 门店订单排行统计
|
||||
operationId: OrderController.门店订单排行统计
|
||||
parameters:
|
||||
- in: header
|
||||
name: token
|
||||
description: 认证token
|
||||
required: true
|
||||
type: string
|
||||
- in: query
|
||||
name: start
|
||||
description: 起始时间
|
||||
required: true
|
||||
type: string
|
||||
- in: query
|
||||
name: end
|
||||
description: 结束时间
|
||||
required: true
|
||||
type: string
|
||||
- in: query
|
||||
name: storeID
|
||||
description: 门店id,[1,2,3]
|
||||
type: string
|
||||
- in: query
|
||||
name: rank
|
||||
description: 排序方式,订单中粮,[DESC,ASC]
|
||||
required: true
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: '{object} controllers.CallResult'
|
||||
/order/TransferJdsOrder:
|
||||
post:
|
||||
tags:
|
||||
|
||||
Reference in New Issue
Block a user