diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 6da8f5c12..2873289c0 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1217,6 +1217,11 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend } }() if err = dao.CreateEntity(db, storeMap); err == nil { + if vendorID == model.VendorIDJDShop { + storeMap2 := storeMap + storeMap2.VendorOrgCode = "2" + dao.CreateEntity(db, storeMap2) + } dao.Commit(db) outStoreMap = storeMap _, err = CurVendorSync.SyncStore(ctx, db, storeMap.VendorID, storeID, false, userName) diff --git a/business/model/store.go b/business/model/store.go index 572b6d369..3030a6219 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -453,7 +453,7 @@ type StoreMap struct { func (*StoreMap) TableUnique() [][]string { return [][]string{ []string{"StoreID", "VendorID", "DeletedAt", "VendorOrgCode"}, - []string{"VendorStoreID", "VendorID", "DeletedAt"}, + []string{"VendorStoreID", "VendorID", "DeletedAt", "VendorOrgCode"}, } } diff --git a/business/partner/purchase/jdshop/store.go b/business/partner/purchase/jdshop/store.go index 0910b9196..f696be1c4 100644 --- a/business/partner/purchase/jdshop/store.go +++ b/business/partner/purchase/jdshop/store.go @@ -99,11 +99,25 @@ func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri CategoryName: jdshopapi.JdsStoreCategoryName, CustomerID: utils.Int2Str(store.ID), } + createEntityStoreParam2 := &jdshopapi.CreateEntityStoreParam{ + Name: "京西菜市" + strings.ReplaceAll(store.Name, "店", "") + "生鲜店", + AddCode: store.JdsCode, + AddCodeName: store.DistrictName, + AddName: store.ProvinceName + store.CityName + store.DistrictName + "@!" + store.Address, + Coordinate: utils.Float64ToStr(jxutils.IntCoordinate2Standard(store.Lat)) + "," + utils.Float64ToStr(jxutils.IntCoordinate2Standard(store.Lng)), + Phone: store.Tel1, + ExtendJSON: string(timeJSON), + ImageFile: base64.StdEncoding.EncodeToString(data), + CategoryName: "生鲜店", + CustomerID: utils.Int2Str(store.ID), + } if store.JdsStreetCode != 0 { createEntityStoreParam.AddCode = store.JdsStreetCode + createEntityStoreParam2.AddCode = store.JdsStreetCode } if createEntityStoreParam.AddCode == 0 { createEntityStoreParam.AddCode = store.JdCode + createEntityStoreParam2.AddCode = store.JdCode } //证明这个店可能隶属直辖市或者东莞 if model.ZXCityCodeMap[store.CityCode] != "" { @@ -121,6 +135,7 @@ func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri for _, vvv := range result3 { if street == vvv.AreaName { createEntityStoreParam.AddCode = vvv.AreaID + createEntityStoreParam2.AddCode = vvv.AreaID break } } @@ -132,6 +147,69 @@ func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri } } vendorStoreID, err = api.JdShopAPI.CreateEntityStore(createEntityStoreParam) + vendorStoreID2, _ := api.JdShop2API.CreateEntityStore(createEntityStoreParam2) + if shopDetailResult, err := api.JdShop2API.ShopDetail(utils.Str2Int(vendorStoreID2)); err == nil { + if store.Licence != "" { + var storeName string + data, _, _ := jxutils.DownloadFileByURL(store.Licence) + fileName := store.Licence[strings.LastIndex(store.Licence, "/")+1 : len(store.Licence)] + url, _ := api.JdShop2API.UploadImageNew(data, fileName) + ex := store.LicenceExpire + if ex == "" { + ex = utils.Time2Str(utils.Str2Time(store.LicenceValid).AddDate(0, 6, 0)) + } + if !strings.Contains(ex, "00:00:00") { + ex += " 00:00:00" + } + if strings.Contains(store.Name, "(") { + storeName = store.Name[0:strings.Index(store.Name, "(")] + store.Name[strings.Index(store.Name, ")")+3:len(store.Name)] + } + if strings.Contains(store.Name, ".") { + storeName = store.Name[0:strings.Index(store.Name, ".")] + store.Name[strings.Index(store.Name, ".")+1:len(store.Name)] + } + err = api.JdShop2API.UpdateBasic(&jdshopapi.UpdateBasicParam{ + StoreID: utils.Str2Int(vendorStoreID2), + StoreName: storeName, + CategoryID2: 62, + Coordinate: shopDetailResult.Coordinate, + BussinessBeginTime: shopDetailResult.BussinessBeginTime, + BussinessEndTime: shopDetailResult.BussinessEndTime, + ImgURL: shopDetailResult.ImgURL, + StorePhone: shopDetailResult.StorePhone, + AddName: shopDetailResult.AddName, + AddCode1: shopDetailResult.AddCode1, + AddCode2: shopDetailResult.AddCode2, + AddCode3: shopDetailResult.AddCode3, + CategoryID1: 34, + QualificationRequests: []*jdshopapi.QualificationRequests{ + &jdshopapi.QualificationRequests{ + QualificationID: 41, + QualificationName: "营业执照", + QualificationNo: store.LicenceCode, + QualificationURL: url, + StartTime: utils.Time2Str(utils.Str2Time(store.LicenceValid)), + EndingTime: ex, + Time: []string{utils.Time2Str(utils.Str2Time(store.LicenceValid)), ex}, + }, + }, + }) + if err == nil { + var storeMap *model.StoreMap + sql := ` + SELECT * FROM store_map WHERE deletad_at = ? AND store_id = ? AND vendor_id = ? AND vendor_org_code = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, storeID, model.VendorIDJDShop, "2", + } + if err = dao.GetRow(db, &storeMap, sql, sqlParams); err == nil { + if storeMap != nil { + storeMap.VendorStoreID = vendorStoreID2 + _, err = dao.UpdateEntity(db, storeMap, "VendorStoreID") + } + } + } + } + } return vendorStoreID, err } diff --git a/business/partner/purchase/jdshop/store_sku.go b/business/partner/purchase/jdshop/store_sku.go index 8cc797b92..7140a5d22 100644 --- a/business/partner/purchase/jdshop/store_sku.go +++ b/business/partner/purchase/jdshop/store_sku.go @@ -445,6 +445,17 @@ func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTas return skuNameList, err } +func getMainStoreVendorSkuID(mainStoreID int, skuID int) (vendorSkuID int64, err error) { + var ( + db = dao.GetDB() + ) + storeSkus, err := dao.GetStoresSkusInfo(db, []int{mainStoreID}, []int{skuID}) + if len(storeSkus) > 0 { + vendorSkuID = storeSkus[0].JdsID + } + return vendorSkuID, 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 { var stock = 0 @@ -472,7 +483,9 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr } } } else { - err = api.JdShop2API.StoreWareDoUpdate(status, utils.Str2Int64(v.VendorSkuID), vendorStoreID) + if vendorSkuID, err := getMainStoreVendorSkuID(model.JdShopMainStoreID2, v.SkuID); err == nil { + err = api.JdShop2API.StoreWareDoUpdate(status, vendorSkuID, vendorStoreID) + } } } } @@ -494,7 +507,9 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg if v.VendorOrgCode == "1" { // null } else { - err = api.JdShop2API.StoreUpdatePrice(utils.Float64TwoInt(jxutils.IntPrice2Standard(v.VendorPrice)), utils.Str2Int64(v.VendorSkuID), vendorStoreID) + if vendorSkuID, err := getMainStoreVendorSkuID(model.JdShopMainStoreID2, v.SkuID); err == nil { + err = api.JdShop2API.StoreUpdatePrice(utils.Float64TwoInt(jxutils.IntPrice2Standard(v.VendorPrice)), vendorSkuID, vendorStoreID) + } } } if err != nil { @@ -513,7 +528,9 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg } else if storeID == model.JdShopMainStoreID2 { } else { - err = api.JdShop2API.StoreUpdateStock(v.Stock, utils.Str2Int64(v.VendorSkuID), vendorStoreID) + if vendorSkuID, err := getMainStoreVendorSkuID(model.JdShopMainStoreID2, v.SkuID); err == nil { + err = api.JdShop2API.StoreUpdateStock(v.Stock, vendorSkuID, vendorStoreID) + } } } if err != nil {