package com.jiuqi.mobile.nigo.comeclose.manager.app;
import java.util.List;
import com.jiuqi.mobile.nigo.comeclose.bean.LoadOnGetList;
import com.jiuqi.mobile.nigo.comeclose.bean.SelectKey;
import com.jiuqi.mobile.nigo.comeclose.bean.app.gps.UserPositionBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserType;
import com.jiuqi.mobile.nigo.comeclose.exception.NiGoException;
import com.jiuqi.mobile.nigo.comeclose.manager.IManager;
import com.jiuqi.mobile.nigo.comeclose.manager.ManagerAnnotation;
import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectPositionLasKey;
import com.jiuqi.mobile.nigo.comeclose.manager.master.SelectReplayKey;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalMethodAnnctation;
/**
* 位置处理接口,所有数组返回,默认按照距离由近到远排序
*
* @author modi
*
*/
@ManagerAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.lbs.PositionManagerImpl")
@PortalAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.lbs.PositionManagerImpl")
public interface IPositionManager extends IManager {
/**
* 插入新位置记录
* @param userGPS
* @throws NiGoException
*/
void add(UserPositionBean userGPS) throws NiGoException;
/**
* 插入多条记录
* @Date 2013-12-27上午11:44:01
* @method add
* @fileName IPositionManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.app
* @project comeclose
* @param userGPSs
* @throws NiGoException
* @return void
*/
void add(UserPositionBean[] userGPSs) throws NiGoException;
/**
* 获取用户历史位置信息
* @param userGuid
* @return
*/
UserPositionBean[] getOlds(String userGuid, long startTime, long endTime);
/**
* 获取用户历史位置信息
* @param mobileNumber 手机号码
* @return
*/
UserPositionBean[] getOldsByMobileNumber(String mobileNumber,long startTime, long endTime);
/**
* 获取用户历史位置信息(20150612)
* @param mobileNumber 手机号码
* @return
*/
UserPositionBean[] getOldsByMobileNumber(String mobileNumber,long startTime, long endTime,SelectReplayKey key);
/**
* @Title: getOldsByMobileNumberCount
* @Description: 用户位置总条数(20150612)
* @param @param mobileNumber
* @param @param startTime
* @param @param endTime
* @param @return 设定文件
* @return int 返回类型
* @throws
*/
int getOldsByMobileNumberCount(String mobileNumber,long startTime, long endTime,SelectReplayKey key);
/**
* 获取用户当前位置信息(获取当前位置) webservice方法,有效率问题
* @param userGuid
* @return
*/
UserPositionBean find(String userGuid);
/**
* 获取用户当前位置信息(获取当前位置) webservice方法,有效率问题
* @param mobileNumber
* @return
*/
UserPositionBean findByMobileNumber(String mobileNumber, int role);
/**
* 根据经纬度获取用户当前位置信息(获取当前位置) webservice方法,有效率问题
* @param lon
* @param lat
* @param mobileNumber
* @return
*/
UserPositionBean findGisByLonLat(String lon, String lat);
/**
* 获取用户最后一次定位位置(无返回null)
* @param mobileNumber
* @return
*/
UserPositionBean findOldByMobileNumber(String mobileNumber);
/**
* 此方法有效率问题</br> 根据用户的数据字典获取周边信息
* @param mobileNumber
* @return
*/
@Deprecated
// 用getPoisBySelectKey(SelectPoiKey selectPoiKey)代替
UserPositionBean[] getNearbyPointsByUserType(UserType userType);
/**
* 根据距离查找周边
* @param longitude
* @param latitude
* @param range_kilometer 辐射范围,单位:公里
* @return
*/
@Deprecated
// 用getPoisBySelectKey(SelectPoiKey selectPoiKey)代替
UserPositionBean[] getNearByPointsByRange(double longitude,double latitude, double range_kilometer,long startPage,long size);
/**
* @Title: getPoisBySelectKey
* @Description: TODO(通过周边条件获取位置信息)
* @param @param selectPoiKey
* @param @return 设定文件
* @return UserPositionBean[] 返回类型
* @throws
*/
UserPositionBean[] getPoisBySelectKey(SelectPoiKey selectPoiKey);
/**
* @Title: resetLastSuccAreaCode
* @Description: TODO(重置最后一次定位的areacode)
* @param 设定文件
* @return void 返回类型
* @throws
*/
void resetLastSuccAreaCode();
/**
* @Title: findByContent
* @Description: TODO(查询“错误代码102”的定位信息)
* @param 设定文件
* @return void 返回类型
* @throws
*/
@PortalMethodAnnctation
void findByContent();
/**
* @Title: planLbs
* @Description: TODO(定时定位)
* @param 设定文件
* @return void 返回类型
* @throws
*/
void planLbs();
/**
* 清理三个月前的位置信息
*/
@PortalMethodAnnctation
void clearPositionGpsoneHis();
/**
* @Title: getIsSuccessCodes
* @Description: TODO(获取定位返回码,0表示成功,其他表示错误代码)
* @param @return 设定文件
* @return List<UserPositionBean> 返回类型
* @throws
*/
List<UserPositionBean> getIsSuccessCodes();
/**
*
* @Title: search
* @Description: TODO(带分页的最后一次定位详情查询)
* @param @param key
* @param @return 设定文件
* @return LoadOnGetList<UserPositionBean> 返回类型
* @throws
*/
public LoadOnGetList<UserPositionBean> search(SelectPositionLasKey key);
/**
*
* @Title: statisticsIsSuccessByPrivince
* @Description: TODO(按省份统计定位返回结果)
* @param @return 设定文件
* @return List<UserPositionBean> 返回类型
* @throws
*/
public List<UserPositionBean> statisticsIsSuccessByPrivince(long code,String startDate,String endDate);
/**
*
* @Title: findLastSuccess
* @Description: TODO(查询最后一次定位成功信息)
* @param @param mobileNumber
* @param @return 设定文件
* @return UserPositionBean 返回类型
* @throws
*/
@PortalMethodAnnctation
public UserPositionBean findLastSuccess(String mobileNumber);
/**
*
* @Title: getPositionsForWeather
* @Description: TODO(获取发送天气预报的位置信息)
* @param @return 设定文件
* @return List<UserPositionBean> 返回类型
* @throws
*/
public List<UserPositionBean> getPositionsForWeather();
/**
* @Title: getSimByProvinceAndCityForWeather
* @Description: TODO(根据定位所得省市获取电话号码集合。注释:仅用于天气预报)
* @param @param province
* @param @param city
* @param @return 设定文件
* @return String[] 返回类型
* @throws
*/
public String[] getSimByProvinceAndCityForWeather(String province,String city);
}