Пример #1
0
        public static bool Update(BaseParkinfo model, bool addlog = true)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }
            if (string.IsNullOrWhiteSpace(model.PKNo))
            {
                throw new MyException("车场编号不能为空");
            }

            IParking     factory = ParkingFactory.GetFactory();
            BaseParkinfo park    = factory.QueryParkingByParkingNo(model.PKNo);

            if (park != null && park.PKID != model.PKID)
            {
                throw new MyException("车场编号不能重复");
            }

            bool result = factory.Update(model);

            if (result && addlog)
            {
                OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Update);
            }
            return(result);
        }
Пример #2
0
        public JsonResult DownloadQRCode(string gateId, int size)
        {
            try
            {
                List <int> dics = new List <int>();
                dics.Add(258);
                dics.Add(344);
                dics.Add(430);
                dics.Add(860);
                dics.Add(1280);

                List <string> imgs = new List <string>();
                ParkGate      gate = ParkGateServices.QueryByRecordId(gateId);
                if (gate == null)
                {
                    throw new MyException("获取通道信息失败");
                }
                BaseCompany company = CompanyServices.QueryByBoxID(gate.BoxID);
                if (company == null)
                {
                    throw new MyException("获取单位信息失败");
                }

                ParkBox box = ParkBoxServices.QueryByRecordId(gate.BoxID);
                if (box == null)
                {
                    throw new MyException("获取岗亭信息失败");
                }

                ParkArea area = ParkAreaServices.QueryByRecordId(box.AreaID);
                if (area == null)
                {
                    throw new MyException("获取区域信息失败");
                }

                BaseParkinfo parking = ParkingServices.QueryParkingByParkingID(area.PKID);
                if (parking == null)
                {
                    throw new MyException("获取车场信息失败");
                }
                string content = string.Format("{0}/qrl/scio_ix_pid={1}^io={2}", SystemDefaultConfig.SystemDomain, parking.PKID, gate.GateID);
                foreach (var item in dics)
                {
                    string parkingName = string.Format("{0}_{1}_{2}_{3}_{4}", parking.PKName, area.AreaName, box.BoxName, gate.GateName, item);
                    string result      = QRCodeServices.GenerateQRCode(company.CPID, content, item, parkingName);
                    imgs.Add(item.ToString() + "|" + result);
                }

                return(Json(MyResult.Success("", imgs)));
            }
            catch (MyException ex)
            {
                return(Json(MyResult.Error(ex.Message)));
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "下载二维码失败");
                return(Json(MyResult.Error("下载二维码失败")));
            }
        }
Пример #3
0
        /// <summary>
        /// 车牌前缀查询
        /// </summary>
        /// <param name="paras">输入参数</param>
        /// <returns></returns>
        public static List <PlateNumberPrefixModel> Search_PlateNumberPrefix(InParams paras)
        {
            List <PlateNumberPrefixModel> iorecordlist = new List <PlateNumberPrefixModel>();
            IStatistics factory = StatisticsFactory.GetFactory();

            iorecordlist = factory.Search_PlateNumberPrefix(paras);

            BaseParkinfo park  = Common.Services.ParkingServices.QueryParkingByParkingID(paras.ParkingID);
            int          total = 0;

            //处理数据
            if (iorecordlist != null && iorecordlist.Count > 0)
            {
                total = iorecordlist.Select(u => u.Number).Sum();
                foreach (var record in iorecordlist)
                {
                    if (park != null)
                    {
                        record.ParkingName = park.PKName;
                    }
                    record.Rate = ((record.Number / (total * 1.0)) * 100).ToString("0.00") + "%";
                }
            }
            return(iorecordlist);
        }
Пример #4
0
 public bool Add(BaseParkinfo model)
 {
     using (DbOperator dbOperator = ConnectionManager.CreateConnection())
     {
         return(Add(model, dbOperator));
     }
 }
Пример #5
0
 public JsonResult SaveParking(BaseParkinfo model)
 {
     try
     {
         bool result = false;
         if (string.IsNullOrWhiteSpace(model.PKID))
         {
             result = ParkingServices.Add(model);
         }
         else
         {
             result = ParkingServices.Update(model);
         }
         if (!result)
         {
             throw new MyException("保存失败");
         }
         return(Json(MyResult.Success()));
     }
     catch (MyException ex) {
         return(Json(MyResult.Error(ex.Message)));
     }
     catch (Exception ex)
     {
         ExceptionsServices.AddExceptions(ex, "保存车场信息失败");
         return(Json(MyResult.Error("保存失败")));
     }
 }
Пример #6
0
        public JsonResult SaveConfig(BaseParkinfo model)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(model.PKID))
                {
                    throw new MyException("获取配置编号失败");
                }

                bool result = ParkingServices.UpdateParkSettleConfig(model);
                if (!result)
                {
                    throw new MyException("保存失败");
                }
                return(Json(MyResult.Success()));
            }
            catch (MyException ex)
            {
                return(Json(MyResult.Error(ex.Message)));
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "保存结算信息失败");
                return(Json(MyResult.Error("保存失败")));
            }
        }
