This commit is contained in:
richboo111
2022-12-06 17:33:52 +08:00
parent c8c33d38c1
commit 72e2688560
3 changed files with 58 additions and 61 deletions

View File

@@ -5921,14 +5921,14 @@ func UpdateStoreRelInformation(ctx *jxcontext.Context) error {
case 0: //(1)仓库以及电子围栏
if bindWarehouse, err := tiktok_store.GetWarehouseByStore(i, m); err != nil {
errList.AddErr(fmt.Errorf("同步任务: 获取门店(%s)绑定的仓库以及电子围栏失败:%v", n, err))
} else if len(bindWarehouse[utils.Str2Int64(i)][0].OutFenceIds) > 0 {
for _, s := range bindWarehouse[utils.Str2Int64(i)][0].OutFenceIds {
} else if len(bindWarehouse[i][0].OutFenceIds) > 0 {
for _, s := range bindWarehouse[i][0].OutFenceIds {
if s == n {
FreightTemplate.FenceID = s
}
}
} else {
FreightTemplate.WarehouseID = bindWarehouse[utils.Str2Int64(i)][0].WarehouseId
FreightTemplate.WarehouseID = bindWarehouse[i][0].WarehouseId
}
case 1: //(2)运费模板
if bindFreightIDs, err := tiktok_store.GetStoreFreight(i, m); err != nil {
@@ -5971,36 +5971,26 @@ func UpdateStoreRelInformation(ctx *jxcontext.Context) error {
}
//获取抖店门店建议范围 (即电子围栏)
func GetDDScope(ctx *jxcontext.Context, storeID int, vendorStoreID string) (warehouse_getFences_response.FencesItem, error) {
var (
data warehouse_getFences_response.FencesItem
)
func GetDDScope(ctx *jxcontext.Context, storeID int, vendorStoreID string) ([]warehouse_getFences_response.FencesItem, error) {
if storeID == 0 || len(vendorStoreID) == 0 {
return data, errors.New("storeID,vendorStoreID 必填")
return nil, errors.New("storeID,vendorStoreID 必填")
}
storeMap, err := GetVendorOrgCode(ctx, dao.GetDB(), storeID, model.VendorIDDD, vendorStoreID)
if err != nil {
return data, errors.New(fmt.Sprintf("获取vendorOrgCode失败请检查数据或重试:%v", err))
}
globals.SugarLogger.Debug("storeMap[0].VendorOrgCode=================%d", storeMap[0].VendorOrgCode)
bindWarehouse, err := tiktok_store.GetWarehouseByStore(storeMap[0].VendorOrgCode, utils.Str2Int64(vendorStoreID))
if err != nil {
return data, errors.New(fmt.Sprintf("获取门店(%d) 绑定fenceID失败:%v", storeID, err))
}
if utils.IsNil(bindWarehouse) || len(bindWarehouse) == 0 {
return data, nil
if storeMap, err := GetVendorOrgCode(ctx, dao.GetDB(), storeID, model.VendorIDDD, vendorStoreID); err != nil {
return nil, errors.New(fmt.Sprintf("获取vendorOrgCode失败请检查数据或重试:%v", err))
} else {
globals.SugarLogger.Debug("bindWarehouse[int64(storeID)][utils.Str2Int(vendorStoreID)].OutFenceIds====%v", bindWarehouse[utils.Str2Int64(vendorStoreID)][0].OutFenceIds)
if utils.IsNil(bindWarehouse[utils.Str2Int64(vendorStoreID)][0].OutFenceIds) || len(bindWarehouse[utils.Str2Int64(vendorStoreID)][0].OutFenceIds) == 0 {
return data, nil
if bind, err := tiktok_store.GetWarehouseByStore(storeMap[0].VendorOrgCode, utils.Str2Int64(vendorStoreID)); err != nil {
return nil, errors.New(fmt.Sprintf("获取门店(%d) 仓库以及电子围栏信息失败:%v", storeID, err))
} else {
resp, err := tiktok_store.GetFence(storeMap[0].VendorOrgCode, bindWarehouse[utils.Str2Int64(vendorStoreID)][0].OutFenceIds[0])
if err != nil {
return data, errors.New(fmt.Sprintf("获取门店(%d) 电子围栏失败:%v", storeID, err))
if len(bind) != 0 && len(bind[vendorStoreID][0].OutFenceIds) != 0 {
if resp, err := tiktok_store.GetFence(storeMap[0].VendorOrgCode, bind[vendorStoreID][0].OutFenceIds); err != nil {
return nil, errors.New(fmt.Sprintf("获取门店(%d) 电子围栏失败:%v", storeID, err))
} else {
return resp, nil
}
}
return resp, nil
}
}
return nil, nil
}
//获取 VendorOrgCode
@@ -6024,6 +6014,7 @@ func AssistCreateFence(relInfo map[string][]tiktok_store.RelInfo) (string, error
endStr = ""
db = dao.GetDB()
errList = errlist.New()
ctx *jxcontext.Context
FreightTemplate = &model.FreightTemplate{}
)
for k, v := range relInfo {
@@ -6043,29 +6034,28 @@ func AssistCreateFence(relInfo map[string][]tiktok_store.RelInfo) (string, error
endStr = tStr1 + "," + tStr2
globals.SugarLogger.Debugf("京西平台没有配送范围的门店ID=%s", endStr)
}
//暂时逻辑直接使用storeID
if ifBindFence, err := tiktok_store.GetFence(k, i.StoreID); err == nil && len(ifBindFence.OutFenceId) != 0 {
tempFenceID = i.StoreID
}
if fenceID, err := tiktok_store.CreateFenceByStore(k, tempStoreID); err != nil || strings.Contains(fmt.Sprint(err), fmt.Sprint("该电子围栏已经存在,请使用修改接口")) {
if err1 := tiktok_store.UpdateFenceByStore(k, i.StoreID, utils.Str2Int(i.VendorStoreID)); err1 != nil {
if bindFence, err := GetDDScope(ctx, utils.Str2Int(i.StoreID), i.VendorStoreID); err == nil && utils.IsNil(bindFence) != true {
tempFenceID = bindFence[0].OutFenceId
if err1 := tiktok_store.UpdateFenceByStore(k, tempFenceID, utils.Str2Int(i.VendorStoreID)); err1 != nil {
errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)更新电子围栏失败:%v", i.VendorStoreID, i.StoreID, err1))
} else {
errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)创建电子围栏失败:%v", i.VendorStoreID, i.StoreID, err))
}
} else if utils.IsNil(fenceID) {
tempFenceID = fenceID
}
if err := tiktok_store.BindFenceByStore(k, tempVendorStoreID, []string{tempFenceID}); err != nil {
errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)绑定电子围栏失败:%v", i.VendorStoreID, i.StoreID, err))
} else {
if fenceID, err := tiktok_store.CreateFenceByStore(k, tempStoreID); err != nil {
errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)创建电子围栏失败:%v", i.VendorStoreID, i.StoreID, err))
} else if utils.IsNil(fenceID) {
if err := tiktok_store.BindFenceByStore(k, tempVendorStoreID, []string{fenceID}); err != nil {
errList.AddErr(fmt.Errorf("平台门店(%s),门店(%s)绑定电子围栏失败:%v", i.VendorStoreID, i.StoreID, err))
}
}
}
}
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID"); err1 != nil {
globals.SugarLogger.Debugf("db update storeID,vendorStoreID defeat on :%v", err1)
errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
//errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
} else {
errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err))
globals.SugarLogger.Debugf("db create storeID,vendorStoreID defeat on :%v", err1)
//errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err))
}
}
}

