예제 #1
0
        /// <summary>
        /// web 账户充值(成功)
        /// </summary>
        /// <param name="model">用户余额信息表model</param>
        /// <param name="ulogModel">用户账户金额异动记录表model</param>
        /// <param name="poomodel">订单支付信息表model</param>
        /// <param name="pomodel">订单支付信息与订单关联记录表model</param>
        /// <returns></returns>
        public ResultModel AccountRechargeWeb(ZJ_UserBalanceModel model, ZJ_UserBalanceChangeLogModel ulogModel, PaymentOrderModel pomodel, ZJ_RechargeOrderModel zjoModel, ZJ_UserBalanceChangeLogModel zjoulogModel)
        {
            var result = new ResultModel();

            using (var tx1 = _database.Db.BeginTransaction())
            {
                try
                {
                    UpdateZJ_RechargeOrder(zjoModel, tx1);

                    UpdatePaymentOrder(pomodel, tx1);

                    UpdateZJ_UserBalance(model, ulogModel, tx1);

                    tx1.Commit();
                }
                catch (Exception ex)
                {
                    tx1.Rollback();

                    result.IsValid = false;
                    result.Messages.Add(ex.Message);
                }
            }
            return(result);
        }
예제 #2
0
        /// <summary>
        /// 更新用户余额信息表(后台余额充值)
        /// </summary>
        /// <param name="model">用户余额信息表模型</param>
        /// <returns>是否修改成功</returns>
        public void UpdateZJ_UserBalances(ZJ_UserBalanceModel model, ZJ_UserBalanceChangeLogModel ulogModel, dynamic tx)
        {
            ZJ_UserBalanceServiceWeb zjweb = new ZJ_UserBalanceServiceWeb();

            zjweb.UpdateZJ_UserBalance(model, ulogModel, tx); //调用统一的修改方法 个人账户
            ParameterSetService pss = new ParameterSetService();

            //下面是给公司账户金额操作的
            model.UserID     = Convert.ToInt64(pss.GetParametePValueById(1215894621).Data);
            ulogModel.UserID = Convert.ToInt64(pss.GetParametePValueById(1215894621).Data);

            model.AddOrCutAmount     = -model.AddOrCutAmount;
            ulogModel.AddOrCutAmount = -ulogModel.AddOrCutAmount;
            ulogModel.IsAddOrCut     = ulogModel.IsAddOrCut == 0 ? 1 : 0;
            if (ulogModel.AddOrCutType <= 0)
            {
                if (ulogModel.AddOrCutAmount > 0)
                {
                    ulogModel.AddOrCutType = 15; //后台充值(正数)
                }
                else
                {
                    ulogModel.AddOrCutType = 16; //后台充值扣款(负数)
                }
            }

            zjweb.UpdateZJ_UserBalance(model, ulogModel, tx); //调用统一的修改方法 公司账户
        }
예제 #3
0
        /// <summary>
        /// 更新用户账户金额异动记录表
        /// </summary>
        /// <param name="model">model</param>
        /// <returns>是否修改成功</returns>
        public ResultModel UpdateZJ_UserBalanceChangeLog(ZJ_UserBalanceChangeLogModel model)
        {
            var result = new ResultModel
            {
                Data = _database.Db.ZJ_UserBalanceChangeLog.UpdateByID(model)
            };

            return(result);
        }
예제 #4
0
        /// <summary>
        /// 添加用户账户金额异动记录表
        /// </summary>
        /// <param name="model">model</param>
        /// <returns>是否成功</returns>
        public ResultModel AddZJ_UserBalanceChangeLog(ZJ_UserBalanceChangeLogModel model)
        {
            var result = new ResultModel
            {
                Data = _database.Db.ZJ_UserBalanceChangeLog.Insert(model)
            };

            return(result);
        }
