基于javaweb+mysql的ssm+maven停车场管理系统(java+ssm+jsp+bootstrap+mysql)

基于javaweb+mysql的ssm+maven停车场管理系统(java+ssm+jsp+bootstrap+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SSM+Maven停车场管理系统(java+ssm+jsp+bootstrap+mysql)

项目介绍

本项目为后台管理系统,分为管理员、用户、工作人员三种角色; 管理员角色包含以下功能: 登陆页面,收入查看,停车卡开卡等功能。 用户角色包含以下功能: 用户登录,停车卡管理,优惠券管理,发送站内信,查看停车记录等功能。 工作人员角色包含以下功能: 登陆首页,车辆入库,车辆出库,停车卡管理,优惠券管理,站内信查看,用户管理等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+Bootstrap+Javascript

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中dbconfig.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/ssm_depot_system/login/login 登录 注:Tomcat中配置项目路径必须为ssm_depot_system
	}
}

/** * 
@version 1.0 * 
@parameter  * 
@since  * 
@return  */
public class SessionInterceptor extends HandlerInterceptorAdapter{
	@Autowired
	private UserService userService;
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		request.setCharacterEncoding("UTF-8"); 
	    response.setCharacterEncoding("UTF-8"); 
	    response.setContentType("text/html;charset=UTF-8"); 

	    User user=(User) request.getSession().getAttribute("user");
	    if(null==user)
	    {
	    	// 未登录 
	          PrintWriter out = response.getWriter(); 
	          StringBuilder builder = new StringBuilder(); 
	          builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">"); 
	          builder.append("alert(\"页面过期,请重新登录\");"); 
	          builder.append("window.top.location.href=\""); 
	          builder.append(Constants.basePath); 
	          builder.append("/login/login\";</script>"); 
	          out.print(builder.toString()); 
	          out.close(); 
	          return false;
	{
		if(tag==null)
		{
			tag=0;
		}
		if(page==null)
		{
			page=0;
		}
		if(page!=0)
		{
			page-=1;
		}
		List<User> users=null;
		User user1 = (User) session.getAttribute("user");
		PageUtil<User> pageUtil=new PageUtil<User>();
		int count=0;
		int countPage=0;
		if (user1 != null) {
			if (user1.getRole() == 1) {
				users=userService.findUsersByRole(tag.intValue(),page*10,Constants.PAGESIZE);
				count=userService.findAllUserCount(tag);
			} else if (user1.getRole() == 2) {
				users=userService.findUsersByRoleMan(tag.intValue(),page*10,Constants.PAGESIZE);
				count=userService.findAllUserCountMan(tag);
			} else if (user1.getRole() == 3) {
				users=new ArrayList<User>();
				user1=userService.findUserById(user1.getId());
				users.add(user1);
				count=1;
			} else if (user1.getRole() == 4) {

			} else {

			}
		}
		countPage=count/10;
		if(count%10!=0)
		{
			countPage+=1;
		}
		pageUtil.setCountPage(countPage);
		pageUtil.setCount(count);
		pageUtil.setPages(users);
		model.addAttribute("users", pageUtil);
		return "user";
	}

/**
 * *
 *
 * @version 1.0 *
 * @parameter *
 * @since *
 * @return
 */
@Controller
public class CheckController {

	@Autowired
	private ParkinfoService parkinfoservice;
	@Autowired
	private ParkspaceService parkspaceService;
	@Autowired
/** * 
@version 1.0 * 
@parameter  * 
@since  * 
@return  */
@Controller
public class EmailController {
	
	@Autowired
	private EmailService emailService;
	@Autowired
	private UserService userService;
	
