Merge remote-tracking branch 'origin/mark' into don

This commit is contained in:
Rosy-zhudan
2019-09-09 15:38:32 +08:00
27 changed files with 334 additions and 126 deletions

View File

@@ -100,7 +100,9 @@ func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *mode
order = p.Map2Order(result1)
if err2 == nil {
order.Skus = p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["order_detail"])
order.Skus = append(order.Skus, getZengSkus(vendorOrderID, result1)...)
giftSkus, discountMoney := getZengSkus(vendorOrderID, result1)
order.DiscountMoney = discountMoney
order.Skus = append(order.Skus, giftSkus...)
order.ActualPayPrice = utils.MustInterface2Int64(result2["user_fee"])
jxutils.RefreshOrderSkuRelated(order)
} else if err2Ext, ok := err2.(*utils.ErrorWithCode); !ok || err2Ext.IntCode() != ebaiapi.ErrOrderIsNotPartRefund {
@@ -112,11 +114,12 @@ func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *mode
return order, err
}
func getZengSkus(orderID string, orderMan map[string]interface{}) (skus []*model.OrderSku) {
func getZengSkus(orderID string, orderMan map[string]interface{}) (skus []*model.OrderSku, discountMoney int64) {
discounts, _ := orderMan["discount"].([]interface{})
for _, v := range discounts {
discount := v.(map[string]interface{})
if utils.Interface2String(discount["type"]) == ebaiapi.OrderSkuDiscountTypeZeng {
discountType := utils.Interface2String(discount["type"])
if discountType == ebaiapi.OrderSkuDiscountTypeZeng {
sku := &model.OrderSku{
VendorOrderID: orderID,
VendorID: model.VendorIDEBAI,
@@ -128,8 +131,9 @@ func getZengSkus(orderID string, orderMan map[string]interface{}) (skus []*model
}
skus = append(skus, sku)
}
discountMoney += utils.Interface2Int64WithDefault(discount["fee"], 0)
}
return skus
return skus, discountMoney
}
func (p *PurchaseHandler) partRefund2OrderDetailSkuList(orderID string, orderDetail2 interface{}) (skuList []*model.OrderSku) {
@@ -247,7 +251,9 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
// }
order.Skus = append(order.Skus, sku)
}
order.Skus = append(order.Skus, getZengSkus(vendorOrderID, orderData)...)
giftSkus, discountMoney := getZengSkus(vendorOrderID, orderData)
order.DiscountMoney = discountMoney
order.Skus = append(order.Skus, giftSkus...)
jxutils.RefreshOrderSkuRelated(order)
return order
}
@@ -319,7 +325,7 @@ func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
if err = api.EbaiAPI.OrderSwitchselfdelivery(order.VendorOrderID); err != nil {
if utils.IsErrMatch(err, "301251", nil) {
if deliveryStatus, err2 := api.EbaiAPI.OrderDeliveryGet(order.VendorOrderID); err2 == nil {
if utils.Interface2String(deliveryStatus["status"]) == ebaiapi.WaybillStatusSelfDelivery {
if utils.Int64ToStr(utils.MustInterface2Int64(deliveryStatus["status"])) == ebaiapi.WaybillStatusSelfDelivery {
err = nil
}
}

View File

@@ -83,7 +83,7 @@ func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorStoreID string
baiduShopID := utils.Str2Int64(vendorStoreID)
result, err := api.EbaiAPI.ShopGet("", baiduShopID)
if err == nil {
globals.SugarLogger.Debug(utils.Format4Output(result, false))
// globals.SugarLogger.Debug(utils.Format4Output(result, false))
retVal := &dao.StoreDetail{
Store: model.Store{
Address: utils.Interface2String(result["address"]),
@@ -370,21 +370,25 @@ func ebaiOpTime2Jx(businessTime interface{}) (opTimeList []int16) {
func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
params := fillOpTimeParams(nil, store.GetOpTimeList())
// if store.Tel2 != "" {
// params["ivr_phone"] = store.Tel2
// }
// params["phone"] = store.Tel1
tel := store.Tel1
if tel == "" {
tel = store.Tel2
}
if tel != "" {
params["phone"] = tel
params["ivr_phone"] = tel
}
if store.VendorStoreID != "" {
params["baidu_shop_id"] = store.VendorStoreID
}
if store.SyncStatus&(model.SyncFlagNewMask /*|model.SyncFlagStoreName*/) != 0 {
params["name"] = jxutils.ComposeStoreName(store.Name, model.VendorIDEBAI)
}
params["address"] = store.Address
// todo 饿百 开店审核通过后不允许修改商户信息
if store.SyncStatus&(model.SyncFlagNewMask /*|model.SyncFlagStoreAddress*/) != 0 {
params["longitude"] = jxutils.IntCoordinate2Standard(store.Lng)
params["latitude"] = jxutils.IntCoordinate2Standard(store.Lat)
params["address"] = store.Address
params["coord_type"] = ebaiapi.CoordTypeAutonavi
if deliveryRegion := JxDeliveryRegion2Ebai(&store.Store); deliveryRegion != nil {
params["delivery_region"] = deliveryRegion

View File

@@ -83,6 +83,14 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) {
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq))
// todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作
if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) {
if cat, err2 := p.GetStoreCategory(ctx, storeID, vendorStoreID, storeCat.Name); err2 == nil {
if cat.VendorCatID == storeCat.VendorCatID {
err = nil
}
}
}
}
return err
}

View File

@@ -201,7 +201,11 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
}
order.ConsigneeLng = jxutils.StandardCoordinate2Int(originalLng)
order.ConsigneeLat = jxutils.StandardCoordinate2Int(originalLat)
// discounts := result["discount"].(map[string]interface{})
discounts, _ := result["discount"].([]interface{})
for _, v := range discounts {
discount := v.(map[string]interface{})
order.DiscountMoney += utils.Interface2Int64WithDefault(discount["discountPrice"], 0)
}
for _, product2 := range result["product"].([]interface{}) {
product := product2.(map[string]interface{})
sku := &model.OrderSku{

View File

@@ -153,6 +153,7 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
panic(fmt.Sprintf("mtwm Map2Order vendorID:%s failed with error:%v", vendorOrderID, err))
}
for _, extra := range extraList {
order.DiscountMoney += jxutils.StandardPrice2Int(extra.ReduceFee)
if extra.Type == mtwmapi.ExtrasPromotionTypeTaoCanZeng || extra.Type == mtwmapi.ExtrasPromotionTypeManZeng {
sku := &model.OrderSku{
VendorOrderID: order.VendorOrderID,

View File

@@ -107,31 +107,32 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
return err
}
errList := errlist.New()
// remoteStoreInfo, err := api.MtwmAPI.PoiGet(storeDetail.VendorStoreID)
// if err != nil {
// return err
// }
// params := map[string]interface{}{
// "name": utils.Interface2String(remoteStoreInfo["name"]), //jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM),
// "phone": storeDetail.Tel1,
// "shipping_fee": jxutils.IntPrice2Standard(int64(storeDetail.DeliveryFee)),
// "shipping_time": openTimeJX2Mtwm(openTime),
// "third_tag_name": "蔬菜",
// }
// if true { //storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreAddress) != 0 {
// params["address"] = storeDetail.Address
// params["longitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lng)
// params["latitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lat)
// }
// params["open_level"] = openLevel
// params["is_online"] = isOnline
// globals.SugarLogger.Debug(utils.Format4Output(params, false))
// if globals.EnableMtwmStoreWrite {
// err = api.MtwmAPI.PoiSave(storeDetail.VendorStoreID, params)
// }
if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
errList.AddErr(p.UpdateStoreStatus(jxcontext.AdminCtx, storeID, storeDetail.VendorStoreID, jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus)))
remoteStoreInfo, err := api.MtwmAPI.PoiGet(storeDetail.VendorStoreID)
if err != nil {
return err
}
openLevel, isOnline := bizStatusJX2Mtwm(storeDetail.Status)
params := map[string]interface{}{
"name": remoteStoreInfo.Name, //jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM),
"address": storeDetail.Address,
"longitude": jxutils.IntCoordinate2Standard(int(remoteStoreInfo.Longitude)),
"latitude": jxutils.IntCoordinate2Standard(int(remoteStoreInfo.Latitude)),
"phone": storeDetail.Tel1,
"shipping_fee": remoteStoreInfo.ShippingFee,
"shipping_time": remoteStoreInfo.ShippingTime,
"open_level": openLevel,
"is_online": isOnline,
"third_tag_name": remoteStoreInfo.ThirdTagName,
}
// globals.SugarLogger.Debug(utils.Format4Output(params, false))
if globals.EnableMtwmStoreWrite {
errList.AddErr(api.MtwmAPI.PoiSave(storeDetail.VendorStoreID, params))
}
// if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
// errList.AddErr(p.UpdateStoreStatus(jxcontext.AdminCtx, storeID, storeDetail.VendorStoreID, jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus)))
// }
errList.AddErr(p.UpdateStoreOpTime(jxcontext.AdminCtx, storeID, storeDetail.VendorStoreID, storeDetail.GetOpTimeList()))
return errList.GetErrListAsOne()
}