From 72dfa36f79f91e9d6492eaaa0e7db9a6cd709347 Mon Sep 17 00:00:00 2001 From: wentch <22250530@qq.com> Date: Thu, 14 Jan 2016 11:50:44 +0800 Subject: [PATCH] --- service.html | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/service.html b/service.html index af9faf3d9..ae75119ba 100644 --- a/service.html +++ b/service.html @@ -37,26 +37,46 @@
public class UserService implements Service {
+ //用户简单信息缓存
private final Map<Integer, UserInfo> users = new ConcurrentHashMap<>();
+ //存放手机号码与userid的对应关系
+ private final Map<Long, Integer> mobileToUserids = new ConcurrentHashMap<>();
+
public final String testLocalNodeName() {
return "本地节点名";
}
+ //查询用户信息
public UserInfo findUserInfo(int userid) {
return users.get(userid);
}
+ //根据手机号码查询用户ID,没有返回0
+ public int findUserid(long mobile) {
+ Integer rs = mobileToUserids.get(mobile);
+ return rs == null ? 0 : rs;
+ }
+
+ //缓存用户信息
+ public void putUserInfo(UserInfo user) {
+ users.put(user.getUserid(), user);
+ if (user.getMobile() > 0) mobileToUserids.put(user.getMobile(), user.getUserid());
+ }
+
+ //登录
public RetResult<UserInfo> login(LoginBean bean) {
// 登陆逻辑
return new RetResult<>(100);
}
+ //注册
@MultiRun
public void register(UserInfo user) {
this.users.put(user.getUserid(), user);
}
+ //更新用户名
@MultiRun(diffrun = false)
public UserInfo updateUsername(int userid, String username) {
UserInfo user = this.users.get(userid);
@@ -154,7 +174,7 @@
动态生成的远程模式UserService:
@Resource(name = "")
@SncpDyn(remote = true)
-@ResourceType({UserService.class})
+@ResourceType({UserService.class})
public final class _DynRemoteUserService extends UserService {
@Resource
@@ -186,19 +206,29 @@
return _client.remote(_convert, _transport, 2, userid);
}
+ @Override
+ public int findUserid(long mobile) {
+ return _client.remote(_convert, _transport, 3, mobile);
+ }
+
@Override
public RetResult<UserInfo> login(LoginBean bean) {
- return _client.remote(_convert, _transport, 3, bean);
+ return _client.remote(_convert, _transport, 4, bean);
+ }
+
+ @Override
+ public void putUserInfo(UserInfo user) {
+ _client.remote(_convert, _transport, 5, user);
}
@Override
public void register(UserInfo user) {
- _client.remote(_convert, _transport, 4, user);
+ _client.remote(_convert, _transport, 6, user);
}
@Override
public UserInfo updateUsername(int userid, String username) {
- return _client.remote(_convert, _transport, 5, userid, username);
+ return _client.remote(_convert, _transport, 7, userid, username);
}
}
@@ -257,7 +287,7 @@
source.update(values);
if (handler != null) handler.completed(null, values);
}如上图DataSourceService的源码,当DataSource为本地实例时,异步接口(含CompletionHandler参数的)与同步接口执行流程相同。当DataSource为远程模式时,调用异步接口时,通信接口发到远程服务器时CompletionHandler参数的值传null,返回数据后再调用本地的CompletionHandler参数值执行。
+如上图DataSourceService的源码,当DataSource为本地实例时,异步接口(含CompletionHandler参数的)与同步接口执行流程相同。当DataSource为远程模式时,调用异步接口时,通信接口发到远程服务器时CompletionHandler参数的值传null,返回数据后再调用本地的CompletionHandler参数值执行。