From aa8e1f2d806283ef2f52367dbf2325e4946582a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:14:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95=E4=B8=80?= =?UTF-8?q?=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 43 +++++++++++-------- business/partner/purchase/jx/localjx/order.go | 9 ++-- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 29f580072..2c6def46e 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -55,7 +55,8 @@ type OrderSkusAccept struct { } type OrderCount struct { - Count int `json:"count"` + Count int `json:"count"` //销量 + Flag bool `json:"flag"` //true表示可以买 } func (c *OrderManager) GetStoreOrderCountInfo(ctx *jxcontext.Context, storeID, lastHours int, isIncludeFake bool) (countInfo []*model.GoodsOrderCountInfo, err error) { @@ -1173,41 +1174,47 @@ func GetOrdersAccept(ctx *jxcontext.Context, storeID int) (result []*OrderSkusAc return result, err } -func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (count int, err error) { +func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *OrderCount, err error) { var ( db = dao.GetDB() - goodsOrder *model.GoodsOrder - orderCount *OrderCount - orderTime time.Time + orderPay *model.OrderPay + orderCount = &OrderCount{} ) sql := ` - SELECT * - FROM goods_order - WHERE IF(store_id = 0,jx_store_id,store_id) = 666666 - AND from_store_id = ? - ORDER BY order_created_at DESC + SELECT b.* + FROM goods_order a + JOIN order_pay b ON a.vendor_order_id = b.vendor_order_id + WHERE IF(a.store_id = 0, a.jx_store_id, a.store_id) = 666666 + AND a.from_store_id = ? + ORDER BY b.pay_finished_at DESC LIMIT 1 ` - sqlParams := []interface{}{storeID} - err = dao.GetRow(db, &goodsOrder, sql, sqlParams) - if goodsOrder != nil { - orderTime = goodsOrder.OrderFinishedAt + sqlParams := []interface{}{storeID, model.OrderStatusFinished} + err = dao.GetRow(db, &orderPay, sql, sqlParams) + if orderPay != nil { + if time.Now().Sub(*orderPay.PayFinishedAt).Hours() < 24*7 { + orderCount.Flag = false + } else { + orderCount.Flag = true + } } else { - orderTime = time.Now().AddDate(0, -1, 0) + orderCount.Flag = true } sql2 := ` SELECT COUNT(*) count FROM goods_order WHERE IF(store_id = 0,jx_store_id,store_id) = ? AND order_created_at <= NOW() AND order_created_at >= ? + AND status = ? ` sqlParams2 := []interface{}{ storeID, - orderTime, + time.Now().AddDate(0, 0, -7), + model.OrderStatusFinished, } err = dao.GetRow(db, &orderCount, sql2, sqlParams2) if err != nil { - return 0, err + return nil, err } - return orderCount.Count, err + return orderCount, err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 94da74c8a..7e8354333 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -617,6 +617,10 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { db = dao.GetDB() ) goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) + if err != nil || len(goods) == 0 { + return err + } + orderSkus := goods[0].Skus if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 var ( goodsNos []string @@ -624,10 +628,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { quantities []string ) err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") - if err != nil || len(goods) == 0 { - return err - } - for _, v := range goods[0].Skus { + for _, v := range orderSkus { skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) if err != nil || len(skus) == 0 { continue