家政服务预约微信小程序

  摘  要

      O2O模式能够充分的利用网站创立企业在O2O模式中的竞争优势,基于O2O模式的这一特点,本次毕业设计开发了家政服务预约微信小程序。该家政服务预约小程序发挥了网络优势,采用O2O模式营销手段将家政企业推广出去,既保留了家政服务的传统运作模式,又利用了计算机网络方便、快捷、实时性高的特点,开发出一个供家政需求和家政服务人员相互交流的平台。其开发主要包括后台数据库的建立和维护及前台应用程序的开发两个方面。

     本次设计小程序端采用Vue.js框架和微信Web开发工具,服务端管理系统是以IDEA为开发平台,采用Java作为编程语言,后台数据库采用MySQL,实现了家政服务项目浏览,家政服务项目发布,网站信息发布,以及网站后台的多种管理功能。用户可方便地进行信息浏览,挑选服务、意见反馈等操作。本网站后台管理员则进行添加、删除、更新相关信息以及根据需求条件实现客户的需求,以更好的服务客户。

      整个系统实现了家政服务预约的功能,经测试,系统运行稳定,并且具有良好的实用性和稳定性,能够满足日常的在线家政服务预约的要求。

关键词:家政服务,O2O模式,小程序,Java

1 绪论

1.1 课题研究背景

随着社会的进步,人们生活节奏的加快,越来越多的人倾向于选择家政服务处理日常起居等家政事务。随之而来的是家政服务需求的不断增加以及家政服务种类的多样化,因此,家政服务采用何种管理方案成了目前绝大多数中介急需解决的问题。

广泛采用的手工统计曾经满足中介和广大客户的需求,但随着业务量的发展,手工统计工作量剧增以及长期的劳动,工作家政服务人员难免会产生各种各样难以发现的错误,采用现代化的管理成为当务之急。而随着信息产业的进步和计算机技术的普及,计算机辅助现代化管理成为目前最行之有效的方案。

发展家政服务线上运营,不仅能满足人民群众日益增长的生活需求,破解家庭小型化、人口老龄化带来的社会问题,而且对于缓解弱势群体就业压力具有重要意义,是服务民生、增加就业、扩大内需、构建和谐社会的重要事业。因此,设计此家政服务预约微信小程序具有一定的实际意义。

1.2 课题研究目的与意义

本课题主要目标是设计并能够实现一个家政服务预约的微信小程序系统,前台用户使用小程序查找家政人员并预约,后台管理使用基于SpringBoot+Vue.js的B/S架构;通过后台添加资讯、录入家政人员信息、管理家政服务预约订单等。

家政服务一方面可给有家政需求的客户群体提供便捷,无需线下考察、对比各家家政服务公司,手机上无需下载应用只需进入小程序就可轻松选择自己所需的家政服务进行下单;另一反面在家政服务业务急剧增加的情况下,急需大量新的家政服务从业者加入其中,从而为部分人群提供了更多就业机会;除此之外,随着人们对家政服务需求量的增加,人工统计工作量剧增以及长期的劳动,难免会产生各种各样难以发现的错误,采用现代化的管理方便数据管理,避免人工管理出现错误。

1.3 主要研究内容

本次设计小程序端采用Vue.js框架和微信Web开发工具,服务端管理系统是以IDEA为开发平台,采用Java为编程开发语言,后台数据库采用MySQL,实现了家政服务项目浏览,家政服务项目发布,网站信息发布,以及网站后台的多种管理功能。用户可方便地进行信息浏览,挑选服务、意见反馈等操作。本网站后台管理员则进行添加、删除、更新相关信息以及根据需求条件实现客户的需求,以更好的服务客户。

1.4 国内外研究现状

