Пример #1
0
        public Return ChangeNameOEmail(Customer customerModel)
        {
            var resultReturn = new Return();

            try
            {
                if (customerModel.CustomerId == Guid.Empty)
                {
                    resultReturn.ReturnCode.Code = 1880;
                    return(resultReturn);
                }

                if (string.IsNullOrWhiteSpace(customerModel.NickName) && string.IsNullOrWhiteSpace(customerModel.Email))
                {
                    resultReturn.ReturnCode.Code = 1995;
                    return(resultReturn);
                }

                resultReturn = CustomerService.ChangeN0E(customerModel.CustomerId.ToString(), customerModel.Email, customerModel.NickName);

                //将customer数据库模型类转换为页面模型类
                var customer = ModelTransfer.Mapper(resultReturn.Content, new Customer());
                customer.Password = "";

                resultReturn.Content = customer;

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #2
0
        public Return Sms(Customer customerModel)
        {
            var resultReturn = new Return();

            try
            {
                var vCode       = CommonHelper.CreateCode(6);
                var sms         = new Sms(vCode);
                var smsResponse = sms.SendSmsToPhone(customerModel.Phone);

                if (smsResponse?.Code != null && smsResponse.Code == "OK")
                {
                    var smsModel = new Data.Domain.Sms
                    {
                        Code       = vCode,
                        Phone      = customerModel.Phone,
                        UpdateTime = DateTime.Now
                    };

                    var flag = SmsService.InsertOrUpdate(smsModel);

                    if (!flag)
                    {
                        resultReturn.ReturnCode.Code = -1;
                    }
                }
                else
                {
                    if (smsResponse != null)
                    {
                        //短信验证码 :使用同一个签名,对同一个手机号码发送短信验证码,支持1条/分钟,5条/小时 ,累计10条/天。
                        if (smsResponse.Message.IndexOf("触发天级流控", StringComparison.Ordinal) != -1)
                        {
                            resultReturn.ReturnCode.Code = 1887;
                        }
                        else
                        {
                            resultReturn.ReturnCode.Code = 1992;
                        }

                        BpService.Use(smsResponse.Message);
                    }

                    BpService.Use("发送短信验证码返回的response为空");
                }

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #3
0
        public Return ChangePassword(Customer customerModel)
        {
            var resultReturn = new Return();

            try
            {
                if (customerModel.CustomerId == Guid.Empty)
                {
                    resultReturn.ReturnCode.Code = 1880;
                    return(resultReturn);
                }

                if (string.IsNullOrEmpty(customerModel.Password))
                {
                    resultReturn.ReturnCode.Code = 1997;
                    return(resultReturn);
                }

                resultReturn = CustomerService.ChangePassword(customerModel.CustomerId.ToString(), customerModel.Password);

                if (resultReturn.ReturnCode.Code != default(int))
                {
                    return(resultReturn);
                }

                //将customer数据库模型类转换为页面模型类
                var customer = ModelTransfer.Mapper(resultReturn.Content, new Customer());
                customer.Password = "";

                resultReturn.Content = customer;

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #4
0
        public Return Login(Customer customerModel)
        {
            var resultReturn = new Return();

            try
            {
                #region 检查必需字段是否为空

                //手机号码为空
                if (string.IsNullOrEmpty(customerModel.Phone))
                {
                    resultReturn.ReturnCode.Code = 1881;
                    return(resultReturn);
                }

                //密码为空
                if (string.IsNullOrEmpty(customerModel.Password))
                {
                    resultReturn.ReturnCode.Code = 1997;
                    return(resultReturn);
                }

                //安卓ID为空
                if (string.IsNullOrEmpty(customerModel.Android))
                {
                    resultReturn.ReturnCode.Code = 1885;
                    return(resultReturn);
                }

                #endregion

                #region 检查用户登录信息是否正确

                var customerInfo = CustomerService.GetByPhone(customerModel.Phone);

                //该手机号码还没有注册
                if (customerInfo == null)
                {
                    resultReturn.ReturnCode.Code = 1996;
                    return(resultReturn);
                }

                //密码错误
                if (customerInfo.Password != customerModel.Password)
                {
                    resultReturn.ReturnCode.Code = 1999;
                    return(resultReturn);
                }

                #endregion

                #region 检查安卓ID是否更换,若更换了,使用旧customerId替换新customerId

                var nowcustomerId = customerInfo.CustomerId.ToString();

                //获取登录时安卓ID对应的安卓信息
                var androidInfo = AndroidService.GetByAndroidId(customerModel.Android);

                //安卓ID不存在
                if (androidInfo == null)
                {
                    resultReturn.ReturnCode.Code = 1878;
                    return(resultReturn);
                }

                var oldcustomerId = androidInfo.CustomerId.ToString();

                //新旧customerId不一致,使用旧customerId替换新customerId
                if (nowcustomerId != oldcustomerId)
                {
                    customerInfo.CustomerId = Guid.Parse(oldcustomerId);
                    CustomerService.ChangeCustomerId(oldcustomerId, nowcustomerId); //替换customerID
                    CustomerService.DeleteByCustomerId(nowcustomerId);              //删除customer
                }

                #endregion

                //将customer数据库模型类转换为页面模型类
                var customer = ModelTransfer.Mapper(customerInfo, new Customer());
                customer.Password = "";
                var returnDic = new Dictionary <string, object> {
                    { "IsBind", true }, { "Customer", customer }
                };
                resultReturn.Content = returnDic;

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #5
0
        public Return Register(Customer customerModel)
        {
            var resultReturn = new Return();

            try
            {
                #region 检查必须字段是否为空

                //手机号码为空
                if (string.IsNullOrEmpty(customerModel.Phone))
                {
                    resultReturn.ReturnCode.Code = 1881;
                    return(resultReturn);
                }

                //安卓ID为空
                if (string.IsNullOrEmpty(customerModel.Android))
                {
                    resultReturn.ReturnCode.Code = 1885;
                    return(resultReturn);
                }

                //密码为空
                if (string.IsNullOrEmpty(customerModel.Password))
                {
                    resultReturn.ReturnCode.Code = 1997;
                    return(resultReturn);
                }

                //验证码为空
                if (string.IsNullOrEmpty(customerModel.VCode))
                {
                    resultReturn.ReturnCode.Code = 1994;
                    return(resultReturn);
                }

                #endregion

                #region 验证该安卓ID是否被记录

                var androidInfo = AndroidService.GetByAndroidId(customerModel.Android);

                //该安卓ID不存在Android表中
                if (androidInfo == null)
                {
                    resultReturn.ReturnCode.Code = 1884;
                    return(resultReturn);
                }

                #endregion

                #region 短信验证

                var sms = SmsService.GetSmsByPhone(customerModel.Phone);

                //还没发送短信
                if (sms == null)
                {
                    resultReturn.ReturnCode.Code = 1991;
                    return(resultReturn);
                }

                //验证码已过期
                if (Convert.ToDateTime(sms.UpdateTime).AddMinutes(5) < DateTime.Now)
                {
                    resultReturn.ReturnCode.Code = 1990;
                    return(resultReturn);
                }

                //已使用
                if (sms.IsUse)
                {
                    resultReturn.ReturnCode.Code = 1888;
                    return(resultReturn);
                }

                //验证码不正确
                if (sms.Code != customerModel.VCode)
                {
                    resultReturn.ReturnCode.Code = 1889;
                    return(resultReturn);
                }

                //避免不同数据库上下文操作出现的错误
                var newSms = new Data.Domain.Sms
                {
                    Code       = sms.Code,
                    IsUse      = true,
                    Phone      = sms.Phone,
                    UpdateTime = DateTime.Now
                };

                //更新Sms IsUse 为 true  //若出错,不抛出错误,只做错误记录
                SmsService.InsertOrUpdate(newSms);

                #endregion

                #region 验证手机号码是否已注册

                var customerInfo = CustomerService.GetByPhone(customerModel.Phone);

                //该手机号码已注册
                if (customerInfo != null)
                {
                    resultReturn.ReturnCode.Code = 1998;
                    return(resultReturn);
                }

                #endregion

                resultReturn = CustomerService.Register(androidInfo.CustomerId.ToString(), customerModel.Phone, customerModel.Password);

                //将customer数据库模型类转换为页面模型类
                var customer = ModelTransfer.Mapper(resultReturn.Content, new Customer());
                customer.Password = "";

                resultReturn.Content = customer;
                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }