Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -12,11 +12,7 @@ import (
|
|||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/common"
|
"git.rosy.net.cn/jx-callback/business/jxstore/common"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/smsmsg"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/msghub"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jdshop"
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/jdshop"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
|
|
||||||
@@ -142,7 +138,7 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model
|
|||||||
// }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
|
// }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID)
|
||||||
order.AdjustCount = adjustCount + 1
|
order.AdjustCount = adjustCount + 1
|
||||||
//扣点的订单需要修改订单的totalshopmoney
|
//扣点的订单需要修改订单的totalshopmoney
|
||||||
if err == nil && order.EarningType == model.EarningTypePoints {
|
if err == nil && order.OrderPayPercentage < 100 {
|
||||||
order2, _ := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID)
|
order2, _ := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID)
|
||||||
order.TotalShopMoney = order2.TotalShopMoney
|
order.TotalShopMoney = order2.TotalShopMoney
|
||||||
}
|
}
|
||||||
@@ -364,9 +360,9 @@ func ModifyOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool) (e
|
|||||||
for _, sku := range skus {
|
for _, sku := range skus {
|
||||||
storeSkus, _ := dao.GetStoresSkusInfo(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, []int{sku.SkuID})
|
storeSkus, _ := dao.GetStoresSkusInfo(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, []int{sku.SkuID})
|
||||||
if len(storeSkus) == 0 {
|
if len(storeSkus) == 0 {
|
||||||
if !isAdd {
|
// if !isAdd {
|
||||||
globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID)
|
// globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID)
|
||||||
}
|
// }
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
storeSku, stock := storeSkus[0], 0
|
storeSku, stock := storeSkus[0], 0
|
||||||
@@ -1845,11 +1841,11 @@ func AcceptOrRefuseOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID
|
|||||||
handler := partner.GetPurchaseOrderHandlerFromVendorID(vendorID)
|
handler := partner.GetPurchaseOrderHandlerFromVendorID(vendorID)
|
||||||
err = handler.AcceptOrRefuseOrder(order, isAccept, ctx.GetUserName())
|
err = handler.AcceptOrRefuseOrder(order, isAccept, ctx.GetUserName())
|
||||||
if err == nil && isAccept && vendorID == model.VendorIDEBAI {
|
if err == nil && isAccept && vendorID == model.VendorIDEBAI {
|
||||||
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
// netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||||
smsmsg.NotifyNewOrder(order)
|
// smsmsg.NotifyNewOrder(order)
|
||||||
smsmsg.NotifyNewUserOrder(order)
|
// smsmsg.NotifyNewUserOrder(order)
|
||||||
weixinmsg.NotifyNewOrder(order)
|
// weixinmsg.NotifyNewOrder(order)
|
||||||
msghub.OnNewOrder(order)
|
// msghub.OnNewOrder(order)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -705,8 +705,15 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
|
|||||||
}
|
}
|
||||||
saleInfoMap[index] = saleInfo
|
saleInfoMap[index] = saleInfo
|
||||||
}
|
}
|
||||||
if v.EarningType == model.EarningTypeQuote {
|
//成都菜市
|
||||||
saleInfo.RealEarningPrice += v.ShopPrice * int64(v.Count)
|
if beego.BConfig.RunMode == "prod" {
|
||||||
|
if v.EarningType == model.EarningTypeQuote && v.VendorID != model.VendorIDJD && v.CityCode != 510100 {
|
||||||
|
saleInfo.RealEarningPrice += v.ShopPrice * int64(v.Count)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if v.OrderPayPercentage == 100 {
|
||||||
|
saleInfo.RealEarningPrice += v.ShopPrice * int64(v.Count)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
saleInfo.ShopPrice += v.ShopPrice * int64(v.Count)
|
saleInfo.ShopPrice += v.ShopPrice * int64(v.Count)
|
||||||
saleInfo.VendorPrice += v.VendorPrice * int64(v.Count)
|
saleInfo.VendorPrice += v.VendorPrice * int64(v.Count)
|
||||||
@@ -715,15 +722,27 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
|
|||||||
if v.VendorOrderID == flagVendorOrderID {
|
if v.VendorOrderID == flagVendorOrderID {
|
||||||
if k == 0 {
|
if k == 0 {
|
||||||
saleInfo.EarningPrice = v.NewEarningPrice
|
saleInfo.EarningPrice = v.NewEarningPrice
|
||||||
if v.EarningType == model.EarningTypePoints {
|
if beego.BConfig.RunMode == "prod" {
|
||||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
if v.EarningType == model.EarningTypePoints && v.VendorID != model.VendorIDJD && v.CityCode != 510100 {
|
||||||
|
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if v.OrderPayPercentage < 100 {
|
||||||
|
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
flagVendorOrderID = v.VendorOrderID
|
flagVendorOrderID = v.VendorOrderID
|
||||||
saleInfo.EarningPrice += v.NewEarningPrice
|
saleInfo.EarningPrice += v.NewEarningPrice
|
||||||
if v.EarningType == model.EarningTypePoints {
|
if beego.BConfig.RunMode == "prod" {
|
||||||
saleInfo.RealEarningPrice += v.NewEarningPrice
|
if v.EarningType == model.EarningTypePoints && v.VendorID != model.VendorIDJD && v.CityCode != 510100 {
|
||||||
|
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if v.OrderPayPercentage < 100 {
|
||||||
|
saleInfo.RealEarningPrice += v.NewEarningPrice
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -376,11 +376,27 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder, isPending bool) (err
|
|||||||
globals.SugarLogger.Debugf("OnOrderNew orderID:%s", order.VendorOrderID)
|
globals.SugarLogger.Debugf("OnOrderNew orderID:%s", order.VendorOrderID)
|
||||||
savedOrderInfo := s.loadSavedOrderFromMap(model.Order2Status(order), false)
|
savedOrderInfo := s.loadSavedOrderFromMap(model.Order2Status(order), false)
|
||||||
savedOrderInfo.SetOrder(order)
|
savedOrderInfo.SetOrder(order)
|
||||||
if order.Status == model.OrderStatusWaitAccepted {
|
if order.VendorID == model.VendorIDEBAI { //饿百订单待接单的时候就推所有东西
|
||||||
s.resetTimer(savedOrderInfo, nil, isPending)
|
if order.Status == model.OrderStatusWaitAccepted || order.Status == model.OrderStatusFinishedPickup { //错序
|
||||||
// push.NotifyNewOrder(order)
|
s.resetTimer(savedOrderInfo, nil, isPending)
|
||||||
s.notifyNewOrder(order)
|
if order.Flag&model.OrderFlagMaskFake == 0 {
|
||||||
msghub.OnNewOrder(order)
|
utils.CallFuncAsync(func() {
|
||||||
|
order = setFakeActualPayPrice(order)
|
||||||
|
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||||
|
//目前暂且认为AdjustCount > 0 就是调整单
|
||||||
|
if order.AdjustCount > 0 {
|
||||||
|
weixinmsg.NotifyAdjustOrder(order)
|
||||||
|
} else {
|
||||||
|
weixinmsg.NotifyNewOrder(order)
|
||||||
|
}
|
||||||
|
OrderProfitWarning(order)
|
||||||
|
smsmsg.NotifyNewOrder(order)
|
||||||
|
smsmsg.NotifyNewUserOrder(order)
|
||||||
|
push.NotifyNewOrder(order)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
msghub.OnNewOrder(order)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if order.Status >= model.OrderStatusNew {
|
if order.Status >= model.OrderStatusNew {
|
||||||
s.resetTimer(savedOrderInfo, nil, isPending)
|
s.resetTimer(savedOrderInfo, nil, isPending)
|
||||||
@@ -1459,7 +1475,7 @@ func setFakeActualPayPrice(order *model.GoodsOrder) (newOrder *model.GoodsOrder)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder) {
|
func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder) {
|
||||||
if order.Flag&model.OrderFlagMaskFake == 0 {
|
if order.Flag&model.OrderFlagMaskFake == 0 && order.VendorID != model.VendorIDEBAI {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
order = setFakeActualPayPrice(order)
|
order = setFakeActualPayPrice(order)
|
||||||
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/authz/autils"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||||
"github.com/360EntSecGroup-Skylar/excelize"
|
"github.com/360EntSecGroup-Skylar/excelize"
|
||||||
@@ -1712,12 +1710,99 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
|
|||||||
// cms.UpdateStoreSkus(ctx, 0, storeDetail.ID, skuBindInfos, true, true)
|
// cms.UpdateStoreSkus(ctx, 0, storeDetail.ID, skuBindInfos, true, true)
|
||||||
// }
|
// }
|
||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
jdStoreIDs = []string{
|
||||||
|
"11734848",
|
||||||
|
"11734850",
|
||||||
|
"11734854",
|
||||||
|
"11734862",
|
||||||
|
"11734868",
|
||||||
|
"11734873",
|
||||||
|
"11734874",
|
||||||
|
"11734886",
|
||||||
|
"11748353",
|
||||||
|
"11890095",
|
||||||
|
"11800399",
|
||||||
|
"11738114",
|
||||||
|
"11857499",
|
||||||
|
"11873440",
|
||||||
|
"11883071",
|
||||||
|
"11734852",
|
||||||
|
"11886763",
|
||||||
|
"11874614",
|
||||||
|
"11734884",
|
||||||
|
"11926674",
|
||||||
|
"11929173",
|
||||||
|
"11894144",
|
||||||
|
"11734861",
|
||||||
|
"11951611",
|
||||||
|
"11800403",
|
||||||
|
"11913597",
|
||||||
|
"11980746",
|
||||||
|
"11981675",
|
||||||
|
"12011812",
|
||||||
|
"12007545",
|
||||||
|
"11734846",
|
||||||
|
"12005417",
|
||||||
|
"12005640",
|
||||||
|
"12005682",
|
||||||
|
"12006134",
|
||||||
|
"11982352",
|
||||||
|
"12007250",
|
||||||
|
"12007560",
|
||||||
|
"11982427",
|
||||||
|
"12008087",
|
||||||
|
"12035806",
|
||||||
|
"12008160",
|
||||||
|
"12008395",
|
||||||
|
"12009345",
|
||||||
|
"11940019",
|
||||||
|
"12010237",
|
||||||
|
"12010654",
|
||||||
|
"12011111",
|
||||||
|
"12006857",
|
||||||
|
"11734851",
|
||||||
|
"12030632",
|
||||||
|
"12050456",
|
||||||
|
}
|
||||||
|
jdStoreIDxipu = "11890095"
|
||||||
|
skuMap = make(map[string]*partner.StoreSkuInfo)
|
||||||
|
priceList []*pa
|
||||||
)
|
)
|
||||||
stores, _ := dao.GetStoreList(db, nil, nil, nil, nil, "")
|
StoreSkuFullList2BareFilter := func(storeSkuFull []*partner.SkuNameInfo) (bareStoreSkuList []*partner.StoreSkuInfo) {
|
||||||
for _, v := range stores {
|
for _, v := range storeSkuFull {
|
||||||
cms.AddUsers4Role(jxcontext.AdminCtx, autils.NewRole("StoreBoss", v.ID), []string{"5CD3666C666711E9B19B525400E86DC0"})
|
for _, v2 := range v.SkuList {
|
||||||
|
if v2.Status > model.SkuStatusDontSale {
|
||||||
|
bareStoreSkuList = append(bareStoreSkuList, &v2.StoreSkuInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bareStoreSkuList
|
||||||
}
|
}
|
||||||
|
handler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||||
|
multiHandler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IMultipleStoresHandler)
|
||||||
|
allSkuNameInfoList, err := multiHandler.GetSkus(ctx, "320406", 0, "")
|
||||||
|
skuInfos := StoreSkuFullList2BareFilter(allSkuNameInfoList)
|
||||||
|
outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, "320406", nil, 0, jdStoreIDxipu, skuInfos)
|
||||||
|
for _, v := range outStoreSkuList {
|
||||||
|
skuMap[v.VendorSkuID] = v
|
||||||
|
}
|
||||||
|
task := tasksch.NewParallelTask("初始化京东", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||||
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
jdStoreID := batchItemList[0].(string)
|
||||||
|
outStoreSkuList2, err := handler.GetStoreSkusBareInfo(ctx, "320406", nil, 0, jdStoreID, skuInfos)
|
||||||
|
for _, v := range outStoreSkuList2 {
|
||||||
|
if skuMap[v.VendorSkuID] != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if skuMap[v.VendorSkuID].VendorPrice != v.VendorPrice {
|
||||||
|
v.VendorPrice = skuMap[v.VendorSkuID].VendorPrice
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retVal, err
|
||||||
|
}, jdStoreIDs)
|
||||||
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
|
task.GetID()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,9 +45,11 @@ type OrderSkuWithActualPayPrice struct {
|
|||||||
StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid
|
StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid
|
||||||
Status int `json:"status"` // 参见OrderStatus*相关的常量定义
|
Status int `json:"status"` // 参见OrderStatus*相关的常量定义
|
||||||
|
|
||||||
PayPercentage int `json:"payPercentage"`
|
PayPercentage int `json:"payPercentage"`
|
||||||
NewEarningPrice int64 `json:"newEarningPrice"`
|
OrderPayPercentage int `json:"orderPayPercentage"`
|
||||||
EarningType int `json:"earningType"`
|
NewEarningPrice int64 `json:"newEarningPrice"`
|
||||||
|
EarningType int `json:"earningType"`
|
||||||
|
CityCode int `json:"cityCode"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type tGoodsAndOrder struct {
|
type tGoodsAndOrder struct {
|
||||||
@@ -376,7 +378,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt
|
|||||||
sql := `
|
sql := `
|
||||||
SELECT t1.*,
|
SELECT t1.*,
|
||||||
IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t2.new_earning_price,
|
IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t2.new_earning_price,
|
||||||
t3.pay_percentage, t2.earning_type
|
t3.pay_percentage, t2.earning_type, t2.order_pay_percentage, t3.city_code
|
||||||
FROM order_sku t1
|
FROM order_sku t1
|
||||||
JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id
|
JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id
|
||||||
LEFT JOIN store t3 ON t3.id = IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id)
|
LEFT JOIN store t3 ON t3.id = IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id)
|
||||||
|
|||||||
@@ -293,6 +293,7 @@ type Store struct {
|
|||||||
AutoReplyType int8 `json:"autoReplyType"` // 订单评价自动回复类型
|
AutoReplyType int8 `json:"autoReplyType"` // 订单评价自动回复类型
|
||||||
LinkStoreID int `orm:"column(link_store_id);default(0);index" json:"linkStoreID"` // 关联门店ID
|
LinkStoreID int `orm:"column(link_store_id);default(0);index" json:"linkStoreID"` // 关联门店ID
|
||||||
StoreLevel string `orm:"default(C);size(32)" json:"storeLevel"` // 门店等级(筛选用,京西的)
|
StoreLevel string `orm:"default(C);size(32)" json:"storeLevel"` // 门店等级(筛选用,京西的)
|
||||||
|
Comment string `orm:"size(255)" json:"comment"` //门店备注
|
||||||
|
|
||||||
PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机
|
PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机
|
||||||
PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大
|
PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大
|
||||||
|
|||||||
@@ -248,6 +248,11 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) {
|
|||||||
if result[statusTimeField] == nil { // 814560888003021 orderPurchaseTime为空
|
if result[statusTimeField] == nil { // 814560888003021 orderPurchaseTime为空
|
||||||
statusTimeField = "orderStartTime"
|
statusTimeField = "orderStartTime"
|
||||||
}
|
}
|
||||||
|
//物竞天择订单备注改一下
|
||||||
|
comment := utils.TrimBlankChar(utils.Interface2String(result["orderBuyerRemark"]))
|
||||||
|
if strings.Contains(comment, "【JD】") {
|
||||||
|
comment += "【京东商城】"
|
||||||
|
}
|
||||||
order = &model.GoodsOrder{
|
order = &model.GoodsOrder{
|
||||||
VendorOrderID: orderID,
|
VendorOrderID: orderID,
|
||||||
VendorID: model.VendorIDJD,
|
VendorID: model.VendorIDJD,
|
||||||
@@ -259,7 +264,7 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) {
|
|||||||
ConsigneeMobile: jxutils.FormalizeMobile(utils.Interface2String(result["buyerMobile"])),
|
ConsigneeMobile: jxutils.FormalizeMobile(utils.Interface2String(result["buyerMobile"])),
|
||||||
ConsigneeAddress: utils.Interface2String(result["buyerFullAddress"]),
|
ConsigneeAddress: utils.Interface2String(result["buyerFullAddress"]),
|
||||||
CoordinateType: model.CoordinateTypeMars,
|
CoordinateType: model.CoordinateTypeMars,
|
||||||
BuyerComment: utils.TrimBlankChar(utils.Interface2String(result["orderBuyerRemark"])),
|
BuyerComment: comment,
|
||||||
ExpectedDeliveredTime: utils.Str2TimeWithDefault(utils.Interface2String(result["orderPreEndDeliveryTime"]), utils.DefaultTimeValue),
|
ExpectedDeliveredTime: utils.Str2TimeWithDefault(utils.Interface2String(result["orderPreEndDeliveryTime"]), utils.DefaultTimeValue),
|
||||||
PickDeadline: utils.Str2TimeWithDefault(utils.Interface2String(result["pickDeadline"]), utils.DefaultTimeValue), // 813951615000022 pickDeadline为空
|
PickDeadline: utils.Str2TimeWithDefault(utils.Interface2String(result["pickDeadline"]), utils.DefaultTimeValue), // 813951615000022 pickDeadline为空
|
||||||
VendorStatus: utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])),
|
VendorStatus: utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])),
|
||||||
|
|||||||
Reference in New Issue
Block a user