예제 #5
0
        /// <summary>
        /// web 账户充值(第三方充值成功)
        /// </summary>
        /// <param name="RechargeAmount">充值金额</param>
        /// <param name="Radiochecked">第三方充值方式通道</param>
        /// <param name="UserID">用户ID</param>
        ///  <param name="Account">登录名</param>
        ///  <param name="AddOrCutType">充值类型(账户充值1)</param>
        ///  <param name="OrderNo">订单编号</param>
        ///  <param name="OrderSource">来源0:网站,1移动设备</param>
        /// <returns></returns>
        public ResultModel AccountRechargeWebs(AccountRechargeModel armodel)
        {
            var result = new ResultModel();


            #region 用户余额信息表 和其对应的资金流水账
            //用户余额信息表(前台)
            ZJ_UserBalanceModel zjubModel = new ZJ_UserBalanceModel();
            zjubModel.UserID   = armodel.UserID;
            zjubModel.UpdateBy = "前台账户自己充值";
            zjubModel.UpdateDT = DateTime.Now;
            //用户账户金额异动记录表(资金流水账)
            ZJ_UserBalanceChangeLogModel zjublModel = new ZJ_UserBalanceChangeLogModel();
            zjublModel.Account        = armodel.Account;
            zjublModel.AddOrCutAmount = armodel.AddOrCutAmount;
            zjublModel.AddOrCutType   = armodel.AddOrCutType;
            zjublModel.CreateBy       = armodel.Account == null ? "前台登录名为空" : armodel.Account;
            zjublModel.CreateDT       = DateTime.Now;
            if (armodel.AddOrCutAmount >= 0)
            {
                zjublModel.IsAddOrCut = 1;
            }
            else
            {
                zjublModel.IsAddOrCut = 0;
            }
            zjublModel.IsDisplay = 1;
            zjublModel.OrderNo   = armodel.OrderNo;
            zjublModel.Remark    = "前台账户充值";
            zjublModel.UserID    = armodel.UserID;
            #endregion

            #region 用户充值订单
            //用户充值订单
            ZJ_RechargeOrderModel zjroModel = new ZJ_RechargeOrderModel();

            zjroModel.OrderNO = armodel.OrderNo;

            zjroModel.RechargeResult = 1;

            #endregion

            #region 订单支付信息表
            //订单支付信息表
            PaymentOrderModel poModel = new PaymentOrderModel();
            poModel.PaymentOrderID = armodel.PaymentOrderID;
            poModel.Flag           = 2;
            poModel.outOrderId     = armodel.outOrderId;

            #endregion

            result = AccountRechargeWeb(zjubModel, zjublModel, poModel, zjroModel, zjublModel);


            return(result);
        }
예제 #6
0
        /// <summary>
        /// 更新用户余额信息表(后台余额充值)
        /// </summary>
        /// <param name="model">用户余额信息表模型</param>
        /// <returns>是否修改成功</returns>
        public ResultModel UpdateZJ_UserBalance(ZJ_UserBalanceModel model, ZJ_UserBalanceChangeLogModel ulogModel)
        {
            var result = new ResultModel();

            using (var tx = _database.Db.BeginTransaction())
            {
                try
                {
                    ZJ_UserBalanceServiceWeb zjweb = new ZJ_UserBalanceServiceWeb();
                    zjweb.UpdateZJ_UserBalance(model, ulogModel, tx);
                    ParameterSetService pss = new ParameterSetService();

                    //下面是给公司账户金额操作的
                    model.UserID     = Convert.ToInt64(pss.GetParametePValueById(1215894621).Data);
                    ulogModel.UserID = Convert.ToInt64(pss.GetParametePValueById(1215894621).Data);

                    model.AddOrCutAmount     = -model.AddOrCutAmount;
                    ulogModel.AddOrCutAmount = -ulogModel.AddOrCutAmount;
                    ulogModel.IsAddOrCut     = ulogModel.IsAddOrCut == 0 ? 1 : 0;
                    if (ulogModel.AddOrCutAmount > 0)
                    {
                        ulogModel.AddOrCutType = 15; //后台充值(正数)
                    }
                    else
                    {
                        ulogModel.AddOrCutType = 16;                  //后台充值扣款(负数)
                    }
                    zjweb.UpdateZJ_UserBalance(model, ulogModel, tx); //调用统一的修改方法
                    //tx.ZJ_UserBalance.UpdateByUserID(UserID: model.UserID, ConsumeBalance: model.ConsumeBalance, UpdateBy: model.UpdateBy, UpdateDT: model.UpdateDT);
                    //tx.ZJ_UserBalanceChangeLog.Insert(ulogModel);
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    tx.Rollback();

                    result.IsValid = false;
                    result.Messages.Add(ex.Message);
                }
            }
            return(result);
        }
