Merge remote-tracking branch 'origin/jdshop' into qidongsheng
This commit is contained in:
@@ -1075,7 +1075,7 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o
|
||||
}
|
||||
order := &model.GoodsOrder{
|
||||
VendorOrderID2: utils.Int64ToStr(jdsOrder.OrderID),
|
||||
VendorOrderID: utils.Int64ToStr(jdsOrder.OrderID) + "001",
|
||||
VendorOrderID: utils.Int64ToStr(jdsOrder.OrderID) + "000001",
|
||||
VendorID: model.VendorIDJDShop,
|
||||
BaseFreightMoney: jxutils.StandardPrice2Int(jdsOrder.Freight),
|
||||
VendorStatus: utils.Int2Str(jdsOrder.OrderStatus),
|
||||
@@ -1219,8 +1219,14 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int)
|
||||
}
|
||||
//重新构建order的数据
|
||||
storeMaps, err := dao.GetStoresMapList(db, []int{order.VendorID}, []int{storeID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "")
|
||||
if err != nil || len(storeMaps) == 0 {
|
||||
return "", fmt.Errorf("该门店未绑定京狗平台,请先绑定后再转移!门店:[%v]", storeID)
|
||||
}
|
||||
stores, err := dao.GetStoreList(db, []int{storeID}, nil, nil, nil, "")
|
||||
if len(storeMaps) > 0 && len(stores) > 0 {
|
||||
if storeMaps[0].VendorStoreID == "" {
|
||||
return "", fmt.Errorf("该门店未绑定京狗平台,或绑定有误,请联系技术部!门店:[%v]", storeID)
|
||||
}
|
||||
order.StoreID = storeID
|
||||
order.StoreName = stores[0].Name
|
||||
order.VendorStoreID = storeMaps[0].VendorStoreID
|
||||
@@ -1230,7 +1236,7 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int)
|
||||
if len(order.VendorOrderID) > 12 {
|
||||
suffix := utils.Str2Int(order.VendorOrderID[12:len(order.VendorOrderID)])
|
||||
suffix++
|
||||
order.VendorOrderID = utils.Int64ToStr(utils.Str2Int64(order.VendorOrderID2)*100) + utils.Int2Str(suffix)
|
||||
order.VendorOrderID = utils.Int64ToStr(utils.Str2Int64(order.VendorOrderID2)*100000) + utils.Int2Str(suffix)
|
||||
}
|
||||
for _, sku := range skus {
|
||||
sku.VendorOrderID = order.VendorOrderID
|
||||
|
||||
@@ -7,6 +7,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/astaxie/beego"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||
@@ -314,111 +316,35 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
||||
afsInfo[v.SkuID].Count -= minus
|
||||
}
|
||||
}
|
||||
// if v.SkuCount2 == 1 {
|
||||
// skuStr1 := strings.Join([]string{
|
||||
// utils.Int2Str(v.SkuID),
|
||||
// utils.Int2Str(v.SkuCount2),
|
||||
// utils.Int2Str(v.SkuShopPrice),
|
||||
// utils.Int2Str(v.SkuSalePrice),
|
||||
// utils.Int2Str(v.SkuEarningPrice),
|
||||
// }, ",")
|
||||
// if order == nil || v.ID != order.ID {
|
||||
// order = v
|
||||
// v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID]
|
||||
// v.Status2 = model.OrderStatusName[v.Status]
|
||||
// v.SkuInfo = skuStr1
|
||||
// v.SkuInfo2 = skuStr1
|
||||
// orders2 = append(orders2, v)
|
||||
// } else {
|
||||
// order.SkuInfo += ";" + skuStr1
|
||||
// order.SkuInfo2 += ";" + skuStr1
|
||||
// }
|
||||
// } else if v.SkuCount2 > 1 {
|
||||
// storeID := 0
|
||||
// if v.StoreID == 0 {
|
||||
// storeID = v.JxStoreID
|
||||
// } else {
|
||||
// storeID = v.StoreID
|
||||
// }
|
||||
// result, _ := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, nil, 0, []int{storeID}, []int{v.SkuID}, v.OrderCreatedAt, v.OrderCreatedAt)
|
||||
// if len(result) > 0 {
|
||||
// if result[0].EarningPrice != 0 {
|
||||
// var (
|
||||
// storePayPercentage, price int
|
||||
// )
|
||||
// stores, _ := dao.GetStoreList(dao.GetDB(), []int{v.StoreID}, nil, nil, nil, "")
|
||||
// if len(stores) > 0 {
|
||||
// storePayPercentage = stores[0].PayPercentage
|
||||
// } else {
|
||||
// storePayPercentage = 70
|
||||
// }
|
||||
// skuStr1 := strings.Join([]string{
|
||||
// utils.Int2Str(v.SkuID),
|
||||
// utils.Int2Str(v.SkuCount2),
|
||||
// utils.Int2Str(v.SkuShopPrice),
|
||||
// utils.Int2Str(v.SkuSalePrice),
|
||||
// utils.Int2Str(v.SkuEarningPrice),
|
||||
// }, ",")
|
||||
// skuStr2 := strings.Join([]string{
|
||||
// utils.Int2Str(v.SkuID),
|
||||
// utils.Int2Str(1),
|
||||
// utils.Int2Str(v.SkuShopPrice),
|
||||
// utils.Int2Str(v.SkuSalePrice),
|
||||
// utils.Int2Str(v.SkuEarningPrice),
|
||||
// }, ",")
|
||||
// if v.SkuShopPrice < v.SkuSalePrice {
|
||||
// price = v.SkuShopPrice * storePayPercentage
|
||||
// } else {
|
||||
// price = v.SkuSalePrice * storePayPercentage
|
||||
// }
|
||||
// skuStr3 := strings.Join([]string{
|
||||
// utils.Int2Str(v.SkuID),
|
||||
// utils.Int2Str(v.SkuCount2 - 1),
|
||||
// utils.Int2Str(v.SkuShopPrice),
|
||||
// utils.Int2Str(v.SkuSalePrice),
|
||||
// utils.Int2Str(price),
|
||||
// }, ",")
|
||||
// if order == nil || v.ID != order.ID {
|
||||
// order = v
|
||||
// v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID]
|
||||
// v.Status2 = model.OrderStatusName[v.Status]
|
||||
// v.SkuInfo2 = skuStr1
|
||||
// v.SkuInfo = skuStr2 + ";" + skuStr3
|
||||
// orders2 = append(orders2, v)
|
||||
// } else {
|
||||
// order.SkuInfo2 += ";" + skuStr1
|
||||
// order.SkuInfo += ";" + skuStr2 + ";" + skuStr3
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// skuStr1 := strings.Join([]string{
|
||||
// utils.Int2Str(v.SkuID),
|
||||
// utils.Int2Str(v.SkuCount2),
|
||||
// utils.Int2Str(v.SkuShopPrice),
|
||||
// utils.Int2Str(v.SkuSalePrice),
|
||||
// utils.Int2Str(v.SkuEarningPrice),
|
||||
// }, ",")
|
||||
// if order == nil || v.ID != order.ID {
|
||||
// order = v
|
||||
// v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID]
|
||||
// v.Status2 = model.OrderStatusName[v.Status]
|
||||
// v.SkuInfo = skuStr1
|
||||
// v.SkuInfo2 = skuStr1
|
||||
// orders2 = append(orders2, v)
|
||||
// } else {
|
||||
// order.SkuInfo += ";" + skuStr1
|
||||
// order.SkuInfo2 += ";" + skuStr1
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
if v.SkuCount2 > 0 {
|
||||
skuStr := strings.Join([]string{
|
||||
utils.Int2Str(v.SkuID),
|
||||
utils.Int2Str(v.SkuCount2),
|
||||
utils.Int2Str(v.SkuShopPrice),
|
||||
utils.Int2Str(v.SkuSalePrice),
|
||||
utils.Int2Str(v.SkuEarningPrice),
|
||||
}, ",")
|
||||
var skuStr string
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
skuStr = strings.Join([]string{
|
||||
utils.Int2Str(v.SkuID),
|
||||
utils.Int2Str(v.SkuCount2),
|
||||
utils.Int2Str(v.SkuShopPrice),
|
||||
utils.Int2Str(v.SkuSalePrice),
|
||||
utils.Int2Str(v.SkuEarningPrice),
|
||||
}, ",")
|
||||
} else {
|
||||
if v.PayPercentage == 100 {
|
||||
skuStr = strings.Join([]string{
|
||||
utils.Int2Str(v.SkuID),
|
||||
utils.Int2Str(v.SkuCount2),
|
||||
utils.Int2Str(v.SkuEarningPrice),
|
||||
utils.Int2Str(v.SkuSalePrice),
|
||||
utils.Int2Str(v.SkuShopPrice),
|
||||
}, ",")
|
||||
} else {
|
||||
skuStr = strings.Join([]string{
|
||||
utils.Int2Str(v.SkuID),
|
||||
utils.Int2Str(v.SkuCount2),
|
||||
utils.Int2Str(v.SkuShopPrice),
|
||||
utils.Int2Str(v.SkuSalePrice),
|
||||
utils.Int2Str(v.SkuEarningPrice),
|
||||
}, ",")
|
||||
}
|
||||
}
|
||||
if order == nil || v.ID != order.ID {
|
||||
order = v
|
||||
v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID]
|
||||
|
||||
@@ -763,9 +763,9 @@ func (s *DefScheduler) cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo
|
||||
}
|
||||
|
||||
func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) {
|
||||
//表示此订单是京东商城转移的订单,不用出库,但要去修改运单号
|
||||
if len(bill.VendorOrderID) > 12 {
|
||||
if utils.Str2Int(bill.VendorOrderID[12:len(bill.VendorOrderID)]) > 1 {
|
||||
//表示此订单是京东商城2次转移的订单,不用出库,但要去修改运单号
|
||||
if utils.Str2Int(bill.VendorOrderID[12:len(bill.VendorOrderID)]) > 2 {
|
||||
err = jdshop.CurPurchaseHandler.OrderTransfer(jxcontext.AdminCtx, bill.VendorOrderID, bill.VendorWaybillID, true)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Errorf("京东商城订单自动转移失败!", err)
|
||||
@@ -779,6 +779,7 @@ func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) {
|
||||
|
||||
func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||
globals.SugarLogger.Debugf("cancelOtherWaybills, orderID:%s, bill:%v", savedOrderInfo.order.VendorOrderID, bill2Keep)
|
||||
globals.SugarLogger.Debugf("testcancelOtherWaybills,savedOrderInfo: %v", utils.Format4Output(savedOrderInfo, false))
|
||||
for _, v := range savedOrderInfo.waybills {
|
||||
if v.Status < model.WaybillStatusEndBegin &&
|
||||
!model.IsWaybillPlatformOwn(v) &&
|
||||
|
||||
@@ -3334,6 +3334,7 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe
|
||||
var skuBindInfoList []*StoreSkuBindInfo
|
||||
for _, vv := range skuNameAndPlaceList {
|
||||
if skuNameMap[vv.ID] != 0 {
|
||||
globals.SugarLogger.Debugf("testAutoFocusStoreSkusForTopSkus,storeID:%v,nameID:%v", v.ID, vv.ID)
|
||||
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||
StoreID: v.ID,
|
||||
NameID: vv.ID,
|
||||
@@ -4693,4 +4694,3 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku
|
||||
}
|
||||
return hint, err
|
||||
}
|
||||
|
||||
|
||||
@@ -1115,7 +1115,7 @@ func syncJdsStoreStock(ctx *jxcontext.Context, db *dao.DaoDB, storeSkus []*model
|
||||
}
|
||||
storeSku2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{storeSku.SkuID})
|
||||
if storeSku.JdsID != 0 && len(storeSku2) > 0 {
|
||||
if storeSku.Status != storeSku2[0].Status {
|
||||
if storeSku.Status != storeSku2[0].Status && storeMap.VendorStoreID != "" {
|
||||
err = api.JdShopAPI.UpdateSkuSiteStock(storeSku.JdsID, stock, utils.Str2Int(storeMap.VendorStoreID))
|
||||
}
|
||||
}
|
||||
@@ -1184,14 +1184,14 @@ func syncJdsStoresSkus(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch
|
||||
for _, v := range updateList {
|
||||
skuBindInfos1 = append(skuBindInfos1, buildStoreSkuBindInfo(db, storeMap.StoreID, v, false))
|
||||
}
|
||||
_, err = UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos1, isAsync, isContinueWhenError, false)
|
||||
UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos1, isAsync, isContinueWhenError, false)
|
||||
}
|
||||
|
||||
if len(addList) > 0 {
|
||||
for _, v := range addList {
|
||||
skuBindInfos2 = append(skuBindInfos2, buildStoreSkuBindInfo(db, storeMap.StoreID, v, true))
|
||||
}
|
||||
_, err = UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos2, isAsync, isContinueWhenError, false)
|
||||
UpdateStoresSkusByBind(ctx, parentTask, skuBindInfos2, isAsync, isContinueWhenError, false)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -283,7 +283,6 @@ func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyn
|
||||
skuItem.SkuNameOrigin = jxutils.ComposeSkuNameOriginal(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0)
|
||||
if skuItem.ImgWatermark != "" {
|
||||
downLoad, _ := uploadImgStandard(skuItem.ImgWatermark)
|
||||
fmt.Println("testdo", downLoad)
|
||||
skuItem.ImgMix = jxutils.MixWatermarkImg(downLoad, skuItem.ImgOrigin, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd)
|
||||
}
|
||||
}
|
||||
@@ -483,9 +482,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
} else {
|
||||
if sku.MergedStatus == model.SkuStatusNormal {
|
||||
if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop {
|
||||
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||
// globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||
} else if dao.IsVendorThingIDEmpty(utils.Int64ToStr(sku.VendorVendorCatID)) && vendorID == model.VendorIDJDShop {
|
||||
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有映射的平台ID", storeID, sku.SkuID)
|
||||
// globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有映射的平台ID", storeID, sku.SkuID)
|
||||
} else {
|
||||
createList = append(createList, sku)
|
||||
}
|
||||
@@ -509,7 +508,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
// 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改
|
||||
if (model.IsSyncStatusUpdate(sku.SkuSyncStatus) || (model.IsSyncStatusSeq(sku.SkuSyncStatus) && reorderHandler == nil)) && singleStoreHandler != nil {
|
||||
if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop {
|
||||
globals.SugarLogger.Warnf("syncStoreSkuNew 修改门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||
// globals.SugarLogger.Warnf("syncStoreSkuNew 修改门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||
} else {
|
||||
isAdded2Update = true
|
||||
updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
|
||||
@@ -915,7 +914,9 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if storeID == 103075 {
|
||||
fmt.Println("sku2Delete", utils.Format4Output(sku2Delete, false))
|
||||
}
|
||||
if opType == AmendPruneOnlyAmend || opType == AmendPruneAll {
|
||||
for _, v := range localSkuList {
|
||||
if !model.IsSyncStatusDelete(v.SkuSyncStatus) && v.BindID != 0 {
|
||||
|
||||
@@ -46,10 +46,10 @@ var (
|
||||
"22:00:00",
|
||||
}
|
||||
dailyWorkTimeList2 = []string{
|
||||
"23:00:00",
|
||||
"04:00:00",
|
||||
}
|
||||
priceReferTimeList = []string{
|
||||
"01:00:00",
|
||||
"03:00:00",
|
||||
}
|
||||
checkCookieList = []string{
|
||||
"08:00:00",
|
||||
@@ -57,7 +57,7 @@ var (
|
||||
"18:00:00",
|
||||
}
|
||||
createStorePriceTimeList = []string{
|
||||
"02:00:00",
|
||||
"04:00:00",
|
||||
}
|
||||
refreshPageActTimeList = []string{
|
||||
"7:00:00",
|
||||
@@ -393,7 +393,7 @@ func doDailyWork() {
|
||||
dao.SetStoresMapSyncStatus(dao.GetDB(), nil, nil, model.SyncFlagStoreStatus)
|
||||
cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true)
|
||||
|
||||
syncStoreSku()
|
||||
// syncStoreSku()
|
||||
InitEx()
|
||||
cms.SyncStoresCourierInfo(jxcontext.AdminCtx, nil, false, true)
|
||||
netprinter.RebindAllPrinters(jxcontext.AdminCtx, false, true)
|
||||
|
||||
@@ -8,8 +8,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdshopapi"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
||||
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||
"github.com/360EntSecGroup-Skylar/excelize"
|
||||
@@ -1611,295 +1609,6 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
|
||||
// continue
|
||||
// }
|
||||
// }
|
||||
var jdsIds = []int64{69355523686,
|
||||
69353698875,
|
||||
69353633443,
|
||||
69353579080,
|
||||
69353592976,
|
||||
69353575450,
|
||||
69353669915,
|
||||
69353617240,
|
||||
69353711276,
|
||||
69355552630,
|
||||
69353579078,
|
||||
69633169613,
|
||||
69353608855,
|
||||
69634881612,
|
||||
69353634806,
|
||||
69353675911,
|
||||
69353698186,
|
||||
69353698877,
|
||||
69607962771,
|
||||
69608002604,
|
||||
69666543870,
|
||||
69353541693,
|
||||
69411607058,
|
||||
69353594629,
|
||||
69353602818,
|
||||
69353698187,
|
||||
69355538267,
|
||||
69353633269,
|
||||
69355549016,
|
||||
69411607059,
|
||||
69593365617,
|
||||
69353589341,
|
||||
69353618034,
|
||||
69353633445,
|
||||
69353644658,
|
||||
69353644659,
|
||||
69353664332,
|
||||
69355505481,
|
||||
69355531215,
|
||||
69355552632,
|
||||
69353618035,
|
||||
69353619589,
|
||||
69353684423,
|
||||
69353687174,
|
||||
69353722053,
|
||||
69355493882,
|
||||
69627859883,
|
||||
69680935348,
|
||||
69353555847,
|
||||
69353570677,
|
||||
69353589397,
|
||||
69353592975,
|
||||
69353594611,
|
||||
69353602819,
|
||||
69353616402,
|
||||
69353624528,
|
||||
69353654004,
|
||||
69353668114,
|
||||
69353687173,
|
||||
69353701089,
|
||||
69353722052,
|
||||
69353723922,
|
||||
69355527850,
|
||||
69355552631,
|
||||
69628257042,
|
||||
69636525703,
|
||||
69680935349,
|
||||
69353579081,
|
||||
69353589342,
|
||||
69353632136,
|
||||
69353654006,
|
||||
69353726354,
|
||||
69355496067,
|
||||
69355515747,
|
||||
69355516049,
|
||||
69355527036,
|
||||
69355532703,
|
||||
69355558164,
|
||||
69355560640,
|
||||
69608002434,
|
||||
69608089252,
|
||||
69626869676,
|
||||
69628142211,
|
||||
69651275202,
|
||||
69665458721,
|
||||
69980157422,
|
||||
69353511255,
|
||||
69353550931,
|
||||
69353555846,
|
||||
69353579079,
|
||||
69353593375,
|
||||
69353595563,
|
||||
69353603501,
|
||||
69353608856,
|
||||
69353618036,
|
||||
69353628469,
|
||||
69353628470,
|
||||
69353632137,
|
||||
69353633267,
|
||||
69353633444,
|
||||
69353651935,
|
||||
69353668115,
|
||||
69353683331,
|
||||
69353684157,
|
||||
69353701088,
|
||||
69353723844,
|
||||
69353723845,
|
||||
69353726353,
|
||||
69355490631,
|
||||
69355493881,
|
||||
69355493884,
|
||||
69355520278,
|
||||
69355523687,
|
||||
69355532705,
|
||||
69355533814,
|
||||
69355536851,
|
||||
69355538268,
|
||||
69355538269,
|
||||
69593321185,
|
||||
69593321186,
|
||||
69607997022,
|
||||
69626638026,
|
||||
69626638027,
|
||||
69626872037,
|
||||
69627693305,
|
||||
69627954144,
|
||||
69628180933,
|
||||
69633580083,
|
||||
69633580085,
|
||||
69634881613,
|
||||
69635037810,
|
||||
69635204944,
|
||||
69636212985,
|
||||
69636446354,
|
||||
69659137913,
|
||||
69659219611,
|
||||
69665406179,
|
||||
69666460731,
|
||||
69673523007,
|
||||
69680905913,
|
||||
69681869918,
|
||||
69821176674,
|
||||
69913341309,
|
||||
69916445013,
|
||||
69353511254,
|
||||
69353570678,
|
||||
69353581400,
|
||||
69353589343,
|
||||
69353589398,
|
||||
69353593376,
|
||||
69353594630,
|
||||
69353609816,
|
||||
69353616406,
|
||||
69353617241,
|
||||
69353619591,
|
||||
69353633268,
|
||||
69353634833,
|
||||
69353642793,
|
||||
69353647695,
|
||||
69353651934,
|
||||
69353654005,
|
||||
69353664333,
|
||||
69353669914,
|
||||
69353673334,
|
||||
69353684159,
|
||||
69353684603,
|
||||
69353684604,
|
||||
69353684605,
|
||||
69353684607,
|
||||
69353698876,
|
||||
69353701090,
|
||||
69353711277,
|
||||
69353711278,
|
||||
69353726357,
|
||||
69355496066,
|
||||
69355520277,
|
||||
69355523688,
|
||||
69355527851,
|
||||
69355533813,
|
||||
69355533815,
|
||||
69355538270,
|
||||
69355559874,
|
||||
69355559875,
|
||||
69355559876,
|
||||
69355560641,
|
||||
69607988687,
|
||||
69608089253,
|
||||
69625036409,
|
||||
69625436705,
|
||||
69626674146,
|
||||
69626756838,
|
||||
69626849783,
|
||||
69626872040,
|
||||
69627211928,
|
||||
69627823696,
|
||||
69627823697,
|
||||
69627824429,
|
||||
69627859882,
|
||||
69627954146,
|
||||
69628055157,
|
||||
69628209840,
|
||||
69628220046,
|
||||
69628244518,
|
||||
69628620179,
|
||||
69628645373,
|
||||
69633038980,
|
||||
69633169614,
|
||||
69633311068,
|
||||
69633433209,
|
||||
69634285577,
|
||||
69634285578,
|
||||
69634566319,
|
||||
69634566320,
|
||||
69634620948,
|
||||
69635037811,
|
||||
69635075404,
|
||||
69635108188,
|
||||
69636525704,
|
||||
69636563250,
|
||||
69636658901,
|
||||
69636658902,
|
||||
69651265114,
|
||||
69659219612,
|
||||
69659883978,
|
||||
69662122661,
|
||||
69666543871,
|
||||
69666543872,
|
||||
69666660395,
|
||||
69666907986,
|
||||
69666931214,
|
||||
69673508504,
|
||||
69680887348,
|
||||
69818078270,
|
||||
69881553035,
|
||||
69901783885,
|
||||
69913362221,
|
||||
69916396643,
|
||||
69925717199,
|
||||
69933144351,
|
||||
69933974117,
|
||||
69935756246,
|
||||
69935768981,
|
||||
69935855227,
|
||||
69935915640,
|
||||
69937601360,
|
||||
69937642148,
|
||||
69939562884,
|
||||
69939571687,
|
||||
69948026907,
|
||||
}
|
||||
db := dao.GetDB()
|
||||
for _, v := range jdsIds {
|
||||
vendorSku, _ := api.JdShopAPI.FindSkuById(v)
|
||||
var sku *model.Sku
|
||||
sql := `
|
||||
SELECT b.* FROM store_sku_bind a,sku b WHERE a.sku_id = b.id AND a.store_id = 102919 AND a.jds_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{v}
|
||||
err = dao.GetRow(db, &sku, sql, sqlParams)
|
||||
skus, _ := dao.GetStoreSkus(db, model.VendorIDJDShop, model.JdShopMainStoreID, []int{sku.ID})
|
||||
storeSku := skus[0]
|
||||
if sku.Comment != "" {
|
||||
var specQuality = utils.Float64ToStr(float64(storeSku.SpecQuality)) + storeSku.SpecUnit
|
||||
vendorSkuAttr := vendorSku.SaleAttrs[0].AttrValueAlias[0]
|
||||
if vendorSkuAttr == specQuality {
|
||||
err = api.JdShopAPI.UpdateWareSaleAttrvalueAlias(&jdshopapi.UpdateWareSaleAttrvalueAliasParam{
|
||||
WareID: vendorSku.WareID,
|
||||
Props: []*jdshopapi.CreateSkuParamAttrs2{
|
||||
&jdshopapi.CreateSkuParamAttrs2{
|
||||
AttrID: vendorSku.SaleAttrs[0].AttrID,
|
||||
AttrValues: []string{vendorSku.SaleAttrs[0].AttrValues[0]},
|
||||
AttrValueAlias: []string{sku.Comment},
|
||||
Type: "com.jd.pop.ware.ic.api.domain.prop",
|
||||
Type2: "com.jd.pop.ware.ic.api.domain.Prop",
|
||||
},
|
||||
},
|
||||
})
|
||||
} else {
|
||||
if vendorSkuAttr != sku.Comment {
|
||||
_, maxNo, _ := api.JdShopAPI.FindValuesByAttrId(utils.Str2Int(vendorSku.SaleAttrs[0].AttrID))
|
||||
api.JdShopAPI.SaveVenderAttrValue(sku.Comment, utils.Str2Int(vendorSku.SaleAttrs[0].AttrID), int(storeSku.VendorVendorCatID), maxNo+1)
|
||||
}
|
||||
}
|
||||
}
|
||||
// attrValue := vendorSku.SaleAttrs[0].AttrValueAlias[0]
|
||||
// if storeSkus != nil {
|
||||
// cms.CurVendorSync.SyncStoresSkus(ctx, nil, 0, db, []int{model.VendorIDJDShop}, []int{model.JdShopMainStoreID}, []int{storeSkus.SkuID}, false, true, true)
|
||||
// }
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ func GetPossibleVendorIDFromVendorOrderID(vendorOrderID string) (vendorID int) {
|
||||
vendorID = model.VendorIDWSC
|
||||
} else if orderIDLen == len("1000004390") {
|
||||
vendorID = model.VendorIDJX
|
||||
} else if orderIDLen == len("124557362562002") {
|
||||
} else if orderIDLen == len("124557362562000001") {
|
||||
vendorID = model.VendorIDJDShop
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,13 @@ func (c *DeliveryHandler) GetVendorID() int {
|
||||
return model.VendorIDJDWL
|
||||
}
|
||||
|
||||
func OnWaybillMsg() {
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) OnWaybillMsg() {
|
||||
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) CreateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (vendorStoreID string, status int, err error) {
|
||||
return vendorStoreID, status, err
|
||||
}
|
||||
@@ -94,7 +101,3 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
|
||||
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) OnWaybillMsg() {
|
||||
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ func OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.Ca
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) {
|
||||
c.pushToGy(msg)
|
||||
jxutils.CallMsgHandler(func() {
|
||||
retVal = c.onWaybillMsg(msg)
|
||||
}, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDMTPS))
|
||||
@@ -104,13 +105,13 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
|
||||
globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg)
|
||||
return mtpsapi.SuccessResponse
|
||||
}
|
||||
c.pushToGy(order, msg)
|
||||
globals.SugarLogger.Debugf("onWaybillMsg test, %v", msg)
|
||||
return mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) pushToGy(waybill *model.Waybill, msg *mtpsapi.CallbackOrderMsg) {
|
||||
order, _ := dao.GetSimpleOrder(dao.GetDB(), waybill.VendorOrderID)
|
||||
func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) {
|
||||
vendorOrderID, _ := jxutils.SplitUniversalOrderID(msg.OrderID)
|
||||
order, _ := dao.GetSimpleOrder(dao.GetDB(), vendorOrderID)
|
||||
//查不到订单可能就是果园的订单
|
||||
if order == nil {
|
||||
cl := http.Client{}
|
||||
@@ -132,19 +133,7 @@ func (c *DeliveryHandler) pushToGy(waybill *model.Waybill, msg *mtpsapi.Callback
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
request.PostForm.Set("mt_peisong_id", msg.MtPeisongID)
|
||||
request.PostForm.Set("courier_name", msg.CourierName)
|
||||
request.PostForm.Set("delivery_id", utils.Int64ToStr(msg.DeliveryID))
|
||||
request.PostForm.Set("appkey", msg.AppKey)
|
||||
request.PostForm.Set("order_id", msg.OrderID)
|
||||
request.PostForm.Set("courier_phone", msg.CourierPhone)
|
||||
request.PostForm.Set("status", utils.Int2Str(msg.Status))
|
||||
request.PostForm.Set("timestamp", utils.Int64ToStr(msg.Timestamp))
|
||||
request.PostForm.Set("cancel_reason_id", utils.Int2Str(msg.CancelReasonId))
|
||||
request.PostForm.Set("cancel_reason", msg.CancelReason)
|
||||
request.PostForm.Set("sign", sign)
|
||||
fmt.Println("testgy request : %v", request.FormValue("sign"))
|
||||
request.Header.Set("content_type", "application/x-www-form-urlencoded; charset=UTF-8")
|
||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
|
||||
cl.Do(request)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,9 @@ func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (s
|
||||
Current: 1,
|
||||
PageSize: 1,
|
||||
})
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return status2Jxstatus(orderResult.OrderList[0].OrderStatus), err
|
||||
}
|
||||
|
||||
@@ -85,9 +88,11 @@ func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName
|
||||
return err
|
||||
}
|
||||
func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||
ChangeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "")
|
||||
return err
|
||||
}
|
||||
func (p *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
ChangeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "")
|
||||
return err
|
||||
}
|
||||
func (p *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) {
|
||||
@@ -101,6 +106,9 @@ func (p *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
|
||||
}
|
||||
func (p *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
||||
ChangeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason)
|
||||
if order.EclpOutID != "" {
|
||||
_, err = api.JdEclpAPI.CancelOrder(order.EclpOutID)
|
||||
}
|
||||
return err
|
||||
}
|
||||
func (p *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
|
||||
@@ -162,7 +170,7 @@ func (p *PurchaseHandler) OrderTransfer(ctx *jxcontext.Context, vendorOrderID, v
|
||||
if !isAuto {
|
||||
companyID = jdshopapi.JdsDeliveryCompanyJD
|
||||
}
|
||||
err = api.JdShopAPI.UpdateWaybill(vendorOrderID[:12], companyID, vendorWaybillID)
|
||||
err = api.JdShopAPI.UpdateWaybill(vendorOrderID[:12], companyID, vendorOrderID)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -385,6 +385,21 @@ func GenOrderNo(ctx *jxcontext.Context) (orderNo int64) {
|
||||
return orderNo
|
||||
}
|
||||
|
||||
func GenAfsOrderNo(ctx *jxcontext.Context) (orderNo int64) {
|
||||
const prefix = 80
|
||||
const randPartNum = 100
|
||||
orderNo = time.Now().Unix() - orderNoBeginTimestamp
|
||||
orderNo = orderNo * randPartNum
|
||||
md5Bytes := md5.Sum([]byte(utils.GetUUID()))
|
||||
randPart := 0
|
||||
for k, v := range md5Bytes {
|
||||
randPart += int(v) << ((k % 3) * 8)
|
||||
}
|
||||
orderNo += int64(randPart % randPartNum)
|
||||
orderNo += int64(math.Pow10(int(math.Log10(float64(orderNo)))+1)) * prefix
|
||||
return orderNo
|
||||
}
|
||||
|
||||
func GenPayOrderID(order *model.GoodsOrder) (payOrderID int64) {
|
||||
return utils.Str2Int64(order.VendorOrderID)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,11 @@ package jx
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
@@ -37,6 +41,56 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods
|
||||
|
||||
// 发起部分退款
|
||||
func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) {
|
||||
var skuMap = make(map[int]*model.OrderSku)
|
||||
for _, sku := range order.Skus {
|
||||
skuMap[sku.SkuID] = sku
|
||||
}
|
||||
orderStatus := buildOrderStatus(ctx, order, reason)
|
||||
afsOrder := &model.AfsOrder{
|
||||
VendorID: order.VendorID,
|
||||
AfsOrderID: orderStatus.VendorOrderID,
|
||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||
VendorStoreID: order.VendorStoreID,
|
||||
StoreID: order.StoreID,
|
||||
AfsCreatedAt: time.Now(),
|
||||
VendorAppealType: "",
|
||||
AppealType: model.AfsAppealTypeRefund,
|
||||
VendorReasonType: utils.Int2Str(model.AfsReasonNotOthers),
|
||||
ReasonType: model.AfsReasonNotOthers,
|
||||
ReasonDesc: utils.LimitUTF8StringLen(reason, 1024),
|
||||
ReasonImgList: "",
|
||||
RefundType: model.AfsTypePartRefund,
|
||||
|
||||
VendorOrgCode: "",
|
||||
}
|
||||
for _, sku := range refundSkuList {
|
||||
orderSku := &model.OrderSkuFinancial{
|
||||
Count: sku.Count,
|
||||
VendorSkuID: utils.Int2Str(sku.SkuID),
|
||||
SkuID: sku.SkuID,
|
||||
}
|
||||
if skuMap[sku.SkuID] != nil {
|
||||
orderSku.Name = skuMap[sku.SkuID].SkuName
|
||||
orderSku.UserMoney = skuMap[sku.SkuID].SalePrice
|
||||
}
|
||||
afsOrder.SkuUserMoney += orderSku.UserMoney
|
||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||
}
|
||||
err = fmt.Errorf("%s不支持售后部分退款,请让买家发起退款", model.VendorChineseNames[model.VendorIDJX])
|
||||
return err
|
||||
}
|
||||
|
||||
func buildOrderStatus(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (orderStatus *model.OrderStatus) {
|
||||
orderStatus = &model.OrderStatus{
|
||||
VendorOrderID: utils.Int64ToStr(localjx.GenAfsOrderNo(ctx)), // 是售后单ID,不是订单ID,订单ID在RefVendorOrderID中
|
||||
VendorID: order.VendorID,
|
||||
OrderType: model.OrderTypeAfsOrder,
|
||||
RefVendorOrderID: order.VendorOrderID,
|
||||
RefVendorID: order.VendorID,
|
||||
VendorStatus: utils.Int2Str(model.AfsOrderStatusWait4Approve),
|
||||
Status: model.AfsOrderStatusWait4Approve,
|
||||
StatusTime: time.Now(),
|
||||
Remark: reason,
|
||||
}
|
||||
return orderStatus
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ EnableDocs = false
|
||||
|
||||
jdOrgCode = "320406"
|
||||
jdLoginName = "jd_jxcs1223"
|
||||
jdToken = "77e703b7-7997-441b-a12a-2e522efb117a"
|
||||
jdToken = "29afd5a8-f93f-4d4c-9fce-a7297340af59"
|
||||
jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d"
|
||||
jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4"
|
||||
|
||||
@@ -395,7 +395,7 @@ enableElmStoreWrite = false
|
||||
enableMtwmStoreWrite = false
|
||||
enableWscStoreWrite = false
|
||||
enableYbStoreWrite = false
|
||||
enableJdShopWrite = true
|
||||
enableJdShopWrite = false
|
||||
|
||||
jdOrgCode = "320406"
|
||||
jdLoginName = "jd_jxcs1223"
|
||||
|
||||
@@ -744,8 +744,7 @@ func init() {
|
||||
MethodParams: param.Make(
|
||||
param.New("msgType", param.IsRequired),
|
||||
),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:MsgController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:MsgController"],
|
||||
beego.ControllerComments{
|
||||
@@ -2843,5 +2842,4 @@ func init() {
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user