Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -144,119 +144,153 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
|
||||
//1.平台获取门店运费模板
|
||||
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)未查询到绑定信息,不算错误
|
||||
//创建
|
||||
if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) {
|
||||
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err))
|
||||
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
|
||||
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("运费模板:%d 同步数据库失败:%v", freightTemplateID, err))
|
||||
}
|
||||
//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 {
|
||||
errList.AddErr(fmt.Errorf("平台运费模板 同步到本地出错:%v", err))
|
||||
}
|
||||
//if _, err = dao.UpdateEntity(db, FreightTemplate, "TemplateID"); err != nil {
|
||||
// globals.SugarLogger.Debug("平台运费模板 同步到本地出错:%v", err)
|
||||
// errList.AddErr(fmt.Errorf("平台运费模板 同步到本地出错:%v", err))
|
||||
//}
|
||||
}
|
||||
|
||||
//2.平台获取仓库信息以及电子围栏id
|
||||
bindWarehouseAndFence, err := GetWarehouseByStore(vendorOrgCode, vendorStoreID)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debug("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err)
|
||||
errList.AddErr(fmt.Errorf("获取门店(%d) 绑定仓库信息以及电子围栏出错:%v", vendorStoreID, err))
|
||||
}
|
||||
if len(bindWarehouseAndFence) == 0 || utils.IsNil(bindWarehouseAndFence) { //未绑定仓库以及电子围栏
|
||||
//(1)创建仓库
|
||||
warehouseID, err := CreateWarehouse(vendorOrgCode, utils.Int64ToStr(storeID))
|
||||
if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) {
|
||||
globals.SugarLogger.Debug("门店(%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.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 {
|
||||
errList.AddErr(fmt.Errorf("仓库ID(%d) 同步到数据库失败:%v", warehouseID, err))
|
||||
}
|
||||
//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)创建电子围栏
|
||||
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.Debug("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)
|
||||
errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err))
|
||||
} else {
|
||||
FreightTemplate.FenceID = utils.Int64ToStr(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.Int64ToStr(storeID)
|
||||
}
|
||||
} else {
|
||||
if len(bindWarehouseAndFence[0][vendorStoreID].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[0][vendorStoreID].OutFenceIds) { //未绑定电子围栏
|
||||
globals.SugarLogger.Debugf("进入创建电子围栏=========")
|
||||
if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏
|
||||
globals.SugarLogger.Debug("进入创建电子围栏=========")
|
||||
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.Debug("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)
|
||||
errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err))
|
||||
} else {
|
||||
FreightTemplate.FenceID = utils.Int64ToStr(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.Int64ToStr(storeID)
|
||||
}
|
||||
}
|
||||
//同步到本地数据库
|
||||
FreightTemplate.FenceID = bindWarehouseAndFence[0][vendorStoreID].OutFenceIds[0]
|
||||
FreightTemplate.WarehouseID = bindWarehouseAndFence[0][vendorStoreID].WarehouseId
|
||||
if _, err = dao.UpdateEntity(db, FreightTemplate, "FenceID"); err != nil {
|
||||
errList.AddErr(fmt.Errorf("电子围栏 同步到本地出错:%v", err))
|
||||
}
|
||||
if _, err = dao.UpdateEntity(db, FreightTemplate, "WarehouseID"); err != nil {
|
||||
errList.AddErr(fmt.Errorf("仓库 同步到本地出错:%v", err))
|
||||
}
|
||||
//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.平台获取限售模板
|
||||
SaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debug("获取门店(%d) 限售模板出错:%v", vendorStoreID, err)
|
||||
errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板出错:%v", vendorStoreID, err))
|
||||
}
|
||||
if SaleLimitID == 0 || utils.IsNil(SaleLimitID) { //未绑定限售模板
|
||||
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))
|
||||
} else {
|
||||
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 {
|
||||
FreightTemplate.TradeLimitID = tradeLimitID
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
errList.AddErr(fmt.Errorf("限售模板(%d) 存入数据库失败:%v", tradeLimitID, err))
|
||||
}
|
||||
//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 {
|
||||
errList.AddErr(fmt.Errorf("限售模板 同步到本地出错:%v", err))
|
||||
}
|
||||
}
|
||||
FreightTemplate.StoreID = int(storeID)
|
||||
FreightTemplate.VendorStoreID = utils.Int64ToStr(vendorStoreID)
|
||||
//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),
|
||||
VendorStoreID: utils.Int64ToStr(vendorStoreID),
|
||||
}
|
||||
|
||||
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")
|
||||
_, err2 := dao.UpdateEntity(db, FreightTemplate, "WarehouseID")
|
||||
_, err3 := dao.UpdateEntity(db, FreightTemplate, "FenceID")
|
||||
_, err4 := dao.UpdateEntity(db, FreightTemplate, "TradeLimitID")
|
||||
errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v,%v,%v,%v", err1, err2, err3, err4))
|
||||
}
|
||||
if utils.IsNil(errList) {
|
||||
globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, true))))
|
||||
return "门店绑定成功,但需要根据提示进行处理", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, true)))
|
||||
} else {
|
||||
return "门店绑定成功", nil
|
||||
@@ -452,6 +486,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
|
||||
|
||||
// /freightTemplate/update 修改运费模板
|
||||
func UpdateFreightTemplate(storeCode int) error {
|
||||
globals.SugarLogger.Debugf("进入UpdateFreightTemplate")
|
||||
var (
|
||||
columns []freightTemplate_update_request.ColumnsItem
|
||||
param *freightTemplate_update_request.FreightTemplateUpdateParam
|
||||
@@ -480,15 +515,16 @@ func UpdateFreightTemplate(storeCode int) error {
|
||||
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", param.Template.TemplateName)
|
||||
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==================", err)
|
||||
globals.SugarLogger.Debugf("err==================%v", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
@@ -549,8 +585,8 @@ func ShopBindStoreFreight(vendorOrgCode string, storeID, freightID int64) error
|
||||
// /shop/getStoreFreight 获取门店绑定运费模板
|
||||
func GetStoreFreight(vendorOrgCode string, storeID int64) (int64, error) {
|
||||
resp, err := getAPI(vendorOrgCode, int(storeID), "").GetStoreFreight(storeID)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
if err != nil || len(resp) == 0 {
|
||||
return 0, errors.New(fmt.Sprintf("获取门店绑定运费模板失败:%v", err))
|
||||
}
|
||||
return resp[0], nil
|
||||
}
|
||||
|
||||
@@ -117,6 +117,7 @@ func CreateFenceByStore(appOrgCode string, storeID int64) (fenceID string, err e
|
||||
Shape: int32(localStore.DeliveryRangeType),
|
||||
},
|
||||
}
|
||||
globals.SugarLogger.Debug("localStore.DeliveryRangeType==============", localStore.DeliveryRangeType)
|
||||
if localStore.DeliveryRangeType == tiktok_api.ShapeCircular {
|
||||
circular := &warehouse_createFence_request.Circular{
|
||||
Center: &warehouse_createFence_request.Center{
|
||||
|
||||
Reference in New Issue
Block a user