diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index a798c8db0..9de083df0 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -179,57 +179,45 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee } //2.平台获取仓库信息以及电子围栏id - //bindWarehouseAndFence, err := GetWarehouseByStore(vendorOrgCode, vendorStoreID) - //if err != nil { - // globals.SugarLogger.Debugf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err) - // errList.AddErr(fmt.Errorf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err)) - //} - //if len(bindWarehouseAndFence) == 0 || utils.IsNil(bindWarehouseAndFence) { //未绑定仓库以及电子围栏 - //(1)创建仓库 - warehouseID, err := CreateWarehouse(vendorOrgCode, storeID) - if err != nil || len(warehouseID) == 0 || utils.IsNil(warehouseID) { - globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) - errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) - } else { //绑定 - if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID - globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err) - errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err)) + if bind, err := GetWarehouseByStore(vendorOrgCode, vendorStoreID); err != nil { + globals.SugarLogger.Debugf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err) + errList.AddErr(fmt.Errorf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err)) + } else { + //(1)仓库 + if bind[utils.Int64ToStr(storeID)][0].WarehouseId > 0 { + FreightTemplate.WarehouseID = bind[utils.Int64ToStr(storeID)][0].WarehouseId } else { - FreightTemplate.WarehouseID = utils.Str2Int64(warehouseID) + if warehouseID, err := CreateWarehouse(vendorOrgCode, storeID); err != nil || warehouseID == 0 { + globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) + errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) + } else { + if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID + globals.SugarLogger.Debugf("门店(%d) 绑定仓库%d 失败:%v", storeID, warehouseID, err) + errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库%d 失败:%v", storeID, warehouseID, err)) + } else { + FreightTemplate.WarehouseID = warehouseID + } + } + //(2)电子围栏 + if len(bind[utils.Int64ToStr(storeID)][0].OutFenceIds) > 0 { + FreightTemplate.FenceID = bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0] //保存一个就足够 + } else { + if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || len(fenceID) == 0 { + globals.SugarLogger.Debugf("门店(%d) 创建电子围栏失败:%v", storeID, err) + errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) + } else { + if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil { + globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) + errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) + } else { + FreightTemplate.FenceID = utils.Int64ToStr(storeID) + } + } + } } } - //(2)创建电子围栏 - if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //不管存在与否 直接创建 - globals.SugarLogger.Debugf("门店(%d) 创建电子围栏失败:%v", storeID, err) - errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) - } else { //绑定 - if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil { - globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) - errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) - } else { - FreightTemplate.FenceID = utils.Int64ToStr(storeID) - } - //} - //} else { - // //电子围栏二次验证 - // if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏 - // globals.SugarLogger.Debugf("进入二次创建电子围栏=========") - // if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //创建 - // globals.SugarLogger.Debug("门店(%d) 创建电子围栏失败:%v", storeID, err) - // errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) - // } else { //绑定 - // if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil { - // globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) - // errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) - // } else { - // FreightTemplate.FenceID = utils.Int64ToStr(storeID) - // } - // } - // } - } - //3.平台获取限售模板 - if bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID); err != nil || bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板 + if bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID); err != nil || bindSaleLimitID == 0 { //未绑定限售模板,目前默认创建起送价限售模板 if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err)) } else { @@ -242,17 +230,13 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee FreightTemplate.TradeLimitID = updateSaleLimitID } } - //4. 设置门店打包费 默认为0 if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil { errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) } - //5.同步进数据库 - FreightTemplate = &model.FreightTemplate{ - StoreID: int(storeID), - VendorStoreID: utils.Int64ToStr(vendorStoreID), - } + FreightTemplate.StoreID = int(storeID) + FreightTemplate.VendorStoreID = utils.Int64ToStr(vendorStoreID) if err := dao.CreateEntity(db, FreightTemplate); err != nil { if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID", "StoreID", "VendorStoreID"); err1 != nil { errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1)) @@ -261,119 +245,121 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee } } endErr := errList.GetErrListAsOne() - if utils.IsNil(errList) { + if endErr != nil { globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, false)))) return endErr } else { return nil } } -func CreateAndBindAllV2(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error { - var ( - db *dao.DaoDB - ctx *jxcontext.Context - errList = errlist.New() - FreightTemplate = &model.FreightTemplate{ - VendorStoreID: utils.Int64ToStr(vendorStoreID), - StoreID: int(storeID), - } - ) - task := tasksch.NewParallelTask("CreateAndBindAllV2", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(1), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - step := batchItemList[0].(int) - switch step { - case 0: //1.门店运费模板 - bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) - if err != nil { - globals.SugarLogger.Debugf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err) - errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) - } - if bindFreightIDs == 0 { - if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { - globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) - errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) - } else { - if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { - globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) - errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) - } else { - FreightTemplate.TemplateID = freightTemplateID - } - } - } else { - FreightTemplate.TemplateID = bindFreightIDs - } - case 1: //2.仓库以及电子围栏 - warehouseID, err := CreateWarehouse(vendorOrgCode, storeID) - if err != nil || len(warehouseID) == 0 || utils.IsNil(warehouseID) { - globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) - errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) - } else { //绑定 - if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID - globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err) - errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err)) - } else { - FreightTemplate.WarehouseID = utils.Str2Int64(warehouseID) - } - } - case 2: //3.电子围栏 - fenceID, err := CreateFenceByStore(vendorOrgCode, storeID) - if err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //不管存在与否 直接创建 - globals.SugarLogger.Debugf("门店(%d) 创建电子围栏失败:%v", storeID, err) - errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) - } else { //绑定 - if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil { - globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) - errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) - } else { - FreightTemplate.FenceID = utils.Int64ToStr(storeID) - } - } - case 3: //4.限售模板 - bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID) - if err != nil { - globals.SugarLogger.Debugf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err) - errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err)) - } - if bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板 - if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { - errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err)) - } else { - FreightTemplate.TradeLimitID = createSaleLimitID - } - } else { - if updateSaleLimitID, err := UpdateTradeLimitTemplate(vendorOrgCode, bindSaleLimitID, minPrice); err != nil { - errList.AddErr(fmt.Errorf("更新门店起送价限售模板失败:%v", err)) - } else { - FreightTemplate.TradeLimitID = updateSaleLimitID - } - } - case 4: //5.门店打包费 默认为 0 - if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil { - errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) - } - } - return nil, err - }, []int{0, 1, 2, 3, 4}) - tasksch.ManageTask(task).Run() - //6.同步进数据库 - globals.SugarLogger.Debugf("preTest TradeLimitID==%d,TemplateID==%d, WarehouseID==%d,FenceID==%s", FreightTemplate.TradeLimitID, FreightTemplate.TemplateID, FreightTemplate.WarehouseID, FreightTemplate.FenceID) - if err := dao.CreateEntity(db, FreightTemplate); err != nil { - _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID") - if err1 == nil { - errList.AddErr(fmt.Errorf("同步Step1进数据库错误信息:%v", err)) - } else { - errList.AddErr(fmt.Errorf("同步Step2进数据库错误信息:%v", err1)) - } - } - endErr := errList.GetErrListAsOne() - if utils.IsNil(errList) { - globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", endErr) - return endErr - } else { - return nil - } -} + +//逻辑未修改,暂时不使用 +//func CreateAndBindAllV2(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error { +// var ( +// db *dao.DaoDB +// ctx *jxcontext.Context +// errList = errlist.New() +// FreightTemplate = &model.FreightTemplate{ +// VendorStoreID: utils.Int64ToStr(vendorStoreID), +// StoreID: int(storeID), +// } +// ) +// task := tasksch.NewParallelTask("CreateAndBindAllV2", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(1), ctx, +// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { +// step := batchItemList[0].(int) +// switch step { +// case 0: //1.门店运费模板 +// bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) +// if err != nil { +// globals.SugarLogger.Debugf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err) +// errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) +// } +// if bindFreightIDs == 0 { +// if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { +// globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) +// errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) +// } else { +// if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { +// globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) +// errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) +// } else { +// FreightTemplate.TemplateID = freightTemplateID +// } +// } +// } else { +// FreightTemplate.TemplateID = bindFreightIDs +// } +// case 1: //2.仓库以及电子围栏 +// warehouseID, err := CreateWarehouse(vendorOrgCode, storeID) +// if err != nil || warehouseID == 0 { +// globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) +// errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) +// } else { //绑定 +// if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID +// globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err) +// errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err)) +// } else { +// FreightTemplate.WarehouseID = utils.Str2Int64(warehouseID) +// } +// } +// case 2: //3.电子围栏 +// fenceID, err := CreateFenceByStore(vendorOrgCode, storeID) +// if err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //不管存在与否 直接创建 +// globals.SugarLogger.Debugf("门店(%d) 创建电子围栏失败:%v", storeID, err) +// errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) +// } else { //绑定 +// if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil { +// globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) +// errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) +// } else { +// FreightTemplate.FenceID = utils.Int64ToStr(storeID) +// } +// } +// case 3: //4.限售模板 +// bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID) +// if err != nil { +// globals.SugarLogger.Debugf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err) +// errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err)) +// } +// if bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板 +// if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { +// errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err)) +// } else { +// FreightTemplate.TradeLimitID = createSaleLimitID +// } +// } else { +// if updateSaleLimitID, err := UpdateTradeLimitTemplate(vendorOrgCode, bindSaleLimitID, minPrice); err != nil { +// errList.AddErr(fmt.Errorf("更新门店起送价限售模板失败:%v", err)) +// } else { +// FreightTemplate.TradeLimitID = updateSaleLimitID +// } +// } +// case 4: //5.门店打包费 默认为 0 +// if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil { +// errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) +// } +// } +// return nil, err +// }, []int{0, 1, 2, 3, 4}) +// tasksch.ManageTask(task).Run() +// //6.同步进数据库 +// globals.SugarLogger.Debugf("preTest TradeLimitID==%d,TemplateID==%d, WarehouseID==%d,FenceID==%s", FreightTemplate.TradeLimitID, FreightTemplate.TemplateID, FreightTemplate.WarehouseID, FreightTemplate.FenceID) +// if err := dao.CreateEntity(db, FreightTemplate); err != nil { +// _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID") +// if err1 == nil { +// errList.AddErr(fmt.Errorf("同步Step1进数据库错误信息:%v", err)) +// } else { +// errList.AddErr(fmt.Errorf("同步Step2进数据库错误信息:%v", err1)) +// } +// } +// endErr := errList.GetErrListAsOne() +// if utils.IsNil(errList) { +// globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", endErr) +// return endErr +// } else { +// return nil +// } +//} // shop/editStore 编辑门店信息 正向推送平台 func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) { @@ -401,12 +387,11 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } else { return fmt.Errorf("营业时间必填") } - vendorStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{ - StoreId: storeInfo.VendorStoreID, - } - apiObj := getAPI(storeInfo.VendorOrgCode, storeID, vendorStoreID.StoreId) + apiObj := getAPI(storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID) if globals.EnableDdStoreWrite { - remoteStoreInfo, err2 := apiObj.GetStoreDetail(vendorStoreID) + remoteStoreInfo, err2 := apiObj.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{ + StoreId: storeInfo.VendorStoreID, + }) if err2 != nil { return err2 } @@ -445,45 +430,40 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin errList.AddErr(fmt.Errorf("修改门店(%d) 信息失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err3)) } //电子围栏 - bindWarehouseAndFence, err := GetWarehouseByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID)) //todo 此接口暂时有问题 - if err != nil { + if bind, err := GetWarehouseByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID)); err != nil { errList.AddErr(fmt.Errorf("获取门店(%d) 电子围栏失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err)) - } - if len(bindWarehouseAndFence) == 0 || (len(bindWarehouseAndFence) != 0 && len(bindWarehouseAndFence[storeInfo.VendorStoreID][0].OutFenceIds) == 0) { - if fenceID, err := CreateFenceByStore(storeInfo.VendorOrgCode, int64(storeID)); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //创建 - globals.SugarLogger.Debug("门店(%d) 创建电子围栏失败:%v", storeID, err) - errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) - } else { //绑定 - if err := BindFenceByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID), []string{utils.Int2Str(storeID)}); err != nil { - globals.SugarLogger.Debug("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) - errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) + } else { + if len(bind[storeInfo.VendorStoreID][0].OutFenceIds) > 0 { + //默认更新第一个电子围栏 + outFenceID := bind[storeInfo.VendorStoreID][0].OutFenceIds[0] + if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, storeID); err != nil { + return errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err)) + } + FreightTemplate.FenceID = outFenceID + } else { + if fenceID, err := CreateFenceByStore(storeInfo.VendorOrgCode, int64(storeID)); err != nil || len(fenceID) == 0 { //创建 + globals.SugarLogger.Debug("门店(%d) 创建电子围栏失败:%v", storeID, err) + errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) } else { - FreightTemplate.FenceID = utils.Int2Str(storeID) + if err := BindFenceByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID), []string{utils.Int2Str(storeID)}); err != nil { + globals.SugarLogger.Debug("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) + errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) + } else { + FreightTemplate.FenceID = utils.Int2Str(storeID) + } } } - } else { - //更新电子围栏 - outFenceID := bindWarehouseAndFence[storeInfo.VendorStoreID][0].OutFenceIds[0] - //容错绑定 - if err := BindFenceByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID), []string{outFenceID}); err != nil { - globals.SugarLogger.Debugf("门店(%d) 容错绑定电子围栏:%s失败:%v", storeID, outFenceID, err) - errList.AddErr(fmt.Errorf("门店(%d) 容错绑定电子围栏:%s失败:%v", storeID, outFenceID, err)) - } - if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, storeID); err != nil { - return errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err)) - } - FreightTemplate.FenceID = outFenceID } + //同步进数据库 - FreightTemplate = &model.FreightTemplate{ - StoreID: storeID, - VendorStoreID: storeInfo.VendorStoreID, - } + FreightTemplate.StoreID = storeID + FreightTemplate.VendorStoreID = storeInfo.VendorStoreID if err = dao.CreateEntity(db, FreightTemplate); err != nil { if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID", "StoreID", "VendorStoreID"); err1 != nil { globals.SugarLogger.Debugf("db update storeID,vendorStoreID defeat on :%v", err1) errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1)) } else { + globals.SugarLogger.Debugf("db create storeID,vendorStoreID defeat on :%v", err) errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err)) } } @@ -506,19 +486,19 @@ func UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int } } else { //恢复营业 //与平台上店铺状态对比 - remoteStoreInfo, err2 := a.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{ + if remoteStoreInfo, err2 := a.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{ StoreId: vendorStoreID, - }) - if err2 != nil { + }); err2 != nil { return err2 - } - if remoteStoreInfo.StoreDetail.Store.SuspendType == tiktok_api.SuspendTypePlatformPenalty { - err = errors.New("门店因平台处罚暂停营业,不可主动修改营业状态") } else { - if _, err = a.UnsuspendStore(&shop_unsuspendStore_request.ShopUnsuspendStoreParam{ - StoreId: utils.Str2Int64(vendorStoreID), - }); err != nil { - return err + if remoteStoreInfo.StoreDetail.Store.SuspendType == tiktok_api.SuspendTypePlatformPenalty { + err = errors.New("门店因平台处罚暂停营业,不可主动修改营业状态") + } else { + if _, err = a.UnsuspendStore(&shop_unsuspendStore_request.ShopUnsuspendStoreParam{ + StoreId: utils.Str2Int64(vendorStoreID), + }); err != nil { + return err + } } } } @@ -862,11 +842,11 @@ func BindStoreSaleLimit(appOrgCode string, storeID, saleLimitTemplateID int64) e // 获取门店绑定限售模板 func GetStoreSaleLimit(appOrgCode string, storeID int64) (int64, error) { - saleLimitTemplateID, err := getAPI(appOrgCode, 0, "").StoreQuerySaleLimitTemp(storeID) - if err != nil { + if saleLimitTemplateID, err := getAPI(appOrgCode, 0, "").StoreQuerySaleLimitTemp(storeID); err != nil { return 0, err + } else { + return saleLimitTemplateID, nil } - return saleLimitTemplateID, nil } func (P *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, opTimeList []int16) (err error) { diff --git a/business/partner/purchase/tiktok_store/warehouse.go b/business/partner/purchase/tiktok_store/warehouse.go index 763b0a49b..8341e4474 100644 --- a/business/partner/purchase/tiktok_store/warehouse.go +++ b/business/partner/purchase/tiktok_store/warehouse.go @@ -30,10 +30,10 @@ const ( ) // /warehouse/create 创建单个区域仓 -func CreateWarehouse(appOrgCode string, storeID int64) (warehouseID string, err error) { +func CreateWarehouse(appOrgCode string, storeID int64) (warehouseID int64, err error) { storeDetail, err := dao.GetStoreDetail(dao.GetDB(), int(storeID), 0, "") if err != nil { - return "", fmt.Errorf("获取门店本地信息失败:%v", err) + return 0, fmt.Errorf("获取门店本地信息失败:%v", err) } resp, err := getAPI(appOrgCode, 0, "").CreateWarehouse(&warehouse_create_request.WarehouseCreateParam{ OutWarehouseId: utils.Int64ToStr(storeID), //本地storeID绑定 @@ -50,7 +50,7 @@ func CreateWarehouse(appOrgCode string, storeID int64) (warehouseID string, err }, }) if err != nil { - return "", fmt.Errorf("创建单个区域仓失败:%v", err) + return 0, fmt.Errorf("创建单个区域仓失败:%v", err) } return resp.WarehouseId, nil }