基于Java+SpringBoot+Vue前后端分离青年公寓服务平台设计和实现

news2024/12/25 0:52:18

博主介绍全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

系统介绍:

传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,房屋信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的青年公寓服务平台。

本青年公寓服务平台分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理房屋投诉信息以及房屋投诉的租赁信息,能够与用户进行相互交流等操作,用户可以查看房屋信息,可以查看房屋投诉以及查看管理员回复信息等操作。

该青年公寓服务平台采用的是WEB应用程序开发中最受欢迎的B/S三层结构模式,使用占用空间小但功能齐全的MySQL数据库进行数据的存储操作,系统开发技术使用到了JSP技术。该青年公寓服务平台能够解决许多传统手工操作的难题,比如数据查询耽误时间长,数据管理步骤繁琐等问题。总的来说,青年公寓服务平台性能稳定,功能较全,投入运行使用性价比很高。

程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。

程序操作流程图

功能截图:

5.1 管理员功能模块的实现

5.1.1 房屋列表

如图5.1显示的就是房屋列表页面,此页面提供给管理员的功能有:查看房屋、新增房屋、修改房屋、删除房屋等。

图5.1 房屋列表页面

5.1.2 房屋投诉信息管理

管理员可以对前台的注册用户的基本信息进行管理,可以设置注册用户的账号为冻结或者是在用状态,管理员也能选择很多个已经失效的注册用户的信息进行批量删除操作。注册用户管理界面如图5.2所示。

图5.2 房屋投诉信息管理页面

5.1.3 房屋投诉类型管理

房屋投诉类型管理页面显示所有房屋投诉类型,在此页面既可以让管理员添加新的房屋投诉信息类型,也能对已有的房屋投诉类型信息执行编辑更新,失效的房屋投诉类型信息也能让管理员快速删除。下图就是房屋投诉类型管理页面。房屋投诉类型管理界面如图5.3所示。

图5.3房屋投诉类型管理界面

代码实现:

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
    
    @Autowired
    private UserService userService;
    
    @Autowired
    private TokenService tokenService;

    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String role, HttpServletRequest request) {
        UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
        if(user != null){
            if(!user.getRole().equals(role)){
                return R.error("权限不正常");
            }
            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);
        }else{
            return R.error("账号或密码或权限不对");
        }

    }
    
    /**
     * 注册
     */
    @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("/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){
        Integer id = (Integer)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);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

论文参考:

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

 精彩专栏推荐订阅下方专栏👇🏻

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue基础知识七:SPA首屏加载速度慢的怎么解决?

一、什么是首屏加载 首屏时间&#xff08;First Contentful Paint&#xff09;&#xff0c;指的是浏览器从响应用户输入网址地址&#xff0c;到首屏内容渲染完成的时间&#xff0c;此时整个网页不一定要全部渲染完成&#xff0c;但需要展示当前视窗需要的内容 首屏加载可以说…

指针跃动(济南)客户运营服务中心上线了!

指针跃动&#xff08;济南&#xff09;客户运营服务中心上线了&#xff01; ——打通客户运营服务全链路—— 随着全国代驾业务需求的不断增长&#xff0c;“指针跃动”宣布&#xff1a;指针跃动&#xff08;济南&#xff09;客户运营服务中心上线了&#xff01; 以新的思维方式…

CMT:卷积与Transformers的高效结合

论文提出了一种基于卷积和VIT的混合网络&#xff0c;利用Transformers捕获远程依赖关系&#xff0c;利用cnn提取局部信息。构建了一系列模型cmt&#xff0c;它在准确性和效率方面有更好的权衡。 CMT:体系结构 CMT块由一个局部感知单元(LPU)、一个轻量级多头自注意模块(LMHSA)和…

end value has mixed support, consider using flex-end instead

这是因为 应该用flex-end,不应该用end 所以将所有的都改好之后&#xff0c;就不会再报这个错了

python3 修改nacos的yaml配置

一、安装nacos库 pip install nacos-sdk-python 二、代码如下 import nacos import yaml# 连接地址 NACOS_SERVER_ADDRESSES "192.168.xx.xx" NACOS_SERVER_PORT 替换为你的端口号&#xff0c;如8848# 命名空间 NACOS_NAMESPACE "your_namespace"# 账…

【网络层】网络基础 -- IP协议

引入IP协议头格式网段划分特殊的IP地址IP地址的数量限制 私有IP地址和公网IP地址分片与组装如何分片与组装&#xff1f; 引入 我们前面学习了传输层的相关知识&#xff0c;难道真的就是直接传送吗&#xff1f;当然不是&#xff0c;那TCP究竟做了什么&#xff1f;IP又扮演什么角…

RFID溯源驱动汽车座椅制造的智能时代

在今天的快速发展的制造业中&#xff0c;信息化和智能化已经成为不可或缺的部分。信息化和智能化能够极大地提高生产效率、减少浪费&#xff0c;降低成本&#xff0c;提升产品的质量。汽车座椅产线信息化和智能化是汽车座椅产线升级的重要方向&#xff0c;RFID技术方案在汽车座…

有了这个技术,再也不为水浸事件发愁啦!