	@ResponseBody
	@RequestMapping("index/email/addEmail")
	public Msg addEmail(EmailData emailData,HttpSession session)
	{
		Email email=new Email();
		User user=(User) session.getAttribute("user");
		try {
			if(user.getRole()==3)
			{
				email.setTitle(emailData.getTitle());
				email.setContent(emailData.getContent());
				email.setSendid(user.getId());
				email.setToid(0);
				email.setTime(new Date());
			}else{
				Email email2=emailService.findById(emailData.getId());
				emailService.updateManReadById(emailData.getId());
				email.setSendid(user.getId());
				email.setToid(email2.getSendid());
				email.setTitle(emailData.getTitle());
				email.setContent(emailData.getContent());
				email.setTime(new Date());
			}
		} catch (Exception e) {
			return Msg.fail().add("va_msg", "系统错误!");
		}
		Depotcard depotcard=depotcardService.findByCardnum(depotcardManagerData.getCardnum());
		if(depotcardManagerData.getType()==null)
		{
			depotcardManagerData.setType(Integer.toString(depotcard.getType()));
		}
		if(depotcardManagerData.getIslose()!=depotcard.getIslose()
				||Integer.parseInt(depotcardManagerData.getType())!=depotcard.getType())
		{
			depotcard.setIslose(depotcardManagerData.getIslose());
			depotcard.setType(Integer.parseInt(depotcardManagerData.getType()));
			depotcardService.updateDepotcardBycardnum(depotcard);
		}else{
			return Msg.fail();
		}
		return Msg.success();
	}
	@ResponseBody
	@RequestMapping("/index/card/deleteDepotCard")
	@Transactional
	public Msg deleteDepotCard(@RequestParam("cardnum")String cardnum)
	{
		Depotcard depotcard=depotcardService.findByCardnum(cardnum);
		int cardid=depotcard.getId();
		ParkInfo parkInfo=parkinfoService.findParkinfoByCardnum(cardnum);
		//正在停车不能删
		if(parkInfo!=null)
		{
			return Msg.fail().add("va_msg", "有车辆在停车,不能删除!");
		}
		userService.deleteUserByCardid(cardid);
		depotcardService.deleteDepotCard(cardnum);
		return Msg.success();
	}
	
