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