Beispiel #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);
        }
Beispiel #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); //调用统一的修改方法 公司账户
        }
Beispiel #3
0
        /// <summary>
        /// 添加用户余额信息表
        /// </summary>
        /// <param name="model">用户余额信息表模型</param>
        /// <returns>是否成功</returns>
        public ResultModel AddZJ_UserBalance(ZJ_UserBalanceModel model)
        {
            var result = new ResultModel
            {
                Data = _database.Db.ZJ_UserBalance.Insert(model)
            };

            return(result);
        }
Beispiel #4
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);
        }
Beispiel #5
0
        /// <summary>
        /// 资金表插入
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResultModel AddBalance(ZJ_UserBalanceModel model)
        {
            var tb     = base._database.Db.ZJ_UserBalance;
            var result = new ResultModel()
            {
                Data = tb.Insert(model)
            };

            return(result);
        }
Beispiel #6
0
        /// <summary>
        /// 更新用户余额信息表(只修改账户状态)
        /// </summary>
        /// <param name="model">用户余额信息表模型</param>
        /// <returns>是否修改成功</returns>
        public ResultModel UpdateZJ_UserBalance(ZJ_UserBalanceModel model)
        {
            var result = new ResultModel()
            {
                Data =
                    base._database.Db.ZJ_UserBalance.UpdateByUserID(UserID: model.UserID,
                                                                    AccountStatus: model.AccountStatus, UpdateBy: model.UpdateBy, UpdateDT: model.UpdateDT)
            };

            result.IsValid = result.Data > 0 ? true : false;

            return(result);
        }
        public ActionResult Create(ZJ_UserBalanceModel model)
        {
            if (ModelState.IsValid)
            {
                ResultModel resultModel = new ResultModel();

                if (model.AddOrCutAmount >= 0)
                {
                    model.AddOrCutType = 15;
                }
                else
                {
                    model.AddOrCutType = 16;
                    SearchZJ_UserBalanceModel smodel = new SearchZJ_UserBalanceModel();
                    smodel.UserID     = model.UserID;
                    smodel.PagedIndex = 0;
                    smodel.PagedSize  = 100;
                    //获取用户余额,用于判断最多扣款
                    List <ZJ_UserBalanceModel> List = this._zjUserBalanceService.GetZJ_UserBalanceList(smodel).Data;
                    if (List != null && List.Count > 0)
                    {
                        ZJ_UserBalanceModel zjubmodel = List[0];
                        if (zjubmodel.ConsumeBalance + model.AddOrCutAmount < 0)
                        {
                            resultModel.Messages = new List <string> {
                                "Insufficient balance!"
                            };
                            return(Json(resultModel, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                model.IsDisplay = 1;
                var result = ZJ_UserBalanceCommon.UpdateZJ_UserBalance(model);

                resultModel.Messages = new List <string> {
                    result == true ? "Recharge success!" : "Recharge failed!"
                };
                var opera = string.Empty;
                opera += " UserID:" + model.UserID + ",AddOrCutAmount(充值金额):" + model.AddOrCutAmount + ",结果:" + result;
                LogPackage.InserAC_OperateLog(opera, "账户管理-用户账户信息-余额充值");

                return(Json(resultModel, JsonRequestBehavior.AllowGet));
            }
            return(PartialView(model));
        }
Beispiel #8
0
        public void ZJ_UserBalanceService_UpdateZJ_UserBalance()
        {
            var model = new ZJ_UserBalanceModel
            {
                UserID         = 116070,
                ConsumeBalance = 100,
                Vouchers       = 50,
                AccountStatus  = 2,
                CreateBy       = "admin",
                CreateDT       = DateTime.Now
            };



            var result = this._zjUserBalanceService.UpdateZJ_UserBalance(model);

            Assert.IsTrue(result.IsValid);
        }
Beispiel #9
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);
        }
        /// <summary>
        ///数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Create(long?id)
        {
            ZJ_UserBalanceModel model = new ZJ_UserBalanceModel();

            if (id.HasValue)
            {
                SearchZJ_UserBalanceModel smodel = new SearchZJ_UserBalanceModel();
                smodel.UserID     = id.Value;
                smodel.PagedIndex = 0;
                smodel.PagedSize  = 100;
                //查询列表

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

                if (List != null && List.Count > 0)
                {
                    model = List[0];
                }
            }
            return(PartialView(model));
        }
Beispiel #11
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);
            }
        }
