- paging added for GetStoreOrderInfo.
- GetStoreOrderCountInfo added.
This commit is contained in:
@@ -12,19 +12,26 @@ import (
|
||||
|
||||
const (
|
||||
maxLastHours = 2 * 24 // 最多只能查询两天内的订单数据
|
||||
defPageSize = 50
|
||||
)
|
||||
|
||||
var (
|
||||
ErrCanNotFindOrder = errors.New("找不到相应订单")
|
||||
)
|
||||
|
||||
func (c *OrderManager) GetStoreOrderInfo(storeID string, lastHours int, fromStatus, toStatus int) (orders []*model.GoodsOrderExt, err error) {
|
||||
func (c *OrderManager) GetStoreOrderInfo(storeID string, lastHours int, fromStatus, toStatus, offset, pageSize int) (orders []*model.GoodsOrderExt, err error) {
|
||||
if lastHours > maxLastHours {
|
||||
lastHours = maxLastHours
|
||||
}
|
||||
if toStatus == 0 {
|
||||
toStatus = fromStatus
|
||||
}
|
||||
if offset < 0 {
|
||||
offset = 0
|
||||
}
|
||||
if pageSize == 0 {
|
||||
pageSize = defPageSize
|
||||
}
|
||||
|
||||
db := orm.NewOrm()
|
||||
_, err = db.Raw(`
|
||||
@@ -34,7 +41,8 @@ func (c *OrderManager) GetStoreOrderInfo(storeID string, lastHours int, fromStat
|
||||
WHERE IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) = ?
|
||||
AND t1.order_created_at >= ?
|
||||
AND t1.Status >= ? AND t1.Status <= ?
|
||||
`, storeID, time.Now().Add(-time.Duration(lastHours)*time.Hour), fromStatus, toStatus).QueryRows(&orders)
|
||||
LIMIT ? OFFSET ?
|
||||
`, storeID, time.Now().Add(-time.Duration(lastHours)*time.Hour), fromStatus, toStatus, pageSize, offset).QueryRows(&orders)
|
||||
if err == nil {
|
||||
return orders, nil
|
||||
}
|
||||
@@ -42,6 +50,26 @@ func (c *OrderManager) GetStoreOrderInfo(storeID string, lastHours int, fromStat
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (c *OrderManager) GetStoreOrderCountInfo(storeID string, lastHours int) (countInfo *model.GoodsOrderCountInfo, err error) {
|
||||
if lastHours > maxLastHours {
|
||||
lastHours = maxLastHours
|
||||
}
|
||||
|
||||
db := orm.NewOrm()
|
||||
_, err = db.Raw(`
|
||||
SELECT t1.status, COUNT(*) count
|
||||
FROM goods_order t1
|
||||
WHERE IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) = ?
|
||||
AND t1.order_created_at >= ?
|
||||
GROUP BY 1
|
||||
`, storeID, time.Now().Add(-time.Duration(lastHours)*time.Hour)).QueryRows(&countInfo)
|
||||
if err == nil {
|
||||
return countInfo, nil
|
||||
}
|
||||
globals.SugarLogger.Infof("GetStoreOrderCountInfo storeID:%s failed with error:%v", storeID, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (c *OrderManager) GetOrderSkuInfo(vendorOrderID string, vendorID int) (skus []*model.OrderSkuExt, err error) {
|
||||
db := orm.NewOrm()
|
||||
num, err := db.Raw(`
|
||||
|
||||
@@ -84,7 +84,9 @@ func (c *BaseScheduler) PickupGoods(order *model.GoodsOrder) (err error) {
|
||||
}, "PickupGoods orderID:%s", order.VendorOrderID)
|
||||
}
|
||||
} else {
|
||||
err = ErrOrderStatusIsNotSuitable
|
||||
if order.LockStatus != model.OrderStatusUnknown || order.Status < model.OrderStatusAccepted {
|
||||
err = ErrOrderStatusIsNotSuitable
|
||||
}
|
||||
globals.SugarLogger.Infof("PickupGoods orderID:%s, status:%d is not suitable", order.VendorOrderID, order.Status)
|
||||
}
|
||||
return err
|
||||
@@ -102,7 +104,9 @@ func (c *BaseScheduler) Swtich2SelfDeliver(order *model.GoodsOrder) (err error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
err = ErrOrderStatusIsNotSuitable
|
||||
if order.LockStatus != model.OrderStatusUnknown || order.Status < model.OrderStatusFinishedPickup {
|
||||
err = ErrOrderStatusIsNotSuitable
|
||||
}
|
||||
globals.SugarLogger.Infof("Swtich2SelfDeliver orderID:%s, status:%d is not suitable", order.VendorOrderID, order.Status)
|
||||
}
|
||||
return err
|
||||
|
||||
@@ -478,7 +478,7 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf
|
||||
order := savedOrderInfo.order
|
||||
globals.SugarLogger.Debugf("swtich2SelfDeliverWithRetry orderID:%s", order.VendorOrderID)
|
||||
if order.WaybillVendorID != order.VendorID {
|
||||
if err := s.Swtich2SelfDeliver(order); err != nil && err != scheduler.ErrStatusIsNotOKForOperation {
|
||||
if err := s.Swtich2SelfDeliver(order); err != nil {
|
||||
globals.SugarLogger.Infof("swtich2SelfDeliverWithRetry failed, bill:%v, err:%v", bill, err)
|
||||
if retryCount > 0 {
|
||||
time.AfterFunc(duration, func() {
|
||||
|
||||
@@ -17,3 +17,8 @@ type OrderSkuExt struct {
|
||||
OrderSku
|
||||
Image string `json:"image"`
|
||||
}
|
||||
|
||||
type GoodsOrderCountInfo struct {
|
||||
Status int `json:"status"`
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
@@ -97,23 +97,65 @@ func (c *OrderController) CreateWaybillOnProviders() {
|
||||
// @Description 得到门店订单信息
|
||||
// @Param storeID query string true "京西门店ID"
|
||||
// @Param lastHours query int false "最近多少小时的信息"
|
||||
// @Success 200 {object} business.model.CallResult
|
||||
// @Failure 200 {object} business.model.CallResult
|
||||
// @router /GetStoreOrderCountInfo [get]
|
||||
func (c *OrderController) GetStoreOrderCountInfo() {
|
||||
var (
|
||||
storeID string
|
||||
lastHours int
|
||||
err error
|
||||
)
|
||||
storeID = c.GetString("storeID")
|
||||
lastHours, err1 := c.GetInt("lastHours", 0)
|
||||
if storeID != "" && err1 == nil {
|
||||
result, err2 := orderman.FixedOrderManager.GetStoreOrderCountInfo(storeID, lastHours)
|
||||
if err = err2; err == nil {
|
||||
c.Data["json"] = &model.CallResult{
|
||||
Code: "0",
|
||||
Data: string(utils.MustMarshal(result)),
|
||||
}
|
||||
}
|
||||
}
|
||||
errMsg := jxutils.Errs2Str("", err1, err)
|
||||
if storeID == "" {
|
||||
errMsg += "storeID is empty\n"
|
||||
}
|
||||
if errMsg != "" {
|
||||
c.Data["json"] = &model.CallResult{
|
||||
Code: "-1",
|
||||
Desc: errMsg,
|
||||
}
|
||||
}
|
||||
c.ServeJSON()
|
||||
}
|
||||
|
||||
// @Title 得到门店订单状态信息
|
||||
// @Description 得到门店订单状态信息
|
||||
// @Param storeID query string true "京西门店ID"
|
||||
// @Param lastHours query int false "最近多少小时的信息"
|
||||
// @Param fromStatus query int true "起始状态"
|
||||
// @Param toStatus query int false "起始状态"
|
||||
// @Param offset query int false "起始状态"
|
||||
// @Param pageSize query int false "起始状态"
|
||||
// @Success 200 {object} business.model.CallResult
|
||||
// @Failure 200 {object} business.model.CallResult
|
||||
// @router /GetStoreOrderInfo [get]
|
||||
func (c *OrderController) GetStoreOrderInfo() {
|
||||
var (
|
||||
storeID string
|
||||
lastHours, fromStatus, toStatus int
|
||||
err error
|
||||
storeID string
|
||||
lastHours, fromStatus, toStatus, offset, pageSize int
|
||||
err error
|
||||
)
|
||||
storeID = c.GetString("storeID")
|
||||
lastHours, err1 := c.GetInt("lastHours", 0)
|
||||
fromStatus, err2 := c.GetInt("fromStatus", 0)
|
||||
toStatus, err3 := c.GetInt("toStatus", 0)
|
||||
if storeID != "" && err1 == nil && err2 == nil && err3 == nil {
|
||||
result, err2 := orderman.FixedOrderManager.GetStoreOrderInfo(storeID, lastHours, fromStatus, toStatus)
|
||||
offset, err4 := c.GetInt("offset", 0)
|
||||
pageSize, err5 := c.GetInt("pageSize", 0)
|
||||
|
||||
if storeID != "" && err1 == nil && err2 == nil && err3 == nil && err4 == nil && err5 == nil {
|
||||
result, err2 := orderman.FixedOrderManager.GetStoreOrderInfo(storeID, lastHours, fromStatus, toStatus, offset, pageSize)
|
||||
if err = err2; err == nil {
|
||||
c.Data["json"] = &model.CallResult{
|
||||
Code: "0",
|
||||
|
||||
Reference in New Issue
Block a user