예제 #7
0
        /// <summary>
        /// 购物消费,更新用户余额
        /// </summary>
        /// <param name="model"></param>
        /// <param name="tx"></param>
        internal void UpdateZJ_UserBalance(ZJ_UserBalanceModel model, dynamic tx)
        {
            if (model.UserID != 0 && model.AddOrCutType != 0)
            {
                //ZJ_UserBalanceChangeLog【用户账户金额异动记录表】(资金流水账)

                #region 给流水账添加信息

                ZJ_UserBalanceChangeLogModel ulogModel = new ZJ_UserBalanceChangeLogModel();
                ulogModel.Account        = model.Account;
                ulogModel.AddOrCutAmount = model.AddOrCutAmount;
                ulogModel.AddOrCutType   = model.AddOrCutType;
                ulogModel.CreateBy       = model.CreateBy;
                ulogModel.CreateDT       = DateTime.Now;
                if (model.AddOrCutAmount >= 0)
                {
                    ulogModel.IsAddOrCut = 1;
                }
                else
                {
                    ulogModel.IsAddOrCut = 0;
                }
                ulogModel.IsDisplay = model.IsDisplay == 0 ? 0 : model.IsDisplay;
                //ulogModel.NewAmount = model.ConsumeBalance + model.AddOrCutAmount;
                //ulogModel.OldAmount = model.ConsumeBalance;
                ulogModel.OrderNo  = model.OrderNo == null ? "" : model.OrderNo;
                ulogModel.Phone    = model.Phone;
                ulogModel.RealName = model.RealName;
                ulogModel.Remark   = model.Remark;
                ulogModel.UserID   = model.UserID;

                #endregion

                //model.ConsumeBalance = model.ConsumeBalance + model.AddOrCutAmount;
                model.UpdateBy = model.CreateBy;
                model.UpdateDT = DateTime.Now;
                ZJ_UserBalanceService _zjUserBalanceService = new ZJ_UserBalanceService();
                _zjUserBalanceService.UpdateZJ_UserBalances(model, ulogModel, tx);
            }
        }
