新街口

This commit is contained in:
苏尹岚
2020-08-06 11:43:00 +08:00
parent 6af070aad5
commit 66ddae2162
3 changed files with 65 additions and 0 deletions

View File

@@ -61,6 +61,48 @@ func (x Store4UserList) Swap(i, j int) {
x[i], x[j] = x[j], x[i] x[i], x[j] = x[j], x[i]
} }
func GetNearSupplyGoodsStoreByStoreID(ctx *jxcontext.Context, storeID int) (store *model.Store, err error) {
var (
stores []*model.Store
db = dao.GetDB()
)
stores2, _ := dao.GetStoreList(db, []int{storeID}, nil, nil, nil, "")
store2 := stores2[0]
sql := `
SELECT a.*
FROM store a
JOIN store_map b ON b.store_id = a.id
JOIN store c ON c.city_code = a.city_code AND c.id = ?
WHERE a.deleted_at = ?
AND b.deleted_at = ?
AND b.vendor_id = ?
AND b.is_supply_goods = ?
AND a.status = ?
`
sqlParams := []interface{}{
storeID,
utils.DefaultTimeValue, utils.DefaultTimeValue,
model.VendorIDJX, model.YES, model.StoreStatusOpened,
}
err = dao.GetRows(db, &stores, sql, sqlParams)
if len(stores) > 0 {
realDistance := float64(0)
for _, v := range stores {
distance := jxutils.EarthDistance(jxutils.IntCoordinate2Standard(v.Lng), jxutils.IntCoordinate2Standard(v.Lat), jxutils.IntCoordinate2Standard(store2.Lng), jxutils.IntCoordinate2Standard(store2.Lat))
if realDistance == 0 {
realDistance = distance
store = v
} else {
if realDistance > distance {
realDistance = distance
store = v
}
}
}
}
return store, err
}
func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, maxRadius int, needWalkDistance, isJds bool) (storeList []*Store4User, err error) { func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, maxRadius int, needWalkDistance, isJds bool) (storeList []*Store4User, err error) {
const ( const (
maxStoreCount4User = 5 maxStoreCount4User = 5

View File

@@ -794,3 +794,17 @@ func (c *StoreController) UpdateStorePricePack() {
return retVal, "", err return retVal, "", err
}) })
} }
// @Title 根据门店获取距离最近的货源店铺
// @Description 修根据门店获取距离最近的货源店铺
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetNearSupplyGoodsStoreByStoreID [get]
func (c *StoreController) GetNearSupplyGoodsStoreByStoreID() {
c.callGetNearSupplyGoodsStoreByStoreID(func(params *tStoreGetNearSupplyGoodsStoreByStoreIDParams) (retVal interface{}, errCode string, err error) {
retVal, err = common.GetNearSupplyGoodsStoreByStoreID(params.Ctx, params.StoreID)
return retVal, "", err
})
}

View File

@@ -1746,6 +1746,15 @@ func init() {
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
beego.ControllerComments{
Method: "GetNearSupplyGoodsStoreByStoreID",
Router: `/GetNearSupplyGoodsStoreByStoreID`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "GetStoreAlertList", Method: "GetStoreAlertList",