1
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user