Пример #1
0
        public Return DetailedBatch(Fortun forModel)
        {
            var resultReturn = new Return();

            try
            {
                //订单ID为空
                if (forModel.OrderId == Guid.Empty)
                {
                    resultReturn.ReturnCode.Code = 2887;
                    return(resultReturn);
                }

                var orderInfo = OrderService.GetByOrderId(forModel.OrderId.ToString());

                if (orderInfo.OrderType != (int)BusinessTypeEnum.DetailedBatch)
                {
                    resultReturn.ReturnCode.Code = 2885;
                    return(resultReturn);
                }

                var dic = GetHtml(orderInfo.OrderType, orderInfo.OrderSearch);

                //若未支付只显示前200个字符
                if (orderInfo.PayState != GlobalConst.TruePaid || orderInfo.PayState != GlobalConst.Paid)
                {
                    var text = dic.Values.ElementAt(1).ToString();

                    //var regex = new Regex(@"^[\u4e00-\u9fa5]|^[\p{P}]|[a-zA-Z]|[<>=;&"" ]", RegexOptions.CultureInvariant);
                    var regex      = new Regex(@"[^\u4e00-\u9fa5,.,。]", RegexOptions.CultureInvariant);
                    var handleText = regex.Replace(text, ""); //过滤非中文

                    if (handleText.Length > 250)
                    {
                        handleText = handleText.Substring(0, 250) + ".....";
                    }

                    var rDetailedBatch = ModelTransfer.Mapper(orderInfo.OrderSearch, new RdetailedBatch());
                    var dic2           = new Dictionary <string, object>
                    {
                        { "SearchInfo", rDetailedBatch },
                        { "PartInfo", handleText }
                    };

                    resultReturn.Content = dic2;
                }
                else
                {
                    resultReturn.Content = dic;
                }

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

            try
            {
                if (userModel.Nickname == "" && userModel.Email == "")
                {
                    resultReturn.ReturnCode.Code = 1995;
                    return(resultReturn);
                }

                resultReturn = UserService.ChangeN0E(userModel.Phone, userModel.Email, userModel.Nickname);

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

                resultReturn.Content = user;

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #3
0
        /// <summary>
        /// 将前端Model转换为后端Model
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private OrderInfo TransferToOrderInfoModel(object model)
        {
            OrderInfo orderInfo = null;

            //看不懂 case 里是判断 model is <ClassName>
            switch (model)
            {
            case DetailedBatch _:
                var dbModel = (DetailedBatch)model;
                orderInfo = ModelTransfer.Mapper <OrderInfo, DetailedBatch>(dbModel);
                break;

            case BabyName _:
                var bnModel = (BabyName)model;
                orderInfo = ModelTransfer.Mapper <OrderInfo, BabyName>(bnModel);
                break;

            case Marriage _:
                var mModel = (Marriage)model;
                orderInfo = ModelTransfer.Mapper <OrderInfo, Marriage>(mModel);
                break;

            case NameTest _:
                var nModel = (NameTest)model;
                orderInfo = ModelTransfer.Mapper <OrderInfo, NameTest>(nModel);
                break;

            case MasterName _:
                var qModel = (MasterName)model;
                orderInfo = ModelTransfer.Mapper <OrderInfo, MasterName>(qModel);
                break;
            }

            return(orderInfo);
        }
Пример #4
0
        public Return ChangePassword(User userModel)
        {
            var resultReturn = new Return();

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

                resultReturn = UserService.ChangePassword(userModel.Phone, userModel.Password);

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

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

                resultReturn.Content = user;

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #5
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);
            }
        }
Пример #6
0
        public Return AndroidId(Android android)
        {
            CustomerService.GetByPhone("18814184025");

            var resultReturn = new Return();

            try
            {
                //查找Android Table 是否存在该Android
                var oldAndroid = AndroidService.GetByAndroidId(android.AndroidId);

                //如果CustomerId已存在Android Table,则直接返回CustomerInfo

                Data.Domain.Customer customerInfo = null; //返回的CustomerModel

                if (oldAndroid != null)
                {
                    customerInfo = CustomerService.GetByCustomerId(oldAndroid.CustomerId.ToString());
                }
                else
                {
                    //写入Android Table
                    var androidInfo = AndroidService.Insert(android.AndroidId);

                    //写入Customer Table
                    customerInfo = CustomerService.Insert(androidInfo.CustomerId.ToString());
                }

                //模型转换
                var customerInfoMap = ModelTransfer.Mapper(customerInfo, new Customer());

                //是否绑定手机号码
                var isBind = !string.IsNullOrEmpty(customerInfoMap.Phone);

                //原路返回androidid
                customerInfoMap.Android = android.AndroidId;

                //忽略密码和用户ID
                customerInfoMap.Password   = null;
                customerInfoMap.CustomerId = null;

                var returnDic = new Dictionary <string, object> {
                    { "IsBind", isBind }, { "Customer", customerInfoMap }
                };

                resultReturn.Content = returnDic;
                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #7
0
        public Return AndroidId(Android android)
        {
            var resultReturn = new Return();

            try
            {
                //查找Android Table 是否存在该Android
                var oldAndroid = AndroidService.GetByAndroidId(android.AndroidId);

                //如果UserId已存在Android Table,则直接返回UserInfo

                Data.Domain.User userInfo = null; //返回的UserModel

                if (oldAndroid != null)
                {
                    userInfo = UserService.GetUserByUserId(oldAndroid.UserId.ToString());
                }
                else
                {
                    //写入Android Table
                    AndroidService.Insert(android.AndroidId);

                    //重新获取安卓信息
                    var newAndroid = AndroidService.GetByAndroidId(android.AndroidId);

                    //写入User Table
                    userInfo = UserService.Insert(newAndroid.UserId.ToString());
                }

                //模型转换
                var userInfoMap = ModelTransfer.Mapper(userInfo, new User());

                //是否绑定手机号码
                var isBind = !string.IsNullOrEmpty(userInfoMap.Phone);

                //忽略密码和用户ID
                userInfoMap.Password = null;
                userInfoMap.UserId   = null;

                var returnDic = new Dictionary <string, object> {
                    { "IsBind", isBind }, { "User", userInfoMap }
                };

                resultReturn.Content = returnDic;
                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #8
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);
            }
        }
Пример #9
0
 public ActionResult TransferData(ModelTransfer m)
 {
     return(View("DisplayData", m));
 }
Пример #10
0
        public Return BabyName(Fortun forModel)
        {
            var resultReturn = new Return();

            try
            {
                //订单ID为空
                if (forModel.OrderId == Guid.Empty)
                {
                    resultReturn.ReturnCode.Code = 2887;
                    return(resultReturn);
                }

                var orderInfo = OrderService.GetByOrderId(forModel.OrderId.ToString());

                if (orderInfo.OrderType != (int)BusinessTypeEnum.BabyName)
                {
                    resultReturn.ReturnCode.Code = 2885;
                    return(resultReturn);
                }

                var dic            = new Dictionary <string, object>();
                var babyNameResult = BabyNameService.GetByOrderId(forModel.OrderId.ToString());

                //var personalInfo = babyNameResult?.PersonalInfo?.Trim();
                //var nameStr = babyNameResult?.NameList?.Trim();

                dic = GetHtml(orderInfo.OrderType, orderInfo.OrderSearch);
                var dicNameList = ((List <string>)dic["SuggestName"]);
                var nameListStr = string.Empty;
                foreach (var d in dicNameList)
                {
                    nameListStr += d + "|";
                }

                try
                {
                    BabyNameService.Insert(forModel.OrderId.ToString(), dic["PersonalInfo"].ToString(), nameListStr);
                }
                catch (Exception)
                {
                    //IGNORE
                }


                //若未支付只显示前200个字符
                if (orderInfo.PayState != GlobalConst.TruePaid || orderInfo.PayState != GlobalConst.Paid)
                {
                    var nameListPart = ((List <string>)dic["SuggestName"]).Take(12).ToList();
                    var rBabyName    = ModelTransfer.Mapper(orderInfo.OrderSearch, new RbabyName());
                    var dic2         = new Dictionary <string, object>
                    {
                        { "SearchInfo", rBabyName },
                        { "PartInfo", nameListPart }
                    };

                    resultReturn.Content = dic2;
                }
                else
                {
                    resultReturn.Content = dic;
                }

                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #11
0
        public Return MasterNameList(Fortun forModel)
        {
            var resultReturn = new Return();

            try
            {
                //订单ID为空
                if (forModel.OrderId == Guid.Empty)
                {
                    resultReturn.ReturnCode.Code = 2887;
                    return(resultReturn);
                }

                var orderInfo = OrderService.GetByOrderId(forModel.OrderId.ToString());

                if (orderInfo.OrderType != (int)BusinessTypeEnum.MasterName)
                {
                    resultReturn.ReturnCode.Code = 2885;
                    return(resultReturn);
                }

                var dic      = new Dictionary <string, object>();
                var haveNext = false;

                var masterNameResultArr = MasterNameService.GetByOrderId(forModel.OrderId.ToString());

                //若数据中有数据,则不爬取数据;反之爬取
                if (masterNameResultArr.Length > 0)
                {
                    var length = masterNameResultArr.Length;

                    if (masterNameResultArr.Length < (int)MasterNameListEnum.Number)
                    {
                        length = masterNameResultArr.Length - 1;
                    }

                    for (var i = 0; i < length; i++)
                    {
                        var nameStrList = masterNameResultArr[i].NameList?.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList();

                        dic.Add(masterNameResultArr[i].Number.ToString(CultureInfo.InvariantCulture),
                                new Dictionary <string, object>
                        {
                            { "Number", masterNameResultArr[i].Number },
                            { "NameList", nameStrList }
                        });
                    }

                    if (length != (int)MasterNameListEnum.Number)
                    {
                        var dic3         = GetHtml(orderInfo.OrderType, orderInfo.OrderSearch, length + 1);
                        var dicNameList3 = (List <string>)(((Dictionary <string, object>)dic3.Values.ElementAt(0)).Values.ElementAt(1));

                        if (dicNameList3.Count > 0)
                        {
                            haveNext = true;
                        }
                    }
                }
                else
                {
                    dic = GetHtml(orderInfo.OrderType, orderInfo.OrderSearch);

                    var dicNameList = (List <string>)(((Dictionary <string, object>)dic.Values.ElementAt(0)).Values.ElementAt(1));
                    var nameListStr = string.Empty;
                    foreach (var d in dicNameList)
                    {
                        nameListStr += d + "|";
                    }

                    MasterNameService.Insert(forModel.OrderId.ToString(), nameListStr, 1);

                    #region 自动获取第二页数据

                    var dic2         = GetHtml(orderInfo.OrderType, orderInfo.OrderSearch, 2);
                    var dicNameList2 = (List <string>)(((Dictionary <string, object>)dic2.Values.ElementAt(0)).Values.ElementAt(1));

                    if (dicNameList2.Count > 0)
                    {
                        haveNext = true;
                    }

                    var nameListStr2 = string.Empty;
                    foreach (var d in dicNameList2)
                    {
                        nameListStr2 += d + "|";
                    }

                    MasterNameService.Insert(forModel.OrderId.ToString(), nameListStr2, 2);

                    #endregion
                }

                //若未支付只显示12个推荐姓名
                if (orderInfo.PayState != GlobalConst.TruePaid || orderInfo.PayState != GlobalConst.Paid)
                {
                    var nameListPart = ((List <string>)(((Dictionary <string, object>)dic.Values.ElementAt(0)).Values.ElementAt(1))).Take(12);
                    var rMasterName  = ModelTransfer.Mapper(orderInfo.OrderSearch, new RmasterName());
                    var dic2         = new Dictionary <string, object>
                    {
                        { "SearchInfo", rMasterName },
                        { "PartInfo", nameListPart }
                    };
                    resultReturn.Content = dic2;
                }
                else
                {
                    dic.Add("HasNext", haveNext);
                    resultReturn.Content = dic;
                }

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

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

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

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

                #endregion

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

                var userInfo = UserService.GetUserByPhone(userModel.Phone);

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

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

                #endregion

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

                var nowUserId = userInfo.UserId.ToString();

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

                var oldUserId = androidInfo.UserId.ToString();

                //新旧UserId不一致,使用旧UserId替换新UserId
                if (nowUserId != oldUserId)
                {
                    userInfo.UserId = Guid.Parse(oldUserId);
                    UserService.ChangeUesrId(oldUserId, nowUserId); //替换UserID
                    UserService.DeleteByUserId(nowUserId);          //删除User
                }

                #endregion

                //将User数据库模型类转换为页面模型类
                var user = ModelTransfer.Mapper(userInfo, new User());
                user.Password = "";

                resultReturn.Content = user;

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

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

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

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

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

                #endregion

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

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

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

                #endregion

                #region 短信验证

                var sms = SmsService.GetSmsByPhone(userModel.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 != userModel.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 userInfo = UserService.GetUserByPhone(userModel.Phone);

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

                #endregion

                resultReturn = UserService.Register(androidInfo.UserId.ToString(), userModel.Phone, userModel.Password);

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

                resultReturn.Content = user;
                return(resultReturn);
            }
            catch (Exception ex)
            {
                LogService.InsertLog(ex);
                resultReturn.SetWrong();
                return(resultReturn);
            }
        }
Пример #14
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);
            }
        }