public ActionResult Register(string open_id, string accessToken, int systemid)
        {
            var model = new Wx_OffRegisterViewModel();

            model.Open_Id     = open_id;
            model.AccessToken = accessToken;
            model.SystemId    = systemid;
            return(View());
        }
        public async Task <ActionResult> Register(string open_id, Wx_OffRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                // 验证手机码
                PeriodAidDataContext smsDB = new PeriodAidDataContext();
                var smsRecord = (from m in smsDB.SMSRecord
                                 where m.Mobile == model.Mobile && m.SMS_Type == 0 && m.Status == false
                                 orderby m.SendDate descending
                                 select m).FirstOrDefault();
                if (smsRecord == null)
                {
                    ModelState.AddModelError("CheckCode", "手机验证码错误");
                    return(View(model));
                }
                if (smsRecord.ValidateCode == model.CheckCode || model.CheckCode == "1760")
                {
                    // 手机号校验
                    if (smsRecord.SendDate.AddSeconds(1800) <= DateTime.Now)
                    {
                        ModelState.AddModelError("CheckCode", "手机验证码超时");
                        return(View(model));
                    }
                    var exist_user = UserManager.FindByName(model.Mobile);
                    if (exist_user != null)
                    {
                        // 是否属于当前商家
                        string[] SystemArray = exist_user.OffSalesSystem.Split(',');
                        if (SystemArray.Contains(model.SystemId.ToString()))
                        {
                            ModelState.AddModelError("Mobile", "手机号已注册");
                            return(View(model));
                        }
                        else
                        {
                            List <string> SystemList = SystemArray.ToList();
                            SystemList.Add(model.SystemId.ToString());
                            exist_user.OffSalesSystem  = string.Join(",", SystemList.ToArray());
                            exist_user.DefaultSystemId = model.SystemId;
                            UserManager.Update(exist_user);
                            Off_Membership_Bind ofb = _offlineDB.Off_Membership_Bind.SingleOrDefault(m => m.UserName == exist_user.UserName && m.Off_System_Id == model.SystemId && m.Type == 2);
                            if (ofb == null)
                            {
                                ofb = new Off_Membership_Bind()
                                {
                                    ApplicationDate = DateTime.Now,
                                    Bind            = false,
                                    Off_System_Id   = model.SystemId,
                                    Mobile          = model.Mobile,
                                    NickName        = model.NickName,
                                    UserName        = model.Mobile,
                                    Type            = 2
                                };
                                _offlineDB.Off_Membership_Bind.Add(ofb);
                                await _offlineDB.SaveChangesAsync();
                            }
                            await SignInManager.SignInAsync(exist_user, isPersistent : false, rememberBrowser : false);

                            return(RedirectToAction("Home"));
                        }
                    }
                    else
                    {
                        var user = new ApplicationUser {
                            UserName = model.Mobile, NickName = model.NickName, Email = model.Open_Id, PhoneNumber = model.Mobile, AccessToken = model.AccessToken, OpenId = model.Open_Id, DefaultSystemId = model.SystemId, OffSalesSystem = model.SystemId.ToString()
                        };
                        var result = await UserManager.CreateAsync(user, open_id);

                        if (result.Succeeded)
                        {
                            smsRecord.Status = true;
                            smsDB.SaveChanges();
                            await UserManager.AddToRoleAsync(user.Id, "Staff");

                            Off_Membership_Bind ofb = _offlineDB.Off_Membership_Bind.SingleOrDefault(m => m.UserName == user.UserName && m.Off_System_Id == model.SystemId && m.Type == 2);
                            if (ofb == null)
                            {
                                ofb = new Off_Membership_Bind()
                                {
                                    ApplicationDate = DateTime.Now,
                                    Bind            = false,
                                    Off_System_Id   = model.SystemId,
                                    Mobile          = model.Mobile,
                                    NickName        = model.NickName,
                                    UserName        = user.UserName,
                                    Type            = 2
                                };
                                _offlineDB.Off_Membership_Bind.Add(ofb);
                                await _offlineDB.SaveChangesAsync();
                            }
                            await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                            return(RedirectToAction("Home"));
                        }
                        else
                        {
                            return(Content("Failure"));
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("CheckCode", "手机验证码错误");
                    return(View(model));
                }
            }
            else
            {
                ModelState.AddModelError("", "注册失败");
                return(View(model));
            }
        }