Пример #7
0
        public bool Add(BaseParkinfo model, DbOperator dbOperator)
        {
            model.DataStatus     = DataStatus.Normal;
            model.LastUpdateTime = DateTime.Now;
            model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into BaseParkinfo(PKID,PKNo,PKName,CarBitNum,CarBitNumLeft,CarBitNumFixed,SpaceBitNum");
            strSql.Append(",CenterTime,AllowLoseDisplay,LinkMan,Mobile,Address,Coordinate,MobilePay");
            strSql.Append(",MobileLock,IsParkingSpace,IsReverseSeekingVehicle,FeeRemark,OnLine,Remark");
            strSql.Append(",LastUpdateTime,HaveUpdate,CityID,VID,DataStatus,DataSaveDays,PictureSaveDays,IsOnLineGathe,IsLine,NeedFee,ExpiredAdvanceRemindDay,DefaultPlate,PoliceFree,UnconfirmedCalculation,IsNoPlateConfirm,SupportAutoRefund,OuterringCharge,SupportNoSense)");
            strSql.Append(" values(@PKID,@PKNo,@PKName,@CarBitNum,@CarBitNumLeft,@CarBitNumFixed,@SpaceBitNum");
            strSql.Append(",@CenterTime,@AllowLoseDisplay,@LinkMan,@Mobile,@Address,@Coordinate,@MobilePay");
            strSql.Append(",@MobileLock,@IsParkingSpace,@IsReverseSeekingVehicle,@FeeRemark,@OnLine,@Remark");
            strSql.Append(",@LastUpdateTime,@HaveUpdate,@CityID,@VID,@DataStatus,@DataSaveDays,@PictureSaveDays");
            strSql.Append(",@IsOnLineGathe,@IsLine,@NeedFee,@ExpiredAdvanceRemindDay,@DefaultPlate,@PoliceFree,@UnconfirmedCalculation,@IsNoPlateConfirm,@SupportAutoRefund,@OuterringCharge,@SupportNoSense)");
            dbOperator.ClearParameters();
            dbOperator.AddParameter("PKID", model.PKID);
            dbOperator.AddParameter("PKNo", model.PKNo);
            dbOperator.AddParameter("PKName", model.PKName);
            dbOperator.AddParameter("CarBitNum", model.CarBitNum);
            dbOperator.AddParameter("CarBitNumLeft", model.CarBitNumLeft);
            dbOperator.AddParameter("CarBitNumFixed", model.CarBitNumFixed);
            dbOperator.AddParameter("SpaceBitNum", model.SpaceBitNum);
            dbOperator.AddParameter("CenterTime", model.CenterTime);
            dbOperator.AddParameter("AllowLoseDisplay", (int)model.AllowLoseDisplay);
            dbOperator.AddParameter("LinkMan", model.LinkMan);
            dbOperator.AddParameter("Mobile", model.Mobile);
            dbOperator.AddParameter("Address", model.Address);
            dbOperator.AddParameter("Coordinate", model.Coordinate);
            dbOperator.AddParameter("MobilePay", (int)model.MobilePay);
            dbOperator.AddParameter("MobileLock", (int)model.MobileLock);
            dbOperator.AddParameter("IsParkingSpace", (int)model.IsParkingSpace);
            dbOperator.AddParameter("IsReverseSeekingVehicle", (int)model.IsReverseSeekingVehicle);
            dbOperator.AddParameter("FeeRemark", model.FeeRemark);
            dbOperator.AddParameter("OnLine", (int)model.OnLine);
            dbOperator.AddParameter("Remark", model.Remark);
            dbOperator.AddParameter("CityID", model.CityID);
            dbOperator.AddParameter("VID", model.VID);
            dbOperator.AddParameter("DataSaveDays", model.DataSaveDays);
            dbOperator.AddParameter("PictureSaveDays", model.PictureSaveDays);
            dbOperator.AddParameter("IsOnLineGathe", (int)model.IsOnLineGathe);
            dbOperator.AddParameter("IsLine", (int)model.IsLine);
            dbOperator.AddParameter("NeedFee", (int)model.NeedFee);
            dbOperator.AddParameter("ExpiredAdvanceRemindDay", model.ExpiredAdvanceRemindDay);
            dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
            dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
            dbOperator.AddParameter("DataStatus", (int)model.DataStatus);
            dbOperator.AddParameter("DefaultPlate", model.DefaultPlate);
            dbOperator.AddParameter("PoliceFree", model.PoliceFree);
            dbOperator.AddParameter("UnconfirmedCalculation", model.UnconfirmedCalculation);
            dbOperator.AddParameter("IsNoPlateConfirm", model.IsNoPlateConfirm);
            dbOperator.AddParameter("SupportAutoRefund", model.SupportAutoRefund);
            dbOperator.AddParameter("OuterringCharge", model.OuterringCharge);
            dbOperator.AddParameter("SupportNoSense", model.SupportNoSense);

            return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
        }
Пример #8
0
        //根据人员和车场信息 下载二维码
        public JsonResult DownloadQRCode(string parkingId, string personId, int size)
        {
            try
            {
                List <int> dics = new List <int>();
                dics.Add(258);
                dics.Add(344);
                dics.Add(430);
                dics.Add(860);
                dics.Add(1280);

                List <string> imgs = new List <string>();
                //if (string.IsNullOrWhiteSpace(SystemDefaultConfig.SystemDomain))
                //{
                //    throw new MyException("获取系统域名失败");
                //}
                BaseParkinfo parking = ParkingServices.QueryParkingByParkingID(parkingId);
                if (parking == null)
                {
                    throw new MyException("获取车场信息失败");
                }

                BaseVillage village = VillageServices.QueryVillageByRecordId(parking.VID);
                if (village == null)
                {
                    throw new MyException("获取小区信息失败");
                }
                //string url = SystemDefaultConfig.SystemDomain;
                string url     = "http://spscs.spsing.cn";
                string content = string.Format("{0}/qrl/qrp_ix_pid={1}^personId={2}", url, parkingId.Trim(), personId);
                foreach (var item in dics)
                {
                    try
                    {
                        string parkingName = string.Format("{0}_{1}", parking.PKName, item);
                        string result      = QRCodeServices.GenerateQRCode(village.CPID, content, item, parkingName);
                        imgs.Add(item.ToString() + "|" + result);
                        TxtLogServices.WriteTxtLogEx("DownloadQRCode", item.ToString() + "|" + result);
                    }
                    catch (Exception ex)
                    {
                        ExceptionsServices.AddExceptions(ex, "生存车场二维码失败");
                        imgs.Add(item.ToString() + "|");
                    }
                }

                return(Json(MyResult.Success("", imgs)));
            }
            catch (MyException ex)
            {
                return(Json(MyResult.Error(ex.Message)));
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "下载二维码失败");
                return(Json(MyResult.Error("下载二维码失败")));
            }
        }
Пример #9
0
        public static bool Add(BaseParkinfo model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }
            if (string.IsNullOrWhiteSpace(model.PKNo))
            {
                throw new MyException("车场编号不能为空");
            }

            IParking     factory = ParkingFactory.GetFactory();
            BaseParkinfo park    = factory.QueryParkingByParkingNo(model.PKNo);

            if (park != null)
            {
                throw new MyException("车场编号不能重复");
            }

            model.PKID = GuidGenerator.GetGuidString();

            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                try
                {
                    dbOperator.BeginTransaction();
                    bool result = factory.Add(model, dbOperator);
                    if (!result)
                    {
                        throw new MyException("添加车场信息失败");
                    }

                    result = ParkCarModelServices.AddDefault(model.PKID, dbOperator);
                    if (!result)
                    {
                        throw new MyException("添加车型失败");
                    }

                    result = ParkCarTypeServices.AddDefault(model.PKID, dbOperator);
                    if (!result)
                    {
                        throw new MyException("添加车类型失败");
                    }
                    dbOperator.CommitTransaction();
                    if (result)
                    {
                        OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Add);
                    }
                    return(true);
                }
                catch
                {
                    dbOperator.RollbackTransaction();
                    throw;
                }
            }
        }
