This commit is contained in:
苏尹岚
2020-11-27 11:09:18 +08:00
parent 6fa46bebb6
commit bae7d7f2ee
4 changed files with 104 additions and 4 deletions

View File

@@ -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)

View File

@@ -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"},
}
}

View File

@@ -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
}

View File

@@ -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 {