480 lines
16 KiB
Go
480 lines
16 KiB
Go
package orderman
|
||
|
||
import (
|
||
"fmt"
|
||
"strconv"
|
||
"time"
|
||
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils/excel"
|
||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||
"git.rosy.net.cn/jx-callback/business/model"
|
||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||
"git.rosy.net.cn/jx-callback/business/partner"
|
||
"git.rosy.net.cn/jx-callback/globals"
|
||
"github.com/astaxie/beego/orm"
|
||
)
|
||
|
||
const (
|
||
maxLastHours = 7 * 24 // 最多只能查询7天内的订单数据
|
||
defLastHours = 2 * 24 // 缺省是两天内的订单
|
||
)
|
||
|
||
type tWaybillExt struct {
|
||
model.Waybill
|
||
StoreName string `json:"storeName"`
|
||
StoreID int `json:"storeID" orm:"column(store_id)"`
|
||
}
|
||
|
||
// todo 此函数可被GetOrders取代
|
||
func (c *OrderManager) GetStoreOrderInfo(ctx *jxcontext.Context, storeID string, lastHours int, fromStatus, toStatus, offset, pageSize int) (orders []*model.GoodsOrderExt, err error) {
|
||
globals.SugarLogger.Debugf("GetStoreOrderInfo storeID:%s", storeID)
|
||
if lastHours > maxLastHours {
|
||
lastHours = maxLastHours
|
||
} else if lastHours == 0 {
|
||
lastHours = defLastHours
|
||
}
|
||
if toStatus == 0 {
|
||
toStatus = fromStatus
|
||
}
|
||
if offset < 0 {
|
||
offset = 0
|
||
}
|
||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||
|
||
db := orm.NewOrm()
|
||
_, err = db.Raw(`
|
||
SELECT t1.*,
|
||
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
||
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at
|
||
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 t1.vendor_id <> 2 AND IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) = ?
|
||
AND t1.order_created_at >= ?
|
||
AND t1.Status >= ? AND t1.Status <= ?
|
||
ORDER BY t1.status, t1.order_created_at
|
||
LIMIT ? OFFSET ?
|
||
`, model.VendorIDWSC, storeID, time.Now().Add(-time.Duration(lastHours)*time.Hour), fromStatus, toStatus, pageSize, offset).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) GetStoreOrderCountInfo(ctx *jxcontext.Context, storeID string, lastHours int) (countInfo []*model.GoodsOrderCountInfo, err error) {
|
||
globals.SugarLogger.Debugf("GetStoreOrderCountInfo storeID:%s", storeID)
|
||
if lastHours > maxLastHours {
|
||
lastHours = maxLastHours
|
||
} else if lastHours == 0 {
|
||
lastHours = defLastHours
|
||
}
|
||
|
||
db := orm.NewOrm()
|
||
_, err = db.Raw(`
|
||
SELECT t1.status, COUNT(*) count
|
||
FROM goods_order t1
|
||
WHERE t1.vendor_id <> 2 AND IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) = ?
|
||
AND t1.order_created_at >= ?
|
||
GROUP BY 1
|
||
ORDER BY 1
|
||
`, model.VendorIDWSC, 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(ctx *jxcontext.Context, vendorOrderID string, vendorID int) (skus []*model.OrderSkuExt, err error) {
|
||
globals.SugarLogger.Debugf("GetOrderSkuInfo orderID:%s", vendorOrderID)
|
||
|
||
fullSkuNameSQL := "t1.sku_name"
|
||
if vendorID == model.VendorIDJD {
|
||
fullSkuNameSQL = "CONCAT(t1.sku_name, IF(t3.is_spu = 1 AND LOCATE(';', t1.sku_name) = 0, CONCAT('[约', t2.spec_quality, t2.spec_unit, '/', t3.unit, ']'), ''))"
|
||
}
|
||
db := dao.GetDB()
|
||
if vendorID == model.VendorIDELM {
|
||
err = dao.GetRows(db, &skus, fmt.Sprintf(`
|
||
SELECT t1.*, IF(t3.img IS NULL OR t3.img = '', t4.col_imageUrl, t3.img) image, %s full_sku_name
|
||
FROM order_sku t1
|
||
LEFT JOIN sku t2 ON IF(t1.jx_sku_id != 0, t1.jx_sku_id, t1.sku_id) = t2.id AND t2.deleted_at = ?
|
||
LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?
|
||
LEFT JOIN ede_skus t4 ON t1.vendor_sku_id = t4.col_id
|
||
WHERE vendor_order_id = ? AND vendor_id = ?
|
||
ORDER BY t1.sku_name
|
||
`, fullSkuNameSQL), utils.DefaultTimeValue, utils.DefaultTimeValue, vendorOrderID, vendorID)
|
||
} else if vendorID == model.VendorIDJD {
|
||
err = dao.GetRows(db, &skus, fmt.Sprintf(`
|
||
SELECT t1.*, IF(t3.img IS NULL OR t3.img = '', t4.image, t3.img) image, %s full_sku_name
|
||
FROM order_sku t1
|
||
LEFT JOIN sku t2 ON IF(t1.jx_sku_id != 0, t1.jx_sku_id, t1.sku_id) = t2.id AND t2.deleted_at = ?
|
||
LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?
|
||
LEFT JOIN jde_sku_infos t4 ON t1.vendor_sku_id = t4.skuId
|
||
WHERE vendor_order_id = ? AND vendor_id = ?
|
||
ORDER BY t1.sku_name
|
||
`, fullSkuNameSQL), utils.DefaultTimeValue, utils.DefaultTimeValue, vendorOrderID, vendorID)
|
||
}
|
||
if err != nil || len(skus) == 0 {
|
||
err = dao.GetRows(db, &skus, fmt.Sprintf(`
|
||
SELECT t1.*, t3.img image, %s full_sku_name
|
||
FROM order_sku t1
|
||
LEFT JOIN sku t2 ON IF(t1.jx_sku_id != 0, t1.jx_sku_id, t1.sku_id) = t2.id AND t2.deleted_at = ?
|
||
LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?
|
||
WHERE t1.vendor_order_id = ? AND t1.vendor_id = ?
|
||
ORDER BY t1.sku_name
|
||
`, fullSkuNameSQL), utils.DefaultTimeValue, utils.DefaultTimeValue, vendorOrderID, vendorID)
|
||
if err != nil {
|
||
globals.SugarLogger.Infof("GetOrderSkuInfo orderID:%s vendorID:%d failed with error:%v", vendorOrderID, vendorID, err)
|
||
return nil, err
|
||
}
|
||
}
|
||
if len(skus) == 0 {
|
||
return nil, ErrCanNotFindOrder
|
||
}
|
||
return skus, nil
|
||
}
|
||
|
||
func (c *OrderManager) GetOrderInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID int, isRefresh bool) (order *model.GoodsOrderExt, err error) {
|
||
globals.SugarLogger.Debugf("GetOrderInfo orderID:%s", vendorOrderID)
|
||
db := orm.NewOrm()
|
||
orders := []*model.GoodsOrderExt{}
|
||
|
||
// 这里用QueryRows而不用QueryRow的原因是用QueryRow在这种情况下不能将数据读出,很奇怪。大概的原因是QueryRow对于GoodsOrderExt这种有嵌入的struct处理有问题
|
||
num, 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 t1.vendor_order_id = ? AND vendor_id = ?
|
||
`, vendorOrderID, vendorID).QueryRows(&orders)
|
||
if err == nil && num > 0 {
|
||
order = orders[0]
|
||
if isRefresh && vendorID == model.VendorIDJD {
|
||
tmpOrder, err2 := partner.GetPurchasePlatformFromVendorID(vendorID).GetOrder(vendorOrderID)
|
||
if err = err2; err == nil {
|
||
order.CurrentConsigneeMobile = tmpOrder.ConsigneeMobile
|
||
} else {
|
||
order.CurrentConsigneeMobile = "Error"
|
||
globals.SugarLogger.Infof("GetOrderInfo GetOrder failed with error:%v", err2)
|
||
}
|
||
}
|
||
return order, nil
|
||
}
|
||
if err == nil {
|
||
err = ErrCanNotFindOrder
|
||
}
|
||
globals.SugarLogger.Infof("GetOrderInfo orderID:%s failed with error:%v", vendorOrderID, err)
|
||
return nil, err
|
||
}
|
||
|
||
func (c *OrderManager) GetOrderWaybillInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID int) (bills []*model.Waybill, err error) {
|
||
globals.SugarLogger.Debugf("GetOrderWaybillInfo orderID:%s", vendorOrderID)
|
||
db := orm.NewOrm()
|
||
_, err = db.Raw(`
|
||
SELECT t1.*
|
||
FROM waybill t1
|
||
WHERE t1.vendor_order_id = ? AND order_vendor_id = ?
|
||
`, vendorOrderID, vendorID).QueryRows(&bills)
|
||
if err == nil {
|
||
return bills, nil
|
||
}
|
||
globals.SugarLogger.Infof("GetOrderWaybillInfo orderID:%s failed with error:%v", vendorOrderID, err)
|
||
return nil, err
|
||
}
|
||
|
||
func (c *OrderManager) ExportMTWaybills(ctx *jxcontext.Context, fromDateStr, toDateStr string) (excelContent []byte, err error) {
|
||
globals.SugarLogger.Debugf("ExportMTWaybills from:%s to:%s", fromDateStr, toDateStr)
|
||
|
||
fromDate, err := utils.TryStr2Time(fromDateStr)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
if toDateStr == "" {
|
||
toDateStr = fromDateStr
|
||
}
|
||
toDate, err := utils.TryStr2Time(toDateStr)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
toDate = toDate.Add(24 * time.Hour)
|
||
var waybills []*tWaybillExt
|
||
sql := `
|
||
SELECT t1.*, t2.store_name, IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) store_id
|
||
FROM waybill t1
|
||
JOIN goods_order t2 ON t1.vendor_order_id = t2.vendor_order_id
|
||
WHERE t1.waybill_vendor_id = 102 AND t1.status = 105 AND t1.waybill_created_at >= ? AND t1.waybill_created_at <= ?
|
||
ORDER BY t1.id
|
||
`
|
||
db := dao.GetDB()
|
||
if err = dao.GetRows(db, &waybills, sql, model.VendorIDWSC, fromDate, toDate); err == nil {
|
||
config := []*excel.Obj2ExcelSheetConfig{
|
||
&excel.Obj2ExcelSheetConfig{
|
||
Title: "Sheet1",
|
||
Data: waybills,
|
||
CaptionList: []string{
|
||
"vendorWaybillID",
|
||
"waybillVendorID",
|
||
"vendorOrderID",
|
||
"orderVendorID",
|
||
"storeName",
|
||
"storeID",
|
||
"courierName",
|
||
"status",
|
||
"desiredFee",
|
||
"waybillCreatedAt",
|
||
},
|
||
},
|
||
}
|
||
return excel.Obj2Excel(config), nil
|
||
}
|
||
return nil, err
|
||
}
|
||
|
||
func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
||
globals.SugarLogger.Debugf("GetOrders from:%s to:%s", fromDateStr, toDateStr)
|
||
|
||
fromDate, err := utils.TryStr2Time(fromDateStr)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
if toDateStr == "" {
|
||
toDateStr = fromDateStr
|
||
}
|
||
toDate, err := utils.TryStr2Time(toDateStr)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
toDate = toDate.Add(24 * time.Hour)
|
||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||
if offset < 0 {
|
||
offset = 0
|
||
}
|
||
|
||
sql := `
|
||
SELECT SQL_CALC_FOUND_ROWS t1.*,
|
||
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
||
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at
|
||
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
|
||
`
|
||
sqlWhere := `
|
||
WHERE t1.order_created_at >= ? AND t1.order_created_at < ?
|
||
`
|
||
sqlParams := []interface{}{
|
||
fromDate,
|
||
toDate,
|
||
}
|
||
if params["orderID"] != nil {
|
||
sqlWhere += " AND t1.vendor_order_id = ?"
|
||
sqlParams = append(sqlParams, params["orderID"].(string))
|
||
} else {
|
||
if params["keyword"] != nil {
|
||
keyword := params["keyword"].(string)
|
||
keywordLike := "%" + keyword + "%"
|
||
sqlWhere += `
|
||
AND (t1.store_name LIKE ? OR t1.vendor_order_id LIKE ? OR t1.vendor_store_id LIKE ?
|
||
OR t1.consignee_name LIKE ? OR t1.consignee_mobile LIKE ? OR t1.consignee_mobile2 LIKE ? OR t1.consignee_address LIKE ?
|
||
OR t2.vendor_waybill_id LIKE ? OR t2.courier_name LIKE ? OR t2.courier_mobile LIKE ?
|
||
`
|
||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
||
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
||
sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?"
|
||
sqlParams = append(sqlParams, keywordInt64, keywordInt64)
|
||
}
|
||
sqlWhere += ")"
|
||
}
|
||
|
||
if params["vendorIDs"] != nil {
|
||
var vendorIDs []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["vendorIDs"].(string)), &vendorIDs); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(vendorIDs) > 0 {
|
||
sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDs)) + ")"
|
||
sqlParams = append(sqlParams, vendorIDs)
|
||
}
|
||
}
|
||
if params["waybillVendorIDs"] != nil {
|
||
var waybillVendorIDs []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["waybillVendorIDs"].(string)), &waybillVendorIDs); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(waybillVendorIDs) > 0 {
|
||
sqlWhere += " AND t2.waybill_vendor_id IN (" + dao.GenQuestionMarks(len(waybillVendorIDs)) + ")"
|
||
sqlParams = append(sqlParams, waybillVendorIDs)
|
||
}
|
||
}
|
||
if params["storeIDs"] != nil {
|
||
var storeIDs []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["storeIDs"].(string)), &storeIDs); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(storeIDs) > 0 {
|
||
sqlWhere += " AND IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
||
sqlParams = append(sqlParams, model.VendorIDWSC, storeIDs)
|
||
}
|
||
}
|
||
if params["statuss"] != nil {
|
||
var statuss []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["statuss"].(string)), &statuss); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(statuss) > 0 {
|
||
sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statuss)) + ")"
|
||
sqlParams = append(sqlParams, statuss)
|
||
}
|
||
}
|
||
if params["cities"] != nil {
|
||
var cities []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["cities"].(string)), &cities); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(cities) > 0 {
|
||
sql += " JOIN store st ON t1.store_id = st.id"
|
||
sqlWhere += " AND st.city_code IN (" + dao.GenQuestionMarks(len(cities)) + ")"
|
||
sqlParams = append(sqlParams, cities)
|
||
}
|
||
}
|
||
}
|
||
sql += sqlWhere
|
||
sql += `
|
||
ORDER BY t1.order_created_at DESC
|
||
LIMIT ? OFFSET ?
|
||
`
|
||
sqlParams = append(sqlParams, pageSize, offset)
|
||
|
||
var orders []*model.GoodsOrderExt
|
||
db := dao.GetDB()
|
||
dao.Begin(db)
|
||
defer func() {
|
||
if r := recover(); r != nil {
|
||
dao.Rollback(db)
|
||
panic(r)
|
||
}
|
||
}()
|
||
if err = dao.GetRows(db, &orders, sql, sqlParams...); err == nil {
|
||
pagedInfo = &model.PagedInfo{
|
||
TotalCount: dao.GetLastTotalRowCount(db),
|
||
Data: orders,
|
||
}
|
||
}
|
||
dao.Commit(db)
|
||
return pagedInfo, err
|
||
}
|
||
|
||
func (c *OrderManager) GetWaybills(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
||
globals.SugarLogger.Debugf("GetWaybills from:%s to:%s", fromDateStr, toDateStr)
|
||
|
||
fromDate, err := utils.TryStr2Time(fromDateStr)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
if toDateStr == "" {
|
||
toDateStr = fromDateStr
|
||
}
|
||
toDate, err := utils.TryStr2Time(toDateStr)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
toDate = toDate.Add(24 * time.Hour)
|
||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||
if offset < 0 {
|
||
offset = 0
|
||
}
|
||
|
||
sqlParams := []interface{}{
|
||
model.VendorIDWSC,
|
||
fromDate,
|
||
toDate,
|
||
}
|
||
sql := `
|
||
SELECT SQL_CALC_FOUND_ROWS t1.*, t2.store_name, IF(t1.vendor_id = ?, t1.store_id, IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) ) store_id
|
||
FROM waybill t1
|
||
JOIN goods_order t2 ON t1.vendor_order_id = t2.vendor_order_id
|
||
WHERE t1.status = 105 AND t1.waybill_created_at >= ? AND t1.waybill_created_at < ?
|
||
`
|
||
if params["keyword"] != nil {
|
||
keyword := params["keyword"].(string)
|
||
keywordLike := "%" + keyword + "%"
|
||
sql += `
|
||
AND (t2.store_name LIKE ? OR t1.vendor_order_id LIKE ?
|
||
OR t2.vendor_waybill_id LIKE ? OR t2.courier_name LIKE ? OR t2.courier_mobile LIKE ?
|
||
`
|
||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike)
|
||
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
||
sql += " OR t2.store_id = ? OR t2.jx_store_id = ?"
|
||
sqlParams = append(sqlParams, keywordInt64, keywordInt64)
|
||
}
|
||
sql += ")"
|
||
}
|
||
|
||
if params["waybillVendorIDs"] != nil {
|
||
var waybillVendorIDs []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["waybillVendorIDs"].(string)), &waybillVendorIDs); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(waybillVendorIDs) > 0 {
|
||
sql += " AND t2.waybill_vendor_id IN (" + dao.GenQuestionMarks(len(waybillVendorIDs)) + ")"
|
||
sqlParams = append(sqlParams, waybillVendorIDs)
|
||
}
|
||
}
|
||
if params["statuss"] != nil {
|
||
var statuss []int
|
||
if err = utils.UnmarshalUseNumber([]byte(params["statuss"].(string)), &statuss); err != nil {
|
||
return nil, err
|
||
}
|
||
if len(statuss) > 0 {
|
||
sql += " AND t1.status IN (" + dao.GenQuestionMarks(len(statuss)) + ")"
|
||
sqlParams = append(sqlParams, statuss)
|
||
}
|
||
}
|
||
sql += `
|
||
ORDER BY t1.id
|
||
LIMIT ? OFFSET ?
|
||
`
|
||
sqlParams = append(sqlParams, pageSize, offset)
|
||
var waybills []*tWaybillExt
|
||
db := dao.GetDB()
|
||
dao.Begin(db)
|
||
defer func() {
|
||
if r := recover(); r != nil {
|
||
dao.Rollback(db)
|
||
panic(r)
|
||
}
|
||
}()
|
||
if err = dao.GetRows(db, &waybills, sql, sqlParams...); err == nil {
|
||
pagedInfo = &model.PagedInfo{
|
||
TotalCount: dao.GetLastTotalRowCount(db),
|
||
Data: waybills,
|
||
}
|
||
}
|
||
dao.Commit(db)
|
||
return pagedInfo, err
|
||
}
|
||
|
||
func (c *OrderManager) GetOrderStatusList(ctx *jxcontext.Context, vendorOrderID string, vendorID int, orderType int) (statusList []*model.OrderStatus, err error) {
|
||
sql := `
|
||
SELECT *
|
||
FROM order_status t1
|
||
WHERE 1 = 1
|
||
`
|
||
sqlParams := []interface{}{
|
||
vendorOrderID,
|
||
vendorID,
|
||
}
|
||
if orderType == -1 {
|
||
sql += " AND t1.ref_vendor_order_id = ? AND t1.ref_vendor_id = ?"
|
||
} else {
|
||
sql += " AND t1.vendor_order_id = ? AND t1.vendor_id = ? AND t1.order_type = ?"
|
||
sqlParams = append(sqlParams, orderType)
|
||
}
|
||
sql += " ORDER BY t1.status_time, t1.order_type DESC"
|
||
|
||
db := dao.GetDB()
|
||
if err = dao.GetRows(db, &statusList, sql, sqlParams...); err != nil {
|
||
return nil, err
|
||
}
|
||
return statusList, nil
|
||
}
|