Пример #10
0
        public bool Update(BaseParkinfo model)
        {
            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                model.LastUpdateTime = DateTime.Now;
                model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

                StringBuilder strSql = new StringBuilder();
                strSql.Append("update BaseParkinfo set PKNo=@PKNo,PKName=@PKName");
                strSql.Append(",CenterTime=@CenterTime,AllowLoseDisplay=@AllowLoseDisplay,LinkMan=@LinkMan,Mobile=@Mobile,Address=@Address,Coordinate=@Coordinate,MobilePay=@MobilePay");
                strSql.Append(",MobileLock=@MobileLock,IsParkingSpace=@IsParkingSpace,IsReverseSeekingVehicle=@IsReverseSeekingVehicle,FeeRemark=@FeeRemark,OnLine=@OnLine,Remark=@Remark");
                strSql.Append(",LastUpdateTime=@LastUpdateTime,HaveUpdate=@HaveUpdate,CityID=@CityID,VID=@VID,DataSaveDays=@DataSaveDays,PictureSaveDays=@PictureSaveDays,PoliceFree=@PoliceFree");
                strSql.Append(",IsOnLineGathe=@IsOnLineGathe,IsLine=@IsLine,NeedFee=@NeedFee,ExpiredAdvanceRemindDay=@ExpiredAdvanceRemindDay,DefaultPlate=@DefaultPlate,SpaceBitNum=@SpaceBitNum");
                strSql.Append(",CarBitNumFixed=@CarBitNumFixed,CarBitNumLeft=@CarBitNumLeft,OnlineDiscount=@OnlineDiscount,IsOnlineDiscount=@IsOnlineDiscount,UnconfirmedCalculation=@UnconfirmedCalculation,IsNoPlateConfirm=@IsNoPlateConfirm,SupportAutoRefund=@SupportAutoRefund,OuterringCharge=@OuterringCharge where  PKID=@PKID");
                dbOperator.ClearParameters();
                dbOperator.AddParameter("PKID", model.PKID);
                dbOperator.AddParameter("PKNo", model.PKNo);
                dbOperator.AddParameter("PKName", model.PKName);
                dbOperator.AddParameter("CenterTime", model.CenterTime);
                dbOperator.AddParameter("AllowLoseDisplay", (int)model.AllowLoseDisplay);
                dbOperator.AddParameter("LinkMan", model.LinkMan);
                dbOperator.AddParameter("Mobile", model.Mobile);
                dbOperator.AddParameter("Address", model.Address);
                dbOperator.AddParameter("Coordinate", model.Coordinate);
                dbOperator.AddParameter("MobilePay", (int)model.MobilePay);
                dbOperator.AddParameter("MobileLock", (int)model.MobileLock);
                dbOperator.AddParameter("IsParkingSpace", (int)model.IsParkingSpace);
                dbOperator.AddParameter("IsReverseSeekingVehicle", (int)model.IsReverseSeekingVehicle);
                dbOperator.AddParameter("FeeRemark", model.FeeRemark);
                dbOperator.AddParameter("OnLine", (int)model.OnLine);
                dbOperator.AddParameter("Remark", model.Remark);
                dbOperator.AddParameter("CityID", model.CityID);
                dbOperator.AddParameter("VID", model.VID);
                dbOperator.AddParameter("DataSaveDays", model.DataSaveDays);
                dbOperator.AddParameter("PictureSaveDays", model.PictureSaveDays);
                dbOperator.AddParameter("IsOnLineGathe", (int)model.IsOnLineGathe);
                dbOperator.AddParameter("IsLine", (int)model.IsLine);
                dbOperator.AddParameter("NeedFee", (int)model.NeedFee);
                dbOperator.AddParameter("ExpiredAdvanceRemindDay", model.ExpiredAdvanceRemindDay);
                dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
                dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
                dbOperator.AddParameter("DefaultPlate", model.DefaultPlate);
                dbOperator.AddParameter("SpaceBitNum", model.SpaceBitNum);
                dbOperator.AddParameter("CarBitNumFixed", model.CarBitNumFixed);
                dbOperator.AddParameter("CarBitNumLeft", model.CarBitNumLeft);
                dbOperator.AddParameter("PoliceFree", model.PoliceFree);
                dbOperator.AddParameter("OnlineDiscount", model.OnlineDiscount);
                dbOperator.AddParameter("IsOnlineDiscount", model.IsOnlineDiscount);
                dbOperator.AddParameter("UnconfirmedCalculation", model.UnconfirmedCalculation);
                dbOperator.AddParameter("IsNoPlateConfirm", model.IsNoPlateConfirm);
                dbOperator.AddParameter("SupportAutoRefund", model.SupportAutoRefund);
                dbOperator.AddParameter("OuterringCharge", model.OuterringCharge);

                return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
            }
        }
Пример #11
0
        /// <summary>
        /// 修改车场结算配置
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool UpdateParkSettleConfig(BaseParkinfo model)
        {
            IParking factory = ParkingFactory.GetFactory();
            bool     result  = factory.UpdateParkSettleConfig(model);

            if (result)
            {
                OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Update);
            }
            return(result);
        }
Пример #12
0
 private string GetParkingName(string parkingId)
 {
     try
     {
         BaseParkinfo model = ParkingServices.QueryParkingByParkingID(parkingId);
         if (model != null)
         {
             return(model.PKName);
         }
         return(string.Empty);
     }
     catch (Exception ex)
     {
         ExceptionsServices.AddExceptionToDbAndTxt("AliPay_Error", "获取车场名称失败", ex);
         return(string.Empty);
     }
 }