随着我国生活水平不断提升,对服务行业的要求也逐渐提高。如今,我国老龄化人口增加,家庭空巢化的现象越来越明显,国民在健康方面也有了较大的认识,因此,我国家政行业得到空前关注,发展迅速。在全球许多发达国家,家政产业已成为服务性行业的重要部门。德国、美国、日本等发达国家已经进入到家政产业繁荣发展阶段,发达国家的高级家政企业目前基础采用校企一体化的模式,即企业本身包含教育培训和经营双重功能。除了经营主业以外,企业还可向五星级以上的酒店培养高素质人才

而国内家政市场的需求在近几年同样飞速增长,中国家政服务市场规模从2015年的2776亿元上升至2021年的10149亿元,增长近4倍,并将延续增长趋势,预计到2023年将增至11641亿元。随着产业规模持续扩大,中国家政行业营收占全国GDP比重持续增长,吸纳就业能力日渐强大,2021年从业人员数量已达3760万人。中国家政服务行业作为朝阳产业、民生产业,发展前景可观。

调研数据显示,2022年有93.8%中国消费者使用过家政服务,中国家庭对家政服务的需求强烈,尤其在“养老”“育幼”方面,需求规模还将不断走高。 2018至2021年间,家政服务用户的线上渗透率从47.8%上升至80.2%,家政服务消费预订线上化趋势明显增强,线上需求已成为家政行业重要的需求来源。家政服务行业数字化转型正在快速推进,用户需求线上化趋势极为明显,相关企业将借助互联网家政平台、本地生活平台等线上渠道获客,实现数字化转型。

利用计算机对日常家政服务管理不仅可以节省工作人员大量的时间和精力,而且能保证服务信息记录准确、快速从而提高家政系统的信息管理效率,使得管理更加科学化、规范化;因此家政服务预约微信小程序的开发具有重要意义的。

2 开发平台及相关技术

家政预约小程序的前端基于微信开发者工具,使用JS、WXSS、WXML 语言进行设计,后端基于SpringBoot框架进行实现,采用了Redis作为缓存,提高系统运行效率。

2.1 开发工具

 家政服务预约平台的后台采用IDEA进行开发,其主要用于Java以及移动应用的开发。前台采用微信开发工具进行开发,主要用于微信小程序的开发。Navicat是专为简化数据库管理以及降低系统管理成本的软件,它的设计符合数据库管理人员、开发人员的需要,它是以直觉化图形用户界面而建的,可以安全而且简单的方式创建、组织、访问信息。

2.2 相关技术

2.2.1 微信小程序

微信开发者工作是微信官方提供的针对微信小程序的开发工具,集中了开发,调试,预览,上传等功能。微信团队发布了微信小程序开发者工具、微信小程序开发文档和微信小程序设计指南,全新的开发者工具,集成了开发调试、代码编辑及程序发布等功能,帮助开发者简单和高效地开发微信小程序。

2.2.2 SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。SpringBoot框架中有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

2.2.3 MySQL

MySQL是一个开源的关系型数据库,现在属于Oracle公司。随着MySQL功能的不断完善,性能不断提高,又有开源免费的优势,越来越多的企业选择使用MySQL,而放弃商用收费的Oracle。

2.2.4 Redis

Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能(NOSOL)的 key-value 数据库,Redis 是一个开源的使用 ANSI C 语言编写、支持网终、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。

2.2.5 Vue.js

Vuejs 是一套用于构建用户界面的渐进式 JavaScript 框架。与其它大型框架不同的是,Vue.js 被设计为可以自底向上逐层应用。Vue.js 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue.js,也完全能够为复杂的单页应用提供驱动。

3章 系统分析

3.1 功能需求分析 

本系统的开发针对家政服务管理过程的需要,进行各方面信息的输入、查询,以减轻管理家政服务人员工作的负担,以提高信息处理的速度和质量为最终目标。

通过对用户需求进行分析,小程序主要功能需求如下:

(1)家政服务类型信息管理,包括家政服务供求、家政业务分类的管理;

(2)购物车信息管理,将想要下单的家政服务添加到购物车;

(3)个人信息管理,可以查看自己的个人信息,对自己信息进行管理。浏览足迹,商品收藏等的管理与更新;

