예제 #1
0
        public ActionResult MemberBind()
        {
            var openId = CookieUtil.Get("OpenId");

#if DEBUG
            openId = Guid.NewGuid().ToString().Replace("-", "");
            openId = "30";
            //登录成功
            var response = CustomerApp.Instance.OpenIdLogin(new LoginRequest()
            {
                OpenId = openId
            });
            if (response.Status)
            {
                return(RedirectToAction("Index", "Me"));
            }
            CookieUtil.SetCookie("OpenId", openId);
#endif
            //openId = Guid.NewGuid().ToString().Replace("-", "");
            CookieUtil.SetCookie("OpenId", openId);
            ViewBag.openId = openId;

            ViewBag.returnUrl = "/me/index";
            return(View());
        }
예제 #2
0
        public string BuildGuestID()
        {
            string guestID;

            if (PageCacheUtil.TryGetValue <string>("GuestID_BX", out guestID) == false)
            {
                HttpCookie cookie = CookieUtil.Get("bbxmax_guest");

                if (cookie != null)
                {
                    guestID = cookie.Value;
                }
                else
                {
                    guestID = string.Empty;
                }

                //必须是32位长度(GUID)
                if (guestID == null || guestID.Length != 32)
                {
                    guestID = Guid.NewGuid().ToString("N");
                    CookieUtil.Set("bbxmax_guest", guestID, DateTime.MaxValue);
                }

                PageCacheUtil.Set("GuestID_BX", guestID);
            }

            if (guestID == string.Empty)
            {
                return(null);
            }

            return(guestID);
        }
예제 #3
0
        /// <summary>
        /// 绑定粉丝
        /// </summary>
        /// <param name="referrerSysNo">推荐编号</param>
        /// <returns>视图</returns>
        public ActionResult BindFans(int referrerSysNo)
        {
            var customer = CustomerApp.Instance.Get(referrerSysNo);

            if (customer == null)
            {
                return(View("Error", new JResult()
                {
                    Message = "信息参数不合法"
                }));
            }

            var openId     = CookieUtil.Get("OpenId");
            var headImgUrl = CookieUtil.Get("HeadImgUrl");
            var nickname   = CookieUtil.Get("Nickname");

            var customerExt = CustomerApp.Instance.GetByOpenId(openId);

            if (customerExt != null)
            {
                return(View("Error", new JResult()
                {
                    Message = "用户微信账号已注册"
                }));
            }

            var recommend = RecommendApp.Instance.GetByopenId(openId);

            if (recommend != null)
            {
                return(Redirect("/Account/Register"));
            }

            var result = RecommendApp.Instance.Insert(new CrRecommend()
            {
                Openid        = openId,
                ReferrerSysNo = referrerSysNo,
                //Nickname = nickname,
                //HeadImgUrl = headImgUrl
            });

            if (!result.Status)
            {
                return(View("Error", new JResult()
                {
                    Message = "绑定粉丝失败"
                }));
            }

            return(Redirect("/Account/Register"));
        }
예제 #4
0
        /// <summary>
        /// [Cookie]获取产品浏览记录(cookie中获取)
        /// </summary>
        /// <param name="count">浏览记录总数</param>
        /// <returns>浏览记录集合</returns>
        /// <remarks>
        /// 2013-03-18 吴文强 创建
        /// 2013-08-08 邵  斌 迁移
        /// </remarks>
        public List <string> GetHistoryLook(int count)
        {
            //历史产品
            var hostory     = CookieUtil.Get(COOKIE_HISTORYLOOK);
            var listHostory = hostory.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
            //倒序浏览记录
            var newHostory = new List <string>();

            for (int i = listHostory.Count - 1; i >= 0; i--)
            {
                if (newHostory.Count == count)
                {
                    break;
                }
                newHostory.Add(listHostory[i]);
            }
            return(newHostory);
        }
예제 #5
0
        /// <summary>
        /// [Cookie]设置产品浏览记录(写入Cookie)
        /// </summary>
        /// <param name="productSysNo">产品Id</param>
        /// <param name="productName">产品名称</param>
        /// <param name="count">浏览记录总数</param>
        /// <returns></returns>
        /// <remarks>
        /// 2013-03-18 吴文强 创建
        /// 2013-08-08 邵  斌 迁移,添加商品图片路径到cooki
        /// </remarks>
        public void SetHistoryLook(int productSysNo, string productName, int count, string productImage = null)
        {
            //清除名字中包含的@和;
            productName = productName.Replace("@", " ").Replace(";", " ");
            //新加入的产品(产品Id@产品名称)
            var value = string.Format("{0}@{1}@{2}", productSysNo, productName.Trim(), productImage);
            //历史产品
            var hostory = CookieUtil.Get(COOKIE_HISTORYLOOK);
            //新构造的产品集合(产品Id@产品名称),新添加的记录写入最后
            var listHostory = hostory.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();

            listHostory = listHostory.Where(
                s => s.Split(new[] { "@" }, StringSplitOptions.RemoveEmptyEntries)[0] != productSysNo.ToString()).ToList();
            if (listHostory.Count >= count)
            {
                listHostory.RemoveAt(0);
            }
            listHostory.Add(value);
            CookieUtil.SetCookie(COOKIE_HISTORYLOOK, string.Join(";", listHostory), DateTime.Now.AddYears(1));
        }