Пример #13
0
        public ActionResult SaveBooking(string plateNo, string parkingId, string areaId, DateTime startTime, DateTime endTime)
        {
            try
            {
                WXReserveBitResult result = PkBitBookingServices.WXReservePKBit(WeiXinUser.AccountID, string.Empty, parkingId, areaId, plateNo, startTime, endTime);
                if (result.code == 0)
                {
                    if (parkingId != result.Order.PKID)
                    {
                        throw new MyException("车场编号不一致");
                    }

                    BaseParkinfo parking = ParkingServices.QueryParkingByParkingID(parkingId);
                    if (parking == null)
                    {
                        throw new MyException("获取车场信息失败");
                    }
                    ViewBag.ParkingName = parking.PKName;

                    ParkArea area = ParkAreaServices.QueryByRecordId(areaId);
                    if (area == null)
                    {
                        throw new MyException("获取区域信息失败");
                    }
                    ViewBag.AreaName  = area.AreaName;
                    ViewBag.PlateNo   = plateNo;
                    ViewBag.StartTime = startTime.ToString("yyyy-MM-dd HH:mm:ss");
                    ViewBag.EndTime   = endTime.ToString("yyyy-MM-dd HH:mm:ss");
                    ViewBag.AreaId    = areaId;
                    return(View(result));
                }
                if (result.code == 1)
                {
                    throw new MyException("您已经预约过了,请勿重复预约");
                }
                throw new MyException("预约失败[" + result.message + "]");
            }
            catch (MyException ex) {
                return(PageAlert("Index", "ParkBitBooking", new { RemindUserContent = ex.Message }));
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptionToDbAndTxt("WeiXinWeb", "预约失败", ex, LogFrom.WeiXin);
                return(PageAlert("Index", "ParkBitBooking", new { RemindUserContent = "预约失败!" }));
            }
        }
Пример #14
0
        public static BaseCard GenerateCardModel(BaseParkinfo parking, BaseEmployee employee, EmployeePlate plate, string loginUserRecordId)
        {
            BaseCard model = new BaseCard();

            model.CardID   = GuidGenerator.GetGuidString();
            model.CardNo   = plate.PlateNo;
            model.CardNumb = model.CardNo;
            model.VID      = parking.VID;

            BaseCard oldCard = BaseCardServices.QueryBaseCardByParkingId(parking.PKID, model.CardNo);

            if (oldCard != null)
            {
                model.CardID = oldCard.CardID;
                if (oldCard != null && oldCard.CardID != model.CardID)
                {
                    throw new MyException("车牌号已存在,不能重复添加");
                }

                string errorMsg = string.Empty;
                model = BaseCardServices.GetBaseCard(model.CardID, out errorMsg);
                if (model == null || !string.IsNullOrWhiteSpace(errorMsg))
                {
                    throw new MyException("获取卡信息失败");
                }

                model.CardNo   = plate.PlateNo;
                model.CardNumb = model.CardNo;
                model.VID      = parking.VID;
            }
            else
            {
                if (oldCard != null)
                {
                    throw new MyException("车牌号已存在,不能重复添加");
                }
                model.RegisterTime = DateTime.Now;
            }

            model.OperatorID = loginUserRecordId;
            model.CardSystem = CardSystem.Park;
            model.EmployeeID = employee.EmployeeID;
            model.CardType   = CardType.Plate;
            return(model);
        }
Пример #15
0
        public static List <CarParkingResult> GetParkGrantByPlateNo(string plateNo)
        {
            if (plateNo.IsEmpty())
            {
                throw new ArgumentNullException("plateNo");
            }

            List <CarParkingResult> models = new List <CarParkingResult>();
            IParkGrant       factory       = ParkGrantFactory.GetFactory();
            List <ParkGrant> grants        = factory.GetParkGrantByPlateNo(plateNo);

            if (grants.Count > 0)
            {
                List <ParkCarType>  carTypes = ParkCarTypeServices.QueryParkCarTypeByRecordIds(grants.Select(p => p.CarTypeID).ToList());
                List <BaseParkinfo> parkings = ParkingServices.QueryParkingByRecordIds(grants.Select(p => p.PKID).ToList());
                List <BaseVillage>  villages = new List <BaseVillage>();
                if (parkings.Count > 0)
                {
                    IVillage factoryVillage = VillageFactory.GetFactory();
                    villages = factoryVillage.QueryVillageByRecordIds(parkings.Select(p => p.VID).ToList());
                }
                foreach (var item in grants)
                {
                    CarParkingResult model = new CarParkingResult();
                    model.PlateNo = plateNo;
                    BaseParkinfo parking = parkings.FirstOrDefault(p => p.PKID == item.PKID);

                    if (parking != null)
                    {
                        model.ParkingName = parkings != null ? parking.PKName : string.Empty;
                        BaseVillage village = villages.FirstOrDefault(p => p.VID == parking.VID);
                        model.VillageName = village != null ? village.VName : string.Empty;
                    }
                    ParkCarType carType = carTypes.FirstOrDefault(p => p.CarTypeID == item.CarTypeID);
                    if (carType != null)
                    {
                        model.CarTypeName = carType.CarTypeName;
                    }
                    model.StartTime = item.BeginDate;
                    model.EndTime   = item.EndDate;
                    models.Add(model);
                }
            }
            return(models);
        }
Пример #16
0
        public BaseParkinfo QueryParkingByParkingID(string ParkingID)
        {
            BaseParkinfo baseparkinfo = null;
            string       strSql       = string.Format("select * from BaseParkinfo where pkid='{0}' and DataStatus!=2", ParkingID);

            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                dbOperator.ClearParameters();
                using (DbDataReader reader = dbOperator.ExecuteReader(strSql))
                {
                    if (reader.Read())
                    {
                        baseparkinfo = DataReaderToModel <BaseParkinfo> .ToModel(reader);
                    }
                }
            }
            return(baseparkinfo);
        }
Пример #17
0
        /// <summary>
        /// 获得临停缴费记录
        /// </summary>
        /// <param name="paras">输入参数</param>
        /// <returns></returns>
        public static List <Statistics_Gather> Search_MonthStatistics(InParams paras)
        {
            IStatistics factory = StatisticsFactory.GetFactory();
            List <Statistics_Gather> gatherlist = factory.Search_MonthStatistics(paras);

            if (!string.IsNullOrEmpty(paras.ParkingID) && gatherlist != null && gatherlist.Count > 0)
            {
                BaseParkinfo parkinfo = ParkingServices.QueryParkingByParkingID(paras.ParkingID);
                if (parkinfo != null)
                {
                    foreach (var v in gatherlist)
                    {
                        v.ParkingName = parkinfo.PKName;
                    }
                }
            }
            return(gatherlist);
        }
Пример #18
0
        public static BaseParkinfo GetParkinfo(string VID)
        {
            BaseParkinfo model = new BaseParkinfo();

            model.CenterTime              = 15;
            model.DataSaveDays            = 365;
            model.ExpiredAdvanceRemindDay = 7;
            model.IsOnLineGathe           = 0;
            model.IsLine          = YesOrNo.No;
            model.NeedFee         = YesOrNo.Yes;
            model.PictureSaveDays = 90;
            model.PKID            = GuidGenerator.GetGuidString();
            model.PKName          = "停车场";
            model.PKNo            = "0001";
            model.VID             = VID;
            model.PoliceFree      = true;
            return(model);
        }