View File

@@ -157,12 +157,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
db *dao.DaoDB
)
//检查门店是否审核通过
if remoteStore, err := getAPI(vendorOrgCode, int(storeID), utils.Int64ToStr(vendorStoreID)).GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: vendorStoreID,
}); err == nil {
if remoteStore.StoreDetail.PoiAuditInfo.PoiAuditState != tiktok_api.PoiAuditStateSuccessBind {
return fmt.Errorf("门店%d 未审核通过,请通过后再进行绑定", storeID)
}
if IfAuditPass(vendorOrgCode, vendorStoreID) {
return fmt.Errorf("门店%d 未审核通过,请通过后再进行绑定", storeID)
}
//1.平台获取门店运费模板
if bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID); err != nil || bindFreightIDs == 0 { //1未查询到绑定信息不算错误
@@ -272,7 +268,6 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
return nil
}
}
func CreateAndBindAllV2(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error {
var (
db *dao.DaoDB
@@ -407,9 +402,9 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
return fmt.Errorf("营业时间必填")
}
vendorStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: utils.Str2Int64(storeInfo.VendorStoreID),
StoreId: storeInfo.VendorStoreID,
}
apiObj := getAPI(storeInfo.VendorOrgCode, storeID, utils.Int64ToStr(vendorStoreID.StoreId))
apiObj := getAPI(storeInfo.VendorOrgCode, storeID, vendorStoreID.StoreId)
if globals.EnableDdStoreWrite {
remoteStoreInfo, err2 := apiObj.GetStoreDetail(vendorStoreID)
if err2 != nil {
@@ -454,7 +449,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
if err != nil {
errList.AddErr(fmt.Errorf("获取门店(%d) 电子围栏失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err))
}
if len(bindWarehouseAndFence) == 0 || (len(bindWarehouseAndFence) != 0 && len(bindWarehouseAndFence[utils.Str2Int64(storeInfo.VendorStoreID)][0].OutFenceIds) == 0) {
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))
@@ -468,7 +463,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
}
} else {
//更新电子围栏
outFenceID := bindWarehouseAndFence[utils.Str2Int64(storeInfo.VendorStoreID)][0].OutFenceIds[0]
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)
@@ -512,7 +507,7 @@ func UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int
} else { //恢复营业
//与平台上店铺状态对比
remoteStoreInfo, err2 := a.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: utils.Str2Int64(vendorStoreID),
StoreId: vendorStoreID,
})
if err2 != nil {
return err2
@@ -909,7 +904,7 @@ func (P *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCod
//获取门店状态
func (P *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (storeStatus int, err error) {
if result, err := getAPI(vendorOrgCode, storeID, vendorStoreID).GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: utils.Str2Int64(vendorStoreID),
StoreId: vendorStoreID,
IsNeedChargeInfo: false,
IsNeedPoiAuditInfo: false,
IsNeedRelShopUser: false,
@@ -971,7 +966,7 @@ func (P *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOr
return err
}
func (P *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorStoreName string) (store *dao.StoreDetail, err error) {
vendorStore, err := getAPI(vendorOrgCode, 0, "").GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{StoreId: utils.Str2Int64(vendorStoreID)})
vendorStore, err := getAPI(vendorOrgCode, 0, "").GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{StoreId: vendorStoreID})
if err != nil {
return nil, err
}
@@ -1064,3 +1059,16 @@ func HandleMunicipality(cityName string) bool {
}
return false
}
//判断门店是否审核通过
func IfAuditPass(vendorOrgCode string, vendorStoreID int64) bool {
flag := false
if remoteStore, err := getAPI(vendorOrgCode, 0, " ").GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: utils.Int64ToStr(vendorStoreID),
}); err == nil {
if remoteStore.StoreDetail.Store.PoiAuditState != tiktok_api.PoiAuditStateSuccessBind || remoteStore.StoreDetail.Store.State != tiktok_api.StoreStateSuccessBind || remoteStore.StoreDetail.Store.QualState != tiktok_api.QualStateCheckingPassed || remoteStore.StoreDetail.Store.RemitState != tiktok_api.RemitStateCheckingPassed || remoteStore.StoreDetail.Store.OpenAccountState != tiktok_api.OpenAccountStateOpen {
flag = true
}
}
return flag
}

