作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本项目包含管理员、普通用户两种角色;
管理员主要功能包括:
后台首页、停车位信息管理、车辆求租信息审核、车辆出租信息审核、管理员广播等;
普通用户主要功能包括:
个人信息管理、租入订单(租入的车、租入的车位)、租出订单、发布车辆出租信息、我要租车、我要租车位、留言、来自管理员的公告等内容;
环境需要
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. 前端:HTML+CSS+JavaScript+jsp+jquery+bootstrap+layui
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中util/DBUtil.java配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/ssm_qiche_rentsys/ 登录
运行截图
管理员角色
普通用户角色
相关代码
汽车控制器
package com.cwj.taiqiangle.controller;
import com.cwj.taiqiangle.model.JsonMsg;
import com.cwj.taiqiangle.service.CarOutService;
import com.cwj.taiqiangle.service.CarService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.sql.SQLException;
@Controller
@RequestMapping(value = "/car")
public class CarController {
CarService orderService = new CarService();
CarOutService outOrderService = new CarOutService();
/**
* Code = "200" 成功存入
* Code = "202" 输入存在问题
* Code = "203" 系统错误
* @param sender_id
* @param carName
* @param stringPrice
* @return
*/
@RequestMapping(value = "/userAddCar", method = RequestMethod.GET)
@ResponseBody
public JsonMsg userAddCar(int sender_id, String carName, String stringPrice) {
int price = 0;
try {
price = Integer.parseInt(stringPrice);
} catch (Exception e) {
System.out.println("Chenjie Debug");
e.printStackTrace();
}
JsonMsg jsonMsg = new JsonMsg();
if (price < 0 || carName == null) {
jsonMsg.setCode("202");
jsonMsg.setData(0);
}
try {
int i = orderService.addCar(carName, price, "还没有实现照片上传");
System.out.println("addCar之后的返回值是:"+i);
if (i >= 1) {
int r = outOrderService.add(sender_id, carName, price, "还没有实现照片上传");
if (r == 1) {
jsonMsg.setCode("200");
jsonMsg.setData(1);
} else {
jsonMsg.setCode("2031");
jsonMsg.setData(-1);
}
} else {
jsonMsg.setCode("2032");
jsonMsg.setData(-1);
}
} catch (SQLException e) {
jsonMsg.setCode("2033");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
}
Park控制器
package com.cwj.taiqiangle.controller;
import com.cwj.taiqiangle.model.JsonMsg;
import com.cwj.taiqiangle.model.ParkBean;
import com.cwj.taiqiangle.service.ParkService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping(value = "/park")
public class ParkController {
ParkService parkService=new ParkService();
/**
* 添加park
*自动生成id
* Code200 1成功添加
* Code404 -1 添加失败/异常/price格式错误/缺少参数
* @param name
* @param price
* @return
*/
@RequestMapping(value = "/parkAdd", method = RequestMethod.GET)
@ResponseBody
public JsonMsg parkAdd(String name,String price)
{
JsonMsg jsonMsg=new JsonMsg();
try {
if(name==null||price==null)
{
throw new Exception("缺少参数");
}
int i=parkService.addPark(name,Integer.parseInt(price));
jsonMsg.setCode("200");
jsonMsg.setData(1);
} catch (Exception e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
*利用id删除park
* code200 1找到并删除成功
* code200 0没有找到
* code202 0车位正在被使用,不可以删除
* code404 -1删除异常
* @param id
* @return
*/
@RequestMapping(value = "/parkDelete", method = RequestMethod.GET)
@ResponseBody
public JsonMsg parkDelete(int id)
{
JsonMsg jsonMsg=new JsonMsg();
try {
ParkBean park=parkService.getParkById(id);
if(park.getStatus()==0)
{
int i=parkService.deleteParkById(id);
jsonMsg.setCode("200");
jsonMsg.setData(i);
}
else{
jsonMsg.setCode("202");
jsonMsg.setData(0);
}
}
catch (Exception e)
{
jsonMsg.setCode("404");
jsonMsg.setData("-1");
e.printStackTrace();
}
return jsonMsg;
}
/**
*Code 200 得到所有parks
* Code 404 -1异常
* @return
*/
@RequestMapping(value = "/parkTraversal", method = RequestMethod.GET)
@ResponseBody
public JsonMsg parkTraversal()
{
JsonMsg jsonMsg=new JsonMsg();
try {
List<ParkBean> parks=parkService.getAllPark();
jsonMsg.setCode("200");
jsonMsg.setData(parks);
}
catch (Exception e)
{
jsonMsg.setCode("404");
jsonMsg.setData("-1");
e.printStackTrace();
}
return jsonMsg;
}
/**
*id必须设置
* 其他参数不设置代表不更新
* Code 200 data=1更新成功
* Code 200 data=0 没有更新
* Code 404 异常
* @param id
* @param name
* @param price_per_day
* @param status
* @return
*/
@RequestMapping(value = "/parkUpdate", method = RequestMethod.GET)
@ResponseBody
public JsonMsg parkUpdate(int id,String name,String price_per_day,String status)
{
JsonMsg jsonMsg=new JsonMsg();
try {
ParkBean parkBean=new ParkBean();
if(name!=null)
{
parkBean.setName(name);
}
if(price_per_day!=null)
{
parkBean.setPrice_per_day(Integer.parseInt(price_per_day));
}
if(status!=null)
{
parkBean.setStatus(Integer.parseInt(status));
}
int i=parkService.updateParkById(id,parkBean);
jsonMsg.setCode("200");
jsonMsg.setData(1);
}
catch (Exception e)
{
jsonMsg.setCode("404");
jsonMsg.setData("-1");
e.printStackTrace();
}
return jsonMsg;
}
/**
*Code 200 得到所有空闲状态的park
* Code 404 异常
* @return
*/
@RequestMapping(value = "/parkIdleTraversal", method = RequestMethod.GET)
@ResponseBody
public JsonMsg parkIdleTraversal()
{
JsonMsg jsonMsg=new JsonMsg();
try {
List<ParkBean> parkBeans=parkService.getIdlePark();
jsonMsg.setCode("200");
jsonMsg.setData(parkBeans);
}
catch (Exception e)
{
jsonMsg.setCode("404");
jsonMsg.setData("-1");
e.printStackTrace();
}
return jsonMsg;
}
}
消息控制器
package com.cwj.taiqiangle.controller;
import com.cwj.taiqiangle.model.JsonMsg;
import com.cwj.taiqiangle.service.MessageService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.sql.SQLException;
@Controller
@RequestMapping(value="/msg")
public class MessageController {
MessageService messageService=new MessageService();
/**
* 添加广播信息
* Code=200 data=1成功
* Code=200 data=0失败
* Code=404 data=-1异常
* @param msg
* @return
*/
@RequestMapping(value = "/msgAdd", method = RequestMethod.GET)
@ResponseBody
public JsonMsg msgAdd(String msg)
{
JsonMsg jsonMsg=new JsonMsg();
try {
jsonMsg.setCode("200");
jsonMsg.setData(messageService.addMsg(msg));
} catch (SQLException e) {
jsonMsg.setData(-1);
jsonMsg.setCode("404");
e.printStackTrace();
}
return jsonMsg;
}
/**
* * 删除广播信息
* Code=200 data=1成功
* Code=200 data=0失败
* Code=404 data=-1异常
* @param id
* @return
*/
@RequestMapping(value = "/msgDelete", method = RequestMethod.GET)
@ResponseBody
public JsonMsg msgAdd(int id)
{
JsonMsg jsonMsg=new JsonMsg();
try {
jsonMsg.setCode("200");
jsonMsg.setData(messageService.deleteMsg(id));
} catch (SQLException e) {
jsonMsg.setData(-1);
jsonMsg.setCode("404");
e.printStackTrace();
}
return jsonMsg;
}
/**
* * 得到全部广播信息
* Code=200 data=list成功
* Code=200 data=null失败,没有信息
* Code=404 data=-1异常
* @return
*/
@RequestMapping(value = "/msgTraversal", method = RequestMethod.GET)
@ResponseBody
public JsonMsg msgTraversal()
{
JsonMsg jsonMsg=new JsonMsg();
try {
jsonMsg.setCode("200");
jsonMsg.setData(messageService.getAllMsg());
} catch (SQLException e) {
jsonMsg.setData(-1);
jsonMsg.setCode("404");
e.printStackTrace();
}
return jsonMsg;
}
}
用户管理控制器
package com.cwj.taiqiangle.controller;
import com.cwj.taiqiangle.model.JsonMsg;
import com.cwj.taiqiangle.model.UserBean;
import com.cwj.taiqiangle.service.SendMailService;
import com.cwj.taiqiangle.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.sql.SQLException;
import java.util.List;
@Controller
@RequestMapping(value = "/user")
public class UserManageController {
UserService userService = new UserService();
SendMailService sendMailService = new SendMailService();
/**
* Code:200 Data=userBean 用户信息正确
* Code:205 Data=0 用户不存在
* Code:206 Data=-3 用户密码错误
* Code:207 Data=-2 用户账户被重复
* Code:404 Data=-1 catch异常
*
* @param username
* @param password
* @return
*/
@RequestMapping(value = "/userLogin", method = RequestMethod.GET)
@ResponseBody
public JsonMsg userLogin(String username, String password) {
JsonMsg jsonMsg = new JsonMsg();
try {
if (userService.getUserByName(username).size() == 0) {
jsonMsg.setCode("205");
jsonMsg.setData(0);
} else if (userService.getUserByName(username).size() != 1) {
jsonMsg.setCode("207");
jsonMsg.setData(-2);
}
else{
int id;
if(!userService.getUserByName(username).get(0).getPassword().equals(password))
{
jsonMsg.setCode("206");
jsonMsg.setData(-3);
} else {
id = userService.getUserByName(username).get(0).getId();
jsonMsg.setCode("200");
jsonMsg.setData(userService.getUserById(id));
}
}
} catch (SQLException e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
* 注册用户
* Code="200",Data=1(int)则注册成功
* Code="202",Data=0 (int)注册失败,用户已经存在
* Code="404" Data=-1页面丢失
*
* @param username
* @param password
* @param email
* @return
*/
@RequestMapping(value = "/userRegister", method = RequestMethod.GET)
@ResponseBody
public JsonMsg addUser(String username, String password, String email) {
JsonMsg jsonMsg = new JsonMsg();
try {
int result =
userService.addUser(username, password, email, null, null, 0);
if (result == 0) {
jsonMsg.setData(0);
jsonMsg.setCode("202");
} else {
jsonMsg.setData(1);
jsonMsg.setCode("200");
}
} catch (Exception e) {
jsonMsg.setData(-1);
jsonMsg.setCode("404");
e.printStackTrace();
}
return jsonMsg;
}
/**
* 删除用户(管理员操作)
* Code=200,Data=1,删除成功
* Code=202,Data=0,删除失败
* Code=404,Data=-1页面丢失
*
* @param id
* @return
*/
@RequestMapping(value = "/userDelete", method = RequestMethod.GET)
@ResponseBody
public JsonMsg removeUserById(int id)
{
JsonMsg jsonMsg=new JsonMsg();
try {
int i = userService.removeUserById(id);
if (i == 1) {
jsonMsg.setCode("200");
jsonMsg.setData(1);
} else {
jsonMsg.setCode("202");
jsonMsg.setData(0);
}
} catch (SQLException e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
* 发送邮件
* Code=200 Data=1发送成功
* Code=205 Data=0发送失败
* Code=404 Data=-1页面失效
*
* @param email
* @param username
* @return
*/
@RequestMapping(value = "/sendEmail", method = RequestMethod.GET)
@ResponseBody
public JsonMsg sendEmail(String email, String username) {
JsonMsg jsonMsg = new JsonMsg();
try {
if (sendMailService.sendmail(email, username)) {
jsonMsg.setCode("200");
jsonMsg.setData(1);
} else {
jsonMsg.setCode("205");
jsonMsg.setData(0);
}
} catch (Exception e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
* Code=404 Data=-1 抛出异常不做改变
* Code=202 Data=0 不变/修改无效
* Code=202 Data=-2 id不存在
* Code=202 Data=-3 名字修改时产生重复
* Code=200 Data>=1 修改成功 Data=修改的信息数量
* 参数都可以为null,但是id为null无法更新
* null的参数不做更新
* @param id
* @param username
* @param password
* @param email
* @param description
* @param pic
* @param money
* @return
*/
@RequestMapping(value = "/userUpdate", method = RequestMethod.GET)
@ResponseBody
public JsonMsg updateUser(int id,String username,String password,String email,String description,String pic,String money)
{
int status=0;
JsonMsg jsonMsg=new JsonMsg();
UserBean ub=new UserBean();
ub.setUserName(username);
ub.setPassword(password);
ub.setEmail(email);
ub.setDescription(description);
ub.setPic(pic);
try {
ub.setMoney(Integer.parseInt(money));
} catch (Exception e) {
ub.setMoney(Integer.MIN_VALUE);
}
try {
status = userService.updateUserById(id, ub);
jsonMsg.setData(status);
if (status >= 1) {
jsonMsg.setCode("200");
} else {
jsonMsg.setCode("202");
}
} catch (SQLException e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
* JsonMsg ID具体查找用户
* Code:404,Data=-1查找失败
* Code:200,Data=UserBean 查找成功
* Code:202,Data=0,没有查到
*
* @param id
* @return
*/
@RequestMapping(value = "/userLocate", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getUserByID(int id)
{
JsonMsg jsonMsg=new JsonMsg();
try {
//admin-->曹威杰:我觉得这里的代码写的有点奇怪。我改了一下
/* List<UserBean> users= userService.getUserById(id);
if(users.size()==0)
{
jsonMsg.setData(0);
jsonMsg.setCode("202");
}
else if(users.size()==1){
jsonMsg.setData(users.get(0));
jsonMsg.setCode("200");
}
else{
throw new SQLException("用户名被重复,sql出现问题");
}*/
UserBean user = userService.getUserById(id);
if(user!=null){
jsonMsg.setCode("200");
jsonMsg.setData(user);
} else {
jsonMsg.setCode("202");
jsonMsg.setData(0);
}
//曹威杰:以上就是我的修改
} catch (SQLException e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
* Code200,Data List<UserBean>
* Code404.Data -1 取出失败
*
* @return
*/
@RequestMapping(value = "/userTraversal", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getUsers() {
JsonMsg jsonMsg = new JsonMsg();
try {
jsonMsg.setData(userService.getAllUserBean());
jsonMsg.setCode("200");
} catch (SQLException e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
/**
* Code200,UserBean
* Code202,用户不存在
* Code404 用户被重复/
* Code404.Data -1 取出失败
* @return
*/
@RequestMapping(value = "/getUserByName", method = RequestMethod.GET)
@ResponseBody
public JsonMsg getUsersByName(String username)
{
JsonMsg jsonMsg=new JsonMsg();
try {
List<UserBean> users= userService.getUserByName(username);
if(users.size()==0)
{
jsonMsg.setData(0);
jsonMsg.setCode("202");
}
else if(users.size()==1){
jsonMsg.setData(users.get(0));
jsonMsg.setCode("200");
}
else{
throw new SQLException("用户名被重复,sql出现问题");
}
} catch (SQLException e) {
jsonMsg.setCode("404");
jsonMsg.setData(-1);
e.printStackTrace();
}
return jsonMsg;
}
}
如果也想学习本系统,下面领取。回复:228ssm