public async Task <IActionResult> Edit(int id, [Bind("AdultId,JuvenileId,PhoneId,PhoneTypeId")] MemberPhone memberPhone)
        {
            if (id != memberPhone.AdultId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(memberPhone);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MemberPhoneExists(memberPhone.AdultId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["AdultId"]     = new SelectList(_context.AdultMember, "Id", "FirstName", memberPhone.AdultId);
            ViewData["JuvenileId"]  = new SelectList(_context.JuvenileMember, "Id", "FirstName", memberPhone.JuvenileId);
            ViewData["PhoneId"]     = new SelectList(_context.Phone, "Id", "PhoneNum", memberPhone.PhoneId);
            ViewData["PhoneTypeId"] = new SelectList(_context.PhoneType, "Id", "Id", memberPhone.PhoneTypeId);
            return(View(memberPhone));
        }
        public async Task <IActionResult> Create([Bind("AdultId,JuvenileId,PhoneId,PhoneTypeId")] MemberPhone memberPhone)
        {
            if (ModelState.IsValid)
            {
                _context.Add(memberPhone);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["AdultId"]     = new SelectList(_context.AdultMember, "Id", "FirstName", memberPhone.AdultId);
            ViewData["JuvenileId"]  = new SelectList(_context.JuvenileMember, "Id", "FirstName", memberPhone.JuvenileId);
            ViewData["PhoneId"]     = new SelectList(_context.Phone, "Id", "PhoneNum", memberPhone.PhoneId);
            ViewData["PhoneTypeId"] = new SelectList(_context.PhoneType, "Id", "Id", memberPhone.PhoneTypeId);
            return(View(memberPhone));
        }
Example #3
0
 private void SavePhone(CultureDataContext db, Member q)
 {
     string[] checkedCheckBoxes = (Request.Form["chkWhatsapp"] ?? string.Empty).ToString().Split(',');
     for (int i = 1; i <= int.Parse(hdfIndex.Value); i++)
     {
         var val = Request.Form["phone[" + i.ToString() + "]"];
         if (val != null && val != string.Empty)
         {
             MemberPhone p = new MemberPhone();
             p.Member               = q;
             p.MemberPhone_Number   = val;
             p.MemberPhone_WhatsApp = checkedCheckBoxes.Any(s => s.Contains(i.ToString()));
             db.MemberPhones.InsertOnSubmit(p);
         }
     }
 }
Example #4
0
        public async Task <APIResult> RegisterBySms([FromBody] RegisterBySmsArgsModel args)
        {
            if (string.IsNullOrEmpty(args.Phone))
            {
                throw new ArgumentNullException("Phone");
            }
            if (string.IsNullOrEmpty(args.Code))
            {
                throw new ArgumentNullException("Code");
            }
            var phone = args.Phone.Trim();

            var isBindPhone = memberDb.IsBindMemberPhone(phone);

            if (isBindPhone)
            {
                throw new Exception("该手机已绑定使用,请重新输入手机!");
            }

            memberDb.SetMemberSMSValiCodeTaskFinished(phone, args.Code, "Register");

            var member = new Member()
            {
                Email         = $"{args.Phone}@phone",
                Password      = MemberPasswordToMD5(CommonUtil.CreateIntNoncestr(8)),
                Truename      = args.Phone,
                RegIP         = GetIp(),
                RegTime       = DateTime.Now,
                LastLoginIP   = GetIp(),
                LastLoginTime = DateTime.Now,
                Status        = MemberStatus.正常
            };

            memberDb.AddToMember(member);

            MemberPhone memberPhone = new MemberPhone()
            {
                Member = member,
                Phone  = phone,
                State  = MemberPhoneState.已绑定
            };

            memberDb.Add <MemberPhone>(memberPhone);
            await memberDb.SaveChangesAsync();

            return(Success());
        }
Example #5
0
        public void TestMethod1()
        {
            var wechatCoreDb = new WechatCoreDbContext(new Microsoft.EntityFrameworkCore.DbContextOptions <WechatCoreDbContext>());
            var memberDb     = new MemberDbContext(new Microsoft.EntityFrameworkCore.DbContextOptions <MemberDbContext>());
            var argsModel    = new BindCustomerPhoneByWxopenPhoneArgsModel()
            {
                EncryptedData = "Bbu3OZPldIdKPezC8druWzqZlIA5lhyDEFPpMR20vieOHUxIO+…xhv+IZaw1krTTqyXvikTO91cKGtfIPOBN0VbxIj2JshpsDQ==", Iv = "EPonbgT9+okCcL025u8boQ=="
            };
            var jwtFlag = "jwt";// User.Identity.Name;

            if (string.IsNullOrEmpty(argsModel.EncryptedData))
            {
                throw new ArgumentNullException("encryptedData");
            }
            var jwt = wechatCoreDb.GetSingleMemberLogin(jwtFlag);

            if (jwt == null)
            {
                throw new Exception("未找到登陆纪录");
            }
            var session_key = jwt.GetloginSettingValue <string>("sessionKey");
            var openId      = jwt.GetloginSettingValue <string>("openId");

            var json = Senparc.Weixin.WxOpen.Helpers.EncryptHelper.DecodeEncryptedData(session_key, argsModel.EncryptedData, argsModel.Iv);
            // _logger.LogInformation(json);

            var args = Newtonsoft.Json.JsonConvert.DeserializeObject <Senparc.Weixin.WxOpen.Entities.DecodedPhoneNumber>(json);

            var customerPhone = wechatCoreDb.Query <CustomerPhone>()
                                .Where(m => !m.IsDel)
                                .Where(m => m.Status == CustomerPhoneStatus.已绑定 && m.OpenId == openId)
                                .FirstOrDefault();

            if (customerPhone == null)
            {
                customerPhone = new CustomerPhone()
                {
                    OpenId = openId,
                    Phone  = args.phoneNumber,
                    Status = CustomerPhoneStatus.已绑定
                };
                wechatCoreDb.Add <CustomerPhone>(customerPhone);
                wechatCoreDb.SaveChanges();
            }

            //var email = $"{customerPhone.Phone}@phone";
            //var member = memberDb.Query<Member>()
            //    .Where(m => !m.IsDel)
            //    .Where(m => m.Email == email)
            //    .FirstOrDefault();

            //if (member == null)
            //{
            //    member = new Member()
            //    {
            //        Email = email,
            //        Password = CommonUtil.CreateNoncestr(8),
            //        Status = MemberStatus.正常,
            //        Truename = customerPhone.Phone,
            //        LastLoginTime = DateTime.Now,
            //        RegTime = DateTime.Now
            //    };

            //    memberDb.AddToMember(member);
            //    memberDb.SaveChanges();
            //}

            //改为使用MemberPhone
            var memberId = memberDb.GetMemberIdByMemberPhone(customerPhone.Phone);

            if (memberId <= 0)//说明没有手机绑定的会员,则新建一个
            {
                var member = new Member()
                {
                    Email         = $"{customerPhone.Phone}@phone",
                    Password      = CommonUtil.CreateNoncestr(8),
                    Status        = MemberStatus.正常,
                    Truename      = customerPhone.Phone,
                    LastLoginTime = DateTime.Now,
                    RegTime       = DateTime.Now
                };
                memberDb.AddToMember(member);
                var memberPhone = new MemberPhone()
                {
                    Member = member,
                    Phone  = customerPhone.Phone,
                    State  = MemberPhoneState.已绑定
                };
                memberDb.Add <MemberPhone>(memberPhone);
                memberDb.SaveChanges();

                memberId = member.Id;
            }

            jwt.MemberId = memberId;
            wechatCoreDb.SaveChanges();
        }
Example #6
0
        public APIResult BindCustomerPhoneByWxopenPhone([FromBody] BindCustomerPhoneByWxopenPhoneArgsModel argsModel)
        {
            var jwtFlag = User.Identity.Name;

            if (string.IsNullOrEmpty(argsModel.EncryptedData))
            {
                throw new ArgumentNullException("encryptedData");
            }
            var jwt = wechatCoreDb.GetSingleMemberLogin(jwtFlag);

            if (jwt == null)
            {
                throw new Exception("未找到登陆纪录");
            }
            var session_key = jwt.GetloginSettingValue <string>("sessionKey");
            var openId      = jwt.GetloginSettingValue <string>("openId");

            var json = Senparc.Weixin.WxOpen.Helpers.EncryptHelper.DecodeEncryptedData(session_key, argsModel.EncryptedData, argsModel.Iv);
            //_logger.LogInformation(json);

            var args = Newtonsoft.Json.JsonConvert.DeserializeObject <Senparc.Weixin.WxOpen.Entities.DecodedPhoneNumber>(json);

            var customerPhone = wechatCoreDb.Query <CustomerPhone>()
                                .Where(m => !m.IsDel)
                                .Where(m => m.Status == CustomerPhoneStatus.已绑定 && m.OpenId == openId)
                                .FirstOrDefault();

            if (customerPhone == null)
            {
                customerPhone = new CustomerPhone()
                {
                    OpenId = openId,
                    Phone  = args.phoneNumber,
                    Status = CustomerPhoneStatus.已绑定
                };
                wechatCoreDb.Add <CustomerPhone>(customerPhone);
                wechatCoreDb.SaveChanges();
            }

            //var email = $"{customerPhone.Phone}@phone";
            //var member = memberDb.Query<Member>()
            //    .Where(m => !m.IsDel)
            //    .Where(m => m.Email == email)
            //    .FirstOrDefault();

            //if (member == null)
            //{
            //    member = new Member()
            //    {
            //        Email = email,
            //        Password = CommonUtil.CreateNoncestr(8),
            //        Status = MemberStatus.正常,
            //        Truename = customerPhone.Phone,
            //        LastLoginTime = DateTime.Now,
            //        RegTime = DateTime.Now
            //    };

            //    memberDb.AddToMember(member);
            //    memberDb.SaveChanges();
            //}

            //改为使用MemberPhone
            var memberId = memberDb.GetMemberIdByMemberPhone(customerPhone.Phone);

            if (memberId <= 0)//说明没有手机绑定的会员,则新建一个
            {
                var member = new Member()
                {
                    Email         = $"{customerPhone.Phone}@phone",
                    Password      = CommonUtil.CreateNoncestr(8),
                    Status        = MemberStatus.正常,
                    Truename      = customerPhone.Phone,
                    LastLoginTime = DateTime.Now,
                    RegTime       = DateTime.Now
                };
                memberDb.AddToMember(member);
                var memberPhone = new MemberPhone()
                {
                    Member = member,
                    Phone  = customerPhone.Phone,
                    State  = MemberPhoneState.已绑定
                };
                memberDb.Add <MemberPhone>(memberPhone);
                memberDb.SaveChanges();

                memberId = member.Id;
            }

            jwt.MemberId = memberId;
            wechatCoreDb.SaveChanges();

            return(Success());
        }