	@ResponseBody
	@RequestMapping("/index/card/findCoupon")
	public Msg findCoupon(@RequestParam("cardnum")String cardnum)
	{
		List<CouponData> list=couponService.findAllCouponByCardNum(cardnum, "");
		if(list!=null&&list.size()>0)
				if(count%10!=0)
				{
					countPage++;
				}
				pageUtil.setCurrent(page);
				pageUtil.setCount(count);
				pageUtil.setCountPage(countPage);
				pageUtil.setPages(incomes);
			} else if (user1.getRole() == 2) {

			} else if (user1.getRole() == 3) {

			} else if (user1.getRole() == 4) {

			} else {

			}
		}
		model.addAttribute("incomes", pageUtil);
		model.addAttribute("countMoney", countMoney);
		return "income";
	}
	@RequestMapping("/index/findAllEmail")
	public String findAllEmail(Model model, HttpSession session,@RequestParam(value="page", required=false) Integer page,@RequestParam(value="content", required=false) String content,@RequestParam(value="tag", required=false) Integer tag)
	{
		if(page==null)
		{
			page=0;
		}
		if(page!=0)
		{
			page--;
		}
		if(content==null)
		{
			content="";
		}
		if(tag==null)
		{
			tag=4;
		}
		List<EmailData> emails=null;
		PageUtil<EmailData> pageUtil=new PageUtil<EmailData>();
		int count =0;
		int countPage=0;
		User user1 = (User) session.getAttribute("user");
		emails=emailService.findByUserId(page*10,Constants.PAGESIZE,user1.getId(),user1.getRole(),content,tag);
		List<EmailData> emailDatas=new ArrayList<EmailData>();
	public String exit(Model model, HttpSession session)
	{
		session.removeAttribute("user");
		return "login";
	}
	@RequestMapping("/index/exportIncome")
	public void exportIncome(@RequestParam(value="datetimepickerStart",required=false) String datetimepickerStart,
			@RequestParam(value="datetimepickerEnd",required=false) String datetimepickerEnd,HttpServletResponse response) {
		if (datetimepickerStart == null) {
			datetimepickerStart = "";
		}
		if (datetimepickerEnd == null) {
			datetimepickerEnd = "";
		}
		List<IncomeData> list = incomeService.findAllIncome("", datetimepickerStart, datetimepickerEnd, 9);

		// 创建HSSFWorkbook对象(excel的文档对象)
		HSSFWorkbook wb = new HSSFWorkbook();
		// 建立新的sheet对象(excel的表单)
		HSSFSheet sheet = wb.createSheet("收入");
		// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
		HSSFRow row1 = sheet.createRow(0);
		// 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
		HSSFCell cell = row1.createCell(0);
		// 设置单元格内容
		cell.setCellValue("收入明细");
		// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
		sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 8));
		// 在sheet里创建第二行
		HSSFRow row2 = sheet.createRow(1);
		// 创建单元格并设置单元格内容
		row2.createCell(0).setCellValue("车牌号");
		row2.createCell(1).setCellValue("停车卡号");
		row2.createCell(2).setCellValue("收入");
		row2.createCell(3).setCellValue("收入方式");
		row2.createCell(4).setCellValue("收入来源");
		row2.createCell(5).setCellValue("收入时间");
		row2.createCell(6).setCellValue("时长");
		row2.createCell(7).setCellValue("违规");
		// 在sheet里创建第三行
		int rowsize=2;
		for(IncomeData data:list)
		{
			HSSFRow row3 = sheet.createRow(rowsize);
			row3.createCell(0).setCellValue(data.getCarnum());
			row3.createCell(1).setCellValue(data.getCardnum());
			row3.createCell(2).setCellValue(data.getMoney());
			row3.createCell(3).setCellValue(data.getMethod()==0?"现金":data.getMethod()==1?"支付宝":data.getMethod()==2?"微信":"扣卡费");
			row3.createCell(4).setCellValue(data.getSource()==0?"充值":"出库");

/** * 
@version 1.0 * 
@parameter  * 
@since  * 
@return  */
@Controller
public class UserController {
	@Autowired
	private UserService userService;
	@Autowired
	private DepotcardService depotcardService;
	@Autowired
	private ParkinfoService parkinfoService;
	
	//ajax校验username是否存在
		@ResponseBody
		@RequestMapping("/index/user/checkUsername")
		public Msg checkUsername(@RequestParam("username")String username){
			System.out.println("username:"+username);
			User user=userService.findUserByUsername(username);
			if(user==null)
			{
				return Msg.fail().add("va_msg", "用户名不存在");
			}
			return Msg.success();
		}
		
		//添加user
		@ResponseBody
		@RequestMapping("/index/user/addUser")
		public Msg addUser(User user){
			user.setSex("男");
			user.setName(user.getUsername());
}

/** * 
@version 1.0 * 
@parameter  * 
@since  * 
@return  */
@Controller
public class EmailController {
	
	@Autowired
	private EmailService emailService;
	@Autowired
	private UserService userService;
	
	@ResponseBody
	@RequestMapping("index/email/addEmail")
	public Msg addEmail(EmailData emailData,HttpSession session)
	{
		Email email=new Email();
		User user=(User) session.getAttribute("user");
		try {
			if(user.getRole()==3)
			{
				email.setTitle(emailData.getTitle());
				email.setContent(emailData.getContent());
				email.setSendid(user.getId());
				email.setToid(0);
				email.setTime(new Date());
			}else{
	 * type:1是月卡年卡没到期*/
	@RequestMapping("/index/check/ispay")
	@ResponseBody
	public Msg ispay(@RequestParam("parknum") Integer parknum)
	{
		ParkInfo parkInfo=parkinfoservice.findParkinfoByParknum(parknum.intValue());
		Date date=new Date();
		Date parkin;
		long time=0;
		long day=0;
		int illegalmoney=0;
		//临时停车(10块)
		if(parkInfo==null)
		{
			return Msg.fail().add("type", 9);
		}
		//是否有违规需要缴费
		IllegalInfo illegalInfo=illegalInfoService.findByCarnum(parkInfo.getCarnum(),parkInfo.getParkin());
		if(illegalInfo!=null)
		{
			illegalmoney=Constants.ILLEGAL;
		}
		if(StringUtils.isEmpty(parkInfo.getCardnum()))
		{
			//需要现金或扫码支付,1小时10块
			parkin=parkInfo.getParkin();
			day=date.getTime()-parkin.getTime();
			time=day/(1000*60*60);
			if(day%(1000*60*60)>0){
			time+=1;
			}
			return Msg.success().add("money_pay", time*Constants.TEMPMONEY+illegalmoney).add("va_msg", "临时停车"+(illegalmoney>0? ",有违规:"+illegalInfo.getIllegalInfo():""));
		}
		String cardnum=parkInfo.getCardnum();
		Depotcard depotcard=depotcardService.findByCardnum(cardnum);
		//正常卡(8块)
		if(depotcard!=null&&depotcard.getType()==1)
		{
			//卡中余额
			double balance=depotcard.getMoney();
			int money=0;
			List<CouponData> coupons=couponService.findAllCouponByCardNum(cardnum, "");
			if(coupons!=null&&coupons.size()>0)
			{
				money=coupons.get(0).getMoney();
			}
		List<DepotcardManagerData> depotcardManagerDatas = null;
		PageUtil<DepotcardManagerData> pageUtil=new PageUtil<DepotcardManagerData>();
		int count =0;
		int countPage=0;
		User user1 = (User) session.getAttribute("user");
		if(cardnum==null)
		{
			cardnum="";
		}
		if (user1 != null) {
			if (user1.getRole() == 1) {
				depotcardManagerDatas = depotcardService.findAllDepotcard(cardnum,page.intValue()*10,Constants.PAGESIZE);
				count=depotcardService.findAllDepotcardCount(cardnum);
			} else if (user1.getRole() == 2) {
				depotcardManagerDatas = depotcardService.findAllDepotcard(cardnum,page.intValue()*10,Constants.PAGESIZE);
				count=depotcardService.findAllDepotcardCount(cardnum);
			} else if (user1.getRole() == 3) {
				depotcardManagerDatas = depotcardService.findByCardId(user1.getCardid());
				count=depotcardManagerDatas.size();
			} else if (user1.getRole() == 4) {

			} else {

			}
		}
		countPage=count/10;
		if(count%10>0)
		{
			countPage++;
		}
		pageUtil.setExtra(cardnum);
		pageUtil.setCurrent(page);
		pageUtil.setCount(count);
		pageUtil.setCountPage(countPage);
		pageUtil.setPages(depotcardManagerDatas);
		model.addAttribute("depotcardManagerDatas", pageUtil);
		return "depotcard";
	}
	
	@RequestMapping("/index/findAllCoupon")
	public String findAllCoupon(Model model, HttpSession session,@RequestParam(value="page",required=false) Integer page,@RequestParam(value="name",required=false) String name)
	{

/** * 
@version 1.0 * 
@parameter  * 
@since  * 
@return  */
@Controller
public class CouponController {
	
	@Autowired
	private CouponService couponService;
	@Autowired
	private UserService userService;
	@Autowired
	private DepotcardService depotcardService;
	
	@ResponseBody
	@RequestMapping("/index/coupon/findCouponById")
	public Msg findCouponById(@RequestParam("id") Integer id)
	{
		Coupon coupon=couponService.findCouponById(id.intValue());
		if(coupon==null)
		{
			return Msg.fail().add("va_msg", "查询出错,请刷新页面!");
		}
		return Msg.success().add("coupon", coupon);
	}
			email.setUserisread(1);
			emailService.updateEmail(email);
		}
		return Msg.success().add("email", email).add("respon", respon);
	}
	
	@ResponseBody
	@RequestMapping("index/email/responEmailSubmit")
	public Msg	responEmailSubmit(EmailData emailData,HttpSession session)
	{
		User user=(User) session.getAttribute("user");
		Email email1=emailService.findById(emailData.getId());
		Email email=new Email();
		email.setTitle(emailData.getTitle());
		email.setContent(emailData.getContent());
		email.setTime(new Date());
		email.setToid(email1.getSendid());
		email.setSendid(user.getId());
		emailService.addEmail(email);
		email1.setManagerisread(2);
		emailService.updateEmail(email1);
		return Msg.success();
	}
	@ResponseBody
	@RequestMapping("index/email/deleteEmai")
	public Msg deleteEmai(EmailData emailData,HttpSession session)
	{
		try {
			User user=(User) session.getAttribute("user");
			Email email=emailService.findById(emailData.getId());
			if(user.getRole()!=3)
			{
			email.setManagedelete(1);
			}else{
			email.setUserdeleted(1);
			}
			emailService.updateEmail(email);
		} catch (Exception e) {
			return Msg.fail().add("va_msg", "删除失败!");
		}
		return Msg.success().add("va_msg", "删除成功!");
	}
}

		return super.preHandle(request, response, handler);
	}
}

/**
 * *
 * 
 * @version 1.0 *
 * @parameter *
 * @since *
 * @return
 */
public class Export {

	public String createExcel(HttpServletResponse response) throws IOException {

		// 创建HSSFWorkbook对象(excel的文档对象)
		HSSFWorkbook wb = new HSSFWorkbook();
		// 建立新的sheet对象(excel的表单)
		HSSFSheet sheet = wb.createSheet("成绩表");
		// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
		HSSFRow row1 = sheet.createRow(0);
		// 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
		HSSFCell cell = row1.createCell(0);
		// 设置单元格内容
		cell.setCellValue("学员考试成绩一览表");
		// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
		sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));
		// 在sheet里创建第二行
		HSSFRow row2 = sheet.createRow(1);

/**
 * *
 *
 * @version 1.0 *
 * @parameter *
 * @since *
 * @return
 */
@Controller
public class CheckController {

	@Autowired
				users=userService.findUsersByRole(tag.intValue(),page*10,Constants.PAGESIZE);
				count=userService.findAllUserCount(tag);
			} else if (user1.getRole() == 2) {
				users=userService.findUsersByRoleMan(tag.intValue(),page*10,Constants.PAGESIZE);
				count=userService.findAllUserCountMan(tag);
			} else if (user1.getRole() == 3) {
				users=new ArrayList<User>();
				user1=userService.findUserById(user1.getId());
				users.add(user1);
				count=1;
			} else if (user1.getRole() == 4) {

			} else {

			}
		}
		countPage=count/10;
		if(count%10!=0)
		{
			countPage+=1;
		}
		pageUtil.setCountPage(countPage);
		pageUtil.setCount(count);
		pageUtil.setPages(users);
		model.addAttribute("users", pageUtil);
		return "user";
	}
	
	@RequestMapping("/index/findAllDepot")
	public String findAllDepot(Model model, HttpSession session,@RequestParam(value="page",required=false) Integer page,@RequestParam(value="name",required=false) String name)
	{

		if(page==null)
		{
			page=0;
		}
		if(page!=0)
		{
			page--;
		}
		if(name==null)
		{
			name="";
		}
		List<ParkinfoallData> parkinfoallDatas=null;
		PageUtil<ParkinfoallData> pageUtil=new PageUtil<ParkinfoallData>();
				Depotcard depotcard=depotcardService.findByCardid(user1.getCardid());
				parkinfoallDatas=parkinfoallService.findByCardNumByPage(page*10,Constants.PAGESIZE,depotcard.getCardnum(),name);
				List<ParkinfoallData> parkinfoallDatas1=parkinfoallService.findByCardNum(depotcard.getCardnum(),name);
				count=parkinfoallDatas1.size();
			} else if (user1.getRole() == 4) {

			} else {

			}
		}
		countPage=count/10;
		if(count%10!=0)
		{
			countPage++;
		}
		pageUtil.setExtra(name);
		pageUtil.setPages(parkinfoallDatas);
		pageUtil.setCount(count);
		pageUtil.setCurrent(page);
		pageUtil.setCountPage(countPage);
		model.addAttribute("parkinfoallDatas", pageUtil);
		return "depot";
	}
	