Пример #19
0
        public bool UpdateParkSettleConfig(BaseParkinfo model)
        {
            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                model.LastUpdateTime = DateTime.Now;
                model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

                StringBuilder strSql = new StringBuilder();
                strSql.Append("update BaseParkinfo set HandlingFee=@HandlingFee,MaxAmountOfCash=@MaxAmountOfCash,LastUpdateTime=@LastUpdateTime,HaveUpdate=@HaveUpdate where  PKID=@PKID");
                dbOperator.ClearParameters();
                dbOperator.AddParameter("PKID", model.PKID);
                dbOperator.AddParameter("HandlingFee", model.HandlingFee);
                dbOperator.AddParameter("MaxAmountOfCash", model.MaxAmountOfCash);
                dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
                dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
                return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
            }
        }
Пример #20
0
        /// <summary>
        /// 获得临停缴费记录
        /// </summary>
        /// <param name="paras">输入参数</param>
        /// <param name="PageSize">每页显示数</param>
        /// <param name="PageIndex">当前页</param>
        /// <returns></returns>
        public static Pagination Search_MonthStatistics(InParams paras, int PageSize, int PageIndex)
        {
            Pagination  _pagination = new Pagination();
            IStatistics factory     = StatisticsFactory.GetFactory();

            _pagination.Total = factory.Search_MonthStatisticsCount(paras);
            _pagination.StatisticsGatherList = factory.Search_MonthStatistics(paras, PageSize, PageIndex);
            if (!string.IsNullOrEmpty(paras.ParkingID) && _pagination.StatisticsGatherList != null && _pagination.StatisticsGatherList.Count > 0)
            {
                BaseParkinfo parkinfo = ParkingServices.QueryParkingByParkingID(paras.ParkingID);
                if (parkinfo != null)
                {
                    foreach (var v in _pagination.StatisticsGatherList)
                    {
                        v.ParkingName = parkinfo.PKName;
                    }
                }
            }
            return(_pagination);
        }
Пример #21
0
        public BaseParkinfo QueryParkingByParkingNo(string parkingNo)
        {
            BaseParkinfo baseparkinfo = null;
            string       strSql       = "select * from BaseParkinfo where PKNo=@PKNo and  DataStatus!=@DataStatus";

            using (DbOperator dbOperator = ConnectionManager.CreateConnection())
            {
                dbOperator.ClearParameters();
                dbOperator.AddParameter("PKNo", parkingNo);
                dbOperator.AddParameter("DataStatus", (int)DataStatus.Delete);
                using (DbDataReader reader = dbOperator.ExecuteReader(strSql))
                {
                    if (reader.Read())
                    {
                        baseparkinfo = DataReaderToModel <BaseParkinfo> .ToModel(reader);
                    }
                }
            }
            return(baseparkinfo);
        }
Пример #22
0
        public ActionResult DerateSuccess(string msg, string parkingId, string licensePlate)
        {
            try
            {
                TxtLogServices.WriteTxtLogEx("QRCodeDerate", string.Format("领取成功,parkingId:{0},licensePlate:{1}", parkingId, licensePlate));
                ViewBag.Msg = msg;
                string hrefUrl = string.Empty;

                BaseParkinfo parking = ParkingServices.QueryParkingByParkingID(parkingId);
                if (parking == null)
                {
                    throw new MyException("获取车场信息失败");
                }

                if (parking.MobilePay == YesOrNo.Yes)
                {
                    string companyId = CompanyServices.GetCompanyId(parkingId, string.Empty);
                    if (string.IsNullOrWhiteSpace(companyId))
                    {
                        throw new MyException("获取单位编号失败");
                    }

                    WX_ApiConfig config = WXApiConfigServices.QueryWXApiConfig(companyId);
                    if (config == null)
                    {
                        throw new MyException("获取微信配置失败");
                    }

                    hrefUrl = string.Format("{0}/qrl/qrp_ix_pid={1}^pn={2}", SystemDefaultConfig.SystemDomain, parkingId, licensePlate);
                }
                ViewBag.HrefUrl      = hrefUrl;
                ViewBag.LicensePlate = licensePlate;
                ViewBag.DerateTime   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                return(View());
            }
            catch (Exception ex)
            {
                TxtLogServices.WriteTxtLogEx("QRCodeDerate", "提示优免结果出错", ex);
                return(RedirectToAction("BrowseError", "QRCodeDerate", new { errorMsg = "领取优免券成功,但是处理其他业务异常了【不影响优免券的正常使用】" }));
            }
        }
Пример #23
0
        public static ParkGrant GenerateParkGrantModel(BaseParkinfo parking, EmployeePlate plate, BaseCard card, string pkLot, string carModelId, string carTypeId, string AreaIDS, string GateID)
        {
            ParkGrant model = new ParkGrant();

            model.PKID     = parking.PKID;
            model.CardID   = card.CardID;
            model.PlateID  = plate.PlateID;
            model.PlateNo  = plate.PlateNo;
            model.PKLot    = pkLot;
            model.PKLotNum = 0;

            ParkCarModel carModel = ParkCarModelServices.QueryByRecordId(carModelId);

            if (carModel == null)
            {
                throw new MyException("选择的车型不存在");
            }
            model.CarModelID = carModel.CarModelID;

            ParkCarType carType = ParkCarTypeServices.QueryParkCarTypeByRecordId(carTypeId);

            if (carType == null)
            {
                throw new MyException("选择的车类不存在");
            }
            model.CarTypeID = carType.CarTypeID;

            if (string.IsNullOrWhiteSpace(AreaIDS))
            {
                throw new MyException("获取选择的车场区域失败");
            }
            model.AreaIDS = AreaIDS == "-1" ? string.Empty : AreaIDS;

            if (string.IsNullOrWhiteSpace(GateID))
            {
                throw new MyException("获取选择的车场通道失败");
            }
            model.GateID = GateID == "-1" ? string.Empty : GateID;
            return(model);
        }
