示例#1
0
        public bool Add(ParkCarDerate model, DbOperator dbOperator)
        {
            model.DataStatus     = DataStatus.Normal;
            model.LastUpdateTime = DateTime.Now;
            model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

            string strsql = "insert into ParkCarDerate (CarDerateID,CarDerateNo,DerateID,FreeTime,PlateNumber,IORecordID,CardNo,ExpiryTime,CreateTime,Status,FreeMoney,AreaID,PKID,DerateQRCodeID,LastUpdateTime,HaveUpdate,DataStatus)";

            strsql += "values(@CarDerateID,@CarDerateNo,@DerateID,@FreeTime,@PlateNumber,@IORecordID,@CardNo,@ExpiryTime,@CreateTime,@Status,@FreeMoney,@AreaID,@PKID,@DerateQRCodeID,@LastUpdateTime,@HaveUpdate,@DataStatus)";
            dbOperator.ClearParameters();
            dbOperator.AddParameter("CarDerateID", model.CarDerateID);
            dbOperator.AddParameter("CarDerateNo", model.CarDerateNo);
            dbOperator.AddParameter("DerateID", model.DerateID);
            dbOperator.AddParameter("FreeTime", model.FreeTime);
            dbOperator.AddParameter("PlateNumber", model.PlateNumber);
            dbOperator.AddParameter("IORecordID", model.IORecordID);
            dbOperator.AddParameter("CardNo", model.CardNo);
            dbOperator.AddParameter("ExpiryTime", model.ExpiryTime);
            dbOperator.AddParameter("CreateTime", model.CreateTime);
            dbOperator.AddParameter("Status", model.Status);
            dbOperator.AddParameter("FreeMoney", model.FreeMoney);
            dbOperator.AddParameter("AreaID", model.AreaID);
            dbOperator.AddParameter("PKID", model.PKID);
            dbOperator.AddParameter("DerateQRCodeID", model.DerateQRCodeID);
            dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
            dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
            dbOperator.AddParameter("DataStatus", model.DataStatus);
            return(dbOperator.ExecuteNonQuery(strsql) > 0);
        }
示例#2
0
 public bool Update(ParkCarDerate model)
 {
     model.DataStatus     = DataStatus.Normal;
     model.LastUpdateTime = DateTime.Now;
     model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;
     using (DbOperator dbOperator = ConnectionManager.CreateConnection())
     {
         StringBuilder strSql = new StringBuilder();
         strSql.Append("update ParkCarDerate set CarDerateNo=@CarDerateNo,DerateID=@DerateID,FreeTime=@FreeTime,PlateNumber=@PlateNumber,IORecordID=@IORecordID,CardNo=@CardNo,ExpiryTime=@ExpiryTime,Status=@Status");
         strSql.Append(",FreeMoney=@FreeMoney,AreaID=@AreaID,PKID=@PKID,LastUpdateTime=@LastUpdateTime,HaveUpdate=@HaveUpdate  where CarDerateID=@CarDerateID");
         dbOperator.ClearParameters();
         dbOperator.AddParameter("CarDerateID", model.CarDerateID);
         dbOperator.AddParameter("CarDerateNo", model.CarDerateNo);
         dbOperator.AddParameter("DerateID", model.DerateID);
         dbOperator.AddParameter("FreeTime", model.FreeTime);
         dbOperator.AddParameter("PlateNumber", model.PlateNumber);
         dbOperator.AddParameter("IORecordID", model.IORecordID);
         dbOperator.AddParameter("CardNo", model.CardNo);
         dbOperator.AddParameter("ExpiryTime", model.ExpiryTime);
         dbOperator.AddParameter("Status", model.Status);
         dbOperator.AddParameter("FreeMoney", model.FreeMoney);
         dbOperator.AddParameter("AreaID", model.AreaID);
         dbOperator.AddParameter("PKID", model.PKID);
         dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
         dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
         return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
     }
 }
示例#3
0
        public static ParkCarDerate QueryBySellerIdAndIORecordId(string sellerId, string ioRecordId)
        {
            IParkCarDerate factory   = ParkCarDerateFactory.GetFactory();
            ParkCarDerate  carDerate = factory.QueryBySellerIdAndIORecordId(sellerId, ioRecordId);

            return(carDerate);
        }