예제 #6
0
        public JsonResult MemberBind(MemberBindRequest request)
        {
            var response = new JResult()
            {
                Status = false
            };

            var result = VHelper.ValidatorRule(
                new Rule_NotAllowNull(request.OpenId, "微信授权失败!"),
                new Rule_NotAllowNull(request.Account, "账号不能为空!"),
                new Rule_Mobile(request.Account, "输入手机号!"),
                new Rule_StringLenth(request.Password, min: 6, max: 20, message: "新密码长度在6-20位之间")
                );

            if (!result.IsPass)
            {
                response.Status  = result.IsPass;
                response.Message = result.Message;
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            var openId = CookieUtil.Get("OpenId");

            if (!request.OpenId.Equals(openId))
            {
                response.Status  = false;
                response.Message = "请不要不暴力操作";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            response = CustomerApp.Instance.MemberBind(new LoginRequest()
            {
                Account    = request.Account,
                Password   = request.Password,
                OpenId     = request.OpenId,
                Nickname   = CookieUtil.Get("Nickname"),
                HeadImgUrl = CookieUtil.Get("HeadImgUrl")
            });
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
예제 #7
0
        public ActionResult Register()
        {
            var openId = CookieUtil.Get("OpenId");

#if DEBUG
            openId = "openId002";
            CookieUtil.SetCookie("OpenId", openId);
#endif
            ViewBag.openId = openId;

            ViewBag.returnUrl = "/me/index";
            //注册支付类型
            ViewBag.RegisterPayType = EnumUtil.ToDictionary(typeof(CustomerEnum.RegisterPayType));

            var recommend = RecommendApp.Instance.GetByopenId(openId);
            if (recommend != null)
            {
                var customer = CustomerApp.Instance.Get(recommend.ReferrerSysNo);
                return(View(customer));
            }
            return(View(new CrCustomer()
            {
            }));
        }
예제 #8
0
        public JsonResult Register(RegisterRequest request)
        {
            var response = new JResult <string>()
            {
                Status = false
            };

            var result = VHelper.ValidatorRule(
                new Rule_NotAllowNull(request.OpenId, "微信授权失败!"),
                new Rule_NotAllowNull(request.RealName, "姓名不能为空!"),
                new Rule_NotAllowNull(request.PhoneNumber, "账号不能为空!"),
                new Rule_Mobile(request.PhoneNumber, "输入手机号!"),
                new Rule_LetterAndNumber(request.Password, "密码应由拉丁字母和数字组成!"),
                new Rule_StringLenth(request.Password, min: 6, max: 20, message: "新密码长度在6-20位之间"),
                new Rule_LetterAndNumber(request.ConfirmPassword, "确认密码应由拉丁字母和数字组成"),
                new Rule_StringLenth(request.ConfirmPassword, min: 6, max: 20, message: "新确认密码长度在6-20位之间"),
                new Rule_StringLenth(request.MobileVerifyCode, min: 6, max: 6, message: "手机验证码不能为空!")
                );

            if (!result.IsPass)
            {
                response.Status  = result.IsPass;
                response.Message = result.Message;
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            //短信验证
            var _cacheProvider = ClientProxy.GetInstance <IRedisProvider>();

            var cached = _cacheProvider.Get <SendSMSResponse>(CacheKeys.Items.SMS_ + request.PhoneNumber);

            if (cached != null)
            {
                if (!cached.Rand.Equals(request.MobileVerifyCode))
                {
                    response.Status  = false;
                    response.Message = "手机验证错误!";
                    return(Json(response));
                }
            }
            else
            {
                response.Status  = false;
                response.Message = "手机验证错误!";
                return(Json(response));
            }
            //OpenId验证
            var openId = CookieUtil.Get("OpenId");

            if (!request.OpenId.Equals(openId))
            {
                response.Status  = false;
                response.Message = "请不要不暴力操作";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            request.OpenId     = openId;
            request.Nickname   = CookieUtil.Get("Nickname");
            request.HeadImgUrl = CookieUtil.Get("HeadImgUrl");
            //验证手机号是否存在
            var phoneExist = CustomerApp.Instance.GetByPhoneNumber(request.PhoneNumber);

            if (phoneExist != null)
            {
                response.Status  = false;
                response.Message = "手机号已存在!";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            var accountExist = CustomerApp.Instance.GetByAccount(request.PhoneNumber);

            if (accountExist != null)
            {
                response.Status  = false;
                response.Message = "手机号已存在!";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            if (!string.IsNullOrEmpty(request.Referrer))
            {
                //查找推荐人
                var referrerExist = CustomerApp.Instance.GetByAccount(request.Referrer);
                if (referrerExist != null)
                {
                    request.ReferrerSysNo = referrerExist.SysNo;
                }
                else
                {
                    response.Status  = false;
                    response.Message = "推荐人不存在!";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
            }
            request.AutoLogin = true;
            response          = CustomerApp.Instance.Register(request);
            if (response.Status)
            {
                var loginResonse = CustomerApp.Instance.AccountLogin(new LoginRequest()
                {
                    Account  = request.PhoneNumber,
                    Password = request.Password
                });
                if (!loginResonse.Status)
                {
                    response.Status  = false;
                    response.Message = "自动登录失败!";
                }
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }