This commit is contained in:
richboo111
2022-11-02 14:51:41 +08:00
parent ccc4526349
commit 092ff11009

View File

@@ -144,24 +144,29 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
//1.平台获取门店运费模板 //1.平台获取门店运费模板
bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID)
if err != nil { if err != nil {
globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)
errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err))
} }
if bindFreightIDs == 0 { //1未查询到绑定信息不算错误 if bindFreightIDs == 0 { //1未查询到绑定信息不算错误
//创建 //创建
if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) {
globals.SugarLogger.Debug("创建运费模板失败:%v", err)
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err))
} else { //绑定 } else { //绑定
if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil {
globals.SugarLogger.Debug("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)
errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err))
} else { } else {
FreightTemplate.TemplateID = freightTemplateID FreightTemplate.TemplateID = freightTemplateID
if err = dao.CreateEntity(db, FreightTemplate); err != nil { if err = dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("运费模板:%d 同步数据库失败:%v", freightTemplateID, err)
errList.AddErr(fmt.Errorf("运费模板:%d 同步数据库失败:%v", freightTemplateID, err)) errList.AddErr(fmt.Errorf("运费模板:%d 同步数据库失败:%v", freightTemplateID, err))
} }
} }
} }
} else { //同步信息到本地 } else { //同步信息到本地
if _, err = dao.UpdateEntity(db, FreightTemplate, "TemplateID"); err != nil { if _, err = dao.UpdateEntity(db, FreightTemplate, "TemplateID"); err != nil {
globals.SugarLogger.Debug("平台运费模板 同步到本地出错:%v", err)
errList.AddErr(fmt.Errorf("平台运费模板 同步到本地出错:%v", err)) errList.AddErr(fmt.Errorf("平台运费模板 同步到本地出错:%v", err))
} }
} }
@@ -169,59 +174,72 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
//2.平台获取仓库信息以及电子围栏id //2.平台获取仓库信息以及电子围栏id
bindWarehouseAndFence, err := GetWarehouseByStore(vendorOrgCode, vendorStoreID) bindWarehouseAndFence, err := GetWarehouseByStore(vendorOrgCode, vendorStoreID)
if err != nil { if err != nil {
globals.SugarLogger.Debug("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err)
errList.AddErr(fmt.Errorf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err)) errList.AddErr(fmt.Errorf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err))
} }
if len(bindWarehouseAndFence) == 0 || utils.IsNil(bindWarehouseAndFence) { //未绑定仓库以及电子围栏 if len(bindWarehouseAndFence) == 0 || utils.IsNil(bindWarehouseAndFence) { //未绑定仓库以及电子围栏
//(1)创建仓库 //(1)创建仓库
warehouseID, err := CreateWarehouse(vendorOrgCode, utils.Int64ToStr(storeID)) warehouseID, err := CreateWarehouse(vendorOrgCode, utils.Int64ToStr(storeID))
if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) { if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) {
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 = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID
globals.SugarLogger.Debug("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err)
errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err)) errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err))
} else { } else {
FreightTemplate.WarehouseID = warehouseID FreightTemplate.WarehouseID = warehouseID
if err = dao.CreateEntity(db, FreightTemplate); err != nil { if err = dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("仓库ID(%d) 同步到数据库失败:%v", warehouseID, err)
errList.AddErr(fmt.Errorf("仓库ID(%d) 同步到数据库失败:%v", warehouseID, err)) errList.AddErr(fmt.Errorf("仓库ID(%d) 同步到数据库失败:%v", warehouseID, err))
} }
} }
FreightTemplate.WarehouseID = warehouseID
} }
//(2)创建电子围栏 //(2)创建电子围栏
if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //不管存在与否 直接创建 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)) 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.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))
} else { } else {
FreightTemplate.FenceID = utils.Int64ToStr(storeID) FreightTemplate.FenceID = utils.Int64ToStr(storeID)
if err := dao.CreateEntity(db, FreightTemplate); err != nil { if err := dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err)
errList.AddErr(fmt.Errorf("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err)) errList.AddErr(fmt.Errorf("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err))
} }
} }
FreightTemplate.FenceID = utils.Int64ToStr(storeID)
} }
} else { } else {
if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏 if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏
globals.SugarLogger.Debugf("进入创建电子围栏=========") globals.SugarLogger.Debug("进入创建电子围栏=========")
if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //创建 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)) 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.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))
} else { } else {
FreightTemplate.FenceID = utils.Int64ToStr(storeID) FreightTemplate.FenceID = utils.Int64ToStr(storeID)
if err := dao.CreateEntity(db, FreightTemplate); err != nil { if err := dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err)
errList.AddErr(fmt.Errorf("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err)) errList.AddErr(fmt.Errorf("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err))
} }
} }
FreightTemplate.FenceID = utils.Int64ToStr(storeID)
} }
} }
//同步到本地数据库 //同步到本地数据库
FreightTemplate.FenceID = bindWarehouseAndFence[vendorStoreID][0].OutFenceIds[0]
FreightTemplate.WarehouseID = bindWarehouseAndFence[vendorStoreID][0].WarehouseId
if _, err = dao.UpdateEntity(db, FreightTemplate, "FenceID"); err != nil { if _, err = dao.UpdateEntity(db, FreightTemplate, "FenceID"); err != nil {
globals.SugarLogger.Debug("电子围栏 同步到本地出错:%v", err)
errList.AddErr(fmt.Errorf("电子围栏 同步到本地出错:%v", err)) errList.AddErr(fmt.Errorf("电子围栏 同步到本地出错:%v", err))
} }
if _, err = dao.UpdateEntity(db, FreightTemplate, "WarehouseID"); err != nil { if _, err = dao.UpdateEntity(db, FreightTemplate, "WarehouseID"); err != nil {
globals.SugarLogger.Debug("仓库 同步到本地出错:%v", err)
errList.AddErr(fmt.Errorf("仓库 同步到本地出错:%v", err)) errList.AddErr(fmt.Errorf("仓库 同步到本地出错:%v", err))
} }
} }
@@ -229,17 +247,21 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
//3.平台获取限售模板 //3.平台获取限售模板
SaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID) SaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID)
if err != nil { if err != nil {
globals.SugarLogger.Debug("获取门店(%d) 限售模板出错:%v", vendorStoreID, err)
errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板出错:%v", vendorStoreID, err)) errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板出错:%v", vendorStoreID, err))
} }
if SaleLimitID == 0 || utils.IsNil(SaleLimitID) { //未绑定限售模板 if SaleLimitID == 0 || utils.IsNil(SaleLimitID) { //未绑定限售模板
if tradeLimitID, err := CreateTradeLimitTemplate(vendorOrgCode, storeID); err != nil || tradeLimitID == 0 || utils.IsNil(tradeLimitID) { if tradeLimitID, err := CreateTradeLimitTemplate(vendorOrgCode, storeID); err != nil || tradeLimitID == 0 || utils.IsNil(tradeLimitID) {
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 := BindStoreSaleLimit(vendorOrgCode, vendorStoreID, tradeLimitID); err != nil { if err := BindStoreSaleLimit(vendorOrgCode, vendorStoreID, tradeLimitID); err != nil {
errList.AddErr(fmt.Errorf("门店(%d) 绑定限售模板失败:%v", storeID, err)) globals.SugarLogger.Debug("门店(%d) 创建限售模板失败:%v", storeID, err)
errList.AddErr(fmt.Errorf("门店(%d) 创建限售模板失败:%v", storeID, err))
} else { } else {
FreightTemplate.TradeLimitID = tradeLimitID FreightTemplate.TradeLimitID = tradeLimitID
if err := dao.CreateEntity(db, FreightTemplate); err != nil { if err := dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("限售模板(%d) 存入数据库失败:%v", tradeLimitID, err)
errList.AddErr(fmt.Errorf("限售模板(%d) 存入数据库失败:%v", tradeLimitID, err)) errList.AddErr(fmt.Errorf("限售模板(%d) 存入数据库失败:%v", tradeLimitID, err))
} }
} }
@@ -247,6 +269,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
} else { //同步到本地 } else { //同步到本地
FreightTemplate.TradeLimitID = SaleLimitID FreightTemplate.TradeLimitID = SaleLimitID
if _, err = dao.UpdateEntity(db, FreightTemplate, "TradeLimitID"); err != nil { if _, err = dao.UpdateEntity(db, FreightTemplate, "TradeLimitID"); err != nil {
globals.SugarLogger.Debug("限售模板 同步到本地出错:%v", err)
errList.AddErr(fmt.Errorf("限售模板 同步到本地出错:%v", err)) errList.AddErr(fmt.Errorf("限售模板 同步到本地出错:%v", err))
} }
} }
@@ -254,6 +277,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
FreightTemplate.VendorStoreID = utils.Int64ToStr(vendorStoreID) FreightTemplate.VendorStoreID = utils.Int64ToStr(vendorStoreID)
FreightTemplate.DeletedAt = utils.DefaultTimeValue FreightTemplate.DeletedAt = utils.DefaultTimeValue
if err = dao.CreateEntity(db, FreightTemplate); err != nil { if err = dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("db update storeID,vendorStoreID defeat on :%v", err)
errList.AddErr(fmt.Errorf("db update storeID,vendorStoreID defeat on :%v", err)) errList.AddErr(fmt.Errorf("db update storeID,vendorStoreID defeat on :%v", err))
} }
if utils.IsNil(errList) { if utils.IsNil(errList) {