Beispiel #12
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);
        }
        /// <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);
        }
        /// <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);
        }
Beispiel #15
0
        /// <summary>
        /// 第三方账号登录
        /// </summary>
        /// <param name="id"></param>
        /// <param name="name"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public ResultModel LoginThree(string id_3rd, string name, int type)
        {
            ResultModel rm = new ResultModel();

            rm.IsValid = false;
            YH_UserModel has_uid = _database.Db.YH_User.FindByThirdID(id_3rd);

            if (has_uid == null)
            {
                has_uid                = new YH_UserModel();
                has_uid.UserID         = MemCacheFactory.GetCurrentMemCache().Increment("commonId");
                has_uid.Account        = name;
                has_uid.PassWord       = "";
                has_uid.PayPassWord    = null;
                has_uid.NickName       = name;
                has_uid.HeadImageUrl   = "";
                has_uid.Sex            = 0;
                has_uid.RealName       = null;
                has_uid.Email          = "";
                has_uid.Phone          = "";
                has_uid.Birthday       = null;
                has_uid.RegisterDate   = DateTime.Now;
                has_uid.RegisterSource = 1;
                has_uid.ActivePhone    = 0;
                has_uid.ActiveEmail    = 0;
                has_uid.RecommendCode  = null;
                has_uid.ReferrerID     = 0;
                has_uid.ParentID2      = 0;
                has_uid.ParentID3      = 0;
                has_uid.ParentIDs      = null;
                has_uid.Level          = 0;
                has_uid.UserType       = 0;
                has_uid.IsLock         = 0;
                has_uid.IsDelete       = 0;
                has_uid.UpdateBy       = name;
                has_uid.UpdateDT       = DateTime.Now;
                has_uid.DetailsAddress = null;
                has_uid.OrcodeUrl      = "";
                has_uid.ThirdID        = id_3rd;
                has_uid.ThirdType      = type;
                Add(has_uid);

                //设置账号vip字段
                //ReqSetUserVipRights vipReq = new ReqSetUserVipRights();
                //vipReq.acc = log3.acc;
                //vipReq.uid = log3.uid;
                //vipReq.vip = new int[] { 2 };
                //vipReq.sys_id = Core.Settings.EmSystemId;
                //vipReq.mac = Core.Settings.GetMacAddress();
                //vipReq.ip = Core.Settings.GetIPAddress();
                //vipReq.dev = Core.Settings.EmDev;
                //vipReq.bus_seq = "T011111111111";
                //EmMethodManage.EmFindUpdateInstance.MsgSetUserVipRightsReq(vipReq);

                ZJ_UserBalanceModel zj_UserBalanceModel = new ZJ_UserBalanceModel();
                zj_UserBalanceModel.UserID         = has_uid.UserID;
                zj_UserBalanceModel.ConsumeBalance = 0;
                zj_UserBalanceModel.AccountStatus  = 1;
                zj_UserBalanceModel.CreateBy       = has_uid.Account;
                zj_UserBalanceModel.CreateDT       = DateTime.Now;
                zj_UserBalanceModel.UpdateBy       = has_uid.Account;
                zj_UserBalanceModel.UpdateDT       = DateTime.Now;
                new ZJ_UserBalanceService().AddBalance(zj_UserBalanceModel);

                YH_UserUpdateInfoModel updateInfo = new YH_UserUpdateInfoModel
                {
                    UserID    = has_uid.UserID,
                    TimeStamp = HKTHMall.Services.Common.ConvertsTime.DateTimeToTimeStamp(has_uid.UpdateDT.Value)
                };
                new YH_UserUpdateInfoService().Add(updateInfo);
            }
            rm.IsValid = true;
            rm.Data    = has_uid;



            //ResponseLogOn3rdAcc log3=LoginThreeIm(id_3rd, name, type);
            //if (log3.Status == 0x001000D2)
            //{
            //    RequestConfirm3rdAcc requestConfirm3rdAcc=new RequestConfirm3rdAcc();
            //    requestConfirm3rdAcc.seq_id = log3.seq_id;
            //    requestConfirm3rdAcc.type = 1;
            //    requestConfirm3rdAcc.sys_id = Core.Settings.EmSystemId;
            //    requestConfirm3rdAcc.nick = name;
            //    requestConfirm3rdAcc.sys_id = Core.Settings.EmSystemId;
            //    requestConfirm3rdAcc.mac = Core.Settings.GetMacAddress();
            //    requestConfirm3rdAcc.ip = Core.Settings.GetIPAddress();
            //    requestConfirm3rdAcc.dev = Core.Settings.EmDev;
            //    log3 = EmMethodManage.EmLoginInstance.MsgConfirm3rdAccReq(requestConfirm3rdAcc);
            //}
            //if (log3.Status==0)
            //{
            //    YH_UserModel has_uid = GetUserInfoById(log3.uid).Data;
            //    if(has_uid==null)
            //    {
            //        has_uid = new YH_UserModel();
            //        has_uid.UserID = log3.uid;
            //        has_uid.Account = log3.acc;
            //        has_uid.PassWord = log3.pwd;
            //        has_uid.PayPassWord = null;
            //        has_uid.NickName = name;
            //        has_uid.HeadImageUrl = log3.img_url;
            //        has_uid.Sex = (byte)log3.sex;
            //        has_uid.RealName = null;
            //        has_uid.Email = log3.email;
            //        has_uid.Phone = log3.phone;
            //        has_uid.Birthday = null;
            //        has_uid.RegisterDate = ConvertUTCToDateTime(log3.regtime);
            //        has_uid.RegisterSource = 1;
            //        has_uid.ActivePhone = 0;
            //        has_uid.ActiveEmail = 0;
            //        has_uid.RecommendCode = null;
            //        has_uid.ReferrerID = 0;
            //        has_uid.ParentID2 = 0;
            //        has_uid.ParentID3 = 0;
            //        has_uid.ParentIDs = null;
            //        has_uid.Level = 0;
            //        has_uid.UserType = 0;
            //        has_uid.IsLock = 0;
            //        has_uid.IsDelete = 0;
            //        has_uid.UpdateBy = log3.acc;
            //        has_uid.UpdateDT = DateTime.Now;
            //        has_uid.DetailsAddress = null;
            //        has_uid.OrcodeUrl = "";
            //        Add(has_uid);

            //        //设置账号vip字段
            //        ReqSetUserVipRights vipReq = new ReqSetUserVipRights();
            //        vipReq.acc = log3.acc;
            //        vipReq.uid = log3.uid;
            //        vipReq.vip = new int[] { 2 };
            //        vipReq.sys_id = Core.Settings.EmSystemId;
            //        vipReq.mac = Core.Settings.GetMacAddress();
            //        vipReq.ip = Core.Settings.GetIPAddress();
            //        vipReq.dev = Core.Settings.EmDev;
            //        vipReq.bus_seq = "T011111111111";
            //        EmMethodManage.EmFindUpdateInstance.MsgSetUserVipRightsReq(vipReq);

            //        ZJ_UserBalanceModel zj_UserBalanceModel = new ZJ_UserBalanceModel();
            //        zj_UserBalanceModel.UserID = log3.uid;
            //        zj_UserBalanceModel.ConsumeBalance = 0;
            //        zj_UserBalanceModel.AccountStatus = 1;
            //        zj_UserBalanceModel.CreateBy = log3.acc;
            //        zj_UserBalanceModel.CreateDT = DateTime.Now;
            //        zj_UserBalanceModel.UpdateBy = log3.acc;
            //        zj_UserBalanceModel.UpdateDT = DateTime.Now;
            //        new ZJ_UserBalanceService().AddBalance(zj_UserBalanceModel);

            //        YH_UserUpdateInfoModel updateInfo = new YH_UserUpdateInfoModel
            //        {
            //            UserID = log3.uid,
            //            TimeStamp = log3.regtime
            //        };
            //        new YH_UserUpdateInfoService().Add(updateInfo);
            //    }
            //    rm.IsValid = true;
            //    rm.Data = has_uid;
            //}
            return(rm);
        }
