コード例 #1
0
ファイル: UsersController.cs プロジェクト: radtek/XuHos
        public ApiResult AddUser([FromBody] RequestUserRegisterDTO model)
        {
            var userID   = Guid.NewGuid().ToString("N");
            var memberID = Guid.NewGuid().ToString("N");
            var entity   = new XuHos.Entity.User()
            {
                UserID   = userID,
                Mobile   = model.Mobile,
                Email    = model.Email,
                Password = model.Password,
                UserType = model.UserType,
            };

            if (string.IsNullOrEmpty(model.OrgID))
            {
                model.OrgID = CurrentOperatorOrgID;
            }

            var Reason = "";

            userService = new BLL.User.Implements.UserService();
            var result = userService.RegisterUser(entity, out Reason, model.OrgID, memberID);

            //返回参数不要改
            if (result)
            {
                return((userID + memberID).ToApiResultForObject());
            }
            else
            {
                return("".ToApiResultForObject());
            }
        }
コード例 #2
0
ファイル: UsersController.cs プロジェクト: radtek/XuHos
        public ApiResult UserRegister([FromBody] RequestUserRegisterDTO request)
        {
            #region 短信验证码是否正确
            if (!serviceMsgLog.CheckVerifyCode(request.Mobile, "1", request.MsgVerifyCode))
            {
                return(new ApiResult()
                {
                    Status = EnumApiStatus.BizError, Msg = "对不起此短信验证码不存在或已经过期"
                });
            }
            #endregion

            #region 参数校验
            if (string.IsNullOrEmpty(request.OrgID))
            {
                request.OrgID = CurrentOperatorOrgID;
            }
            #endregion

            #region 注册逻辑处理

            XuHos.Entity.User model = new XuHos.Entity.User()
            {
                UserID   = System.Guid.NewGuid().ToString("N"),
                Mobile   = request.Mobile,
                Email    = request.Email,
                Password = request.Password,
                UserType = request.UserType == EnumUserType.Default ? EnumUserType.User : request.UserType,
            };
            var Reason = "";
            userService = new BLL.User.Implements.UserService();
            if (userService.RegisterUser(model, out Reason, request.OrgID))
            {
                return(new ApiResult()
                {
                    Status = EnumApiStatus.BizOK,
                    Msg = Reason
                });
            }
            else
            {
                return(new ApiResult()
                {
                    Status = EnumApiStatus.BizError,
                    Msg = Reason
                });
            }

            #endregion
        }
コード例 #3
0
ファイル: UserService.cs プロジェクト: radtek/XuHos
        /// <summary>
        /// 用户注册(新)
        /// </summary>
        /// <param name="model"></param>
        public bool RegisterUser(XuHos.Entity.User model, out string Reason,
                                 string openid = null, string appid = null)
        {
            Reason = "注册失败";
            var password = model.Password;
            var result   = true;

            try
            {
                #region 检查是否支持此类型的用户注册
                if (model.UserType != EnumUserType.Doctor && model.UserType != EnumUserType.User &&
                    model.UserType != EnumUserType.SysAdmin)
                {
                    Reason = "不支持的用户类型";
                    return(false);
                }
                #endregion


                using (DBEntities db = new DBEntities())
                {
                    #region 用户信息
                    if (string.IsNullOrEmpty(model.UserID))
                    {
                        model.UserID = Guid.NewGuid().ToString("N");
                    }

                    //密码
                    model.Password = StringEncrypt.EncryptWithMD5(model.Password);
                    //用户状态
                    model.UserState = EnumUserState.Disabled;

                    db.Users.Add(model);

                    UserExtend userExtend = new UserExtend();
                    userExtend.UserID   = model.UserID;
                    userExtend.LastTime = DateTime.Now;

                    db.UserExtends.Add(userExtend);

                    if (!string.IsNullOrEmpty(openid))
                    {
                        UserWechatMap userWechatMap = new UserWechatMap();
                        userWechatMap.UserID = model.UserID;
                        userWechatMap.OpenID = openid;
                        userWechatMap.AppID  = appid;
                        db.UserWechatMaps.Add(userWechatMap);
                    }

                    #endregion

                    #region 家庭成员
                    UserMember userMember = null;
                    if (model.UserType == EnumUserType.User)
                    {
                        userMember          = new UserMember();
                        userMember.MemberID = Guid.NewGuid().ToString("N");

                        if (!string.IsNullOrEmpty(model.Mobile))
                        {
                            userMember.Mobile = model.Mobile;
                        }
                        else
                        {
                            userMember.Mobile = "";
                        }

                        userMember.UserID     = model.UserID;
                        userMember.IDType     = EnumUserCardType.IDCard;
                        userMember.Address    = "";
                        userMember.Birthday   = "";
                        userMember.Email      = "";
                        userMember.Gender     = EnumUserGender.Other;
                        userMember.IsDefault  = true;
                        userMember.Marriage   = EnumUserMaritalStatus.Other;
                        userMember.MemberName = model.UserCNName;
                        userMember.PostCode   = "";
                        userMember.Relation   = EnumUserRelation.MySelf;
                        db.UserMembers.Add(userMember);
                    }
                    #endregion

                    #region 用户标识
                    db.ConversationIMUids.Add(new ConversationIMUid()
                    {
                        Identifier = Convert.ToInt32(WaterNoService.GetWaterNo(EnumWaterNoType.Identify)),
                        Enable     = false,
                        IsDeleted  = false,
                        CreateTime = DateTime.Now,
                        UserID     = model.UserID
                    });
                    #endregion

                    if (db.SaveChanges() >= 0)
                    {
                        #region 将注册消息写入队列,队列中发送短信和注册云通信
                        using (XuHos.EventBus.MQChannel mqChannel = new EventBus.MQChannel())
                        {
                            mqChannel.Publish <EventBus.Events.UserRegisteredEvent>(new EventBus.Events.UserRegisteredEvent()
                            {
                                UserAccount  = model.UserAccount,
                                UserID       = model.UserID,
                                UserPassword = password,
                                UserType     = model.UserType,
                                OrgCode      = model.OrgCode,
                                Mobile       = model.Mobile,
                            });
                        }
                        #endregion

                        result = true;
                        Reason = "注册成功";
                    }
                    else
                    {
                        Reason = "注册失败";
                    }
                }
            }
            catch (Exception ex)
            {
                Reason = "系统错误";
                result = false;
                throw ex;
            }
            return(result);
        }