Ejemplo n.º 1
0
 public JsonResult SaveBlackList(ParkBlacklist model)
 {
     try
     {
         model.PlateNumber = model.PlateNumber.ToPlateNo();
         if (string.IsNullOrWhiteSpace(model.RecordID))
         {
             bool result = ParkBlacklistServices.Add(model);
             if (!result)
             {
                 throw new MyException("保存失败");
             }
         }
         else
         {
             bool result = ParkBlacklistServices.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("保存失败")));
     }
 }
Ejemplo n.º 2
0
        public string GetBlackListData()
        {
            StringBuilder strData = new StringBuilder();

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

                string plateNo = Request.Params["queryPlateNo"];

                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 <ParkBlacklist> blacklist = ParkBlacklistServices.QueryPage(parkingId, plateNo, rows, page, out total);
                var result = from p in blacklist
                             select new
                {
                    ID             = p.ID,
                    RecordID       = p.RecordID,
                    PKID           = p.PKID,
                    PlateNumber    = p.PlateNumber,
                    Remark         = p.Remark,
                    LastUpdateTime = p.LastUpdateTime.ToString("yyyy-MM-dd HH:mm:ss"),
                    Status         = (int)p.Status,
                    StatusDes      = p.Status.GetDescription()
                };

                strData.Append("{");
                strData.Append("\"total\":" + total + ",");
                strData.Append("\"rows\":" + JsonHelper.GetJsonString(result) + ",");
                strData.Append("\"index\":" + page);
                strData.Append("}");
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "查询黑名单信息失败");
            }

            return(strData.ToString());
        }
Ejemplo n.º 3
0
        protected override void ProcessRule(InputAgs args, ResultAgs rst)
        {
            rst.InOutBaseCardType = BaseCarType.TempCar;
            string errorMsg = "";

            if (args.CarTypeInfo.IsIgnoreHZ && args.Plateinfo.LicenseNum.Length >= 7)
            {
                var plateNumber = args.Plateinfo.LicenseNum.Substring(1, args.Plateinfo.LicenseNum.Length - 1);
                var iorecord    = ParkIORecordServices.QueryInCarTempIORecordByLikePlateNumber(args.AreadInfo.PKID, plateNumber, out errorMsg);
                if (iorecord != null)
                {
                    args.Plateinfo.LicenseNum = iorecord.PlateNumber;
                }
            }
            IsPoliceFree(args, rst);

            var blackList = ParkBlacklistServices.GetBlacklist(args.AreadInfo.PKID, args.Plateinfo.LicenseNum, out errorMsg);

            if (blackList != null)
            {
                if (blackList.Status == BlackListStatus.NotEnterAndOut)
                {
                    rst.ResCode = ResultCode.BlacklistCar;
                    return;
                }
                if (args.GateInfo.IoState == IoState.GoOut &&
                    blackList.Status == BlackListStatus.CanEnterAndNotOut)
                {
                    rst.ResCode = ResultCode.BlacklistCar;
                    return;
                }
            }
            if (args.GateInfo.IsTempInOut == YesOrNo.No)//子区域允许月卡进出
            {
                if (!rst.IsPoliceFree)
                {
                    rst.ResCode = ResultCode.NoPermissionsInOut;
                    return;
                }
            }
        }
Ejemplo n.º 4
0
 public JsonResult Delete(string recordId)
 {
     try
     {
         bool result = ParkBlacklistServices.Delete(recordId);
         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("删除失败")));
     }
 }