(4)家政服务项目管理,对家政服务项目的介绍、图片等信息进行管理;

(5)客户信息管理,对使用本系统的客户信息的管理;

(6)服务新闻管理,管理系统推送的新闻信息;

(7)网站公告管理,维护管理网站推送的公告、提示信息。

(8)家政服务下单管理,用户可在下单、并管理服务下单信息及状态。

3.2 系统可行性分析

可行性分析是在决策前对可行性进行分析,对小程序的运行起着关键作用,决定了方案是否可行。

3.2.1 经济可行性

本系统所采用的软件和技术均是免费开放源代码的,可以有效地减少开发费用,因此在经济上也是具有可行性的。当这个小程序发行后,可以通过收取手续费,广告费等形式来获取利润。

3.2.2 技术可行性

该小程序通过微信开发者工具,利用WXML语言、WXSS、JS等技术完成对微信小程序页面的开发。微信开发者工具使用简单功能齐全并且可以通过开发社区寻求帮助。后台管理所采用的是Spring Boot,Spring Boot是Pivotal团队为新Spring程序开发的一个新框架。由于采用了特定的配置方法,因此这个框架不再要求用户自定义模板。这个架构最初是为简化开发而设计,旨在解决复杂的企业应用开发。它的特征是能够迅速地建立工程,并且可以立即使用。开发比Spring更加便捷,已逐渐成为了拥有较多的开发人群,较为稳定、成熟的后台开发框架的选择。在大学中都有所学习,并且在网上有许多相关案例可以借鉴。

3.2.3 操作可行性

本系统以微信小程序为基础实现,因此操作简单、使用方便,无需下载,只需要在微信上即可使用。并且该小程序页面简单明了,便于用户使用,因此,本系统在运行中也是可行的。

4 系统设计

4.1逻辑结构设计

家政服务预约小程序是面向广大家政需求客户开发的系统,完成用户在前台页面的信息浏览、注册操作以及管理员在后台的信息匹配工作,本系统的具体系统逻辑结构如图4-1所示。

家政服务预约微信小程序_第1张图片

图4-1系统逻辑结构图

4.2功能结构设计

4.2.1 前端功能设计

小程序的需求分析为系统的功能设计奠定了基础和提供了参考,通过需求分析对小程序的功能进行了具体设计,以满足用户需求,设计出适应市场的小程序。本小程序主要分为四大模块:首页、服务分类、购物车、个人模块。每个模块都有对应功能,最后实现家政服务功能。

各模块主要功能如下:

(1)首页

① 用户可在首页查看系统的公告信息已经广告的banner图,可以查看公告或者广告的具体消息;

② 家政分类部分,可以直接查看所有的分类信息,点击展示的分类可以进入详细的分类页面,点击跟多会跳转到分类页面;

③ 活动展示,可以查看当前的服务项目活动。

(2)分类模块

将家政服务分类可以通过后台动态管理,目前将家政服务按照服务类型进行分类。

(3)订单模块

购物车模块用于展示,用户添加到购物车的服务,方便用户打开以后查看添加过的服务信息,不需要二次查找,提高用户体验度,可以在购物车进行结算。

(4)个人模块

个人模块是对用户的相关信息进行管理。

① 用户可在个人界面查看个人的头像和积分;通过查询相关订单信息;

② 订单信息,主要展示四个订单状态,已完成、已评价、未付款、已付款;

③ 客户留言,可以对当前系统信息进行浏览;

④ 优惠券可以查看自己领取的优惠券信息;

4.2.2 后台功能设计

根据管理需求,后台可以添加和删除服务分类信息,设定价格,管理服务信息,管理服务供应商,对平台用户进行管理,同时可以查询订单信息、对数据进行统计的功能。

(1)用户管理

① 管理员可查看、导出用户信息;

② 管理员可查看用户的上门地址信息;

③ 管理员可查看用户对家政服务的收藏情况,了解用户的喜好;

④ 管理员可查看用户的访问足迹,对家政服务的访问情况;

