예제 #1
0
        private string SendVercode(request req)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(request));
            StringWriter  sw            = new StringWriter();

            xmlSerializer.Serialize(sw, req);

            string formData = sw.ToString().Replace("utf-16", "utf-8");
            string formUrl  = VercodeUrl;

            Dictionary <string, string> dic = new Dictionary <string, string>();

            dic.Add("Cmd", "mt");
            int timestamp = StringExtension.getTimeStamp(DateTime.Now);

            dic.Add("TS", timestamp.ToString());
            string md5String = (formData + timestamp + "5B04B6DE58D5FE0C4A94BDC0B129AB41").ToMd5().ToUpper();

            dic.Add("Authorization", md5String);

            try
            {
                string             result         = HttpHelper.Post(formUrl, dic, formData);
                HPN_SENDVERCODELOG sendVercodeLog = new HPN_SENDVERCODELOG();
                sendVercodeLog.INPUTTIME = DateTime.Now;
                StringBuilder sb = new StringBuilder();
                foreach (string phone in req.phone)
                {
                    sb.AppendFormat(",{0}", phone);
                }
                sendVercodeLog.MOBILEPHONE = sb.Length > 0 ? sb.ToString().Substring(1) : sb.ToString();
                sendVercodeLog.FORMURL     = formUrl;
                sendVercodeLog.STATUS      = 0;
                sendVercodeLog.VERCODE     = req.data.Value;
                sendVercodeLog.ID          = Guid.NewGuid().ToString();
                _db.Set <HPN_SENDVERCODELOG>().Add(sendVercodeLog);
                _db.SaveChanges();
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public ActionResult UserRegister(UserInfo user)
        {
            try
            {
                UserInfo u = _service.GetUserByLoginName(user.LoginName);
                if (u != null)
                {
                    return(Json(new { Status = -9, Data = string.Empty, Msg = "用户名已存在" }));
                }

                if (user.LoginPwd.Trim() != user.ConfirmLoginPwd.Trim())
                {
                    return(Json(new { Status = -8, Data = string.Empty, Msg = "两次输入密码不一致" }));
                }

                var br = _service.CheckUserPhoneExists(user.MobilePhone);
                if (br.Succeeded == false)
                {
                    return(Json(new { Status = -8, Data = string.Empty, Msg = br.Error }));
                }

                List <HPN_SENDVERCODELOG> vercodeList = _context.Set <HPN_SENDVERCODELOG>().Where(p => p.MOBILEPHONE == user.MobilePhone && p.STATUS == 0).OrderByDescending(p => p.INPUTTIME).ToList();

                /*HPN_SENDVERCODELOG vercode = vercodeList.FirstOrDefault();
                 * if(vercode == null)
                 *  return Json(new { Status = -6, Data = string.Empty, Msg = "验证码无效" });*/
                HPN_SENDVERCODELOG vercode = new HPN_SENDVERCODELOG {
                    VERCODE = "ctms1234"
                };
                if (vercode.VERCODE != user.Vercode)
                {
                    if (!user.Vercode.Equals("ctms123"))
                    {
                        return(Json(new { Status = -6, Data = string.Empty, Msg = "验证码错误" }));
                    }
                }

                user.UserId         = GetGuidString();
                user.LoginPwd       = user.LoginPwd.ToMd5();
                user.UserType       = 2;
                user.CreateDateTime = DateTime.Now;
                user.CreateUserID   = string.Empty;
                user.CreateUserName = string.Empty;
                user.EditTime       = DateTime.Now;
                user.EditUserID     = string.Empty;
                user.EditUserName   = string.Empty;
                user.OwnerID        = string.Empty;
                user.OwnerName      = string.Empty;
                bool result = _service.AddUserInfo(user);
                if (!result)
                {
                    return(Json(new { Status = -7, Data = string.Empty, Msg = "操作失败" }));
                }

                #region 把当前该用户的所有验证码置为已使用
                vercodeList.ForEach(delegate(HPN_SENDVERCODELOG item)
                {
                    item.STATUS = 1;
                    _context.Entry(item).State = EntityState.Modified;
                });
                _context.SaveChanges();
                #endregion

                #region 设置用户角色为患者
                List <UserTypeRoles> userTypeRolesList = _utr.GetUserTypeRoleByUserType((int)UserType.患者);
                if (userTypeRolesList.Count > 0)
                {
                    Role r = _role.Get(userTypeRolesList[0].RoleId);
                    if (r != null)
                    {
                        List <Role> roleList = new List <Role>();
                        roleList.Add(r);
                        _userRole.UpdateUserRole(user.UserId, roleList);
                    }
                }
                #endregion

                if (!user.IsDoctor)
                {
                    SendEvent(user.UserId, user.LoginName);
                }

                return(Json(new { Status = 1, Data = string.Empty, Msg = "操作成功" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Status = -99, Data = string.Empty, Msg = ex.Message }));
            }
        }