예제 #8
0
        /// <summary>
        /// 更新用户余额信息表(前台and后台)
        /// </summary>
        /// <param name="model">用户余额信息表模型</param>
        /// <returns>是否修改成功</returns>
        public void UpdateZJ_UserBalance(ZJ_UserBalanceModel model, ZJ_UserBalanceChangeLogModel ulogModel, dynamic tx)
        {
            model.IsDisplay     = 1;//默认显示
            ulogModel.IsDisplay = 1;
            ZJ_UserBalanceService zjubs = new ZJ_UserBalanceService();

            HKTHMall.Domain.AdminModel.Models.User.SearchZJ_UserBalanceModel szjub = new Domain.AdminModel.Models.User.SearchZJ_UserBalanceModel();
            szjub.UserID     = model.UserID;
            szjub.PagedIndex = 0;
            szjub.PagedSize  = 100;
            //List<HKTHMall.Domain.AdminModel.Models.User.ZJ_UserBalanceModel> list = zjubs.GetZJ_UserBalanceList(szjub).Data;
            HKTHMall.Domain.AdminModel.Models.User.ZJ_UserBalanceModel newmodel = zjubs.GetZJ_UserBalanceById(model.UserID).Data;
            //if (list!=null&&list.Count>0)
            //{
            //    model.ConsumeBalance = list[0].ConsumeBalance + ulogModel.AddOrCutAmount;
            //    ulogModel.NewAmount = model.ConsumeBalance;
            //    ulogModel.OldAmount = list[0].ConsumeBalance;
            //    tx.ZJ_UserBalance.UpdateByUserID(UserID: model.UserID, ConsumeBalance: model.ConsumeBalance, UpdateBy: model.UpdateBy, UpdateDT: model.UpdateDT);
            //}
            if (newmodel != null)
            {
                model.ConsumeBalance = newmodel.ConsumeBalance + ulogModel.AddOrCutAmount; //用户余额
                ulogModel.NewAmount  = model.ConsumeBalance;                               //用户新增的金额
                ulogModel.OldAmount  = newmodel.ConsumeBalance;                            //用户原来金额
                tx.ZJ_UserBalance.UpdateByUserID(UserID: model.UserID, ConsumeBalance: model.ConsumeBalance, UpdateBy: model.UpdateBy, UpdateDT: model.UpdateDT);
            }
            else
            {
                model.ConsumeBalance = ulogModel.AddOrCutAmount;
                ulogModel.NewAmount  = model.ConsumeBalance;
                ulogModel.OldAmount  = 0;
                model.UpdateBy       = "";
                model.UpdateDT       = DateTime.Now;
                tx.ZJ_UserBalance.Insert(model);
            }

            InsertZJ_UserBalanceChangeLog(ulogModel, tx);
        }
예제 #9
0
        public void ZJ_UserBalanceChangeLog_AddZJ_UserBalance()
        {
            var model = new ZJ_UserBalanceChangeLogModel
            {
                UserID         = 192228,
                AddOrCutAmount = 100,
                IsAddOrCut     = 50,
                OldAmount      = 1,
                NewAmount      = 192228,
                AddOrCutType   = 100,
                OrderNo        = "23423432432423",
                Remark         = "asdf",
                IsDisplay      = 0,
                CreateBy       = "admin",
                CreateDT       = DateTime.Now
            };



            var result = this._zjUserBalanceChangeLogService.AddZJ_UserBalanceChangeLog(model);

            Assert.IsTrue(result.IsValid);
        }
 public static ZJ_UserBalanceChangeLog ToEntity(this ZJ_UserBalanceChangeLogModel model)
 {
     return(Mapper.Map <ZJ_UserBalanceChangeLog>(model));
 }