⑤ 管理员可查看用户的搜索历史,了解用户关注的产品关键信息;

⑥ 管理员可查看、导出用户的意见反馈信息。

(2)业务管理

① 管理员可查看、导出行政区域信息;

② 管理员可操作、管理服务提供商的信息;

③ 管理员可操作、管理商品的分类信息;

④ 管理员可查看用户的下单情况、查看详情并进行发货操作;

⑤ 管理员管理、操作通用问题的信息;

⑥ 管理员可对关键词进行设定,并绑定跳转对应的链接。

(3)服务管理

① 管理员可对家政服务进行添加、查找、编辑、删除及导出管理;

② 管理员可对服务评论进行查找、导出、删除管理;

③ 管理员可操作、管理商品的分类信息;

(4)推广管理

① 管理员可对公告信息进行添加、查找、编辑、删除管理;

② 管理员可对广告信息进行添加、查找、编辑、删除及导出管理;

③ 管理员可对优惠券信息进行添加、查找、编辑、删除及导出管理;

④ 管理员可对宣传专题进行添加、查找、编辑、删除及导出管理;

(5)统计管理

① 管理员可查看用户、订单、服务的图形化统计信息;

系统功能结构图如图4-2所示。

家政服务预约微信小程序_第2张图片

图4-2结构功能设计

4.3 数据库设计

4.3.1数据库概要设计

本小程序采用MySQL数据库,根据需求分析,用ER图来表示数据库的概念结构设计,实体主要有用户、订单、服务、地址、后台管理员等,ER具体实现如图4-3所示。

家政服务预约微信小程序_第3张图片

图4-3 数据库E-R图

4.3.2数据库逻辑设计

根据E-R图和数据库概念结构设计,建立数据库逻辑结构,设计对应的关系表,本数据库主要设计的关系表有:用户信息表、广告信息表、地址信息表、管理员信息表、服务商信息表、资讯信息表、品牌信息表、购物车信息表、类别信息表、评论信息表、优惠券信息表、优惠券信息表、图片信息表、反馈信息表、足迹信息表、商品信息表、商品属性信息表、商品规格信息表、问题信息表、关键词信息表,订单信息表、权限信息表、退款信息表、区域信息表、角色信息表、搜索历史信息表、存储信息表、系统信息表、主题信息表等。

其中用户基本信息表、订单信息表、商品信息表、后台管理员信息表、地址信息表的具体设计如下文所示。

表4.1 用户基本信息表

字段

类型

是否为null

备注

id

int

11

True

ID

username

varchar

63

True

用户名称

password

varchar

63

True

用户密码

gender

tinyint

3

True

性别

birthday

date

0

False

生日

last_login_time

datetime

0

False

最近登录时间

last_login_ip

varchar

63

True

最近登录IP地址

user_level

tinyint

3

False

用户层级

nickname

varchar

63

True

用户昵称

mobile

varchar

20

True

用户手机号码

avatar

varchar

255

True

用户头像图片

weixin_openid

varchar

63

True

微信登录openid

status

tinyint

3

True

状态

add_time

datetime

0

False

创建时间

update_time

datetime

0

False

更新时间

deleted

tinyint

1

False

是否删除

share_user_id

int

11

False

分享用户 

表4.2订单信息表

字段

类型

大小

是否为null

备注

id

int

11

True

ID

user_id

int

11

True

用户表的用户ID

order_sn

varchar

63

True

订单编号

order_status

smallint

6

True

订单状态

consignee

varchar

63

True

收货人名称

mobile

varchar

63

True

收货人手机号

address

varchar

127

True

收货具体地址

message

varchar

512

True

用户订单留言

goods_price

decimal

10

True

商品总费用

freight_price

decimal

10

False

配送费用

coupon_price

decimal

10

True

优惠券减免

integral_price

decimal

10

True

用户积分减免

groupon_price

decimal

10

True

团购优惠价减免

order_price

decimal

10

True

订单费用

actual_price

decimal

10

True

实付费用

pay_id

varchar

