- GetStores add range limit.

This commit is contained in:
gazebo
2019-01-09 10:41:54 +08:00
parent 1f795c83c8
commit 6116a5694b
4 changed files with 47 additions and 19 deletions

View File

@@ -221,22 +221,45 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa
}()
// globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
// globals.SugarLogger.Debug(sql)
if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil {
retVal.TotalCount = dao.GetLastTotalRowCount(db)
for _, v := range retVal.Stores {
if v.StoreMapStr != "" {
if err = utils.UnmarshalUseNumber([]byte(v.StoreMapStr), &v.StoreMaps); err != nil {
dao.Rollback(db)
return nil, err
}
var storeList []*StoreExt
if err = dao.GetRows(db, &storeList, sql, sqlParams...); err == nil {
mapLimit := false
var (
mapLatitude, mapLongitude float64
mapRadius int
)
if mapLatitude2, ok := params["mapLatitude"].(string); ok {
mapLimit = true
mapLatitude = utils.Str2Float64(mapLatitude2)
mapLongitude = utils.Str2Float64(params["mapLongitude"].(string))
mapRadius = params["mapRadius"].(int)
}
for _, v := range storeList {
valid := !mapLimit
if mapLimit {
valid = jxutils.EarthDistance(mapLongitude, mapLatitude, v.FloatLng, v.FloatLat)*1000 <= float64(mapRadius)
}
if v.CourierMapStr != "" {
if err = utils.UnmarshalUseNumber([]byte(v.CourierMapStr), &v.CourierMaps); err != nil {
dao.Rollback(db)
return nil, err
if valid {
if v.StoreMapStr != "" {
if err = utils.UnmarshalUseNumber([]byte(v.StoreMapStr), &v.StoreMaps); err != nil {
dao.Rollback(db)
return nil, err
}
}
if v.CourierMapStr != "" {
if err = utils.UnmarshalUseNumber([]byte(v.CourierMapStr), &v.CourierMaps); err != nil {
dao.Rollback(db)
return nil, err
}
}
retVal.Stores = append(retVal.Stores, v)
}
}
if mapLimit {
retVal.TotalCount = len(retVal.Stores)
} else {
retVal.TotalCount = dao.GetLastTotalRowCount(db)
}
}
dao.Commit(db)
return retVal, err