- GetStores add range limit.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user