示例#4
0
        public bool AddCarderate(ParkCarDerate model)
        {
            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                model.DataStatus     = DataStatus.Normal;
                model.LastUpdateTime = DateTime.Now;
                model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

                StringBuilder strSql = new StringBuilder();
                strSql.Append("insert into ParkCarDerate(AreaID,CarDerateID,CarDerateNo,CardNo,CreateTime,DerateID,ExpiryTime,FreeMoney,HaveUpdate,IORecordID,LastUpdateTime,PKID,PlateNumber,Status,FreeTime,DataStatus)");
                strSql.Append(" values(@AreaID,@CarDerateID,@CarDerateNo,@CardNo,@CreateTime,@DerateID,@ExpiryTime,@FreeMoney,@HaveUpdate,@IORecordID,@LastUpdateTime,@PKID,@PlateNumber,@Status,@FreeTime,@DataStatus)");
                dbOperator.ClearParameters();
                dbOperator.AddParameter("AreaID", model.AreaID);
                dbOperator.AddParameter("CarDerateID", model.CarDerateID);
                dbOperator.AddParameter("CarDerateNo", model.CarDerateNo);
                dbOperator.AddParameter("CardNo", model.CardNo);
                dbOperator.AddParameter("CreateTime", model.CreateTime);
                dbOperator.AddParameter("DerateID", model.DerateID);
                dbOperator.AddParameter("ExpiryTime", model.ExpiryTime);
                dbOperator.AddParameter("FreeMoney", model.FreeMoney);
                dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
                dbOperator.AddParameter("IORecordID", model.IORecordID);
                dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
                dbOperator.AddParameter("PKID", model.PKID);
                dbOperator.AddParameter("PlateNumber", model.PlateNumber);
                dbOperator.AddParameter("Status", (int)model.Status);
                dbOperator.AddParameter("FreeTime", model.FreeTime);
                dbOperator.AddParameter("DataStatus", (int)model.DataStatus);
                return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
            }
        }
示例#5
0
        public bool Add(ParkCarDerate model)
        {
            model.DataStatus     = DataStatus.Normal;
            model.LastUpdateTime = DateTime.Now;
            model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                return(Add(model, dbOperator));
            }
        }
示例#6
0
        public static bool ModifyCarderate(ParkCarDerate mode, out string errorMsg)
        {
            if (mode == null)
            {
                throw new ArgumentNullException("mode");
            }

            IParkSeller factory = ParkSellerFactory.GetFactory();

            return(factory.ModifyCarderate(mode, out errorMsg));
        }
示例#7
0
        public static bool AddCarderate(ParkCarDerate mode)
        {
            if (mode == null)
            {
                throw new ArgumentNullException("mode");
            }

            IParkSeller factory = ParkSellerFactory.GetFactory();

            return(factory.AddCarderate(mode));
        }
示例#8
0
        public static bool Add(ParkCarDerate model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }
            if (string.IsNullOrWhiteSpace(model.CarDerateID))
            {
                model.CarDerateID = GuidGenerator.GetGuidString();
            }
            IParkCarDerate factory = ParkCarDerateFactory.GetFactory();

            return(factory.Add(model));
        }
示例#9
0
        public static bool Update(ParkCarDerate model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }
            if (string.IsNullOrWhiteSpace(model.CarDerateID))
            {
                throw new ArgumentNullException("CarDerateID");
            }

            IParkCarDerate factory = ParkCarDerateFactory.GetFactory();

            return(factory.Update(model));
        }
