package com.jiuqi.mobile.lbs.intf;
import com.jiuqi.mobile.lbs.intf.pub.LBSInfo;
import com.jiuqi.mobile.lbs.intf.pub.LBSRegister;
import com.jiuqi.mobile.lbs.intf.pub.LBSResult;
import com.jqmobile.core.server.rmi2.RMI;
import com.jqmobile.core.service.Login;
import com.jqmobile.core.service.Service;
/**
* 定位服务
* @author MODI
*
* @project com.jiuqi.mobile.lbs-intf
* @date 2013年12月6日
*/
@Service(impl="com.jiuqi.mobile.lbs.service.LBSServiceImpl")
@RMI
public interface ILBSService {
/**
* 用户允许定位注册
* @param userId
* @param userSim
*/
@RMI
void reg(LBSRegister lbsReg) throws LBSRegisterException;
/**
* 定位服务(执行第三方定位)
* <p>2014-4-1 标记为废弃方法,后续不再维护。请使用get(String mobileNumber)方法
* @param userId 发起人用户ID
* @param sim 被定位手机号码
* @return
*/
@Deprecated
LBSResult execute(String userId, String sim) throws LBSException;
/**
* 位置上报
* @param lbsSession
* @param lbs 一次个数不得超过20个
* @throws LBSException void
* @user modi qq:411051729
* @return int
* <p>0:成功; 4:超过最大连接数,稍后重试; 5:session失效;
* <p>-1:上传位置不能为空 -2:一次上传位置数不得超过100个
*/
@Login
@RMI
int appear(String lbsSession, LBSInfo... lbs) throws LBSException;
/**
* 获取历史位置信息
* 所有返回值按定位位置先后顺序获取
* @param startTime 开始时间
* @param endTime 结束时间
* @param startIndex 开始行数
* @param userIds 用户ID,存储时使用的用户ID。一次查询用户数在1-100之间,超过100个时,取前100个
* @return LBSInfo[] 每次最多返回100行。没有返回空
* @user modi qq:411051729
*/
@RMI
LBSInfo[] get(long startTime, long endTime, int startIndex, String... userIds);
/**
* 获取用户最新位置信息(5分钟误差)
* @param mobileNumber
* @return LBSInfo
* @user modi qq:411051729
*/
@RMI
LBSInfo get(String mobileNumber);
// /**
// * 精定位接口
// * @param userId 发起人用户ID
// * @param sim 被定位手机号码
// * @return
// */
// LBSResult findExact(String userId, String sim) throws LBSException;
}