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); }
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("下载二维码失败"))); } }
/// <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); }
public bool Add(BaseParkinfo model) { using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { return(Add(model, dbOperator)); } }
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("保存失败"))); } }
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("保存失败"))); } }
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); }
//根据人员和车场信息 下载二维码 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("下载二维码失败"))); } }
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; } } }
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); } }
/// <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); }
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); } }
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 = "预约失败!" })); } }
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); }
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); }
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); }
/// <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); }
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); }
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); } }
/// <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); }
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); }
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 = "领取优免券成功,但是处理其他业务异常了【不影响优免券的正常使用】" })); } }
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); }
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("获取优免二维码失败"))); } }
/// <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; } }
/// <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); } }
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()); }
/// <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); } }
/// <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); }
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()); }