//发送骑士短信
        void SendMessagClienter(MessageModel model)
        {
            try
            {
                ClienterDao clienterDao = new ClienterDao();
                DataTable   dt          = clienterDao.GetPhoneNoList(model.PushCity);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i]["PhoneNo"] == null || dt.Rows[i]["PhoneNo"].ToString() == "")
                    {
                        continue;
                    }

                    string phoneNo = "";
                    if (StringHelper.CheckPhone(dt.Rows[i]["PhoneNo"].ToString()))
                    {
                        phoneNo = dt.Rows[i]["PhoneNo"].ToString();
                    }
                    Task.Factory.StartNew(() =>
                    {
                        SendSmsHelper.SendSendSmsSaveLog(phoneNo, model.Content, SystemConst.SMSSOURCE);
                        //写日志
                        LogHelper.LogTraceWriterPhone(model.Id + "  骑士:" + phoneNo);
                    });
                }
            }
            catch (Exception ex)
            {
                LogHelper.LogWriter(ex);
            }
        }
        private static bool threadSafe = true;//线程安全
        #region IJob 成员

        public void Execute(Quartz.IJobExecutionContext context)
        {
            if (!threadSafe)
            {
                return;
            }
            threadSafe = false;
            try
            {
                LogHelper.LogWriter("执行啦:" + DateTime.Now);
                double hour = ParseHelper.ToDouble(Config.ConfigKey("DataTime"), -1);
                if (hour == -1)
                {
                    return;
                }
                ClienterDao clienterDao           = new ClienterDao();
                BusinessDao businessDao           = new BusinessDao();
                OrderDao    orderDao              = new OrderDao();
                IList <NonJoinWithdrawModel> list = orderDao.GetNonJoinWithdraw(hour);//获取没给可提现金额加钱的订单
                foreach (var item in list)
                {
                    using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS())
                    {
                        try
                        {
                            LogHelper.LogWriter(string.Concat("执行订单ID:", item.id, ",ClienterId:", item.clienterId));
                            clienterDao.UpdateAllowWithdrawPrice(item.clienterPrice, item.clienterId);
                            //businessDao.UpdateAllowWithdrawPrice(item.businessPrice, item.businessId);
                            orderDao.UpdateJoinWithdraw(item.id);
                            tran.Complete();
                        }
                        catch (Exception ex)
                        {
                            LogHelper.LogWriter(ex);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.LogWriter(ex);
            }
            finally
            {
                threadSafe = true;
            }
        }
        //发送骑士app
        void SendAPPClienter(MessageModel model)
        {
            try
            {
                ClienterDao clienterDao = new ClienterDao();
                DataTable   dt          = clienterDao.GetPhoneNoList(model.PushCity);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string clienterId = dt.Rows[i]["id"].ToString();
                    long   id         = clienterMessageDao.Insert(new ClienterMessage
                    {
                        ClienterId = Convert.ToInt32(clienterId),
                        Content    = model.Content,
                        IsRead     = 0
                    }
                                                                  );

                    Task.Factory.StartNew(() =>
                    {
                        JPushModel jpushModel = new JPushModel()
                        {
                            Alert          = "您有新消息啦,请及时查收!",
                            City           = string.Empty,
                            Content        = id.ToString(),
                            ContentKey     = "Notice",
                            RegistrationId = "C_" + clienterId,
                            TagId          = 0,
                            Title          = "新消息",
                            PushType       = 1
                        };
                        Push.PushMessage(jpushModel);
                    });
                }
            }
            catch (Exception ex)
            {
                LogHelper.LogWriter(ex);
            }
        }
        /// <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);
        }
        /// <summary>
        /// 获取homecount页的数量
        /// 窦海超
        /// 2015年3月24日 13:36:34
        /// </summary>
        /// <returns></returns>
        public HomeCountTitleModel GetHomeCountTitle()
        {
            HomeCountTitleModel model       = new HomeCountTitleModel();
            ClienterDao         clienterDao = new ClienterDao();
            BusinessDao         businessDao = new BusinessDao();
            OrderDao            orderDao    = new OrderDao();
            SubsidyDao          subsidyDao  = new SubsidyDao();

            Ets.Dao.Statistics.StatisticsDao statisticsDao = new Ets.Dao.Statistics.StatisticsDao();
            HomeCountTitleModel temp = new HomeCountTitleModel();
            //获取当天,订单金额:任务量:订单量:
            //商户结算金额(应收); 骑士佣金总计(应付)
            string CurrentTime = DateTime.Now.ToString("yyyy-MM-dd");
            IList <HomeCountTitleModel> homeCountList         = orderDao.GetCurrentDateCountAndMoney(CurrentTime, CurrentTime);
            IList <HomeCountTitleModel> subsidyOrderCountList = orderDao.GetCurrentDateSubsidyOrderCount(CurrentTime, CurrentTime);

            #region   获取当天,未完成任务量,未被抢任务量
            var unfinish = statisticsDao.GetCurrentUnFinishOrderinfo();
            if (unfinish != null)
            {
                model.UnfinishedMissionCount = unfinish.UnfinishedMissionCount; //未完成任务量
                model.UnGrabMissionCount     = unfinish.UnGrabMissionCount;     //未抢单任务量
            }
            #endregion

            #region 获取活跃商家和活跃骑士
            unfinish = statisticsDao.GetCurrentActiveBussinessAndClienter();
            if (unfinish != null)
            {
                model.ActiveBusiness = unfinish.ActiveBusiness; //活跃商家
                model.ActiveClienter = unfinish.ActiveClienter; //活跃骑士
            }

            #endregion


            if (homeCountList != null && homeCountList.Count > 0)
            {
                temp = homeCountList[0];
            }

            model.OrderPrice    = temp.OrderPrice;                                                            // 订单金额
            model.MisstionCount = temp.MisstionCount;                                                         // 任务量
            model.OrderCount    = temp.OrderCount;                                                            // 订单量
            model.YsPrice       = Math.Round(temp.YsPrice, 2);                                                // 商户结算金额(应收)
            model.YfPrice       = Math.Round(temp.YfPrice, 2);                                                // 骑士佣金总计(应付)
            model.YkPrice       = Math.Round(model.YsPrice - model.YfPrice, 2);                               //盈亏总计:+
            model.PubDate       = temp.PubDate;                                                               //发布时间
            temp              = clienterDao.GetCountAndMoney(model);                                          //获取已申请骑士,通过骑士数量
            model.RzqsCount   = temp.RzqsCount;                                                               // 认证骑士数量
            model.DdrzqsCount = temp.DdrzqsCount;                                                             //等待认证骑士

            temp = businessDao.GetCurrentBusinessCount(model);                                                // 商家总数:
            model.BusinessCount = temp.BusinessCount;                                                         //商家总数

            model.BusinessAverageOrderCount = ParseHelper.ToDivision(model.OrderCount, model.ActiveBusiness); //商户平均发布订单
            model.MissionAverageOrderCount  = ParseHelper.ToDivision(model.OrderCount, model.MisstionCount);  //任务平均订单量
            model.ClienterAverageOrderCount = ParseHelper.ToDivision(model.OrderCount, model.ActiveClienter); //骑士平均完成订单量
            if (subsidyOrderCountList != null && subsidyOrderCountList.Count > 0)
            {
                var zeroSubsidyOrderCount  = subsidyOrderCountList.Where(t => t.DealCount == 0).ToList();
                var oneSubsidyOrderCount   = subsidyOrderCountList.Where(t => t.DealCount == 1).ToList();
                var twoSubsidyOrderCount   = subsidyOrderCountList.Where(t => t.DealCount == 2).ToList();
                var threeSubsidyOrderCount = subsidyOrderCountList.Where(t => t.DealCount == 3).ToList();
                model.ZeroSubsidyOrderCount  = zeroSubsidyOrderCount != null && zeroSubsidyOrderCount.Count > 0 ? zeroSubsidyOrderCount[0].OrderCount : 0;
                model.OneSubsidyOrderCount   = oneSubsidyOrderCount != null && oneSubsidyOrderCount.Count > 0 ? oneSubsidyOrderCount[0].OrderCount : 0;
                model.TwoSubsidyOrderCount   = twoSubsidyOrderCount != null && twoSubsidyOrderCount.Count > 0 ? twoSubsidyOrderCount[0].OrderCount : 0;
                model.ThreeSubsidyOrderCount = threeSubsidyOrderCount != null && threeSubsidyOrderCount.Count > 0 ? threeSubsidyOrderCount[0].OrderCount : 0;
            }
            else
            {
                model.ZeroSubsidyOrderCount  = 0;
                model.OneSubsidyOrderCount   = 0;
                model.TwoSubsidyOrderCount   = 0;
                model.ThreeSubsidyOrderCount = 0;
            }



            return(model);
        }