当前位置: 首页 > news >正文

基于Java+SpringMvc+vue+element实现上海汽车博物馆平台

基于Java+SpringMvc+vue+element实现上海汽车博物馆平台

博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域
作者主页 央顺技术团队
Java毕设项目精品实战案例《1000套》
欢迎点赞 收藏 ⭐留言
文末获取源码联系方式

文章目录

  • 基于Java+SpringMvc+vue+element实现上海汽车博物馆平台
  • 摘要介绍:
  • 功能设计:
  • 功能截图:
  • 关键代码:
  • 获取源码:

摘要介绍:

随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。博物馆交流平台,主要的模块包括查看个人中心、用户管理、博物馆信息管理、文物信息管理、文物分类管理、留言板管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。要想实现博物馆交流平台的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的用户信息,并由此分析得出的关联信息等大量的数据都由数据库管理。本文中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。本系统的开发使获取博物馆交流平台信息能够更加方便快捷,同时也使博物馆交流平台管理信息变的更加系统化、有序化。系统界面较友好,易于操作。

功能设计:

管理员功能结构图,如图所示:
在这里插入图片描述
前台结构图,如图所示
在这里插入图片描述

功能截图:

用户登陆注册:
在这里插入图片描述
系统首页:系统首页可以查看首页、博物馆信息、文物信息、通知公告、留言板反馈、个人中心、后台管理等内容
在这里插入图片描述
汽车信息:汽车信息页面,用户可以查看汽车编号、汽车名称、汽车分类、图片、汽车简介、文物详情等内容,用户可以进行收藏和评论,如下图所示
在这里插入图片描述
详情信息:在这里插入图片描述
评论收藏:
在这里插入图片描述
留言反馈:
在这里插入图片描述
个人中心:
在这里插入图片描述
我的收藏:
在这里插入图片描述
普通用户后台信息:
在这里插入图片描述
管理员后台管理:管理员登录进入博物馆交流平台可以查看个人中心、用户管理、博物馆信息管理、文物信息管理、文物分类管理、留言板管理、系统管理等内容,并进行相关操作 在这里插入图片描述
汽车信息管理:
在这里插入图片描述
详情信息:
在这里插入图片描述
汽车信息分类:
在这里插入图片描述
留言板:
在这里插入图片描述
首页轮播图:
在这里插入图片描述

关键代码:

 
/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

文件上传:

/*** 上传文件映射表*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{@Autowiredprivate ConfigService configService;/*** 上传文件*/@RequestMapping("/upload")public R upload(@RequestParam("file") MultipartFile file, String type,HttpServletRequest request) throws Exception {if (file.isEmpty()) {throw new EIException("上传文件不能为空");}String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);String fileName = new Date().getTime()+"."+fileExt;File dest = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);file.transferTo(dest);if(StringUtils.isNotBlank(type) && type.equals("1")) {ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));if(configEntity==null) {configEntity = new ConfigEntity();configEntity.setName("faceFile");configEntity.setValue(fileName);} else {configEntity.setValue(fileName);}configService.insertOrUpdate(configEntity);}return R.ok().put("file", fileName);}/*** 下载文件*/@IgnoreAuth@RequestMapping("/download")public void download(@RequestParam String fileName, HttpServletRequest request, HttpServletResponse response) {try {File file = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);if (file.exists()) {response.reset();response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName+"\"");response.setHeader("Cache-Control", "no-cache");response.setHeader("Access-Control-Allow-Credentials", "true");response.setContentType("application/octet-stream; charset=UTF-8");IOUtils.write(FileUtils.readFileToByteArray(file), response.getOutputStream());}} catch (IOException e) {e.printStackTrace();}}}

获取源码:

大家点赞、收藏、关注、评论啦
🍅查看下方微信号获取联系方式 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《500套》
精彩专栏推荐订阅:在下方专栏

相关文章:

  • HCIP—BGP路由发布
  • 达梦数据库自动备份(全库)+还原(全库) 控制台
  • Flink SQL填坑记3:两个kafka数据关联查询
  • 使用npm仓库的优先级以及.npmrc配置文件的使用
  • [HackMyVM]靶场Crossbow
  • 港大新工作 HiGPT:一个模型,任意关系类型 !
  • Hana数据库 No columns were bound prior to calling SQLFetch or SQLFetchScroll
  • 谷歌seo营销服务有哪些服务?
  • Java ArrayList类
  • Share-ChatGPT官网UI/文件上传/联网搜索/GPTS 一并同步
  • 【408直通车】(考研数一、二、三合集)线性代数公式全覆盖
  • 自动驾驶-如何进行多传感器的融合
  • DMA知识
  • selenium元素定位--xpath定位--层级与逻辑组合定位
  • VUE3——reactive对比ref
  • Bytom交易说明(账户管理模式)
  • django开发-定时任务的使用
  • JavaScript创建对象的四种方式
  • Mithril.js 入门介绍
  • Quartz初级教程
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Sass 快速入门教程
  • Webpack 4x 之路 ( 四 )
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 利用jquery编写加法运算验证码
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 微信小程序设置上一页数据
  • 协程
  • 再谈express与koa的对比
  • 从如何停掉 Promise 链说起
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • $.ajax()
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C#)获取字符编码的类
  • (MATLAB)第五章-矩阵运算
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (剑指Offer)面试题34:丑数
  • (十六)Flask之蓝图
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)关于多人操作数据的处理策略
  • .NET Micro Framework初体验
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .Net程序帮助文档制作
  • .net快速开发框架源码分享
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .net专家(高海东的专栏)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • @javax.ws.rs Webservice注解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [] 与 [[]], -gt 与 > 的比较
  • [20171101]rman to destination.txt
  • [2019/05/17]解决springboot测试List接口时JSON传参异常