- in GetOrders, if keyword looks like a orderID, then ignore other conditions.
This commit is contained in:
@@ -234,23 +234,10 @@ func (c *OrderManager) ExportMTWaybills(ctx *jxcontext.Context, fromDateStr, toD
|
|||||||
func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) {
|
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)
|
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)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
if offset < 0 {
|
if offset < 0 {
|
||||||
offset = 0
|
offset = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
sql := `
|
sql := `
|
||||||
SELECT SQL_CALC_FOUND_ROWS t1.*,
|
SELECT SQL_CALC_FOUND_ROWS t1.*,
|
||||||
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
t2.status waybill_status, t2.courier_name, t2.courier_mobile,
|
||||||
@@ -262,12 +249,31 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
|
|||||||
sqlWhere string
|
sqlWhere string
|
||||||
sqlParams []interface{}
|
sqlParams []interface{}
|
||||||
)
|
)
|
||||||
|
// 如果搜索关键字可能为订单号,则当成订单号查询
|
||||||
|
if params["keyword"] != nil {
|
||||||
|
if jxutils.GetPossibleVendorIDFromVendorOrderID(params["keyword"].(string)) > model.VendorIDUnknown {
|
||||||
|
params["orderID"] = params["keyword"]
|
||||||
|
}
|
||||||
|
}
|
||||||
if params["orderID"] != nil {
|
if params["orderID"] != nil {
|
||||||
sqlWhere = " WHERE t1.vendor_order_id = ?"
|
sqlWhere = " WHERE t1.vendor_order_id = ?"
|
||||||
sqlParams = []interface{}{
|
sqlParams = []interface{}{
|
||||||
params["orderID"].(string),
|
params["orderID"].(string),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
fromDate, err2 := utils.TryStr2Time(fromDateStr)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if toDateStr == "" {
|
||||||
|
toDateStr = fromDateStr
|
||||||
|
}
|
||||||
|
toDate, err2 := utils.TryStr2Time(toDateStr)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
toDate = toDate.Add(24 * time.Hour)
|
||||||
|
|
||||||
sqlWhere = `
|
sqlWhere = `
|
||||||
WHERE t1.order_created_at >= ? AND t1.order_created_at < ?
|
WHERE t1.order_created_at >= ? AND t1.order_created_at < ?
|
||||||
`
|
`
|
||||||
|
|||||||
@@ -81,11 +81,28 @@ func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID in
|
|||||||
index := strings.Index(universalOrderID, "|")
|
index := strings.Index(universalOrderID, "|")
|
||||||
if index != -1 {
|
if index != -1 {
|
||||||
orderID = universalOrderID[:index]
|
orderID = universalOrderID[:index]
|
||||||
vendorID = int(utils.Str2Int64(universalOrderID[index:]))
|
vendorID = int(utils.Str2Int64(universalOrderID[index+1:]))
|
||||||
} else {
|
} else {
|
||||||
|
if vendorID = GetPossibleVendorIDFromVendorOrderID(universalOrderID); vendorID == model.VendorIDUnknown {
|
||||||
|
// globals.SugarLogger.Errorf("unkown order type:%v", universalOrderID)
|
||||||
|
panic(fmt.Sprintf("unkown order type, orderID:%s", universalOrderID))
|
||||||
|
}
|
||||||
|
orderID = universalOrderID
|
||||||
|
}
|
||||||
|
return orderID, vendorID
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetPossibleVendorIDFromVendorOrderID(vendorOrderID string) (vendorID int) {
|
||||||
|
vendorID = model.VendorIDUnknown
|
||||||
|
if vendorOrderIDInt64 := utils.Str2Int64WithDefault(vendorOrderID, 0); vendorOrderIDInt64 > 0 {
|
||||||
|
orderIDLen := len(vendorOrderID)
|
||||||
|
// 5287873015048 13
|
||||||
|
// 15380342248732 14
|
||||||
|
// 800402581000221 15
|
||||||
|
// 33437032333978492 17
|
||||||
|
// 3022716176275221584 19
|
||||||
// 800402581000221 jd order
|
// 800402581000221 jd order
|
||||||
// 3022716176275221584 elm order
|
// 3022716176275221584 elm order
|
||||||
orderIDLen := len(universalOrderID)
|
|
||||||
if orderIDLen == len("800402581000221") {
|
if orderIDLen == len("800402581000221") {
|
||||||
vendorID = model.VendorIDJD
|
vendorID = model.VendorIDJD
|
||||||
} else if orderIDLen == len("3022716176275221584") {
|
} else if orderIDLen == len("3022716176275221584") {
|
||||||
@@ -96,14 +113,9 @@ func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID in
|
|||||||
vendorID = model.VendorIDMTWM
|
vendorID = model.VendorIDMTWM
|
||||||
} else if orderIDLen == len("5287873015048") {
|
} else if orderIDLen == len("5287873015048") {
|
||||||
vendorID = model.VendorIDWSC
|
vendorID = model.VendorIDWSC
|
||||||
} else {
|
|
||||||
// globals.SugarLogger.Errorf("unkown order type:%v", universalOrderID)
|
|
||||||
panic(fmt.Sprintf("unkown order type:%v, orderIDLen:%d", universalOrderID, orderIDLen))
|
|
||||||
vendorID = model.VendorIDUnknown
|
|
||||||
}
|
}
|
||||||
orderID = universalOrderID
|
|
||||||
}
|
}
|
||||||
return orderID, vendorID
|
return vendorID
|
||||||
}
|
}
|
||||||
|
|
||||||
func ComposeUniversalOrderID(orderID string, vendorID int) string {
|
func ComposeUniversalOrderID(orderID string, vendorID int) string {
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ package jxutils
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEarthDistance(t *testing.T) {
|
func TestEarthDistance(t *testing.T) {
|
||||||
@@ -66,3 +69,92 @@ func TestSplitSkuName(t *testing.T) {
|
|||||||
t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit)
|
t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSplitUniversalOrderID(t *testing.T) {
|
||||||
|
testData := [][]interface{}{
|
||||||
|
[]interface{}{
|
||||||
|
"800402581000221",
|
||||||
|
"800402581000221",
|
||||||
|
model.VendorIDJD,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"3022716176275221584" + "|" + utils.Int2Str(model.VendorIDJD),
|
||||||
|
"3022716176275221584",
|
||||||
|
model.VendorIDJD,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"3022716176275221584",
|
||||||
|
"3022716176275221584",
|
||||||
|
model.VendorIDELM,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"15380342248732",
|
||||||
|
"15380342248732",
|
||||||
|
model.VendorIDEBAI,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"33437032333978492",
|
||||||
|
"33437032333978492",
|
||||||
|
model.VendorIDMTWM,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"5287873015048",
|
||||||
|
"5287873015048",
|
||||||
|
model.VendorIDWSC,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, v := range testData {
|
||||||
|
universalOrderID := v[0].(string)
|
||||||
|
desiredOrderID := v[1].(string)
|
||||||
|
desiredVendorID := v[2].(int)
|
||||||
|
orderID, vendorID := SplitUniversalOrderID(universalOrderID)
|
||||||
|
if orderID != desiredOrderID || vendorID != desiredVendorID {
|
||||||
|
t.Fatalf("%s is not ok, orderID:%s, desiredOrderID:%s, vendorID:%d, desiredVendorID:%d", universalOrderID, orderID, desiredOrderID, vendorID, desiredVendorID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetPossibleVendorIDFromVendorOrderID(t *testing.T) {
|
||||||
|
testData := [][]interface{}{
|
||||||
|
[]interface{}{
|
||||||
|
"800402581000221",
|
||||||
|
model.VendorIDJD,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"X00402581000221",
|
||||||
|
model.VendorIDUnknown,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"8004025810002210",
|
||||||
|
model.VendorIDUnknown,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"3022716176275221584",
|
||||||
|
model.VendorIDELM,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"302271617627522158X",
|
||||||
|
model.VendorIDUnknown,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"15380342248732",
|
||||||
|
model.VendorIDEBAI,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"33437032333978492",
|
||||||
|
model.VendorIDMTWM,
|
||||||
|
},
|
||||||
|
[]interface{}{
|
||||||
|
"5287873015048",
|
||||||
|
model.VendorIDWSC,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, v := range testData {
|
||||||
|
universalOrderID := v[0].(string)
|
||||||
|
desiredVendorID := v[1].(int)
|
||||||
|
vendorID := GetPossibleVendorIDFromVendorOrderID(universalOrderID)
|
||||||
|
if vendorID != desiredVendorID {
|
||||||
|
t.Fatalf("%s is not ok, should be:%d, but it's:%d", universalOrderID, desiredVendorID, vendorID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -220,8 +220,8 @@ func (c *OrderController) ExportMTWaybills() {
|
|||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param orderID query string false "订单号,如果此项不为空,忽略其它所有查询条件"
|
// @Param orderID query string false "订单号,如果此项不为空,忽略其它所有查询条件"
|
||||||
// @Param keyword query string false "查询关键字"
|
// @Param keyword query string false "查询关键字"
|
||||||
// @Param fromDate query string true "开始日期(包含),格式(2006-01-02)"
|
// @Param fromDate query string false "开始日期(包含),格式(2006-01-02),如果订单号为空此项必须要求"
|
||||||
// @Param toDate query string false "结束日期(包含),格式(2006-01-02)"
|
// @Param toDate query string false "结束日期(包含),格式(2006-01-02),如果订单号为空此项必须要求"
|
||||||
// @Param vendorIDs query string false "订单所属厂商列表[1,2,3],缺省不限制"
|
// @Param vendorIDs query string false "订单所属厂商列表[1,2,3],缺省不限制"
|
||||||
// @Param waybillVendorIDs query string false "承运人所属厂商列表[1,2,3],缺省不限制"
|
// @Param waybillVendorIDs query string false "承运人所属厂商列表[1,2,3],缺省不限制"
|
||||||
// @Param storeIDs query string false "京西门店ID列表[1,2,3],缺省不限制"
|
// @Param storeIDs query string false "京西门店ID列表[1,2,3],缺省不限制"
|
||||||
|
|||||||
Reference in New Issue
Block a user