项目介绍
springboot停车位管理系统。本系统分为前台和后台两部分:
主要功能说明:
前台用户角色包含以下功能:
修改密码,查看个人订单,查看公告,查看留言,查看车位,查看车位详细情况,用户主页,用户注册登录;
管理员角色包含以下功能:
公告管理,用户管理,留言列表,积分管理,管理员登录,管理员管理,订单管理,车位管理;
适用场景:由于本程序规模不大,可供课程设计,毕业设计学习演示之用。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
1. 后端:SpringBoot+thymeleaf
2. 前端:html+bootstrap+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中resources/application.yml配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
4. 运行项目,前台浏览地址:http://localhost:8085/index
后台浏览地址:http://localhost:8085/admin/login
运行截图
前台界面
后台界面
代码相关
订单管理控制器
@Controller
@RequestMapping("/order")
public class OrderController {
@Autowired
private OrderService orderService;
@Autowired
private ParkService parkService;
//获取列表
@RequestMapping("/showOrder")
public String showOrder(Model model,HttpSession session) {
Users user = (Users)session.getAttribute("LogUser");
List<Order> orderList = orderService.getByUserId(user.getId());
model.addAttribute("orderList",orderList);
return "orderList";
}
//获取列表
@RequestMapping("/jiesuan")
public String jiesuanOrder(@RequestParam("id") int id) {
Order order = orderService.getById(id);
order.setStatus(1);
if(orderService.updateOrderStatus(order)) {
Park park = parkService.getById(order.getPark_id());
park.setStatus(0);
parkService.updateCarStatus(park);
}
return "redirect:/order/showOrder";
}
}
订单逻辑
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
//获取全部
public List<Order> getAll() {
// TODO Auto-generated method stub
return orderMapper.findAllOrder();
}
public Order getById(int id) {
return orderMapper.findById(id);
}
//模糊查询
public List<Order> getByUserId(int id) {
return orderMapper.findByUserId(id);
}
//模糊查询
public List<Order> getByKey(String tmpKey) {
String key = "%"+tmpKey+"%";
return orderMapper.findByKey(key);
}
//删除
public boolean delOrder(int id) {
try {
orderMapper.deleteOrder(id);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}
//添加
public boolean addOrder(Order order) {
try {
orderMapper.insertOrder(order);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}
public boolean updateOrderStatus(Order order) {
try {
orderMapper.updateStatus(order);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}
}
登录拦截器
public class LoginInterceptor implements HandlerInterceptor{
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// TODO Auto-generated method stub
//获取session
HttpSession session = request.getSession(true);
//判断用户是否存在,不存在就跳转到登录界面
if(session.getAttribute("LogAdmin") == null){
response.sendRedirect(request.getContextPath()+"/login");
return false;
}else{
session.setAttribute("LogAdmin", session.getAttribute("LogAdmin"));
return true;
}
}
}
订单mapper
@Mapper
public interface OrderMapper {
@Select("select o.status,u.plate_num,c.price,o.code,o.createDate,o.id,o.total,u.name user_name,u.phone,c.name park_name from Orders o,User u,Park c where o.user_id=u.id and o.park_id=c.id")
List<Order> findAllOrder();
//查询信息
@Select("select o.status,u.plate_num,c.price,o.code,o.createDate,o.id,o.total,u.name user_name,u.phone,c.name park_name from Orders o,User u,Park c where o.user_id=u.id and o.park_id=c.id and (u.plate_num like #{key} or u.name like #{key})")
List<Order> findByKey(@Param("key") String key);
//查询信息
@Select("select o.status,u.plate_num,c.price,o.code,o.createDate,o.id,o.total,u.name user_name,u.phone,c.name park_name from Orders o,User u,Park c where o.user_id=u.id and o.park_id=c.id and user_id=#{id} order by createDate desc")
List<Order> findByUserId(@Param("id") int id);
@Select("select * from Orders where id = #{id}")
Order findById(@Param("id") int id);
//添加信息
@Insert("insert into Orders(user_id,park_id,total,code,createDate,status) values(#{user_id},#{park_id},#{total},UUID(),SYSDATE(),0)")
public void insertOrder(Order order);
//删除信息
@Delete("delete from Orders where id=#{id}")
public void deleteOrder(int id);
//修改信息
@Update("update Orders set status=#{status} where id=#{id}")
public void updateStatus(Order order);
}