65 lines
2.0 KiB
Go
65 lines
2.0 KiB
Go
package orderman
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
"git.rosy.net.cn/jx-callback/globals"
|
|
|
|
"github.com/astaxie/beego/orm"
|
|
)
|
|
|
|
const (
|
|
maxLastHours = 2 * 24 // 最多只能查询两天内的订单数据
|
|
)
|
|
|
|
var (
|
|
ErrCanNotFindOrder = errors.New("找不到相应订单")
|
|
)
|
|
|
|
func (c *OrderManager) GetStoreOrderInfo(storeID string, lastHours int, fromStatus, toStatus int) (orders []*model.GoodsOrderExt, err error) {
|
|
if lastHours > maxLastHours {
|
|
lastHours = maxLastHours
|
|
}
|
|
if toStatus == 0 {
|
|
toStatus = fromStatus
|
|
}
|
|
|
|
db := orm.NewOrm()
|
|
_, err = db.Raw(`
|
|
SELECT t1.*, t2.status waybill_status, t2.courier_name, t2.courier_mobile
|
|
FROM goods_order t1
|
|
LEFT JOIN waybill t2 ON t1.vendor_waybill_id = t2.vendor_waybill_id AND t1.waybill_vendor_id = t2.waybill_vendor_id
|
|
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)
|
|
if err == nil {
|
|
return orders, nil
|
|
}
|
|
globals.SugarLogger.Infof("GetStoreOrderInfo 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(`
|
|
SELECT t1.*, t3.img image
|
|
FROM order_sku t1
|
|
LEFT JOIN jx_sku t2 ON IF(t1.jx_sku_id != 0, t1.jx_sku_id, t1.sku_id) = t2.id
|
|
LEFT JOIN jx_sku_name t3 ON t2.nameid = t3.id
|
|
WHERE vendor_order_id = ? AND vendor_id = ?
|
|
`, vendorOrderID, vendorID).QueryRows(&skus)
|
|
if err == nil && num > 0 {
|
|
return skus, nil
|
|
}
|
|
if err == nil {
|
|
err = ErrCanNotFindOrder
|
|
globals.SugarLogger.Infof("GetOrderSkuInfo orderID:%s vendorID:%d can not find order, num:%d", vendorOrderID, vendorID, num)
|
|
} else {
|
|
globals.SugarLogger.Infof("GetOrderSkuInfo orderID:%s vendorID:%d failed with error:%v", vendorOrderID, vendorID, err)
|
|
}
|
|
return nil, err
|
|
}
|