示例#10
0
        public bool ModifyCarderate(ParkCarDerate model, out string errorMsg)
        {
            errorMsg = "";
            try
            {
                using (DbOperator dbOperator = ConnectionManager.CreateConnection())
                {
                    model.LastUpdateTime = DateTime.Now;
                    model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

                    StringBuilder strSql = new StringBuilder();
                    strSql.Append(@"update ParkCarDerate set CarDerateNo=@CarDerateNo,DerateID=@DerateID,FreeTime=@FreeTime,FreeMoney=@FreeMoney,CardNo=@CardNo,
                        IORecordID=@IORecordID, Status=@Status, CreateTime=@CreateTime, ExpiryTime=@ExpiryTime, PKID=@PKID,AreaID=@AreaID,HaveUpdate=@HaveUpdate,DataStatus=@DataStatus,LastUpdateTime=@LastUpdateTime");
                    strSql.Append(" where CarDerateID=@CarDerateID");
                    dbOperator.ClearParameters();
                    dbOperator.AddParameter("CarDerateNo", model.CarDerateNo);
                    dbOperator.AddParameter("CarDerateID", model.CarDerateID);
                    dbOperator.AddParameter("DerateID", model.DerateID);
                    dbOperator.AddParameter("FreeTime", model.FreeTime);
                    dbOperator.AddParameter("FreeMoney", model.FreeMoney);
                    dbOperator.AddParameter("CardNo", model.CardNo);
                    dbOperator.AddParameter("IORecordID", model.IORecordID);
                    dbOperator.AddParameter("Status", (int)model.Status);
                    dbOperator.AddParameter("CreateTime", model.CreateTime);
                    dbOperator.AddParameter("ExpiryTime", model.ExpiryTime);
                    dbOperator.AddParameter("PKID", model.PKID);
                    dbOperator.AddParameter("AreaID", model.AreaID);
                    dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
                    dbOperator.AddParameter("DataStatus", (int)model.DataStatus);
                    dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
                    return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
                }
            }
            catch (Exception e)
            {
                errorMsg = e.Message;
            }
            return(false);
        }
示例#11
0
 public bool Add(ParkCarDerate model, DbOperator dbOperator)
 {
     throw new NotImplementedException();
 }
示例#12
0
 bool IParkCarDerate.Add(ParkCarDerate model)
 {
     throw new NotImplementedException();
 }
示例#13
0
 public bool Update(ParkCarDerate model)
 {
     throw new NotImplementedException();
 }
示例#14
0
 public ParkCarDerate Add(ParkCarDerate model)
 {
     throw new NotImplementedException();
 }
示例#15
0
        public static bool QRCodeDiscount(string sellerId, string derateId, string carDerateId, string parkingId, string ioRecordId, string plateNumber)
        {
            if (string.IsNullOrWhiteSpace(sellerId))
            {
                throw new ArgumentNullException("sellerId");
            }
            if (string.IsNullOrWhiteSpace(derateId))
            {
                throw new ArgumentNullException("derateId");
            }
            if (string.IsNullOrWhiteSpace(carDerateId))
            {
                throw new ArgumentNullException("carDerateId");
            }
            if (string.IsNullOrWhiteSpace(parkingId))
            {
                throw new ArgumentNullException("parkingId");
            }
            if (string.IsNullOrWhiteSpace(plateNumber))
            {
                throw new ArgumentNullException("plateNumber");
            }

            List <ParkCarDerate> carDerates = ParkCarDerateServices.QueryByDerateId(carDerateId);

            if (carDerates == null || carDerates.Count == 0)
            {
                throw new MyException("该优免券不存在");
            }
            if (!string.IsNullOrWhiteSpace(carDerates.First().PlateNumber))
            {
                throw new MyException("该优免券已使用过了[001]");
            }
            if (carDerates.First().Status == CarDerateStatus.Settlementd)
            {
                throw new MyException("该优免券已使用过了[002]");
            }
            if (carDerates.First().Status != CarDerateStatus.Used)
            {
                throw new MyException("该优免券不是有效状态");
            }

            IParkCarDerate factory   = ParkCarDerateFactory.GetFactory();
            ParkCarDerate  carDerate = factory.QueryBySellerIdAndIORecordId(sellerId, ioRecordId);

            if (carDerate != null)
            {
                throw new MyException("该车辆已优免了");
            }

            ParkDerate derate = ParkDerateServices.Query(derateId);

            if (derate == null)
            {
                throw new MyException("找不到优免规则");
            }

            ParkSeller seller = ParkSellerServices.QueryBySellerId(derate.SellerID);

            if (seller == null)
            {
                throw new MyException("找不到商家信息");
            }

            return(factory.QRCodeDiscount(carDerateId, parkingId, ioRecordId, plateNumber));
        }
示例#16
0
        /// <summary>
        /// 下发有免费券
        /// </summary>
        /// <param name="carDerateIds"></param>
        /// <param name="qrCodeZipFilePath">压缩二维码的文件路径</param>
        /// <param name="qrCodeId"></param>
        /// <returns></returns>
        public static bool GrantCarDerate(List <string> carDerateIds, string qrCodeZipFilePath, string qrCodeId)
        {
            if (carDerateIds == null || carDerateIds.Count == 0)
            {
                throw new ArgumentNullException("carDerateIds");
            }
            if (string.IsNullOrWhiteSpace(qrCodeZipFilePath))
            {
                throw new ArgumentNullException("qrCodeFilePath");
            }

            string absolutePath = System.Web.HttpContext.Current.Server.MapPath("~/");
            string s            = string.Format("{0}{1}", absolutePath, qrCodeZipFilePath);

            if (!File.Exists(s))
            {
                throw new MyException("压缩二维码的文件不存在");
            }

            IParkDerateQRcode factory = ParkDerateQRcodeFactory.GetFactory();
            ParkDerateQRcode  qrCode  = factory.QueryByRecordId(qrCodeId);

            if (qrCode == null)
            {
                throw new MyException("优免券规则不存在");
            }

            if (qrCode.EndTime < DateTime.Now)
            {
                throw new MyException("该优免券规则已过期");
            }

            ParkDerate derate = ParkDerateServices.Query(qrCode.DerateID);

            if (derate == null)
            {
                throw new MyException("获取优免规则失败");
            }

            decimal totalAmount = 0;

            if (derate.DerateType == DerateType.SpecialTimePeriodPayment)
            {
                string     errorMsg = string.Empty;
                ParkSeller seller   = ParkSellerServices.GetSeller(derate.SellerID, out errorMsg);
                if (derate == null)
                {
                    throw new MyException("获取优免规则失败");
                }

                totalAmount = qrCode.DerateValue * carDerateIds.Count;
                if ((seller.Creditline + seller.Balance) < totalAmount)
                {
                    throw new MyException("商家余额不足");
                }
            }

            List <ParkCarDerate> carDerates = new List <ParkCarDerate>();

            foreach (var item in carDerateIds)
            {
                ParkCarDerate model = new ParkCarDerate();
                model.CarDerateID = item;
                model.CarDerateNo = IdGenerator.Instance.GetId().ToString();
                model.DerateID    = qrCode.DerateID;
                model.PlateNumber = "";
                model.AreaID      = "";
                model.PKID        = qrCode.PKID;
                if (derate.DerateType != DerateType.ReliefTime && derate.DerateType != DerateType.VotePayment && derate.DerateType != DerateType.DayFree)
                {
                    model.FreeMoney = qrCode.DerateValue;
                }
                else if (derate.DerateType == DerateType.DayFree)
                {
                    model.FreeMoney = qrCode.DerateValue * derate.DerateMoney;
                }
                else
                {
                    model.FreeTime = (int)qrCode.DerateValue;
                }
                model.Status         = CarDerateStatus.Used;
                model.CreateTime     = DateTime.Now;
                model.ExpiryTime     = qrCode.EndTime;
                model.DerateQRCodeID = qrCode.RecordID;
                carDerates.Add(model);
            }
            IParkCarDerate factoryCarDerate = ParkCarDerateFactory.GetFactory();

            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                try
                {
                    dbOperator.BeginTransaction();
                    //添加券
                    foreach (var item in carDerates)
                    {
                        bool result = factoryCarDerate.Add(item, dbOperator);
                        if (!result)
                        {
                            throw new MyException("发券失败");
                        }
                    }
                    //修改发放总张数据,修改最后压缩包路径
                    int  totalNumbers = qrCode.CanUseTimes + carDerateIds.Count;
                    bool updateResult = factory.Update(qrCodeId, qrCodeZipFilePath, totalNumbers, dbOperator);
                    if (!updateResult)
                    {
                        throw new MyException("修改券总数失败");
                    }

                    //商家扣款
                    if (totalAmount > 0)
                    {
                        IParkSeller factorySeller = ParkSellerFactory.GetFactory();
                        updateResult = factorySeller.SellerDebit(derate.SellerID, totalAmount, dbOperator);
                        if (!updateResult)
                        {
                            throw new MyException("商家扣款失败");
                        }
                    }
                    dbOperator.CommitTransaction();
                    return(true);
                }
                catch
                {
                    dbOperator.RollbackTransaction();
                    throw;
                }
            }
        }