63

False

实付费用

pay_time

datetime

0

False

微信付款时间

ship_sn

varchar

63

False

发货编号

end_time

datetime

0

False

结束时间

add_time

datetime

0

False

调价时间

update_time

datetime

0

False

更新时间

deleted

tinyint

1

False

删除状态

settlement_money

decimal

10

False

结算金额

settlement_status

tinyint

1

True

结算状态

share_user_id

int

11

False

推广公户

create_user_id

int

11

False

创建用户ID

gift_send_time

datetime

0

False

转赠发送时间

gift_receive_time

datetime

0

False

转赠接收时间

表4.3商品信息表

字段

类型

大小

是否为null

备注

id

int

11

True

ID

goods_sn

varchar

63

True

商品编号

name

varchar

127

True

商品名称

category_id

int

11

False

商品所属类目ID

gallery

varchar

1023

False

商品宣传图片

keywords

varchar

255

False

商品关键字

brief

varchar

255

False

商品简介

表4.4后台管理员信息表

字段

类型

大小

是否为null

备注

id

int

11

True

ID

username

varchar

63

True

用户名

password

varchar

63

True

密码

表4.5地址信息表

字段

类型

大小

是否为null

备注

id

int

11

True

ID

name

varchar

63

True

姓名

user_id

int

11

True

用户

province_id

int

11

True

city_id

int

11

True

area_id

int

11

True

address

varchar

127

True

详细地址

5 系统实现

5.1 前台实现

5.1.1 首页

小程序的首页主要是用户展示banner图、服务分类、还有活动信息,首页如图5.1所示。

家政服务预约微信小程序_第4张图片

图5-1 首页

Banner图代码如下:

      

      

      

服务分类如下:

    

      

      搜索您需要的服务, 共{{goodsCount}}种供您选择...

    

  

活动代码主要如下:

    团购专区

    邀请好友一起团购,享受折扣减免

5.1.2 服务分类

主要用于展示后台维护好的小程序分类信息具体页面如图5-2所示,点击分类信息之后点击服务类型将会调转到。

家政服务预约微信小程序_第5张图片

图5-2 分类列表页面

服务分类的具体代码如下:

      

        {{item.name}}

      

    

5.1.3 购物车

用户登录之后,点击项目即可加入购物车,购物车列表如图5-3所示。

家政服务预约微信小程序_第6张图片 

图5-3 购物车列表页面

购物车主要是方便用户统一结算,或者是帮助用户记住服务信息页面如图,购物车结算页面如图5-4所示。

家政服务预约微信小程序_第7张图片 

图5-4 购物车结算图

具体代码如下:

   

      

        

      

   

  

  

5.1.4 个人信息

用户授权登录成功之后,点击个人中心查看用户信息,用户中心页面如图5-5所示。

家政服务预约微信小程序_第8张图片 

图5-5 个人信息页面

部分核心代码如下:

  

    

      

        {{array[index]}}

        

      

    

  

5.2 后台模块实现

5.2.1 首页

后台首页可以直观得看到所有的关键数据统计,首页如图5-6所示。

家政服务预约微信小程序_第9张图片

图5-6 后台首页

具体代码如下:

@RequiresPermissions("admin:user:list")

@RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "查询")

@GetMapping("/list")

public Object list(String username, String mobile, @RequestParam(defaultValue = "1") Integer page,

      @RequestParam(defaultValue = "10") Integer limit,

      @Sort @RequestParam(defaultValue = "add_time") String sort,

      @Order @RequestParam(defaultValue = "desc") String order) {

   logger.info("【请求开始】用户管理->会员管理->查询,请求参数,username:{},code:{},page:{}", username, mobile, page);

   List userList = userService.querySelective(username, mobile, page, limit, sort, order);

   long total = PageInfo.of(userList).getTotal();

   Map data = new HashMap<>();

   data.put("total", total);

   data.put("items", userList);

   logger.info("【请求结束】用户管理->会员管理->查询:响应结果:{}", JSONObject.toJSONString(data));

   return ResponseUtil.ok(data);

}