Beispiel #16
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="welcomeCode"></param>
        /// <param name="phone"></param>
        /// <param name="pwd"></param>
        /// <param name="pwd_md5"></param>
        /// <param name="code"></param>
        /// <param name="_user"></param>
        /// <returns></returns>
        public BackMessage Register(string pwd, string pwd_md5, string email, out YH_UserModel _user)
        {
            _user = null;

            //注册回调信息
            BackMessage msg = new BackMessage();

            msg.status = 0;


            if ("" == pwd || new Regex(@"/[^\x00-\xff]|\s/").IsMatch(pwd))
            {
                msg.message = CultureHelper.GetLangString("LOGIN_PWD_FORMAT");//"密码格式不正确8-20位字母数字组合!";
                return(msg);
            }

            if (!string.IsNullOrEmpty(email))
            {
                if (!new Regex(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$").IsMatch(email))
                {
                    msg.message = CultureHelper.GetLangString("ACCOUNT_USERINFO_ADDRESS_EMAILERROR");//邮箱格式错误
                    return(msg);
                }
            }


            using (var tx = _database.Db.BeginTransaction())
            {
                try
                {
                    YH_UserModel user = new YH_UserModel();
                    user.UserID = HKTHMall.Core.MemCacheFactory.GetCurrentMemCache().Increment("commonId"); //rstatus.uid;
                    //user.Phone = phone;
                    user.PassWord       = pwd_md5;
                    user.NickName       = SetNickName();
                    user.Sex            = 0;
                    user.RegisterSource = 1;
                    user.UserType       = 0;
                    user.ActivePhone    = 1;
                    user.IsLock         = 0;
                    user.IsDelete       = 0;



                    //判断本地UID数据是否存在
                    var result = GetUserInfoByEmail(email);
                    //YH_UserModel has_uid = GetUserInfoById().Data;
                    if (!result.IsValid)
                    {
                        tx.Rollback();
                        msg.message = CultureHelper.GetLangString("REGISETR_HADREGISTER");//您输入的手机号码已注册;
                        return(msg);
                    }
                    else
                    {
                        user.Account     = email;
                        user.Email       = email;
                        user.ActiveEmail = 0;
                        user.ReferrerID  = 0;
                        user.ParentID2   = 0;
                        user.ParentID3   = 0;
                        user.ParentIDs   = "";
                        //user.UpdateDT = ;
                        user.RegisterDate = DateTime.Now;
                        //写入本地数据
                        if (!Add(user).IsValid)
                        {
                            tx.Rollback();
                            msg.message = CultureHelper.GetLangString("REGISETR_USERREGISTERFAIL"); //会员注册失败;
                            return(msg);
                        }

                        ZJ_UserBalanceModel zj_UserBalanceModel = new ZJ_UserBalanceModel();
                        zj_UserBalanceModel.UserID         = user.UserID;
                        zj_UserBalanceModel.ConsumeBalance = 0;
                        zj_UserBalanceModel.AccountStatus  = 1;
                        zj_UserBalanceModel.CreateBy       = user.Account;
                        zj_UserBalanceModel.CreateDT       = DateTime.Now;
                        zj_UserBalanceModel.UpdateBy       = user.Account;
                        zj_UserBalanceModel.UpdateDT       = DateTime.Now;

                        if (!new ZJ_UserBalanceService().AddBalance(zj_UserBalanceModel).IsValid)
                        {
                            tx.Rollback();
                            msg.message = CultureHelper.GetLangString("REGISETR_USERREGISTERFAIL"); //会员注册失败;
                            return(msg);
                        }


                        YH_UserUpdateInfoModel updateInfo = new YH_UserUpdateInfoModel {
                            UserID = user.UserID, TimeStamp = HKTHMall.Services.Common.ConvertsTime.DateTimeToTimeStamp(DateTime.Now)
                        };
                        if (!new YH_UserUpdateInfoService().Add(updateInfo).IsValid)
                        {
                            tx.Rollback();
                            msg.message = CultureHelper.GetLangString("REGISETR_USERREGISTERFAIL"); //会员注册失败;
                            return(msg);
                        }

                        _user = new YH_UserModel {
                            UserID = user.UserID, Account = user.Account, NickName = user.NickName, UserType = user.UserType, Email = email
                        };
                        tx.Commit();

                        msg.status  = 1;
                        msg.message = CultureHelper.GetLangString("REGISETR_USERREGISTERSUCCESS"); //会员注册成功;
                        return(msg);
                    }
                }
                catch
                {
                    tx.Rollback();
                    msg.message = CultureHelper.GetLangString("REGISETR_USERREGISTERFAIL"); //会员注册失败;
                    return(msg);
                }
            }
        }
Beispiel #17
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);
        }
        /// <summary>
        /// 新增提现订单
        /// </summary>
        /// <param name="userId">用户Id</param>
        /// <param name="withdrawAmount">提现金额</param>
        /// <param name="OrderSource">提现来源</param>
        /// <returns>返回true时,表示新增成功;反之,表示新增失败</returns>
        /// <remarks>added by jimmy,2015-7-21</remarks>
        public ResultModel AddZJ_WithdrawOrder(long userId, decimal withdrawAmount, IOrderSource OrderSource)
        {
            var result = new ResultModel();

            //事务开始进行
            using (var bt = this._database.Db.BeginTransaction())
            {
                try
                {
                    //判断用户余额是否存在数据
                    ZJ_UserBalanceModel zJUserBalanceModel = bt.ZJ_UserBalance.FindByUserID(userId);
                    if (zJUserBalanceModel == null)
                    {
                        bt.Rollback();
                        result.IsValid  = false;
                        result.Messages = new List <string>()
                        {
                            "M01"
                        };
                        return(result);
                    }
                    //判断提现余额是否大于用户余额,如果大于,则回滚
                    if (zJUserBalanceModel.ConsumeBalance < withdrawAmount)
                    {
                        bt.Rollback();
                        result.IsValid  = false;
                        result.Messages = new List <string>()
                        {
                            "M02"
                        };
                        return(result);
                    }
                    //获取用户银行账户信息
                    dynamic bank;
                    List <YH_UserBankAccountModel> userbankList = bt.YH_UserBankAccount.FindAll(bt.YH_UserBankAccount.UserID == userId && bt.YH_UserBankAccount.IsUse == 1).
                                                                  LeftJoin(bt.BD_Bank, out bank).On(bt.YH_UserBankAccount.BankID == bank.BankID).
                                                                  Select(
                        bt.YH_UserBankAccount.BankID,
                        bt.YH_UserBankAccount.BankAccount,
                        bt.YH_UserBankAccount.BankSubbranch,
                        bt.YH_UserBankAccount.BankUserName,
                        bank.BankName
                        );
                    if (userbankList == null || userbankList.Count == 0)
                    {
                        bt.Rollback();
                        result.IsValid  = false;
                        result.Messages = new List <string>()
                        {
                            "M03"
                        };                                             //M03表示用户不存在银行账户信息
                        return(result);
                    }


                    //新增提现订单
                    dynamic recordWithdraw = new SimpleRecord();
                    long    OrderNo        = MemCacheFactory.GetCurrentMemCache().Increment("commonId");
                    recordWithdraw.OrderNO            = OrderNo;
                    recordWithdraw.UserID             = userId;
                    recordWithdraw.WithdrawAmount     = withdrawAmount;
                    recordWithdraw.WithdrawCommission = 0;
                    recordWithdraw.WithdrawDT         = DateTime.Now;
                    recordWithdraw.BankAccount        = userbankList[0].BankAccount;
                    recordWithdraw.BankName           = userbankList[0].BankName;
                    recordWithdraw.BankSubbranch      = userbankList[0].BankSubbranch;
                    recordWithdraw.BankUserName       = userbankList[0].BankUserName;
                    recordWithdraw.IsDisplay          = 1;
                    recordWithdraw.WithdrawResult     = (int)IWithdrawResult.ToAudit;
                    recordWithdraw.OrderSource        = (int)OrderSource;

                    bt.ZJ_WithdrawOrder.Insert(recordWithdraw);

                    bt.Commit();
                    result.Data = OrderNo;
                }
                catch (Exception ex)
                {
                    //todo错误日志记录

                    bt.Rollback();
                    result.IsValid = false;
                    result.Messages.Add(ex.Message);
                    throw;
                }
            }
            return(result);
        }
        /// <summary>
        /// 退换货记录(确认退款)
        /// </summary>
        /// <param name="model">退货记录模型</param>
        /// <returns>是否修改成功</returns>
        /// wuyf
        public ResultModel UpdateReturnProductInfoTK(ReturnProductInfoModel model)
        {
            //修改退货表 状态 5已退款
            //订单明细表 退货状态 改成 2已退款
            //订单表 退款标识 修改成 已处理
            //订单表 状态改成8交易关闭(需要判断订单明细表里的相关产品数据都是已经退款状态)
            //给退款用户的账户余额添加退款 费用

            var result = new ResultModel();

            #region 订单表 状态改成8交易关闭(需要判断订单明细表里的相关产品数据都是已经退款状态)
            var bl = true;//是否把当前订单的状态改成 8已关闭
            SearchReturnProductInfoModel srpm = new SearchReturnProductInfoModel();
            srpm.OrderID    = model.OrderID;
            srpm.PagedIndex = 0;
            srpm.PagedSize  = 100;
            //获取退换货记录和订单明细关联列表
            List <ReturnProductInfoModel> list = GetReturnProductInfoList(srpm).Data;// GetReturnProductInfoOrderDetailsList(srpm).Data;

            //订单明细
            List <OrderDetails> orderDetails = _database.Db.OrderDetails.FindAll(_database.Db.OrderDetails.OrderID == model.OrderID).ToList <OrderDetails>();
            //判断订单详情与退款记录条数是否一致(是一个订单多个商品,还是一个订单一个商品)
            var factoryCount = orderDetails.Count();

            //if (list.Count == factoryCount)
            //{
            //    if (list.Count == 1)
            //    {
            //        ReturnProductInfoModel rpmodel = list[0];//只有一条数据时,订单明细主键和退货数量跟明细数量相等,订单表的状态可以改为 8已关闭

            //        //该订单商品已退完
            //        if (rpmodel.OrderDetailsID == model.OrderDetailsID && rpmodel.ReturntNumber < rpmodel.Quantity)
            //        {
            //            bl = false;
            //        }
            //    }
            //    else
            //    {
            //        for (int i = 0; i < list.Count; i++)
            //        {
            //            ReturnProductInfoModel rpmodel1 = list[i];
            //            //ReturnProductInfoModel returndetail = returnList.Where(x => x.OrderDetailsID == detail.OrderDetailsID).FirstOrDefault();

            //            if ((rpmodel1.OrderDetailsID != model.OrderDetailsID && rpmodel1.IsReturn != 2) || (rpmodel1.OrderDetailsID == model.OrderDetailsID && rpmodel1.ReturntNumber < rpmodel1.Quantity))//状态 2 是已退款
            //            {
            //                //退出循环,不修改订单状态 为 8交易关闭
            //                //该订单还有为退款的商品
            //                bl = false; break;
            //            }
            //        }
            //    }
            //}
            //else
            //{
            //    bl = false;
            //}

            //zhoub 20160129 edit
            if (list.Count > 0)
            {
                //查找当前退款订单产品数量是否全部退完
                ReturnProductInfoModel rpim = list.FindAll(a => a.OrderDetailsID == model.OrderDetailsID).FirstOrDefault();
                if (rpim.ReturntNumber != rpim.Quantity)
                {
                    bl = false;
                }
                //判断之前退款是否有未确认退款或是产品未全部退完的
                for (int i = 0; i < list.Count; i++)
                {
                    ReturnProductInfoModel rpmodel = list[i];
                    if (rpmodel.OrderDetailsID != model.OrderDetailsID)
                    {
                        if (rpmodel.IsReturn != 2 || rpmodel.ReturntNumber != rpmodel.Quantity)
                        {
                            bl = false;
                            break;
                        }
                    }
                }
            }


            #endregion

            using (var tx1 = _database.Db.BeginTransaction())
            {
                try
                {
                    //退款表 修改状态成(5)
                    tx1.ReturnProductInfo.UpdateByReturnOrderID(ReturnOrderID: model.ReturnOrderID, RefundPerson: model.RefundPerson, ReturnStatus: model.ReturnStatus, RefundDate: model.RefundDate);
                    //订单明细表 退货状态 改成 2已退款
                    tx1.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 2);


                    if (bl)
                    {
                        //订单表 订单状态 修改成 8已关闭 (需要判断订单明细表里的相关产品数据都是已经退款状态)
                        tx1.Order.UpdateByOrderID(OrderID: model.OrderID, OrderStatus: 8);
                    }


                    #region 给用户账户充值金额,金额等于退款金额
                    srpm.ReturnOrderID = model.ReturnOrderID;
                    //根据退款主键查询退款单子
                    //List<ReturnProductInfoModel> list1 = GetReturnProductInfoList(srpm).Data;
                    //ReturnProductInfoModel rmodel = list[0];
                    ZJ_UserBalanceModel zjmodel = new ZJ_UserBalanceModel();
                    zjmodel.Account        = model.Account;
                    zjmodel.AddOrCutAmount = model.RefundAmount;
                    zjmodel.AddOrCutType   = 4;
                    zjmodel.CreateBy       = model.RefundPerson;
                    zjmodel.IsDisplay      = 1;
                    zjmodel.Phone          = model.Phone;
                    zjmodel.RealName       = model.RealName;
                    zjmodel.Remark         = "退货中的退款金额";
                    zjmodel.UserID         = model.UserID;
                    zjmodel.OrderNo        = model.OrderID;
                    UpdateZJ_UserBalance(zjmodel, tx1);
                    #endregion


                    tx1.Commit();
                    //订单表 退款标识 修改成 已处理(2)
                    //tx1.Order.UpdateByOrderID(OrderID: model.OrderID, RefundFlag: 2);
                    IsStust(model);
                }
                catch (Exception ex)
                {
                    tx1.Rollback();

                    result.IsValid = false;
                    result.Messages.Add(ex.Message);
                }
            }

            return(result);
        }
 public static ZJ_UserBalance ToEntity(this ZJ_UserBalanceModel model)
 {
     return(Mapper.Map <ZJ_UserBalance>(model));
 }
        /// <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;
            }
        }