예제 #11
0
        /// <summary>
        /// web 账户充值(第三方充值成功)
        /// </summary>
        /// <param name="RechargeAmount">充值金额</param>
        /// <param name="Radiochecked">第三方充值方式通道</param>
        /// <param name="UserID">用户ID</param>
        ///  <param name="Account">登录名</param>
        ///  <param name="AddOrCutType">充值类型(账户充值1)</param>
        ///  <param name="OrderNo">订单编号</param>
        ///  <param name="OrderSource">来源0:网站,1移动设备</param>
        /// <returns></returns>
        public ResultModel AccountRechargeWeb(AccountRechargeModel armodel)
        {
            var result = new ResultModel();


            #region 用户余额信息表 和其对应的资金流水账
            //用户余额信息表(前台)
            ZJ_UserBalanceModel zjubModel = new ZJ_UserBalanceModel();
            zjubModel.UserID   = armodel.UserID;
            zjubModel.UpdateBy = "前台账户自己充值";
            zjubModel.UpdateDT = DateTime.Now;
            //用户账户金额异动记录表(资金流水账)
            ZJ_UserBalanceChangeLogModel zjublModel = new ZJ_UserBalanceChangeLogModel();
            zjublModel.Account        = armodel.Account;
            zjublModel.AddOrCutAmount = armodel.AddOrCutAmount;
            zjublModel.AddOrCutType   = armodel.AddOrCutType;
            zjublModel.CreateBy       = armodel.Account == null ? "前台登录名为空" : armodel.Account;
            zjublModel.CreateDT       = DateTime.Now;
            if (armodel.AddOrCutAmount >= 0)
            {
                zjublModel.IsAddOrCut = 1;
            }
            else
            {
                zjublModel.IsAddOrCut = 0;
            }
            zjublModel.IsDisplay = 1;
            zjublModel.OrderNo   = armodel.OrderNo;
            zjublModel.Remark    = "前台账户充值";
            zjublModel.UserID    = armodel.UserID;
            #endregion

            #region 用户充值订单
            //用户充值订单
            ZJ_RechargeOrderModel zjroModel = new ZJ_RechargeOrderModel();

            zjroModel.OrderNO = armodel.OrderNo;

            zjroModel.RechargeResult = 1;

            #endregion

            #region 订单支付信息表
            //订单支付信息表
            PaymentOrderModel poModel = new PaymentOrderModel();
            poModel.PaymentOrderID = armodel.PaymentOrderID;
            poModel.Flag           = 2;
            poModel.outOrderId     = armodel.outOrderId;
            //poModel.outOrderId = armodel.OrderNo;
            //poModel.PaymentDate = DateTime.Now;

            //poModel.PayType = 1;
            //poModel.ProductAmount = armodel.AddOrCutAmount;
            //poModel.RealAmount = armodel.AddOrCutAmount;
            //poModel.UserID = armodel.UserID;
            ////订单支付信息与订单关联记录表
            //PaymentOrder_OrdersModel pooModel = new PaymentOrder_OrdersModel();
            //pooModel.OrderID = armodel.OrderNo;
            //pooModel.RelateID = MemCacheFactory.GetCurrentMemCache().Increment("commonId");
            #endregion

            result = _zjUserBalanceServiceWeb.AccountRechargeWeb(zjubModel, zjublModel, poModel, zjroModel, zjublModel);


            return(result);
        }
예제 #12
0
        /// <summary>
        /// 后台余额充值
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool UpdateZJ_UserBalance(ZJ_UserBalanceModel model)
        {
            bool bl = false;

            if (model.UserID != 0 && model.AddOrCutType != 0)
            {
                #region 这里重新查询用户余额是为防止数据库已更新余额
                //ZJ_UserBalanceModel Newmodel = new ZJ_UserBalanceModel();
                //SearchZJ_UserBalanceModel smodel = new SearchZJ_UserBalanceModel();
                //smodel.UserID = model.UserID;
                //smodel.PagedIndex = 0;
                //smodel.PagedSize = 100;
                ////查询列表

                //List<ZJ_UserBalanceModel> List = _zjUserBalanceService.GetZJ_UserBalanceList(smodel).Data;

                //if (List != null && List.Count > 0)
                //{
                //    Newmodel = List[0];
                //}
                //else
                //{
                //    return bl=false;
                //}
                #endregion

                //ZJ_UserBalanceChangeLog【用户账户金额异动记录表】(资金流水账)
                #region 给流水账添加信息
                ZJ_UserBalanceChangeLogModel ulogModel = new ZJ_UserBalanceChangeLogModel();
                ulogModel.Account        = model.Account;
                ulogModel.AddOrCutAmount = model.AddOrCutAmount;
                ulogModel.AddOrCutType   = model.AddOrCutType;
                ulogModel.CreateBy       = UserInfo.CurrentUserName;
                ulogModel.CreateDT       = DateTime.Now;
                if (model.AddOrCutAmount >= 0)
                {
                    ulogModel.IsAddOrCut = 1;
                }
                else
                {
                    ulogModel.IsAddOrCut = 0;
                }
                ulogModel.IsDisplay = model.IsDisplay == 0 ? 0 : model.IsDisplay;
                //ulogModel.NewAmount = model.ConsumeBalance + model.AddOrCutAmount;
                //ulogModel.OldAmount = model.ConsumeBalance;
                ulogModel.OrderNo  = model.OrderNo == null ? "" : model.OrderNo;
                ulogModel.Phone    = model.Phone;
                ulogModel.RealName = model.RealName;
                ulogModel.Remark   = model.Remark;
                ulogModel.UserID   = model.UserID;
                #endregion

                //model.ConsumeBalance = model.ConsumeBalance + model.AddOrCutAmount;
                model.UpdateBy = UserInfo.CurrentUserName;
                model.UpdateDT = DateTime.Now;

                bl = _zjUserBalanceService.UpdateZJ_UserBalance(model, ulogModel).IsValid;
            }

            return(bl);
        }