Ejemplo n.º 5
0
        protected override void ProcessRule(InputAgs args, ResultAgs rst)
        {
            rst.InOutBaseCardType = BaseCarType.TempCar;
            string errorMsg = "";

            if (args.CarTypeInfo.IsIgnoreHZ && args.Plateinfo.LicenseNum.Length >= 7)
            {
                var plateNumber = args.Plateinfo.LicenseNum.Substring(1, args.Plateinfo.LicenseNum.Length - 1);
                var iorecord    = ParkIORecordServices.QueryInCarTempIORecordByLikePlateNumber(args.AreadInfo.PKID, plateNumber, out errorMsg);
                if (iorecord != null)
                {
                    args.Plateinfo.LicenseNum = iorecord.PlateNumber;
                }
            }
            IsPoliceFree(args, rst);

            var blackList = ParkBlacklistServices.GetBlacklist(args.AreadInfo.PKID, args.Plateinfo.LicenseNum, out errorMsg);

            if (blackList != null)
            {
                if (blackList.Status == BlackListStatus.NotEnterAndOut)
                {
                    rst.ResCode = ResultCode.BlacklistCar;
                    return;
                }
                if (args.GateInfo.IoState == IoState.GoOut &&
                    blackList.Status == BlackListStatus.CanEnterAndNotOut)
                {
                    rst.ResCode = ResultCode.BlacklistCar;
                    return;
                }
            }
            var vistar = ParkVisitorServices.GetNormalVisitor(args.AreadInfo.Parkinfo.VID, args.Plateinfo.LicenseNum, out errorMsg);

            if (vistar != null && args.Plateinfo.TriggerTime >= vistar.BeginDate && args.Plateinfo.TriggerTime <= vistar.EndDate &&
                (vistar.VisitorCount > 0 || vistar.VisitorCount == -1))
            {
                var vistarcar = ParkVisitorServices.GetVisitorCar(args.AreadInfo.PKID, vistar.RecordID, out errorMsg);
                if (vistarcar != null && (vistar.VisitorCount == -1 || vistar.VisitorCount > vistarcar.AlreadyVisitorCount))
                {
                    //访客表中  在时段内 且进出次数大于已经进出次数时 允许进出
                    var carModelid = vistar.CarModelID;
                    if (!carModelid.IsEmpty())
                    {
                        var carModel = ParkCarModelServices.QueryByRecordId(vistar.CarModelID);
                        if (carModel != null)
                        {
                            args.CarModel = carModel;
                        }
                    }
                    rst.ValidMsg     = "访客车辆";
                    rst.IsVisitorCar = true;
                    rst.VisitorCar   = vistarcar;
                    return;
                }
                else if (args.GateInfo.IsTempInOut == YesOrNo.No)
                {
                    rst.ResCode = ResultCode.NoPermissionsInOut;
                    return;
                }
            }
            else if (args.GateInfo.IsTempInOut == YesOrNo.No) //子区域允许月卡进出
            {
                if (!rst.IsPoliceFree)
                {
                    rst.ResCode = ResultCode.NoPermissionsInOut;
                    return;
                }
            }
        }
Ejemplo n.º 6
0
        protected override void ProcessRule(InputAgs args, ResultAgs rst)
        {
            string errorMsg  = "";
            var    blackList = ParkBlacklistServices.GetBlacklist(args.AreadInfo.PKID, args.Plateinfo.LicenseNum, out errorMsg);

            if (blackList != null)
            {
                if (blackList.Status == BlackListStatus.NotEnterAndOut)
                {
                    rst.ResCode = ResultCode.BlacklistCar;
                }
                else if (args.GateInfo.IoState == IoState.GoOut &&
                         blackList.Status == BlackListStatus.CanEnterAndNotOut)
                {
                    rst.ResCode = ResultCode.BlacklistCar;
                }
                else
                {
                    rst.ValidMsg = "黑名单车辆";
                }
            }
            if (args.CardInfo != null && args.CarTypeInfo != null)
            {
                var siglelist = ParkCarTypeSingleServices.QueryParkCarTypeByCarTypeID(args.CarTypeInfo.CarTypeID);
                if (siglelist == null || siglelist.Count <= 0)
                {
                    return;
                }
                var sigle = siglelist.Find(s => s.Week == (int)DateTime.Now.DayOfWeek);
                if (sigle == null)
                {
                    return;
                }
                if (sigle.SingleType == 0)
                {
                    return;
                }
                // sigle.SingleType 0 单双可进出 1 单可进出 2 双可进出
                if (args.Plateinfo.LicenseNum.Length < 1)
                {
                    return;
                }
                List <string> stringplates = new List <string> {
                    "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
                    "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
                };
                var cplate = args.Plateinfo.LicenseNum.Substring(args.Plateinfo.LicenseNum.Length - 2, 1);
                var index  = 0;
                if (cplate.IsInteger())
                {
                    index = cplate.ToInt();
                }
                else
                {
                    index = stringplates.IndexOf(cplate) + 1;
                }
                if (index.IsEvennumber() && sigle.SingleType == 2)//偶数
                {
                    return;
                }
                else if (!index.IsEvennumber() && sigle.SingleType == 1)//奇数
                {
                    return;
                }
                else
                {
                    rst.ResCode  = ResultCode.NoPermissionsInOut;
                    rst.ValidMsg = "车辆在限行时间";
                }
            }
        }