Пример #24
0
        public ActionResult GetParkDerateQRcodeData(string derateId, int?status, int page)
        {
            try
            {
                int rows  = 10;
                int total = 0;
                List <ParkDerateQRcode> models = ParkDerateQRcodeServices.QueryPage(SellerLoginUser.SellerID, derateId, 0, status, DerateQRCodeSource.Seller, rows, page, out total);
                if (models.Count > 0)
                {
                    ParkSeller seller = ParkSellerServices.QueryBySellerId(SellerLoginUser.SellerID);
                    if (seller == null)
                    {
                        throw new MyException("获取商家信息失败");
                    }

                    List <BaseParkinfo> parkings = ParkingServices.QueryParkingByVillageId(seller.VID);

                    Dictionary <string, int> result = ParkCarDerateServices.QuerySettlementdCarDerate(models.Select(p => p.RecordID).ToList());
                    foreach (var item in models)
                    {
                        int    useTimes    = result.ContainsKey(item.RecordID) ? result[item.RecordID] : 0;
                        string canUseTimes = item.CanUseTimes == 0 ? "不限" : item.CanUseTimes.ToString();
                        item.UseTimesDes = string.Format("{0}/{1}", canUseTimes, useTimes);
                        BaseParkinfo park = parkings.FirstOrDefault(p => p.PKID == item.PKID);
                        if (park != null)
                        {
                            item.ParkName = park.PKName;
                        }
                    }
                }
                return(Json(MyResult.Success("", models)));
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "获取优免二维码失败", LogFrom.WeiXin);
                return(Json(MyResult.Error("获取优免二维码失败")));
            }
        }
Пример #25
0
        /// <summary>
        /// 创建默认车场
        /// </summary>
        /// <param name="model"></param>
        /// <param name="dbOperator"></param>
        /// <returns></returns>
        public static bool AddParkinfoDefault(BaseParkinfo model, DbOperator dbOperator)
        {
            IParking factory = ParkingFactory.GetFactory();

            try
            {
                dbOperator.BeginTransaction();
                bool result = factory.Add(model, dbOperator);
                if (!result)
                {
                    throw new MyException("添加车场信息失败");
                }

                result = ParkCarModelServices.AddDefault(model.PKID, dbOperator);
                if (!result)
                {
                    throw new MyException("添加车型失败");
                }

                result = ParkCarTypeServices.AddDefault(model.PKID, dbOperator);
                if (!result)
                {
                    throw new MyException("添加车类型失败");
                }
                dbOperator.CommitTransaction();
                if (result)
                {
                    OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Add);
                }
                return(true);
            }
            catch
            {
                dbOperator.RollbackTransaction();
                throw;
            }
        }
Пример #26
0
        /// <summary>
        /// 上传车场系统数据
        /// </summary>
        public static void StartClearClientData()
        {
            while (IsStartClear)
            {
                if (DateTime.Now.Hour == 3 || !_IsDS)
                {
                    using (DbOperator dbOperator = ConnectionManager.CreateReadConnection())
                    {
                        string strsql = "select * from BaseParkinfo a left join BaseVillage b on a.VID=b.VID ";
                        strsql += "where a.DataStatus<2 and b.DataStatus<2";

                        if (_IsDS)
                        {
                            strsql += "and b.ProxyNo='" + SystemInfo.ProxyNo + "'";
                        }

                        dbOperator.ClearParameters();
                        using (DbDataReader reader = dbOperator.ExecuteReader(strsql.ToString()))
                        {
                            while (reader.Read())
                            {
                                BaseParkinfo model = DataReaderToModel <BaseParkinfo> .ToModel(reader);

                                listparkinfo.Add(model);
                            }
                        }
                    }
                    ClearPic();
                    ClearParkEvent();
                    ClearParkIORecord();
                    ClearParkOrder();
                    ClearParkTimeseries();
                }
                Thread.Sleep(1000 * 60 * 30);
            }
        }
Пример #27
0
        public ActionResult Index(string plateNumber, string parkingId)
        {
            string plateCity = string.Empty;
            string plateArea = string.Empty;
            string number    = string.Empty;

            if (!string.IsNullOrWhiteSpace(plateNumber) && plateNumber.Length >= 5)
            {
                plateCity = plateNumber.Substring(0, 1);
                plateArea = plateNumber.Substring(1, 1);
                number    = plateNumber.Substring(2);
            }
            else
            {
                if (!string.IsNullOrWhiteSpace(parkingId))
                {
                    BaseParkinfo park = ParkingServices.QueryParkingByParkingID(parkingId);
                    if (park != null && !string.IsNullOrWhiteSpace(park.DefaultPlate) && park.DefaultPlate.Length == 2)
                    {
                        plateCity = park.DefaultPlate.Substring(0, 1);
                        plateArea = park.DefaultPlate.Substring(1, 1);
                    }
                }
                if ((string.IsNullOrWhiteSpace(plateCity) || string.IsNullOrWhiteSpace(plateArea)) && !string.IsNullOrWhiteSpace(firstPlateNo) && firstPlateNo.Length == 2)
                {
                    TxtLogServices.WriteTxtLogEx("LicensePlate", "firstPlateNo:" + firstPlateNo);
                    plateCity = firstPlateNo.Substring(0, 1);
                    plateArea = firstPlateNo.Substring(1, 1);
                }
            }
            TxtLogServices.WriteTxtLogEx("LicensePlate", string.Format("plateCity:{0},plateArea:{1},number:{2}", plateCity, plateArea, number));
            ViewBag.city   = string.IsNullOrWhiteSpace(plateCity) ? "粤" : plateCity;
            ViewBag.area   = string.IsNullOrWhiteSpace(plateArea) ? "B" : plateArea;
            ViewBag.number = number.ToPlateNo();
            return(PartialView());
        }
