package jdshop import ( "regexp" "git.rosy.net.cn/baseapi/platformapi/jdshopapi" "git.rosy.net.cn/jx-callback/globals/api" "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/globals" ) var ( sensitiveWordRegexp = regexp.MustCompile(`商品名称中含有敏感词(\[.*\])`) ) func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { } return failedList, err } func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { } return failedList, err } func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { } 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) { return skuNameList, 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.EnableJdShopWrite { } 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.EnableJdShopWrite { } 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.EnableJdShopWrite { } return failedList, err } func (p *PurchaseHandler) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*partner.BareCategoryInfo, err error) { result, err := api.JdShopAPI.FindShopCategories() for _, v := range result { var cat = &partner.BareCategoryInfo{ VendorCatID: utils.Int64ToStr(v.CID), Name: v.Name, } if v.ParentCID == 0 { cat.Level = 1 } else { cat.Level = 2 } cats = append(cats, cat) } return cats, err } func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { err = updateOrCreateCategories(storeCat, true) } return err } func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { err = updateOrCreateCategories(storeCat, false) } return err } func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { _, err = api.JdShopAPI.DeleteShopCategory(utils.Str2Int64(vendorCatID)) } return err } func (p *PurchaseHandler) IsErrSkuExist(err error) (isExist bool) { return false } func (p *PurchaseHandler) IsErrCategoryExist(err error) (isExist bool) { return false } func (p *PurchaseHandler) IsErrCategoryNotExist(err error) (isNotExist bool) { return false } func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { return 1 } func (p *PurchaseHandler) GetSensitiveWordRegexp() *regexp.Regexp { return sensitiveWordRegexp } func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) { return false } 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 { globals.SugarLogger.Warnf("vendorSku2Jx, strange result:%s", utils.Format4Output(result, true)) return nil } if len(resultp) > 0 { if resultp[0].ImageURL != "" { // for _, v := range resultp.Productimages { picList = append(picList, resultp[0].ImageURL) // } } } prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(result.Name) skuName = &partner.SkuNameInfo{ Prefix: prefix, Name: name, Unit: unit, YbBarCode: result.Barcode, SkuList: []*partner.SkuInfo{ &partner.SkuInfo{ StoreSkuInfo: partner.StoreSkuInfo{ VendorSkuID: utils.Int64ToStr(result.UID), 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 updateOrCreateCategories(storeCat *dao.SkuStoreCatInfo, isCreate bool) (err error) { var createShopCategoryParams []*jdshopapi.CreateShopCategoryParam result, err := api.JdShopAPI.FindShopCategories() if err != nil { return err } for _, v := range result { createShopCategoryParam := &jdshopapi.CreateShopCategoryParam{ HomeShow: "0", ID: utils.Int64ToStr(v.CID), Open: "", OrderNo: utils.Int2Str(v.OrderNo), ParentID: utils.Int64ToStr(v.ParentCID), Title: v.Name, Type: jdshopapi.UpdateCatType, } createShopCategoryParams = append(createShopCategoryParams, createShopCategoryParam) } createShopCategoryParam2 := &jdshopapi.CreateShopCategoryParam{ HomeShow: "0", Open: "", OrderNo: utils.Int2Str(storeCat.Seq), ParentID: storeCat.ParentVendorCatID, Title: storeCat.Name, } if isCreate { createShopCategoryParam2.Type = jdshopapi.CreateCatType createShopCategoryParam2.ID = "1" } else { createShopCategoryParam2.Type = jdshopapi.UpdateCatType createShopCategoryParam2.ID = storeCat.VendorCatID } createShopCategoryParams = append(createShopCategoryParams, createShopCategoryParam2) api.JdShopAPI.SetCookieWithStr(` assist=LGXT4ZUUMHZXSGOLGPNFIKRCRII44WUYF7T552S4PFARLRLIWLYWJZLSXMTJAY7O5GBTNINHWPBVU4IZGVN4JO5W3FZOSZ6JDF5RNOIZXOFJ5WXLP4FOWHZICZOXXQGQ6YUWKCT7THA2MLW5D3RC6F6ZUPM36WATR5FCZAHW3F3S5T7ZT2LHP5AWL5EI26QAYWGD7IALLH27O; track=677d8856-d442-ddc3-5d4e-aee66f5018ed; jshopPin=shop_jxcs; _vender_=TNK3O6PALVQGGA33SGBIUTOKL4OOE6DP6OMNVIPMAMULGTRFWUMTVWGFRUTYP4L4EPN3KP73P33BOBN5SNJFBNQB5MFCGZYGW5XRTTNXOIGJ3UBPUN7T6B3ZLP2DV4JCXDI5P3KOXJ3PHLIIRZ2YVS4JSSA3JRSBACNLJSC24ELO46GIMRW53XGW36EBPLZMZP2MQCAMJNO44FKT46B7VDVT7KQTELESOOF6E377AYC3NWKQF6ICIYBW4BA4JL5QG2NHGNOHOUJDNUW3N22UF32DLFLEIQGVO2W55J6AKPPBT227XA5NO4S3NFVIUUUADGOYH56T72MTNXCILWVMN4RMUNVFMGL4ISGXJS7YILE7A2ESPAU43MISAOZM2BR53MGRB5OZSQZPV5DBDCN2OVVT3XT5N2VMFELARQNTMAJCDBGXFURZJPHE5NZCGUSHCIN2DSCCSUDOM7M3MPSFOZ2PQGAERCQH4RXS2MV4TO3OVODFGHBUAM47BXLPP46IHCMEVCRKW4OZE; _lvtc_=BD5325FETC5J66JHRSRRFFWXWE; TrackID=1h3umkDNc_BgqSONMEymk1DZFyoNv7KBdNZYGWBoTrlyti9r_59naQmd2hYhAxdfVpUsEL3nvLyaPzOh5QoUU1-rmEDd4opyI0oM0u-ayHaQ; logining=1; thor=80FAF09E9A09B6E618A68057BDFCFCB8B87C1706FE86F2E8F20251DD598C89ABC8F03DCAB3F5BE7A0CDD0F812D17258CA4603C28541A12C7183F098906F2EBD451175D5A5E341996FDBE3D23CA1D8B847A98C67F3533705D0757AFF57A4B0B4D1D6AD40D1E4AD9AF90E6BE6F807C2802DF5072847E20C96602C459A17166562FF47B9F01900825FF8EFE50C0FA08092F; __jda=48732324.1142616513.1573036516.1588986492.1589005815.16; __jdc=48732324; _BELONG_CLIENT_=WPSC4XJXWK5USS4JNZY2X7VRLR5MCBKRSVHEXABGTHDGISIQK5YOLZUXYE7IOIM7MOKO74H6CRN6WHAAR4TMDV3XZWMXZRCRT5XRNE3V356BTOB2Y7LPK66VWQK6HPTGWVXIDXDCPVE3W5WMHAIO6AT2LX2XXVNUCXR34ZWFK6HY45CORGIKOSYDYZBF27WOKTUX6BS4FZMIJWNUX6CB4JAA25ZLF7ZEKYOO4QV5HTSBXGNRM3E242MBI6V5D4C5VJDQ3EOYCOW5BMTUJZACIBHXQFAVLRF76VQY5PNJGGJNBEZHSFYYJA3YORRT7FB5AHCOIFQKF3W5RWNUX6CB4JAA26JNMO7AYWNUPZF5HTSBXGNRM3E242MBI6V5D4C5VJDQ3EOYCOW5BWZDKMOJ5BS6II53ERY6ALV3ZWPF42L4CPUHEGPYIII35KDC4FCNVCORCXFD6IVNLBEDPB2GGP4UHWNRUDOQBDIW7RZJXBA2WV5ANZOTEGUCDWYRVQS2YUTIZNZ276PRYG4N56V6YTII7MBKBC7LYHO7C555HTSBXGNRM3E466AYN67DHWVM5HQFJ4NFDO5BSBOFZX3ADTC6ASDKVLE4HKAWYYQ; b-sec=S2JWP6CAFP7K4I6PXVBUVCO6YVXUX2JAPDHLX5RZUDE4YKCGOEXBFZSIEGGC3GREOZ57KCKA3ERKO; JSESSIONID=7DB43A28ADC52B8C2B679218212E0F4F.s1; __jdb=48732324.19.1142616513|16.1589005815; _base_=YKH2KDFHMOZBLCUV7NSRBWQUJPBI7JIMU5R3EFJ5UDHJ5LCU7R2NILKK5UJ6GLA2RGYT464UKXAI4Z6HPCTN4UQM3WHVQ4ENFP57OC2DC7JQLRXRUO5PW6B77O6UXAZ4TCNE6YVKRXISVLBYGYO44RCDDPWDA4AEL7ZLXI2SG4SOQWCP5WPWO6EFS7HEHMRWVKBRVHB33TFD4SMNBHRJCTDFHU6SZXCZD6RFXX2OORYGL5H2GYF2IIH2KKD4T72IR4F577G2E5II2OMMXYF2GDYNTS7WGAUXFEWRJ3CTKDBDWMHUKJQF4ZFOTNBBYBIZRXZYERXXIG6ATNRXM5SIX62BZ6T5XXYBU4WCS3HCBNYDPXFCM2ZMCS474KZ44S5F; _vender_new_=GI63BGTJFDBQ46CD7JXUX3HEPM4P5LEA3TJTFGW4ZGGIVOLTPK5T25EXTBLCENPUTR7E2I23YDFQ4ARO6JW3NHSWBDE73RTUKJTADIPFPLYFE3ARGJUBPHWUIONS72KRQOZC5P7PB4VPPLRHGEP7L3Z5K62L2E2MGTWHFJRQ3CAVBDYVW2Z4J6U73HW4BKKOCDAH5T6OJJKWKLBZFOTI7342QSL7YQ2E3I4T777RNZF23XGOTCP3D4INHNO5MNKT3XJZQBVHWUVZYQUXCK5QQTKWADKQUCYV3JRY6YAYOD7Z5IIKGNLREQTCPO7SYGSIS655JUGOUILFLXVZE6KCFG7ZTPRUD6VPE4KCIE3TS7MEO6Q2VM3DL3XSPUEYNM4P4NA7VLZHCQSBG44X3BDXUGVLG2EYRAH7P7RGPNG6QKUCCZAY7XTGOTMC53TFUYERGNIH2RBULZ7UTZH5GU3TC6RWFI2QL4QTAIARA6GNVXENEOYIPZEHN222YDAJX5OBBEECAMAPNKZ3XNF5CNGDJ3DSU2ZLOCAKLFPCYTIIWPPJMCQ636F5464HS4OVFPFNIDW4OCE23JRPYP5FAL6TKHPAC3H3ZRU7WA5GKJJKBZUGIX7NEO4LZB7FJ3RZZZH3UHPQMNILD5DT2V7HVCUOVNOFBHIH3AY2GRQFROHUD6NU3DAFUJFA `) err = api.JdShopAPI.CreateShopCategory(createShopCategoryParams) return err }