基于SpringBoot+Vue的家政平台
基于SpringBoot+Vue的家政平台
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
根据⼏年前中国家政协会数据显⽰,中国家庭⽣活服务市场空间巨⼤,在开放⼆胎和⽼龄化加重的社会背景下,⽽80、90后⼈群逐渐成为消费主⼒⼈群,家政服务业在未来的5-10年内必然有更加快速的市场增长。综合⽹络资料粗略统计,传统市场份额约占整个市场的半数,但其每年却下降迅速。究其原因,是因为现代化的家政发展迅速,家政⾏业新模式将是未来的趋势。⾏业前景:随着经济的发展,和相关政策的推动,家政⾏业将会在未来⼏年发展迅速,新模式的家政⾏业讯头正猛
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。 - Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
- SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
三、系统功能模块介绍:
四、数据库设计:
1:‘轮播图表’(banner)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 轮播图编号 |
banner_url | varchar | NULL | 轮播图地址 |
create_time | datetime | NULL | 创建时间 |
status | int | NULL | 状态[0:启用,1:禁用] |
2:‘收藏表’(collect)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 收藏编号 |
project_id | bigint | NULL | 项目编号 |
user_id | bigint | NULL | 用户编号 |
create_time | datetime | NULL | 创建时间 |
3:‘管理员表’(manage)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 管理员编号 |
user_name | varchar | NULL | 用户名 |
pass_word | varchar | NULL | 密码 |
photo_img | varchar | NULL | 图片 |
name | varchar | NULL | 名称 |
4:‘公告信息表’(notice)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 公告编号 |
banner_img | varchar | NULL | 公告图片 |
content | text | NULL | 公告内容 |
info | varchar | NULL | 公告简介 |
create_time | datetime | NULL | 创建时间 |
title | varchar | NULL | 公告标题 |
5:‘订单管理’(orders)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 订单编号 |
user_id | bigint | NULL | 用户编号 |
project_id | bigint | NULL | 项目编号 |
create_time | datetime | NULL | 创建时间 |
money | varchar | NULL | 金额 |
server_id | varchar | NULL | 服务人员ID |
status | int | NULL | 订单状态[0:已支付,1:待服务,2:服务完成,3:已取消] |
remark | text | NULL | 备注 |
6:‘家政项目管理’(projects)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 项目编号 |
title | varchar | NULL | 项目标题 |
info | varchar | NULL | 简介 |
tel | varchar | NULL | 联系方式 |
name | varchar | NULL | 联系人名称 |
content | text | NULL | 服务内容 |
banner_img | varchar | NULL | 介绍图片 |
create_time | datetime | NULL | 创建时间 |
type_id | bigint | NULL | 所属分类 |
money | varchar | NULL | 价格 |
7:‘家政人员信息表’(server_user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 服务人员编号 |
server_name | varchar | NULL | 服务人员姓名 |
server_tel | varchar | NULL | 联系方式 |
server_age | int | NULL | 年龄 |
sex | int | NULL | 性别[0:男,1:女] |
info | varchar | NULL | 简介 |
id_card | varchar | NULL | 身份证号 |
create_time | datetime | NULL | 创建时间 |
header_img | varchar | NULL | 照片 |
8:‘预约表’(subscribes)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 预约编号 |
project_id | bigint | NULL | 项目编号 |
create_time | datetime | NULL | 创建时间 |
subscribe_time | datetime | NULL | 预约时间 |
user_id | bigint | NULL | 用户编号 |
remark | text | NULL | 备注 |
status | int | NULL | 状态[0:审核中,1:审核通过,2:拒绝] |
cause | text | NULL | 拒绝原因 |
9:‘项目分类管理’(types)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 分类编号 |
type_name | varchar | NULL | 分类名称 |
create_time | datetime | NULL | 创建时间 |
10:‘用户信息表’(users)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 用户编号 |
username | varchar | NULL | 用户名 |
password | varchar | NULL | 密码 |
nick_name | varchar | NULL | 用户姓名 |
tel | varchar | NULL | 联系方式 |
age | int | NULL | 年龄 |
sex | int | NULL | 性别[0:男,1:女] |
id_card | varchar | NULL | 身份证号 |
create_time | datetime | NULL | 创建时间 |
header_img | varchar | NULL | 照片 |
五、功能模块:
-
首页:用户端首页会展示资讯信息轮播图以及不同的家政分类和不同的分类项目
-
资讯:对后台添加的一些家政类的资讯信息进行一个展示
-
个人中心:用户登录注册之后可以查看自己的家政预约情况 家政收藏情况
-
后台管理:后台管理主要是对用户端以及系统数据的一个综合性管理操作
六、代码示例:
首页
init() {
let bannerParam = {status: 0}
getBannerList(bannerParam).then(res => {
this.bannerList = res.data
})
let userRecommendParam = {}
findUserRecommend(userRecommendParam).then(res => {
this.projectList = res.data
})
},
资讯
btnCLick (item) {
this.listQueryParam.title = item
this.listQueryParam.current = 1
this.getNoticePage()
},
init () {
this.getNoticePage()
},
getNoticePage () {
getNoticeList(this.listQueryParam).then((res) => {
this.total = res.data.total
this.noticeList = res.data.records
})
}
个人中心
menuClick(item, index) {
console.log(index)
this.currentMenuIndex = index
this.currentMenuName = item.name
},
delMessage(row) {
delMessageById(row.id).then(res => {
this.getMessage({userId: this.userInfo.id})
Message.success('删除成功')
})
},
delSub(row) {
delSubscribesById(row.id).then(res => {
this.getSub({userId: this.userInfo.id})
Message.success('删除成功')
})
},
getMessage(param) {
findListByUrl('collect', param).then(res => {
console.log(res.data)
this.messageData = res.data
})
},
getOrder(param) {
findListByUrl('orders', param).then(res => {
console.log(res.data)
this.orderData = res.data
})
},
getSub(param) {
findListByUrl('subscribes', param).then(res => {
console.log(res.data)
this.subscribesData = res.data
})
},
后台管理
@PostMapping
public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {
if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {
return ReturnMsg.error("用户名或密码错误!");
}
ManageDTO manageDTO = new ManageDTO();
manageDTO.setUserName(param.get("username"));
manageDTO.setPassWord(param.get("password"));
QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);
manageDTOQueryWrapper.last("limit 1");
ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);
if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");
Map<String, Object> map = new HashMap<>();
map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
map.put("introduction", adminDTOS.getName() + ",你好!");
map.put("name", adminDTOS.getName());
map.put("roles", Arrays.asList("admin"));
Map<String, String> returnMap = new HashMap<>();
String uuid = UUID.randomUUID().toString();
returnMap.put("token", uuid);
userInfoMap.put(uuid, JSON.toJSONString(map));
return ReturnMsg.ok(returnMap);
}
七、项目总结:
经过近期对Java 面向对象程序设计、前端知识以及Java框架的掌握和学习,以及这段时间本教育教学系统的开发,让我更加了解到 Java 学习的重要性。在开发这个系统时,我不仅进行了多次的试验,而且也对系统的功能进行了测试。在论文的实现过程当中,我从Java的认识到熟练运用注入了非常多的努力,到后面可以进行相关技术的运用也感到非常的开心。在这过程当中,我发现Java其实有非常之多的功能可以进行探索。Java同时具有封装性、抽象性、多态性以及继承性。可以对代码进行重复使用以及扩充使用,大幅度提高开发软件时的整体速度和效率。我作为教育技术学的学生,学好Java语言不管对我以后的就业还是现在的知识面的扩增都有着很重要的意义。我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术, Java 面向对象程序设计是一科实践性相对来说非常比较强的语言了、Springboot、SpringMVC框架的MVC三层架构模式、和框架中遇到的设计模式将数据访问和逻辑操作都集中到组件里面去了 , 增强了系统的复用性和扩展性。使系统的扩展性大大增强。以及前端VUE 、element、jQuery样式的掌握让我对网页的布局、样式调整、字体等让网页效果实现的更加精准。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接