5.2.2 用户管理

后台用户管理页面主要是展示所有的用户信息,对于违规用户进行操作等。具体页面如5-7所示。家政服务预约微信小程序_第10张图片图5-7 用户管理页面

具体代码如下:

@RequiresPermissions("admin:user:list")
@RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "查询")
@GetMapping("/list")
public Object list(String username, String mobile, @RequestParam(defaultValue = "1") Integer page,
      @RequestParam(defaultValue = "10") Integer limit,
      @Sort @RequestParam(defaultValue = "add_time") String sort,
      @Order @RequestParam(defaultValue = "desc") String order) {
      logger.info("【请求开始】用户管理->会员管理->查询,请求参数,username:{},code:{},page:{}", username, mobile, page);
   List userList = userService.querySelective(username, mobile, page, limit, sort, order);
   long total = PageInfo.of(userList).getTotal();
   Map data = new HashMap<>();
   data.put("total", total);
   data.put("items", userList);
   logger.info("【请求结束】用户管理->会员管理->查询:响应结果:{}", JSONObject.toJSONString(data));
   return ResponseUtil.ok(data);
}

5.2.3 订单管理

管理平台所有的订单信息,可以为每一个订单留下数据。具体页面如5-8所示。

家政服务预约微信小程序_第11张图片

图5-8 订单列表页面图

具体代码如下:

@RequiresPermissions("admin:order:list")

@RequiresPermissionsDesc(menu = { "商场管理", "订单管理" }, button = "查询")

@GetMapping("/list")

public Object list(Integer userId, String orderSn, @RequestParam(required = false) List orderStatusArray,

      @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer limit,

      @Sort @RequestParam(defaultValue = "add_time") String sort,

      @Order @RequestParam(defaultValue = "desc") String order) {

   logger.info("【请求开始】商场管理->订单管理->查询,请求参数:userId:{},orderSn:{},page:{}", userId, orderSn, page);

   return adminOrderService.list(userId, orderSn, orderStatusArray, page, limit, sort, order);

}

5.2.4 服务信息管理

服务信息是所有服务管理的页面,也是系统最核心的业务部分。具体页面如图5-9所示。家政服务预约微信小程序_第12张图片

图5-9 服务信息页面图

具体代码如下:

@RequiresPermissions("admin:goods:list")
@RequiresPermissionsDesc(menu = { "家政服务管理", "家政服务管理" }, button = "查询")
@GetMapping("/list")
public Object list(String goodsSn, String name, @RequestParam(defaultValue = "1") Integer page,
      @RequestParam(defaultValue = "10") Integer limit,
      @Sort @RequestParam(defaultValue = "add_time") String sort,
      @Order @RequestParam(defaultValue = "desc") String order) {
   logger.info("【请求开始】家政服务管理->家政服务管理->查询,请求参数:goodsSn:{},name:{},page:{}", goodsSn, name, page);
   return adminGoodsService.list(goodsSn, name, page, limit, sort, order);
}

5.2.5 用户统计

统计可以统计当前系统的基本数据,方便管理员做出可以非调整与活动,具体页面如5-10所示。

家政服务预约微信小程序_第13张图片 图5-10 统计页面图

@RequiresPermissions("admin:stat:user")
@RequiresPermissionsDesc(menu = { "统计管理", "用户统计" }, button = "查询")
@GetMapping("/user")
public Object statUser() {
   logger.info("【请求开始】统计管理->用户统计->查询");

   List rows = statService.statUser();
   String[] columns = new String[] { "day", "users" };
   StatVo statVo = new StatVo();
   statVo.setColumns(columns);
   statVo.setRows(rows);
   logger.info("【请求结束】统计管理->用户统计->查询,响应结果:{}", JSONObject.toJSONString(statVo));
   return ResponseUtil.ok(statVo);
}

  

你可能感兴趣的:(微信小程序项目,微信小程序,小程序,java,mybatis,maven)