Ejemplo n.º 1
0
        public UserInfoEntity GetUserInfoByOpenId(string openId)
        {
            if (string.IsNullOrEmpty(openId))
            {
                return(null);
            }
            UserInfoEntity userInfo    = null;
            string         cacheKey    = RedisKeyConst.UserInfoKeyByOpenIdCacheKey(openId);
            string         userInfoKey = redisClient.Get(cacheKey);

            if (!string.IsNullOrEmpty(userInfoKey))
            {
                userInfo = redisClient.Get <UserInfoEntity>(userInfoKey);
            }
            if (userInfo != null)
            {
                return(userInfo);
            }
            userInfo = userInfoDao.GetUserInfoByOpenId(openId);
            if (userInfo != null)
            {
                if (string.IsNullOrEmpty(userInfoKey))
                {
                    userInfoKey = RedisKeyConst.UserInfoByOpenIdAndUIdCacheKey(userInfo.OpenId, userInfo.UId);
                    redisClient.Set(cacheKey, userInfoKey, RedisKeyConst.UserInfoCacheSecond);
                }
                //缓存一个月
                redisClient.Set(userInfoKey, userInfo, RedisKeyConst.UserInfoCacheSecond);
            }
            return(userInfo);
        }
Ejemplo n.º 2
0
        public ResponseContext <UserInfoType> Register(RequestContext <RegisterRequest> request)
        {
            var response = new ResponseContext <UserInfoType>();
            var userInfo = GetUserInfoByUid(request.Head.UId);

            if (userInfo == null)
            {
                response.ResultCode    = ErrCodeEnum.UserNoExist;
                response.ResultMessage = "请求服务器失败,请重试!";
                return(response);
            }
            userInfo.Gender   = request.Data.Gender;
            userInfo.NickName = request.Data.NickName;
            userInfo.Portrait = request.Data.AvatarUrl;
            userInfo.Country  = request.Data.Country;
            userInfo.Province = request.Data.Province;
            userInfo.City     = request.Data.City;
            bool success = userInfoDao.Register(request.Head.UId, request.Data.Gender, request.Data.NickName, request.Data.AvatarUrl, request.Data.Country, request.Data.Province, request.Data.City);

            if (success)
            {
                userInfo.IsRegister = true;
                //刷新缓存
                var userInfoKey = RedisKeyConst.UserInfoByOpenIdAndUIdCacheKey(userInfo.OpenId, userInfo.UId);
                if (redisClient.Remove(userInfoKey))
                {
                    userInfo = GetUserInfoByUid(request.Head.UId);
                }
                response.Data          = UserInfoBuilder.BuildUserInfoV1(userInfo, request.Head);
                response.Data.NickName = userInfo.NickName;
            }
            return(response);
        }
Ejemplo n.º 3
0
        public bool UpdateUserLocation(long uId, double latitude, double longitude)
        {
            bool success = userInfoDao.UpdateUserLocation(uId, latitude, longitude);

            if (success)
            {
                var userInfo = GetUserInfoByUid(uId);
                if (userInfo != null)
                {
                    //刷新缓存
                    var userInfoKey = RedisKeyConst.UserInfoByOpenIdAndUIdCacheKey(userInfo.OpenId, userInfo.UId);
                    if (redisClient.Remove(userInfoKey))
                    {
                        GetUserInfoByUid(uId);
                    }
                }
            }
            return(success);
        }
Ejemplo n.º 4
0
        public Response UpdateUserInfo(RequestContext <UpdateUserInfoType> request)
        {
            Response response = new Response();
            var      userInfo = GetUserInfoByUid(request.Head.UId);

            if (userInfo == null || userInfo.Platform != request.Head.Platform)
            {
                response.ResultCode    = ErrCodeEnum.UserNoExist;
                response.ResultMessage = "用户不存在";
                return(response);
            }
            userInfo = new UserInfoEntity()
            {
                UId        = request.Head.UId,
                OpenId     = userInfo.OpenId,
                NickName   = request.Data.NickName,
                Gender     = request.Data.Gender,
                LiveState  = request.Data.LiveState,
                Grade      = request.Data.Grade,
                SchoolName = request.Data.SchoolName,
                BirthDate  = Convert.ToDateTime(request.Data.BirthDate),
                Mobile     = request.Data.Mobile,
                WeChatNo   = request.Data.WeChatNo,
                QQNo       = request.Data.QQNo,
                UpdateTime = DateTime.Now
            };
            bool success = userInfoDao.UpdateUserInfo(userInfo);

            if (!success)
            {
                return(new Response(ErrCodeEnum.Failure, "修改失败"));
            }
            else
            {
                //刷新缓存
                var userInfoKey = RedisKeyConst.UserInfoByOpenIdAndUIdCacheKey(userInfo.OpenId, userInfo.UId);
                if (redisClient.Remove(userInfoKey))
                {
                    GetUserInfoByUid(request.Head.UId);
                }
            }
            return(response);
        }