Beispiel #1
0
        public IHttpActionResult MyUserInfo()
        {
            UserClaimsInfoModel userClaimsInfoModel = this.GetUserModelFromCurrentClaimsIdentity();
            UserRepoModel       userRepoModel       = this._userRepo.GetUser(userClaimsInfoModel.mail, 1);
            ResMyUserInfo       response            = new ResMyUserInfo();

            response.setResponse(ResStatusCode.OK, userRepoModel, 1);
            return(Ok(response));
        }
Beispiel #2
0
        public UserClaimsInfoModel CreateUserClaimsInfoModelFromUserRepoModel(UserRepoModel userRepoModel)
        {
            UserClaimsInfoModel userClaimsInfoModel = null;

            if (userRepoModel != null)
            {
                userClaimsInfoModel        = new UserClaimsInfoModel();
                userClaimsInfoModel.userID = userRepoModel.info.userID;
                userClaimsInfoModel.mail   = userRepoModel.info.mail;
            }
            return(userClaimsInfoModel);
        }
Beispiel #3
0
        public IHttpActionResult GetUserInfo(ReqGetUserInfoModel req)
        {
            ResMyUserInfo response      = new ResMyUserInfo();
            UserRepoModel userRepoModel = this._userRepo.GetUser(req.mail);

            if (userRepoModel == null)
            {
                Enforce.Throw(new LogicErrorException("用户不存在"));
            }
            response.setResponse(ResStatusCode.OK, userRepoModel, 1);
            return(Ok(response));
        }
Beispiel #4
0
        public UserRepoModel GetUserByThirdPartyId(string thirdPartyId, string from)
        {
            UserRepoModel userRepoModel = null;

            var thirdInfoModel = this.getThirdPartyInfoModel(thirdPartyId, from);

            if (thirdInfoModel != null)
            {
                var userInfoModel = this.getUserInfoModelByUserID(thirdInfoModel.userID, 1);
                userRepoModel          = new UserRepoModel();
                userRepoModel.info     = userInfoModel;
                userRepoModel.roleList = this.getUserRoleListByUserID(userInfoModel.userID);;
            }
            return(userRepoModel);
        }
Beispiel #5
0
        public async Task <UserRepoModel> BindUser(string submitToken, string redisId, string mail, string agent)
        {
            UserRepoModel userRepoModel = null;

            if (await this.checkSubmitToken(EmailAuthCodeType.BindUser, mail, submitToken, agent))
            {
                var thirdParty = await _relationRepo.GetRelationAccountModel(redisId);

                if (null == thirdParty)
                {
                    Enforce.Throw(new FrontInputValidateErrorException("第三方Id不存在"));
                }
                var userInfoModel = this.getUserInfoModelByMail(mail, 1);
                if (userInfoModel == null)
                {
                    Enforce.Throw(new LogicErrorException("当前账号不存在"));
                }

                if (this.getThirdPartyInfoModel(thirdParty.thirdPartyID, thirdParty.from) != null)
                {
                    Enforce.Throw(new LogicErrorException("第三方账号已被其他账号绑定"));
                }

                if (this.getThirdPartyInfoModel(userInfoModel.userID, thirdParty.from) != null)
                {
                    Enforce.Throw(new LogicErrorException("当前账号已绑定过该类型的第三方账号"));
                }

                userInfoModel.lastLoginTime = DateTime.Now;
                bool ret = this._userBll.UpdateUserAndThirdParty(Mapper.Map <UserInfoModel, T_USER>(userInfoModel), thirdParty.thirdPartyID, thirdParty.from);
                if (ret)
                {
                    userRepoModel          = new UserRepoModel();
                    userRepoModel.info     = userInfoModel;
                    userRepoModel.roleList = this.getUserRoleListByUserID(userRepoModel.info.userID);
                }
            }

            return(userRepoModel);
        }
