基于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项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+Bootstrap+Javascript
使用说明
- 使用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)