/// <summary>
        /// 根据手机号查询服务码详情
        /// </summary>
        /// <param name="mobile"></param>
        /// <returns></returns>
        public static async Task <Tuple <List <ServiceCodeDetail>, int> > GetServiceCodeDetailByMobile(string mobile, int pageIndex, int pageSize)
        {
            var result     = new List <ServiceCodeDetail>();
            var totalCount = 0;

            if (!string.IsNullOrEmpty(mobile))
            {
                Guid userId = Guid.Empty;
                using (var client = new UserAccountClient())
                {
                    var accountResult = await client.GetUserByMobileAsync(mobile);

                    if (accountResult != null && accountResult.Result != null)
                    {
                        userId = accountResult.Result.UserId;
                    }
                }
                if (userId != Guid.Empty)
                {
                    var packageDetailResult = GetBeautyServicePackageDetailCodesByUserId(userId, pageIndex, pageSize);
                    if (packageDetailResult != null)
                    {
                        var packageDetailCodes = packageDetailResult.Item1;
                        totalCount = packageDetailResult.Item2;
                        if (packageDetailCodes != null && packageDetailCodes.Any())
                        {
                            var codeDetail = await GetServiceCodeDetail(packageDetailCodes.Select(t => t.ServiceCode));

                            if (codeDetail != null && codeDetail.Any())
                            {
                                foreach (var item in codeDetail)
                                {
                                    item.Mobile = mobile;
                                    result.Add(item);
                                }
                            }
                        }
                        var bankRecords            = BankMRManager.GetBankMRActivityCodeRecordByUserId(userId);
                        var bankServiceCodeDetails = await BankMRManager.SearchBankMRActivityCodeDetailByRecords(bankRecords);

                        if (bankServiceCodeDetails != null && bankServiceCodeDetails.Any())
                        {
                            result.AddRange(bankServiceCodeDetails);
                        }
                    }
                }
            }
            return(Tuple.Create(result, totalCount));
        }
        public async Task <JsonResult> SubmitChangeBindingRequest(string oldNumber, string newNumber)
        {
            try
            {
                var fetchOrderResult = 0;
                using (var client = new UserAccountClient())
                {
                    var oldUser = await client.GetUserByMobileAsync(oldNumber);

                    if (!oldUser.Success || oldUser.Result == null)
                    {
                        await client.LogChangeBindMobileActionAsync(
                            new UserChangeBindMobileLog
                        {
                            SourceBindMobile = oldNumber,
                            TargetBindMobile = newNumber,
                            Operator         = User.Identity.Name,
                            OperateStatus    = false,
                            FailReason       = "需解绑手机号不存在",
                            CreatedTime      = DateTime.Now
                        });

                        return(Json(-1));
                    }

                    var newUser = await client.GetUserByMobileAsync(newNumber);

                    if (!newUser.Success || newUser.Result?.UserId == null || newUser.Result.UserId.Equals(Guid.Empty))
                    {
                        return(Json(1));
                    }
                    fetchOrderResult =
                        DownloadAppManager.HasUnOrRecentlyCompletedOrder(newUser.Result.UserId.ToString("D"));
                    if (fetchOrderResult < 0)
                    {
                        await client.LogChangeBindMobileActionAsync(
                            new UserChangeBindMobileLog
                        {
                            SourceBindMobile = oldNumber,
                            TargetBindMobile = newNumber,
                            Operator         = User.Identity.Name,
                            OperateStatus    = false,
                            FailReason       = fetchOrderResult == -4 ? "需绑定手机号有近期完成订单" : "需绑定手机号有未完成订单",
                            CreatedTime      = DateTime.Now
                        });

                        return(Json(fetchOrderResult));
                    }
                }
                using (var client = new YLHUserAccountClient())
                {
                    var ylhUser = await client.GetYLHUserInfoByMobileAsync(newNumber);

                    if (ylhUser.Success && ylhUser.Result?.UserId != null && !ylhUser.Result.UserId.Equals(Guid.Empty))
                    {
                        fetchOrderResult = -2;
                    }
                }
                if (fetchOrderResult == -2)
                {
                    using (var client = new UserAccountClient())
                    {
                        await client.LogChangeBindMobileActionAsync(
                            new UserChangeBindMobileLog
                        {
                            SourceBindMobile = oldNumber,
                            TargetBindMobile = newNumber,
                            Operator         = User.Identity.Name,
                            OperateStatus    = false,
                            FailReason       = "需绑定手机号已关联永隆行账户",
                            CreatedTime      = DateTime.Now
                        });
                    }
                }
                return(Json(fetchOrderResult));
            }
            catch (Exception ex)
            {
                WebLog.LogException(ex);
                return(Json(0));
            }
        }