예제 #13
0
 /// <summary>
 /// 添加用户充值订单表
 /// </summary>
 /// <param name="zjoModel">用户充值订单表Model</param>
 /// <param name="ulogModel">用户账户金额异动记录表model</param>
 /// <param name="tx"></param>
 public void InserZJ_RechargeOrder(ZJ_RechargeOrderModel zjoModel, ZJ_UserBalanceChangeLogModel ulogModel, dynamic tx)
 {
     tx.ZJ_RechargeOrder.Insert(zjoModel);
     tx.ZJ_UserBalanceChangeLog.Insert(ulogModel);
 }
예제 #14
0
 /// <summary>
 ///添加【用户账户金额异动记录表】(资金流水账)
 /// </summary>
 /// <param name="ulogModel">【用户账户金额异动记录表】(资金流水账)model</param>
 ///
 /// <param name="tx"></param>
 public void InsertZJ_UserBalanceChangeLog(ZJ_UserBalanceChangeLogModel ulogModel, dynamic tx)
 {
     tx.ZJ_UserBalanceChangeLog.Insert(ulogModel);
 }
        /// <summary>
        /// 更新提现订单
        /// </summary>
        /// <param name="model">提现订单对象</param>
        /// <returns>返回true时,表示更新成功;反之,表示更新失败</returns>
        /// <remarks>added by jimmy,2015-7-20</remarks>
        public ResultModel Update(ZJ_WithdrawOrderModel model)
        {
            var result = new ResultModel();

            using (var bt = this._database.Db.BeginTransaction())
            {
                try
                {
                    //更新审核信息
                    dynamic record = new SimpleRecord();
                    record.OrderNO        = model.OrderNO;
                    record.Remark         = model.Remark;
                    record.WithdrawResult = model.WithdrawResult;
                    if (!string.IsNullOrEmpty(model.Verifier))
                    {
                        record.Verifier = model.Verifier;
                    }
                    if (model.VerifyDT != null)
                    {
                        record.VerifyDT = model.VerifyDT;
                    }
                    if (!string.IsNullOrEmpty(model.Remitter))
                    {
                        record.Remitter = model.Remitter;
                    }
                    if (model.RemittanceDT != null)
                    {
                        record.RemittanceDT = model.RemittanceDT;
                    }
                    if (model.WithdrawCommission != null)
                    {
                        record.WithdrawCommission = model.WithdrawCommission;
                    }
                    var upWithdrawOrder = bt.ZJ_WithdrawOrder.UpdateByOrderNO(record);

                    if (model.WithdrawResult == (int)IWithdrawResult.ApprovedMoney)
                    {
                        var wOrder = bt.ZJ_WithdrawOrder.FindByOrderNO(model.OrderNO);
                        if (wOrder != null)
                        {
                            model.UserID             = wOrder.UserID;
                            model.WithdrawAmount     = wOrder.WithdrawAmount;
                            model.WithdrawCommission = wOrder.WithdrawCommission;
                        }
                        //判断用户余额是否存在数据
                        ZJ_UserBalanceModel zJUserBalanceModel = bt.ZJ_UserBalance.FindByUserID(model.UserID);
                        if (zJUserBalanceModel == null)
                        {
                            bt.Rollback();
                            result.IsValid  = false;
                            result.Messages = new List <string>()
                            {
                                "系统中不存在用户余额信息"
                            };
                            return(result);
                        }
                        if ((zJUserBalanceModel.ConsumeBalance - model.WithdrawAmount - model.WithdrawCommission) < 0)
                        {
                            bt.Rollback();
                            result.IsValid  = false;
                            result.Messages = new List <string>()
                            {
                                "手续费用不能大于用户提现后的余额"
                            };
                            return(result);
                        }
                        //新增用户账户金额异动
                        ZJ_UserBalanceChangeLogModel ulogModel = new ZJ_UserBalanceChangeLogModel();
                        ulogModel.UserID         = model.UserID;
                        ulogModel.AddOrCutAmount = -(model.WithdrawAmount.Value + model.WithdrawCommission.Value);//变动金额 = 提现金额 + 手续费
                        ulogModel.IsAddOrCut     = 0;
                        ulogModel.OldAmount      = zJUserBalanceModel.ConsumeBalance;
                        ulogModel.NewAmount      = zJUserBalanceModel.ConsumeBalance - model.WithdrawAmount.Value - model.WithdrawCommission.Value;
                        ulogModel.AddOrCutType   = 3;
                        ulogModel.OrderNo        = model.OrderNO;
                        ulogModel.Remark         = model.Remark;
                        ulogModel.IsDisplay      = 1;
                        ulogModel.CreateBy       = model.Verifier;
                        ulogModel.CreateDT       = DateTime.Now;
                        new ZJ_UserBalanceServiceWeb().UpdateZJ_UserBalance(zJUserBalanceModel, ulogModel, bt);
                    }
                    bt.Commit();
                    result.Data = upWithdrawOrder;
                }
                catch (Exception ex)
                {
                    //todo错误日志记录
                    bt.Rollback();
                    result.IsValid = false;
                    result.Messages.Add(ex.Message);
                    throw;
                }
            }
            return(result);
        }
