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参数值执行。