diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 8edf55f0b..fe5dc32a6 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -12,11 +12,7 @@ import ( "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/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/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/globals/api" @@ -142,7 +138,7 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model // }, "OnAdjustOrder delete order_sku, orderID:%s", order.VendorOrderID) order.AdjustCount = adjustCount + 1 //扣点的订单需要修改订单的totalshopmoney - if err == nil && order.EarningType == model.EarningTypePoints { + if err == nil && order.OrderPayPercentage < 100 { order2, _ := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID) order.TotalShopMoney = order2.TotalShopMoney } @@ -364,9 +360,9 @@ func ModifyOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool) (e for _, sku := range skus { storeSkus, _ := dao.GetStoresSkusInfo(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, []int{sku.SkuID}) if len(storeSkus) == 0 { - if !isAdd { - globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID) - } + // if !isAdd { + // globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID) + // } continue } storeSku, stock := storeSkus[0], 0 @@ -1845,11 +1841,11 @@ func AcceptOrRefuseOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID handler := partner.GetPurchaseOrderHandlerFromVendorID(vendorID) err = handler.AcceptOrRefuseOrder(order, isAccept, ctx.GetUserName()) if err == nil && isAccept && vendorID == model.VendorIDEBAI { - netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order) - smsmsg.NotifyNewOrder(order) - smsmsg.NotifyNewUserOrder(order) - weixinmsg.NotifyNewOrder(order) - msghub.OnNewOrder(order) + // netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order) + // smsmsg.NotifyNewOrder(order) + // smsmsg.NotifyNewUserOrder(order) + // weixinmsg.NotifyNewOrder(order) + // msghub.OnNewOrder(order) } return err } diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index b2954410f..4339f379c 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -705,8 +705,15 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } 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.VendorPrice += v.VendorPrice * int64(v.Count) @@ -715,15 +722,27 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID if v.VendorOrderID == flagVendorOrderID { if k == 0 { saleInfo.EarningPrice = v.NewEarningPrice - if v.EarningType == model.EarningTypePoints { - saleInfo.RealEarningPrice += v.NewEarningPrice + if beego.BConfig.RunMode == "prod" { + 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 { flagVendorOrderID = v.VendorOrderID saleInfo.EarningPrice += v.NewEarningPrice - if v.EarningType == model.EarningTypePoints { - saleInfo.RealEarningPrice += v.NewEarningPrice + if beego.BConfig.RunMode == "prod" { + 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 + } } } diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 14d109778..93271734a 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -376,11 +376,27 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder, isPending bool) (err globals.SugarLogger.Debugf("OnOrderNew orderID:%s", order.VendorOrderID) savedOrderInfo := s.loadSavedOrderFromMap(model.Order2Status(order), false) savedOrderInfo.SetOrder(order) - if order.Status == model.OrderStatusWaitAccepted { - s.resetTimer(savedOrderInfo, nil, isPending) - // push.NotifyNewOrder(order) - s.notifyNewOrder(order) - msghub.OnNewOrder(order) + if order.VendorID == model.VendorIDEBAI { //饿百订单待接单的时候就推所有东西 + if order.Status == model.OrderStatusWaitAccepted || order.Status == model.OrderStatusFinishedPickup { //错序 + s.resetTimer(savedOrderInfo, nil, isPending) + if order.Flag&model.OrderFlagMaskFake == 0 { + 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 { s.resetTimer(savedOrderInfo, nil, isPending) @@ -1459,7 +1475,7 @@ func setFakeActualPayPrice(order *model.GoodsOrder) (newOrder *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() { order = setFakeActualPayPrice(order) netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index a0b88564b..0fbbd333d 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -8,8 +8,6 @@ import ( "strings" "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/partner/delivery" "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) // } 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, "") - for _, v := range stores { - cms.AddUsers4Role(jxcontext.AdminCtx, autils.NewRole("StoreBoss", v.ID), []string{"5CD3666C666711E9B19B525400E86DC0"}) + StoreSkuFullList2BareFilter := func(storeSkuFull []*partner.SkuNameInfo) (bareStoreSkuList []*partner.StoreSkuInfo) { + for _, v := range storeSkuFull { + 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 } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index c46002c47..81e83b85b 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -45,9 +45,11 @@ type OrderSkuWithActualPayPrice struct { StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid Status int `json:"status"` // 参见OrderStatus*相关的常量定义 - PayPercentage int `json:"payPercentage"` - NewEarningPrice int64 `json:"newEarningPrice"` - EarningType int `json:"earningType"` + PayPercentage int `json:"payPercentage"` + OrderPayPercentage int `json:"orderPayPercentage"` + NewEarningPrice int64 `json:"newEarningPrice"` + EarningType int `json:"earningType"` + CityCode int `json:"cityCode"` } type tGoodsAndOrder struct { @@ -376,7 +378,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt sql := ` 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, - t3.pay_percentage, t2.earning_type + t3.pay_percentage, t2.earning_type, t2.order_pay_percentage, t3.city_code FROM order_sku t1 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) diff --git a/business/model/store.go b/business/model/store.go index 8b513e42a..a668dad6d 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -293,6 +293,7 @@ type Store struct { AutoReplyType int8 `json:"autoReplyType"` // 订单评价自动回复类型 LinkStoreID int `orm:"column(link_store_id);default(0);index" json:"linkStoreID"` // 关联门店ID StoreLevel string `orm:"default(C);size(32)" json:"storeLevel"` // 门店等级(筛选用,京西的) + Comment string `orm:"size(255)" json:"comment"` //门店备注 PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机 PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大 diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 7bcb7d284..96f817dea 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -248,6 +248,11 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) { if result[statusTimeField] == nil { // 814560888003021 orderPurchaseTime为空 statusTimeField = "orderStartTime" } + //物竞天择订单备注改一下 + comment := utils.TrimBlankChar(utils.Interface2String(result["orderBuyerRemark"])) + if strings.Contains(comment, "【JD】") { + comment += "【京东商城】" + } order = &model.GoodsOrder{ VendorOrderID: orderID, VendorID: model.VendorIDJD, @@ -259,7 +264,7 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) { ConsigneeMobile: jxutils.FormalizeMobile(utils.Interface2String(result["buyerMobile"])), ConsigneeAddress: utils.Interface2String(result["buyerFullAddress"]), CoordinateType: model.CoordinateTypeMars, - BuyerComment: utils.TrimBlankChar(utils.Interface2String(result["orderBuyerRemark"])), + BuyerComment: comment, ExpectedDeliveredTime: utils.Str2TimeWithDefault(utils.Interface2String(result["orderPreEndDeliveryTime"]), utils.DefaultTimeValue), PickDeadline: utils.Str2TimeWithDefault(utils.Interface2String(result["pickDeadline"]), utils.DefaultTimeValue), // 813951615000022 pickDeadline为空 VendorStatus: utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])),