From 6f98fdd5d042a0080155b481d727310b67057538 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, 20 Mar 2020 10:48:39 +0800 Subject: [PATCH 001/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 9 --------- 1 file changed, 9 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index 711141e95..36f29f073 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -218,9 +218,6 @@ dingdingSecret = "LWrZAFeqUfuVv7n_tc8vPpCAx6PT4CwManx2XCVhJOqGsx2L5XCDuX1sAN_Jtv dingdingCallbackURL = "http://callback.jxc4.com/dingding/msg" -yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" -yinbaoAppKey = "682628966212343269" - [jxgy] httpport = 8088 EnableDocs = false @@ -290,9 +287,6 @@ jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" -yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" -yinbaoAppKey = "682628966212343269" - storeName = "京西果园" [test] @@ -410,6 +404,3 @@ getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken" dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" - -yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" -yinbaoAppKey = "682628966212343269" \ No newline at end of file From a739ab76d108f70c001d4545d815c3d84e52af88 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, 20 Mar 2020 10:56:28 +0800 Subject: [PATCH 002/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/api_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/api_config.go b/business/model/api_config.go index 7eaca8751..d51bffb6d 100644 --- a/business/model/api_config.go +++ b/business/model/api_config.go @@ -68,7 +68,7 @@ var ( VendorIDELM: "Elm", VendorIDEBAI: "Ebai", VendorIDWSC: "Wsc", - VendorIDYB: "YinBao", + VendorIDYB: "Yb", VendorIDJX: "Jx", VendorIDDada: "Dada", From 9a4388051a6932a4046f7be17da8e4b3c5c04dc8 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, 20 Mar 2020 11:01:30 +0800 Subject: [PATCH 003/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/store_sku.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 8911292cd..50358a023 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -103,12 +103,14 @@ type StoreSkuBind struct { JdSyncStatus int8 `orm:"default(2)"` MtwmSyncStatus int8 `orm:"default(2)"` EbaiSyncStatus int8 `orm:"default(2)"` + YbSyncStatus int8 `orm:"default(2)"` // WscSyncStatus int8 `orm:"default(2)"` JdPrice int `json:"jdPrice"` MtwmPrice int `json:"mtwmPrice"` EbaiPrice int `json:"ebaiPrice"` JxPrice int `json:"jxPrice"` + YbPrice int `json:"ybPrice"` JdLockTime *time.Time `orm:"null" json:"jdLockTime"` MtwmLockTime *time.Time `orm:"null" json:"mtwmLockTime"` From 61c60d07f3d6aa96952f864a66a40134c82b625f 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, 20 Mar 2020 11:09:07 +0800 Subject: [PATCH 004/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 ++ business/model/store.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 2f1bf76e9..7dcee67dc 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -216,11 +216,13 @@ type StoreSkuExt struct { JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"` MtwmSyncStatus int8 `orm:"default(2)" json:"mtwmSyncStatus"` + YbSyncStatus int8 `orm:"default(2)" json:"ybSyncStatus"` JdPrice int `json:"jdPrice"` EbaiPrice int `json:"ebaiPrice"` MtwmPrice int `json:"mtwmPrice"` JxPrice int `json:"jxPrice"` + YbPrice int `json:"ybPrice"` JdLockTime *time.Time `orm:"null" json:"jdLockTime,omitempty"` EbaiLockTime *time.Time `orm:"null" json:"ebaiLockTime,omitempty"` diff --git a/business/model/store.go b/business/model/store.go index 6ee1b9e7a..2f276aebb 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -420,6 +420,9 @@ type StoreMap struct { JdStoreLevel string `orm:"size(32)" json:"jdStoreLevel"` //京东门店等级 IsOrder int `orm:"default(0)" json:"isOrder"` //是否是下预订单门店 + + YbAppID string `orm:"column(yb_app_id),size(255)" json:"ybAppID"` + YbAppKey string `orm:"size(255)" json:"ybAppKey"` } func (*StoreMap) TableUnique() [][]string { From 435bca626f9203a2fc438e4d6240d347f469332a 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, 20 Mar 2020 11:17:37 +0800 Subject: [PATCH 005/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98lock=20ti?= =?UTF-8?q?me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 1 + business/model/store_sku.go | 1 + 2 files changed, 2 insertions(+) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 7dcee67dc..6c59c7a33 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -228,6 +228,7 @@ type StoreSkuExt struct { EbaiLockTime *time.Time `orm:"null" json:"ebaiLockTime,omitempty"` MtwmLockTime *time.Time `orm:"null" json:"mtwmLockTime,omitempty"` JxLockTime *time.Time `orm:"null" json:"jxLockTime,omitempty"` + YbLockTime *time.Time `orm:"null" json:"ybLockTime,omitempty"` ActPrice int `json:"actPrice"` ActID int `orm:"column(act_id)" json:"actID"` diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 50358a023..b6a2b6b2a 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -116,6 +116,7 @@ type StoreSkuBind struct { MtwmLockTime *time.Time `orm:"null" json:"mtwmLockTime"` EbaiLockTime *time.Time `orm:"null" json:"ebaiLockTime"` JxLockTime *time.Time `orm:"null" json:"jxLockTime"` + YbLockTime *time.Time `orm:"null" json:"ybLockTime"` AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"` From 80c1f981d2b7b086427219745f0b58782bf92da8 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, 20 Mar 2020 11:26:05 +0800 Subject: [PATCH 006/158] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=AD=97=E6=AE=B5=E4=BF=AE=E6=94=B9=20id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 1 + business/model/store_sku.go | 1 + 2 files changed, 2 insertions(+) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 6c59c7a33..cc4a19da8 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -212,6 +212,7 @@ type StoreSkuExt struct { JdID string `orm:"column(sku_jd_id);null;index" json:"jdID"` EbaiID string `orm:"column(ebai_id);index" json:"ebaiID"` MtwmID string `orm:"column(mtwm_id)" json:"mtwmID"` // 这个也不是必须的,只是为了DAO取数据语句一致 + YbID string `orm:"column(yb_id);index" json:"YybID"` JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"` diff --git a/business/model/store_sku.go b/business/model/store_sku.go index b6a2b6b2a..57efc6ec2 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -96,6 +96,7 @@ type StoreSkuBind struct { // ElmID int64 `orm:"column(elm_id);index"` MtwmID int64 `orm:"column(mtwm_id);index"` EbaiID int64 `orm:"column(ebai_id);index"` + YbID int64 `orm:"column(yb_id);index"` // WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId // WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId From 062058558b6740d37280ea19dddd7cc8fc33b1d1 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, 20 Mar 2020 11:36:12 +0800 Subject: [PATCH 007/158] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=85=B3=E6=B3=A8=E5=95=86=E5=93=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E5=A2=9E=E5=8A=A0yb=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 91f84e4aa..a70186804 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2021,6 +2021,7 @@ func setStoreSkuBindStatus(skuBind *model.StoreSkuBind, status int8) { skuBind.JdSyncStatus |= status skuBind.EbaiSyncStatus |= status skuBind.MtwmSyncStatus |= status + skuBind.YbSyncStatus |= status } func checkStoreExisting(db *dao.DaoDB, storeID int) (store *model.Store, err error) { From 69d6ce134ac8e01195d539c11520fa482fc8116a 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, 20 Mar 2020 14:19:02 +0800 Subject: [PATCH 008/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9partner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 16 ++++++ business/partner/purchase/yb/yb.go | 63 +++++++++++++++++++++++ globals/api/api.go | 10 ++-- 3 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 business/partner/purchase/yb/store_sku.go create mode 100644 business/partner/purchase/yb/yb.go diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go new file mode 100644 index 000000000..1334d3aa9 --- /dev/null +++ b/business/partner/purchase/yb/store_sku.go @@ -0,0 +1,16 @@ +package yb + +import ( + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/partner" +) + +func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { + + return failedList, err +} + +func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { + return failedList, err +} diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go new file mode 100644 index 000000000..5fe7705da --- /dev/null +++ b/business/partner/purchase/yb/yb.go @@ -0,0 +1,63 @@ +package yb + +import ( + "sync" + + "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" + "git.rosy.net.cn/jx-callback/business/partner/putils" + "git.rosy.net.cn/jx-callback/globals/api" +) + +var ( + CurPurchaseHandler *PurchaseHandler +) + +type PurchaseHandler struct { + partner.BasePurchasePlatform + putils.DefSingleStorePlatform + + locker sync.RWMutex +} + +func init() { + if api.YinBaoAPI != nil { + CurPurchaseHandler = New() + partner.RegisterPurchasePlatform(CurPurchaseHandler) + } +} + +func New() (obj *PurchaseHandler) { + obj = new(PurchaseHandler) + obj.ISingleStoreStoreSkuHandler = obj + return obj +} + +func (p *PurchaseHandler) GetVendorID() int { + return model.VendorIDYB +} + +func (p *PurchaseHandler) AcceptOrRefuseFailedGetOrder(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool) (err error) { + return err +} + +func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) { + return err +} + +func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { + return err +} + +func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { + return err +} + +func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { + return err +} + +func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { + return err +} diff --git a/globals/api/api.go b/globals/api/api.go index e47c0c46d..5edcafe87 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -159,11 +159,11 @@ func Init() { Ebai2API = nil } - // if !beego.AppConfig.DefaultBool("disableYb", false) { - // YinBaoAPI = yinbaoapi.New(beego.AppConfig.String("yinbaoAppKey"), beego.AppConfig.String("yinbaoAppID")) - // } else { - // YinBaoAPI = nil - // } + if !beego.AppConfig.DefaultBool("disableYb", false) { + YinBaoAPI = yinbaoapi.New(beego.AppConfig.String("yinbaoAppKey"), beego.AppConfig.String("yinbaoAppID")) + } else { + YinBaoAPI = nil + } if !beego.AppConfig.DefaultBool("disableMtps", false) { MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) From 81572dce54dcc44e39fb5389b124d854b2ab88ec 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, 20 Mar 2020 14:52:44 +0800 Subject: [PATCH 009/158] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E7=95=85=E9=94=80=E5=93=81=E6=8E=92=E9=99=A4=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/order.go | 76 +++++++++++++++++++++++++++ business/partner/purchase/yb/sku.go | 76 +++++++++++++++++++++++++++ business/partner/purchase/yb/store.go | 44 ++++++++++++++++ business/partner/purchase/yb/yb.go | 25 --------- 4 files changed, 196 insertions(+), 25 deletions(-) create mode 100644 business/partner/purchase/yb/order.go create mode 100644 business/partner/purchase/yb/sku.go create mode 100644 business/partner/purchase/yb/store.go diff --git a/business/partner/purchase/yb/order.go b/business/partner/purchase/yb/order.go new file mode 100644 index 000000000..f8cace49e --- /dev/null +++ b/business/partner/purchase/yb/order.go @@ -0,0 +1,76 @@ +package yb + +import ( + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/model" +) + +func (p *PurchaseHandler) AcceptOrRefuseFailedGetOrder(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool) (err error) { + return err +} + +func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) { + return order +} +func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order *model.GoodsOrder, err error) { + return order, err +} +func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (status int, err error) { + return status, err +} + +func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) { + return err +} +func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { + return err +} + +func (p *PurchaseHandler) CallCourier(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { + return err +} // 取货失败后再次招唤平台配送 +func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { + return err +} // 投递失败后确认收到退货 +func (p *PurchaseHandler) CanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan bool, err error) { + return isCan, err +} +func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) { + return err +} +func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) { + return err +} +func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { + return err +} +func (p *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) { + return err +} +func (p *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) { + return mobile, err +} +func (p *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { + return err +} +func (p *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { + return err +} +func (p *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { + return err +} +func (p *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { + return err +} +func (p *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { + return err +} +func (p *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) { + return err +} +func (p *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { + return err +} +func (p *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error) { + return err +} diff --git a/business/partner/purchase/yb/sku.go b/business/partner/purchase/yb/sku.go new file mode 100644 index 000000000..92e8d5f0f --- /dev/null +++ b/business/partner/purchase/yb/sku.go @@ -0,0 +1,76 @@ +package yb + +import ( + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/partner" +) + +func (p *PurchaseHandler) GetAllCategories(ctx *jxcontext.Context, vendorOrgCode string) (cats []*partner.BareCategoryInfo, err error) { + return cats, err +} + +// func (p *PurchaseHandler) UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error { +// return nil +// } + +// func (p *PurchaseHandler) DeleteCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error { +// return nil +// } + +// func (p *PurchaseHandler) ReorderCategories(db *dao.DaoDB, parentCatID int, userName string) (err error) { +// return err +// } + +func (p *PurchaseHandler) CreateCategory2(ctx *jxcontext.Context, cat *dao.SkuStoreCatInfo) (err error) { + return err +} + +func (p *PurchaseHandler) UpdateCategory2(ctx *jxcontext.Context, cat *dao.SkuStoreCatInfo) (err error) { + return err +} + +func (p *PurchaseHandler) DeleteCategory2(ctx *jxcontext.Context, vendorOrgCode, vendorCatID string) (err error) { + return err +} + +func (p *PurchaseHandler) ReorderCategories2(ctx *jxcontext.Context, vendorOrgCode, vendorParentCatID string, vendorCatIDList []string) (err error) { + return err +} + +// func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) { +// return err +// } + +// func (p *PurchaseHandler) ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) { +// return skuNameExt, err +// } + +// func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) { +// return err +// } + +// func (p *PurchaseHandler) DeleteSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) { +// return err +// } + +func (p *PurchaseHandler) CreateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error) { + return err +} + +func (p *PurchaseHandler) UpdateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error) { + return err +} + +func (p *PurchaseHandler) DeleteSku2(ctx *jxcontext.Context, vendorOrgCode string, sku *partner.StoreSkuInfo) (err error) { + return err +} + +func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error) { + return vendorCats, err +} + +func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, vendorOrgCode string, skuID int, vendorSkuID string) (skuNameList []*partner.SkuNameInfo, err error) { + return skuNameList, err +} diff --git a/business/partner/purchase/yb/store.go b/business/partner/purchase/yb/store.go new file mode 100644 index 000000000..fea030fb1 --- /dev/null +++ b/business/partner/purchase/yb/store.go @@ -0,0 +1,44 @@ +package yb + +import ( + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" + "git.rosy.net.cn/jx-callback/business/model/dao" +) + +func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID string) (storeDetail *dao.StoreDetail, err error) { + return storeDetail, err +} + +// stoerIDs为nil表示所有 +func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) { + return err +} + +func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error) { + return hint, err +} + +func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (storeStatus int, err error) { + return storeStatus, err +} + +func (p *PurchaseHandler) EnableAutoAcceptOrder(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, isSetEnable bool) (err error) { + return err +} + +func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, status int) (err error) { + return err +} + +func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, opTimeList []int16) (err error) { + return err +} + +func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context, vendorOrgCode string) (vendorStoreIDs []string, err error) { + return vendorStoreIDs, err +} + +func (c *PurchaseHandler) UpdateStoreCustomID(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID string, storeID int64) (err error) { + return err +} diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index 5fe7705da..d329cb408 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -3,7 +3,6 @@ package yb import ( "sync" - "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" "git.rosy.net.cn/jx-callback/business/partner/putils" @@ -37,27 +36,3 @@ func New() (obj *PurchaseHandler) { func (p *PurchaseHandler) GetVendorID() int { return model.VendorIDYB } - -func (p *PurchaseHandler) AcceptOrRefuseFailedGetOrder(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool) (err error) { - return err -} - -func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) { - return err -} - -func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { - return err -} - -func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { - return err -} - -func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { - return err -} - -func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { - return err -} From ace4d0ef7c5a4da2ec2670b761777acfd278a1d9 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, 20 Mar 2020 14:56:49 +0800 Subject: [PATCH 010/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9partner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/act.go | 11 +++++++++++ business/partner/purchase/yb/yb.go | 5 +++++ conf/app.conf | 3 +++ 3 files changed, 19 insertions(+) create mode 100644 business/partner/purchase/yb/act.go diff --git a/business/partner/purchase/yb/act.go b/business/partner/purchase/yb/act.go new file mode 100644 index 000000000..4434fa15a --- /dev/null +++ b/business/partner/purchase/yb/act.go @@ -0,0 +1,11 @@ +package yb + +import ( + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" + "git.rosy.net.cn/jx-callback/business/model" +) + +func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITask, act *model.Act2, actOrderRules []*model.ActOrderRule, actStoreSkuList []*model.ActStoreSku2) (err error) { + return err +} diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index d329cb408..af0eb98f0 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -3,6 +3,7 @@ package yb import ( "sync" + "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" "git.rosy.net.cn/jx-callback/business/partner/putils" @@ -36,3 +37,7 @@ func New() (obj *PurchaseHandler) { func (p *PurchaseHandler) GetVendorID() int { return model.VendorIDYB } + +func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, vendorOrgCode, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) { + return imgHint, err +} diff --git a/conf/app.conf b/conf/app.conf index 36f29f073..f0483057a 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -102,6 +102,9 @@ feieKey = "2JfKh8TyheQ9mwss" xiaoWMAppID = 267 xiaoWMAppKey = "94337" +yinbaoAppKey = "682628966212343269" +yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" + yilianyunClientID = "1039586024" yilianyunClientSecret = "4885d07c2997b661102e4b6099c0bf3b" yilianyunClientID2 = "1098307169" From 3a7c01313f9c33f3da412a26d02c404cdd495ad0 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, 20 Mar 2020 15:38:01 +0800 Subject: [PATCH 011/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9partner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 5 ++++- business/partner/purchase/yb/store_sku.go | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index cc4a19da8..1f90f8e38 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -109,6 +109,9 @@ type StoreSkuSyncInfo struct { ActPercentage int `json:"actPercentage"` // 直降活动百分比 ActSyncStatus int8 `orm:"default(2)" json:"actSyncStatus"` VendorActPrice int64 `json:"vendorActPrice"` // 保存数据用,实际的活动价 + + YbAppID string `orm:"column(yb_app_id)" json:"ybAppID"` //银豹对应门店的appID + YbAppKey string //银豹对应门店的appkey } type MissingStoreSkuInfo struct { @@ -509,7 +512,7 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf // 对于多门店平台,商品库删除后,不需要操作门店商品,所以sku_name用JOIN, sku与sku_name也可以直接排除下架的 sql := ` SELECT - sm.vendor_id, sm.vendor_org_code, + sm.vendor_id, sm.vendor_org_code, sm.yb_app_id, sm.yb_app_key, t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at, diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 1334d3aa9..bc5647bef 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,16 +1,35 @@ package yb import ( + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/jx-callback/globals/api" +) + +const ( + stock = 100 ) func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { - + storeSku := storeSkuList[0] + api.YinBaoAPI = yinbaoapi.New(storeSku.YbAppKey, storeSku.YbAppID) + api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) return failedList, err } func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { return failedList, err } + +func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { + productInfoParam = &yinbaoapi.ProductInfoParam{} + productInfo := &yinbaoapi.ProductInfo{ + Stock: stock, + Name: storeSku.SkuName, + Barcode: storeSku.SkuID, + BuyPrice: storeSku.pr + } + return productInfoParam +} From 5ea2ae970bdaa93005612bec3ae63d3f345e6c9c 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, 20 Mar 2020 15:56:42 +0800 Subject: [PATCH 012/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=B0=9D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 27 +++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index bc5647bef..3b5f20f0a 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -2,20 +2,27 @@ package yb import ( "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" + "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/model/dao" "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals/api" ) -const ( - stock = 100 +var ( + stock float64 = 100 ) func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { storeSku := storeSkuList[0] api.YinBaoAPI = yinbaoapi.New(storeSku.YbAppKey, storeSku.YbAppID) - api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") + } + storeSku.VendorSkuID = utils.Int64ToStr(result.UID) return failedList, err } @@ -24,12 +31,18 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v } func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { + var ( + buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) + sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) + ) productInfoParam = &yinbaoapi.ProductInfoParam{} productInfo := &yinbaoapi.ProductInfo{ - Stock: stock, - Name: storeSku.SkuName, - Barcode: storeSku.SkuID, - BuyPrice: storeSku.pr + Stock: &stock, + Name: storeSku.SkuName, + Barcode: utils.Int2Str(storeSku.SkuID), + BuyPrice: &buyPrice, + SellPrice: &sellPrice, } + productInfoParam.ProductInfo = productInfo return productInfoParam } From b797b5ac5d06b88860c82b6940acc6194e1730a2 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, 20 Mar 2020 16:22:37 +0800 Subject: [PATCH 013/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index de53fadab..9898a7007 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -443,6 +443,7 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch. tasksch.NewParallelConfig().SetParallelCount(parallelCount).SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { storeMap := batchItemList[0].(*model.StoreMap) + globals.SugarLogger.Debugf("ssss,[%v]", utils.Format4Output(storeMap, false)) if syncDisabled || storeMap.Status > model.StoreStatusDisabled { if setSyncStatus != 0 { dao.SetStoreSkuSyncStatus(db, storeMap.VendorID, []int{storeMap.StoreID}, skuIDs, setSyncStatus) @@ -663,7 +664,7 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { } else { globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) } - }else { + } else { if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { downloadURL, _, _ := WirteToExcelBySyncFailed(task) user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") From 3f79bd25090c36eb7130890d2533e8a6f569de26 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, 20 Mar 2020 16:42:10 +0800 Subject: [PATCH 014/158] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 9898a7007..4e704d5c8 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -624,7 +624,7 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I // 临时把京东的并发改为2 task = tasksch.NewParallelTask(taskName, tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, handler, loopInfoList) if isAsync { - buildSetFinishHook(task, ctx) + // buildSetFinishHook(task, ctx) } tasksch.HandleTask(task, parentTask, isManageIt).Run() if !isAsync { From ea8610f604e6fc1888ac18b8bdcff9ba65037b68 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, 20 Mar 2020 16:46:38 +0800 Subject: [PATCH 015/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 4e704d5c8..e2463551b 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -605,6 +605,7 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I if len(storeMapList) == 0 { return nil, "", nil } + fmt.Println("test", utils.Format4Output(storeMapList, false)) vendorStoreMap := make(map[int][]*model.StoreMap) for _, v := range storeMapList { vendorStoreMap[v.VendorID] = append(vendorStoreMap[v.VendorID], v) From e70cbc30a97299776be3d38480ff20211e47a6a3 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, 20 Mar 2020 16:49:11 +0800 Subject: [PATCH 016/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/store.go b/business/model/store.go index 2f276aebb..27b930ab6 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -421,7 +421,7 @@ type StoreMap struct { IsOrder int `orm:"default(0)" json:"isOrder"` //是否是下预订单门店 - YbAppID string `orm:"column(yb_app_id),size(255)" json:"ybAppID"` + YbAppID string `orm:"column(yb_app_id);size(255)" json:"ybAppID"` YbAppKey string `orm:"size(255)" json:"ybAppKey"` } From 5216f21a1258f85386fe0a880e691614c7149ca9 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, 20 Mar 2020 16:52:02 +0800 Subject: [PATCH 017/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index e2463551b..cd46143e4 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -434,6 +434,7 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch. task, hint, err := v.LoopStoresMap2(ctx, parentTask, db, fmt.Sprintf("同步门店商品信息:%v", storeIDs), isAsync, isManageIt, vendorIDs, storeIDs, false, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) { loopMapInfo := batchItemList[0].(*LoopStoreMapInfo) + globals.SugarLogger.Debugf("ssss,[%v]", utils.Format4Output(loopMapInfo, false)) if handler := v.GetStoreHandler(loopMapInfo.VendorID); handler != nil { parallelCount := 5 if model.MultiStoresVendorMap[loopMapInfo.VendorID] == 1 { @@ -443,7 +444,6 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch. tasksch.NewParallelConfig().SetParallelCount(parallelCount).SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { storeMap := batchItemList[0].(*model.StoreMap) - globals.SugarLogger.Debugf("ssss,[%v]", utils.Format4Output(storeMap, false)) if syncDisabled || storeMap.Status > model.StoreStatusDisabled { if setSyncStatus != 0 { dao.SetStoreSkuSyncStatus(db, storeMap.VendorID, []int{storeMap.StoreID}, skuIDs, setSyncStatus) @@ -456,6 +456,8 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch. }, loopMapInfo.StoreMapList) t.AddChild(loopStoreTask).Run() _, err = loopStoreTask.GetResult(0) + } else { + globals.SugarLogger.Debugf("yaer") } return nil, partner.AddVendorInfo2Err(err, loopMapInfo.VendorID) }, isContinueWhenError) @@ -605,7 +607,6 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I if len(storeMapList) == 0 { return nil, "", nil } - fmt.Println("test", utils.Format4Output(storeMapList, false)) vendorStoreMap := make(map[int][]*model.StoreMap) for _, v := range storeMapList { vendorStoreMap[v.VendorID] = append(vendorStoreMap[v.VendorID], v) From e835a93f8cd2a410d8c841bebd751695cedf05a6 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, 20 Mar 2020 16:55:19 +0800 Subject: [PATCH 018/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 3 --- business/partner/purchase/yb/yb.go | 4 ++++ conf/app.conf | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index cd46143e4..6b410d4e3 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -434,7 +434,6 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch. task, hint, err := v.LoopStoresMap2(ctx, parentTask, db, fmt.Sprintf("同步门店商品信息:%v", storeIDs), isAsync, isManageIt, vendorIDs, storeIDs, false, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) { loopMapInfo := batchItemList[0].(*LoopStoreMapInfo) - globals.SugarLogger.Debugf("ssss,[%v]", utils.Format4Output(loopMapInfo, false)) if handler := v.GetStoreHandler(loopMapInfo.VendorID); handler != nil { parallelCount := 5 if model.MultiStoresVendorMap[loopMapInfo.VendorID] == 1 { @@ -456,8 +455,6 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch. }, loopMapInfo.StoreMapList) t.AddChild(loopStoreTask).Run() _, err = loopStoreTask.GetResult(0) - } else { - globals.SugarLogger.Debugf("yaer") } return nil, partner.AddVendorInfo2Err(err, loopMapInfo.VendorID) }, isContinueWhenError) diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index af0eb98f0..00380d01b 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -1,6 +1,7 @@ package yb import ( + "fmt" "sync" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -23,8 +24,11 @@ type PurchaseHandler struct { func init() { if api.YinBaoAPI != nil { + fmt.Println("test2") CurPurchaseHandler = New() partner.RegisterPurchasePlatform(CurPurchaseHandler) + } else { + fmt.Println("test1") } } diff --git a/conf/app.conf b/conf/app.conf index f0483057a..e21d1a744 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -407,3 +407,6 @@ getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken" dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" + +yinbaoAppKey = "682628966212343269" +yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" \ No newline at end of file From 524902962f2867d67c113930445723c2adf5608b 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, 20 Mar 2020 17:10:51 +0800 Subject: [PATCH 019/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 4 ++++ business/partner/purchase/yb/yb.go | 8 -------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 6b410d4e3..62c40ba15 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -119,6 +119,10 @@ var ( // } func (v *VendorSync) GetStoreHandler(vendorID int) partner.IPurchasePlatformHandler { + fmt.Println(partner.GetPurchasePlatformFromVendorID(0)) + fmt.Println(partner.GetPurchasePlatformFromVendorID(1)) + fmt.Println(partner.GetPurchasePlatformFromVendorID(4)) + return partner.GetPurchasePlatformFromVendorID(vendorID) } diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index 00380d01b..7f6518213 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -1,9 +1,6 @@ package yb import ( - "fmt" - "sync" - "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" @@ -18,17 +15,12 @@ var ( type PurchaseHandler struct { partner.BasePurchasePlatform putils.DefSingleStorePlatform - - locker sync.RWMutex } func init() { if api.YinBaoAPI != nil { - fmt.Println("test2") CurPurchaseHandler = New() partner.RegisterPurchasePlatform(CurPurchaseHandler) - } else { - fmt.Println("test1") } } From a61ce6e5839e8862d997a2d0f71a78f673cc37b7 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, 20 Mar 2020 17:32:56 +0800 Subject: [PATCH 020/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 4 ---- business/partner/purchase/yb/yb.go | 9 ++++----- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 62c40ba15..6b410d4e3 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -119,10 +119,6 @@ var ( // } func (v *VendorSync) GetStoreHandler(vendorID int) partner.IPurchasePlatformHandler { - fmt.Println(partner.GetPurchasePlatformFromVendorID(0)) - fmt.Println(partner.GetPurchasePlatformFromVendorID(1)) - fmt.Println(partner.GetPurchasePlatformFromVendorID(4)) - return partner.GetPurchasePlatformFromVendorID(vendorID) } diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index 7f6518213..ed8d17ab9 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -5,7 +5,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" - "git.rosy.net.cn/jx-callback/globals/api" ) var ( @@ -18,10 +17,10 @@ type PurchaseHandler struct { } func init() { - if api.YinBaoAPI != nil { - CurPurchaseHandler = New() - partner.RegisterPurchasePlatform(CurPurchaseHandler) - } + // if api.YinBaoAPI != nil { + CurPurchaseHandler = New() + partner.RegisterPurchasePlatform(CurPurchaseHandler) + // } } func New() (obj *PurchaseHandler) { From 726b5e176cb462a210e0bae17276cb6aa982b0cb 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, 20 Mar 2020 17:46:05 +0800 Subject: [PATCH 021/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/mtwm.go | 1 + business/partner/purchase/yb/yb.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/business/partner/purchase/mtwm/mtwm.go b/business/partner/purchase/mtwm/mtwm.go index 09bce7a52..fbb8a98f9 100644 --- a/business/partner/purchase/mtwm/mtwm.go +++ b/business/partner/purchase/mtwm/mtwm.go @@ -29,6 +29,7 @@ type PurchaseHandler struct { } func init() { + fmt.Println("test1") if api.MtwmAPI != nil { CurPurchaseHandler = New() partner.RegisterPurchasePlatform(CurPurchaseHandler) diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index ed8d17ab9..53cb048c5 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -1,6 +1,8 @@ package yb import ( + "fmt" + "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" @@ -18,6 +20,7 @@ type PurchaseHandler struct { func init() { // if api.YinBaoAPI != nil { + fmt.Println("test2") CurPurchaseHandler = New() partner.RegisterPurchasePlatform(CurPurchaseHandler) // } From a0d71c970c070d568bc583cf8f71d1a369005dfc 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, 20 Mar 2020 17:54:02 +0800 Subject: [PATCH 022/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/mtwm.go | 1 - business/partner/purchase/yb/yb.go | 12 +++++------- main.go | 3 +++ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/business/partner/purchase/mtwm/mtwm.go b/business/partner/purchase/mtwm/mtwm.go index fbb8a98f9..09bce7a52 100644 --- a/business/partner/purchase/mtwm/mtwm.go +++ b/business/partner/purchase/mtwm/mtwm.go @@ -29,7 +29,6 @@ type PurchaseHandler struct { } func init() { - fmt.Println("test1") if api.MtwmAPI != nil { CurPurchaseHandler = New() partner.RegisterPurchasePlatform(CurPurchaseHandler) diff --git a/business/partner/purchase/yb/yb.go b/business/partner/purchase/yb/yb.go index 53cb048c5..7f6518213 100644 --- a/business/partner/purchase/yb/yb.go +++ b/business/partner/purchase/yb/yb.go @@ -1,12 +1,11 @@ package yb import ( - "fmt" - "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" "git.rosy.net.cn/jx-callback/business/partner/putils" + "git.rosy.net.cn/jx-callback/globals/api" ) var ( @@ -19,11 +18,10 @@ type PurchaseHandler struct { } func init() { - // if api.YinBaoAPI != nil { - fmt.Println("test2") - CurPurchaseHandler = New() - partner.RegisterPurchasePlatform(CurPurchaseHandler) - // } + if api.YinBaoAPI != nil { + CurPurchaseHandler = New() + partner.RegisterPurchasePlatform(CurPurchaseHandler) + } } func New() (obj *PurchaseHandler) { diff --git a/main.go b/main.go index 15feef3f3..c3b567b5b 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,8 @@ import ( "os" "time" + "git.rosy.net.cn/jx-callback/business/partner/purchase/yb" + "github.com/astaxie/beego" "git.rosy.net.cn/baseapi/platformapi/dingdingapi" @@ -74,6 +76,7 @@ func Init() { if globals.IsProductEnv() { ebai.CurPurchaseHandler.StartRefreshComment() mtwm.CurPurchaseHandler.StartRefreshComment() + yb.CurPurchaseHandler.StartRefreshComment() } misc.Init() } From 95b28dbff222bc82d6d03a1dcd93095f123cecd9 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, 20 Mar 2020 18:02:07 +0800 Subject: [PATCH 023/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/order_comment.go | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 business/partner/purchase/yb/order_comment.go diff --git a/business/partner/purchase/yb/order_comment.go b/business/partner/purchase/yb/order_comment.go new file mode 100644 index 000000000..7206382e9 --- /dev/null +++ b/business/partner/purchase/yb/order_comment.go @@ -0,0 +1,5 @@ +package yb + +func (c *PurchaseHandler) StartRefreshComment() { + +} From da84d8f2b34b967b5084d9ba1072cba8d9c7acd7 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, 20 Mar 2020 18:12:38 +0800 Subject: [PATCH 024/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store.go | 3 +++ business/model/store_sku.go | 2 ++ 2 files changed, 5 insertions(+) diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 61338a1ac..af77862c1 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -431,6 +431,9 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo } else if vendorID == model.VendorIDEBAI { storeCat.EbaiID = utils.Str2Int64WithDefault(vendorCategoryID, 0) storeCat.EbaiSyncStatus = status + } else if vendorID == model.VendorIDYB { + storeCat.YbID = utils.Str2Int64WithDefault(vendorCategoryID, 0) + storeCat.YbSyncStatus = status } else { panic("unsupported vendor") } diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 57efc6ec2..0519894d0 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -52,6 +52,8 @@ type StoreSkuCategoryMap struct { EbaiSyncStatus int8 `orm:"default(2)"` MtwmSyncStatus int8 `orm:"default(2)"` // WscSyncStatus int8 `orm:"default(2)"` + YbID int64 `orm:"column(yb_id);index"` + YbSyncStatus int8 `orm:"default(2)"` } func (*StoreSkuCategoryMap) TableUnique() [][]string { From 103aac505b46398a8652acea8c0f323b188727ed 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, 20 Mar 2020 18:17:12 +0800 Subject: [PATCH 025/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 3b5f20f0a..d36ffe12e 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -46,3 +46,15 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi productInfoParam.ProductInfo = productInfo return productInfoParam } + +func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { + return err +} + +func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { + return err +} + +func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { + return err +} From 48cc0f1585b8ac3ad7761bb0ad0af4e87d38493a 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, 20 Mar 2020 18:20:42 +0800 Subject: [PATCH 026/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/model/sku.go b/business/model/sku.go index ee2f66405..d24bf4295 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -145,6 +145,7 @@ type SkuCategory struct { JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别 EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别 MtwmCategoryID int64 `orm:"column(mtwm_category_id)" json:"mtwmCategoryID"` // 这个是指对应的美团外卖商品类别 + YbCategoryID int64 `orm:"column(yb_category_id)" json:"ybCategoryID"` // 这个是指对应的银豹商品类别 // ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别 // WscCategoryID int64 `orm:"column(wsc_category_id)" json:"wscCategoryID"` // 这个是指对应的美团外卖商品类别 From 4e4b6633115a304c14cfa18ce23947055db1dc06 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, 20 Mar 2020 18:30:35 +0800 Subject: [PATCH 027/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/model/dao/store.go b/business/model/dao/store.go index af77862c1..53acdffde 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -420,6 +420,7 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo CategoryID: categoryID, MtwmSyncStatus: model.SyncFlagNewMask, EbaiSyncStatus: model.SyncFlagNewMask, + YbSyncStatus: model.SyncFlagNewMask, } storeCat.DeletedAt = utils.DefaultTimeValue if err = GetEntity(db, storeCat, model.FieldStoreID, model.FieldCategoryID, model.FieldDeletedAt); err != nil && !IsNoRowsError(err) { From fe50ecc7b9708dbab16ab0a18901d845151ef0a5 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, 23 Mar 2020 11:53:07 +0800 Subject: [PATCH 028/158] yb --- business/jxstore/cms/sync_store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index df46cea91..2f9fae2d9 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -419,7 +419,7 @@ 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) { + if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB { globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) } else { createList = append(createList, sku) From 58041e7173677c3ec0fb7b12b299a3877d8006bf 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, 23 Mar 2020 11:55:52 +0800 Subject: [PATCH 029/158] yb --- business/partner/purchase/yb/store_sku.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index d36ffe12e..0bc0ba82a 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,6 +1,8 @@ package yb import ( + "fmt" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -17,6 +19,7 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { storeSku := storeSkuList[0] + fmt.Println(utils.Format4Output(storeSku, false)) api.YinBaoAPI = yinbaoapi.New(storeSku.YbAppKey, storeSku.YbAppID) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) if err != nil { @@ -32,8 +35,8 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { var ( - buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) - sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) + buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) / 100 + sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) / 100 ) productInfoParam = &yinbaoapi.ProductInfoParam{} productInfo := &yinbaoapi.ProductInfo{ From b6a745ca829809cca738316452c2ba25945e7606 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, 23 Mar 2020 11:58:59 +0800 Subject: [PATCH 030/158] yb --- business/model/dao/store_sku.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 1f90f8e38..9220afebe 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -111,7 +111,7 @@ type StoreSkuSyncInfo struct { VendorActPrice int64 `json:"vendorActPrice"` // 保存数据用,实际的活动价 YbAppID string `orm:"column(yb_app_id)" json:"ybAppID"` //银豹对应门店的appID - YbAppKey string //银豹对应门店的appkey + YbAppKey string `json:"ybAppKey"` //银豹对应门店的appkey } type MissingStoreSkuInfo struct { @@ -389,7 +389,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo } sql := ` SELECT - t14.vendor_id, t14.vendor_org_code, + t14.vendor_id, t14.vendor_org_code, t14.yb_app_id, t14.yb_app_key, t1.id bind_id, t1.sku_id, t1.price, t1.unit_price, t1.status store_sku_status, %s vendor_sku_id, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end, From 9e314a296b69a71827b64014ee37facbdc994a6f 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, 23 Mar 2020 13:33:29 +0800 Subject: [PATCH 031/158] yb --- business/jxstore/cms/sync.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 6b410d4e3..615861f35 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -623,7 +623,7 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I // 临时把京东的并发改为2 task = tasksch.NewParallelTask(taskName, tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, handler, loopInfoList) if isAsync { - // buildSetFinishHook(task, ctx) + buildSetFinishHook(task, ctx) } tasksch.HandleTask(task, parentTask, isManageIt).Run() if !isAsync { From b4502545d501deeef9707de035b96b9509b62c75 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, 23 Mar 2020 13:45:30 +0800 Subject: [PATCH 032/158] =?UTF-8?q?yb=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 0bc0ba82a..1f6f723de 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,8 +1,6 @@ package yb import ( - "fmt" - "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -19,13 +17,13 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { storeSku := storeSkuList[0] - fmt.Println(utils.Format4Output(storeSku, false)) api.YinBaoAPI = yinbaoapi.New(storeSku.YbAppKey, storeSku.YbAppID) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") + } else { + storeSku.VendorSkuID = utils.Int64ToStr(result.UID) } - storeSku.VendorSkuID = utils.Int64ToStr(result.UID) return failedList, err } From c0e580ccd3a5c1a3254c38464efcd0d2b3db54de 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, 23 Mar 2020 16:41:59 +0800 Subject: [PATCH 033/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store.go | 5 +- business/model/dao/store_sku.go | 5 +- business/partner/purchase/yb/store_sku.go | 154 +++++++++++++++++++++- 3 files changed, 158 insertions(+), 6 deletions(-) diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 53acdffde..3bd60a828 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -46,6 +46,9 @@ type StoreDetail struct { JdStoreLevel string `json:"jdStoreLevel"` //京东门店等级 IsOrder int `json:"isOrder"` //是否是下预订单门店 + + YbAppID string `orm:"column(yb_app_id)" json:"ybAppID"` + YbAppKey string `json:"ybAppKey"` } // 带快递门店信息的 @@ -89,7 +92,7 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (sto sql := ` SELECT t1.*, t2.vendor_store_id, t2.status vendor_status, t2.delivery_fee_deduction_sill, t2.delivery_fee_deduction_fee, t2.sync_status, t2.vendor_org_code, - t2.price_percentage, t2.auto_pickup, t2.delivery_type, t2.delivery_competition, t2.is_sync, t2.vendor_store_name, t2.is_order, + t2.price_percentage, t2.auto_pickup, t2.delivery_type, t2.delivery_competition, t2.is_sync, t2.vendor_store_name, t2.is_order, t2.yb_app_id, t2.yb_app_key, t3.value price_percentage_pack_str, t4.value freight_deduction_pack_str, district.name district_name, diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 9220afebe..97b3ed606 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -109,9 +109,6 @@ type StoreSkuSyncInfo struct { ActPercentage int `json:"actPercentage"` // 直降活动百分比 ActSyncStatus int8 `orm:"default(2)" json:"actSyncStatus"` VendorActPrice int64 `json:"vendorActPrice"` // 保存数据用,实际的活动价 - - YbAppID string `orm:"column(yb_app_id)" json:"ybAppID"` //银豹对应门店的appID - YbAppKey string `json:"ybAppKey"` //银豹对应门店的appkey } type MissingStoreSkuInfo struct { @@ -389,7 +386,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo } sql := ` SELECT - t14.vendor_id, t14.vendor_org_code, t14.yb_app_id, t14.yb_app_key, + t14.vendor_id, t14.vendor_org_code, t1.id bind_id, t1.sku_id, t1.price, t1.unit_price, t1.status store_sku_status, %s vendor_sku_id, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end, diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 1f6f723de..d8059c709 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,13 +1,18 @@ package yb import ( + "fmt" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" + "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) @@ -17,7 +22,7 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { storeSku := storeSkuList[0] - api.YinBaoAPI = yinbaoapi.New(storeSku.YbAppKey, storeSku.YbAppID) + buildYbConfigs(storeID) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") @@ -31,6 +36,18 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v return failedList, err } +func buildYbConfigs(storeID int) (err error) { + if storeID == 0 { + return fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) + } + store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) + if err != nil { + return err + } + api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) + return err +} + func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { var ( buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) / 100 @@ -48,6 +65,137 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi return productInfoParam } +func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { + buildYbConfigs(storeID) + if storeSkuList != nil { + if len(storeSkuList) == 1 { + storeSku := storeSkuList[0] + result, err := api.YinBaoAPI.QueryProductByBarcode(utils.Int2Str(storeSku.SkuID)) + resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(utils.Int2Str(storeSku.SkuID)) + if err != nil { + return nil, err + } + if skuName := vendorSku2Jx(result, resultp); skuName != nil { + skuNameList = append(skuNameList, skuName) + } + } else { + var barcodes []string + for _, v := range storeSkuList { + barcodes = append(barcodes, utils.Int2Str(v.SkuID)) + } + results, err := api.YinBaoAPI.QueryProductByBarcodes(barcodes) + if err != nil { + return nil, err + } + for _, v := range results { + resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + if err != nil { + return nil, err + } + if skuName := vendorSku2Jx(v, resultp); skuName != nil { + skuNameList = append(skuNameList, skuName) + } + } + } + } else { + result, err := api.YinBaoAPI.QueryProductPages(nil) + if err != nil { + return nil, err + } + if result.PostBackParameter.ParameterType == yinbaoapi.PageMaxID { + for _, v := range result.Result { + resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + if err != nil { + return nil, err + } + vv := &yinbaoapi.QueryProductByBarcodeResult{} + err = utils.Map2StructByJson(utils.Struct2MapByJson(v), vv, false) + if skuName := vendorSku2Jx(vv, resultp); skuName != nil { + skuNameList = append(skuNameList, skuName) + } + } + } else { + loopPages(result.PostBackParameter.ParameterType, result.PostBackParameter.ParameterValue, skuNameList) + } + } + return skuNameList, err +} + +func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuNameInfo) (err error) { + var postBackParameter = &yinbaoapi.PostBackParameter{ + ParameterType: parameterType, + ParameterValue: parameterValue, + } + resultPages, err := api.YinBaoAPI.QueryProductPages(postBackParameter) + if err != nil { + return err + } + for _, v := range resultPages.Result { + resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + if err != nil { + return err + } + vv := &yinbaoapi.QueryProductByBarcodeResult{} + err = utils.Map2StructByJson(utils.Struct2MapByJson(v), vv, false) + if skuName := vendorSku2Jx(vv, resultp); skuName != nil { + skuNameList = append(skuNameList, skuName) + } + } + if resultPages.PostBackParameter.ParameterType != yinbaoapi.PageMaxID { + err = loopPages(resultPages.PostBackParameter.ParameterType, resultPages.PostBackParameter.ParameterValue, skuNameList) + } + return err +} + +func vendorSku2Jx(result *yinbaoapi.QueryProductByBarcodeResult, resultp []*yinbaoapi.QueryProductImagesByBarcodeResult) (skuName *partner.SkuNameInfo) { + var picList []string + if result == nil { + globals.SugarLogger.Warnf("vendorSku2Jx, strange result:%s", utils.Format4Output(result, true)) + return nil + } + if len(resultp) > 0 { + for _, v := range resultp { + picList = append(picList, v.ImageURL) + } + } + prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(result.Name) + skuID := int(utils.Str2Int64WithDefault(result.Barcode, 0)) + skuName = &partner.SkuNameInfo{ + Prefix: prefix, + Name: name, + Unit: unit, + SkuList: []*partner.SkuInfo{ + &partner.SkuInfo{ + StoreSkuInfo: partner.StoreSkuInfo{ + VendorSkuID: utils.Int64ToStr(result.UID), + SkuID: skuID, + Stock: int(utils.Float64TwoInt64(result.Stock)), + VendorPrice: jxutils.StandardPrice2Int(result.SellPrice), + Status: ybSkuStatus2Jx(result.Enable), + }, + SkuName: result.Name, + Comment: comment, + SpecQuality: float64(specQuality), + SpecUnit: specUnit, + Weight: int(utils.Float64TwoInt64(float64(specQuality))), + }, + }, + PictureList: picList, + } + return skuName +} + +func ybSkuStatus2Jx(ybStatus int) (jxSkuStatus int) { + if ybStatus == yinbaoapi.SkuStatusEnable { + jxSkuStatus = model.SkuStatusNormal + } else if ybStatus == yinbaoapi.SkuStatusDisabled { + jxSkuStatus = model.SkuStatusDontSale + } else if ybStatus == yinbaoapi.SkuStatusDeleted { + jxSkuStatus = model.SkuStatusDeleted + } + return jxSkuStatus +} + func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { return err } @@ -59,3 +207,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { return err } + +func (p *PurchaseHandler) IsErrSkuExist(err error) (isExist bool) { + return yinbaoapi.IsErrSkuExist(err) +} From 8b8a18d4b3ee33b2214f61500e2cff9fe72ec3e3 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, 23 Mar 2020 16:56:16 +0800 Subject: [PATCH 034/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81api=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index d8059c709..3398e3f7f 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -211,3 +211,7 @@ func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) IsErrSkuExist(err error) (isExist bool) { return yinbaoapi.IsErrSkuExist(err) } + +func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { + return 1 +} From ed2bab0f474e1b511f283cbe7d9b75b6b80793d6 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, 23 Mar 2020 16:58:23 +0800 Subject: [PATCH 035/158] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 56 +++++++++++++++++------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 615861f35..48594269e 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -9,10 +9,8 @@ import ( "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/baseapi" - "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "git.rosy.net.cn/jx-callback/business/jxutils/excel" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -646,33 +644,33 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { task.SetFinishHook(func(task tasksch.ITask) { - var noticeMsg = "您此次的同步任务错误详情返回如下: \n" - if ctx.GetUserName() != "jxadmin" { - if len(task.GetFailedList()) > 10 { - downloadURL, _, _ := WirteToExcelBySyncFailed(task) - noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - } else if len(task.GetFailedList()) > 0 && len(task.GetFailedList()) <= 10 { - if task.GetErr() != nil { - noticeMsg += utils.Format4Output(buildErrMsgJson(task), true) - } - } else { - noticeMsg = "您的同步任务执行完成,没有错误返回。" - } - if authInfo, err := ctx.GetV2AuthInfo(); err == nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg) - } else { - globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) - } - } else { - if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { - downloadURL, _, _ := WirteToExcelBySyncFailed(task) - user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") - noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - if user != nil && err == nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) - } - } - } + // var noticeMsg = "您此次的同步任务错误详情返回如下: \n" + // if ctx.GetUserName() != "jxadmin" { + // if len(task.GetFailedList()) > 10 { + // downloadURL, _, _ := WirteToExcelBySyncFailed(task) + // noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + // } else if len(task.GetFailedList()) > 0 && len(task.GetFailedList()) <= 10 { + // if task.GetErr() != nil { + // noticeMsg += utils.Format4Output(buildErrMsgJson(task), true) + // } + // } else { + // noticeMsg = "您的同步任务执行完成,没有错误返回。" + // } + // if authInfo, err := ctx.GetV2AuthInfo(); err == nil { + // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg) + // } else { + // globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) + // } + // } else { + // if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { + // downloadURL, _, _ := WirteToExcelBySyncFailed(task) + // user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") + // noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + // if user != nil && err == nil { + // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) + // } + // } + // } }) } From 43346f0eb347dd9bb74815a081dabc917ba35b0f 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, 23 Mar 2020 17:16:32 +0800 Subject: [PATCH 036/158] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=93=B6=E8=B1=B9bet?= =?UTF-8?q?a=E4=BF=AE=E6=94=B9=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 167 ++++++++++++---------- conf/app.conf | 4 + globals/globals.go | 2 + 3 files changed, 100 insertions(+), 73 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 3398e3f7f..0622cb1e9 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -36,35 +36,6 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v return failedList, err } -func buildYbConfigs(storeID int) (err error) { - if storeID == 0 { - return fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) - } - store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) - if err != nil { - return err - } - api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) - return err -} - -func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { - var ( - buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) / 100 - sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) / 100 - ) - productInfoParam = &yinbaoapi.ProductInfoParam{} - productInfo := &yinbaoapi.ProductInfo{ - Stock: &stock, - Name: storeSku.SkuName, - Barcode: utils.Int2Str(storeSku.SkuID), - BuyPrice: &buyPrice, - SellPrice: &sellPrice, - } - productInfoParam.ProductInfo = productInfo - return productInfoParam -} - func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { buildYbConfigs(storeID) if storeSkuList != nil { @@ -121,32 +92,58 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas return skuNameList, err } -func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuNameInfo) (err error) { - var postBackParameter = &yinbaoapi.PostBackParameter{ - ParameterType: parameterType, - ParameterValue: parameterValue, +func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo, status int) (failedList []*partner.StoreSkuInfoWithErr, err error) { + if globals.EnableYbStoreWrite { + } - resultPages, err := api.YinBaoAPI.QueryProductPages(postBackParameter) - if err != nil { - return err + return failedList, err +} + +func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { + if globals.EnableYbStoreWrite { + } - for _, v := range resultPages.Result { - resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) - if err != nil { - return err - } - vv := &yinbaoapi.QueryProductByBarcodeResult{} - err = utils.Map2StructByJson(utils.Struct2MapByJson(v), vv, false) - if skuName := vendorSku2Jx(vv, resultp); skuName != nil { - skuNameList = append(skuNameList, skuName) - } - } - if resultPages.PostBackParameter.ParameterType != yinbaoapi.PageMaxID { - err = loopPages(resultPages.PostBackParameter.ParameterType, resultPages.PostBackParameter.ParameterValue, skuNameList) + return failedList, err +} + +func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { + if globals.EnableYbStoreWrite { + } + return failedList, err +} + +func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { return err } +func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { + return err +} + +func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { + return err +} + +func (p *PurchaseHandler) IsErrSkuExist(err error) (isExist bool) { + return yinbaoapi.IsErrSkuExist(err) +} + +func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { + return 1 +} + +func ybSkuStatus2Jx(ybStatus int) (jxSkuStatus int) { + if ybStatus == yinbaoapi.SkuStatusEnable { + jxSkuStatus = model.SkuStatusNormal + } else if ybStatus == yinbaoapi.SkuStatusDisabled { + jxSkuStatus = model.SkuStatusDontSale + } else if ybStatus == yinbaoapi.SkuStatusDeleted { + jxSkuStatus = model.SkuStatusDeleted + } + return jxSkuStatus +} + func vendorSku2Jx(result *yinbaoapi.QueryProductByBarcodeResult, resultp []*yinbaoapi.QueryProductImagesByBarcodeResult) (skuName *partner.SkuNameInfo) { var picList []string if result == nil { @@ -185,33 +182,57 @@ func vendorSku2Jx(result *yinbaoapi.QueryProductByBarcodeResult, resultp []*yinb return skuName } -func ybSkuStatus2Jx(ybStatus int) (jxSkuStatus int) { - if ybStatus == yinbaoapi.SkuStatusEnable { - jxSkuStatus = model.SkuStatusNormal - } else if ybStatus == yinbaoapi.SkuStatusDisabled { - jxSkuStatus = model.SkuStatusDontSale - } else if ybStatus == yinbaoapi.SkuStatusDeleted { - jxSkuStatus = model.SkuStatusDeleted +func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuNameInfo) (err error) { + var postBackParameter = &yinbaoapi.PostBackParameter{ + ParameterType: parameterType, + ParameterValue: parameterValue, + } + resultPages, err := api.YinBaoAPI.QueryProductPages(postBackParameter) + if err != nil { + return err + } + for _, v := range resultPages.Result { + resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + if err != nil { + return err + } + vv := &yinbaoapi.QueryProductByBarcodeResult{} + err = utils.Map2StructByJson(utils.Struct2MapByJson(v), vv, false) + if skuName := vendorSku2Jx(vv, resultp); skuName != nil { + skuNameList = append(skuNameList, skuName) + } + } + if resultPages.PostBackParameter.ParameterType != yinbaoapi.PageMaxID { + err = loopPages(resultPages.PostBackParameter.ParameterType, resultPages.PostBackParameter.ParameterValue, skuNameList) } - return jxSkuStatus -} - -func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { return err } -func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { +func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { + var ( + buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) / 100 + sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) / 100 + ) + productInfoParam = &yinbaoapi.ProductInfoParam{} + productInfo := &yinbaoapi.ProductInfo{ + Stock: &stock, + Name: storeSku.SkuName, + Barcode: utils.Int2Str(storeSku.SkuID), + BuyPrice: &buyPrice, + SellPrice: &sellPrice, + } + productInfoParam.ProductInfo = productInfo + return productInfoParam +} + +func buildYbConfigs(storeID int) (err error) { + if storeID == 0 { + return fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) + } + store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) + if err != nil { + return err + } + api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) return err } - -func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { - return err -} - -func (p *PurchaseHandler) IsErrSkuExist(err error) (isExist bool) { - return yinbaoapi.IsErrSkuExist(err) -} - -func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { - return 1 -} diff --git a/conf/app.conf b/conf/app.conf index e21d1a744..1b0481ddd 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -31,6 +31,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false +enableEbaiStoreWrite = false aliKey = "LTAI4FwZN7pp4dACQHoapkZQ" aliSecret = "NTegceUFX0FdfMovqCDzqcIKmhcoOu" @@ -211,6 +212,7 @@ enableJdStoreWrite = true enableEbaiStoreWrite = true enableMtwmStoreWrite = true enableWscStoreWrite = true +enableEbaiStoreWrite = true disableWeimob = false weimobCallbackURL = "http://callback.jxc4.com/weimob" @@ -247,6 +249,7 @@ enableStoreWrite = true enableJdStoreWrite = true enableEbaiStoreWrite = true enableMtwmStoreWrite = true +enableEbaiStoreWrite = true mtpsAppKey = "3c0a05d464c247c19d7ec13accc78605" mtpsSecret = "b1M}9?:sTbsB[OF2gNORnN(|(iy9rB8(`7]|[wGLnbmt`evfM>E:A90DjHAW:UPE" @@ -366,6 +369,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false +enableEbaiStoreWrite = true jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" diff --git a/globals/globals.go b/globals/globals.go index e12384f76..48aa35b91 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -24,6 +24,7 @@ var ( EnableMtwmStoreWrite bool EnableWscStoreWrite bool EnablePendingChange bool + EnableYbStoreWrite bool QiniuBucket string WeimobCallbackURL string @@ -91,6 +92,7 @@ func Init() { EnableMtwmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableMtwmStoreWrite", false) EnableWscStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableWscStoreWrite", false) // EnablePendingChange = beego.AppConfig.DefaultBool("enablePendingChange", false) + EnableYbStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableYbStoreWrite", false) QiniuBucket = beego.AppConfig.String("qiniuBucket") From 168662bfb8916517ca9641b390d114f5f29c2dac 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, 23 Mar 2020 17:22:24 +0800 Subject: [PATCH 037/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 0622cb1e9..93aa05d5e 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -101,7 +101,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - + fmt.Println("test") } return failedList, err } From a9a998a0d28c2179f2e74d8b4564bc54ec856ce1 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, 23 Mar 2020 17:27:36 +0800 Subject: [PATCH 038/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index 1b0481ddd..22336fb2d 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -31,7 +31,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableEbaiStoreWrite = false +enableYbStoreWrite = false aliKey = "LTAI4FwZN7pp4dACQHoapkZQ" aliSecret = "NTegceUFX0FdfMovqCDzqcIKmhcoOu" @@ -212,7 +212,7 @@ enableJdStoreWrite = true enableEbaiStoreWrite = true enableMtwmStoreWrite = true enableWscStoreWrite = true -enableEbaiStoreWrite = true +enableYbStoreWrite = true disableWeimob = false weimobCallbackURL = "http://callback.jxc4.com/weimob" @@ -249,7 +249,7 @@ enableStoreWrite = true enableJdStoreWrite = true enableEbaiStoreWrite = true enableMtwmStoreWrite = true -enableEbaiStoreWrite = true +enableYbStoreWrite = true mtpsAppKey = "3c0a05d464c247c19d7ec13accc78605" mtpsSecret = "b1M}9?:sTbsB[OF2gNORnN(|(iy9rB8(`7]|[wGLnbmt`evfM>E:A90DjHAW:UPE" @@ -361,6 +361,7 @@ enableJdStoreWrite = true enableEbaiStoreWrite = true enableMtwmStoreWrite = true enableWscStoreWrite = false +enableYbStoreWrite = false [beta] enableStoreWrite = false @@ -369,7 +370,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableEbaiStoreWrite = true +enableYbStoreWrite = true jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" From 332bc7a7dbbeba6e2471498f04f27a3e94fe0a69 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, 23 Mar 2020 17:30:27 +0800 Subject: [PATCH 039/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 93aa05d5e..27dd75d5a 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -100,6 +100,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr } func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { + fmt.Println("test2") if globals.EnableYbStoreWrite { fmt.Println("test") } From ffa42b6fa72a848133876946f9e95cbb7ecee0e2 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, 23 Mar 2020 17:33:05 +0800 Subject: [PATCH 040/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 3 +-- conf/app.conf | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 27dd75d5a..0622cb1e9 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -100,9 +100,8 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr } func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { - fmt.Println("test2") if globals.EnableYbStoreWrite { - fmt.Println("test") + } return failedList, err } diff --git a/conf/app.conf b/conf/app.conf index 22336fb2d..d4235df38 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -31,7 +31,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableYbStoreWrite = false +enableYbStoreWrite = true aliKey = "LTAI4FwZN7pp4dACQHoapkZQ" aliSecret = "NTegceUFX0FdfMovqCDzqcIKmhcoOu" From 5039f5c7e22bf874fbd8f1f0ab90f16e4b62800b 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, 23 Mar 2020 17:34:29 +0800 Subject: [PATCH 041/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 0622cb1e9..d582c730c 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -101,7 +101,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - + fmt.Println("test11") } return failedList, err } From 1160bb1b3a27d04b5922a4bf6166ff76a18bf384 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, 23 Mar 2020 17:37:22 +0800 Subject: [PATCH 042/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index d4235df38..97887e719 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -364,7 +364,7 @@ enableWscStoreWrite = false enableYbStoreWrite = false [beta] -enableStoreWrite = false +enableStoreWrite = true enableJdStoreWrite = false enableEbaiStoreWrite = false enableElmStoreWrite = false From 88d87b4a5ffa5a54cf72daf60e223653116ebb7c 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, 23 Mar 2020 17:52:20 +0800 Subject: [PATCH 043/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index d582c730c..09ba9b9bd 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -101,7 +101,17 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - fmt.Println("test11") + buildYbConfigs(storeID) + for _, v := range storeSkuList { + var productInfo = &yinbaoapi.ProductInfo{ + UID: utils.Str2Int64(v.VendorSkuID), + SellPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), + } + err = api.YinBaoAPI.UpdateProductInfo(productInfo) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "更新商品价格") + } + } } return failedList, err } From 9ecab01aabe74c47f3030802350b42f519e0646e 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, 23 Mar 2020 18:13:11 +0800 Subject: [PATCH 044/158] =?UTF-8?q?=E4=BF=AE=E6=94=B9sku=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index ff16e54e8..2a050dd55 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1099,6 +1099,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } if sku.ExdSkuID == "" && sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { + fmt.Println("test3", err) dao.Rollback(db) return 0, err } @@ -1107,14 +1108,16 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil { if maskValue&model.SyncFlagSpecMask != 0 { + fmt.Println("test2", err) err = refreshStoreSkuPrice(ctx, db, skuID) } } - + fmt.Println("test1", err) errList := errlist.New() errList.AddErr(err) _, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, false, userName) errList.AddErr(err) + fmt.Println("test4", err) err = errList.GetErrListAsOne() } return num, err From b6974f85bf620560dd462145388d220408a30d64 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, 23 Mar 2020 18:17:16 +0800 Subject: [PATCH 045/158] =?UTF-8?q?=E4=BF=AE=E6=94=B9sku=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 2a050dd55..f9b35f6a6 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1099,7 +1099,6 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } if sku.ExdSkuID == "" && sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { - fmt.Println("test3", err) dao.Rollback(db) return 0, err } @@ -1108,16 +1107,13 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil { if maskValue&model.SyncFlagSpecMask != 0 { - fmt.Println("test2", err) err = refreshStoreSkuPrice(ctx, db, skuID) } } - fmt.Println("test1", err) errList := errlist.New() errList.AddErr(err) _, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, false, userName) errList.AddErr(err) - fmt.Println("test4", err) err = errList.GetErrListAsOne() } return num, err @@ -1138,6 +1134,7 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err storeID := v.StoreID storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) if err != nil { + fmt.Println("test", err, utils.Format4Output(storeDetail, false)) return err } storeSku := &model.StoreSkuBind{} From 5664baf3efebdfe5ee908cc28db68a17284ae26e 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, 23 Mar 2020 18:21:35 +0800 Subject: [PATCH 046/158] =?UTF-8?q?=E4=BF=AE=E6=94=B9sku=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 1 - 1 file changed, 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index f9b35f6a6..6936080ec 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1134,7 +1134,6 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err storeID := v.StoreID storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) if err != nil { - fmt.Println("test", err, utils.Format4Output(storeDetail, false)) return err } storeSku := &model.StoreSkuBind{} From 0f454239977dc42c1b17a88bef61d9f613235292 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, 24 Mar 2020 11:17:21 +0800 Subject: [PATCH 047/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=8A=B6=E6=80=81=E5=92=8C=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 09ba9b9bd..b8bfb6aa8 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -94,7 +94,17 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo, status int) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - + buildYbConfigs(storeID) + for _, v := range storeSkuList { + var productInfo = &yinbaoapi.ProductInfo{ + UID: utils.Str2Int64(v.VendorSkuID), + Enable: utils.Int2Pointer(ybSkuStatus2Jx(v.Status)), + } + err = api.YinBaoAPI.UpdateProductInfo(productInfo) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "更新商品状态") + } + } } return failedList, err } @@ -106,6 +116,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), SellPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), + BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), } err = api.YinBaoAPI.UpdateProductInfo(productInfo) if err != nil { @@ -118,7 +129,17 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - + buildYbConfigs(storeID) + for _, v := range storeSkuList { + var productInfo = &yinbaoapi.ProductInfo{ + UID: utils.Str2Int64(v.VendorSkuID), + Stock: utils.Float64ToPointer(utils.Str2Float64(utils.Int2Str(v.Stock))), + } + err = api.YinBaoAPI.UpdateProductInfo(productInfo) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "更新商品库存") + } + } } return failedList, err } From c34d97dcfd711268cf49b56ecd86fdf9b6f579e9 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, 24 Mar 2020 11:35:39 +0800 Subject: [PATCH 048/158] =?UTF-8?q?=E5=BA=93=E5=AD=98=E9=BB=98=E8=AE=A4999?= =?UTF-8?q?9=E6=8A=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index b8bfb6aa8..d62a35cf5 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -16,10 +16,6 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) -var ( - stock float64 = 100 -) - func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { storeSku := storeSkuList[0] buildYbConfigs(storeID) @@ -246,7 +242,7 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi ) productInfoParam = &yinbaoapi.ProductInfoParam{} productInfo := &yinbaoapi.ProductInfo{ - Stock: &stock, + Stock: utils.Float64ToPointer(utils.Str2Float64(utils.Int2Str(model.MaxStoreSkuStockQty))), Name: storeSku.SkuName, Barcode: utils.Int2Str(storeSku.SkuID), BuyPrice: &buyPrice, From 86b622f266aa99908600cb65e093f04634d34b17 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, 24 Mar 2020 15:33:48 +0800 Subject: [PATCH 049/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 33 ++++++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index d62a35cf5..f11603761 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -17,13 +17,15 @@ import ( ) func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { - storeSku := storeSkuList[0] - buildYbConfigs(storeID) - result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) - if err != nil { - failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") - } else { - storeSku.VendorSkuID = utils.Int64ToStr(result.UID) + if globals.EnableYbStoreWrite { + storeSku := storeSkuList[0] + buildYbConfigs(storeID) + result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") + } else { + storeSku.VendorSkuID = utils.Int64ToStr(result.UID) + } } return failedList, err } @@ -32,6 +34,23 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v return failedList, err } +func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { + if globals.EnableYbStoreWrite { + buildYbConfigs(storeID) + for _, v := range storeSkuList { + var productInfo = &yinbaoapi.ProductInfo{ + UID: utils.Str2Int64(v.VendorSkuID), + Enable: utils.Int2Pointer(yinbaoapi.SkuStatusDeleted), + } + err = api.YinBaoAPI.UpdateProductInfo(productInfo) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "删除商品") + } + } + } + return failedList, err +} + func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { buildYbConfigs(storeID) if storeSkuList != nil { From 6395ac1b1eccb943bf0bbbeffc7d336bc60238c9 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, 25 Mar 2020 09:28:33 +0800 Subject: [PATCH 050/158] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E6=8E=92=E9=99=A4=E5=88=86=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 7b15f1dcc..9a523439c 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1110,7 +1110,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend storeMap.Status = model.StoreStatusOpened storeMap.DeliveryType = model.StoreDeliveryTypeByStore storeMap.SyncStatus = 0 - if vendorID != model.VendorIDJX { + if vendorID != model.VendorIDJX && vendorID != model.VendorIDYB { if storeMap.VendorOrgCode == "" { return nil, fmt.Errorf("必须指定平台分账号信息") } @@ -1127,7 +1127,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend } else { err = ErrCanNotFindVendor } - } else { + } else if vendorID == model.VendorIDJX { ReCalculateJxPriceLight(db, ctx, storeID) } if err == nil { @@ -1250,7 +1250,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor } } - if vendorID != model.VendorIDJX { + if vendorID != model.VendorIDJX && vendorID != model.VendorIDYB { if vendorStoreID := utils.Interface2String(valid["vendorStoreID"]); vendorStoreID != "" { vendorStoreInfo, err2 := storeHandler.ReadStore(ctx, storeMap.VendorOrgCode, vendorStoreID) if err = err2; err == nil { From 1cdada60763a0a30eaa8d9fb0e8959a67a72e564 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, 25 Mar 2020 11:59:46 +0800 Subject: [PATCH 051/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 +- business/partner/purchase/yb/store_sku.go | 57 +++++++++++++++++++++-- conf/app.conf | 6 +-- 3 files changed, 57 insertions(+), 8 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 2f9fae2d9..458997a37 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -85,7 +85,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo storeCatMap.ID = catInfo.MapID var failedList []*partner.StoreSkuInfoWithErr if catInfo.IsExdSpec == model.YES { - if vendorID == model.VendorIDJD || vendorID == model.VendorIDMTWM { + if vendorID == model.VendorIDJD || vendorID == model.VendorIDMTWM || vendorID == model.VendorIDYB { return nil, err } } diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index f11603761..38630c120 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -159,15 +159,43 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg return failedList, err } +func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*partner.BareCategoryInfo, err error) { + vendorOrgCode, err := buildYbConfigs(storeID) + if err != nil { + return nil, err + } + remoteCats, err := api.YinBaoAPI.LoadCategorysWithOption(vendorOrgCode) + if err == nil { + cats = convertVendorCatList(remoteCats) + } + return cats, err +} + func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { + if globals.EnableYbStoreWrite { + vendorOrgCode, err := buildYbConfigs(storeID) + if err != nil { + return err + } + vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorOrgCode, storeCat.Name, storeCat.ParentCatName) + if err == nil { + storeCat.VendorCatID = vendorCatID + } + } return err } func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { + if globals.EnableYbStoreWrite { + + } return err } func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { + if globals.EnableYbStoreWrite { + + } return err } @@ -175,6 +203,10 @@ func (p *PurchaseHandler) IsErrSkuExist(err error) (isExist bool) { return yinbaoapi.IsErrSkuExist(err) } +func (p *PurchaseHandler) IsErrCategoryExist(err error) (isExist bool) { + return yinbaoapi.IsErrCategoryExist(err) +} + func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { return 1 } @@ -271,14 +303,31 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi return productInfoParam } -func buildYbConfigs(storeID int) (err error) { +func buildYbConfigs(storeID int) (vendorOrgCode string, err error) { if storeID == 0 { - return fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) + return "", fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) } store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) if err != nil { - return err + return "", err } api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) - return err + vendorOrgCode = store.VendorOrgCode + return vendorOrgCode, err +} + +func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) (cats []*partner.BareCategoryInfo) { + for _, rCat := range remoteCats { + cat := &partner.BareCategoryInfo{ + VendorCatID: rCat.TxtUID, + Name: rCat.Name, + } + if rCat.TxtParentUID == "" { + cat.Level = 1 + } else { + cat.Level = 2 + } + cats = append(cats, cat) + } + return cats } diff --git a/conf/app.conf b/conf/app.conf index 97887e719..13996ba5f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -174,7 +174,7 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" -jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAccessToken = "bcb6201b5b3c45a0976dcda5e2dea8aejiwm" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" @@ -289,7 +289,7 @@ dingdingCallbackURL = "http://callback-jxgy.jxc4.com/dingding/msg" getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" -jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAccessToken = "bcb6201b5b3c45a0976dcda5e2dea8aejiwm" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" @@ -382,7 +382,7 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" -jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAccessToken = "bcb6201b5b3c45a0976dcda5e2dea8aejiwm" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" From 5bd95fb3180c8d619d4e9e3fd35cefeecb7cab0e 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, 25 Mar 2020 14:10:45 +0800 Subject: [PATCH 052/158] =?UTF-8?q?=E9=97=A8=E5=BA=97=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0=E7=9A=84appidkey=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 9a523439c..b796cc7e3 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -13,6 +13,8 @@ import ( "time" "unicode/utf8" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" + "git.rosy.net.cn/jx-callback/globals/refutil" "github.com/360EntSecGroup-Skylar/excelize" @@ -1129,6 +1131,11 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend } } else if vendorID == model.VendorIDJX { ReCalculateJxPriceLight(db, ctx, storeID) + } else if vendorID == model.VendorIDYB { + err = checkAppIDAndAppKey(db, storeMap, storeID) + if err != nil { + return nil, err + } } if err == nil { dao.WrapAddIDCULDEntity(storeMap, userName) @@ -2869,3 +2876,42 @@ func DeletePrinterSeq(ctx *jxcontext.Context, storeIDs []int) (err error) { } return err } + +func checkAppIDAndAppKey(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err error) { + var ( + appID = storeMap.YbAppID + appKey = storeMap.YbAppKey + ) + if appID == "" { + return fmt.Errorf("绑定银豹平台必须输入appID!") + } + if appKey == "" { + return fmt.Errorf("绑定银豹平台必须输入appKey!") + } + _, err = api.YinBaoAPI.QueryProductByBarcode("") + if err != nil { + if errCode, ok := err.(*utils.ErrorWithCode); ok { + if errCode.Code() == yinbaoapi.AppIDErrCode { + return fmt.Errorf("请输入正确的银豹appID!,[%v]", appID) + } + if errCode.Code() == yinbaoapi.AppKeyErrCode { + return fmt.Errorf("请输入正确的银豹appKey!,[%v]", appKey) + } + } + } + storeMaps, err := dao.GetStoresMapList2(db, []int{model.VendorIDYB}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", false) + if err != nil { + return err + } + if len(storeMaps) > 0 { + for _, v := range storeMaps { + if v.YbAppID == appID { + return fmt.Errorf("appID和已有店铺重复![%v]", v.StoreName) + } + if v.YbAppKey == appKey { + return fmt.Errorf("appKey和已有店铺重复![%v]", v.StoreName) + } + } + } + return err +} From 210366428ad709398365dc947ee71d15760c1408 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, 25 Mar 2020 14:17:13 +0800 Subject: [PATCH 053/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index b796cc7e3..e27766a49 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2888,6 +2888,7 @@ func checkAppIDAndAppKey(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) ( if appKey == "" { return fmt.Errorf("绑定银豹平台必须输入appKey!") } + api.YinBaoAPI = yinbaoapi.New(appKey, appID) _, err = api.YinBaoAPI.QueryProductByBarcode("") if err != nil { if errCode, ok := err.(*utils.ErrorWithCode); ok { From a2dd19a58515fe08e9b22ffd0d11df118fc4bd3a 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, 25 Mar 2020 14:21:21 +0800 Subject: [PATCH 054/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index e27766a49..343eb29c3 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2907,10 +2907,10 @@ func checkAppIDAndAppKey(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) ( if len(storeMaps) > 0 { for _, v := range storeMaps { if v.YbAppID == appID { - return fmt.Errorf("appID和已有店铺重复![%v]", v.StoreName) + return fmt.Errorf("appID和已有店铺重复![%v]", v.StoreID) } if v.YbAppKey == appKey { - return fmt.Errorf("appKey和已有店铺重复![%v]", v.StoreName) + return fmt.Errorf("appKey和已有店铺重复![%v]", v.StoreID) } } } From dadeb3b9960ad2b49e7e9d885d1808305ac573bc 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, 25 Mar 2020 14:32:32 +0800 Subject: [PATCH 055/158] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=89=93=E9=94=99?= =?UTF-8?q?=E4=BA=86yybid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 +- business/partner/purchase/yb/store_sku.go | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 97b3ed606..51ad9c119 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -212,7 +212,7 @@ type StoreSkuExt struct { JdID string `orm:"column(sku_jd_id);null;index" json:"jdID"` EbaiID string `orm:"column(ebai_id);index" json:"ebaiID"` MtwmID string `orm:"column(mtwm_id)" json:"mtwmID"` // 这个也不是必须的,只是为了DAO取数据语句一致 - YbID string `orm:"column(yb_id);index" json:"YybID"` + YbID string `orm:"column(yb_id);index" json:"ybID"` JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"` diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 38630c120..15ce15fd3 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -187,7 +187,11 @@ 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.EnableYbStoreWrite { - + vendorOrgCode, err := buildYbConfigs(storeID) + if err != nil { + return err + } + err = api.YinBaoAPI.UpdateCategory(vendorOrgCode, storeCat.VendorCatID, storeCat.Name, storeCat.ParentCatName) } return err } From d4604a6392383eb532a05efeef0bc12ea815d8bd 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, 25 Mar 2020 14:39:48 +0800 Subject: [PATCH 056/158] =?UTF-8?q?getstoresskus=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=93=B6=E8=B1=B9=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 6 +++--- business/partner/purchase/yb/store_sku.go | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 9b07121fb..9fd93020b 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -527,9 +527,9 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at, t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at, t4.ebai_id, t4.mtwm_id, - t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, - t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, - t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.jx_lock_time, + t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.yb_sync_status, + t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, t4.yb_price, + t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.jx_lock_time, t4.yb_lock_time, t4.status_sale_begin, t4.status_sale_end, t6.mid_unit_price real_mid_unit_price ` + sql diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 15ce15fd3..706ffbe7e 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -211,6 +211,10 @@ func (p *PurchaseHandler) IsErrCategoryExist(err error) (isExist bool) { return yinbaoapi.IsErrCategoryExist(err) } +func (p *PurchaseHandler) IsErrCategoryNotExist(err error) (isNotExist bool) { + return ebaiapi.IsErrCategoryNotExist(err) +} + func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { return 1 } From 0ebbeecf100c4c05d9dc0144427b49cdaadf34d5 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, 25 Mar 2020 14:42:25 +0800 Subject: [PATCH 057/158] bug --- business/partner/purchase/yb/store_sku.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 706ffbe7e..93fc7d673 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -198,7 +198,11 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if globals.EnableYbStoreWrite { - + vendorOrgCode, err := buildYbConfigs(storeID) + if err != nil { + return err + } + err = api.YinBaoAPI.DeleteCategory(vendorOrgCode, []string{vendorCatID}) } return err } @@ -212,7 +216,7 @@ func (p *PurchaseHandler) IsErrCategoryExist(err error) (isExist bool) { } func (p *PurchaseHandler) IsErrCategoryNotExist(err error) (isNotExist bool) { - return ebaiapi.IsErrCategoryNotExist(err) + return false } func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { From 67ea4af90520e70a15d993de6f99670e3b7b312b 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, 25 Mar 2020 14:51:24 +0800 Subject: [PATCH 058/158] =?UTF-8?q?getstotskus=E9=93=B6=E8=B1=B9id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 9fd93020b..ed12e1386 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -526,7 +526,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i t2.comment, t2.category_id sku_category_id, t2.status sku_status, t2.eclp_id, t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at, t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at, - t4.ebai_id, t4.mtwm_id, + t4.ebai_id, t4.mtwm_id, t4.yb_id, t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.yb_sync_status, t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, t4.yb_price, t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.jx_lock_time, t4.yb_lock_time, From 2317a826b850a893260257108c1d1f438532a2f8 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, 25 Mar 2020 14:56:10 +0800 Subject: [PATCH 059/158] =?UTF-8?q?=E6=95=8F=E6=84=9F=E8=AF=8D=E9=93=B6?= =?UTF-8?q?=E8=B1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 93fc7d673..0d71f8068 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -2,6 +2,7 @@ package yb import ( "fmt" + "regexp" "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" @@ -16,6 +17,10 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) +const ( + sensitiveWordRegexp = regexp.MustCompile(`商品名称中含有敏感词(\[.*\])`) +) + func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { storeSku := storeSkuList[0] @@ -223,6 +228,10 @@ func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { return 1 } +func (p *PurchaseHandler) GetSensitiveWordRegexp() *regexp.Regexp { + return sensitiveWordRegexp +} + func ybSkuStatus2Jx(ybStatus int) (jxSkuStatus int) { if ybStatus == yinbaoapi.SkuStatusEnable { jxSkuStatus = model.SkuStatusNormal From a0a24b9ebb458093631229d9cda6d3813be3f962 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, 25 Mar 2020 14:57:30 +0800 Subject: [PATCH 060/158] =?UTF-8?q?=E6=95=8F=E6=84=9F=E8=AF=8D=E9=93=B6?= =?UTF-8?q?=E8=B1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 0d71f8068..307a88940 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -17,7 +17,7 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) -const ( +var ( sensitiveWordRegexp = regexp.MustCompile(`商品名称中含有敏感词(\[.*\])`) ) From e7af17eb97e840ae3f68932df163fc1fc4991b35 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, 25 Mar 2020 18:12:52 +0800 Subject: [PATCH 061/158] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 307a88940..e9f5a3369 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -31,6 +31,9 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v } else { storeSku.VendorSkuID = utils.Int64ToStr(result.UID) } + fmt.Println("test1", failedList) + fmt.Println("test2", err) + fmt.Println("test3", utils.Format4Output(storeSku, false)) } return failedList, err } From 9d22cb9e40fff47868b84df18c75c77d416155ec 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, 25 Mar 2020 18:19:16 +0800 Subject: [PATCH 062/158] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index e9f5a3369..2ca914b39 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -29,11 +29,11 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { + fmt.Println("test1", result) + fmt.Println("test2", err) + fmt.Println("test3", utils.Format4Output(storeSku, false)) storeSku.VendorSkuID = utils.Int64ToStr(result.UID) } - fmt.Println("test1", failedList) - fmt.Println("test2", err) - fmt.Println("test3", utils.Format4Output(storeSku, false)) } return failedList, err } From a6f41d61aac6e1a09c79937e4d2baab75ebf8d43 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, 25 Mar 2020 18:22:34 +0800 Subject: [PATCH 063/158] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 2ca914b39..a9a2fe317 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -26,12 +26,12 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v storeSku := storeSkuList[0] buildYbConfigs(storeID) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + fmt.Println("test1", result) + fmt.Println("test2", err) + fmt.Println("test3", utils.Format4Output(storeSku, false)) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { - fmt.Println("test1", result) - fmt.Println("test2", err) - fmt.Println("test3", utils.Format4Output(storeSku, false)) storeSku.VendorSkuID = utils.Int64ToStr(result.UID) } } From 30b256ddcc5c9735ff3aff849c30ca7467135b84 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, 25 Mar 2020 18:28:29 +0800 Subject: [PATCH 064/158] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index a9a2fe317..307a88940 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -26,9 +26,6 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v storeSku := storeSkuList[0] buildYbConfigs(storeID) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) - fmt.Println("test1", result) - fmt.Println("test2", err) - fmt.Println("test3", utils.Format4Output(storeSku, false)) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { From cc0994f3279b94ed7a5c8185610146cb0aef4a61 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, 26 Mar 2020 08:58:48 +0800 Subject: [PATCH 065/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=85=B3=E6=B3=A8=E6=89=93=E4=B8=8A=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 1 + business/model/model.go | 1 + 2 files changed, 2 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index ed12e1386..923f60315 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1119,6 +1119,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs model.FieldJdSyncStatus: model.SyncFlagDeletedMask, model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask, model.FieldMtwmSyncStatus: model.SyncFlagDeletedMask, + model.FieldYbSyncStatus: model.SyncFlagDeletedMask, }, userName, nil); err != nil { dao.Rollback(db) return nil, err diff --git a/business/model/model.go b/business/model/model.go index 584c5bf01..569b7fe41 100644 --- a/business/model/model.go +++ b/business/model/model.go @@ -18,6 +18,7 @@ const ( FieldEbaiSyncStatus = "EbaiSyncStatus" FieldMtwmSyncStatus = "MtwmSyncStatus" // FieldWscSyncStatus = "WscSyncStatus" + FieldYbSyncStatus = "YbSyncStatus" FieldVendorID = "VendorID" FieldStoreID = "StoreID" From e52b87312c9c501c91dac40f47bb3bb49bf3c759 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, 26 Mar 2020 09:06:50 +0800 Subject: [PATCH 066/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=95=86=E5=93=81=E9=83=A8=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 307a88940..d75a0ec42 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -232,6 +232,10 @@ func (p *PurchaseHandler) GetSensitiveWordRegexp() *regexp.Regexp { return sensitiveWordRegexp } +func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) { + return yinbaoapi.IsErrSkuNotExist(err) +} + func ybSkuStatus2Jx(ybStatus int) (jxSkuStatus int) { if ybStatus == yinbaoapi.SkuStatusEnable { jxSkuStatus = model.SkuStatusNormal From 615e6abbae4670dbee30fabe83690dcc076fcef2 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, 26 Mar 2020 09:18:21 +0800 Subject: [PATCH 067/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 430f6884f..90f1d2a0a 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -123,6 +123,7 @@ var ( mtpsStoreToken string jd2StorePageCookie string JdStorePageCookie string + yinbaoCookie string ) func GetImportantTaskID(taskName string) string { @@ -247,6 +248,9 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "jd2StorePageCookie", model.ConfigTypeCookie, ""); err == nil { jd2StorePageCookie = configs[0].Value } + if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookie = configs[0].Value + } if globals.Jd2OrgCode != "" { api.Jd2API.SetJdCookie(jd2StorePageCookie) } @@ -261,6 +265,7 @@ func Init() { api.JdAPI.SetJdCookie(JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) } func syncStoreSku() { From 1afb9ef1a3d5ded4822eb88da9d7abd1972b3505 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, 26 Mar 2020 09:31:23 +0800 Subject: [PATCH 068/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 26 ++++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index d75a0ec42..a2996d250 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -165,7 +165,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg } func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*partner.BareCategoryInfo, err error) { - vendorOrgCode, err := buildYbConfigs(storeID) + vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return nil, err } @@ -178,7 +178,7 @@ func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { - vendorOrgCode, err := buildYbConfigs(storeID) + vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err } @@ -192,7 +192,7 @@ 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.EnableYbStoreWrite { - vendorOrgCode, err := buildYbConfigs(storeID) + vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err } @@ -203,7 +203,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if globals.EnableYbStoreWrite { - vendorOrgCode, err := buildYbConfigs(storeID) + vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err } @@ -328,7 +328,19 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi return productInfoParam } -func buildYbConfigs(storeID int) (vendorOrgCode string, err error) { +func buildYbConfigs(storeID int) (err error) { + if storeID == 0 { + return fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) + } + store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) + if err != nil { + return err + } + api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) + return err +} + +func getVendorOrgCode(storeID int) (vendorOrgCode string, err error) { if storeID == 0 { return "", fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) } @@ -336,9 +348,7 @@ func buildYbConfigs(storeID int) (vendorOrgCode string, err error) { if err != nil { return "", err } - api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) - vendorOrgCode = store.VendorOrgCode - return vendorOrgCode, err + return store.VendorOrgCode, err } func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) (cats []*partner.BareCategoryInfo) { From f6935aa38340306556f4f95d783c868411ca6bca 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, 26 Mar 2020 09:47:00 +0800 Subject: [PATCH 069/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=E8=BF=87=E6=BB=A4emoji?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index a2996d250..f258ff803 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -182,7 +182,11 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in if err != nil { return err } - vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorOrgCode, storeCat.Name, storeCat.ParentCatName) + var ( + catName = utils.FilterEmoji(storeCat.Name) + parentCatName = utils.FilterEmoji(storeCat.ParentCatName) + ) + vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorOrgCode, catName, parentCatName) if err == nil { storeCat.VendorCatID = vendorCatID } @@ -196,7 +200,11 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in if err != nil { return err } - err = api.YinBaoAPI.UpdateCategory(vendorOrgCode, storeCat.VendorCatID, storeCat.Name, storeCat.ParentCatName) + var ( + catName = utils.FilterEmoji(storeCat.Name) + parentCatName = utils.FilterEmoji(storeCat.ParentCatName) + ) + err = api.YinBaoAPI.UpdateCategory(vendorOrgCode, storeCat.VendorCatID, catName, parentCatName) } return err } From 391630d33bf4612bff29e51e4fc89876f086c974 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, 26 Mar 2020 10:22:18 +0800 Subject: [PATCH 070/158] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0vendorstoreid=20=E9=93=B6=E8=B1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 343eb29c3..c2ce3b835 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1132,7 +1132,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend } else if vendorID == model.VendorIDJX { ReCalculateJxPriceLight(db, ctx, storeID) } else if vendorID == model.VendorIDYB { - err = checkAppIDAndAppKey(db, storeMap, storeID) + err = checkYbParams(db, storeMap, storeID) if err != nil { return nil, err } @@ -2877,10 +2877,11 @@ func DeletePrinterSeq(ctx *jxcontext.Context, storeIDs []int) (err error) { return err } -func checkAppIDAndAppKey(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err error) { +func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err error) { var ( - appID = storeMap.YbAppID - appKey = storeMap.YbAppKey + appID = storeMap.YbAppID + appKey = storeMap.YbAppKey + yinbaoCookie string ) if appID == "" { return fmt.Errorf("绑定银豹平台必须输入appID!") @@ -2901,9 +2902,6 @@ func checkAppIDAndAppKey(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) ( } } storeMaps, err := dao.GetStoresMapList2(db, []int{model.VendorIDYB}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", false) - if err != nil { - return err - } if len(storeMaps) > 0 { for _, v := range storeMaps { if v.YbAppID == appID { @@ -2914,5 +2912,22 @@ func checkAppIDAndAppKey(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) ( } } } + stores, err := dao.GetStoreList(db, []int{storeID}, nil, nil, nil, "") + if len(stores) > 0 { + if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookie = configs[0].Value + } + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) + result, err := api.YinBaoAPI.LoadSubStoresByUserIdDDLJson() + if err != nil { + return err + } + for _, v := range result { + if v.Company == stores[0].Name { + storeMap.VendorStoreID = utils.Int2Str(v.ID) + break + } + } + } return err } From 1bba3f71c349af7e19787b23388381b5a1cacae7 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, 26 Mar 2020 10:32:58 +0800 Subject: [PATCH 071/158] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=A2=9E=E5=8A=A0=E9=97=A8=E5=BA=97=E5=89=8D?= =?UTF-8?q?=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 7 +++++++ business/model/store.go | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index c2ce3b835..e00a4d962 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2882,6 +2882,7 @@ func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err er appID = storeMap.YbAppID appKey = storeMap.YbAppKey yinbaoCookie string + storeMap2 *model.StoreMap ) if appID == "" { return fmt.Errorf("绑定银豹平台必须输入appID!") @@ -2929,5 +2930,11 @@ func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err er } } } + sql := "SELECT * FROM store_map WHERE vendor_id = ? and deleted_at = ? ORDER BY yb_store_prefix DESC LIMIT 1" + sqlParams := []interface{}{model.VendorIDYB, utils.DefaultTimeValue} + err = dao.GetRow(db, &storeMap2, sql, sqlParams) + if err == nil { + storeMap.YbStorePrefix = utils.Int64ToStr(utils.Str2Int64(storeMap2.YbStorePrefix) + 1) + } return err } diff --git a/business/model/store.go b/business/model/store.go index 9f68a71c3..0655c2ea9 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -423,8 +423,9 @@ type StoreMap struct { IsOrder int `orm:"default(0)" json:"isOrder"` //是否是下预订单门店 - YbAppID string `orm:"column(yb_app_id);size(255)" json:"ybAppID"` - YbAppKey string `orm:"size(255)" json:"ybAppKey"` + YbAppID string `orm:"column(yb_app_id);size(255)" json:"ybAppID"` + YbAppKey string `orm:"size(255)" json:"ybAppKey"` + YbStorePrefix string `orm:"size(255)" json:"ybStorePrefix"` } func (*StoreMap) TableUnique() [][]string { From d0d11da787b29d0feffc75064cfee2fc2de74719 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, 26 Mar 2020 10:45:11 +0800 Subject: [PATCH 072/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=88=A4=E6=96=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index e00a4d962..2a5f0a965 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2923,18 +2923,28 @@ func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err er if err != nil { return err } + flag := false for _, v := range result { if v.Company == stores[0].Name { storeMap.VendorStoreID = utils.Int2Str(v.ID) + flag = true break } } + if flag { + return fmt.Errorf("未在平台上找到该门店,请确保京西门店名和银豹门店名相同!") + } } sql := "SELECT * FROM store_map WHERE vendor_id = ? and deleted_at = ? ORDER BY yb_store_prefix DESC LIMIT 1" sqlParams := []interface{}{model.VendorIDYB, utils.DefaultTimeValue} err = dao.GetRow(db, &storeMap2, sql, sqlParams) if err == nil { - storeMap.YbStorePrefix = utils.Int64ToStr(utils.Str2Int64(storeMap2.YbStorePrefix) + 1) + prefix := utils.Int64ToStr(utils.Str2Int64(storeMap2.YbStorePrefix) + 1) + realPrefix := prefix + for i := 0; i < 3-len(prefix); i++ { + realPrefix = "0" + realPrefix + } + storeMap.YbStorePrefix = realPrefix } return err } From ae057cecf2f01ac011dd172b7545a475fe763494 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, 26 Mar 2020 10:47:59 +0800 Subject: [PATCH 073/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=88=A4=E6=96=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 2a5f0a965..ce4ea83e4 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2931,7 +2931,7 @@ func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err er break } } - if flag { + if !flag { return fmt.Errorf("未在平台上找到该门店,请确保京西门店名和银豹门店名相同!") } } From 1c09d2724782c4128d84b50de569b058a6f1174d 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, 26 Mar 2020 11:19:23 +0800 Subject: [PATCH 074/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=90=8E=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- business/model/dao/store_sku.go | 9 +++++---- business/model/sku.go | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 923f60315..5c1ba3914 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -526,7 +526,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i t2.comment, t2.category_id sku_category_id, t2.status sku_status, t2.eclp_id, t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at, t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at, - t4.ebai_id, t4.mtwm_id, t4.yb_id, + t4.ebai_id, t4.mtwm_id, t4.yb_id, CONCAT(sm.yb_store_prefix,t1.yb_name_suffix) yb_sku_name, t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.yb_sync_status, t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, t4.yb_price, t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.jx_lock_time, t4.yb_lock_time, diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 51ad9c119..ee371e3b2 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -145,10 +145,11 @@ type StoreSkuNameExt struct { Skus []*StoreSkuExt `orm:"-" json:"skus,omitempty"` SkusStr string `json:"-"` - PendingOpType int8 `json:"pendingOpType"` // 取值同 StoreOpRequest.Type - PendingUnitPrice int `json:"pendingUnitPrice"` // 这个是待审核的价格申请 - RealMidUnitPrice int `json:"realMidUnitPrice"` - Count int `json:"count"` + PendingOpType int8 `json:"pendingOpType"` // 取值同 StoreOpRequest.Type + PendingUnitPrice int `json:"pendingUnitPrice"` // 这个是待审核的价格申请 + RealMidUnitPrice int `json:"realMidUnitPrice"` + Count int `json:"count"` + YbSkuName string `json:"ybSkuName"` } // GetStoreSkus用 diff --git a/business/model/sku.go b/business/model/sku.go index d24bf4295..40055c4d0 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -201,6 +201,7 @@ type SkuName struct { // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` // LinkID int `orm:"column(link_id);null;index" json:"linkID"` + YbNameSuffix string `json:"ybSkuSuffix"` //银豹商品后缀 } func (*SkuName) TableUnique() [][]string { From b2cf59c2dade0ac04da3743ca2068abfcdf48852 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, 26 Mar 2020 11:26:02 +0800 Subject: [PATCH 075/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=90=8E=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 +++- business/model/sku.go | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 5c1ba3914..d57b16fc0 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -244,6 +244,7 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool JOIN sku t2 FORCE INDEX(PRIMARY) ON t1.id = t2.name_id AND t2.deleted_at = ?/* AND t2.status = ?*/ JOIN store t3 ON t3.deleted_at = ? LEFT JOIN store_map sm ON sm.store_id = t3.id AND sm.vendor_id = ? AND sm.deleted_at = ? + LEFT JOIN store_map smm On smm.store_id = t3.id AND smm.deleted_at = ? AND smm.vendor_id = ? LEFT JOIN thing_map t2m ON t2m.thing_type = ? AND t2m.thing_id = t2.id AND t2m.vendor_id = sm.vendor_id AND t2m.vendor_org_code = sm.vendor_org_code AND t2m.deleted_at = ? ` sqlParams = []interface{}{ @@ -251,6 +252,7 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool // model.SkuStatusNormal, utils.DefaultTimeValue, model.VendorIDJD, utils.DefaultTimeValue, // TODO 这里直接用JD有问题 + utils.DefaultTimeValue, model.VendorIDYB, model.ThingTypeSku, utils.DefaultTimeValue, } if isFocus { @@ -526,7 +528,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i t2.comment, t2.category_id sku_category_id, t2.status sku_status, t2.eclp_id, t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at, t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at, - t4.ebai_id, t4.mtwm_id, t4.yb_id, CONCAT(sm.yb_store_prefix,t1.yb_name_suffix) yb_sku_name, + t4.ebai_id, t4.mtwm_id, t4.yb_id, CONCAT(smm.yb_store_prefix,t1.yb_name_suffix) yb_sku_name, t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.yb_sync_status, t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, t4.yb_price, t4.jd_lock_time, t4.ebai_lock_time, t4.mtwm_lock_time, t4.jx_lock_time, t4.yb_lock_time, diff --git a/business/model/sku.go b/business/model/sku.go index 40055c4d0..c718fb8bd 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -201,7 +201,7 @@ type SkuName struct { // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` // LinkID int `orm:"column(link_id);null;index" json:"linkID"` - YbNameSuffix string `json:"ybSkuSuffix"` //银豹商品后缀 + YbNameSuffix string `json:"ybNameSuffix"` //银豹商品后缀 } func (*SkuName) TableUnique() [][]string { From ea81d08bf364e029791885a862f53dd2648ee783 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, 26 Mar 2020 11:31:18 +0800 Subject: [PATCH 076/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=BA=93=E5=90=8E=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 3dcd5ed87..794935bff 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -561,7 +561,8 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma t1.upc, t1.ex_prefix, t1.ex_prefix_begin, - t1.ex_prefix_end` + t1.ex_prefix_end, + t1.yb_name_suffix` if isBySku { sql += `, t2.id` @@ -595,6 +596,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma t1.ex_prefix, t1.ex_prefix_begin, t1.ex_prefix_end, + t1.yb_name_suffix, CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status, ',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"), '","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit, From 9ff9987efd325801a650deeb9c0116057335d4d7 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, 26 Mar 2020 11:41:29 +0800 Subject: [PATCH 077/158] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index d57b16fc0..fcf56fe63 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -244,7 +244,7 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool JOIN sku t2 FORCE INDEX(PRIMARY) ON t1.id = t2.name_id AND t2.deleted_at = ?/* AND t2.status = ?*/ JOIN store t3 ON t3.deleted_at = ? LEFT JOIN store_map sm ON sm.store_id = t3.id AND sm.vendor_id = ? AND sm.deleted_at = ? - LEFT JOIN store_map smm On smm.store_id = t3.id AND smm.deleted_at = ? AND smm.vendor_id = ? + LEFT JOIN store_map smm ON smm.store_id = t3.id AND smm.deleted_at = ? AND smm.vendor_id = ? LEFT JOIN thing_map t2m ON t2m.thing_type = ? AND t2m.thing_id = t2.id AND t2m.vendor_id = sm.vendor_id AND t2m.vendor_org_code = sm.vendor_org_code AND t2m.deleted_at = ? ` sqlParams = []interface{}{ @@ -540,6 +540,8 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i } var tmpList []*tGetStoresSkusInfo beginTime := time.Now() + fmt.Println(sql) + fmt.Println(sqlParams) if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { dao.Rollback(db) return nil, err From b23e5e1fc1430d12bdb233ba2631befca79dfec5 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, 26 Mar 2020 11:48:00 +0800 Subject: [PATCH 078/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index fcf56fe63..8610a01f8 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -124,6 +124,7 @@ type tGetStoresSkusInfo struct { PayPercentage int `json:"-"` dao.StoreSkuExt RealMidUnitPrice int `json:"realMidUnitPrice"` //真实的该商品的全国中位价 + YbSkuName string } type SheetParam struct { @@ -540,8 +541,6 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i } var tmpList []*tGetStoresSkusInfo beginTime := time.Now() - fmt.Println(sql) - fmt.Println(sqlParams) if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { dao.Rollback(db) return nil, err @@ -563,6 +562,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i UnitPrice: v.UnitPrice, PayPercentage: v.PayPercentage, RealMidUnitPrice: v.RealMidUnitPrice, + YbSkuName: v.YbSkuName, } if !isBySku { storeNameMap[index] = storeName From 01a6bee5450abb435c5fcd5c27595aea0cf6d781 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, 26 Mar 2020 14:07:35 +0800 Subject: [PATCH 079/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=90=8E=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 794935bff..5be85ee07 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -722,6 +722,20 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s skuNameExt.SpecUnit = skuNameExt.Skus[0].SpecUnit } + if skuNameExt.YbNameSuffix == "" { + var name *model.SkuName + sql := "SELECT * FROM sku_name WHERE yb_name_suffix <> '' ORDER BY yb_name_suffix DESC LIMIT 1" + dao.GetRow(db, &name, sql, nil) + if name != nil { + // prefix := utils.Int64ToStr(utils.Str2Int64(storeMap2.YbStorePrefix) + 1) + // realPrefix := prefix + // for i := 0; i < 3-len(prefix); i++ { + // realPrefix = "0" + realPrefix + // } + // storeMap.YbStorePrefix = realPrefix + } + } + picType := true for _, imgName := range []string{skuNameExt.Img, skuNameExt.Img2} { if imgName != "" { From 8d565932957814e4a660683870de28d80fd9d618 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, 26 Mar 2020 14:16:24 +0800 Subject: [PATCH 080/158] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E9=93=B6=E8=B1=B9name=E5=90=8E=E7=BC=80=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 5be85ee07..64c27b571 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -727,12 +727,12 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s sql := "SELECT * FROM sku_name WHERE yb_name_suffix <> '' ORDER BY yb_name_suffix DESC LIMIT 1" dao.GetRow(db, &name, sql, nil) if name != nil { - // prefix := utils.Int64ToStr(utils.Str2Int64(storeMap2.YbStorePrefix) + 1) - // realPrefix := prefix - // for i := 0; i < 3-len(prefix); i++ { - // realPrefix = "0" + realPrefix - // } - // storeMap.YbStorePrefix = realPrefix + prefix := utils.Int64ToStr(utils.Str2Int64(name.YbNameSuffix) + 1) + realPrefix := prefix + for i := 0; i < 4-len(prefix); i++ { + realPrefix = "0" + realPrefix + } + skuNameExt.YbNameSuffix = realPrefix } } From d17a1e296a92613ccc2e246250d96a290734269c 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, 26 Mar 2020 14:46:50 +0800 Subject: [PATCH 081/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF=E8=BF=94=E5=9B=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 458997a37..6b8f40c12 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -104,9 +104,9 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { catInfo.VendorCatID = cat.VendorCatID err = nil - } else if err != nil && !handler.IsErrCategoryExist(err) { - failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "新增分类") } + } else if err != nil && !handler.IsErrCategoryExist(err) { + failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "新增分类") } if err == nil { updateFields = append(updateFields, idFieldName) From 1d84a36459e3a42664d2347063de762d69a8cb1b 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, 26 Mar 2020 14:54:04 +0800 Subject: [PATCH 082/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF=E8=BF=94=E5=9B=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= 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 6b8f40c12..b7145bb73 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -101,11 +101,13 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增 err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo) if err != nil && handler.IsErrCategoryExist(err) { + fmt.Println("test2222222222222222222222222222222222") if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { catInfo.VendorCatID = cat.VendorCatID err = nil } } else if err != nil && !handler.IsErrCategoryExist(err) { + fmt.Println("test11111111111111111111111111111111111111111") failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "新增分类") } if err == nil { From 60dafa8f85a6b6aae402c719615d557accba10c9 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, 26 Mar 2020 14:57:57 +0800 Subject: [PATCH 083/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF=E8=BF=94=E5=9B=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= 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 b7145bb73..812298059 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -100,6 +100,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } } else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增 err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo) + fmt.Println("test33333333333333333333333333333333333", err) if err != nil && handler.IsErrCategoryExist(err) { fmt.Println("test2222222222222222222222222222222222") if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { @@ -110,6 +111,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo fmt.Println("test11111111111111111111111111111111111111111") failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "新增分类") } + fmt.Println("test444444444444444444444444444444444444444444444", err) if err == nil { updateFields = append(updateFields, idFieldName) // if vendorID == model.VendorIDMTWM { From f2b309c0dd42c09ea497e1028907e6c2ace5a556 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, 26 Mar 2020 15:02:01 +0800 Subject: [PATCH 084/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF=E8=BF=94=E5=9B=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 4 ---- business/partner/purchase/yb/store_sku.go | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 812298059..6b8f40c12 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -100,18 +100,14 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } } else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增 err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo) - fmt.Println("test33333333333333333333333333333333333", err) if err != nil && handler.IsErrCategoryExist(err) { - fmt.Println("test2222222222222222222222222222222222") if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { catInfo.VendorCatID = cat.VendorCatID err = nil } } else if err != nil && !handler.IsErrCategoryExist(err) { - fmt.Println("test11111111111111111111111111111111111111111") failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "新增分类") } - fmt.Println("test444444444444444444444444444444444444444444444", err) if err == nil { updateFields = append(updateFields, idFieldName) // if vendorID == model.VendorIDMTWM { diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index f258ff803..ca12021a9 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -190,6 +190,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in if err == nil { storeCat.VendorCatID = vendorCatID } + return err } return err } From d4fc40f3280c63ff8e3643a5b55274153a1664b7 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, 26 Mar 2020 15:35:02 +0800 Subject: [PATCH 085/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 90f1d2a0a..3e54f37f6 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -266,6 +266,7 @@ func Init() { api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) + api.YinBaoAPI.SetCookie("pageOpenCount", utils.Int2Str(api.YinBaoAPI.GetPageCount())) } func syncStoreSku() { From 29b174d352232f5cd648ae19a4a4e16763515e60 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, 26 Mar 2020 15:49:45 +0800 Subject: [PATCH 086/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 1 - business/partner/purchase/yb/store_sku.go | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 3e54f37f6..90f1d2a0a 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -266,7 +266,6 @@ func Init() { api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) - api.YinBaoAPI.SetCookie("pageOpenCount", utils.Int2Str(api.YinBaoAPI.GetPageCount())) } func syncStoreSku() { diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index ca12021a9..f73fd65c6 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -178,6 +178,7 @@ func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { + api.YinBaoAPI.SetCookie("pageOpenCount", utils.Int2Str(api.YinBaoAPI.GetPageCount())) vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err From f51cb4d8189d92ec05d8106ce362548b7ed2ab60 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, 26 Mar 2020 15:50:16 +0800 Subject: [PATCH 087/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index f73fd65c6..7784cac7a 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -179,6 +179,7 @@ func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { api.YinBaoAPI.SetCookie("pageOpenCount", utils.Int2Str(api.YinBaoAPI.GetPageCount())) + fmt.Println("test11111111111111111111111111111111111111", api.YinBaoAPI.GetPageCount()) vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err From d81fce30afd5cc1097028b8dafb99e862187703a 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, 26 Mar 2020 16:00:54 +0800 Subject: [PATCH 088/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 7784cac7a..0a307e539 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -180,6 +180,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in if globals.EnableYbStoreWrite { api.YinBaoAPI.SetCookie("pageOpenCount", utils.Int2Str(api.YinBaoAPI.GetPageCount())) fmt.Println("test11111111111111111111111111111111111111", api.YinBaoAPI.GetPageCount()) + fmt.Println("test11111111111111111111111111111111111111", api.YinBaoAPI.GetCookie(".POSPALAUTH30220")) vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err From b6ee19a92fbb37db486ca7e0e2852aeba0cacdd0 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, 26 Mar 2020 16:56:48 +0800 Subject: [PATCH 089/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 5 +---- business/partner/purchase/yb/store_sku.go | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 90f1d2a0a..c94fad6c2 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -248,9 +248,7 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "jd2StorePageCookie", model.ConfigTypeCookie, ""); err == nil { jd2StorePageCookie = configs[0].Value } - if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { - yinbaoCookie = configs[0].Value - } + if globals.Jd2OrgCode != "" { api.Jd2API.SetJdCookie(jd2StorePageCookie) } @@ -265,7 +263,6 @@ func Init() { api.JdAPI.SetJdCookie(JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) - api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) } func syncStoreSku() { diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 0a307e539..57e10c78e 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -4,6 +4,8 @@ import ( "fmt" "regexp" + "git.rosy.net.cn/jx-callback/business/jxstore/cms" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -178,9 +180,7 @@ func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { - api.YinBaoAPI.SetCookie("pageOpenCount", utils.Int2Str(api.YinBaoAPI.GetPageCount())) - fmt.Println("test11111111111111111111111111111111111111", api.YinBaoAPI.GetPageCount()) - fmt.Println("test11111111111111111111111111111111111111", api.YinBaoAPI.GetCookie(".POSPALAUTH30220")) + buildYbApiCookie(ctx) vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err @@ -198,8 +198,22 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in return err } +func buildYbApiCookie(ctx *jxcontext.Context) { + yinbaoCookiePageCount := "" + if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookie := configs[0].Value + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) + if configs2, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookiePageCount", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookiePageCount = configs2[0].Value + api.YinBaoAPI.SetCookie("pageOpenCount", yinbaoCookiePageCount) + } + } + cms.UpdateConfig(ctx, "yinbaoCookiePageCount", "Cookie", utils.Int64ToStr(utils.Str2Int64(yinbaoCookiePageCount)+1)) +} + func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { + buildYbApiCookie(ctx) vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err @@ -215,6 +229,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if globals.EnableYbStoreWrite { + buildYbApiCookie(ctx) vendorOrgCode, err := getVendorOrgCode(storeID) if err != nil { return err From d020f6b0a4f3ef49ccf28e68fb48dfb6303d9bf6 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, 26 Mar 2020 17:02:55 +0800 Subject: [PATCH 090/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 57e10c78e..f7336e0c2 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -189,6 +189,8 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in catName = utils.FilterEmoji(storeCat.Name) parentCatName = utils.FilterEmoji(storeCat.ParentCatName) ) + fmt.Println("test1111111111111111111111", api.YinBaoAPI.GetCookie(".POSPALAUTH30220")) + fmt.Println("test22222222222222222222", api.YinBaoAPI.GetCookie("pageOpenCount")) vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorOrgCode, catName, parentCatName) if err == nil { storeCat.VendorCatID = vendorCatID From b4759c91544664638c84151d54eefe991cc65db4 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, 26 Mar 2020 17:10:20 +0800 Subject: [PATCH 091/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 35 +++-------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index f7336e0c2..2f51b4689 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -167,11 +167,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg } func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*partner.BareCategoryInfo, err error) { - vendorOrgCode, err := getVendorOrgCode(storeID) - if err != nil { - return nil, err - } - remoteCats, err := api.YinBaoAPI.LoadCategorysWithOption(vendorOrgCode) + remoteCats, err := api.YinBaoAPI.LoadCategorysWithOption(vendorStoreID) if err == nil { cats = convertVendorCatList(remoteCats) } @@ -181,17 +177,13 @@ func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { buildYbApiCookie(ctx) - vendorOrgCode, err := getVendorOrgCode(storeID) - if err != nil { - return err - } var ( catName = utils.FilterEmoji(storeCat.Name) parentCatName = utils.FilterEmoji(storeCat.ParentCatName) ) fmt.Println("test1111111111111111111111", api.YinBaoAPI.GetCookie(".POSPALAUTH30220")) fmt.Println("test22222222222222222222", api.YinBaoAPI.GetCookie("pageOpenCount")) - vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorOrgCode, catName, parentCatName) + vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorStoreID, catName, parentCatName) if err == nil { storeCat.VendorCatID = vendorCatID } @@ -216,15 +208,11 @@ func buildYbApiCookie(ctx *jxcontext.Context) { func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { buildYbApiCookie(ctx) - vendorOrgCode, err := getVendorOrgCode(storeID) - if err != nil { - return err - } var ( catName = utils.FilterEmoji(storeCat.Name) parentCatName = utils.FilterEmoji(storeCat.ParentCatName) ) - err = api.YinBaoAPI.UpdateCategory(vendorOrgCode, storeCat.VendorCatID, catName, parentCatName) + err = api.YinBaoAPI.UpdateCategory(vendorStoreID, storeCat.VendorCatID, catName, parentCatName) } return err } @@ -232,11 +220,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if globals.EnableYbStoreWrite { buildYbApiCookie(ctx) - vendorOrgCode, err := getVendorOrgCode(storeID) - if err != nil { - return err - } - err = api.YinBaoAPI.DeleteCategory(vendorOrgCode, []string{vendorCatID}) + err = api.YinBaoAPI.DeleteCategory(vendorStoreID, []string{vendorCatID}) } return err } @@ -369,17 +353,6 @@ func buildYbConfigs(storeID int) (err error) { return err } -func getVendorOrgCode(storeID int) (vendorOrgCode string, err error) { - if storeID == 0 { - return "", fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) - } - store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) - if err != nil { - return "", err - } - return store.VendorOrgCode, err -} - func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) (cats []*partner.BareCategoryInfo) { for _, rCat := range remoteCats { cat := &partner.BareCategoryInfo{ From ce916ba73ae9f63f6a662c78ea5c3f0cd2fd7a6d 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, 26 Mar 2020 17:21:04 +0800 Subject: [PATCH 092/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 ++ business/partner/purchase/yb/store_sku.go | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index ee371e3b2..ccf7ebaba 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -363,6 +363,8 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level in sql += " AND t4.level = ?" sqlParams = append(sqlParams, level) } + fmt.Println(sql) + fmt.Println(sqlParams) if err = GetRows(db, &cats, fmt.Sprintf(sql, fieldPrefixParams...), sqlParams...); err != nil { return nil, err } diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 2f51b4689..9934dcb6b 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -181,8 +181,6 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in catName = utils.FilterEmoji(storeCat.Name) parentCatName = utils.FilterEmoji(storeCat.ParentCatName) ) - fmt.Println("test1111111111111111111111", api.YinBaoAPI.GetCookie(".POSPALAUTH30220")) - fmt.Println("test22222222222222222222", api.YinBaoAPI.GetCookie("pageOpenCount")) vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorStoreID, catName, parentCatName) if err == nil { storeCat.VendorCatID = vendorCatID From 43d61f6906cafa1de7030d9385bb1c90c3749eb4 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, 26 Mar 2020 17:50:18 +0800 Subject: [PATCH 093/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index ccf7ebaba..af51560e4 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -340,7 +340,7 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level in fieldPrefixParams := []interface{}{fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix} if len(skuIDs) > 0 { sql += ` - JOIN ( + LEFT JOIN ( SELECT DISTINCT b.category_id FROM sku a JOIN sku_name b ON a.name_id = b.id AND b.deleted_at = ? From 938bb4bddcc83ef00ca967cc079e2745be56fb11 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, 27 Mar 2020 08:56:06 +0800 Subject: [PATCH 094/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 23 +++++++++++++++++++++++ business/model/dao/store.go | 7 ++++--- business/model/dao/store_sku.go | 6 ++++-- business/partner/purchase/yb/store_sku.go | 9 +++++---- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 6b8f40c12..e2bb3e504 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -498,6 +498,29 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag return skuList } isContinueWhenError2 := true + //如果是银豹平台,则要按照商品skuname维度同步 + var changeList2Yb = func(list1 []*dao.StoreSkuSyncInfo, list2 []*partner.StoreSkuInfo) { + var ( + skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) + ) + for _, v := range list1 { + skuNameMap[v.NameID] = v + } + list1 = list1[:] + for _, v := range skuNameMap { + list1 = append(list1, v) + } + for _, v := range list1 { + v.YbBarCode = storeDetail.YbStorePrefix + v.YbNameSuffix + } + } + if vendorID == model.VendorIDYB { + // createList, updateList []*dao.StoreSkuSyncInfo + // deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo + if len(createList) > 0 { + changeList2Yb(createList, nil) + } + } task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 3bd60a828..2c7f5e606 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -47,8 +47,9 @@ type StoreDetail struct { JdStoreLevel string `json:"jdStoreLevel"` //京东门店等级 IsOrder int `json:"isOrder"` //是否是下预订单门店 - YbAppID string `orm:"column(yb_app_id)" json:"ybAppID"` - YbAppKey string `json:"ybAppKey"` + YbAppID string `orm:"column(yb_app_id)" json:"ybAppID"` + YbAppKey string `json:"ybAppKey"` + YbStorePrefix string `json:"ybStorePrefix"` } // 带快递门店信息的 @@ -92,7 +93,7 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (sto sql := ` SELECT t1.*, t2.vendor_store_id, t2.status vendor_status, t2.delivery_fee_deduction_sill, t2.delivery_fee_deduction_fee, t2.sync_status, t2.vendor_org_code, - t2.price_percentage, t2.auto_pickup, t2.delivery_type, t2.delivery_competition, t2.is_sync, t2.vendor_store_name, t2.is_order, t2.yb_app_id, t2.yb_app_key, + t2.price_percentage, t2.auto_pickup, t2.delivery_type, t2.delivery_competition, t2.is_sync, t2.vendor_store_name, t2.is_order, t2.yb_app_id, t2.yb_app_key, t2.yb_store_prefix, t3.value price_percentage_pack_str, t4.value freight_deduction_pack_str, district.name district_name, diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index af51560e4..556af22f4 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -80,7 +80,9 @@ type StoreSkuSyncInfo struct { IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 NameStatus int SellCities []string - NameCategoryID int `orm:"column(name_category_id)"` + NameCategoryID int `orm:"column(name_category_id)"` + YbNameSuffix string //银豹的商品条码后缀 + YbBarCode string //银豹的商品条码 // 平台相关的图片信息 Img string @@ -394,7 +396,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo %s vendor_sku_id, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end, t2.*, - t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, t3.category_id name_category_id, + t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, t3.category_id name_category_id, t3.yb_name_suffix, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, t13.%s desc_img, diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 9934dcb6b..dd66d78db 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -324,14 +324,15 @@ func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuN func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yinbaoapi.ProductInfoParam) { var ( - buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) / 100 - sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) / 100 + buyPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.Price)) / 100 + sellPrice float64 = utils.Str2Float64(utils.Int64ToStr(storeSku.VendorPrice)) / 100 + _, name, _, _, _, _ = jxutils.SplitSkuName(storeSku.SkuName) ) productInfoParam = &yinbaoapi.ProductInfoParam{} productInfo := &yinbaoapi.ProductInfo{ Stock: utils.Float64ToPointer(utils.Str2Float64(utils.Int2Str(model.MaxStoreSkuStockQty))), - Name: storeSku.SkuName, - Barcode: utils.Int2Str(storeSku.SkuID), + Name: name, + Barcode: storeSku.YbBarCode, BuyPrice: &buyPrice, SellPrice: &sellPrice, } From 4ef3481fe949dbe90c8aff51ec1d694c16bef347 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, 27 Mar 2020 09:07:05 +0800 Subject: [PATCH 095/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 556af22f4..7d4ca4838 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -365,8 +365,6 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level in sql += " AND t4.level = ?" sqlParams = append(sqlParams, level) } - fmt.Println(sql) - fmt.Println(sqlParams) if err = GetRows(db, &cats, fmt.Sprintf(sql, fieldPrefixParams...), sqlParams...); err != nil { return nil, err } From 02af9749679238226146f2f4e7ca47eb50db198b 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, 27 Mar 2020 09:15:31 +0800 Subject: [PATCH 096/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E4=B8=8A?= 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, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index e2bb3e504..4a5747c43 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -506,7 +506,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag for _, v := range list1 { skuNameMap[v.NameID] = v } - list1 = list1[:] + list1 = list1[0:0] for _, v := range skuNameMap { list1 = append(list1, v) } From 4b9ccfb29b6c6b61e78b348d563f9baf8bd42aa8 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, 27 Mar 2020 09:21:17 +0800 Subject: [PATCH 097/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E4=B8=8A?= 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 4a5747c43..cea863a94 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -506,6 +506,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag for _, v := range list1 { skuNameMap[v.NameID] = v } + fmt.Println(utils.Format4Output(skuNameMap, false)) list1 = list1[0:0] for _, v := range skuNameMap { list1 = append(list1, v) @@ -521,6 +522,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag changeList2Yb(createList, nil) } } + fmt.Println(utils.Format4Output(createList, false)) task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) From e9e0ba275d8c8268e3f3ae0fbc3fb203cb8e9fe6 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, 27 Mar 2020 09:34:42 +0800 Subject: [PATCH 098/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E4=B8=8A?= 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, 1 insertion(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index cea863a94..4cc70c14d 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -506,9 +506,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag for _, v := range list1 { skuNameMap[v.NameID] = v } - fmt.Println(utils.Format4Output(skuNameMap, false)) list1 = list1[0:0] for _, v := range skuNameMap { + fmt.Println(utils.Format4Output(v, false)) list1 = append(list1, v) } for _, v := range list1 { @@ -522,7 +522,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag changeList2Yb(createList, nil) } } - fmt.Println(utils.Format4Output(createList, false)) task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) From 1341f559598d758b819361cdddec26a268234837 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, 27 Mar 2020 09:39:25 +0800 Subject: [PATCH 099/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 35 +++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 4cc70c14d..816063bdd 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -499,27 +499,11 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } isContinueWhenError2 := true //如果是银豹平台,则要按照商品skuname维度同步 - var changeList2Yb = func(list1 []*dao.StoreSkuSyncInfo, list2 []*partner.StoreSkuInfo) { - var ( - skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) - ) - for _, v := range list1 { - skuNameMap[v.NameID] = v - } - list1 = list1[0:0] - for _, v := range skuNameMap { - fmt.Println(utils.Format4Output(v, false)) - list1 = append(list1, v) - } - for _, v := range list1 { - v.YbBarCode = storeDetail.YbStorePrefix + v.YbNameSuffix - } - } if vendorID == model.VendorIDYB { // createList, updateList []*dao.StoreSkuSyncInfo // deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo if len(createList) > 0 { - changeList2Yb(createList, nil) + changeList2Yb(createList, nil, storeDetail.YbStorePrefix) } } task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, @@ -1271,3 +1255,20 @@ func FullSyncStoreSkuBindAct(ctx *jxcontext.Context, parentTask tasksch.ITask, h _, err = task.GetResult(0) return err } + +func changeList2Yb(list1 []*dao.StoreSkuSyncInfo, list2 []*partner.StoreSkuInfo, ybStorePrefix string) { + var ( + skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) + ) + for _, v := range list1 { + skuNameMap[v.NameID] = v + } + list1 = list1[0:0] + for _, v := range skuNameMap { + list1 = append(list1, v) + } + for _, v := range list1 { + v.YbBarCode = ybStorePrefix + v.YbNameSuffix + } + fmt.Println(utils.Format4Output(list1, false)) +} From 087bb2683f599b1131e8b0edbb5b67f04def8d87 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, 27 Mar 2020 10:15:44 +0800 Subject: [PATCH 100/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 816063bdd..0b13fd101 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -503,7 +503,19 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag // createList, updateList []*dao.StoreSkuSyncInfo // deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo if len(createList) > 0 { - changeList2Yb(createList, nil, storeDetail.YbStorePrefix) + var ( + skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) + ) + for _, v := range createList { + skuNameMap[v.NameID] = v + } + createList = createList[0:0] + for _, v := range skuNameMap { + createList = append(createList, v) + } + for _, v := range createList { + v.YbBarCode = storeDetail.YbStorePrefix + v.YbNameSuffix + } } } task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, From 15cd8c37718e7925e3e34a216c6c2c7e98394ef9 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, 27 Mar 2020 11:05:01 +0800 Subject: [PATCH 101/158] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=93=B6=E8=B1=B9sku?= =?UTF-8?q?name=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 6 ++--- business/jxstore/cms/sync_store_sku.go | 33 +++++++++++++------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8610a01f8..214bbc176 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3821,7 +3821,7 @@ func RefreshJxPriceByVendor2(ctx *jxcontext.Context, storeIDs []int, vendorID in for _, orgCode := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { outStoreSkuList, _ := mulitStoreSkuHandler.GetStoreSkusBareInfo(ctx, orgCode, task, storeID, storeDetail.VendorStoreID, bareStoreSkuMap[orgCode]) for _, sku := range outStoreSkuList { - price, nameID := getSkuNamePrice(db, sku.SkuID, sku.VendorPrice) + price, nameID := GetSkuNamePrice(db, sku.SkuID, sku.VendorPrice) if skuNameMap[nameID] < price { skuNameMap[nameID] = price } @@ -3841,7 +3841,7 @@ func RefreshJxPriceByVendor2(ctx *jxcontext.Context, storeIDs []int, vendorID in outSkuNameList, _ := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, storeDetail.VendorStoreID, nil) for _, skuName := range outSkuNameList { sku := skuName.SkuList[0] - price, nameID := getSkuNamePrice(db, sku.SkuID, sku.VendorPrice) + price, nameID := GetSkuNamePrice(db, sku.SkuID, sku.VendorPrice) if skuNameMap[nameID] < price { skuNameMap[nameID] = price } @@ -3873,7 +3873,7 @@ func RefreshJxPriceByVendor2(ctx *jxcontext.Context, storeIDs []int, vendorID in return hint, err } -func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nameID int) { +func GetSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nameID int) { var ( specQuality float64 ) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 0b13fd101..ed1d6beaf 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -503,18 +503,14 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag // createList, updateList []*dao.StoreSkuSyncInfo // deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo if len(createList) > 0 { - var ( - skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) - ) - for _, v := range createList { - skuNameMap[v.NameID] = v - } - createList = createList[0:0] - for _, v := range skuNameMap { - createList = append(createList, v) - } + rList1, _ := changeList2Yb(createList, nil) + createList = createList[:] + createList = rList1 for _, v := range createList { v.YbBarCode = storeDetail.YbStorePrefix + v.YbNameSuffix + v.VendorPrice = int64(jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(v.UnitPrice))) + price, _ := GetSkuNamePrice(db, v.SkuID, v.Price) + v.Price = price } } } @@ -1268,19 +1264,22 @@ func FullSyncStoreSkuBindAct(ctx *jxcontext.Context, parentTask tasksch.ITask, h return err } -func changeList2Yb(list1 []*dao.StoreSkuSyncInfo, list2 []*partner.StoreSkuInfo, ybStorePrefix string) { +func changeList2Yb(list1 []*dao.StoreSkuSyncInfo, list2 []*partner.StoreSkuInfo) (rList1 []*dao.StoreSkuSyncInfo, rList2 []*partner.StoreSkuInfo) { var ( - skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) + skuNameMap = make(map[int]*dao.StoreSkuSyncInfo) + skuNameMap2 = make(map[int]*partner.StoreSkuInfo) ) for _, v := range list1 { skuNameMap[v.NameID] = v } - list1 = list1[0:0] for _, v := range skuNameMap { - list1 = append(list1, v) + rList1 = append(rList1, v) } - for _, v := range list1 { - v.YbBarCode = ybStorePrefix + v.YbNameSuffix + for _, v := range list2 { + skuNameMap2[v.NameID] = v } - fmt.Println(utils.Format4Output(list1, false)) + for _, v := range skuNameMap2 { + rList2 = append(rList2, v) + } + return rList1, rList2 } From 9d0d3464e2d8cb8b2dd785b1403e854a81242480 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, 27 Mar 2020 13:31:19 +0800 Subject: [PATCH 102/158] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E6=9C=AA=E5=85=B3=E6=B3=A8=E7=9A=84sku=E7=9A=84ybid=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 10 ++++++++++ business/model/dao/store_sku.go | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index ed1d6beaf..f16fe9d88 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -325,10 +325,20 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn updateItemList[k] = sku2Update(vendorID, v, syncStatus) } num, err = dao.BatchUpdateEntityByKV(db, updateItemList) + if vendorID == model.VendorIDYB { + err = updateYbOhterSku(db, storeSkuList) + } } return num, err } +func updateYbOhterSku(db *dao.DaoDB, storeSkuList []*dao.StoreSkuSyncInfo) (err error) { + for _, v := range storeSkuList { + err = dao.UpdateYbOtherSku(db, v) + } + return err +} + func isSkuLockTimeValid(sku *dao.StoreSkuSyncInfo) bool { return sku.LockTime != nil && time.Now().Sub(*sku.LockTime) < 0 } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 7d4ca4838..9a2a3622c 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1478,3 +1478,22 @@ func GetStoreSkusAndSkuName(db *DaoDB, storeIDs, skuIDs, nameIDs []int) (storeSk err = GetRows(db, &storeSkuAndName, sql, sqlParams...) return storeSkuAndName, err } + +func UpdateYbOtherSku(db *DaoDB, storeSkuSyncInfo *StoreSkuSyncInfo) (err error) { + sql := ` + UPDATE store_sku_bind a + JOIN sku b ON a.sku_id = b.id AND b.name_id = ? + JOIN (SELECT * FROM store_sku_bind WHERE sku_id = ?)c ON c.store_id = a.store_id + SET a.yb_id = c.yb_id,a.yb_sync_status = c.yb_sync_status,a.yb_price = c.yb_price + WHERE a.store_id = ? + AND a.yb_sync_status <> ? + ` + sqlParams := []interface{}{ + storeSkuSyncInfo.NameID, + storeSkuSyncInfo.SkuID, + storeSkuSyncInfo.StoreID, + 0, + } + _, err = ExecuteSQL(db, sql, sqlParams) + return err +} From f7f2e0b515e9c596f0c40d384d40b40977bf2d2f 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, 27 Mar 2020 14:22:11 +0800 Subject: [PATCH 103/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=86=E7=B1=BBID=E4=B9=9F=E5=B8=A6?= =?UTF-8?q?=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index dd66d78db..fe9c7aae6 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -330,11 +330,12 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi ) productInfoParam = &yinbaoapi.ProductInfoParam{} productInfo := &yinbaoapi.ProductInfo{ - Stock: utils.Float64ToPointer(utils.Str2Float64(utils.Int2Str(model.MaxStoreSkuStockQty))), - Name: name, - Barcode: storeSku.YbBarCode, - BuyPrice: &buyPrice, - SellPrice: &sellPrice, + Stock: utils.Float64ToPointer(utils.Str2Float64(utils.Int2Str(model.MaxStoreSkuStockQty))), + Name: name, + Barcode: storeSku.YbBarCode, + BuyPrice: &buyPrice, + SellPrice: &sellPrice, + CategoryUID: storeSku.VendorCatID, } productInfoParam.ProductInfo = productInfo return productInfoParam From 48605c745286cae18353653e9435eef60b10a0e0 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, 27 Mar 2020 14:25:42 +0800 Subject: [PATCH 104/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index fe9c7aae6..6be47c17a 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -335,7 +335,7 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi Barcode: storeSku.YbBarCode, BuyPrice: &buyPrice, SellPrice: &sellPrice, - CategoryUID: storeSku.VendorCatID, + CategoryUID: utils.Str2Int64(storeSku.VendorCatID), } productInfoParam.ProductInfo = productInfo return productInfoParam From acb5d3788852ebd107edd22e0b212ceec2990c07 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, 27 Mar 2020 14:44:53 +0800 Subject: [PATCH 105/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=B0=9D=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 | 3 +++ business/partner/partner_store_sku.go | 1 + 2 files changed, 4 insertions(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index f16fe9d88..8ede6d2d5 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -523,6 +523,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag v.Price = price } } + if len(priceList) > 0 { + fmt.Println(utils.Format4Output(priceList, false)) + } } task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { diff --git a/business/partner/partner_store_sku.go b/business/partner/partner_store_sku.go index a471faeb9..f74fae965 100644 --- a/business/partner/partner_store_sku.go +++ b/business/partner/partner_store_sku.go @@ -49,6 +49,7 @@ type StoreSkuInfo struct { ActPrice int64 `json:"actPrice,omitempty"` VendorActID string `json:"vendorActID,omitempty"` IsSpecialty int `json:"isSpecialty,omitempty"` + Price int `json:"jxPrice,omitempty"` } type StoreSkuInfoWithErr struct { From 095cbbfa1f794705639ebeb57337b1c0bc398a9b 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, 27 Mar 2020 14:46:27 +0800 Subject: [PATCH 106/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=B0=9D=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 | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 8ede6d2d5..0f954a663 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -232,6 +232,7 @@ func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSk Status: inSku.MergedStatus, VendorPrice: inSku.VendorPrice, Seq: inSku.Seq, + Price: int(inSku.Price), } if !isStoreSkuSyncNeedDelete(inSku) { outSku.Stock = model.MaxStoreSkuStockQty From fedb24914493b041f4c12da39c08b056189062b3 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, 27 Mar 2020 14:55:27 +0800 Subject: [PATCH 107/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=B0=9D=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 | 8 +++++++- business/partner/purchase/yb/store_sku.go | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 0f954a663..c952b8b0a 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -232,7 +232,6 @@ func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSk Status: inSku.MergedStatus, VendorPrice: inSku.VendorPrice, Seq: inSku.Seq, - Price: int(inSku.Price), } if !isStoreSkuSyncNeedDelete(inSku) { outSku.Stock = model.MaxStoreSkuStockQty @@ -525,6 +524,13 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } } if len(priceList) > 0 { + _, rList2 := changeList2Yb(nil, priceList) + priceList = priceList[:] + priceList = rList2 + for _, v := range priceList { + price, _ := GetSkuNamePrice(db, v.SkuID, int64(v.Price)) + v.Price = int(price) + } fmt.Println(utils.Format4Output(priceList, false)) } } diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 6be47c17a..19d497a3f 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -138,7 +138,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), SellPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), - BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), + BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.Price)), } err = api.YinBaoAPI.UpdateProductInfo(productInfo) if err != nil { From c539a57c79f98343a354386d928e97c3a92d1783 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, 27 Mar 2020 14:56:53 +0800 Subject: [PATCH 108/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=B0=9D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 19d497a3f..54a857b36 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -138,7 +138,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), SellPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), - BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.Price)), + BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(int64(v.Price))), } err = api.YinBaoAPI.UpdateProductInfo(productInfo) if err != nil { From 46aab83aa6e0088460667b5782e5adf9f00bf80d 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, 27 Mar 2020 15:04:01 +0800 Subject: [PATCH 109/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=B0=9D=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 ++--- business/partner/partner_store_sku.go | 2 +- business/partner/purchase/yb/store_sku.go | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index c952b8b0a..8a7fc1d98 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -528,10 +528,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag priceList = priceList[:] priceList = rList2 for _, v := range priceList { - price, _ := GetSkuNamePrice(db, v.SkuID, int64(v.Price)) - v.Price = int(price) + price, _ := GetSkuNamePrice(db, v.SkuID, int64(v.JxPrice)) + v.JxPrice = int(price) } - fmt.Println(utils.Format4Output(priceList, false)) } } task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, diff --git a/business/partner/partner_store_sku.go b/business/partner/partner_store_sku.go index f74fae965..a0ac1f956 100644 --- a/business/partner/partner_store_sku.go +++ b/business/partner/partner_store_sku.go @@ -49,7 +49,7 @@ type StoreSkuInfo struct { ActPrice int64 `json:"actPrice,omitempty"` VendorActID string `json:"vendorActID,omitempty"` IsSpecialty int `json:"isSpecialty,omitempty"` - Price int `json:"jxPrice,omitempty"` + JxPrice int `json:"jxPrice,omitempty"` } type StoreSkuInfoWithErr struct { diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 54a857b36..7783ddfde 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -138,7 +138,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), SellPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), - BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(int64(v.Price))), + BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(int64(v.JxPrice))), } err = api.YinBaoAPI.UpdateProductInfo(productInfo) if err != nil { From 21ff04a78d6151356bbcc199628b4cb2540856c0 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, 27 Mar 2020 15:07:06 +0800 Subject: [PATCH 110/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=B0=9D=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 +++-- business/partner/partner_store_sku.go | 2 +- business/partner/purchase/yb/store_sku.go | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 8a7fc1d98..91c5594b5 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -232,6 +232,7 @@ func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSk Status: inSku.MergedStatus, VendorPrice: inSku.VendorPrice, Seq: inSku.Seq, + JxPrice: inSku.Price, } if !isStoreSkuSyncNeedDelete(inSku) { outSku.Stock = model.MaxStoreSkuStockQty @@ -528,8 +529,8 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag priceList = priceList[:] priceList = rList2 for _, v := range priceList { - price, _ := GetSkuNamePrice(db, v.SkuID, int64(v.JxPrice)) - v.JxPrice = int(price) + price, _ := GetSkuNamePrice(db, v.SkuID, v.JxPrice) + v.JxPrice = price } } } diff --git a/business/partner/partner_store_sku.go b/business/partner/partner_store_sku.go index a0ac1f956..38b1b634a 100644 --- a/business/partner/partner_store_sku.go +++ b/business/partner/partner_store_sku.go @@ -49,7 +49,7 @@ type StoreSkuInfo struct { ActPrice int64 `json:"actPrice,omitempty"` VendorActID string `json:"vendorActID,omitempty"` IsSpecialty int `json:"isSpecialty,omitempty"` - JxPrice int `json:"jxPrice,omitempty"` + JxPrice int64 `json:"jxPrice,omitempty"` } type StoreSkuInfoWithErr struct { diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 7783ddfde..13dd12352 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -138,7 +138,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), SellPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.VendorPrice)), - BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(int64(v.JxPrice))), + BuyPrice: utils.Float64ToPointer(jxutils.IntPrice2Standard(v.JxPrice)), } err = api.YinBaoAPI.UpdateProductInfo(productInfo) if err != nil { From ebdc369384f1decfc1a6c210c7ae1646a3457689 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, 27 Mar 2020 17:24:12 +0800 Subject: [PATCH 111/158] yb plucode --- business/partner/purchase/yb/store_sku.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 13dd12352..40ef79cdc 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -27,11 +27,13 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v if globals.EnableYbStoreWrite { storeSku := storeSkuList[0] buildYbConfigs(storeID) + buildYbApiCookie(ctx) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { storeSku.VendorSkuID = utils.Int64ToStr(result.UID) + updateYbSkuPluCode(vendorStoreID, storeSku.YbBarCode) } } return failedList, err @@ -368,3 +370,8 @@ func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) } return cats } + +func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { + err = api.YinBaoAPI.SaveProduct(vendorStoreID, ybBarCode) + return err +} From 08a132acec001b0084d801cf0f766036f31cec7f 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, 30 Mar 2020 08:49:09 +0800 Subject: [PATCH 112/158] =?UTF-8?q?=E7=BB=8F=E7=BA=AC=E5=BA=A6=E6=9F=A5?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E8=BF=94=E5=9B=9Enull=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index ce4ea83e4..114a02025 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2386,6 +2386,8 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi } var storeList1 []*Store4User + fmt.Println(sql) + fmt.Println(sqlParams) if err = dao.GetRows(dao.GetDB(), &storeList1, sql, sqlParams...); err == nil { var storeList2 []*Store4User for _, v := range storeList1 { @@ -2408,6 +2410,7 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi jxutils.StandardCoordinate2Int(10000), } dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) + fmt.Println(utils.Format4Output(storeList2, false)) if len(storeList2) > 1 { storeList2 = storeList2[:1] } From e022ce74c26a71c01be959f32756333c8a391d86 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, 30 Mar 2020 08:52:50 +0800 Subject: [PATCH 113/158] =?UTF-8?q?=E7=BB=8F=E7=BA=AC=E5=BA=A6=E6=9F=A5?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E8=BF=94=E5=9B=9Enull=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 114a02025..87aa64e91 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2410,7 +2410,8 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi jxutils.StandardCoordinate2Int(10000), } dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) - fmt.Println(utils.Format4Output(storeList2, false)) + fmt.Println(sql) + fmt.Println(sqlParams2) if len(storeList2) > 1 { storeList2 = storeList2[:1] } From 3c119c57d6af8b9fec101d44f9b1100c0b5258a1 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, 30 Mar 2020 08:54:56 +0800 Subject: [PATCH 114/158] =?UTF-8?q?=E7=BB=8F=E7=BA=AC=E5=BA=A6=E6=9F=A5?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E8=BF=94=E5=9B=9Enull=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 87aa64e91..b2f2c1606 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2408,10 +2408,12 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi jxutils.StandardCoordinate2Int(10000), jxutils.StandardCoordinate2Int(0), jxutils.StandardCoordinate2Int(10000), + model.YES, } dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) fmt.Println(sql) fmt.Println(sqlParams2) + fmt.Println(storeList2) if len(storeList2) > 1 { storeList2 = storeList2[:1] } From 58c32b1c9a52a02b88b30ea67bd5c16840595ec2 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, 30 Mar 2020 09:36:17 +0800 Subject: [PATCH 115/158] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E9=97=A8=E5=BA=97=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index b2f2c1606..a79aa7a74 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2388,6 +2388,7 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi var storeList1 []*Store4User fmt.Println(sql) fmt.Println(sqlParams) + fmt.Println(lng1, lng2, lat1, lat2) if err = dao.GetRows(dao.GetDB(), &storeList1, sql, sqlParams...); err == nil { var storeList2 []*Store4User for _, v := range storeList1 { @@ -2411,9 +2412,6 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi model.YES, } dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) - fmt.Println(sql) - fmt.Println(sqlParams2) - fmt.Println(storeList2) if len(storeList2) > 1 { storeList2 = storeList2[:1] } From 7c01a20bf864d118a6ebef2dca800e07c1b6afa6 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, 30 Mar 2020 09:55:54 +0800 Subject: [PATCH 116/158] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E9=97=A8=E5=BA=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index a79aa7a74..f7e4aadf1 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2386,9 +2386,6 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi } var storeList1 []*Store4User - fmt.Println(sql) - fmt.Println(sqlParams) - fmt.Println(lng1, lng2, lat1, lat2) if err = dao.GetRows(dao.GetDB(), &storeList1, sql, sqlParams...); err == nil { var storeList2 []*Store4User for _, v := range storeList1 { From b426d1edca62454c3c1561d8418a0c5859eeef83 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, 30 Mar 2020 11:08:13 +0800 Subject: [PATCH 117/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=8D=A2cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 7 ++ business/partner/purchase/yb/store_sku.go | 147 ++++++++++++++++------ 2 files changed, 114 insertions(+), 40 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 91c5594b5..723615501 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -8,11 +8,13 @@ import ( "strings" "time" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/refutil" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -533,6 +535,11 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag v.JxPrice = price } } + api.YinBaoAPI = yinbaoapi.New(storeDetail.YbAppKey, storeDetail.YbAppID) + if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookie := configs[0].Value + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) + } } task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 40ef79cdc..2ab799678 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,7 +1,6 @@ package yb import ( - "fmt" "regexp" "git.rosy.net.cn/jx-callback/business/jxstore/cms" @@ -26,8 +25,6 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { storeSku := storeSkuList[0] - buildYbConfigs(storeID) - buildYbApiCookie(ctx) result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") @@ -45,7 +42,6 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - buildYbConfigs(storeID) for _, v := range storeSkuList { var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), @@ -61,7 +57,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v } func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { - buildYbConfigs(storeID) if storeSkuList != nil { if len(storeSkuList) == 1 { storeSku := storeSkuList[0] @@ -118,7 +113,6 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo, status int) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - buildYbConfigs(storeID) for _, v := range storeSkuList { var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), @@ -135,7 +129,6 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - buildYbConfigs(storeID) for _, v := range storeSkuList { var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), @@ -153,7 +146,6 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { - buildYbConfigs(storeID) for _, v := range storeSkuList { var productInfo = &yinbaoapi.ProductInfo{ UID: utils.Str2Int64(v.VendorSkuID), @@ -169,21 +161,38 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg } func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*partner.BareCategoryInfo, err error) { - remoteCats, err := api.YinBaoAPI.LoadCategorysWithOption(vendorStoreID) - if err == nil { - cats = convertVendorCatList(remoteCats) - } + remoteCats, err := loadCategorysWithOption(vendorStoreID) + cats = convertVendorCatList(remoteCats) return cats, err } +func loadCategorysWithOption(vendorStoreID string) (remoteCats []*yinbaoapi.LoadCategorysWithOptionResult, err error) { + for { + remoteCats, err = api.YinBaoAPI.LoadCategorysWithOption(vendorStoreID) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = changeYbCookie() + if err != nil { + break + } + remoteCats, err = loadCategorysWithOption(vendorStoreID) + } else { + break + } + } + } + return remoteCats, err +} + func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { - buildYbApiCookie(ctx) var ( catName = utils.FilterEmoji(storeCat.Name) parentCatName = utils.FilterEmoji(storeCat.ParentCatName) ) - vendorCatID, err := api.YinBaoAPI.AddNewCategory(vendorStoreID, catName, parentCatName) + vendorCatID, err := addNewCategory(vendorStoreID, catName, parentCatName) if err == nil { storeCat.VendorCatID = vendorCatID } @@ -192,35 +201,80 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in return err } -func buildYbApiCookie(ctx *jxcontext.Context) { - yinbaoCookiePageCount := "" - if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { - yinbaoCookie := configs[0].Value - api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) - if configs2, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookiePageCount", model.ConfigTypeCookie, ""); err == nil { - yinbaoCookiePageCount = configs2[0].Value - api.YinBaoAPI.SetCookie("pageOpenCount", yinbaoCookiePageCount) +func addNewCategory(vendorStoreID, catName, parentCatName string) (vendorCatID string, err error) { + for { + vendorCatID, err = api.YinBaoAPI.AddNewCategory(vendorStoreID, catName, parentCatName) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = changeYbCookie() + if err != nil { + break + } + vendorCatID, err = addNewCategory(vendorStoreID, catName, parentCatName) + } else { + break + } } } - cms.UpdateConfig(ctx, "yinbaoCookiePageCount", "Cookie", utils.Int64ToStr(utils.Str2Int64(yinbaoCookiePageCount)+1)) + return vendorCatID, err } func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableYbStoreWrite { - buildYbApiCookie(ctx) var ( catName = utils.FilterEmoji(storeCat.Name) parentCatName = utils.FilterEmoji(storeCat.ParentCatName) ) - err = api.YinBaoAPI.UpdateCategory(vendorStoreID, storeCat.VendorCatID, catName, parentCatName) + err = updateCategory(vendorStoreID, storeCat.VendorCatID, catName, parentCatName) + } + return err +} + +func updateCategory(vendorStoreID, vendorCatID, catName, parentCatName string) (err error) { + for { + err = api.YinBaoAPI.UpdateCategory(vendorStoreID, vendorCatID, catName, parentCatName) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = changeYbCookie() + if err != nil { + break + } + err = updateCategory(vendorStoreID, vendorCatID, catName, parentCatName) + } else { + break + } + } } return err } func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if globals.EnableYbStoreWrite { - buildYbApiCookie(ctx) - err = api.YinBaoAPI.DeleteCategory(vendorStoreID, []string{vendorCatID}) + err = deleteCategory(vendorStoreID, []string{vendorCatID}) + } + return err +} + +func deleteCategory(vendorStoreID string, vendorCatIDs []string) (err error) { + for { + err = api.YinBaoAPI.DeleteCategory(vendorStoreID, vendorCatIDs) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = changeYbCookie() + if err != nil { + break + } + err = api.YinBaoAPI.DeleteCategory(vendorStoreID, vendorCatIDs) + } else { + break + } + } } return err } @@ -343,18 +397,6 @@ func buildProductInfoParam(storeSku *dao.StoreSkuSyncInfo) (productInfoParam *yi return productInfoParam } -func buildYbConfigs(storeID int) (err error) { - if storeID == 0 { - return fmt.Errorf("门店ID不能为空!平台:[%v]", model.VendorIDYB) - } - store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) - if err != nil { - return err - } - api.YinBaoAPI = yinbaoapi.New(store.YbAppKey, store.YbAppID) - return err -} - func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) (cats []*partner.BareCategoryInfo) { for _, rCat := range remoteCats { cat := &partner.BareCategoryInfo{ @@ -372,6 +414,31 @@ func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) } func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { - err = api.YinBaoAPI.SaveProduct(vendorStoreID, ybBarCode) + for { + err = api.YinBaoAPI.SaveProduct(vendorStoreID, ybBarCode) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = changeYbCookie() + if err != nil { + break + } + err = updateYbSkuPluCode(vendorStoreID, ybBarCode) + } else { + break + } + } + } + return err +} + +func changeYbCookie() (err error) { + cookie, err := api.YinBaoAPI.TryGetCookie() + if err != nil { + return err + } + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", cookie) + cms.UpdateConfig(jxcontext.AdminCtx, "yinbaoCookie", model.ConfigTypeCookie, cookie) return err } From 6cc725ea2f3c5cc2e3d7855239f050a68ddadfe5 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, 30 Mar 2020 14:27:30 +0800 Subject: [PATCH 118/158] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=93=B6=E8=B1=B9?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=90=8E=E7=BC=80=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 3 +++ conf/app.conf | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index ba131e929..f777ad1c6 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -735,6 +735,9 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s realPrefix = "0" + realPrefix } skuNameExt.YbNameSuffix = realPrefix + if utils.Str2Int64(prefix) > 9999 { + return nil, fmt.Errorf("银豹的商品后缀已超过9999!") + } } } diff --git a/conf/app.conf b/conf/app.conf index 13996ba5f..07ac55ba7 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -370,7 +370,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableYbStoreWrite = true +enableYbStoreWrite = false jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" From f507feee8c273abc1701ae1afa4ebafa7654bec4 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, 30 Mar 2020 14:42:55 +0800 Subject: [PATCH 119/158] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=BC=80=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 56 +++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 48594269e..615861f35 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -9,8 +9,10 @@ import ( "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/baseapi" + "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "git.rosy.net.cn/jx-callback/business/jxutils/excel" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -644,33 +646,33 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { task.SetFinishHook(func(task tasksch.ITask) { - // var noticeMsg = "您此次的同步任务错误详情返回如下: \n" - // if ctx.GetUserName() != "jxadmin" { - // if len(task.GetFailedList()) > 10 { - // downloadURL, _, _ := WirteToExcelBySyncFailed(task) - // noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - // } else if len(task.GetFailedList()) > 0 && len(task.GetFailedList()) <= 10 { - // if task.GetErr() != nil { - // noticeMsg += utils.Format4Output(buildErrMsgJson(task), true) - // } - // } else { - // noticeMsg = "您的同步任务执行完成,没有错误返回。" - // } - // if authInfo, err := ctx.GetV2AuthInfo(); err == nil { - // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg) - // } else { - // globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) - // } - // } else { - // if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { - // downloadURL, _, _ := WirteToExcelBySyncFailed(task) - // user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") - // noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - // if user != nil && err == nil { - // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) - // } - // } - // } + var noticeMsg = "您此次的同步任务错误详情返回如下: \n" + if ctx.GetUserName() != "jxadmin" { + if len(task.GetFailedList()) > 10 { + downloadURL, _, _ := WirteToExcelBySyncFailed(task) + noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + } else if len(task.GetFailedList()) > 0 && len(task.GetFailedList()) <= 10 { + if task.GetErr() != nil { + noticeMsg += utils.Format4Output(buildErrMsgJson(task), true) + } + } else { + noticeMsg = "您的同步任务执行完成,没有错误返回。" + } + if authInfo, err := ctx.GetV2AuthInfo(); err == nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg) + } else { + globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) + } + } else { + if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { + downloadURL, _, _ := WirteToExcelBySyncFailed(task) + user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") + noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + if user != nil && err == nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) + } + } + } }) } From 338c414169c6bb4c8c073329afbfd79cdbe2078c 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, 30 Mar 2020 15:19:29 +0800 Subject: [PATCH 120/158] =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=89=93=E5=BC=80bet?= =?UTF-8?q?a=E6=93=8D=E4=BD=9C=E9=93=B6=E8=B1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 07ac55ba7..13996ba5f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -370,7 +370,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableYbStoreWrite = false +enableYbStoreWrite = true jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" From bca6ca821a8ae62d3414334fdfcdef3e186a19ac 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, 30 Mar 2020 15:45:24 +0800 Subject: [PATCH 121/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=88=87=E6=8D=A2coo?= =?UTF-8?q?kie=E7=A7=BB=E5=88=B0cms=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 32 ++++++++++++++++++++++- business/partner/purchase/yb/store_sku.go | 23 +++++----------- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index f7e4aadf1..251ad623c 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2920,7 +2920,7 @@ func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err er yinbaoCookie = configs[0].Value } api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) - result, err := api.YinBaoAPI.LoadSubStoresByUserIdDDLJson() + result, err := loadSubStoresByUserIdDDLJson() if err != nil { return err } @@ -2949,3 +2949,33 @@ func checkYbParams(db *dao.DaoDB, storeMap *model.StoreMap, storeID int) (err er } return err } + +func loadSubStoresByUserIdDDLJson() (result []*yinbaoapi.LoadSubStoresByUserIdDDLJsonResult, err error) { + for { + result, err = api.YinBaoAPI.LoadSubStoresByUserIdDDLJson() + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = ChangeYbCookie() + if err != nil { + break + } + result, err = loadSubStoresByUserIdDDLJson() + } else { + break + } + } + } + return result, err +} + +func ChangeYbCookie() (err error) { + cookie, err := api.YinBaoAPI.TryGetCookie() + if err != nil { + return err + } + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", cookie) + UpdateConfig(jxcontext.AdminCtx, "yinbaoCookie", model.ConfigTypeCookie, cookie) + return err +} diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 2ab799678..4877cead5 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -3,10 +3,9 @@ package yb import ( "regexp" - "git.rosy.net.cn/jx-callback/business/jxstore/cms" - "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -173,7 +172,7 @@ func loadCategorysWithOption(vendorStoreID string) (remoteCats []*yinbaoapi.Load break } else { if yinbaoapi.IsErrCookie(err) { - err = changeYbCookie() + err = cms.ChangeYbCookie() if err != nil { break } @@ -208,7 +207,7 @@ func addNewCategory(vendorStoreID, catName, parentCatName string) (vendorCatID s break } else { if yinbaoapi.IsErrCookie(err) { - err = changeYbCookie() + err = cms.ChangeYbCookie() if err != nil { break } @@ -239,7 +238,7 @@ func updateCategory(vendorStoreID, vendorCatID, catName, parentCatName string) ( break } else { if yinbaoapi.IsErrCookie(err) { - err = changeYbCookie() + err = cms.ChangeYbCookie() if err != nil { break } @@ -266,7 +265,7 @@ func deleteCategory(vendorStoreID string, vendorCatIDs []string) (err error) { break } else { if yinbaoapi.IsErrCookie(err) { - err = changeYbCookie() + err = cms.ChangeYbCookie() if err != nil { break } @@ -420,7 +419,7 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { break } else { if yinbaoapi.IsErrCookie(err) { - err = changeYbCookie() + err = cms.ChangeYbCookie() if err != nil { break } @@ -432,13 +431,3 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { } return err } - -func changeYbCookie() (err error) { - cookie, err := api.YinBaoAPI.TryGetCookie() - if err != nil { - return err - } - api.YinBaoAPI.SetCookie(".POSPALAUTH30220", cookie) - cms.UpdateConfig(jxcontext.AdminCtx, "yinbaoCookie", model.ConfigTypeCookie, cookie) - return err -} From 4927a466f74416eadbb5c9fd92df3a51932d0cd4 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, 30 Mar 2020 15:52:40 +0800 Subject: [PATCH 122/158] =?UTF-8?q?beta=E9=93=B6=E8=B1=B9=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=85=B3=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 13996ba5f..07ac55ba7 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -370,7 +370,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableYbStoreWrite = true +enableYbStoreWrite = false jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" From 1a28e419b0614a25a951886bff07c0fd2f7bcc3b 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, 30 Mar 2020 16:37:31 +0800 Subject: [PATCH 123/158] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BE=8E=E5=9B=A2?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B8=8D=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 723615501..affc1b297 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -435,6 +435,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB { globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) } else { + fmt.Println("test1", utils.Format4Output(createList, false)) createList = append(createList, sku) } } From 2de54b246fb7d2dbf0d7bd234979a5c1f5948246 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, 30 Mar 2020 16:52:00 +0800 Subject: [PATCH 124/158] =?UTF-8?q?beta=E9=93=B6=E8=B1=B9=E5=8F=88?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E5=85=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 1 - conf/app.conf | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index affc1b297..723615501 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -435,7 +435,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB { globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) } else { - fmt.Println("test1", utils.Format4Output(createList, false)) createList = append(createList, sku) } } diff --git a/conf/app.conf b/conf/app.conf index 07ac55ba7..13996ba5f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -370,7 +370,7 @@ enableEbaiStoreWrite = false enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enableYbStoreWrite = false +enableYbStoreWrite = true jdOrgCode = "320406" jdToken = "77e703b7-7997-441b-a12a-2e522efb117a" From 9b71f15a6cfbe900c3a293f0d0bf1fd9df4aad4a 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, 30 Mar 2020 16:58:48 +0800 Subject: [PATCH 125/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E6=94=B9=E4=BB=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 ++ business/partner/partner_store_sku.go | 1 + 2 files changed, 3 insertions(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 723615501..472006d52 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -235,6 +235,7 @@ func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSk VendorPrice: inSku.VendorPrice, Seq: inSku.Seq, JxPrice: inSku.Price, + JxUnitPrice: inSku.UnitPrice, } if !isStoreSkuSyncNeedDelete(inSku) { outSku.Stock = model.MaxStoreSkuStockQty @@ -531,6 +532,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag priceList = priceList[:] priceList = rList2 for _, v := range priceList { + v.VendorPrice = int64(jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(v.JxUnitPrice))) price, _ := GetSkuNamePrice(db, v.SkuID, v.JxPrice) v.JxPrice = price } diff --git a/business/partner/partner_store_sku.go b/business/partner/partner_store_sku.go index 38b1b634a..6f5c64255 100644 --- a/business/partner/partner_store_sku.go +++ b/business/partner/partner_store_sku.go @@ -50,6 +50,7 @@ type StoreSkuInfo struct { VendorActID string `json:"vendorActID,omitempty"` IsSpecialty int `json:"isSpecialty,omitempty"` JxPrice int64 `json:"jxPrice,omitempty"` + JxUnitPrice int64 `json:"jxUnitPrice,omitempty"` } type StoreSkuInfoWithErr struct { From e7647151d1474c2a242717b3b7f7a63546cec974 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, 30 Mar 2020 17:45:00 +0800 Subject: [PATCH 126/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=A0=87=E5=93=81=E4=BD=BF=E7=94=A8upc?= =?UTF-8?q?=E4=BD=9C=E4=B8=BAbarcode=EF=BC=8C=E5=90=A6=E5=88=99=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 -- business/model/dao/sku.go | 2 +- business/model/sku.go | 1 + business/partner/purchase/yb/store_sku.go | 23 ++++++++++++++++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 472006d52..e05026395 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -514,8 +514,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag isContinueWhenError2 := true //如果是银豹平台,则要按照商品skuname维度同步 if vendorID == model.VendorIDYB { - // createList, updateList []*dao.StoreSkuSyncInfo - // deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo if len(createList) > 0 { rList1, _ := changeList2Yb(createList, nil) createList = createList[:] diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index 96505e549..8d1e2c573 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -78,7 +78,7 @@ func GetCategories(db *DaoDB, parentID, level int, catIDs []int, isExd bool) (ca func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string) (skuList []*model.SkuAndName, err error) { sql := ` - SELECT t1.*, t2.name, t2.unit, t2.prefix, t2.is_spu, t2.ex_prefix, t2.ex_prefix_begin, t2.ex_prefix_end + SELECT t1.*, t2.name, t2.unit, t2.prefix, t2.is_spu, t2.ex_prefix, t2.ex_prefix_begin, t2.ex_prefix_end, t2.upc FROM sku t1 JOIN sku_name t2 ON t2.id = t1.name_id AND t2.deleted_at = ? ` diff --git a/business/model/sku.go b/business/model/sku.go index 74ce32d17..93256e65a 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -245,6 +245,7 @@ type SkuAndName struct { Unit string `json:"unit"` Prefix string `json:"prefix"` IsSpu int `json:"isSpu"` + Upc string `json:"upc"` ExPrefix string `json:"exPrefix"` ExPrefixBegin *time.Time `json:"exPrefixBegin"` ExPrefixEnd *time.Time `json:"eExPrefixEndxPrefixEnd"` diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 4877cead5..4ff694710 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,6 +1,7 @@ package yb import ( + "fmt" "regexp" "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" @@ -24,7 +25,12 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { storeSku := storeSkuList[0] - result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + var result *yinbaoapi.AddProductInfoResult + if err2 := checkYbSku(storeSku); err2 != nil { + err = err2 + } else { + result, err = api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + } if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { @@ -431,3 +437,18 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { } return err } + +func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (err error) { + skuID := storeSku.SkuID + skus, _ := dao.GetSkus(dao.GetDB(), []int{skuID}, nil, nil, nil, nil) + if len(skus) > 0 { + if skus[0].Unit != model.UnitNames[0] { + if skus[0].Upc == "" { + return fmt.Errorf("创建标品必须指定upc码,skuID[%v]", skuID) + } else { + storeSku.YbBarCode = skus[0].Upc + } + } + } + return err +} From 66045a103cc089814afa03237b09837eb246bbf1 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, 30 Mar 2020 17:57:11 +0800 Subject: [PATCH 127/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=A0=87=E5=93=81=E4=B8=8D=E7=94=A8=E6=9B=B4=E6=96=B0=E7=A7=B0?= =?UTF-8?q?=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 4ff694710..6d9f84c76 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -26,7 +26,8 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v if globals.EnableYbStoreWrite { storeSku := storeSkuList[0] var result *yinbaoapi.AddProductInfoResult - if err2 := checkYbSku(storeSku); err2 != nil { + flag, err2 := checkYbSku(storeSku) //flag为true表示是标品,标品不用更新称编码 + if err2 != nil { err = err2 } else { result, err = api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) @@ -35,7 +36,9 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { storeSku.VendorSkuID = utils.Int64ToStr(result.UID) - updateYbSkuPluCode(vendorStoreID, storeSku.YbBarCode) + if !flag { + updateYbSkuPluCode(vendorStoreID, storeSku.YbBarCode) + } } } return failedList, err @@ -438,17 +441,18 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { return err } -func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (err error) { +func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (flag bool, err error) { skuID := storeSku.SkuID skus, _ := dao.GetSkus(dao.GetDB(), []int{skuID}, nil, nil, nil, nil) if len(skus) > 0 { if skus[0].Unit != model.UnitNames[0] { + flag = true if skus[0].Upc == "" { - return fmt.Errorf("创建标品必须指定upc码,skuID[%v]", skuID) + return flag, fmt.Errorf("创建标品必须指定upc码,skuID[%v]", skuID) } else { storeSku.YbBarCode = skus[0].Upc } } } - return err + return flag, err } From 41d957edccd534142405a427df9f68dacf929792 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, 31 Mar 2020 16:24:17 +0800 Subject: [PATCH 128/158] =?UTF-8?q?=E4=BB=8E=E9=93=B6=E8=B1=B9=E4=B8=8A?= =?UTF-8?q?=E6=8B=89=E6=A0=87=E5=93=81=E5=88=B0=E4=BA=AC=E8=A5=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 141 ++++++++++++++++++++++ business/jxstore/misc/misc.go | 11 +- business/jxstore/misc/store_sku_sales.go | 2 +- business/model/dao/sku.go | 10 +- business/partner/partner_store_sku.go | 1 + business/partner/purchase/yb/store_sku.go | 56 ++++++--- conf/app.conf | 3 + controllers/cms_store_sku.go | 15 +++ routers/commentsRouter_controllers.go | 9 ++ 9 files changed, 224 insertions(+), 24 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 214bbc176..bfbf43e25 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4054,3 +4054,144 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { updateStoresSkusWithoutSync(ctx, db, []int{666666}, skuBindInfos, false) return err } + +func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { + var ( + vendorID = model.VendorIDYB + db = dao.GetDB() + ) + storeMaps, err := dao.GetStoresMapList2(db, []int{vendorID}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", false) + handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) + task := tasksch.NewParallelTask("银豹平台拉取标品", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + storeMap := batchItemList[0].(*model.StoreMap) + store, _ := dao.GetStoreDetail(db, storeMap.StoreID, vendorID) + var ( + pricePercentagePack []*model.PricePercentageItem + ) + localSkuList, err := dao.GetStoreSkus2(db, vendorID, storeMap.StoreID, nil, false) + if err != nil { + return nil, err + } + localSkuMap := make(map[string]*dao.StoreSkuSyncInfo) + for _, v := range localSkuList { + localSkuMap[v.VendorSkuID] = v + } + remoteSkuList, err := handler.GetStoreSkusFullInfo(ctx, task, storeMap.StoreID, storeMap.VendorStoreID, nil) + if err != nil { + return retVal, err + } + for _, v := range remoteSkuList { + //长度大于7就可能是标品,非标品一般是7位,前三位是yb_store_prefix后4位是yb_name_suffix + if len(v.YbBarCode) > 7 { + if localSkuMap[v.SkuList[0].VendorSkuID] == nil { + skuNames, err := dao.GetSkuNames(db, nil, []string{v.YbBarCode}, "") + if err != nil { + return retVal, err + } + //表示我们商品库中没有这个upc商品,如果有就直接关注上 + if len(skuNames) == 0 { + //我们商品库中有这个商品,但是upc没有填,则尝试用upc去查一下 + productInfos, err := GetJdUpcCodeByName(ctx, "", v.YbBarCode) + if err != nil { + return retVal, err + } + //表示用upc也没有找到这个商品,则再尝试用银豹上的名字去查 + if len(productInfos) == 0 { + skuNames2, err := dao.GetSkuNames(db, nil, nil, v.Name) + if err != nil { + return retVal, err + } + if len(skuNames2) > 1 { + return retVal, fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", v.Name) + } + //表示查到了,需要把upc更新上去,没查到就要新建(//TODO新建不起,没得规格这些) + if len(skuNames2) == 1 { + skuNames2[0].Upc = &v.YbBarCode + dao.UpdateEntity(db, skuNames2[0], "Upc") + buildStoreSkuBindInfosAndFocus(ctx, db, store, v, skuNames2[0].ID, pricePercentagePack) + } + } else { + productInfo := productInfos[0] + skuNames2, err := dao.GetSkuNames(db, nil, nil, productInfo.Name) + if err != nil { + return retVal, err + } + if len(skuNames2) > 1 { + return retVal, fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) + } + //表示查到了,需要把upc更新上去,没查到就要新建 + if len(skuNames2) == 1 && (productInfo.SpecQuality == skuNames2[0].SpecQuality && productInfo.SpecUnit == skuNames2[0].SpecUnit) { + skuNames2[0].Upc = &v.YbBarCode + dao.UpdateEntity(db, skuNames2[0], "Upc") + buildStoreSkuBindInfosAndFocus(ctx, db, store, v, skuNames2[0].ID, pricePercentagePack) + } else { + skuNameExt := &model.SkuNameExt{ + SkuName: model.SkuName{ + Name: productInfo.Name, + Upc: &productInfo.UpcCode, + Status: model.SkuStatusNormal, + CategoryID: 175, + IsGlobal: model.NO, + Unit: productInfo.Unit, + }, + Skus: []*model.SkuWithVendor{ + &model.SkuWithVendor{}, + }, + Places: []int{510100}, //默认成都 + } + if len(v.SkuList) > 0 { + skuNameExt.Price = int(v.SkuList[0].VendorPrice) + skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality + skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit + skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) + skuNameExt.Skus[0].Status = model.SkuStatusNormal + } + if len(v.PictureList) > 0 { + skuNameExt.Img = v.PictureList[0] + } + outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) + if err != nil { + return retVal, err + } + buildStoreSkuBindInfosAndFocus(ctx, db, store, v, outSkuNameExt.ID, pricePercentagePack) + } + } + } else { + buildStoreSkuBindInfosAndFocus(ctx, db, store, v, skuNames[0].ID, pricePercentagePack) + } + } + } + } + return retVal, err + }, storeMaps) + tasksch.HandleTask(task, nil, true).Run() + if isAsync { + hint = task.GetID() + } else { + _, err = task.GetResult(0) + hint = "1" + } + return hint, err +} + +func buildStoreSkuBindInfosAndFocus(ctx *jxcontext.Context, db *dao.DaoDB, store *dao.StoreDetail, v *partner.SkuNameInfo, nameID int, pricePercentagePack []*model.PricePercentageItem) (err error) { + skus, _ := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) + err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) + price := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice)) + skuBind := &model.StoreSkuBind{ + StoreID: store.ID, + UnitPrice: price, + Price: price, + Status: model.StoreSkuBindStatusNormal, + YbID: utils.Str2Int64(v.SkuList[0].VendorSkuID), + YbPrice: int(v.SkuList[0].VendorPrice), + YbSyncStatus: 0, + } + if len(skus) > 0 { + skuBind.SkuID = skus[0].ID + } + dao.WrapAddIDCULDEntity(skuBind, ctx.GetUserName()) + err = dao.CreateEntity(db, skuBind) + return err +} diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index c94fad6c2..076ede790 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -248,7 +248,10 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "jd2StorePageCookie", model.ConfigTypeCookie, ""); err == nil { jd2StorePageCookie = configs[0].Value } - + if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookie := configs[0].Value + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) + } if globals.Jd2OrgCode != "" { api.Jd2API.SetJdCookie(jd2StorePageCookie) } @@ -268,9 +271,9 @@ func Init() { func syncStoreSku() { syncFlag := 0 // syncFlag := model.SyncFlagPriceMask - // if (time.Now().Unix()/24*3600)%10 == 0 { - // syncFlag |= model.SyncFlagSaleMask - // } + if (time.Now().Unix()/24*3600)%10 == 0 { + syncFlag |= model.SyncFlagSaleMask + } task := tasksch.NewParallelTask("同步京西与平台数据", nil, jxcontext.AdminCtx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) diff --git a/business/jxstore/misc/store_sku_sales.go b/business/jxstore/misc/store_sku_sales.go index 0e42e5eb1..538d0f3bb 100644 --- a/business/jxstore/misc/store_sku_sales.go +++ b/business/jxstore/misc/store_sku_sales.go @@ -153,7 +153,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales storeSkuSales.SkuImage = storeSkuInfo.Img storeSkuSales.SkuPrice = jxutils.IntPrice2StandardCurrencyString(int64(storeSkuInfo.Skus[0].BindPrice)) } else if skuAndNameInfo != nil { - skuNameList, err := dao.GetSkuNames(db, []int{skuAndNameInfo.NameID}) + skuNameList, err := dao.GetSkuNames(db, []int{skuAndNameInfo.NameID}, nil, "") prefix := "" if err == nil && len(skuNameList) > 0 { storeSkuSales.SkuImage = skuNameList[0].Img diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index 8d1e2c573..206417257 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -121,7 +121,7 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string return nil, err } -func GetSkuNames(db *DaoDB, nameIDs []int) (skuNameList []*model.SkuName, err error) { +func GetSkuNames(db *DaoDB, nameIDs []int, upcs []string, name string) (skuNameList []*model.SkuName, err error) { sql := ` SELECT * FROM sku_name t1 @@ -134,6 +134,14 @@ func GetSkuNames(db *DaoDB, nameIDs []int) (skuNameList []*model.SkuName, err er sql += " AND t1.id IN (" + GenQuestionMarks(len(nameIDs)) + ")" sqlParams = append(sqlParams, nameIDs) } + if len(upcs) > 0 { + sql += " AND t1.upc IN (" + GenQuestionMarks(len(upcs)) + ")" + sqlParams = append(sqlParams, upcs) + } + if name != "" { + sql += " AND t1.name LIKE ?" + sqlParams = append(sqlParams, "%"+name+"%") + } if err = GetRows(db, &skuNameList, sql, sqlParams...); err == nil { return skuNameList, nil } diff --git a/business/partner/partner_store_sku.go b/business/partner/partner_store_sku.go index 6f5c64255..2d3f6111b 100644 --- a/business/partner/partner_store_sku.go +++ b/business/partner/partner_store_sku.go @@ -84,6 +84,7 @@ type SkuNameInfo struct { VendorCatIDList []string PictureList []string Status int `json:"status,omitempty"` + YbBarCode string SkuList []*SkuInfo } diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 6d9f84c76..fe00c7960 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -68,8 +68,8 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas if storeSkuList != nil { if len(storeSkuList) == 1 { storeSku := storeSkuList[0] - result, err := api.YinBaoAPI.QueryProductByBarcode(utils.Int2Str(storeSku.SkuID)) - resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(utils.Int2Str(storeSku.SkuID)) + result, err := api.YinBaoAPI.QueryProductByBarcode(storeSku.VendorSkuID) + resultp, err := getProductImages(vendorStoreID, storeSku.VendorSkuID) if err != nil { return nil, err } @@ -79,14 +79,14 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas } else { var barcodes []string for _, v := range storeSkuList { - barcodes = append(barcodes, utils.Int2Str(v.SkuID)) + barcodes = append(barcodes, v.VendorSkuID) } results, err := api.YinBaoAPI.QueryProductByBarcodes(barcodes) if err != nil { return nil, err } for _, v := range results { - resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + resultp, err := getProductImages(vendorStoreID, v.Barcode) if err != nil { return nil, err } @@ -102,7 +102,7 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas } if result.PostBackParameter.ParameterType == yinbaoapi.PageMaxID { for _, v := range result.Result { - resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + resultp, err := getProductImages(vendorStoreID, v.Barcode) if err != nil { return nil, err } @@ -113,12 +113,33 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas } } } else { - loopPages(result.PostBackParameter.ParameterType, result.PostBackParameter.ParameterValue, skuNameList) + loopPages(result.PostBackParameter.ParameterType, result.PostBackParameter.ParameterValue, skuNameList, vendorStoreID) } } return skuNameList, err } +func getProductImages(vendorStoreID, barCode string) (findProductResult *yinbaoapi.FindProductResult, err error) { + for { + ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, barCode) + findProductResult, err = api.YinBaoAPI.FindProduct(ybSkuID) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = cms.ChangeYbCookie() + if err != nil { + break + } + findProductResult, err = getProductImages(vendorStoreID, barCode) + } else { + break + } + } + } + return findProductResult, err +} + func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo, status int) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { for _, v := range storeSkuList { @@ -322,28 +343,27 @@ func ybSkuStatus2Jx(ybStatus int) (jxSkuStatus int) { return jxSkuStatus } -func vendorSku2Jx(result *yinbaoapi.QueryProductByBarcodeResult, resultp []*yinbaoapi.QueryProductImagesByBarcodeResult) (skuName *partner.SkuNameInfo) { +func vendorSku2Jx(result *yinbaoapi.QueryProductByBarcodeResult, resultp *yinbaoapi.FindProductResult) (skuName *partner.SkuNameInfo) { var picList []string if result == nil { globals.SugarLogger.Warnf("vendorSku2Jx, strange result:%s", utils.Format4Output(result, true)) return nil } - if len(resultp) > 0 { - for _, v := range resultp { - picList = append(picList, v.ImageURL) + if len(resultp.Productimages) > 0 { + for _, v := range resultp.Productimages { + picList = append(picList, yinbaoapi.ImageUrl+v.Path) } } prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(result.Name) - skuID := int(utils.Str2Int64WithDefault(result.Barcode, 0)) skuName = &partner.SkuNameInfo{ - Prefix: prefix, - Name: name, - Unit: unit, + Prefix: prefix, + Name: name, + Unit: unit, + YbBarCode: result.Barcode, SkuList: []*partner.SkuInfo{ &partner.SkuInfo{ StoreSkuInfo: partner.StoreSkuInfo{ VendorSkuID: utils.Int64ToStr(result.UID), - SkuID: skuID, Stock: int(utils.Float64TwoInt64(result.Stock)), VendorPrice: jxutils.StandardPrice2Int(result.SellPrice), Status: ybSkuStatus2Jx(result.Enable), @@ -360,7 +380,7 @@ func vendorSku2Jx(result *yinbaoapi.QueryProductByBarcodeResult, resultp []*yinb return skuName } -func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuNameInfo) (err error) { +func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuNameInfo, vendorStoreID string) (err error) { var postBackParameter = &yinbaoapi.PostBackParameter{ ParameterType: parameterType, ParameterValue: parameterValue, @@ -370,7 +390,7 @@ func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuN return err } for _, v := range resultPages.Result { - resultp, err := api.YinBaoAPI.QueryProductImagesByBarcode(v.Barcode) + resultp, err := getProductImages(vendorStoreID, v.Barcode) if err != nil { return err } @@ -381,7 +401,7 @@ func loopPages(parameterType, parameterValue string, skuNameList []*partner.SkuN } } if resultPages.PostBackParameter.ParameterType != yinbaoapi.PageMaxID { - err = loopPages(resultPages.PostBackParameter.ParameterType, resultPages.PostBackParameter.ParameterValue, skuNameList) + err = loopPages(resultPages.PostBackParameter.ParameterType, resultPages.PostBackParameter.ParameterValue, skuNameList, vendorStoreID) } return err } diff --git a/conf/app.conf b/conf/app.conf index 13996ba5f..00efe89c7 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -198,6 +198,9 @@ weixinSecret = "6bbbed1443cc062c20a015a64c07a531" weixinMiniAppID2 = "wx4b5930c13f8b1170" weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" +yinbaoAppKey = "682628966212343269" +yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" + wxpayNotifyURL = "http://callback.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 73025aa3d..38706de1c 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -760,3 +760,18 @@ func (c *StoreSkuController) RefreshMatterStock() { return retVal, "", err }) } + +// @Title 从银豹上拉取标品到京西创建 +// @Description 从银豹上拉取标品到京西创建 +// @Param token header string false "认证token" +// @Param isAsync formData bool false "是否异步,缺省是同步" +// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /CreateSkusAndFocusFromYb [post] +func (c *StoreSkuController) CreateSkusAndFocusFromYb() { + c.callCreateSkusAndFocusFromYb(func(params *tStoreSkuCreateSkusAndFocusFromYbParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.CreateSkusAndFocusFromYb(params.Ctx, params.IsAsync, params.IsContinueWhenError) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 061cf5d33..b03587dc1 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1827,6 +1827,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "CreateSkusAndFocusFromYb", + Router: `/CreateSkusAndFocusFromYb`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "FocusStoreSkusByExcel", From 37851244eb1333eda9b1e82f58ef71090d009c90 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, 31 Mar 2020 16:37:08 +0800 Subject: [PATCH 129/158] =?UTF-8?q?=E4=BB=8E=E9=93=B6=E8=B1=B9=E6=8B=89?= =?UTF-8?q?=E5=8F=96=E6=A0=87=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 2 ++ controllers/cms_store_sku.go | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index fe00c7960..09eaf0717 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -65,6 +65,8 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v } func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { + storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) + api.YinBaoAPI = yinbaoapi.New(storeDetail.YbAppKey, storeDetail.YbAppID) if storeSkuList != nil { if len(storeSkuList) == 1 { storeSku := storeSkuList[0] diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 38706de1c..f85b7ba49 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -763,7 +763,7 @@ func (c *StoreSkuController) RefreshMatterStock() { // @Title 从银豹上拉取标品到京西创建 // @Description 从银豹上拉取标品到京西创建 -// @Param token header string false "认证token" +// @Param token header string true "认证token" // @Param isAsync formData bool false "是否异步,缺省是同步" // @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" // @Success 200 {object} controllers.CallResult From dd9f023ab7b47205321a6c639c07c50966d597ad 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, 31 Mar 2020 17:32:45 +0800 Subject: [PATCH 130/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=9F=A5=E8=AF=A2api?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 09eaf0717..2bba35ed6 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -67,6 +67,10 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDYB) api.YinBaoAPI = yinbaoapi.New(storeDetail.YbAppKey, storeDetail.YbAppID) + if configs, err := dao.QueryConfigs(dao.GetDB(), "yinbaoCookie", model.ConfigTypeCookie, ""); err == nil { + yinbaoCookie := configs[0].Value + api.YinBaoAPI.SetCookie(".POSPALAUTH30220", yinbaoCookie) + } if storeSkuList != nil { if len(storeSkuList) == 1 { storeSku := storeSkuList[0] From ef1f8619ac927b2ffff8040918dae65fd9085681 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, 31 Mar 2020 17:44:56 +0800 Subject: [PATCH 131/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=A0=87=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index bfbf43e25..c95a52d0c 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4136,7 +4136,9 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr Unit: productInfo.Unit, }, Skus: []*model.SkuWithVendor{ - &model.SkuWithVendor{}, + &model.SkuWithVendor{ + Sku: &model.Sku{}, + }, }, Places: []int{510100}, //默认成都 } From a3dd28396fd89b2a125975f66b35be9edd5acb03 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, 31 Mar 2020 18:01:27 +0800 Subject: [PATCH 132/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=A0=87=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c95a52d0c..0e1b3af8e 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4093,9 +4093,6 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr if len(skuNames) == 0 { //我们商品库中有这个商品,但是upc没有填,则尝试用upc去查一下 productInfos, err := GetJdUpcCodeByName(ctx, "", v.YbBarCode) - if err != nil { - return retVal, err - } //表示用upc也没有找到这个商品,则再尝试用银豹上的名字去查 if len(productInfos) == 0 { skuNames2, err := dao.GetSkuNames(db, nil, nil, v.Name) From 75b54840a06cf6eb56bddd3d293b2dc1eecdfbae 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, 31 Mar 2020 18:02:32 +0800 Subject: [PATCH 133/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=A0=87=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 0e1b3af8e..3b5e4f6d7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4092,7 +4092,8 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr //表示我们商品库中没有这个upc商品,如果有就直接关注上 if len(skuNames) == 0 { //我们商品库中有这个商品,但是upc没有填,则尝试用upc去查一下 - productInfos, err := GetJdUpcCodeByName(ctx, "", v.YbBarCode) + productInfos, err2 := GetJdUpcCodeByName(ctx, "", v.YbBarCode) + err = err2 //表示用upc也没有找到这个商品,则再尝试用银豹上的名字去查 if len(productInfos) == 0 { skuNames2, err := dao.GetSkuNames(db, nil, nil, v.Name) From e1eb562322fa7557fd3f0877d029c848ad3c02a6 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, 31 Mar 2020 18:07:14 +0800 Subject: [PATCH 134/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=A0=87=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 3b5e4f6d7..6ac0464a9 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4152,7 +4152,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr } outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) if err != nil { - return retVal, err + continue } buildStoreSkuBindInfosAndFocus(ctx, db, store, v, outSkuNameExt.ID, pricePercentagePack) } From 7ed6bb5dfebc7702331fa798b919e68acabd75a2 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, 1 Apr 2020 08:42:33 +0800 Subject: [PATCH 135/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 0019accf8..506975536 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -136,6 +136,9 @@ func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, i if err != nil { return nil, err } + fmt.Println("test11", resBinary) + fmt.Println("test22", *dataRes) + fmt.Println("test33", hashCode) return RegisterDataResource(ctx, name, resourceURL, http.DetectContentType(resBinary), hashCode, resBinary, imgType, isAsyncUpload2Vendor) } From d48b54c358a3ac830d204a327b24273d8c2064b1 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, 1 Apr 2020 09:02:26 +0800 Subject: [PATCH 136/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 506975536..ca6f8fb74 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -77,6 +77,8 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, fmt.Errorf("MIME type:%s非法,当前只支持:%s", mimeType, model.GetValidMimeTypeDesc()) } img, _, err := Binary2Image(resBinary, mimeType) + fmt.Println("testtttt", img) + fmt.Println("testtttt", err) if err != nil { return nil, err } @@ -136,9 +138,6 @@ func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, i if err != nil { return nil, err } - fmt.Println("test11", resBinary) - fmt.Println("test22", *dataRes) - fmt.Println("test33", hashCode) return RegisterDataResource(ctx, name, resourceURL, http.DetectContentType(resBinary), hashCode, resBinary, imgType, isAsyncUpload2Vendor) } From de23e2fa5203b72f1d92a522b9dbb7e8f2142b62 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, 1 Apr 2020 09:05:15 +0800 Subject: [PATCH 137/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index ca6f8fb74..b04e0fdaf 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -77,8 +77,6 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, fmt.Errorf("MIME type:%s非法,当前只支持:%s", mimeType, model.GetValidMimeTypeDesc()) } img, _, err := Binary2Image(resBinary, mimeType) - fmt.Println("testtttt", img) - fmt.Println("testtttt", err) if err != nil { return nil, err } @@ -87,6 +85,7 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) } } + fmt.Println("test11111111111111111111111111111111111") dataRes = &model.DataResource{ Name: name, HashCode: hashCode, @@ -102,10 +101,11 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h case model.VendorIDEBAI: dataRes.EbaiURL = resourceURL } - + fmt.Println("test222222222222222222222222222222222222222") dao.WrapAddIDCULEntity(dataRes, ctx.GetUserName()) if err = dao.CreateEntity(dao.GetDB(), dataRes); err != nil { if dao.IsDuplicateError(err) { + fmt.Println("test4444444444444444444444444444444444") dataRes, err = dao.GetDataResource(dao.GetDB(), dataRes.HashCode, dataRes.MainURL) } else { dataRes = nil @@ -114,6 +114,7 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h } if imgType > 0 { if globals.EnableStoreWrite { + fmt.Println("test333333333333333333333333333333333") // 忽略上传错误 UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsyncUpload2Vendor) } From 14c9c57ced81761c1aec7fd15e55be1b04bcf5f8 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, 1 Apr 2020 09:08:10 +0800 Subject: [PATCH 138/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index b04e0fdaf..92b176b9d 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -77,6 +77,9 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, fmt.Errorf("MIME type:%s非法,当前只支持:%s", mimeType, model.GetValidMimeTypeDesc()) } img, _, err := Binary2Image(resBinary, mimeType) + fmt.Println("test11111111111111111111111111111111") + img.Bounds() + fmt.Println("test2122222222222222222222222222222222") if err != nil { return nil, err } @@ -85,7 +88,6 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) } } - fmt.Println("test11111111111111111111111111111111111") dataRes = &model.DataResource{ Name: name, HashCode: hashCode, @@ -101,11 +103,9 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h case model.VendorIDEBAI: dataRes.EbaiURL = resourceURL } - fmt.Println("test222222222222222222222222222222222222222") dao.WrapAddIDCULEntity(dataRes, ctx.GetUserName()) if err = dao.CreateEntity(dao.GetDB(), dataRes); err != nil { if dao.IsDuplicateError(err) { - fmt.Println("test4444444444444444444444444444444444") dataRes, err = dao.GetDataResource(dao.GetDB(), dataRes.HashCode, dataRes.MainURL) } else { dataRes = nil @@ -114,7 +114,6 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h } if imgType > 0 { if globals.EnableStoreWrite { - fmt.Println("test333333333333333333333333333333333") // 忽略上传错误 UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsyncUpload2Vendor) } From 23b857b901e795446ee458e17a0bff65bbcaec9d 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, 1 Apr 2020 09:22:26 +0800 Subject: [PATCH 139/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 3 --- business/jxutils/jxutils.go | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 92b176b9d..8061a653c 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -77,9 +77,6 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, fmt.Errorf("MIME type:%s非法,当前只支持:%s", mimeType, model.GetValidMimeTypeDesc()) } img, _, err := Binary2Image(resBinary, mimeType) - fmt.Println("test11111111111111111111111111111111") - img.Bounds() - fmt.Println("test2122222222222222222222222222222222") if err != nil { return nil, err } diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 97a011585..89c74be2c 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -38,6 +38,9 @@ var ( model.VendorIDEBAI: []string{ "image-star.elemecdn.com", }, + model.VendorIDYB: []string{ + "pospalstoreimg.area27.pospal.cn", + }, } ) From 516af09034265db29379329aa1b2150d9cea10fe 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, 1 Apr 2020 09:29:13 +0800 Subject: [PATCH 140/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 8061a653c..edeab5a48 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -92,8 +92,9 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h MainURL: resourceURL, UseType: int8(imgType), } - + fmt.Println("test222222222222222222222") vendorID := jxutils.GuessDataResourceVendor(resourceURL) + fmt.Println("test11111111111111111111", vendorID) switch vendorID { case model.VendorIDQiNiuCloud: dataRes.QiniuURL = resourceURL From 4bec1314facc0f76150d6ef4a94f05d31dd4f3fc 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, 1 Apr 2020 09:31:53 +0800 Subject: [PATCH 141/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index edeab5a48..65ce159ca 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -80,10 +80,14 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h if err != nil { return nil, err } + fmt.Println("test11111111111111111") + img.Bounds().Dx() if imgType == model.ImgTypeMain { + fmt.Println("test222222222222222222222") if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight { return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) } + fmt.Println("test33333333333333333333333333") } dataRes = &model.DataResource{ Name: name, @@ -92,9 +96,7 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h MainURL: resourceURL, UseType: int8(imgType), } - fmt.Println("test222222222222222222222") vendorID := jxutils.GuessDataResourceVendor(resourceURL) - fmt.Println("test11111111111111111111", vendorID) switch vendorID { case model.VendorIDQiNiuCloud: dataRes.QiniuURL = resourceURL From 73a261df902017aceb31b35e86fc0775c001c06a 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, 1 Apr 2020 09:33:35 +0800 Subject: [PATCH 142/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 65ce159ca..97c796417 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -81,7 +81,7 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, err } fmt.Println("test11111111111111111") - img.Bounds().Dx() + img.Bounds().Dy() if imgType == model.ImgTypeMain { fmt.Println("test222222222222222222222") if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight { From 54248a385f5d8ae313583524d81b7147321c85c6 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, 1 Apr 2020 09:35:45 +0800 Subject: [PATCH 143/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 97c796417..b796deb06 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -81,9 +81,9 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, err } fmt.Println("test11111111111111111") - img.Bounds().Dy() if imgType == model.ImgTypeMain { fmt.Println("test222222222222222222222") + fmt.Println(img.Bounds().Dx(), img.Bounds().Dy()) if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight { return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) } From 377c64707ae7465307ad2232b462c49eff2e821e 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, 1 Apr 2020 09:47:57 +0800 Subject: [PATCH 144/158] =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E7=9A=84=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 ++-- business/jxutils/datares/datares.go | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 6ac0464a9..7bde60cb6 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4147,8 +4147,8 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) skuNameExt.Skus[0].Status = model.SkuStatusNormal } - if len(v.PictureList) > 0 { - skuNameExt.Img = v.PictureList[0] + if len(productInfo.ImgList) > 0 { + skuNameExt.Img = productInfo.ImgList[0] } outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) if err != nil { diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index b796deb06..267ad6da7 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -80,14 +80,10 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h if err != nil { return nil, err } - fmt.Println("test11111111111111111") if imgType == model.ImgTypeMain { - fmt.Println("test222222222222222222222") - fmt.Println(img.Bounds().Dx(), img.Bounds().Dy()) if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight { return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) } - fmt.Println("test33333333333333333333333333") } dataRes = &model.DataResource{ Name: name, From b1ceb21f9e18840e7453134edbcaf40498323730 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, 1 Apr 2020 09:57:28 +0800 Subject: [PATCH 145/158] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/datares/datares.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index 267ad6da7..a4f3217aa 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -81,8 +81,11 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, err } if imgType == model.ImgTypeMain { + fmt.Println("test1111111111111111111111111111111111") if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight { + fmt.Println("test2222222222222222222222222") return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) + fmt.Println("test3333333333333333333333333333") } } dataRes = &model.DataResource{ From 25e4afd974164c53b67d192de42a16a735a4eaff 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, 1 Apr 2020 10:08:37 +0800 Subject: [PATCH 146/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 61 +++++++++++++++-------------- business/jxutils/datares/datares.go | 3 -- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 7bde60cb6..5771dbc27 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4062,26 +4062,27 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr ) storeMaps, err := dao.GetStoresMapList2(db, []int{vendorID}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", false) handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) - task := tasksch.NewParallelTask("银豹平台拉取标品", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - storeMap := batchItemList[0].(*model.StoreMap) - store, _ := dao.GetStoreDetail(db, storeMap.StoreID, vendorID) - var ( - pricePercentagePack []*model.PricePercentageItem - ) - localSkuList, err := dao.GetStoreSkus2(db, vendorID, storeMap.StoreID, nil, false) - if err != nil { - return nil, err - } - localSkuMap := make(map[string]*dao.StoreSkuSyncInfo) - for _, v := range localSkuList { - localSkuMap[v.VendorSkuID] = v - } - remoteSkuList, err := handler.GetStoreSkusFullInfo(ctx, task, storeMap.StoreID, storeMap.VendorStoreID, nil) - if err != nil { - return retVal, err - } - for _, v := range remoteSkuList { + for _, storeMap := range storeMaps { + store, _ := dao.GetStoreDetail(db, storeMap.StoreID, vendorID) + + localSkuList, err := dao.GetStoreSkus2(db, vendorID, storeMap.StoreID, nil, false) + if err != nil { + return "", err + } + localSkuMap := make(map[string]*dao.StoreSkuSyncInfo) + for _, v := range localSkuList { + localSkuMap[v.VendorSkuID] = v + } + remoteSkuList, err := handler.GetStoreSkusFullInfo(ctx, nil, storeMap.StoreID, storeMap.VendorStoreID, nil) + if err != nil { + return "", err + } + task := tasksch.NewParallelTask("银豹平台拉取标品", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + var ( + pricePercentagePack []*model.PricePercentageItem + v = batchItemList[0].(*partner.SkuNameInfo) + ) //长度大于7就可能是标品,非标品一般是7位,前三位是yb_store_prefix后4位是yb_name_suffix if len(v.YbBarCode) > 7 { if localSkuMap[v.SkuList[0].VendorSkuID] == nil { @@ -4152,7 +4153,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr } outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) if err != nil { - continue + return retVal, err } buildStoreSkuBindInfosAndFocus(ctx, db, store, v, outSkuNameExt.ID, pricePercentagePack) } @@ -4162,15 +4163,15 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr } } } - } - return retVal, err - }, storeMaps) - tasksch.HandleTask(task, nil, true).Run() - if isAsync { - hint = task.GetID() - } else { - _, err = task.GetResult(0) - hint = "1" + return retVal, err + }, remoteSkuList) + tasksch.HandleTask(task, nil, true).Run() + if isAsync { + hint = task.GetID() + } else { + _, err = task.GetResult(0) + hint = "1" + } } return hint, err } diff --git a/business/jxutils/datares/datares.go b/business/jxutils/datares/datares.go index a4f3217aa..267ad6da7 100644 --- a/business/jxutils/datares/datares.go +++ b/business/jxutils/datares/datares.go @@ -81,11 +81,8 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h return nil, err } if imgType == model.ImgTypeMain { - fmt.Println("test1111111111111111111111111111111111") if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight { - fmt.Println("test2222222222222222222222222") return nil, fmt.Errorf("图片大小:%dx%d非法,要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight) - fmt.Println("test3333333333333333333333333333") } } dataRes = &model.DataResource{ From b33031abc99d497155f759a6e82432c5b35ab0c5 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, 1 Apr 2020 15:43:35 +0800 Subject: [PATCH 147/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=89=AB=E7=A0=81=E5=BB=BA=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 79 ++++++++++++++++++++++- business/partner/purchase/yb/store_sku.go | 15 ++++- controllers/cms_store_sku.go | 22 +++++++ 3 files changed, 111 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 5771dbc27..b90ca4230 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -30,6 +30,7 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/baseapi/platformapi/dingdingapi" + "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils/errlist" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" @@ -4131,7 +4132,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr Upc: &productInfo.UpcCode, Status: model.SkuStatusNormal, CategoryID: 175, - IsGlobal: model.NO, + IsGlobal: model.YES, Unit: productInfo.Unit, }, Skus: []*model.SkuWithVendor{ @@ -4139,7 +4140,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr Sku: &model.Sku{}, }, }, - Places: []int{510100}, //默认成都 + // Places: []int{510100}, //默认成都 } if len(v.SkuList) > 0 { skuNameExt.Price = int(v.SkuList[0].VendorPrice) @@ -4196,3 +4197,77 @@ func buildStoreSkuBindInfosAndFocus(ctx *jxcontext.Context, db *dao.DaoDB, store err = dao.CreateEntity(db, skuBind) return err } + +func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.ProductInfo, price, storeID int) (err error) { + var ( + db = dao.GetDB() + skuBindInfos []*StoreSkuBindInfo + ) + if productInfo == nil { + return fmt.Errorf("未查询到相关商品!") + } + if price == 0 { + return fmt.Errorf("请输入商品价格!") + } + skuNames, err := dao.GetSkuNames(db, nil, nil, productInfo.Name) + if err != nil { + return err + } + if len(skuNames) > 1 { + return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) + } + //表示查到了,需要把upc更新上去,没查到就要新建 + if len(skuNames) == 1 && (productInfo.SpecQuality == skuNames[0].SpecQuality && productInfo.SpecUnit == skuNames[0].SpecUnit) { + skuNames[0].Upc = &productInfo.UpcCode + dao.UpdateEntity(db, skuNames[0], "Upc") + skuBindInfo := &StoreSkuBindInfo{ + StoreID: storeID, + NameID: skuNames[0].ID, + UnitPrice: price, + IsFocus: 1, + IsSale: 1, + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, false, true) + } else { + skuNameExt := &model.SkuNameExt{ + SkuName: model.SkuName{ + Name: productInfo.Name, + Upc: &productInfo.UpcCode, + Status: model.SkuStatusNormal, + CategoryID: 175, + IsGlobal: model.YES, + Unit: productInfo.Unit, + }, + Skus: []*model.SkuWithVendor{ + &model.SkuWithVendor{ + Sku: &model.Sku{}, + }, + }, + // Places: []int{510100}, //默认成都 + } + skuNameExt.Price = price + skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality + skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit + skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) + skuNameExt.Skus[0].Status = model.SkuStatusNormal + + if len(productInfo.ImgList) > 0 { + skuNameExt.Img = productInfo.ImgList[0] + } + outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) + if err != nil { + return err + } + skuBindInfo := &StoreSkuBindInfo{ + StoreID: storeID, + NameID: outSkuNameExt.ID, + UnitPrice: price, + IsFocus: 1, + IsSale: 1, + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, false, true) + } + return err +} diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 2bba35ed6..167167402 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -36,8 +36,9 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { storeSku.VendorSkuID = utils.Int64ToStr(result.UID) + // uploadYbImage(vendorStoreID, storeSku.YbBarCode, storeSku.Img) if !flag { - updateYbSkuPluCode(vendorStoreID, storeSku.YbBarCode) + updateYbSku(vendorStoreID, storeSku.YbBarCode) } } } @@ -447,7 +448,7 @@ func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult) return cats } -func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { +func updateYbSku(vendorStoreID, ybBarCode string) (err error) { for { err = api.YinBaoAPI.SaveProduct(vendorStoreID, ybBarCode) if err == nil { @@ -458,7 +459,7 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { if err != nil { break } - err = updateYbSkuPluCode(vendorStoreID, ybBarCode) + err = updateYbSku(vendorStoreID, ybBarCode) } else { break } @@ -482,3 +483,11 @@ func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (flag bool, err error) { } return flag, err } + +// func uploadYbImage(vendorStoreID, ybBarCode, img string) (err error) { +// ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, ybBarCode) +// resBinary, _, err := jxutils.DownloadFileByURL(img) + +// api.YinBaoAPI.UploadProductImage(vendorStoreID, ybSkuID, file) +// return err +// } diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index f85b7ba49..c5558a912 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -4,6 +4,8 @@ import ( "math" "time" + "git.rosy.net.cn/baseapi/platformapi/jdapi" + "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model/dao" @@ -775,3 +777,23 @@ func (c *StoreSkuController) CreateSkusAndFocusFromYb() { return retVal, "", err }) } + +// @Title 从微信上扫码标品到京西创建或关注 +// @Description 从微信上扫码标品到京西创建或关注 +// @Param token header string true "认证token" +// @Param payload formData string true "json数据,ProductInfo对象" +// @Param storeID formData int true "门店ID" +// @Param price formData int true "商品价格" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /CreateSkusAndFocusFromWx [post] +func (c *StoreSkuController) CreateSkusAndFocusFromWx() { + var productInfo *jdapi.ProductInfo + c.callCreateSkusAndFocusFromWx(func(params *tStoreSkuCreateSkusAndFocusFromWxParams) (retVal interface{}, errCode string, err error) { + if err = jxutils.Strings2Objs(params.Payload, &productInfo); err != nil { + return retVal, "", err + } + err = cms.CreateSkusAndFocusFromWx(params.Ctx, productInfo, params.Price, params.StoreID) + return retVal, "", err + }) +} From 5ac8150746dc97ad237858ab2c5af5bc795353a8 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, 1 Apr 2020 15:50:25 +0800 Subject: [PATCH 148/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=89=AB=E7=A0=81=E5=BB=BA=E5=95=86=E5=93=81?= 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 b03587dc1..e2ad284dd 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1827,6 +1827,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "CreateSkusAndFocusFromWx", + Router: `/CreateSkusAndFocusFromWx`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "CreateSkusAndFocusFromYb", From 44a747d03f36115b4a9e8aa1fa4aadbfcb4e015b 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, 1 Apr 2020 15:55:52 +0800 Subject: [PATCH 149/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=89=AB=E7=A0=81=E5=BB=BA=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 3 ++- business/jxstore/cms/store_sku.go | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index f777ad1c6..465a27c61 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1390,10 +1390,11 @@ func GetJdUpcCodeByName(ctx *jxcontext.Context, name, upcCode string) (productIn return retVal, err } for _, v := range productInfo { - _, name, _, specUnit, _, specQuality := jxutils.SplitSkuName(v.OriginalName) + _, name, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.OriginalName) v.Name = name v.SpecQuality = specQuality v.SpecUnit = specUnit + v.Unit = unit } retVal = productInfo return retVal, err diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index b90ca4230..ed5c7ac05 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4228,7 +4228,7 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product IsSale: 1, } skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, false, true) + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) } else { skuNameExt := &model.SkuNameExt{ SkuName: model.SkuName{ @@ -4267,7 +4267,7 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product IsSale: 1, } skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, false, true) + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) } return err } From c48eb6bbc480fafdb447bcc931c092613a3b8ffe 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, 1 Apr 2020 16:07:07 +0800 Subject: [PATCH 150/158] =?UTF-8?q?=E6=89=AB=E7=A0=81=E5=BB=BA=E5=95=86?= =?UTF-8?q?=E5=93=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 106 +++++++++++++++--------------- 1 file changed, 54 insertions(+), 52 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index ed5c7ac05..ca0c7037b 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4209,65 +4209,67 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product if price == 0 { return fmt.Errorf("请输入商品价格!") } - skuNames, err := dao.GetSkuNames(db, nil, nil, productInfo.Name) + focusSku := func(nameID int) { + skuBindInfo := &StoreSkuBindInfo{ + StoreID: storeID, + NameID: nameID, + UnitPrice: price, + IsFocus: 1, + IsSale: 1, + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + } + skuNames, err := dao.GetSkuNames(db, nil, []string{productInfo.UpcCode}, "") if err != nil { return err } - if len(skuNames) > 1 { - return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) - } - //表示查到了,需要把upc更新上去,没查到就要新建 - if len(skuNames) == 1 && (productInfo.SpecQuality == skuNames[0].SpecQuality && productInfo.SpecUnit == skuNames[0].SpecUnit) { - skuNames[0].Upc = &productInfo.UpcCode - dao.UpdateEntity(db, skuNames[0], "Upc") - skuBindInfo := &StoreSkuBindInfo{ - StoreID: storeID, - NameID: skuNames[0].ID, - UnitPrice: price, - IsFocus: 1, - IsSale: 1, - } - skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) - } else { - skuNameExt := &model.SkuNameExt{ - SkuName: model.SkuName{ - Name: productInfo.Name, - Upc: &productInfo.UpcCode, - Status: model.SkuStatusNormal, - CategoryID: 175, - IsGlobal: model.YES, - Unit: productInfo.Unit, - }, - Skus: []*model.SkuWithVendor{ - &model.SkuWithVendor{ - Sku: &model.Sku{}, - }, - }, - // Places: []int{510100}, //默认成都 - } - skuNameExt.Price = price - skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality - skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit - skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) - skuNameExt.Skus[0].Status = model.SkuStatusNormal - - if len(productInfo.ImgList) > 0 { - skuNameExt.Img = productInfo.ImgList[0] - } - outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) + if len(skuNames) == 0 { + skuNames2, err := dao.GetSkuNames(db, nil, nil, productInfo.Name) if err != nil { return err } - skuBindInfo := &StoreSkuBindInfo{ - StoreID: storeID, - NameID: outSkuNameExt.ID, - UnitPrice: price, - IsFocus: 1, - IsSale: 1, + if len(skuNames2) > 1 { + return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) } - skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + //表示查到了,需要把upc更新上去,没查到就要新建 + if len(skuNames2) == 1 && (productInfo.SpecQuality == skuNames2[0].SpecQuality && productInfo.SpecUnit == skuNames2[0].SpecUnit) { + skuNames2[0].Upc = &productInfo.UpcCode + dao.UpdateEntity(db, skuNames2[0], "Upc") + focusSku(skuNames2[0].ID) + } else { + skuNameExt := &model.SkuNameExt{ + SkuName: model.SkuName{ + Name: productInfo.Name, + Upc: &productInfo.UpcCode, + Status: model.SkuStatusNormal, + CategoryID: 175, + IsGlobal: model.YES, + Unit: productInfo.Unit, + }, + Skus: []*model.SkuWithVendor{ + &model.SkuWithVendor{ + Sku: &model.Sku{}, + }, + }, + // Places: []int{510100}, //默认成都 + } + skuNameExt.Price = price + skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality + skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit + skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) + skuNameExt.Skus[0].Status = model.SkuStatusNormal + if len(productInfo.ImgList) > 0 { + skuNameExt.Img = productInfo.ImgList[0] + } + outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) + if err != nil { + return err + } + focusSku(outSkuNameExt.ID) + } + } else { + focusSku(skuNames[0].ID) } return err } From 242e8f30850d31995d3d37f484538fac38ef7585 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, 1 Apr 2020 16:28:11 +0800 Subject: [PATCH 151/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9A=82=E6=97=A0?= =?UTF-8?q?=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index ca0c7037b..c62c6c6e7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4131,7 +4131,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr Name: productInfo.Name, Upc: &productInfo.UpcCode, Status: model.SkuStatusNormal, - CategoryID: 175, + CategoryID: 291, IsGlobal: model.YES, Unit: productInfo.Unit, }, @@ -4243,7 +4243,7 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product Name: productInfo.Name, Upc: &productInfo.UpcCode, Status: model.SkuStatusNormal, - CategoryID: 175, + CategoryID: 291, IsGlobal: model.YES, Unit: productInfo.Unit, }, From fc532c861be78072ca6993320f3f6e24e3e2118a 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, 1 Apr 2020 17:09:47 +0800 Subject: [PATCH 152/158] =?UTF-8?q?=E6=89=AB=E7=A0=81=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c62c6c6e7..1fc50ca90 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4218,7 +4218,10 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product IsSale: 1, } skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + _, err := UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + if err != nil { + err = nil + } } skuNames, err := dao.GetSkuNames(db, nil, []string{productInfo.UpcCode}, "") if err != nil { @@ -4229,6 +4232,9 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product if err != nil { return err } + if productInfo.Name == "" { + return fmt.Errorf("暂时无法创建此商品,[%v]", productInfo.Name) + } if len(skuNames2) > 1 { return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) } From 103bfa122450f07b70aa7b9ab1c853667928a1a9 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, 1 Apr 2020 17:18:16 +0800 Subject: [PATCH 153/158] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 35 ++++++++++++++++++----- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 167167402..dd78e14fd 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -3,6 +3,7 @@ package yb import ( "fmt" "regexp" + "strings" "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" @@ -36,7 +37,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { storeSku.VendorSkuID = utils.Int64ToStr(result.UID) - // uploadYbImage(vendorStoreID, storeSku.YbBarCode, storeSku.Img) + uploadYbImage(vendorStoreID, storeSku.YbBarCode, storeSku.Img) if !flag { updateYbSku(vendorStoreID, storeSku.YbBarCode) } @@ -484,10 +485,30 @@ func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (flag bool, err error) { return flag, err } -// func uploadYbImage(vendorStoreID, ybBarCode, img string) (err error) { -// ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, ybBarCode) -// resBinary, _, err := jxutils.DownloadFileByURL(img) +func uploadYbImage(vendorStoreID, ybBarCode, img string) (err error) { + ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, ybBarCode) + resBinary, _, err := jxutils.DownloadFileByURL(img) + fileName := img[strings.LastIndex(img, "/")+1:] + err = uploadYbImageLoop(vendorStoreID, ybSkuID, resBinary, fileName) + return err +} -// api.YinBaoAPI.UploadProductImage(vendorStoreID, ybSkuID, file) -// return err -// } +func uploadYbImageLoop(vendorStoreID, ybSkuID string, resBinary []byte, fileName string) (err error) { + for { + err = api.YinBaoAPI.UploadProductImage(vendorStoreID, ybSkuID, resBinary, fileName) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = cms.ChangeYbCookie() + if err != nil { + break + } + err = uploadYbImageLoop(vendorStoreID, ybSkuID, resBinary, fileName) + } else { + break + } + } + } + return err +} From 7d06a550d73c75b128e3a22ea5c1b1aae56c24bd 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, 1 Apr 2020 17:32:49 +0800 Subject: [PATCH 154/158] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E4=BA=86=E9=93=B6?= =?UTF-8?q?=E8=B1=B9=E7=9A=84=E5=BA=97=E4=B8=8D=E8=87=AA=E5=8A=A8=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E7=95=85=E9=94=80=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1fc50ca90..2918ecce6 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3216,9 +3216,13 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe skuName []*model.SkuName skuNameMap = make(map[int]int) ) + //物料店和绑定了银豹的店不自动关注畅销品 if v.ID == model.MatterStoreID { return retVal, err } + if storeDetail, err2 := dao.GetStoreDetail(db, v.ID, model.VendorIDYB); err2 != nil || storeDetail.VendorStoreID != "" { + return retVal, err + } sql := ` SELECT DISTINCT a.name_id id FROM sku a From 1e7a5dbc0fdf0ff79421b8f8be28c66a8e5d1bcf 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, 1 Apr 2020 17:52:25 +0800 Subject: [PATCH 155/158] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 2918ecce6..0f615d6c1 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4272,10 +4272,7 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product if len(productInfo.ImgList) > 0 { skuNameExt.Img = productInfo.ImgList[0] } - outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) - if err != nil { - return err - } + outSkuNameExt, _ := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) focusSku(outSkuNameExt.ID) } } else { From 74cf1d755b285e6c6dbbacfa0d3a24640d8084f7 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, 2 Apr 2020 09:37:59 +0800 Subject: [PATCH 156/158] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9C=AA=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E7=9A=84=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 36 +++++++++++++++++++++++++++++++ business/jxstore/cms/store_sku.go | 4 ++-- business/jxstore/misc/misc.go | 3 +++ business/model/sku.go | 4 ++++ 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 465a27c61..6bea6d64b 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -7,8 +7,10 @@ import ( "strings" "time" + "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/platformapi/ebaiapi" + "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/baseapi/platformapi/jdapi" @@ -39,6 +41,13 @@ var ( ebaiUploadRTFShopID string // 饿百找一个店用于调用SkuUploadRTF ) +var ( + sendNoCatSkusMobile = []string{ + "18048531223", + "18982250714", + } +) + // func getAndSetEbaiUploadRTFShopID() (shopID string) { // if ebaiUploadRTFShopID == "" { // if storeDetail, err := dao.GetStoreDetail(dao.GetDB(), 0, model.VendorIDEBAI); err == nil { @@ -1674,3 +1683,30 @@ func UpdateExianDaSkuCategory(ctx *jxcontext.Context, isAsync, isContinueWhenErr } return hint, err } + +func SendNoCatSkusToOperater(ctx *jxcontext.Context) (err error) { + var ( + db = dao.GetDB() + skuNames []*model.SkuName + ) + sql := ` + SELECT * FROM sku_name WHERE deleted_at = ? AND category_id = ? + ` + sqlParams := []interface{}{utils.DefaultTimeValue, model.NoCatCatgoryID} + err = dao.GetRows(db, &skuNames, sql, sqlParams) + if err != nil { + return err + } + if len(skuNames) > 10 { + noticeMsg := "有超过10个标品未进行分类!" + for _, v := range skuNames { + noticeMsg += "NameID:" + utils.Int2Str(v.ID) + ",商品名:" + v.Name + "," + } + for _, mobile := range sendNoCatSkusMobile { + if user, err := dao.GetUserByID(db, "mobile", mobile); err != nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "标品未分类", noticeMsg) + } + } + } + return err +} diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 0f615d6c1..94ff4d22c 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4135,7 +4135,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr Name: productInfo.Name, Upc: &productInfo.UpcCode, Status: model.SkuStatusNormal, - CategoryID: 291, + CategoryID: model.NoCatCatgoryID, IsGlobal: model.YES, Unit: productInfo.Unit, }, @@ -4253,7 +4253,7 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product Name: productInfo.Name, Upc: &productInfo.UpcCode, Status: model.SkuStatusNormal, - CategoryID: 291, + CategoryID: model.NoCatCatgoryID, IsGlobal: model.YES, Unit: productInfo.Unit, }, diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 076ede790..7fd366742 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -206,6 +206,9 @@ func Init() { ScheduleTimerFunc("BackUpStoreSkuBind", func() { cms.BackUpStoreSkuBind(jxcontext.AdminCtx, true, true) }, backUpStoreSkuBindList) + ScheduleTimerFunc("SendNoCatSkusToOperater", func() { + cms.SendNoCatSkusToOperater(jxcontext.AdminCtx) + }, autoPayForPopluarManList) } ScheduleTimerFunc("AutoSaleStoreSku", func() { cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false) diff --git a/business/model/sku.go b/business/model/sku.go index 93256e65a..87741def0 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -14,6 +14,10 @@ const ( SpecUnitML = 3 ) +const ( + NoCatCatgoryID = 291 +) + const ( SkuStatusDeleted = -1 SkuStatusDontSale = 0 From ef7ab4cca2e7d985fcd57b26c4db27855928f294 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, 2 Apr 2020 09:55:45 +0800 Subject: [PATCH 157/158] =?UTF-8?q?=E6=AF=8F=E6=99=9A=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E9=A1=BA?= =?UTF-8?q?=E4=BE=BF=E5=88=B7=E6=96=B0=E8=BF=90=E5=8D=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 118 +++++++++--------- 1 file changed, 56 insertions(+), 62 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 9c1eb3da3..b32992540 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1261,6 +1261,8 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { } dao.Commit(db) changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "") + getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(vv.VendorOrderID) + updateJdWayBillInfo(db, vv, getTrackMessagePlusByOrderResult) } else { deliveringCount++ } @@ -1288,26 +1290,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { changeOrderStatus(v.VendorOrderID, v.Status, "") } else { queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID) - if len(queryOrderStatus.OrderStatusList) > 0 { - if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() - v.Status = model.OrderStatusFinished - dao.UpdateEntity(db, v, "Status") - waybills, err := dao.GetWaybills(db, v.VendorOrderID) - if err == nil && len(waybills) > 0 { - waybills[0].Status = model.WaybillStatusDelivered - dao.UpdateEntity(db, waybills[0], "Status") - } - dao.Commit(db) - changeOrderStatus(v.VendorOrderID, model.OrderStatusFinished, "") - } - } + getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(v.VendorOrderID) + updateMatterOrderStatus(db, v, queryOrderStatus) + updateJdWayBillInfo(db, v, getTrackMessagePlusByOrderResult) } } return err @@ -1357,54 +1342,63 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result } } if len(queryOrderStatus.OrderStatusList) > 0 { - if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() - order.Status = model.OrderStatusFinished - dao.UpdateEntity(db, order, "Status") - waybills, err := dao.GetWaybills(db, vendorOrderID) - if err == nil && len(waybills) > 0 { - waybills[0].Status = model.WaybillStatusDelivered - dao.UpdateEntity(db, waybills[0], "Status") - } - dao.Commit(db) - changeOrderStatus(vendorOrderID, model.OrderStatusFinished, "") - } + updateMatterOrderStatus(db, order, queryOrderStatus) } if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { - var ( - waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode - cName string - cMobile string - waybills []*model.Waybill - ) - for _, vv := range getTrackMessagePlusByOrderResult.ResultData { - if vv.OpeTitle == "配送员收货" { - result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1) - cName = result[0][1] - cMobile = result[0][2] - break - } - } - waybills, err = dao.GetWaybills(db, vendorOrderID) - if len(waybills) > 0 { - waybills[0].VendorWaybillID = waybillCode - waybills[0].CourierName = cName - waybills[0].CourierMobile = cMobile - order.VendorWaybillID = waybillCode - order.WaybillVendorID = model.VendorIDJDWL - dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID") - dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") - } + updateJdWayBillInfo(db, order, getTrackMessagePlusByOrderResult) } return result, err } +func updateMatterOrderStatus(db *dao.DaoDB, order *model.GoodsOrder, queryOrderStatus *jdeclpapi.QueryOrderStatusResult) { + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + order.Status = model.OrderStatusFinished + dao.UpdateEntity(db, order, "Status") + waybills, err := dao.GetWaybills(db, order.VendorOrderID) + if err == nil && len(waybills) > 0 { + waybills[0].Status = model.WaybillStatusDelivered + dao.UpdateEntity(db, waybills[0], "Status") + } + dao.Commit(db) + changeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "") + } +} + +func updateJdWayBillInfo(db *dao.DaoDB, order *model.GoodsOrder, getTrackMessagePlusByOrderResult *jdeclpapi.GetTrackMessagePlusByOrderResult) (err error) { + var ( + waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode + cName string + cMobile string + waybills []*model.Waybill + ) + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { + if vv.OpeTitle == "配送员收货" { + result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1) + cName = result[0][1] + cMobile = result[0][2] + break + } + } + waybills, err = dao.GetWaybills(db, order.VendorOrderID) + if len(waybills) > 0 { + waybills[0].VendorWaybillID = waybillCode + waybills[0].CourierName = cName + waybills[0].CourierMobile = cMobile + order.VendorWaybillID = waybillCode + order.WaybillVendorID = model.VendorIDJDWL + dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID") + dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") + } + return err +} + func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { var ( skus = jxOrder.Skus From a5c3a1c9852b4e484e1bfbfe006b6c28d506b492 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, 2 Apr 2020 13:32:40 +0800 Subject: [PATCH 158/158] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=E5=8F=96=E8=B4=A7=E5=A4=B1=E8=B4=A5=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E6=B8=85=E9=99=A4orderflag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/defsch/defsch.go | 6 +++++- business/jxstore/cms/store_sku.go | 5 +---- business/model/dao/dao_order.go | 9 +++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 01a515b14..9fa6a6111 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -417,7 +417,11 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod } else if status.Status == model.OrderFlagMaskFailedDeliver { clearFlag = model.OrderFlagMaskFailedDeliver } - dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, clearFlag) + if order.Flag > clearFlag { + dao.ClearOrderFlag2(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, clearFlag|model.OrderFlagMaskPrinted) + } else { + dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, clearFlag) + } } } } diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 94ff4d22c..a2ea1bb36 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3216,13 +3216,10 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe skuName []*model.SkuName skuNameMap = make(map[int]int) ) - //物料店和绑定了银豹的店不自动关注畅销品 + //物料店不自动关注畅销品 if v.ID == model.MatterStoreID { return retVal, err } - if storeDetail, err2 := dao.GetStoreDetail(db, v.ID, model.VendorIDYB); err2 != nil || storeDetail.VendorStoreID != "" { - return retVal, err - } sql := ` SELECT DISTINCT a.name_id id FROM sku a diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index c91a89b55..9cbd4c970 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -233,6 +233,15 @@ func ClearOrderFlag(db *DaoDB, userName string, vendorOrderID string, vendorID i return err } +func ClearOrderFlag2(db *DaoDB, userName string, vendorOrderID string, vendorID int, flag int) (err error) { + _, err = ExecuteSQL(db, ` + UPDATE goods_order + SET flag = ? + WHERE vendor_order_id = ? AND vendor_id = ? + `, flag, vendorOrderID, vendorID) + return err +} + func SetAfsOrderFlag(db *DaoDB, userName string, afsOrderID string, vendorID int, flag int) (err error) { _, err = ExecuteSQL(db, ` UPDATE afs_order