setfence
This commit is contained in:
@@ -1,56 +0,0 @@
|
||||
package tiktok_store
|
||||
|
||||
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/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"strings"
|
||||
//"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
//更新抖店电子围栏
|
||||
func (c *DeliveryHandler) UpdateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
vertex []warehouse_setFence_request.VerticesItem
|
||||
)
|
||||
if _, err := dao.GetStoresMapList(db, []int{model.VendorIDDD}, []int{storeDetail.Store.ID}, nil, model.StoreStatusAll, model.StoreIsSyncYes, "", "", ""); err != nil {
|
||||
|
||||
}
|
||||
|
||||
if globals.EnableStoreWrite {
|
||||
param := &warehouse_setFence_request.WarehouseSetFenceParam{
|
||||
FenceInfo: &warehouse_setFence_request.FenceInfo{
|
||||
OutFenceId: utils.Int2Str(storeDetail.Store.ID), //外部id 为京西门店id
|
||||
Shape: int32(storeDetail.DeliveryRangeType),
|
||||
},
|
||||
}
|
||||
if storeDetail.DeliveryRangeType == tiktok_api.ShapeCircular {
|
||||
circular := &warehouse_setFence_request.Circular{
|
||||
Center: &warehouse_setFence_request.Center{
|
||||
Longitude: utils.Int2Float64(storeDetail.Lng),
|
||||
Latitude: utils.Int2Float64(storeDetail.Lat),
|
||||
},
|
||||
Radius: utils.Str2Float64(storeDetail.DeliveryRange),
|
||||
}
|
||||
param.FenceInfo.Circular = circular
|
||||
} else if storeDetail.DeliveryRangeType == tiktok_api.ShapePolygon {
|
||||
tempStr := strings.Split(storeDetail.DeliveryRange, ";")
|
||||
for v := len(tempStr) - 1; v >= 0; v-- {
|
||||
s2 := strings.Split(tempStr[v], ",")
|
||||
vertices := warehouse_setFence_request.VerticesItem{
|
||||
Longitude: utils.Str2Float64(s2[0]),
|
||||
Latitude: utils.Str2Float64(s2[1]),
|
||||
}
|
||||
vertex = append(vertex, vertices)
|
||||
}
|
||||
param.FenceInfo.Polygon.Vertices = vertex
|
||||
}
|
||||
//_, err = api.MtpsAPI.ShopUpdate(shopInfo)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -24,8 +24,7 @@ func init() {
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) GetVendorID() int {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
return model.VendorIDDD
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) CreateStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (vendorStoreID string, status int, err error) {
|
||||
|
||||
@@ -362,6 +362,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
||||
storeInfo *dao.StoreDetail
|
||||
errList = errlist.New()
|
||||
timeStr = ""
|
||||
tempFenceID string
|
||||
FreightTemplate = &model.FreightTemplate{}
|
||||
)
|
||||
if db == nil {
|
||||
@@ -423,42 +424,45 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
||||
errList.AddErr(fmt.Errorf("修改门店(%d) 信息失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err3))
|
||||
}
|
||||
//电子围栏
|
||||
if bind, err := GetWarehouseByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID)); err != nil {
|
||||
bind, err := GetWarehouseByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID))
|
||||
if err != nil {
|
||||
errList.AddErr(fmt.Errorf("获取门店(%d) 电子围栏失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), 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 len(bind[storeInfo.VendorStoreID][0].OutFenceIds) == 0 {
|
||||
//检查是否以storeID创建过
|
||||
if bindFence, err := GetFence(storeInfo.VendorOrgCode, []string{utils.Int2Str(storeID)}); err == nil {
|
||||
tempFenceID = bindFence[0].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 {
|
||||
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)
|
||||
}
|
||||
tempFenceID = fenceID
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//同步进数据库
|
||||
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))
|
||||
if err := BindFenceByStore(storeInfo.VendorOrgCode, utils.Str2Int64(storeInfo.VendorStoreID), []string{tempFenceID}); err != nil {
|
||||
globals.SugarLogger.Debug("门店(%d) 绑定电子围栏:%s失败:%v", storeID, tempFenceID, err)
|
||||
errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, tempFenceID, 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 {
|
||||
errList.AddErr(errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err)))
|
||||
}
|
||||
FreightTemplate.FenceID = outFenceID
|
||||
}
|
||||
}
|
||||
//同步进数据库
|
||||
FreightTemplate.FenceID = tempFenceID
|
||||
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))
|
||||
}
|
||||
}
|
||||
endErr := errList.GetErrListAsOne()
|
||||
|
||||
Reference in New Issue
Block a user