- write legacy jxoder almost ok.
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi"
|
||||
@@ -45,6 +44,13 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
VENDOR_ID2CARRIER_NO = map[int]string{
|
||||
model.VendorIDJD: DD_CARRIER_NO,
|
||||
model.VendorIDELM: EME_SELF_CARRIER_NO,
|
||||
model.VendorIDDada: DDDELIVERY_CARRIER_NO,
|
||||
model.VendorIDMTPS: MTPS_CARRIER_NO,
|
||||
}
|
||||
|
||||
CARRIERS_NAMES = map[string]string{
|
||||
DD_CARRIER_NO: "达达专送",
|
||||
SELLER_CARRIER_NO: "门店自送",
|
||||
@@ -62,7 +68,14 @@ var (
|
||||
}
|
||||
)
|
||||
|
||||
func (c *OrderController) legacyMapOrderStatus(orderStatus int) (retVal int8) {
|
||||
func legacyMapCoordinateType(coordType int) (jxorderCoordType int) {
|
||||
if coordType == model.CoordinateTypeMars {
|
||||
return 2
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func legacyMapOrderStatus(orderStatus int) (retVal int8) {
|
||||
switch orderStatus {
|
||||
case model.OrderStatusNew:
|
||||
retVal = JX_ORDER_STATUS_WAIT_TO_ACCEPT
|
||||
@@ -76,6 +89,28 @@ func (c *OrderController) legacyMapOrderStatus(orderStatus int) (retVal int8) {
|
||||
retVal = JX_ORDER_STATUS_ADJUST
|
||||
case model.OrderStatusApplyCancel:
|
||||
retVal = JX_ORDER_STATUS_EXCEPTION_APPLY
|
||||
case model.OrderStatusCanceled:
|
||||
retVal = JX_ORDER_STATUS_CANCEL
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func legacyMapWaybillStatus(status int) (retVal int8) {
|
||||
switch status {
|
||||
case model.WaybillStatusNew:
|
||||
retVal = JX_DELIVERY_STATUS_WAIT_TO_GRAB
|
||||
case model.WaybillStatusAccepted:
|
||||
retVal = JX_DELIVERY_STATUS_GRAB_DONE
|
||||
case model.WaybillStatusCourierArrived:
|
||||
retVal = JX_DELIVERY_STATUS_GET_GOODS_DONE
|
||||
case model.WaybillStatusDelivering:
|
||||
retVal = JX_DELIVERY_STATUS_GET_GOODS_DONE
|
||||
case model.WaybillStatusDelivered:
|
||||
retVal = JX_DELIVERY_STATUS_DELIVERY_DONE
|
||||
case model.WaybillStatusCanceled:
|
||||
retVal = JX_DELIVERY_STATUS_DELIVERY_CANCEL
|
||||
case model.WaybillStatusFailed:
|
||||
retVal = JX_DELIVERY_STATUS_DELIVERY_FAIL
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
@@ -106,7 +141,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
|
||||
JxStoreId: utils.Int2Str(GetJxStoreIDFromOrder(order)),
|
||||
JxStoreName: order.StoreName,
|
||||
OrderNum: order.OrderSeq,
|
||||
OrderStatus: c.legacyMapOrderStatus(order.Status),
|
||||
OrderStatus: legacyMapOrderStatus(order.Status),
|
||||
OrderStatusTime: utils.Time2Str(order.OrderCreatedAt),
|
||||
BusinessTag: businessTags,
|
||||
SkuCount: order.SkuCount,
|
||||
@@ -114,23 +149,30 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
|
||||
BuyerFullName: order.ConsigneeName,
|
||||
BuyerFullAddress: order.ConsigneeAddress,
|
||||
BuyerMobile: order.ConsigneeMobile,
|
||||
BuyerCoordType: order.CoordinateType,
|
||||
BuyerCoordType: legacyMapCoordinateType(order.CoordinateType),
|
||||
BuyerLng: IntCoordinate2Standard(order.ConsigneeLng),
|
||||
BuyerLat: IntCoordinate2Standard(order.ConsigneeLat),
|
||||
CityName: "all",
|
||||
OrderStartTime: utils.Time2Str(order.OrderCreatedAt),
|
||||
JdStoreId: order.VendorStoreID,
|
||||
// DeliveryPackageWeight: float64(order.Weight) / 1000,
|
||||
}
|
||||
|
||||
if order.ExpectedDeliveredTime.Sub(utils.DefaultTimeValue) > 0 {
|
||||
jxorder.OrderPreEndDelivTime = utils.Time2Str(order.ExpectedDeliveredTime)
|
||||
}
|
||||
|
||||
_, err = db.Insert(jxorder)
|
||||
if err != nil {
|
||||
db.Rollback()
|
||||
globals.SugarLogger.Infof("insert jxorder error:%v", err)
|
||||
return err
|
||||
}
|
||||
sql := "INSERT INTO jxordersku2(vender_id, order_id, jx_sku_id, sku_name, jx_store_id, sku_price, sku_count, is_gift, promotion_type, sku_plat_discount, sku_vender_discount) VALUES"
|
||||
sql := "INSERT INTO jxordersku2(vender_id, order_id, jx_sku_id, sku_name, jx_store_id, sku_price, sku_count, is_gift, promotion_type, sku_plat_discount, sku_vender_discount, sku_img) VALUES"
|
||||
params := []interface{}{}
|
||||
for _, sku := range order.Skus {
|
||||
sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"
|
||||
params = append(params, sku.VendorID, sku.VendorOrderID, sku.JxSkuID, sku.SkuName, GetJxStoreIDFromOrder(order), sku.SalePrice, sku.Count, sku.SkuType, sku.PromotionType, 0, 0)
|
||||
sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),"
|
||||
params = append(params, sku.VendorID, sku.VendorOrderID, sku.JxSkuID, sku.SkuName, GetJxStoreIDFromOrder(order), sku.SalePrice, sku.Count, sku.SkuType, sku.PromotionType, 0, 0, "")
|
||||
}
|
||||
sql = sql[:len(sql)-1] + ";"
|
||||
if _, err = db.Raw(sql, params...).Exec(); err != nil {
|
||||
@@ -160,27 +202,10 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
|
||||
`, vendorOrderID /*, vendorOrderID*/).Exec()
|
||||
return err
|
||||
}, "update jxordersku")
|
||||
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *OrderController) legacyGetOrderDeliveryChannel(status *model.OrderStatus) (retVal string) {
|
||||
switch status.VendorID {
|
||||
case model.VendorIDJD:
|
||||
retVal = DD_CARRIER_NO
|
||||
case model.VendorIDELM:
|
||||
retVal = EME_SELF_CARRIER_NO
|
||||
case model.VendorIDDada:
|
||||
retVal = DDDELIVERY_CARRIER_NO
|
||||
case model.VendorIDMTPS:
|
||||
retVal = MTPS_CARRIER_NO
|
||||
default:
|
||||
panic(fmt.Sprintf("unkown vendorID:%v", status.VendorID))
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus, db orm.Ormer) (err error) {
|
||||
if db == nil {
|
||||
db = orm.NewOrm()
|
||||
@@ -190,9 +215,60 @@ func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus,
|
||||
}
|
||||
if err = db.Read(jxorder, "OrderId"); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
jxorder.OrderStatus = c.legacyMapOrderStatus(status.Status)
|
||||
jxorder.OrderStatus = legacyMapOrderStatus(status.Status)
|
||||
jxorder.OrderStatusTime = utils.Time2Str(status.StatusTime)
|
||||
_, err = db.Update(jxorder, "OrderStatus", "OrderStatusTime")
|
||||
updateFields := []string{
|
||||
"OrderStatus",
|
||||
"OrderStatusTime",
|
||||
}
|
||||
if status.Status >= model.OrderStatusEndBegin {
|
||||
jxorder.DeliveryFinishTime = utils.Time2Str(status.StatusTime)
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
return err
|
||||
}, "legacyJxOrderStatusChanged")
|
||||
} else {
|
||||
globals.SugarLogger.Infof("read legacyJxOrder error:%v, orderID:%d", err, jxorder.OrderId)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *WaybillController) legacyWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) {
|
||||
if db == nil {
|
||||
db = orm.NewOrm()
|
||||
}
|
||||
jxorder := &legacyorder.Jxorder2{
|
||||
OrderId: utils.Str2Int64(bill.VendorOrderID),
|
||||
}
|
||||
if err = db.Read(jxorder, "OrderId"); err == nil {
|
||||
utils.CallFuncLogError(func() error {
|
||||
updateFields := []string{
|
||||
"DeliveryCarrierNo",
|
||||
"DeliveryCarrierName",
|
||||
"DeliveryManNo",
|
||||
"DeliveryManName",
|
||||
"DeliveryManPhone",
|
||||
"DeliveryBillNo",
|
||||
"DeliveryStatus",
|
||||
}
|
||||
// jxorder.DeliveryPackageWeight
|
||||
jxorder.DeliveryCarrierNo = VENDOR_ID2CARRIER_NO[bill.WaybillVendorID]
|
||||
jxorder.DeliveryCarrierName = CARRIERS_NAMES[jxorder.DeliveryCarrierNo]
|
||||
jxorder.DeliveryManNo = bill.CourierMobile
|
||||
jxorder.DeliveryManName = bill.CourierName
|
||||
jxorder.DeliveryManPhone = bill.CourierMobile
|
||||
jxorder.DeliveryBillNo = bill.VendorWaybillID
|
||||
jxorder.DeliveryStatus = legacyMapWaybillStatus(bill.Status)
|
||||
// jxorder.DeliveryConfirmTime
|
||||
if bill.Status == model.WaybillStatusNew {
|
||||
updateFields = append(updateFields, "DeliveryStartTime")
|
||||
jxorder.DeliveryStartTime = utils.Time2Str(bill.WaybillCreatedAt)
|
||||
} else if bill.Status >= model.WaybillStatusEndBegin {
|
||||
jxorder.DeliveryFinishTime = utils.Time2Str(bill.WaybillCreatedAt)
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
return err
|
||||
}, "legacyJxOrderStatusChanged")
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user