- mtps, dada create waybill
- create legacy jxorder(not finished).
This commit is contained in:
@@ -2,10 +2,13 @@ package controller
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/autonavi"
|
||||
|
||||
"github.com/astaxie/beego/orm"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
@@ -14,6 +17,7 @@ import (
|
||||
"git.rosy.net.cn/baseapi/utils/routinepool"
|
||||
_ "git.rosy.net.cn/jx-callback/business/scheduler/defsch" // 导入缺省定单调度器
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -21,9 +25,8 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
DefaultTimeValue = utils.Str2Time("1970-01-01 00:00:00")
|
||||
OrderManager *OrderController
|
||||
WaybillManager *WaybillController
|
||||
OrderManager *OrderController
|
||||
WaybillManager *WaybillController
|
||||
|
||||
routinePool *routinepool.Pool
|
||||
)
|
||||
@@ -64,7 +67,7 @@ func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID in
|
||||
vendorID = model.VendorIDELM
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("unkown order type:%v", universalOrderID)
|
||||
vendorID = model.VenderIDUnknown
|
||||
vendorID = model.VendorIDUnknown
|
||||
}
|
||||
orderID = universalOrderID
|
||||
}
|
||||
@@ -72,7 +75,8 @@ func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID in
|
||||
}
|
||||
|
||||
func ComposeUniversalOrderID(orderID string, vendorID int) string {
|
||||
return fmt.Sprintf("%s|%d", orderID, vendorID)
|
||||
// return fmt.Sprintf("%s|%d", orderID, vendorID)
|
||||
return orderID // 当前用长度就能区分,先不加上vendorID
|
||||
}
|
||||
|
||||
func StandardCoordinate2Int(value float64) int {
|
||||
@@ -83,6 +87,33 @@ func IntCoordinate2Standard(value int) float64 {
|
||||
return float64(value / 1000000)
|
||||
}
|
||||
|
||||
func IntCoordinate2MarsStandard(gpsLng, gpsLat int, coordinateType int) (marsLng, marsLat float64, err error) {
|
||||
marsLng = IntCoordinate2Standard(gpsLng)
|
||||
marsLat = IntCoordinate2Standard(gpsLat)
|
||||
coordSys := ""
|
||||
switch coordinateType {
|
||||
case model.CoordinateTypeGPS:
|
||||
coordSys = autonavi.CoordSysGPS
|
||||
case model.CoordinateTypeMars:
|
||||
coordSys = autonavi.CoordSysAutonavi
|
||||
case model.CoordinateTypeBaiDu:
|
||||
coordSys = autonavi.CoordSysBaidu
|
||||
case model.CoordinateTypeMapbar:
|
||||
coordSys = autonavi.CoordSysMapbar
|
||||
default:
|
||||
globals.SugarLogger.Errorf("known coordinate type:%d", coordinateType)
|
||||
}
|
||||
return api.AutonaviAPI.CoordinateConvert(marsLng, marsLat, coordSys)
|
||||
}
|
||||
|
||||
func IntPrice2Standard(value int64) float64 {
|
||||
return float64(value) / 100
|
||||
}
|
||||
|
||||
func StandardPrice2Int(value float64) int64 {
|
||||
return int64(math.Round(value) * 100)
|
||||
}
|
||||
|
||||
func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplicated bool, err error) {
|
||||
status.ID = 0
|
||||
created, _, err := db.ReadOrCreate(status, "VendorOrderID", "VendorID", "OrderType", "VendorStatus", "StatusTime")
|
||||
@@ -107,3 +138,35 @@ func CallMsgHandler(handler func(), primaryID string) {
|
||||
// handler()
|
||||
// }, primaryID)
|
||||
}
|
||||
|
||||
func GetDataCityCodeFromOrder(order *model.GoodsOrder) (retVal string, err error) {
|
||||
var sql string
|
||||
if order.VendorID == model.VendorIDJD {
|
||||
sql = `
|
||||
SELECT t2.tel_code
|
||||
FROM jxstoremap t0
|
||||
JOIN jxstore t1 ON t0.jxstoreid = t1.storeid
|
||||
JOIN city t2 ON t1.area = t2.citycode
|
||||
WHERE t0.jdstoreid = ?
|
||||
`
|
||||
} else if order.VendorID == model.VendorIDELM {
|
||||
sql = `
|
||||
SELECT t2.tel_code
|
||||
FROM jx_to_elm_store_map t0
|
||||
JOIN jxstore t1 ON t0.jx_store_id = t1.storeid
|
||||
JOIN city t2 ON t1.area = t2.citycode
|
||||
WHERE t0.elm_store_id = ?
|
||||
`
|
||||
} else {
|
||||
panic(fmt.Sprintf("wrong vendorid:%d", order.VendorID))
|
||||
}
|
||||
db := orm.NewOrm()
|
||||
var lists []orm.ParamsList
|
||||
num, err := db.Raw(sql, utils.Str2Int64(order.VendorStoreID)).ValuesList(&lists)
|
||||
if err != nil && num == 1 {
|
||||
retVal = lists[0][0].(string)
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("can not find store info for vendorID:%d, store:%s", order.VendorID, order.VendorStoreID)
|
||||
}
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user