Пример #28
0
        /// <summary>
        /// 当班统计
        /// </summary>
        public void Statistics_OnDuty(string ParkingID)
        {
            try
            {
                IParking                iparking               = ParkingFactory.GetFactory();
                IParkIORecord           iorecordfactory        = ParkIORecordFactory.GetFactory();
                IStatistics_Gather      gatherfactory          = Statistics_GatherFactory.GetFactory();
                IParkChangeshiftrecord  ichangeshift           = ParkChangeshiftrecordFactory.GetFactory();
                IParkOrder              iorder                 = ParkOrderFactory.GetFactory();
                IParkBox                iparkbox               = ParkBoxFactory.GetFactory();
                IStatistics_ChangeShift istatisticschangeshift = Statistics_ChangeShiftFactory.GetFactory();
                BaseParkinfo            parking                = iparking.QueryParkingByParkingID(ParkingID);
                List <ParkBox>          boxlist                = iparkbox.QueryByParkingID(parking.PKID);
                if (boxlist != null && boxlist.Count > 0)
                {
                    foreach (ParkBox box in boxlist)
                    {
                        List <ParkChangeshiftrecord> ondutys = ichangeshift.GetChangeShiftRecord(box.BoxID);
                        if (ondutys == null || ondutys.Count == 0)
                        {
                            continue;
                        }
                        foreach (ParkChangeshiftrecord onduty in ondutys)
                        {
                            Statistics_ChangeShift changeshift = new Statistics_ChangeShift
                            {
                                BoxID         = onduty.BoxID,
                                ParkingName   = parking.PKName,
                                StartWorkTime = onduty.StartWorkTime,
                                EndWorkTime   = onduty.EndWorkTime,
                                ParkingID     = parking.PKID,
                                AdminID       = onduty.UserID,
                                ChangeShiftID = onduty.RecordID
                            };
                            DateTime starttime = onduty.StartWorkTime;
                            DateTime endtime   = DateTime.Now;
                            if (onduty.EndWorkTime > DateTime.MinValue)
                            {
                                endtime = onduty.EndWorkTime;
                            }
                            //统计相关信息
                            //查询进场数
                            changeshift.Entrance_Count = iorecordfactory.EntranceCountByBox(box.BoxID, starttime, endtime);
                            //查询出场数
                            changeshift.Exit_Count = iorecordfactory.ExitCountByBox(box.BoxID, starttime, endtime);
                            #region 进场卡片类型
                            List <KeyValue> _InCardType = iorecordfactory.GetInCardTypeByBoxID(box.BoxID, starttime, endtime);
                            if (_InCardType != null && _InCardType.Count > 0)
                            {
                                foreach (var k in _InCardType)
                                {
                                    switch (k.KeyName)
                                    {
                                    case "0":
                                        changeshift.VIPCard = k.Key_Value;
                                        break;

                                    case "1":
                                        changeshift.StordCard = k.Key_Value;
                                        break;

                                    case "2":
                                        changeshift.MonthCard = k.Key_Value;
                                        break;

                                    case "3":
                                        changeshift.TempCard = k.Key_Value;
                                        break;

                                    case "4":
                                        changeshift.JobCard = k.Key_Value;
                                        break;

                                    default:
                                        break;
                                    }
                                }
                            }
                            #endregion

                            #region 统计放行类型
                            List <KeyValue> _ReleaseType = iorecordfactory.GetReleaseTypeByBox(box.BoxID, starttime, endtime);
                            if (_ReleaseType != null && _ReleaseType.Count > 0)
                            {
                                foreach (KeyValue k in _ReleaseType)
                                {
                                    switch (k.KeyName)
                                    {
                                    case "0":
                                        changeshift.ReleaseType_Normal = k.Key_Value;
                                        break;

                                    case "1":
                                        changeshift.ReleaseType_Charge = k.Key_Value;
                                        break;

                                    case "2":
                                        changeshift.ReleaseType_Free = k.Key_Value;
                                        break;

                                    case "3":
                                        changeshift.ReleaseType_Catch = k.Key_Value;
                                        break;
                                    }
                                }
                            }
                            #endregion

                            #region 统计费用相关
                            List <ParkOrder> _orderfee = iorder.GetOrdersByBoxID(parking.PKID, onduty.BoxID, starttime, endtime);
                            if (_orderfee != null && _orderfee.Count > 0)
                            {
                                foreach (ParkOrder o in _orderfee)
                                {
                                    changeshift.Receivable_Amount += o.Amount;
                                    changeshift.Diff_Amount       += o.UnPayAmount;
                                    changeshift.Real_Amount        = (changeshift.Receivable_Amount - changeshift.Diff_Amount);
                                    //支付方式(1.现金、2.微信、3.支付宝、4.网银、5.电子钱包、6.优免卷7.余额
                                    switch (o.PayWay)
                                    {
                                    case OrderPayWay.Cash:
                                        changeshift.Cash_Amount += o.PayAmount;
                                        changeshift.Cash_Count++;

                                        if (o.DiscountAmount > 0)
                                        {
                                            changeshift.CashDiscount_Amount += o.DiscountAmount;
                                            changeshift.CashDiscount_Count++;

                                            changeshift.Discount_Amount += o.DiscountAmount;
                                            changeshift.Discount_Count++;
                                        }
                                        break;

                                    case OrderPayWay.WeiXin:
                                    case OrderPayWay.Alipay:
                                    case OrderPayWay.OnlineBanking:
                                    case OrderPayWay.Wallet:
                                        changeshift.OnLine_Amount += o.PayAmount;
                                        changeshift.OnLine_Count++;

                                        if (o.DiscountAmount > 0)
                                        {
                                            changeshift.OnLineDiscount_Amount += o.DiscountAmount;
                                            changeshift.OnLineDiscount_Count++;

                                            changeshift.Discount_Amount += o.DiscountAmount;
                                            changeshift.Discount_Count++;
                                        }
                                        break;

                                    case OrderPayWay.PreferentialTicket:
                                        changeshift.Discount_Amount += o.DiscountAmount;
                                        changeshift.Discount_Count++;
                                        break;

                                    case OrderPayWay.ValueCard:
                                        changeshift.StordCard_Amount += o.PayAmount;
                                        changeshift.StordCard_Count++;
                                        break;
                                    }
                                    switch (o.OrderType)
                                    {
                                    //临时卡缴费
                                    case OrderType.TempCardPayment:
                                    case OrderType.AreaTempCardPayment:
                                        switch (o.PayWay)
                                        {
                                        case OrderPayWay.WeiXin:
                                        case OrderPayWay.Alipay:
                                        case OrderPayWay.OnlineBanking:
                                        case OrderPayWay.Wallet:
                                            changeshift.OnLineTemp_Amount += o.PayAmount;
                                            changeshift.OnLineTemp_Count++;
                                            break;

                                        default:
                                            changeshift.Temp_Amount += o.PayAmount;
                                            changeshift.Temp_Count++;
                                            break;
                                        }
                                        break;

                                    //月卡续期
                                    case OrderType.MonthCardPayment:
                                        switch (o.PayWay)
                                        {
                                        case OrderPayWay.WeiXin:
                                        case OrderPayWay.Alipay:
                                        case OrderPayWay.OnlineBanking:
                                        case OrderPayWay.Wallet:
                                            changeshift.OnLineMonthCardExtend_Amount += o.PayAmount;
                                            changeshift.OnLineMonthCardExtend_Count++;
                                            break;

                                        default:
                                            changeshift.MonthCardExtend_Amount += o.PayAmount;
                                            changeshift.MonthCardExtend_Count++;
                                            break;
                                        }
                                        break;

                                    //VIP卡续期
                                    case OrderType.VIPCardRenewal:
                                        changeshift.VIPExtend_Count++;
                                        break;

                                    //储值卡充值
                                    case OrderType.ValueCardRecharge:
                                        switch (o.PayWay)
                                        {
                                        case OrderPayWay.WeiXin:
                                        case OrderPayWay.Alipay:
                                        case OrderPayWay.OnlineBanking:
                                        case OrderPayWay.Wallet:
                                            changeshift.OnLineStordCard_Amount += o.PayAmount;
                                            changeshift.OnLineStordCard_Count++;
                                            break;

                                        default:
                                            changeshift.StordCardRecharge_Amount += o.PayAmount;
                                            changeshift.StordCardRecharge_Count++;
                                            break;
                                        }
                                        break;
                                    }
                                }
                            }
                            #endregion
                            using (DbOperator dboperator = ConnectionManager.CreateReadConnection())
                            {
                                try
                                {
                                    dboperator.BeginTransaction();
                                    istatisticschangeshift.Delete(onduty.RecordID, dboperator);
                                    istatisticschangeshift.Insert(changeshift, dboperator);
                                    dboperator.CommitTransaction();
                                }
                                catch (Exception ex)
                                {
                                    TxtLogServices.WriteTxtLog("添加当班信息异常 异常信息:{0}", ex.Message);
                                    dboperator.RollbackTransaction();
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TxtLogServices.WriteTxtLog("当班统计异常 异常信息:{0}", ex.Message);
            }
        }
Пример #29
0
        /// <summary>
        /// 系统初始化默认单位CS
        /// </summary>
        public static bool InitSystemDefaultCompanyCS(string VName, string CPName, string userno, string pwd, string systemmodelpath)
        {
            try
            {
                ICompany factory = CompanyFactory.GetFactory();
                using (DbOperator dbOperator = ConnectionManager.CreateConnection())
                {
                    try
                    {
                        dbOperator.BeginTransaction();
                        BaseCompany compamy = GetCompanyModel();
                        compamy.CPName       = CPName;
                        compamy.UserAccount  = userno;
                        compamy.UserPassword = pwd;
                        bool result = factory.Add(compamy, dbOperator);
                        if (!result)
                        {
                            throw new MyException("添加默认单位失败");
                        }
                        BaseVillage village = GetVillage(compamy.CPID);
                        village.VName = VName;
                        result        = VillageServices.AddVillageDefaultUser(village, dbOperator);
                        if (!result)
                        {
                            throw new MyException("添加默认小区失败");
                        }
                        result = SysUserServices.AddCompanyDefaultUserCS(compamy, village, dbOperator, systemmodelpath);
                        if (!result)
                        {
                            throw new MyException("添加默认用户失败");
                        }

                        BaseParkinfo parkinfo = GetParkinfo(village.VID);
                        result = ParkingServices.AddParkinfoDefault(parkinfo, dbOperator);
                        if (!result)
                        {
                            throw new MyException("添加默认车场失败");
                        }
                        dbOperator.CommitTransaction();

                        ParkArea area = GetParkArea(parkinfo.PKID);
                        result = ParkAreaServices.AddDefualt(area);
                        if (result)
                        {
                            ParkBox box = GetParkBox(area.AreaID);
                            result = ParkBoxServices.AddDefault(box);
                            if (result)
                            {
                                result = ParkGateServices.AddDefault(GetParkGate(box.BoxID, 1));
                                result = ParkGateServices.AddDefault(GetParkGate(box.BoxID, 2));
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        dbOperator.RollbackTransaction();
                        throw;
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "添加系统默认单用户失败");
                return(false);
            }
            return(true);
        }
Пример #30
0
        public string GetParkDerateQRcodeData()
        {
            StringBuilder strData = new StringBuilder();

            try
            {
                if (string.IsNullOrEmpty(Request.Params["sellerId"]))
                {
                    return(string.Empty);
                }
                string sellerId = Request.Params["sellerId"].ToString();
                string derateId = Request.Params["derateId"].ToString();

                int?queryStatus = null;
                int status      = 0;
                if (!string.IsNullOrWhiteSpace(Request.Params["status"]) && int.TryParse(Request.Params["status"].ToString(), out status))
                {
                    queryStatus = status;
                }
                DerateQRCodeSource?derateQRCodeSource = null;
                int source = 0;
                if (!string.IsNullOrWhiteSpace(Request.Params["DerateQRCodeSource"]) && int.TryParse(Request.Params["DerateQRCodeSource"].ToString(), out source))
                {
                    derateQRCodeSource = (DerateQRCodeSource)source;
                }


                int page  = string.IsNullOrEmpty(Request.Params["page"]) ? 0 : int.Parse(Request.Params["page"]);
                int rows  = string.IsNullOrEmpty(Request.Params["rows"]) ? 0 : int.Parse(Request.Params["rows"]);
                int total = 0;
                List <ParkDerateQRcode> models = ParkDerateQRcodeServices.QueryPage(sellerId, derateId, 1, queryStatus, derateQRCodeSource, rows, page, out total);
                if (models.Count > 0)
                {
                    ParkSeller seller = ParkSellerServices.QueryBySellerId(sellerId);
                    if (seller == null)
                    {
                        throw new MyException("获取商家信息失败");
                    }

                    List <BaseParkinfo> parkings = ParkingServices.QueryParkingByVillageId(seller.VID);

                    Dictionary <string, int> result = ParkCarDerateServices.QuerySettlementdCarDerate(models.Select(p => p.RecordID).ToList());
                    foreach (var item in models)
                    {
                        int    useTimes    = result.ContainsKey(item.RecordID)?result[item.RecordID]:0;
                        string canUseTimes = item.CanUseTimes == 0 ? "不限" : item.CanUseTimes.ToString();
                        item.UseTimesDes = string.Format("{0}/{1}", canUseTimes, useTimes);
                        BaseParkinfo park = parkings.FirstOrDefault(p => p.PKID == item.PKID);
                        if (park != null)
                        {
                            item.ParkName = park.PKName;
                        }
                    }
                }
                strData.Append("{");
                strData.Append("\"total\":" + total + ",");
                strData.Append("\"rows\":" + JsonHelper.GetJsonString(models) + ",");
                strData.Append("\"index\":" + page);
                strData.Append("}");
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "获取一次性优免二维码失败");
            }
            return(strData.ToString());
        }