This commit is contained in:
richboo111
2022-12-12 14:21:51 +08:00
parent 2ed41dae8c
commit 7360ad6091
3 changed files with 32 additions and 85 deletions

View File

@@ -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
}

View File

@@ -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) {

View File

@@ -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()