This commit is contained in:
suyl
2021-06-17 15:12:46 +08:00
parent 521039d001
commit ab855c884f
2 changed files with 111 additions and 51 deletions

View File

@@ -1911,10 +1911,6 @@ func SaveJdsOrders(ctx *jxcontext.Context, orderCreatedStart, orderCreatedEnd ti
}
}
for _, order := range orders {
order.StoreID = 100000
order.JxStoreID = 100000
order.StoreName = "商城模板店2"
order.VendorStoreID = model.JdShopMainVendorStoreID
partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
globals.SugarLogger.Debugf("SaveJdsOrders order: [%v]", utils.Format4Output(order, false))
noticeMsg := fmt.Sprintf("京东商城新订单,订单号:[%v] ,将要发到的门店id[%v] , 门店名:[%v]", order.VendorOrderID, order.StoreID, order.StoreName)
@@ -1931,6 +1927,9 @@ func SaveJdsOrders(ctx *jxcontext.Context, orderCreatedStart, orderCreatedEnd ti
}
func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (orders []*model.GoodsOrder, err error) {
var (
db = dao.GetDB()
)
for _, jdsOrder := range result.OrderList {
//等待付款的排除
if jdsOrder.OrderStatus != jdshopapi.JdsOrderStatusWaittingExport && jdsOrder.OrderStatus != jdshopapi.JdsOrderStatusPause && jdsOrder.OrderStatus != 51 {
@@ -1981,22 +1980,6 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o
if order.TotalShopMoney < 100 {
order.TotalShopMoney = 100
}
if order.ConsigneeAddress != "" {
lng, lat, _ := api.AutonaviAPI.GetCoordinateFromAddress(order.ConsigneeAddress, "")
order.ConsigneeLng = jxutils.StandardCoordinate2Int(lng)
order.ConsigneeLat = jxutils.StandardCoordinate2Int(lat)
}
// storeList, err := common.GetStoreListByLocation(ctx, jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), 5000, false, true, 0)
// if err != nil {
// globals.SugarLogger.Debugf("jds GetStoreListByLocation error: %v", err.Error())
// continue
// }
// order.StoreID = storeList[0].ID
// order.StoreName = storeList[0].Name
// storeMaps, _ := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDJDShop}, []int{order.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", "")
// if len(storeMaps) > 0 {
// order.VendorStoreID = storeMaps[0].VendorStoreID
// }
//如果是暂停,表示是预订单
if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusPause {
order.BusinessType = model.BusinessTypeDingshida
@@ -2006,19 +1989,6 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o
order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour)
order.BusinessType = model.BusinessTypeImmediate
}
// else {
// globals.SugarLogger.Errorf("未知的京东商城订单状态status : %v", jdsOrder.OrderStatus)
// }
//结算类型
// storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), order.StoreID, model.VendorIDJDShop, "")
// if storeDetail != nil {
// if storeDetail.PayPercentage < 50 {
// order.EarningType = model.EarningTypePoints
// } else {
// order.EarningType = model.EarningTypeQuote
// }
// }
setJdsOrderSeq(order)
for _, v := range jdsOrder.OrderItems {
sku := &model.OrderSku{
@@ -2043,7 +2013,99 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o
sku.Weight = jxutils.FormatSkuWeight(specQuality, specUnit)
order.Skus = append(order.Skus, sku)
}
var store *dao.StoreDetail
if jdsOrder.MdbStoreID != 0 {
if store, err = dao.GetStoreDetailByVendorStoreID(db, utils.Int64ToStr(jdsOrder.MdbStoreID), model.VendorIDJDShop, "2"); store != nil && err == nil {
order.StoreID = store.ID
order.JxStoreID = store.ID
order.StoreName = store.Name
globals.SugarLogger.Debugf("jds GetStoreListByLocation, orderID: %v storeID :%v", order.VendorOrderID, order.StoreID)
//结算类型
if store.PayPercentage < 50 {
order.EarningType = model.EarningTypePoints
} else {
order.EarningType = model.EarningTypeQuote
}
var (
shopPriceSum int
)
for _, sku := range order.Skus {
storeSkuList, _ := dao.GetStoresSkusInfo(db, []int{order.StoreID}, []int{sku.SkuID})
if len(storeSkuList) > 0 {
shopPriceSum += storeSkuList[0].Price * sku.Count
sku.ShopPrice = int64(storeSkuList[0].Price)
} else {
shopPriceSum += int(sku.SalePrice) * 70 / 100
}
}
if order.EarningType == model.EarningTypeQuote && shopPriceSum+700 > int(order.TotalShopMoney) {
buildOrderTo102919(order)
globals.SugarLogger.Debugf("resultjdsOrders return 2")
}
if order.ConsigneeAddress != "" {
var (
cityCode = 0
lng, lat, lng2, lat2 float64
)
if shopDetail, _ := api.JdShopAPI.ShopDetail(int(jdsOrder.MdbStoreID)); shopDetail != nil {
if shopDetail.AddCode2 != 0 {
var place = &model.Place{}
sql1 := "SELECT * FROM place WHERE jds_code = ?"
sqlParams1 := []interface{}{shopDetail.AddCode2}
if err2 := dao.GetRow(db, &place, sql1, sqlParams1); err2 == nil && place != nil {
cityCode = place.JdsCode
} else {
sql2 := "SELECT * FROM place WHERE jd_code = ?"
sqlParams2 := []interface{}{shopDetail.AddCode2}
if err3 := dao.GetRow(db, &place, sql2, sqlParams2); err3 == nil && place != nil {
cityCode = place.JdCode
}
}
}
}
if cityCode != 0 {
lng, lat, _ = api.AutonaviAPI.GetCoordinateFromAddressByPage(order.ConsigneeAddress, cityCode)
} else {
lng2, lat2, _ = api.AutonaviAPI.GetCoordinateFromAddress(order.ConsigneeAddress, "")
order.ConsigneeLng = jxutils.StandardCoordinate2Int(lng2)
order.ConsigneeLat = jxutils.StandardCoordinate2Int(lat2)
}
distance := jxutils.EarthDistance(lng, lat, lng2, lat2)
if distance > 1 {
order.OrderType = model.OrderTypeAddressErr
}
}
} else {
buildOrderTo102919(order)
globals.SugarLogger.Debugf("resultjdsOrders return 5")
}
} else {
buildOrderTo102919(order)
globals.SugarLogger.Debugf("resultjdsOrders return 6")
}
if store != nil {
distance := jxutils.EarthDistance(jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), jxutils.IntCoordinate2Standard(store.Lng), jxutils.IntCoordinate2Standard(store.Lat))
if distance > 4 {
buildOrderTo102919(order)
globals.SugarLogger.Debugf("resultjdsOrders return 4")
}
}
orders = append(orders, order)
}
return orders, err
}
func buildOrderTo102919(order *model.GoodsOrder) {
// if order.VendorOrgCode == "1" {
// order.StoreID = 102919
// order.JxStoreID = 102919
// order.StoreName = "商城模板(成都发货)"
// order.VendorStoreID = model.JdShopMainVendorStoreID
// } else {
order.StoreID = model.JdShopMainStoreID
order.JxStoreID = model.JdShopMainStoreID
order.StoreName = "商城模板店2"
order.VendorStoreID = model.JdShopMainVendorStoreID
// }
order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled
}

View File

@@ -1,16 +1,14 @@
package test
import (
"net/http"
"net/http/httptest"
"path/filepath"
"runtime"
"testing"
_ "git.rosy.net.cn/jx-callback/routers"
"github.com/astaxie/beego/server/web"
. "github.com/smartystreets/goconvey/convey"
beego "github.com/astaxie/beego/server/web"
//. "github.com/smartystreets/goconvey/convey"
)
func init() {
@@ -21,18 +19,18 @@ func init() {
// TestGet is a sample to run an endpoint test
func TestGet(t *testing.T) {
r, _ := http.NewRequest("GET", "/v1/object", nil)
w := httptest.NewRecorder()
beego.BeeApp.Handlers.ServeHTTP(w, r)
beego.Trace("testing", "TestGet", "Code[%d]\n%s", w.Code, w.Body.String())
Convey("Subject: Test Station Endpoint\n", t, func() {
Convey("Status Code Should Be 200", func() {
So(w.Code, ShouldEqual, 200)
})
Convey("The Result Should Not Be Empty", func() {
So(w.Body.Len(), ShouldBeGreaterThan, 0)
})
})
//r, _ := http.NewRequest("GET", "/v1/object", nil)
//w := httptest.NewRecorder()
//beego.BeeApp.Handlers.ServeHTTP(w, r)
//
//beego.Trace("testing", "TestGet", "Code[%d]\n%s", w.Code, w.Body.String())
//
//Convey("Subject: Test Station Endpoint\n", t, func() {
// Convey("Status Code Should Be 200", func() {
// So(w.Code, ShouldEqual, 200)
// })
// Convey("The Result Should Not Be Empty", func() {
// So(w.Body.Len(), ShouldBeGreaterThan, 0)
// })
//})
}