From c0c4c25adf0b4e06ce84ddacb536462f4ff9ab18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 20 Aug 2020 18:09:15 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E9=A5=BF=E7=99=BE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=8E=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 102 +++++++++--------- business/model/const.go | 1 + business/partner/purchase/ebai/order.go | 4 +- 3 files changed, 56 insertions(+), 51 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 8fada97a0..4e847456a 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -226,57 +226,61 @@ func init() { FixedScheduler = sch sch.IsReallyCallPlatformAPI = globals.ReallyCallPlatformAPI scheduler.CurrentScheduler = sch + statusAccept := func(time time.Duration) *StatusActionConfig { + return &StatusActionConfig{ // 自动接单 + StatusActionParams: partner.StatusActionParams{ + TimerType: partner.TimerTypeBaseStatusTime, + Timeout: time, + }, + TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { + order := savedOrderInfo.order + storeDetail, err := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID) + if err == nil { + savedOrderInfo.storeDetail = storeDetail + } + mobile := order.ConsigneeMobile + if order.ConsigneeMobile2 != "" { + mobile = order.ConsigneeMobile2 + } + _ = sch.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, mobile, jxutils.GetSaleStoreIDFromOrder(order), nil, func(isAcceptIt bool) error { + if err = sch.AcceptOrRefuseOrder(order, isAcceptIt, ""); err != nil && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation { + partner.CurOrderManager.OnOrderMsg(order, "自动接单失败", err.Error()) + // 为了解决京东新消息与接单消息乱序的问题 + if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 { + if order2, err2 := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID); err2 == nil { + if order2.Status > order.Status { + order.Status = order2.Status + jxutils.CallMsgHandlerAsync(func() { + sch.OnOrderStatusChanged(order, model.Order2Status(order2), false) + }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) + err = nil + } + } else { + err = err2 + } + } + } + if isAcceptIt { + if err == nil { + sch.notifyNewOrder(order) + msghub.OnNewOrder(order) + } + } else { + partner.CurOrderManager.OnOrderMsg(order, "黑名单拒单", "") + } + return err + }) + return nil + }, + ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool { + return savedOrderInfo.order.LockStatus == model.LockStatusUnlocked && savedOrderInfo.order.Status == model.OrderStatusNew + }, + } + } sch.defWorkflowConfig = []map[int]*StatusActionConfig{ map[int]*StatusActionConfig{ - model.OrderStatusNew: &StatusActionConfig{ // 自动接单 - StatusActionParams: partner.StatusActionParams{ - TimerType: partner.TimerTypeBaseStatusTime, - Timeout: 10 * time.Millisecond, - }, - TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { - order := savedOrderInfo.order - storeDetail, err := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID) - if err == nil { - savedOrderInfo.storeDetail = storeDetail - } - mobile := order.ConsigneeMobile - if order.ConsigneeMobile2 != "" { - mobile = order.ConsigneeMobile2 - } - _ = sch.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, mobile, jxutils.GetSaleStoreIDFromOrder(order), nil, func(isAcceptIt bool) error { - if err = sch.AcceptOrRefuseOrder(order, isAcceptIt, ""); err != nil && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation { - partner.CurOrderManager.OnOrderMsg(order, "自动接单失败", err.Error()) - // 为了解决京东新消息与接单消息乱序的问题 - if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 { - if order2, err2 := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrgCode, order.VendorOrderID); err2 == nil { - if order2.Status > order.Status { - order.Status = order2.Status - jxutils.CallMsgHandlerAsync(func() { - sch.OnOrderStatusChanged(order, model.Order2Status(order2), false) - }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) - err = nil - } - } else { - err = err2 - } - } - } - if isAcceptIt { - if err == nil { - sch.notifyNewOrder(order) - msghub.OnNewOrder(order) - } - } else { - partner.CurOrderManager.OnOrderMsg(order, "黑名单拒单", "") - } - return err - }) - return nil - }, - ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool { - return savedOrderInfo.order.LockStatus == model.LockStatusUnlocked && savedOrderInfo.order.Status == model.OrderStatusNew - }, - }, + model.OrderStatusWaitAccepted: statusAccept(4 * time.Second), //饿百假的自动接单 + model.OrderStatusNew: statusAccept(10 * time.Millisecond), model.OrderStatusAccepted: &StatusActionConfig{ // 自动拣货 StatusActionParams: partner.StatusActionParams{ TimerType: partner.TimerTypeBaseStatusTime, diff --git a/business/model/const.go b/business/model/const.go index b0654c31f..a55f7164c 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -247,6 +247,7 @@ const ( OrderStatusUnknown = 0 OrderStatusWait4Pay = 2 // 原值-60 下单待支付 + OrderStatusWaitAccepted = 3 // 待接单,目前饿百用 OrderStatusNew = 5 // 新订单,实际是已经支付 OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货 OrderStatusFinishedPickup = 15 // 拣货完成 diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index f2e62024d..ea00102c0 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -38,8 +38,8 @@ const ( var ( VendorStatus2StatusMap = map[string]int{ - ebaiapi.CmdOrderCreate: model.OrderStatusNew, - ebaiapi.OrderStatusNew: model.OrderStatusNew, + ebaiapi.CmdOrderCreate: model.OrderStatusWaitAccepted, + ebaiapi.OrderStatusNew: model.OrderStatusWaitAccepted, fakeAcceptOrder: model.OrderStatusAccepted, ebaiapi.OrderStatusAccepted: model.OrderStatusFinishedPickup, ebaiapi.OrderStatusCourierAccepted: model.OrderStatusDelivering, From 398db9262a0e6925db2679f26e85768832ea1c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Aug 2020 09:34:24 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E7=BB=93=E5=B1=80?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 5 +++++ controllers/jx_order.go | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 0e0ae072b..5944df58c 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1574,3 +1574,8 @@ func UpdateWaybillDesiredFee(ctx *jxcontext.Context, vendorOrderID string, desir } return err } + +func AcceptOrRefuseOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID int, isAccept bool) (err error) { + order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID) + return err +} diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 63b872ad7..2398e74e8 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -1134,3 +1134,19 @@ func (c *OrderController) UpdateWaybillDesiredFee() { return retVal, "", err }) } + +// @Title 接单或拒单 +// @Description 接单或拒单 +// @Param token header string true "认证token" +// @Param vendorOrderID formData string true "订单ID" +// @Param vendorID formData int true "订单平台ID" +// @Param isAccept formData bool true "接单或者拒单" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /AcceptOrRefuseOrder [post] +func (c *OrderController) AcceptOrRefuseOrder() { + c.callAcceptOrRefuseOrder(func(params *tOrderAcceptOrRefuseOrderParams) (retVal interface{}, errCode string, err error) { + err = orderman.AcceptOrRefuseOrder(params.Ctx, params.VendorOrderID, params.VendorID, params.IsAccept) + return retVal, "", err + }) +} From e87d508349924c5532ccf06a866b496648d0a84f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Aug 2020 10:27:24 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=8E=A5=E5=8D=95?= =?UTF-8?q?=E6=8B=92=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 5944df58c..77893d478 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1577,5 +1577,6 @@ func UpdateWaybillDesiredFee(ctx *jxcontext.Context, vendorOrderID string, desir func AcceptOrRefuseOrder(ctx *jxcontext.Context, vendorOrderID string, vendorID int, isAccept bool) (err error) { order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID) - return err + handler := partner.GetPurchaseOrderHandlerFromVendorID(vendorID) + return handler.AcceptOrRefuseOrder(order, isAccept, ctx.GetUserName()) } From 0260bfae3d9397696df6e9a9802ab1f82edeb3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Aug 2020 10:28:20 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E7=BB=93=E5=B1=80=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/commentsRouter_controllers.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 0b48de2c5..6636bb2e3 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -846,6 +846,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], + beego.ControllerComments{ + Method: "AcceptOrRefuseOrder", + Router: `/AcceptOrRefuseOrder`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], beego.ControllerComments{ Method: "AddUpdateOrdersSupplement", From fde5bbde83065cca7820a6524e0d16afde38d2be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Aug 2020 16:27:16 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E6=96=B0cmsorderstatus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/const.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/model/const.go b/business/model/const.go index a55f7164c..8db090d7f 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -53,6 +53,7 @@ var ( OrderStatusWait4Pay: "待付款", OrderStatusNew: "新订单", + OrderStatusWaitAccepted: "待接单", OrderStatusAccepted: "待拣货", OrderStatusFinishedPickup: "待配送", OrderStatusApplyFailedGetGoods: "取货失败待审核", From f58dd1eef71bccde0188b725ebf8d7b5db9ff5a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Aug 2020 15:53:47 +0800 Subject: [PATCH 06/16] changshi --- business/jxcallback/scheduler/defsch/defsch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 4e847456a..038f9e30a 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -375,7 +375,7 @@ 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.OrderStatusNew { + if order.Status >= model.OrderStatusWait4Pay { s.resetTimer(savedOrderInfo, nil, isPending) if !isPending && order.Status >= model.OrderStatusAccepted { // 有订单消息错序,先收到接单消息,再收到新订单消息,导致接单TIMER不动作,这里补一下 s.notifyNewOrder(order) From 91a53a8640c248ab5b36490e323dd4cce06ebead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Aug 2020 15:54:49 +0800 Subject: [PATCH 07/16] changshi --- business/jxcallback/scheduler/defsch/defsch.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 038f9e30a..396925e06 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -375,7 +375,10 @@ 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.OrderStatusWait4Pay { + if order.Status == model.OrderStatusWaitAccepted { + s.resetTimer(savedOrderInfo, nil, isPending) + } + if order.Status >= model.OrderStatusNew { s.resetTimer(savedOrderInfo, nil, isPending) if !isPending && order.Status >= model.OrderStatusAccepted { // 有订单消息错序,先收到接单消息,再收到新订单消息,导致接单TIMER不动作,这里补一下 s.notifyNewOrder(order) From 9aa73703351ea1c0f5e8520cbb8ab8d1b61139e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Aug 2020 17:05:56 +0800 Subject: [PATCH 08/16] changshi 2 --- business/jxcallback/scheduler/defsch/defsch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 396925e06..334c9e633 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -273,7 +273,7 @@ func init() { return nil }, ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool { - return savedOrderInfo.order.LockStatus == model.LockStatusUnlocked && savedOrderInfo.order.Status == model.OrderStatusNew + return savedOrderInfo.order.LockStatus == model.LockStatusUnlocked && (savedOrderInfo.order.Status == model.OrderStatusNew || savedOrderInfo.order.Status == model.OrderStatusWaitAccepted) }, } } From 0cb5086e52d88b1e3c0936e097f47fb71baed8fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Aug 2020 17:40:08 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E5=B0=9D=E8=AF=954?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/basesch/basesch.go | 2 +- business/jxcallback/scheduler/defsch/defsch.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index 1f623cd4f..e0077e04e 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -20,7 +20,7 @@ type BaseScheduler struct { func (c *BaseScheduler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) { globals.SugarLogger.Infof("AcceptOrRefuseOrder orderID:%s, isAcceptIt:%t", order.VendorOrderID, isAcceptIt) - if /*order.LockStatus == model.OrderStatusUnknown && */ order.Status == model.OrderStatusNew { + if /*order.LockStatus == model.OrderStatusUnknown && */ order.Status == model.OrderStatusNew || order.Status == model.OrderStatusWaitAccepted { if c.IsReallyCallPlatformAPI { err = utils.CallFuncLogErrorWithInfo(func() error { return partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).AcceptOrRefuseOrder(order, isAcceptIt, userName) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 334c9e633..327f66eca 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -279,7 +279,7 @@ func init() { } sch.defWorkflowConfig = []map[int]*StatusActionConfig{ map[int]*StatusActionConfig{ - model.OrderStatusWaitAccepted: statusAccept(4 * time.Second), //饿百假的自动接单 + model.OrderStatusWaitAccepted: statusAccept(4 * time.Minute), //饿百假的自动接单 model.OrderStatusNew: statusAccept(10 * time.Millisecond), model.OrderStatusAccepted: &StatusActionConfig{ // 自动拣货 StatusActionParams: partner.StatusActionParams{ From 1b29abc077b77de4400d3473b4a859d381f8b208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Aug 2020 09:01:34 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B2=A1=E5=9B=BE?= =?UTF-8?q?=E7=9A=84=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/tempop/tempop.go | 34 ++++++------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index e76835f83..43a7cbea5 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -1583,35 +1583,13 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) { // fmt.Println("addList2", addList) // fmt.Println("updateList2", utils.Format4Output(updateList, false)) // fmt.Println("deleteList2", deleteList) - var ( - db = dao.GetDB() - storeSkus []*model.StoreSkuBind - ) + var skuNames []model.SkuName sql := ` - SELECT a.* FROM store_sku_bind a,store b - WHERE a.store_id = b.id AND b.deleted_at = '1970-01-01 00:00:00' AND a.unit_price = 100 - AND a.deleted_at = '1970-01-01 00:00:00' - AND a.sku_id NOT IN (34268,6045545,29401,6039481,29285,29286,29287,6040945,6040963,31737,33465,6045629,34989,6043733,6039661,25917,29569) - ` - err = dao.GetRows(db, &storeSkus, sql, nil) - for _, v := range storeSkus { - var unitPrice = 0 - his, _ := dao.GetStoreSkuHistory(db, []int{v.StoreID}, []int{v.SkuID}, model.StoreAuditStatusAll, utils.Time2Date(utils.Str2Time("2020-08-09 00:00:00"))) - if len(his) == 0 { - p, _ := dao.GetPriceReferSnapshotNoPage(db, []int{0}, []int{v.SkuID}, nil, utils.Time2Date(time.Now().AddDate(0, 0, -1))) - unitPrice = p[0].MidUnitPrice - } else { - unitPrice = his[0].UnitPrice - } - skus, _ := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) - var skuBindInfos []*cms.StoreSkuBindInfo - skuBindInfo := &cms.StoreSkuBindInfo{ - StoreID: v.StoreID, - NameID: skus[0].NameID, - UnitPrice: unitPrice, - } - skuBindInfos = append(skuBindInfos, skuBindInfo) - cms.UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true, false) + SELECT * FROM sku_name WHERE img = 'https://image.jxc4.com/noGoodsImg.jpg' + ` + dao.GetRows(dao.GetDB(), &skuNames, sql, nil) + for _, v := range skuNames { + cms.DeleteSkuName(ctx, v.ID, ctx.GetUserName()) } return err } From 811e131ee57c3d87d5e718f6ec035899b4697a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Aug 2020 09:12:35 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B2=A1=E5=9B=BE?= =?UTF-8?q?=E7=9A=84=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/tempop/tempop.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index 43a7cbea5..d3fec4dc1 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -1585,7 +1585,7 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) { // fmt.Println("deleteList2", deleteList) var skuNames []model.SkuName sql := ` - SELECT * FROM sku_name WHERE img = 'https://image.jxc4.com/noGoodsImg.jpg' + SELECT * FROM sku_name WHERE img = 'https://image.jxc4.com/noGoodsImg.jpg' AND deleted_at = '1970-01-01 00:00:00' ` dao.GetRows(dao.GetDB(), &skuNames, sql, nil) for _, v := range skuNames { From 9739d0d2bbc28849ec54d2acce249c52268277e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Aug 2020 11:26:07 +0800 Subject: [PATCH 12/16] =?UTF-8?q?gy=E7=81=B5=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index b27914cb2..bd1f3ee08 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -138,12 +138,14 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } task.AddFailedList(failedList) } + fmt.Println("2222222222222222222222222222222222222222222222") if err == nil { if vendorID == model.VendorIDMTWM { refutil.SetObjFieldByName(storeCatMap, idFieldName, catInfo.VendorCatID) } else { refutil.SetObjFieldByName(storeCatMap, idFieldName, utils.Str2Int64WithDefault(catInfo.VendorCatID, 0)) } + fmt.Println("11111111111111111111111111111111111111111111111111111111111") _, err = dao.UpdateEntity(db, storeCatMap, updateFields...) } return nil, err From b1913e8f26033934f45f270e5319d39377485edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Aug 2020 11:33:44 +0800 Subject: [PATCH 13/16] =?UTF-8?q?gy=E7=81=B5=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index bd1f3ee08..ccddd92a0 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -86,6 +86,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo storeCatMap := &model.StoreSkuCategoryMap{} storeCatMap.ID = catInfo.MapID var failedList []*partner.StoreSkuInfoWithErr + fmt.Println("4444444444444444444444444444444444444444444444") if catInfo.IsExdSpec == model.YES { if vendorID != model.VendorIDEBAI { return nil, err @@ -96,8 +97,8 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo catInfo.Name = catInfo.StoreCatName catInfo.Seq = catInfo.StoreCatSeq } - } + fmt.Println("3333333333333333333333333333333333333333333333") if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除 if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) { err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level) From 90f6969e0384e2b8bb9a911aa4723e18e262d8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Aug 2020 11:48:26 +0800 Subject: [PATCH 14/16] =?UTF-8?q?gy=E7=81=B5=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index ccddd92a0..a816103eb 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -86,7 +86,6 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo storeCatMap := &model.StoreSkuCategoryMap{} storeCatMap.ID = catInfo.MapID var failedList []*partner.StoreSkuInfoWithErr - fmt.Println("4444444444444444444444444444444444444444444444") if catInfo.IsExdSpec == model.YES { if vendorID != model.VendorIDEBAI { return nil, err @@ -98,7 +97,6 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo catInfo.Seq = catInfo.StoreCatSeq } } - fmt.Println("3333333333333333333333333333333333333333333333") if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除 if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) { err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level) @@ -139,14 +137,12 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } task.AddFailedList(failedList) } - fmt.Println("2222222222222222222222222222222222222222222222") if err == nil { if vendorID == model.VendorIDMTWM { refutil.SetObjFieldByName(storeCatMap, idFieldName, catInfo.VendorCatID) } else { refutil.SetObjFieldByName(storeCatMap, idFieldName, utils.Str2Int64WithDefault(catInfo.VendorCatID, 0)) } - fmt.Println("11111111111111111111111111111111111111111111111111111111111") _, err = dao.UpdateEntity(db, storeCatMap, updateFields...) } return nil, err @@ -418,6 +414,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag globals.SugarLogger.Debugf("syncStoreSkuNew causeFlag:%d", causeFlag) db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(db, storeID, vendorID) + fmt.Println("1111111111111111111111111111111111111111111111111111111111111111111111111111111") if err != nil { return err } @@ -428,9 +425,13 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } else { skus, err = dao.GetStoreSkus(db, vendorID, storeID, skuIDs) } + fmt.Println("22222222222222222222222222222222222222222222222222222222222222222222222222") + if err != nil || len(skus) == 0 { return err } + fmt.Println("3333333333333333333333333333333333333333333333333333333333333333333333333") + if len(excludeSkuIDs) > 0 { excludeSkuMap := jxutils.IntList2Map(excludeSkuIDs) var skus2 []*dao.StoreSkuSyncInfo From 6ceaa0a42d08bea493e3962a4d61e621e555bce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 26 Aug 2020 08:45:14 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E5=85=88=E5=88=A0=E9=99=A4=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index a816103eb..aeb6478bc 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -414,7 +414,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag globals.SugarLogger.Debugf("syncStoreSkuNew causeFlag:%d", causeFlag) db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(db, storeID, vendorID) - fmt.Println("1111111111111111111111111111111111111111111111111111111111111111111111111111111") if err != nil { return err } @@ -425,13 +424,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } else { skus, err = dao.GetStoreSkus(db, vendorID, storeID, skuIDs) } - fmt.Println("22222222222222222222222222222222222222222222222222222222222222222222222222") - if err != nil || len(skus) == 0 { return err } - fmt.Println("3333333333333333333333333333333333333333333333333333333333333333333333333") - if len(excludeSkuIDs) > 0 { excludeSkuMap := jxutils.IntList2Map(excludeSkuIDs) var skus2 []*dao.StoreSkuSyncInfo From 042d93252e0e8052ab86060f402855fe71429d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 26 Aug 2020 11:32:33 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E5=88=86=E7=B1=BB=E4=B8=80=E7=9B=B4?= =?UTF-8?q?=E6=9C=89=E9=97=AE=E9=A2=98=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index c9ff12c48..bbde2ca3e 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -42,10 +42,11 @@ type SkuStoreCatInfo struct { ParentVendorCatID string `orm:"column(parent_vendor_cat_id)"` ParentCatSyncStatus int8 - StoreCatID int `orm:"column(store_category_id)"` - StoreCatName string - StoreCatSeq int - IsSysCat int + StoreCatID int `orm:"column(store_category_id)"` + StoreCatName string + StoreCatSeq int + StoreParentCatName string + IsSysCat int } type StoreSkuSyncInfo struct { @@ -363,7 +364,8 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level in sql := ` SELECT t4.*, ts.store_category_name store_cat_name, ts.store_category_seq store_cat_seq, ts.id store_category_id, t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status cat_sync_status, - tsp.store_category_name parent_cat_name, + t4p.name parent_cat_name, + tsp.store_category_name store_parent_cat_name, t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status, t1.is_sys_cat FROM store_sku_category_map t5