	@RequestMapping("/index/findAllIllegalinfo")
	public String findAllIllegalinfo(Model model, HttpSession session,@RequestParam(value="page",required=false) Integer page,@RequestParam(value="name",required=false)String name)
	{
		if(page==null)
		{
			page=0;
		}
		if(page!=0)
		{
			page--;
		}
		if(name==null)
		{
			name="";
		}
		List<IllegalInfo> illegalInfo=null;
		PageUtil<IllegalInfo> pageUtil=new PageUtil<IllegalInfo>();
		User user1 = (User) session.getAttribute("user");
		int count=0;
		int countPage=0;
		if (user1 != null) {
			if (user1.getRole() == 1) {
				illegalInfo=illegalInfoService.findAllIllegalInfo(page*10,Constants.PAGESIZE,name);
				count=illegalInfoService.findAllIllegalInfoCount(name);
			} else if (user1.getRole() == 2) {
				illegalInfo=illegalInfoService.findAllIllegalInfo(page*10,Constants.PAGESIZE,name);
		incomeService.save(income);
		userService.saveByaddDepotCard(depotcardManagerData.getUsername(),depotcardManagerData.getName(),depotcard.getId());
		 return Msg.success().add("depotcard", depotcard).add("username", depotcardManagerData.getUsername());
	}
	
	@ResponseBody
	@RequestMapping("/index/card/findDepotCardByCardnum")
	public Msg findDepotCardByCardnum(@RequestParam("cardnum")String cardnum,HttpSession session)
	{
		User currentUser=(User) session.getAttribute("user");
		Depotcard depotcard=depotcardService.findByCardnum(cardnum);
		if(depotcard==null)
		{
			return Msg.fail();
		}
		int typeid=depotcard.getType();
		int cardid=depotcard.getId();
		User user=userService.findUserByCardid(cardid);
		CardType cardType=cardtypeService.findCardTypeByid(typeid);
		List<CardType> cardTypes=cardtypeService.findAllCardType();
		return Msg.success().add("depotcard", depotcard).add("cardType", cardType)
				.add("cardTypes", cardTypes).add("user", user).add("user_role", currentUser.getRole());
	}
	@ResponseBody
	@RequestMapping("/index/card/alertDepotCard")
	public Msg alertDepotCard(DepotcardManagerData depotcardManagerData)
	{
			
		Depotcard depotcard=depotcardService.findByCardnum(depotcardManagerData.getCardnum());
		if(depotcardManagerData.getType()==null)
		{
			depotcardManagerData.setType(Integer.toString(depotcard.getType()));
		}
		if(depotcardManagerData.getIslose()!=depotcard.getIslose()
				||Integer.parseInt(depotcardManagerData.getType())!=depotcard.getType())
		{
			depotcard.setIslose(depotcardManagerData.getIslose());
			depotcard.setType(Integer.parseInt(depotcardManagerData.getType()));
			depotcardService.updateDepotcardBycardnum(depotcard);
		}else{
			return Msg.fail();
		}
		return Msg.success();
	}
	@ResponseBody
	@RequestMapping("/index/card/deleteDepotCard")
	@Transactional
	public Msg deleteDepotCard(@RequestParam("cardnum")String cardnum)
	{
		Depotcard depotcard=depotcardService.findByCardnum(cardnum);
		int cardid=depotcard.getId();
		ParkInfo parkInfo=parkinfoService.findParkinfoByCardnum(cardnum);
		//正在停车不能删
		if(parkInfo!=null)

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值