This commit is contained in:
richboo111
2022-12-07 10:51:18 +08:00
parent 08ae4fd941
commit fab6e33427
2 changed files with 189 additions and 209 deletions

View File

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

View File

@@ -30,10 +30,10 @@ const (
) )
// /warehouse/create 创建单个区域仓 // /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, "") storeDetail, err := dao.GetStoreDetail(dao.GetDB(), int(storeID), 0, "")
if err != nil { if err != nil {
return "", fmt.Errorf("获取门店本地信息失败:%v", err) return 0, fmt.Errorf("获取门店本地信息失败:%v", err)
} }
resp, err := getAPI(appOrgCode, 0, "").CreateWarehouse(&warehouse_create_request.WarehouseCreateParam{ resp, err := getAPI(appOrgCode, 0, "").CreateWarehouse(&warehouse_create_request.WarehouseCreateParam{
OutWarehouseId: utils.Int64ToStr(storeID), //本地storeID绑定 OutWarehouseId: utils.Int64ToStr(storeID), //本地storeID绑定
@@ -50,7 +50,7 @@ func CreateWarehouse(appOrgCode string, storeID int64) (warehouseID string, err
}, },
}) })
if err != nil { if err != nil {
return "", fmt.Errorf("创建单个区域仓失败:%v", err) return 0, fmt.Errorf("创建单个区域仓失败:%v", err)
} }
return resp.WarehouseId, nil return resp.WarehouseId, nil
} }