Java项目:停车位管理系(java+SpringBoot+MybatisPlus+Thymeleaf+mysql+maven)
Posted qq_1334611189
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java项目:停车位管理系(java+SpringBoot+MybatisPlus+Thymeleaf+mysql+maven)相关的知识,希望对你有一定的参考价值。
基于SpringBoot+Thymeleaf+Mybatis框架,这个系统相对来说比较简单,很容易学习并快速上手,因为逻辑很清晰,没有太复杂的代码逻辑,所以学习起来会很快。分前台和后台 前台是用户登录 后台是管理员登录
前台用户功能有:个人中心、订单管理、查看车位、预约车位、留言。后台主要有:车位管理、订单管理、用户管理、留言管理、公告管理等。
运行环境:windows/Linux均可、jdk1.8、mysql5.7、idea/eclipse均可。
用户管理控制器:
/**
* 用户管理控制器
*/
@RequestMapping("/user/")
@Controller
public class UserController
@Autowired
private IUserService userService;
@Autowired
private IRoleService roleService;
@Resource
private ProcessEngineConfiguration configuration;
@Resource
private ProcessEngine engine;
@GetMapping("/index")
@ApiOperation("跳转用户页接口")
@PreAuthorize("hasRole('管理员')")
public String index(String menuid,Model model)
List<Role> roles = queryAllRole();
model.addAttribute("roles",roles);
model.addAttribute("menuid",menuid);
//用户首页
return "views/user/user_list";
@GetMapping("/listpage")
@ApiOperation("查询用户分页数据接口")
@ApiImplicitParams(
@ApiImplicitParam(name = "UserQuery", value = "用户查询对象", defaultValue = "userQuery对象")
)
@ResponseBody
@PreAuthorize("hasRole('管理员')")
public PageList listpage(UserQuery userQuery)
return userService.listpage(userQuery);
//添加用户
@PostMapping("/addUser")
@ApiOperation("添加用户接口")
@ResponseBody
public Map<String,Object> addUser(User user)
Map<String, Object> ret = new HashMap<>();
ret.put("code",-1);
if(StringUtils.isEmpty(user.getUsername()))
ret.put("msg","请填写用户名");
return ret;
if(StringUtils.isEmpty(user.getPassword()))
ret.put("msg","请填写密码");
return ret;
if(StringUtils.isEmpty(user.getEmail()))
ret.put("msg","请填写邮箱");
return ret;
if(StringUtils.isEmpty(user.getTel()))
ret.put("msg","请填写手机号");
return ret;
if(StringUtils.isEmpty(user.getHeadImg()))
ret.put("msg","请上传头像");
return ret;
if(userService.addUser(user)<=0)
ret.put("msg", "添加用户失败");
return ret;
ret.put("code",0);
ret.put("msg","添加用户成功");
return ret;
/**
* 修改用户信息操作
* @param user
* @return
*/
@PostMapping("/editSaveUser")
@ApiOperation("修改用户接口")
@PreAuthorize("hasRole('管理员')")
@ResponseBody
public Message editSaveUser(User user)
if(StringUtils.isEmpty(user.getUsername()))
return Message.error("请填写用户名");
if(StringUtils.isEmpty(user.getEmail()))
return Message.error("请填写邮箱");
if(StringUtils.isEmpty(user.getTel()))
return Message.error("请填写手机号");
try
userService.editSaveUser(user);
return Message.success();
catch (Exception e)
e.printStackTrace();
return Message.error("修改用户信息失败");
//添加用户
@GetMapping("/deleteUser")
@ApiOperation("删除用户接口")
@ApiImplicitParams(
@ApiImplicitParam(name = "id", value = "如:88",required = true)
)
@PreAuthorize("hasRole('管理员')")
@ResponseBody
public AjaxResult deleteUser(@RequestParam(required = true) Long id)
AjaxResult ajaxResult = new AjaxResult();
try
userService.deleteUser(id);
catch (Exception e)
e.printStackTrace();
return new AjaxResult("删除失败");
return ajaxResult;
@PostMapping(value="/deleteBatchUser")
@ApiOperation("批量删除用户接口")
@PreAuthorize("hasRole('管理员')")
@ResponseBody
public AjaxResult deleteBatchUser(String ids)
String[] idsArr = ids.split(",");
List list = new ArrayList();
for(int i=0;i<idsArr.length;i++)
list.add(idsArr[i]);
try
userService.batchRemove(list);
return new AjaxResult();
catch(Exception e)
return new AjaxResult("批量删除失败");
//查询所有角色
public List<Role> queryAllRole()
return roleService.queryAll();
//添加用户的角色
@PostMapping("/addUserRole")
@ApiOperation("添加用户角色接口")
@ApiImplicitParams(
@ApiImplicitParam(name = "paramMap", value = "如:userId:1,[1,2,3,4]]")
)
@ResponseBody
public AjaxResult addUserRole(@RequestBody Map paramMap)
AjaxResult ajaxResult = new AjaxResult();
String userId = (String)paramMap.get("userId");
List roleIds = (List) paramMap.get("roleIds");
try
//添加用户对应的角色
roleService.addUserRole(userId,roleIds);
return ajaxResult;
catch (Exception e)
e.printStackTrace();
return new AjaxResult("保存角色失败");
//添加用户
@RequestMapping("/regSaveUser")
@ResponseBody
public Long addTeacher(User user)
System.out.println("保存用户...."+user);
userService.addUser(user);
//保存工作流程操作
IdentityService is = engine.getIdentityService();
// 添加用户组
org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername());
// 添加用户对应的组关系
Group stuGroup = new GroupEntityImpl();
stuGroup.setId("stuGroup");
Group tGroup = new GroupEntityImpl();
tGroup.setId("tGroup");
if(user.getType() == 2)
//保存老师组
userService.saveRel(is, userInfo, tGroup);
if(user.getType() == 3)
//保存学生组
userService.saveRel(is, userInfo, stuGroup);
Long userId = user.getId();
return userId;
/**
* 修改密码页面
* @return
*/
@RequestMapping(value="/update_pwd",method=RequestMethod.GET)
public String updatePwd()
return "views/user/update_pwd";
/**
* 修改密码操作
* @param oldPwd
* @param newPwd
* @return
*/
@ResponseBody
@PostMapping("/update_pwd")
public Message updatePassword(@RequestParam(name="oldPwd",required=true)String oldPwd,
@RequestParam(name="newPwd",required=true)String newPwd)
String username = CommonUtils.getLoginUser().getUsername();
User userByUserName = userService.findUserByUserName(username);
if(userByUserName!=null)
String password = userByUserName.getPassword();
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
boolean matches = bCryptPasswordEncoder.matches(oldPwd, password);
if(!matches)
return Message.error("旧密码不正确");//true
userByUserName.setPassword(bCryptPasswordEncoder.encode(newPwd));
if(userService.editUserPassword(userByUserName)<=0)
return Message.error("密码修改失败");
return Message.success();
/**
* 清除缓存
* @param request
* @param response
* @return
*/
@ResponseBody
@PostMapping("/clear_cache")
public Message clearCache(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
return Message.success();
角色控制层:
@Controller
public class RoleController
@Autowired
private IRoleService roleService;
@Autowired
private IPermissionService permissionService;
@PreAuthorize("hasRole('管理员')")
@ResponseBody
@RequestMapping("/role/doAdd")
public String doAdd(Role role)
//角色添加
return "ok";
//添加角色
@RequestMapping("/role/addRole")
@PreAuthorize("hasRole('管理员')")
@ResponseBody
public AjaxResult addRole(Role role)
System.out.println("保存角色...."+role);
try
roleService.saveRole(role);
return new AjaxResult();
catch (Exception e)
e.printStackTrace();
return new AjaxResult("操作失败");
@PreAuthorize("hasRole('管理员')")
@RequestMapping("/role/index")
public String index(Model model)
List<Permission> permisisons = permissionService.findAllPermisisons();
model.addAttribute("permissions",permisisons);
//返回角色
return "views/role/role_list";
@RequestMapping("/role/listpage")
@ResponseBody
public PageList listpage(RoleQuery roleQuery)
System.out.println("传递参数:"+roleQuery);
return roleService.listpage(roleQuery);
//修改用户editSaveUser
@RequestMapping("/role/editSaveRole")
@ResponseBody
public AjaxResult editSaveRole(Role role)
System.out.println("修改角色...."+role);
try
roleService.editSaveRole(role);
return new AjaxResult();
catch (Exception e)
e.printStackTrace();
return new AjaxResult("修改失败");
//添加角色
@RequestMapping("/role/deleteRole")
@ResponseBody
public AjaxResult deleteRole(Long id)
System.out.println("删除角色...."+id);
AjaxResult ajaxResult = new AjaxResult();
try
roleService.deleteRole(id);
catch (Exception e)
e.printStackTrace();
return new AjaxResult("删除失败");
return ajaxResult;
//添加角色权限 addRolePermission
@RequestMapping("/role/addRolePermission")
@ResponseBody
public AjaxResult addRolePermission(@RequestBody Map paramMap)
AjaxResult ajaxResult = new AjaxResult();
String roleId = (String)paramMap.get("roleId");
List permissionIds = (List) paramMap.get("permissionIds");
try
//添加角色对应的权限
roleService.addRolePermission(roleId,permissionIds);
return ajaxResult;
catch (Exception e)
e.printStackTrace();
return new AjaxResult("保存权限失败");
菜单Controller:
/**
* 菜单Controller
*/
@Controller
public class MenuController
@Autowired
private IMenuService menuService;
@Autowired
private IPermissionService permissionService;
@PreAuthorize("hasRole('管理员')")
@RequestMapping("/menu/index")
public String index(Model model)
List<Menu> menus = menuService.queryAllMenu();
model.addAttribute("menus",menus);
//返回菜单页面
return "views/menu/menu_list";
//添加顶级菜单 addTopMenu
@PreAuthorize("hasRole('管理员')")
@RequestMapping("/menu/addTopMenu")
@ResponseBody
public AjaxResult addTopMenu(@RequestBody Menu menu)
AjaxResult ajaxResult = new AjaxResult();
try
menuService.addTopMenu(menu);
return ajaxResult;
catch(Exception e)
e.printStackTrace();
return new AjaxResult("保存失败");
//添加子菜单 addSubMenuFormObj
@PreAuthorize("hasRole('管理员')")
@RequestMapping("/menu/addSubMenu")
@ResponseBody
public AjaxResult addSubMenu(@RequestBody Menu menu)
AjaxResult ajaxResult = new AjaxResult();
try
menuService.addSubMenu(menu);
return ajaxResult;
catch(Exception e)
e.printStackTrace();
return new AjaxResult("保存失败");
//编辑菜单
@PreAuthorize("hasRole('管理员')")
@GetMapping("/menu/editMenu")
@ResponseBody
public Map<String,Object> editMenu(@RequestParam("id")Long id)
Map<String, Object> ret = new HashMap<>();
Menu byId = menuService.findById(id);
ret.put("data",byId);
ret.put("code",0);
return ret;
/**
* 编辑菜单操作
*/
@PreAuthorize("hasRole('管理员')")
@PostMapping("/menu/editMenu")
@ResponseBody
public Map<String,Object> editMenu(Menu menu)
Map<String, Object> ret = new HashMap<>();
ret.put("code",-1);
if(StringUtils.isEmpty(menu.getName()))
ret.put("msg","请填写菜单名称");
return ret;
String icon = menu.getIcon();
if(!StringUtils.isEmpty(icon))
menu.setIcon(icon.substring(0,icon.length()-1));
if(menuService.editMenu(menu)<=0)
ret.put("msg","菜单更新失败");
return ret;
ret.put("code",0);
ret.put("msg","更新成功");
return ret;
/**
* 编辑菜单操作
*/
@PreAuthorize("hasRole('管理员')")
@PostMapping("/menu/delete")
@ResponseBody
public Map<String,Object> deleteMenu(@RequestParam(name = "id")Long id)
Map<String, Object> ret = new HashMap<>();
ret.put("code",-1);
try
menuService.deleteMenu(id);
permissionService.deleteByPid(id);
ret.put("code",0);
ret.put("msg","更新成功");
return ret;
catch (Exception e)
e.printStackTrace();
ret.put("msg","删除失败,有关联数据");
return ret;
以上是关于Java项目:停车位管理系(java+SpringBoot+MybatisPlus+Thymeleaf+mysql+maven)的主要内容,如果未能解决你的问题,请参考以下文章
java计算机毕业设计springboot+vue超时代停车场管理平台系统
java计算机毕业设计springboot+vue超时代停车场管理平台系统
java计算机毕业设计springboot+vue超时代停车场管理平台系统