diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index d6b0e167b..16867a88a 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1695,6 +1695,18 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor // } syncStatus |= model.SyncFlagStoreName } + //增加同步到抖店厂商的同步标志 + DDFlag := false + errList := errlist.ErrList{} + if valid["deliveryFeeDeductionSill"] != nil && vendorID == model.VendorIDDD { + DDFlag = true + } //特殊处理抖店运费模板 + if DDFlag { + globals.SugarLogger.Debug("进入DDFlag 特殊处理运费模板") + if err := tiktok_store.FreightSpecialTreat(storeMap.VendorOrgCode, utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.StoreID)); err != nil { + errList.AddErr(fmt.Errorf("抖店运费模板相关处理错误:%v", err)) + } + } for _, v := range [][]string{ []string{ "pricePercentagePack", @@ -1774,6 +1786,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor } } dao.Commit(db, txDB) + globals.SugarLogger.Debug("检查一下isStoreMapNeedSync(vendorID, valid)=============%s", isStoreMapNeedSync(vendorID, valid)) if isStoreMapNeedSync(vendorID, valid) { globals.SugarLogger.Debugf("1.isStoreMapNeedSync(vendorID, valid)=================%v", isStoreMapNeedSync(vendorID, valid)) _, err = CurVendorSync.SyncStore(ctx, db, vendorID, storeID, false, userName) @@ -1781,7 +1794,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor } } } - return num, err + return num, errors.New(fmt.Sprintf("errList=%v,err=%v", errList, err)) } func DeleteStore(ctx *jxcontext.Context, storeID int) (num int64, err error) { diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 00146e2c3..42ca7b571 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -158,17 +158,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) } else { FreightTemplate.TemplateID = freightTemplateID - //if err = dao.CreateEntity(db, FreightTemplate); err != nil { - // globals.SugarLogger.Debug("运费模板:%d 同步数据库失败:%v", freightTemplateID, err) - // errList.AddErr(fmt.Errorf("运费模板:%d 同步数据库失败:%v", freightTemplateID, err)) - //} } } - } else { //同步信息到本地 - //if _, err = dao.UpdateEntity(db, FreightTemplate, "TemplateID"); err != nil { - // globals.SugarLogger.Debug("平台运费模板 同步到本地出错:%v", err) - // errList.AddErr(fmt.Errorf("平台运费模板 同步到本地出错:%v", err)) - //} } //2.平台获取仓库信息以及电子围栏id @@ -183,16 +174,12 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) { globals.SugarLogger.Debug("门店(%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 globals.SugarLogger.Debug("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err) errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err)) } else { FreightTemplate.WarehouseID = warehouseID - //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)) - //} } } //(2)创建电子围栏 @@ -232,15 +219,6 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri FreightTemplate.FenceID = utils.Int64ToStr(storeID) } } - //同步到本地数据库 - //if _, err = dao.UpdateEntity(db, FreightTemplate, "FenceID"); err != nil { - // globals.SugarLogger.Debug("电子围栏 同步到本地出错:%v", err) - // errList.AddErr(fmt.Errorf("电子围栏 同步到本地出错:%v", err)) - //} - //if _, err = dao.UpdateEntity(db, FreightTemplate, "WarehouseID"); err != nil { - // globals.SugarLogger.Debug("仓库 同步到本地出错:%v", err) - // errList.AddErr(fmt.Errorf("仓库 同步到本地出错:%v", err)) - //} } //3.平台获取限售模板 @@ -259,20 +237,9 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri errList.AddErr(fmt.Errorf("门店(%d) 创建限售模板失败:%v", storeID, err)) } else { FreightTemplate.TradeLimitID = tradeLimitID - //if err := dao.CreateEntity(db, FreightTemplate); err != nil { - // globals.SugarLogger.Debug("限售模板(%d) 存入数据库失败:%v", tradeLimitID, err) - // errList.AddErr(fmt.Errorf("限售模板(%d) 存入数据库失败:%v", tradeLimitID, err)) - //} } } } - //else { //同步到本地 - // FreightTemplate.TradeLimitID = SaleLimitID - // if _, err = dao.UpdateEntity(db, FreightTemplate, "TradeLimitID"); err != nil { - // globals.SugarLogger.Debug("限售模板 同步到本地出错:%v", err) - // errList.AddErr(fmt.Errorf("限售模板 同步到本地出错:%v", err)) - // } - //} FreightTemplate.DeletedAt = utils.DefaultTimeValue FreightTemplate = &model.FreightTemplate{ StoreID: int(storeID), @@ -300,14 +267,14 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin storeInfo *dao.StoreDetail name string FreightTemplate = &model.FreightTemplate{} + errList = errlist.New() + timeStr = "" + m = make(map[int64]string) ) if db == nil { db = dao.GetDB() } storeInfo, err = dao.GetStoreDetail(db, storeID, model.VendorIDDD, "") - errList := errlist.New() - timeStr := "" - m := make(map[int64]string) if storeInfo.OpenTime1 != 0 && storeInfo.CloseTime1 != 0 { if storeInfo.OpenTime2 != 0 && storeInfo.CloseTime2 != 0 { timeStr = SplicingTimeToDoudian(storeInfo.OpenTime1, storeInfo.CloseTime1, storeInfo.OpenTime2, storeInfo.CloseTime2, true) @@ -323,9 +290,9 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin vendorStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{ StoreId: utils.Str2Int64(storeInfo.VendorStoreID), } - api := getAPI(storeInfo.VendorOrgCode, storeID, utils.Int64ToStr(vendorStoreID.StoreId)) + apiObj := getAPI(storeInfo.VendorOrgCode, storeID, utils.Int64ToStr(vendorStoreID.StoreId)) if globals.EnableDdStoreWrite { - remoteStoreInfo, err2 := api.GetStoreDetail(vendorStoreID) + remoteStoreInfo, err2 := apiObj.GetStoreDetail(vendorStoreID) if err2 != nil { return err2 } @@ -360,45 +327,45 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 { errList.AddErr(UpdateStoreStatus(jxcontext.AdminCtx, storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID, mergedStoreStatus)) } - err3 := api.EditStore(params) + err3 := apiObj.EditStore(params) if err3 != nil { errList.AddErr(err3) } - //更新运费模板 - bindFreightIDs, err := GetStoreFreight(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID)) + //获取电子围栏 + bindWarehouseAndFence, err := GetWarehouseByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID)) if err != nil { - globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err) - errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) + errList.AddErr(fmt.Errorf("获取门店(%d) 电子围栏失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err)) } - if bindFreightIDs == 0 { - if freightTemplateID, err := CreateFreightTemplate(storeID); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { - globals.SugarLogger.Debug("创建运费模板失败:%v", err) - errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) + if len(bindWarehouseAndFence) == 0 || (len(bindWarehouseAndFence) != 0 && len(bindWarehouseAndFence[utils.Str2Int64(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 = ShopBindStoreFreight(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.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)) + 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.TemplateID = freightTemplateID + FreightTemplate.FenceID = utils.Int2Str(storeID) + 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)) + } } + FreightTemplate.FenceID = utils.Int2Str(storeID) } } else { - err = UpdateFreightTemplate(storeID) - if err != nil { - return errors.New(fmt.Sprintf("更新运费模板失败,原因:%v", err)) + //更新电子围栏 + outFenceID := bindWarehouseAndFence[utils.Str2Int64(storeInfo.VendorStoreID)][0].OutFenceIds[0] + if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, storeID); err != nil { + return errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err)) } - } - //更新电子围栏 - err = UpdateFenceByStore(storeInfo.VendorOrgCode, storeID) - if err != nil { - return errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v,请先创建电子围栏", err)) - } - if _, err = dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID"); err != nil { - errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err)) - } else { - 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)) + if _, err = dao.UpdateEntity(db, FreightTemplate, "FenceID"); err != nil { + errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err)) + } else { + 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)) + } } } } @@ -451,29 +418,18 @@ func CreateFreightTemplate(storeCode int) (int64, error) { if err != nil { return 0, err } - if int64(storeDetail.DeliveryFeeDeductionSill) == 0 { + Template := &freightTemplate_create_request.Template{ + TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板", + ProductProvince: int64(storeDetail.ProvinceCode), + ProductCity: int64(storeDetail.CityCode), + CalculateType: 2, //计价方式-1.按重量 2.按数量 + TransferType: 1, + RuleType: 1, //固定运费&卖家包邮 + FixedAmount: 500, //固定运费 单位:分 + } + param.Template = Template + if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { param = &freightTemplate_create_request.FreightTemplateCreateParam{ - Template: &freightTemplate_create_request.Template{ - TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板", - ProductProvince: int64(storeDetail.ProvinceCode), - ProductCity: int64(storeDetail.CityCode), - CalculateType: 2, //计价方式-1.按重量 2.按数量 - TransferType: 1, - RuleType: 1, //固定运费 - FixedAmount: 500, //固定运费 单位:分 - }, - } - } else { - param = &freightTemplate_create_request.FreightTemplateCreateParam{ - Template: &freightTemplate_create_request.Template{ - TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板", - ProductProvince: int64(storeDetail.ProvinceCode), - ProductCity: int64(storeDetail.CityCode), - CalculateType: 2, //计价方式-1.按重量 2.按数量 - TransferType: 1, - RuleType: 1, //固定运费&卖家包邮 - FixedAmount: 500, //固定运费 单位:分 - }, Columns: []freightTemplate_create_request.ColumnsItem{ { RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]), @@ -504,11 +460,12 @@ func CreateFreightTemplate(storeCode int) (int64, error) { if err != nil { return 0, err } + return resp.TemplateId, nil } // /freightTemplate/update 修改运费模板 -func UpdateFreightTemplate(storeCode int) error { +func UpdateFreightTemplate(vendorStoreCode string, storeCode int) error { globals.SugarLogger.Debugf("进入UpdateFreightTemplate") var ( columns []freightTemplate_update_request.ColumnsItem @@ -523,38 +480,39 @@ func UpdateFreightTemplate(storeCode int) error { bindTemplate, err := GetStoreFreight(storeDetail.VendorOrgCode, utils.Str2Int64(storeDetail.VendorStoreID)) if err != nil || bindTemplate == 0 { return errors.New(fmt.Sprintf("获取门店绑定运费模板失败:%v,请先创建运费模板", err)) - } - globals.SugarLogger.Debugf("storeDetail.DeliveryFeeDeductionSill===============%d", storeDetail.DeliveryFeeDeductionSill) - Template := &freightTemplate_update_request.Template{ - Id: bindTemplate, - TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板", - ProductProvince: int64(storeDetail.ProvinceCode), - ProductCity: int64(storeDetail.CityCode), - CalculateType: 2, //计价方式-1.按重量 2.按数量 - TransferType: 1, - RuleType: 1, //固定运费 - FixedAmount: 500, //固定运费 单位:分 - } - if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { - columns = []freightTemplate_update_request.ColumnsItem{ - { - RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]), - IsOverFree: true, //是否包邮 - IsDefault: 0, - IsLimited: false, - OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 - }} - globals.SugarLogger.Debugf("columns[0].OverAmount===========%d", columns[0].OverAmount) - } - param = &freightTemplate_update_request.FreightTemplateUpdateParam{ - Template: Template, - Columns: columns, - } - globals.SugarLogger.Debugf("param.Template.TemplateName======%v,overAmount==================%d", param.Template.TemplateName, param.Columns[0].OverAmount) - _, err = getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateUpdate(param) - if err != nil { - globals.SugarLogger.Debugf("err==================%v", err) - return err + } else { + globals.SugarLogger.Debugf("storeDetail.DeliveryFeeDeductionSill===============%d", storeDetail.DeliveryFeeDeductionSill) + Template := &freightTemplate_update_request.Template{ + Id: bindTemplate, + TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板", + ProductProvince: int64(storeDetail.ProvinceCode), + ProductCity: int64(storeDetail.CityCode), + CalculateType: 2, //计价方式-1.按重量 2.按数量 + TransferType: 1, + RuleType: 1, //固定运费 + FixedAmount: 500, //固定运费 单位:分 + } + if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { + columns = []freightTemplate_update_request.ColumnsItem{ + { + RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]), + IsOverFree: true, //是否包邮 + IsDefault: 0, + IsLimited: false, + OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 + }} + globals.SugarLogger.Debugf("columns[0].OverAmount===========%d", columns[0].OverAmount) + } + param = &freightTemplate_update_request.FreightTemplateUpdateParam{ + Template: Template, + Columns: columns, + } + globals.SugarLogger.Debugf("param.Template.TemplateName======%v,overAmount==================%d", param.Template.TemplateName, param.Columns[0].OverAmount) + _, err = getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateUpdate(param) + if err != nil { + globals.SugarLogger.Debugf("err==================%v", err) + return err + } } return nil } diff --git a/business/partner/purchase/tiktok_store/warehouse.go b/business/partner/purchase/tiktok_store/warehouse.go index 0aeeb8193..e0675ee00 100644 --- a/business/partner/purchase/tiktok_store/warehouse.go +++ b/business/partner/purchase/tiktok_store/warehouse.go @@ -12,6 +12,7 @@ import ( warehouse_setFence_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_setFence/request" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/baseapi/utils/errlist" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals" @@ -163,7 +164,7 @@ func CreateFenceDirectly(param warehouse_createFence_request.WarehouseCreateFenc } // 通过门店更新电子围栏 -func UpdateFenceByStore(appOrgCode string, storeID int) error { +func UpdateFenceByStore(appOrgCode, outFenceID string, storeID int) error { var ( db *dao.DaoDB localStore *LocalStore @@ -183,7 +184,7 @@ func UpdateFenceByStore(appOrgCode string, storeID int) error { if err := dao.GetRow(db, &localStore, sqlStr, sqlParam...); err == nil { param := &warehouse_setFence_request.WarehouseSetFenceParam{ FenceInfo: &warehouse_setFence_request.FenceInfo{ - OutFenceId: utils.Int2Str(storeID), + OutFenceId: outFenceID, Shape: int32(localStore.DeliveryRangeType), }, } @@ -238,3 +239,45 @@ func GetFence(appOrgCode, outFenceID string) (warehouse_getFences_response.Fence } return resp.Fences[0], nil } + +//单独处理运费模板 +func FreightSpecialTreat(vendorOrgCode string, vendorStoreID, storeID int64) error { + var ( + errList = errlist.New() + FreightTemplate = &model.FreightTemplate{} + db *dao.DaoDB + ) + //首先获取绑定信息 + bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) + if err != nil { + globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err) + errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) + } + if bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 + globals.SugarLogger.Debug("我在创建绑定运费模板这里=========================") + if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { + globals.SugarLogger.Debug("创建运费模板失败:%v", err) + errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) + } else { //绑定 + 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)) + } else { + FreightTemplate.TemplateID = freightTemplateID + } + } + } else { + if err := UpdateFreightTemplate(vendorOrgCode, int(storeID)); err != nil { + globals.SugarLogger.Debug("更新运费模板失败:%v", err) + errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err)) + } + } + 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)) + } else { + _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID") + errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err1)) + } + return err +}