基于javaweb的汽车租赁系统(java+ssm+jsp+layui+echarts+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+SSM的汽车租赁系统(java+SSM+JSP+LayUI+echarts+mysql)

ssm汽车租赁系统 carRental

系统概要

汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块。其中系统模块和业务模块底下又有其子模块。

功能模块

一、业务模块 1、客户管理 客户列表 客户分页和模糊查询 客户添加、修改、删除 导出客户数据 2、车辆管理 车辆列表 车辆车辆分页和模糊查询 车辆添加、修改、删除 3、业务管理 汽车出租 1、根据客户身份证查询所有未出租的车辆信息 2、进行出租 出租单管理 1、多条件的模糊查询和分页 2、出租单的修改、删除、导出 汽车入库 检查单管理 1、多条件模糊查询和分页 2、检查单修改 3、导出检查单 4、统计分析 客户男女比例图 月出租量统计 销售员业绩统计 出租车辆类型统计 二、系统模块 1、用户登陆 校验用户名和密码 登陆成功将登陆信息写入登陆日志 未登录进行拦截 2、菜单管理 全查询菜单和根据左边的树查询不同菜单 菜单的添加、修改、删除 3、角色管理 全查询角色和模糊查询 角色的添加、修改、删除 4、用户管理 全查询用户和模糊查询 用户的添加、修改、删除以及重置密码

5、数据源的监控(druid monitor)

技术选型

1.后台技术选型:SSM(Spring SpringMVC Mybatis) 2.前端技术选型:LayUI、dtree、echarts

开发环境

操作系统:Windows/Mac OS 编程语言:Java 开发工具:IDEA、Navicat 项目构建:Maven 3.5.2 服务器:Tomcat 8.5

数据库:MySQL 8.0

用户管理控制器:

/**

  • 用户管理控制器

*/

@RestController

@RequestMapping(“user”)

public class UserController {

@Autowired

private UserService userService;

/*

  • 加载用户列表返回DataGridView

*/

@RequestMapping(“loadAllUser”)

public DataGridView loadAllmeenu(UserVo userVo) {

return this.userService.queryAllUser(userVo);

/*

  • 注册用户–查询用户名是否存在

*/

@RequestMapping(“queryLoginName”)

public ResultObj queryLoginName(UserVo userVo) {

Integer count = this.userService.queryLoginName(userVo.getLoginname());

if (count != 0) {

return ResultObj.USER_EXIST;

return null;

/*

  • 注册用户

*/

@RequestMapping(“signup”)

public ResultObj signup(UserVo userVo) {

try {

String code = WebUtils.getHttpSession().getAttribute(“code”).toString();

if (userVo.getCode().toLowerCase().equals(code)) {

this.userService.signUpUser(userVo);

return ResultObj.SIGNUP_SUCCESS;

} else {

return ResultObj.USER_SIGNUP_CODE_ERROR_MSG;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.SIGNUP_ERROR;

/*

  • 添加用户

*/

@RequestMapping(“addUser”)

public ResultObj addUser(UserVo userVo) {

try {

this.userService.addUser(userVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/*

  • 修改用户

*/

@RequestMapping(“updateUser”)

public ResultObj updateUser(UserVo userVo) {

try {

this.userService.updateUser(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/*

  • 删除用户

*/

@RequestMapping(“deleteUser”)

public ResultObj deleteUser(UserVo userVo) {

System.out.println(userVo);

System.out.println(userVo.getUserid());

try {

this.userService.deleteUser(userVo.getUserid());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/*

  • 批量删除用户

*/

@RequestMapping(“deleteBatchUser”)

public ResultObj deleteBatchUser(UserVo userVo) {

try {

this.userService.deleteBatchUser(userVo.getIds());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/*

  • 重置用户密码

*/

@RequestMapping(“resetUserPwd”)

public ResultObj resetUserPwd(UserVo userVo) {

try {

this.userService.resetUserPwd(userVo.getUserid());

return ResultObj.RESET_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.RESET_ERROR;

/*

  • 加载用户管理分配的分配角色的数据

*/

@RequestMapping(“initUserRole”)

public DataGridView initUserRole(UserVo userVo) {

return this.userService.queryUserRole(userVo.getUserid());

/*

  • 保存用户和角色的关系

*/

@RequestMapping(“saveUserRole”)

public ResultObj saveUserRole(UserVo userVo) {

try {

this.userService.saveUserRole(userVo);

return ResultObj.DISPATCH_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DISPATCH_ERROR;

/*

  • 修改个人信息

*/

@RequestMapping(“updateUserInfo”)

public ResultObj updateUserInfo(UserVo userVo) {

try {

String headimg = userVo.getHeadimg();

if (headimg.endsWith(SysConstast.FILE_UPLOAD_TEMP)) {

String filePath = AppFileUtils.updateFileName(headimg, SysConstast.FILE_UPLOAD_TEMP);

userVo.setHeadimg(filePath);

// 把原来的删除

User user = this.userService.queryUserInfo(userVo.getUserid());

AppFileUtils.removeFileByPath(user.getHeadimg());

this.userService.updateUserInfo(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/*

  • 查询个人信息

*/

@RequestMapping(“queryUserInfo”)

public User queryUserInfo() {

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

user = this.userService.queryUserInfo(user.getUserid());

return user;

/*

  • 查询密码

*/

@RequestMapping(“queryPwd”)

public ResultObj queryPwd(UserVo userVo) {

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

user = this.userService.queryUserInfo(user.getUserid());

// 生成密文

String pwd = DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());

userVo.setPwd(pwd);

if (userVo.getPwd().equals(user.getPwd())) {

return ResultObj.PWD_SUCCESS;

} else {

return ResultObj.PWD_ERROR;

/*

  • 更改密码之查询密码

*/

@RequestMapping(“updatePwd”)

public ResultObj updatePwd(UserVo userVo) {

try {

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

// 生成密文

String pwd = DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());

userVo.setUserid(user.getUserid());

userVo.setPwd(pwd);

// 修改密码

this.userService.updateUser(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

return ResultObj.UPDATE_ERROR;

用户登录控制器:

/*

  • 用户登录控制器

*/

@Controller

@RequestMapping(“login”)

public class LoginController {

@Autowired

private UserService userService;

@Autowired

private LogInfoService logInfoService;

/*

  • 跳转到登录页面

*/

@RequestMapping(“toLogin”)

public String tologin() {

return “system/main/login”;

/*

  • 登录方法

*/

@RequestMapping(“login”)

public String login(UserVo userVo, Model model) {

// 最外层的if是判断session是否为空 为空就跳转到登录界面

// uservo不可能为空的,只是里面的属性可能为空 所以要判断session是否为空 就要判断里面的属性 而不是判断userVo本身 (坑!)

if (null != userVo.getLoginname()) {

// String code = WebUtils.getHttpSession().getAttribute(“code”).toString();

// if (userVo.getCode().toLowerCase().equals(code)) {

User user = this.userService.login(userVo);

if (null != user) {

// 放入session

WebUtils.getHttpSession().setAttribute(“user”, user);

WebUtils.getHttpSession().setMaxInactiveInterval(240 * 60);

// 记录登录日志 向sys_login_log插入数据

LogInfoVo logInfoVo = new LogInfoVo();

logInfoVo.setLoginname(user.getRealname() + “-” + user.getLoginname());

logInfoVo.setLogintime(new Date());

// 外网Ip:WebUtils.getHttpServletRequest().getRemoteAddr()

// 内网ip:

InetAddress addr;

try {

addr = (InetAddress) InetAddress.getLocalHost();

logInfoVo.setLoginip(addr.getHostAddress().toString());// 获取Id地址

} catch (UnknownHostException e) {

e.printStackTrace();

// 添加

logInfoService.addLogInfo(logInfoVo);

return “system/main/index”;

} else {

model.addAttribute(“error”, SysConstast.USER_LOGIN_ERROR_MSG);

return “system/main/login”;

// } else {

// model.addAttribute(“error”, SysConstast.USER_LOGIN_CODE_ERROR_MSG);

// return “system/main/login”;

// }

} else {

return “system/main/login”;

};

/**

  • 得到登录验证码

  • @throws IOException

*/

@RequestMapping(“getCode”)

public void getCode(HttpServletResponse response, HttpSession session) throws IOException {

// 定义图形验证码的长和宽

LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(116, 36, 4, 50);

Console.log(lineCaptcha.getCode());

session.setAttribute(“code”, lineCaptcha.getCode());

ServletOutputStream outputStream = response.getOutputStream();

ImageIO.write(lineCaptcha.getImage(), “JPEG”, outputStream);

公告管理控制器:

/**

  • 公告管理控制器

*/

@RestController

@RequestMapping(“news”)

public class NewsController {

@Autowired

private NewsService newsService;

/*

  • 加载公告列表返回DataGridView

*/

@RequestMapping(“loadAllNews”)

public DataGridView loadAllmeenu(NewsVo newsVo) {

return this.newsService.queryAllNews(newsVo);

/*

  • 添加公告

*/

@RequestMapping(“addNews”)

public ResultObj addNews(NewsVo newsVo) {

try {

newsVo.setCreatetime(new Date());

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

newsVo.setOpername(user.getRealname());

this.newsService.addNews(newsVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/*

  • 删除公告

*/

@RequestMapping(“deleteNews”)

public ResultObj deleteNews(NewsVo newsVo) {

try {

this.newsService.deleteNews(newsVo.getId());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/*

  • 更新公告

*/

@RequestMapping(“updateNews”)

public ResultObj updateNews(NewsVo newsVo) {

try {

this.newsService.updateNews(newsVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/*

  • 批量删除公告

*/

@RequestMapping(“deleteBatchNews”)

public ResultObj deleteBatchNews(NewsVo newsVo) {

try {

this.newsService.deleteBatchNews(newsVo.getIds());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/*

  • 根据id查询公告

*/

@RequestMapping(“loadNewsById”)

public News loadNewsById(Integer id) {

return this.newsService.queryNewsById(id);

/*

  • 翻译接口测试

*/

@RequestMapping(“baiduTranslate”)

public String baiduTranslate(NewsVo newsVo) {

String APP_ID = “20200721000523250”;

String SECURITY_KEY = “1hLTMQWfCfmv8V0zMAlQ”;

// TransApi api = new TransApi(APP_ID, SECURITY_KEY);

//

// String query = newsVo.getContent();

// String transResult = api.getTransResult(query, “zh”, “jp”);

// return transResult;

return “”;

创作打卡挑战赛

赢取流量/现金/CSDN周边激励大奖


基于javaweb的汽车租赁系统(java+ssm+jsp+layui+echarts+mysql)相关推荐

  1. Java项目:汽车租赁系统(java+SSM+JSP+LayUI+echarts+mysql)

    源码获取:博客首页 "资源" 里下载! ssm汽车租赁系统 carRental 系统概要 汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块.其中系统模块和业务模块底下又有 ...

  2. 基于javaweb的报销erp系统(java+ssm+jsp+layui+jquery+mysql)

    基于javaweb的报销erp系统(java+ssm+jsp+layui+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  3. 基于javaweb的儿童摄影预约系统(java+ssm+jsp+js+jquery+mysql)

    基于javaweb的儿童摄影预约系统(java+ssm+jsp+js+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  4. 基于javaweb的农产品溯源管理系统(java+ssm+jsp+layui+jquery+mysql)

    基于javaweb的农产品溯源管理系统(java+ssm+jsp+layui+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ide ...

  5. 基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql)

    基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

  6. 基于javaweb的零食商城系统(java+ssm+jsp+mysql+easyui)

    基于javaweb的零食商城系统(java+ssm+jsp+mysql+easyui) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclip ...

  7. 基于javaweb的家庭理财系统(java+ssm+jsp+tomcat8+mysql)

    基于javaweb的家庭理财系统(java+ssm+jsp+tomcat8+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...

  8. 基于javaweb的电影院购票系统(java+ssm+jsp+bootstrap+layui+echarts+mysql)

    基于javaweb的电影院购票系统(java+ssm+jsp+bootstrap+layui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 ec ...

  9. 基于javaweb的养老院综合服务系统(java+ssm+jsp+jquery+echarts+mysql)

    基于javaweb的养老院综合服务系统(java+ssm+jsp+jquery+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/i ...

最新文章

  1. 一文看懂5G芯片背后的明争暗斗
  2. 珍惜鼠标,慎用双击。maxthon浏览器的双击功能毁了我一个微软鼠标一个罗技鼠标,伤心...
  3. spring IOC和DI
  4. 数据分析、机器学习必读书,李航《统计学习方法》发布算法推导视频啦!(附作业讲解)...
  5. Nodejs基础01
  6. 计算机管理mmc无法,电脑提示mmc无法创建管理单元的问题可以这样解决
  7. 3G手机Android应用开发视频教程_黎活明老师的视频(第五天课程)总共有八天课程...
  8. 我的世界服务器名称被占用,为什么我的世界服务器说此用户名已被注册我都换了很多用户了都没用 爱问知识人...
  9. 身为程序员的我们......
  10. 利用tushare实现选股
  11. weiPe系统启动盘还原
  12. 【演示文稿制作软件】Focusky教程 | 贯穿整个演示文稿背景音乐的添加与设置
  13. RTMP推流摄像机联合EasyCVR安防视频云服务平台助力智能楼宇的建设
  14. Sql优化v-1.0
  15. 适用vue的html前台页面打印插件
  16. 5G通信在应急系统中的应用
  17. 5G网络入门基础--5G网络的实现流程
  18. Revit二次开发2、RevitAPI、RevitAPIUI及Revit开发三大利器
  19. Python字符串中提取国家名称
  20. right 微信小程序_js实现微信小程序左右滑动功能

热门文章

  1. 百度文心一言到底咋样?科普介绍文心一言
  2. Compressor for Mac v4.6 中文版 视频编码转换工具
  3. 奥克斯变频空调的控温温度波动初步研究
  4. Echarts图实现折线图根据自定义标准线,超过标准值是一种颜色低于标准值是一种颜色
  5. linux系统怎么查看raid卡信息,LINUX下查SCSI卡、RAID卡信息的命令
  6. 使用tesseract3.01字库训练教程完成全国企业信息中心简单验证码的字库建立。
  7. linux脚本变量,shell脚本变量的使用
  8. 图像分割 - 阈值处理 - 多阈值处理(OTSU)
  9. windows下使用tftp传输文件
  10. 2021年中国餐饮业发展现状:全国餐饮收入46895亿元,疫情影响逐渐恢复[图]