/// <summary>
 /// 获取我的余额 平扬 2015.3.23
 /// </summary>
 /// <param name="criteria"></param>
 /// <returns></returns>
 public Model.Common.NewPagedList <IncomeModel> GetMyIncomeList(MyIncomeSearchCriteria criteria)
 {
     try
     {
         var withDao    = new WtihdrawRecordsDao();
         var reslut     = withDao.GetMyIncomeList(criteria);
         var list       = new NewPagedList <IncomeModel>(reslut.Records);
         var pageresult = new NewPagingResult(criteria.PagingRequest.PageIndex, criteria.PagingRequest.PageSize)
         {
             TotalCount  = reslut.All,
             RecordCount = reslut.Records.Count
         };
         list.PagingResult = pageresult;
         return(list);
     }
     catch (Exception ex)
     {
         LogHelper.LogWriterFromFilter(ex);
         return(null);
     }
     return(null);
 }
        /// <summary>
        /// 提现
        /// 窦海超
        /// 2015年3月23日 12:54:43
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool AddWtihdrawRecords(Model.ParameterModel.WtihdrawRecords.WithdrawRecordsModel model)
        {
            using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS())
            {
                WtihdrawRecordsDao withDao     = new WtihdrawRecordsDao();
                ClienterDao        clienterDao = new ClienterDao();
                bool checkBalance = clienterDao.UpdateClienterAccountBalance(model);
                if (!checkBalance)//如果余额不正确,返回错误
                {
                    return(false);
                }
                var     cliterModel = clienterDao.GetUserInfoByUserId(model.UserId); //获取当前用户余额
                decimal balance     = ParseHelper.ToDecimal(cliterModel.AccountBalance, 0);
                model.Balance = balance;                                             //最新余额
                bool checkAddwith = withDao.AddWtihdrawRecords(model);               //新增提现记录
                //流水改到
                ClienterBalanceRecord cbrm = new ClienterBalanceRecord()
                {
                    ClienterId = model.UserId,
                    Amount     = Convert.ToDecimal(model.Amount),
                    Status     = ClienterBalanceRecordStatus.Success.GetHashCode(),
                    Balance    = balance - Convert.ToDecimal(model.Amount), //最新余额 - 提现金额
                    RecordType = ClienterBalanceRecordRecordType.WithdrawApply.GetHashCode(),
                    Operator   = cliterModel.TrueName,
                    RelationNo = "", //提现的时候没有关联单号吧
                    Remark     = "骑士提现"
                };

                long iResult = clienterBalanceRecordDao.Insert(cbrm);
                // bool checkAddrecords = withDao.AddRecords(model);//新增提现流水记录
                if (!checkAddwith || iResult <= 0)
                {
                    return(false);
                }
                tran.Complete();
            }
            return(true);
        }
        /// <summary>
        /// 跨店补贴
        /// 徐鹏程
        /// 20150414
        /// </summary>
        public bool CrossShop(List <GlobalConfigSubsidies> SubsidiesList)
        {
            IList <GrabOrderModel> list = subsidyDao.GetBusinessCount();
            WtihdrawRecordsDao     withdrawRecordsDao = new WtihdrawRecordsDao();
            ClienterDao            clienterDao        = new ClienterDao();

            int    MaxSubsidiesShop  = SubsidiesList.Max(t => ParseHelper.ToInt(t.Value1));                                                                //最大数量
            double MaxSubsidiesPrice = ParseHelper.ToDouble(SubsidiesList.Where(t => ParseHelper.ToInt(t.Value1) == MaxSubsidiesShop).ToList()[0].Value2); //最大金额

            foreach (GrabOrderModel item in list)
            {
                //Ets.Model.DomainModel.Clienter.ClienterModel cliterModel = new ClienterDao().GetUserInfoByUserId(item.ClienterId);//获取当前用户余额
                WithdrawRecordsModel withdraw = new WithdrawRecordsModel();
                #region 写流水
                withdraw.Platform = 1;
                withdraw.AdminId  = 0;
                withdraw.UserId   = item.ClienterId;
                int businessCount = item.BusinessCount;
                //var findSubsidie = SubsidiesList.OrderByDescending(t => ParseHelper.ToInt(t.Value1)).ToList().Where(t => ParseHelper.ToInt(t.Value1) >= businessCount).First();
                //double businessPrice = findSubsidie == null ? 0 : ParseHelper.ToDouble(findSubsidie.Value2);

                //ParseHelper.ToDouble(SubsidiesList.Select(t => ParseHelper.ToInt(t.Value1) == businessCount));
                double businessPrice = 0;
                if (businessCount > MaxSubsidiesShop)
                {
                    businessPrice = MaxSubsidiesPrice;
                }
                else
                {
                    var tmpPrice = SubsidiesList.Where(t => ParseHelper.ToInt(t.Value1) == businessCount).ToList();
                    if (tmpPrice == null || tmpPrice.Count <= 0)
                    {
                        continue;
                    }
                    businessPrice = ParseHelper.ToDouble(tmpPrice[0].Value2);//当前金额
                }

                withdraw.Amount  = ParseHelper.ToDecimal(businessPrice, 0);
                withdraw.Balance = ParseHelper.ToDecimal(item.AccountBalance, 0) + withdraw.Amount;
                withdraw.Remark  = string.Format("跨店抢单奖励{0}元", withdraw.Amount);

                //记录跨店日志
                CrossShopModel crossShopModel = new CrossShopModel()
                {
                    Amount        = withdraw.Amount,
                    BusinessCount = businessCount,
                    ClienterId    = withdraw.UserId,
                    Platform      = 2,
                    Remark        = withdraw.Remark,
                    InsertTime    = DateTime.Now
                };
                #endregion

                ClienterBalanceRecord cbrm = new ClienterBalanceRecord()
                {
                    ClienterId = withdraw.UserId,
                    Amount     = withdraw.Amount,                    //奖励的金额
                    Status     = ClienterBalanceRecordStatus.Success.GetHashCode(),
                    Balance    = withdraw.Balance + withdraw.Amount, //奖励后的金额
                    RecordType = ClienterBalanceRecordRecordType.SystemReward.GetHashCode(),
                    Operator   = "系统服务",
                    RelationNo = "",
                    Remark     = "跨店骑士奖励"
                };

                using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS())
                {
                    //修改records表增加记录作废,改为 新表ClienterBalanceRecord
                    // withdrawRecordsDao.AddRecords(withdraw);
                    clienterBalanceRecordDao.Insert(cbrm);
                    clienterDao.UpdateAccountBalanceAndWithdraw(withdraw);//更改用户金额
                    subsidyDao.InsertCrossShopLog(crossShopModel);
                    tran.Complete();
                }
            }
            return(true);
        }