예제 #16
0
        /// <summary>
        /// 返现操作
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public void CashBackOrder()
        {
            ExceptionLogModel exceptionLogModel = new ExceptionLogModel();

            exceptionLogModel.ServiceName = "会员订单返现服务";
            exceptionLogModel.CreateBy    = "系统返现服务";
            var zr = _database.Db.ZJ_RebateInfo;
            List <ZJ_RebateInfo> zjorder = zr.FindAll(zr.Status == 1 && zr.StartTime <= DateTime.Now).ToList <ZJ_RebateInfo>();

            zjorder = zjorder.FindAll(x => x.LastUpdateTime == null || DateTime.Now.Date.Subtract(((DateTime)x.LastUpdateTime).Date).Days > 0);
            if (zjorder != null && zjorder.Count > 0)
            {
                foreach (ZJ_RebateInfo model in zjorder)
                {
                    try
                    {
                        //判断是否已返现完成
                        if (model.TotalMoney <= model.PaidMoney)
                        {
                            zr.UpdateByID(ID: model.ID, Status: 2, LastUpdateBY: "系统服务", LastUpdateTime: DateTime.Now);
                            _logger.Error(typeof(ZJ_RebateService), string.Format("订单【{0}】的已经返现完成", model.ID));
                        }
                        else
                        {
                            decimal m  = 0;                           //本次返回金额
                            decimal pm = 0;                           //当前已付金额+本次返回金额
                            int     pd = 0;
                            if (model.TotalDay - model.PaidDays == 1) //最后一天返回所有余额(小数点问题)
                            {
                                m = model.TotalMoney - model.PaidMoney;
                            }
                            else
                            {
                                m = ToFixed((model.TotalMoney / model.TotalDay), 2);
                                if (m < 0.01m)
                                {
                                    m = 0.01m;
                                }
                            }
                            pm = model.PaidMoney + m;
                            pd = model.PaidDays + 1;
                            #region 用户余额
                            ZJ_UserBalanceModel ub = new ZJ_UserBalanceModel();
                            ub = _database.Db.ZJ_UserBalance.FindByUserId(UserId: model.UserID);
                            if (ub == null)
                            {
                                exceptionLogModel.Message    = string.Format("未能找到用户【{0}】的余额信息", model.UserID);
                                exceptionLogModel.ResultType = 2;
                                exceptionLogModel.Status     = 1;
                            }
                            #endregion
                            #region 添加资金异动流水
                            ZJ_UserBalanceChangeLogModel ulogModel = new ZJ_UserBalanceChangeLogModel();
                            ulogModel.AddOrCutAmount = m;
                            ulogModel.AddOrCutType   = 17;
                            ulogModel.CreateBy       = "系统返现服务";
                            ulogModel.CreateDT       = DateTime.Now;
                            ulogModel.IsAddOrCut     = 1;
                            ulogModel.IsDisplay      = 1;
                            ulogModel.NewAmount      = ub.ConsumeBalance + m;
                            ulogModel.OldAmount      = ub.ConsumeBalance;
                            ulogModel.OrderNo        = model.OrderDetailsID.ToString();
                            ulogModel.Remark         = model.Remark;
                            ulogModel.UserID         = (long)model.UserID;
                            #endregion
                            using (var bt = _database.Db.BeginTransaction())
                            {
                                try
                                {
                                    //用户余额修改
                                    bt.ZJ_UserBalance.UpdateByUserId(UserId: model.UserID, ConsumeBalance: ulogModel.NewAmount, UpdateBy: "系统返现服务", UpdateDT: DateTime.Now);
                                    //添加资金异动记录
                                    bt.ZJ_UserBalanceChangeLog.Insert(ulogModel);
                                    //修改返现表
                                    bt.ZJ_RebateInfo.UpdateByID(ID: model.ID, PaidMoney: pm, PaidDays: pd, LastUpdateBY: "系统服务", LastUpdateTime: DateTime.Now);

                                    bt.Commit();
                                    _logger.Error(typeof(ZJ_RebateService), string.Format("处理返现订单【{0}】的返现成功", model.ID));
                                }
                                catch (Exception ex)
                                {
                                    bt.Rollback();
                                    exceptionLogModel.HandleId   = model.ID.ToString();
                                    exceptionLogModel.Status     = 1;
                                    exceptionLogModel.ResultType = 1;
                                    exceptionLogModel.Message    = string.Format("处理返现订单【{0}】的返现失败,{1},数据库事务回滚", model.ID, ex.Message);
                                    exceptionLogService.Add(exceptionLogModel);
                                    _logger.Error(typeof(ZJ_RebateService), string.Format("处理返现订单【{0}】的返现失败,{1},数据库事务回滚", model.ID, ex.Message));
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        exceptionLogModel.HandleId   = model.ID.ToString();
                        exceptionLogModel.Status     = 1;
                        exceptionLogModel.ResultType = 1;
                        exceptionLogModel.Message    = string.Format("处理返现订单【{0}】的返现失败,{1}", model.ID, ex.Message);
                        exceptionLogService.Add(exceptionLogModel);
                        _logger.Error(typeof(ZJ_RebateService), string.Format("处理返现订单【{0}】的返现失败,{1}", model.ID, ex.Message));
                    }
                }
            }
            else
            {
                exceptionLogModel.CreateDT   = DateTime.Now;
                exceptionLogModel.Message    = "本次没有需要处理的返现";
                exceptionLogModel.ResultType = 2;
                exceptionLogModel.Status     = 1;
            }
        }