Exemple #1
0
        /// <summary>
        /// 微信注册普通会员用户
        /// </summary>
        /// <param name="userInPut">第三方类型</param>
        /// <returns></returns>
        public bool CreateUserByWxOpenId(UserInputDto userInPut)
        {
            User        user            = userInPut.MapTo <User>();
            UserLogOn   userLogOnEntity = new UserLogOn();
            UserOpenIds userOpenIds     = new UserOpenIds();

            user.Id              = user.CreatorUserId = GuidUtils.CreateNo();
            user.Account         = "Wx" + GuidUtils.CreateNo();
            user.CreatorTime     = userLogOnEntity.FirstVisitTime = DateTime.Now;
            user.IsAdministrator = false;
            user.EnabledMark     = true;
            user.Description     = "第三方注册";
            user.IsMember        = true;
            user.UnionId         = userInPut.UnionId;
            user.ReferralUserId  = userInPut.ReferralUserId;
            if (userInPut.NickName == "游客")
            {
                user.RoleId = _roleService.GetRole("guest").Id;
            }
            else
            {
                user.RoleId = _roleService.GetRole("usermember").Id;
            }

            userLogOnEntity.UserId = user.Id;

            userLogOnEntity.UserPassword = GuidUtils.NewGuidFormatN() + new Random().Next(100000, 999999).ToString();
            userLogOnEntity.Language     = userInPut.language;

            userOpenIds.OpenId     = userInPut.OpenId;
            userOpenIds.OpenIdType = userInPut.OpenIdType;
            userOpenIds.UserId     = user.Id;
            return(_userRepository.Insert(user, userLogOnEntity, userOpenIds));
        }
Exemple #2
0
 /// <summary>
 /// 注册用户,第三方平台
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="userLogOnEntity"></param>
 /// <param name="userOpenIds"></param>
 /// <param name="trans"></param>
 public bool Insert(User entity, UserLogOn userLogOnEntity, UserOpenIds userOpenIds, IDbTransaction trans = null)
 {
     DbContext.GetDbSet <User>().Add(entity);
     DbContext.GetDbSet <UserLogOn>().Add(userLogOnEntity); userLogOnEntity.Id = GuidUtils.CreateNo();
     userLogOnEntity.UserId        = entity.Id;
     userLogOnEntity.UserSecretkey = MD5Util.GetMD5_16(GuidUtils.NewGuidFormatN()).ToLower();
     userLogOnEntity.UserPassword  = MD5Util.GetMD5_32(DEncrypt.Encrypt(MD5Util.GetMD5_32(userLogOnEntity.UserPassword).ToLower(), userLogOnEntity.UserSecretkey).ToLower()).ToLower();
     DbContext.GetDbSet <User>().Add(entity);
     DbContext.GetDbSet <UserLogOn>().Add(userLogOnEntity);
     DbContext.GetDbSet <UserOpenIds>().Add(userOpenIds);
     return(DbContext.SaveChanges() > 0);
 }
Exemple #3
0
        public Users UserRegister(Users userInfo, UserOpenIds openIds)
        {
            using (var tran = new TransactionScope())                                                           //新建事务
            {
                Users savedUserInfo = context.Users.Add(userInfo);

                context.SaveChanges();

                openIds.UserId = savedUserInfo.Id;

                context.UserOpenIds.Add(openIds);

                context.SaveChanges();
                tran.Complete();

                return(savedUserInfo);
            }
        }
Exemple #4
0
        public static void LoginCheckIn(WebSocketSession session, SocketData socketData)
        {
            string nick  = socketData.data["nick"].ToString();
            string photo = socketData.data["photo"].ToString();
            string code  = socketData.data["code"].ToString();

            string appId  = ConfigurationManager.AppSettings["AppId"];
            string secret = ConfigurationManager.AppSettings["Secret"];

            string httpResult = WebHelper.GetRequestData("https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + secret + "&js_code=" + code + "&grant_type=authorization_code", "get", "");

            Log.Info("WeChat jscode2session api received msg:" + httpResult);

            JObject sessionObj = JsonConvert.DeserializeObject(httpResult) as JObject;

            string openid = sessionObj["openid"].ToString();
            //string unionid = sessionObj["unionid"].ToString();
            string unionid     = "";
            string session_key = sessionObj["session_key"].ToString();

            Users userInfo = ServiceProvider.Instance <IUsersService> .Create.GetUserByOpenId(openid);

            if (userInfo == null)
            {
                Users user = new Users()
                {
                    CreateDate    = DateTime.Now,
                    Gender        = 1,
                    IsOnline      = 1,
                    LastLoginDate = DateTime.Now,
                    Nick          = nick,
                    Photo         = photo,
                    UserName      = Utils.GetRamCode()
                };

                UserOpenIds openIds = new UserOpenIds()
                {
                    UnionId         = unionid,
                    UnionOpenId     = openid,
                    UserId          = user.Id,
                    ServiceProvider = "WeiXin.SmallProgram"
                };

                userInfo = ServiceProvider.Instance <IUsersService> .Create.UserRegister(user, openIds);
            }

            WebSocketSession findOnlineUser = SessionPool.Get(userInfo.Id);

            ServiceProvider.Instance <IUsersService> .Create.UpdateLoginDate(DateTime.Now, userInfo.Id);

            ServiceProvider.Instance <IUsersService> .Create.UpdateLoginKey(userInfo.Id);

            userInfo = ServiceProvider.Instance <IUsersService> .Create.GetUserByOpenId(openid);

            if (findOnlineUser != null)
            {
                SessionPool.Remove(userInfo.Id);
            }

            SocketData sendData = new SocketData()
            {
                cmd_id = MainProtocol.LoginCheckIn, msg = "登录成功"
            };

            sendData.SetData(new
            {
                user_id = userInfo.Id,
                key     = userInfo.Key
            });

            session.Nick        = userInfo.Nick;
            session.UserId      = userInfo.Id;
            session.Photo       = userInfo.Photo;
            session.SessionKey  = session_key;
            session.ConnectTime = DateTime.Now;

            SessionPool.Add(session);

            session.Send(sendData);
        }
Exemple #5
0
 /// <summary>
 /// 更新用户信息,第三方平台
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="userLogOnEntity"></param>
 /// <param name="trans"></param>
 public bool UpdateUserByOpenId(User entity, UserLogOn userLogOnEntity, UserOpenIds userOpenIds, IDbTransaction trans = null)
 {
     DbContext.GetDbSet <User>().Add(entity);
     DbContext.GetDbSet <UserOpenIds>().Add(userOpenIds);
     return(DbContext.SaveChanges() > 0);
 }
Exemple #6
0
 /// <summary>
 /// 更新用户信息,第三方平台
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="userLogOnEntity"></param>
 /// <param name="userOpenIds"></param>
 /// <param name="trans"></param>
 public bool UpdateUserByOpenId(User entity, UserLogOn userLogOnEntity, UserOpenIds userOpenIds, IDbTransaction trans = null)
 {
     return(_userRepository.UpdateUserByOpenId(entity, userLogOnEntity, userOpenIds, trans));
 }
Exemple #7
0
 /// <summary>
 /// 注册用户,第三方平台
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="userLogOnEntity"></param>
 /// <param name="trans"></param>
 public bool Insert(User entity, UserLogOn userLogOnEntity, UserOpenIds userOpenIds, IDbTransaction trans = null)
 {
     return(_userRepository.Insert(entity, userLogOnEntity, userOpenIds, trans));
 }