Beispiel #6
0
        public UserRepoModel GetUser(string mail, int?status = 1, string password = null)
        {
            mail = string.IsNullOrEmpty(mail) ? mail : mail.ToLower();
            UserRepoModel userRepoModel = null;
            var           query         = new DapperExQuery <T_USER>().AndWhere(t => t.U_EMAIL, OperationMethod.Equal, mail);

            if (!string.IsNullOrEmpty(password))
            {
                query.AndWhere(t => t.U_PASSWORD, OperationMethod.Equal, Encrypt.Base64Encode(password));
            }
            if (status != null)
            {
                query.AndWhere(k => k.U_STATUS, OperationMethod.Equal, 1);
            }
            var userEntity = this._userBll.GetEntity(query);

            if (null != userEntity)
            {
                userRepoModel          = new UserRepoModel();
                userRepoModel.info     = Mapper.Map <T_USER, UserInfoModel>(userEntity);
                userRepoModel.roleList = this.getUserRoleListByUserID(userEntity.ID);
            }
            return(userRepoModel);
        }
Beispiel #7
0
        public async Task <UserRepoModel> RegisterUser(string submitToken, string redisId, string mail, string password, string name, string agent)
        {
            UserRepoModel userRepoModel = null;

            if (await this.checkSubmitToken(EmailAuthCodeType.RegisterUser, mail, submitToken, agent))
            {
                var thirdParty = new RelationAccountModel();
                if (!string.IsNullOrEmpty(redisId))
                {
                    thirdParty = await _relationRepo.GetRelationAccountModel(redisId);

                    if (null == thirdParty)
                    {
                        Enforce.Throw(new FrontInputValidateErrorException("第三方Id不存在"));
                    }
                }

                var userInfoModel = new UserInfoModel();
                userInfoModel.userName      = name;
                userInfoModel.userTrueName  = name;
                userInfoModel.password      = Encrypt.Base64Encode(password);
                userInfoModel.userLevel     = 0;
                userInfoModel.sex           = 0;
                userInfoModel.userStatus    = 1;
                userInfoModel.lastLoginTime = DateTime.Now;
                bool ret        = false;
                var  userEntity = this.getUserInfoModelByMail(mail, null);
                //是否存在记录(当被邀请时会生成一条占位的记录)
                if (userEntity == null)
                {
                    userInfoModel.mail       = mail.ToLower();;
                    userInfoModel.createTime = userInfoModel.lastLoginTime;
                    if (string.IsNullOrEmpty(name))
                    {
                        userInfoModel.userName     = mail.Split('@')[0];
                        userInfoModel.userTrueName = mail.Split('@')[0];
                    }
                    var user = Mapper.Map <UserInfoModel, T_USER>(userInfoModel);
                    if (string.IsNullOrEmpty(thirdParty.thirdPartyID))
                    {
                        ret = this._userBll.Add(user);
                    }
                    else
                    {
                        if (this.getThirdPartyInfoModel(thirdParty.thirdPartyID, thirdParty.from) != null)
                        {
                            Enforce.Throw(new LogicErrorException("第三方账号已被其他账号绑定"));
                        }
                        ret = this._userBll.AddUserAndThirdParty(user, thirdParty.thirdPartyID, thirdParty.from);
                    }
                    userInfoModel = Mapper.Map <T_USER, UserInfoModel>(user);
                }
                else if (userEntity != null && userEntity.userStatus == 0)
                {
                    userInfoModel.userID     = userEntity.userID;
                    userInfoModel.mail       = userEntity.mail;
                    userInfoModel.createTime = userEntity.createTime;
                    if (string.IsNullOrEmpty(name))
                    {
                        userInfoModel.userName     = userEntity.userName;
                        userInfoModel.userTrueName = userEntity.userTrueName;
                    }
                    if (string.IsNullOrEmpty(thirdParty.thirdPartyID))
                    {
                        ret = this._userBll.Update(Mapper.Map <UserInfoModel, T_USER>(userInfoModel));
                    }
                    else
                    {
                        if (this.getThirdPartyInfoModel(thirdParty.thirdPartyID, thirdParty.from) != null)
                        {
                            Enforce.Throw(new LogicErrorException("第三方账号已被其他账号绑定"));
                        }
                        ret = this._userBll.UpdateUserAndThirdParty(Mapper.Map <UserInfoModel, T_USER>(userInfoModel), thirdParty.thirdPartyID, thirdParty.from);
                    }
                }


                if (ret)
                {
                    userRepoModel          = new UserRepoModel();
                    userRepoModel.info     = userInfoModel;
                    userRepoModel.roleList = this.getUserRoleListByUserID(userRepoModel.info.userID);
                }
            }

            return(userRepoModel);
        }