示例#17
0
        /// <summary>
        /// 消费打折
        /// </summary>
        /// <param name="IORecordID"></param>
        /// <param name="DerateID"></param>
        /// <param name="VID"></param>
        /// <param name="SellerID"></param>
        /// <param name="DerateMoney"></param>
        /// <returns></returns>
        public static string DiscountPlateNumber(string IORecordID, string DerateID, string VID, string SellerID, decimal DerateMoney)
        {
            ConsumerDiscountResult result = new ConsumerDiscountResult();

            try
            {
                using (DbOperator dbOperator = ConnectionManager.CreateReadConnection())
                {
                    ParkIORecord IOmodel = null;
                    string       strsql  = "select * from ParkIORecord where RecordID=@RecordID and DataStatus<2";
                    dbOperator.ClearParameters();
                    dbOperator.AddParameter("RecordID", IORecordID);
                    using (DbDataReader reader = dbOperator.ExecuteReader(strsql.ToString()))
                    {
                        if (reader.Read())
                        {
                            IOmodel = DataReaderToModel <ParkIORecord> .ToModel(reader);
                        }
                    }
                    if (IOmodel != null)
                    {
                        if (IOmodel.IsExit)
                        {
                            result.Result = 3;

                            return(JsonHelper.GetJsonString(result));//车辆已出场
                        }

                        strsql = "select a.*,b.SellerID from ParkCarDerate a left join ParkDerate b on a.DerateID=b.DerateID where IORecordID=@IORecordID and b.SellerID=@SellerID  and a.DataStatus<2  and Status!=3";
                        dbOperator.ClearParameters();
                        dbOperator.AddParameter("IORecordID", IORecordID);
                        dbOperator.AddParameter("SellerID", SellerID);
                        using (DbDataReader reader = dbOperator.ExecuteReader(strsql.ToString()))
                        {
                            if (reader.Read())
                            {
                                result.Result = 4;
                                return(JsonHelper.GetJsonString(result));//已打折
                            }
                        }
                        ParkDerate derate = null;
                        strsql = "select * from ParkDerate where DataStatus<2 and DerateID=@DerateID";
                        dbOperator.ClearParameters();
                        dbOperator.AddParameter("DerateID", DerateID);
                        using (DbDataReader reader = dbOperator.ExecuteReader(strsql.ToString()))
                        {
                            if (reader.Read())
                            {
                                derate = DataReaderToModel <ParkDerate> .ToModel(reader);
                            }
                            else
                            {
                                result.Result = 5;
                                return(JsonHelper.GetJsonString(result));//找不到优免规则
                            }
                        }

                        ParkSeller seller = null;
                        strsql = "select * from ParkSeller where DataStatus<2 and SellerID=@SellerID";
                        dbOperator.ClearParameters();
                        dbOperator.AddParameter("SellerID", SellerID);
                        using (DbDataReader reader = dbOperator.ExecuteReader(strsql.ToString()))
                        {
                            if (reader.Read())
                            {
                                seller = DataReaderToModel <ParkSeller> .ToModel(reader);
                            }
                            else
                            {
                                result.Result = 6;
                                return(JsonHelper.GetJsonString(result));//找不到商家信息
                            }
                        }

                        decimal SumFreeMoney = 0;
                        strsql = "select SUM(FreeMoney) as SumFreeMoney from ParkCarDerate a left join ParkDerate b on a.DerateID=b.DerateID  where a.DataStatus<2 and a.Status=1 and b.SellerID=@SellerID ";
                        dbOperator.ClearParameters();
                        dbOperator.AddParameter("SellerID", SellerID);
                        using (DbDataReader reader = dbOperator.ExecuteReader(strsql.ToString()))
                        {
                            if (reader.Read())
                            {
                                SumFreeMoney = reader["SumFreeMoney"].ToDecimal();
                            }
                        }

                        if (derate.DerateType == DerateType.TimesPayment || derate.DerateType == DerateType.TimePeriodAndTimesPayment)
                        {
                            DerateMoney = (decimal)derate.DerateMoney;
                        }
                        if (derate.DerateType != DerateType.ReliefTime && derate.DerateType != DerateType.VotePayment && derate.DerateType != DerateType.DayFree)
                        {
                            if (seller.Balance + seller.Creditline < DerateMoney + SumFreeMoney)
                            {
                                result.Result = 7;
                                return(JsonHelper.GetJsonString(result));//商家余额不足
                            }
                        }
                        else if (derate.DerateType == DerateType.DayFree)
                        {
                            if (seller.Balance + seller.Creditline < (DerateMoney * derate.DerateMoney) + SumFreeMoney)
                            {
                                result.Result = 7;
                                return(JsonHelper.GetJsonString(result));//商家余额不足
                            }
                        }

                        ParkCarDerate Carderate = new ParkCarDerate();
                        Carderate.AreaID      = IOmodel.AreaID;
                        Carderate.CarDerateID = System.Guid.NewGuid().ToString();
                        Carderate.CarDerateNo = IdGenerator.Instance.GetId().ToString();
                        Carderate.CardNo      = IOmodel.CardNo;
                        Carderate.CreateTime  = DateTime.Now;
                        Carderate.DerateID    = DerateID;
                        Carderate.ExpiryTime  = DateTime.Now.AddDays(7);
                        Carderate.Status      = CarDerateStatus.Used;
                        if (derate.DerateType != DerateType.ReliefTime && derate.DerateType != DerateType.VotePayment && derate.DerateType != DerateType.DayFree)
                        {
                            Carderate.FreeMoney = DerateMoney;
                        }
                        else if (derate.DerateType == DerateType.DayFree)
                        {
                            Carderate.FreeMoney  = DerateMoney * derate.DerateMoney;
                            Carderate.ExpiryTime = IOmodel.EntranceTime.AddDays((int)DerateMoney);
                        }
                        else
                        {
                            Carderate.FreeTime = (int)DerateMoney;
                        }


                        Carderate.IORecordID  = IOmodel.RecordID;
                        Carderate.HaveUpdate  = 1;
                        Carderate.PKID        = IOmodel.ParkingID;
                        Carderate.PlateNumber = IOmodel.PlateNumber;
                        Carderate.DataStatus  = 0;

                        Carderate.LastUpdateTime = DateTime.Now;
                        dbOperator.BeginTransaction();
                        strsql  = "insert into ParkCarDerate (CarDerateID,CarDerateNo,DerateID,FreeTime,PlateNumber,IORecordID,CardNo,ExpiryTime,CreateTime,Status,FreeMoney,AreaID,PKID,LastUpdateTime,HaveUpdate,DataStatus)";
                        strsql += "values(@CarDerateID,@CarDerateNo,@DerateID,@FreeTime,@PlateNumber,@IORecordID,@CardNo,@ExpiryTime,@CreateTime,@Status,@FreeMoney,@AreaID,@PKID,@LastUpdateTime,@HaveUpdate,@DataStatus)";
                        dbOperator.ClearParameters();
                        dbOperator.AddParameter("CarDerateID", Carderate.CarDerateID);

                        dbOperator.AddParameter("CarDerateNo", Carderate.CarDerateNo);
                        dbOperator.AddParameter("DerateID", Carderate.DerateID);
                        dbOperator.AddParameter("FreeTime", Carderate.FreeTime);
                        dbOperator.AddParameter("PlateNumber", Carderate.PlateNumber);
                        dbOperator.AddParameter("IORecordID", Carderate.IORecordID);
                        dbOperator.AddParameter("CardNo", Carderate.CardNo);
                        dbOperator.AddParameter("ExpiryTime", Carderate.ExpiryTime);
                        dbOperator.AddParameter("CreateTime", Carderate.CreateTime);
                        dbOperator.AddParameter("Status", Carderate.Status);
                        dbOperator.AddParameter("FreeMoney", Carderate.FreeMoney);

                        dbOperator.AddParameter("AreaID", Carderate.AreaID);
                        dbOperator.AddParameter("PKID", Carderate.PKID);
                        dbOperator.AddParameter("LastUpdateTime", Carderate.LastUpdateTime);
                        dbOperator.AddParameter("HaveUpdate", Carderate.HaveUpdate);
                        dbOperator.AddParameter("DataStatus", Carderate.DataStatus);
                        if (dbOperator.ExecuteNonQuery(strsql) <= 0)
                        {
                            dbOperator.RollbackTransaction();
                            result.Result = 8;
                            return(JsonHelper.GetJsonString(result));//打折失败
                        }
                        if (derate.DerateType == DerateType.DayFree)
                        {
                            strsql = "update ParkSeller set Balance=Balance-" + Carderate.FreeMoney + "where SellerID=@SellerID";
                            dbOperator.ClearParameters();
                            dbOperator.AddParameter("SellerID", seller.SellerID);
                            if (dbOperator.ExecuteNonQuery(strsql) <= 0)
                            {
                                dbOperator.RollbackTransaction();
                                result.Result = 8;
                                return(JsonHelper.GetJsonString(result));//打折失败
                            }
                        }
                        dbOperator.CommitTransaction();
                        result.Result   = 1;
                        result.ResModel = Carderate;
                        return(JsonHelper.GetJsonString(result));
                    }
                    else
                    {
                        result.Result = 2;
                        return(JsonHelper.GetJsonString(result));//找不到进出记录信息
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Fatal("消费打折回调异常!DiscountPlateNumberCallback()" + ex.Message + "\r\n");
                result.Result = -1;
                return(JsonHelper.GetJsonString(result));//异常
            }
        }