View File

@@ -90,11 +90,11 @@ func BindStoreWarehouse(VendorOrgCode, outWarehouseID string, storeIDs int64) er
}
// /warehouse/getWarehouseByStore 门店id获取绑定仓库详情包括电子围栏
func GetWarehouseByStore(appOrgCode string, storeID int64) (map[int64][]warehouse_getWarehouseByStore_response.WarehouseInfoMapItem, error) {
func GetWarehouseByStore(appOrgCode string, storeID int64) (map[string][]*warehouse_getWarehouseByStore_response.WarehouseInfoMapItem, error) {
if resp, err := getAPI(appOrgCode, 0, "").GetWarehouseByStore(storeID); err != nil {
return nil, err
} else {
return resp, nil
return resp.WarehouseInfoMap, nil
}
}
@@ -235,14 +235,13 @@ func BindFenceByStore(appOrgCode string, storeID int64, addOutFenceIDs []string)
}
//获取电子围栏信息
func GetFence(appOrgCode, outFenceID string) (warehouse_getFences_response.FencesItem, error) {
emptyResp := warehouse_getFences_response.FencesItem{}
func GetFence(appOrgCode string, outFenceID []string) ([]warehouse_getFences_response.FencesItem, error) {
emptyResp := []warehouse_getFences_response.FencesItem{}
if resp, err := getAPI(appOrgCode, 0, "").GetFence(outFenceID); err != nil {
return emptyResp, err
} else {
return resp.Fences[0], nil
return resp.Fences, nil
}
}
//特殊处理