在现代社会中&#xff0c;电力是我们生活和工作的不可或缺的一部分。电力供应的可靠性对于维持社会的正常运转至关重要。而变电站则是电力系统中的关键环节&#xff0c;它们起着将高压电转换为适用于分配的低压电的重要作用。然而&#xff0c;变电站也存在各种风险&#xff0c;…

学习Bootstrap 5的第六天

目录 信息警告框 警告框 实例 警告框链接 实例 关闭警告框 实例 警告框动画 实例 按钮 按钮样式 实例 按钮轮廓 实例 ​编辑按钮尺寸 实例 块级按钮 实例 实例 活动/禁用按钮 实例 加载器按钮 实例 扩展小知识 信息警告框 警告框 警告框是使用 .aler…

手写Spring:第15章-通过注解注入属性信息

文章目录 一、目标&#xff1a;通过注解注入属性信息二、设计&#xff1a;通过注解注入属性信息三、实现&#xff1a;通过注解注入属性信息3.1 工程结构3.2 自动扫描注入占位符配置和对象类图3.3 读取属性并填充到容器中3.3.1 定义解析字符串接口3.3.2 配置Bean工厂添加解析器3…

低能量电子束曝光技术

引言 直接蚀刻和剥离是两种比较流行的图案转移工艺。在直接蚀刻工艺中&#xff0c;首先使用光刻技术对聚合物抗蚀剂进行构图&#xff0c;然后通过干法蚀刻技术用抗蚀剂作为掩模将图案转移到衬底或子层上。 剥离过程中&#xff0c;膜(通常是金属)被涂覆在抗蚀剂结构上&#xf…

RoboTAP:由 Google DeepMind 开发的一款机器人操作系统

Google DeepMind 开发的一款机器人操作系统RoboTAP。该系统能够通过只需几分钟的示范&#xff0c;就能让机器人学会新的视觉运动任务。你只需要给它展示几次如何做某件事&#xff0c;比如拿起一个苹果放到果冻上&#xff0c;它就能学会这个动作。 工作原理 该系统能够通过视觉…

CMS-织梦[dede]-通用免登发布插件

CMS-织梦[dede]-通用免登发布插件 1. 织梦通用免登陆发布插件功能说明2. 织梦通用免登陆发布接口使用说明2-1 下载插件2-2 安装插件3 对接火车头等采集工具 3 爬虫【古诗文网】示例[可选]测试火车头入库模型 使用火车头&#xff0c;简数采集器&#xff0c;八爪鱼等文章采集工具…

直播系统源码,系统分析篇:不可或缺的云转码系统

科技的进步发展让人们的生活越来越便利&#xff0c;而当今社会我们最常使用让我们生活变得更便利的方式&#xff0c;就是下载适合我们解决困难的相关直播系统源码搭建出来的APP&#xff0c;在一个完整的APP内&#xff0c;有着多种的功能强大的系统&#xff0c;从这篇文章开始&a…

凡邦数据提供了多种API接口服务,包括淘宝API、1688API、京东API、拼多多API、抖音API等

API接口在现代数字化时代中扮演着至关重要的角色&#xff0c;它们连接着不同的系统、软件和服务&#xff0c;促进着数据流动和业务创新。API接口供应商则是提供这些接口的服务的商家&#xff0c;它们为开发者提供了方便快捷的渠道&#xff0c;以便快速获取和使用各种API接口。 …

一站式数字营销SaaS平台Klaviyo申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;美国一站式数字营销SaaS平台Klaviyo近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为&#xff08;KVYO&#xff09;&am…

用Windows自带的工具检查磁盘

例如用的是win7。打开计算机&#xff0c;点击选中某个磁盘&#xff0c;右键点击鼠标&#xff0c;出现弹出菜单&#xff1a; 选中属性&#xff0c;出现下面窗口&#xff1a; 点击“工具”这个tab页&#xff1a; 点击开始检查&#xff0c;出现如下界面&#xff1a; 两个复选框都选…

开源机密计算平台:蓬莱-OpenHarmony

演讲嘉宾 | 杜 东 回顾整理 | 廖 涛 排版校对 | 李萍萍 嘉宾简介 杜东&#xff0c;上海交通大学助理研究员。中国计算机学会CCF会员&#xff0c;ACM会员。研究兴趣为操作系统与体系结构、服务器无感知&#xff08;Serverless&#xff09;计算、系统安全。在包括ASPLOS、ISC…

【扩散模型 李宏毅B站教学以及基础代码运用】

李宏毅教学视频&#xff1a; Link1 B站DDPM公式推导以及代码实现&#xff1a; Link2 这个视频里面有论文里面的公式推导&#xff0c;并且1小时10分开始讲解实例代码。 文章目录 扩散模型概念&#xff1a;Diffusion Model工作原理&#xff1a;影像生成模型本质上的共同目标B站…

qt使用QCustomplot绘制cpu和内存使用率图

一、QCustomPlot介绍 QCustomPlot是一个开源的Qt C图表库&#xff0c;用于可视化数据。该库提供了多种类型的可定制的图表&#xff0c;包括散点图、线图、柱状图和等高线图等。它还支持自定义绘制&#xff0c;可以创建任意形状和大小的元素&#xff0c;并使其与其他元素交互。Q…