在这个科技飞速发展的时代,社交媒体已经成为了我们日常生活的重要组成部分。然而,随着科技的进步,我们也看到越来越多的中老年人面临社交媒体的困扰。此外,他们还面临着隐私泄露和网络欺诈等安全问题,使得他们更加不敢轻易尝试使用社交媒体。为此,本文提出了一种基于微信小程序的中老年人社交平台。
本系统选择Spring Boot作为后端开发框架,微信小程序作为前端展示界面。微信作为中国最受欢迎的社交平台,拥有庞大的用户群体。基于微信平台开发的小程序,可以充分利用微信的社交属性和用户基础,方便用户的使用和推广。Spring Boot以其高效、简洁、易用的特性,成为了开发此类小程序的理想选择。基于微信小程序的中老年人社交平台,以其便捷、实用的特点,可以满足中老年人的社交需求。
关键词:中老年;社交平台;小程序;Spring Boot
Abstract
In this era of rapid technological development, social media has become an important component of our daily lives. However, with the advancement of technology, we also see more and more middle-aged and elderly people facing the dilemma of social media. In addition, they also face security issues such as privacy breaches and online fraud, making them even more hesitant to try using social media. Therefore, this article proposes a social platform for middle-aged and elderly people based on WeChat mini programs.
This system chooses Spring Boot as the backend development framework and WeChat Mini Program as the frontend display interface. WeChat, as the most popular social platform in China, has a huge user base. A mini program developed based on the WeChat platform can fully utilize the social attributes and user base of WeChat, making it convenient for users to use and promote. Spring Boot, with its efficient, concise, and user-friendly features, has become an ideal choice for developing such mini programs. A social platform for middle-aged and elderly people based on WeChat mini programs, with its convenient and practical characteristics, can meet the social needs of middle-aged and elderly people.
Keywords:Middle aged and elderly people; Social platforms; Mini programs; Spring Boot
1 绪论
1.1 研究背景和意义
中老年人也有自己的社交需求,他们需要通过社交平台与亲朋好友、老同事、老同学等保持联系,分享生活、交流情感。然而,由于年龄、身体等原因,中老年人可能不太适应传统的社交方式,需要更加便捷、易用的社交平台。随着移动互联网的普及,越来越多的中老年人开始使用手机和网络。他们开始通过网络获取信息、进行社交活动,寻找共同兴趣和爱好的人。微信小程序作为一种轻量级的应用程序,具有无需下载安装、即用即走的特点,非常适合中老年人使用。同时,微信小程序也提供了丰富的功能和接口,可以满足中老年人社交的多种需求。
随着中老年人对移动互联网的使用不断增加,他们对社交的需求也在不断增长。需要更加便捷、易用的社交平台来满足他们的需求。研究基于微信小程序的中老年人社交平台具有重要的意义,其意义主要体现在以下几个方面:
首先,可以满足中老年人的社交需求。通过开发基于微信小程序的中老年人社交平台,可以满足中老年人社交的需求,让他们更加方便地与亲友、同龄人进行交流。
其次,可以提高中老年人的生活质量。中老年人通过社交平台可以分享生活、交流情感,获得更多乐趣和快乐。同时,他们也可以通过社交平台了解更多的信息和知识,丰富自己的生活。
最后,可以推动移动互联网的发展。中老年人作为移动互联网的重要用户群体,他们的使用习惯和需求将对移动互联网的发展产生重要影响。通过研究基于微信小程序的中老年人社交平台,可以推动移动互联网更好地服务于中老年用户,促进移动互联网的进一步发展。
1.2 研究内容
- 需求分析:首先需要明确平台的主要功能,比如用户注册与登录、用户管理、活动中管理、活动报名管理、兑换中心管理等。
- 技术选型:选择Spring Boot作为后端框架,利用它的快速开发、易于维护的特性。前端则可以选择微信小程序框架,利用它的跨平台、易上手的特点。数据库选择MySQL来存储和管理系统数据。
- 设计系统架构:根据需求分析,设计系统的整体架构,包括前后端交互方式、数据库设计等。
- 开发环境搭建:安装并配置Java开发环境,创建Spring Boot项目,安装并配置微信小程序开发工具。
- 编码实现:后端开发使用Spring Boot实现用户管理、数据存储、业务逻辑等功能。前端开发使用微信小程序开发框架,实现用户界面和交互逻辑。
- 测试与调试:在开发过程中进行测试和调试,确保程序的正确性和稳定性。这包括单元测试、集成测试和用户测试等。
论文将分层次进行编排,除去论文摘要致谢文献参考部分,正文部分主要结构如下:
第一章:绪论,主要介绍系统的研究背景和意义,同时进行了论文整体框架的结构的简要介绍。
第二章:需求分析,主要对系统进行可行性技术、系统功能分析、用例分析。
第三章:系统总体设计,主要是对系统功能结构、系统数据库进行分析。
第四章:系统详细设计与实现,根据系统功能的划分,主要对系统的部分界面进行展示。
第五章:系统测试,主要对系统的主要功能进行测试。
第六章:结论,主要对系统的开发设计工作进行总结。
2基于微信小程序的中老年人社交平台需求分析
2.1 可行性分析
微信小程序作为一种轻量级的应用程序,具有无需下载安装、即用即走的特点,非常适合中老年人使用。同时,微信小程序的开发门槛相对较低,可以借助微信平台的丰富开发工具和技术支持,使得开发者可以快速地开发和发布社交小程序。另外,随着移动互联网技术的不断发展和普及,智能手机的操作也变得越来越简单,中老年人使用智能手机的难度大大降低,这也为社交小程序的使用提供了技术基础。因此,从技术层面分析是可行的。
Spring Boot和微信小程序都是开源技术,可以免费使用,从而可以降低开发成本。此外,由于采用轻资产运营模式,小程序在运营过程中的维护成本也相对较低。因此,从经济角度层面分析是可行的。
中老年人社交平台的建设不仅有助于满足中老年人的社交需求,还能在一定程度上缓解他们的孤独感,提高他们的生活质量。同时,这样的平台也可以成为中老年人获取知识和信息的重要渠道,帮助他们更好地融入社会。因此,从社会角度层面分析是可行的。
按照基于微信小程序的中老年人社交平台的功能模块,主要包括用户端(发起者、社区用户)和管理端(管理员)这三大角色,各角色具体功能如下:
- 注册用户功能
- 注册登录:游客可以通过注册成为系统用户,用户注册后需由管理员进行审核,审核通过后可以用账号密码登录。
- 首页:用户可以查看首页展示的轮播图、网站公告、活动中心、分享信息等信息。
- 我的:用户点击首页右下角“我的”进入页面可以查看和管理基本信息、兴趣小组、小组讨论、活动中心、活动报名、活动通知、活动评价和收藏信息。点击“退出登录”即可退出系统登录。
- 社区用户功能
- 注册登录:游客可以通过注册成为系统用户,用户注册后可以用账号密码登录。
- 首页:用户可以查看首页展示的轮播图、网站公告、活动中心、分享信息、兑换中心等信息。
- 我的:用户点击首页右下角“我的”进入页面可以查看和管理基本信息、兴趣小组、小组讨论、活动报名、活动通知、活动评价、分享信息、积分记录、提醒中心、兑换记录、统计图和收藏信息。
- 管理员功能
- 登录:管理员可以通过在后台输入正确的账号和密码进行登录。
- 后台首页:管理员可以查看后台首页展示的社区用户统计图信息。
- 系统用户:管理员可以查看系统用户列表中某个用户的详情;可以对系统用户信息进行查询、添加和删除操作。
- 兴趣小组管理:管理员可以添加兴趣小组信息,可以查询、重置和删除兴趣小组列表信息。
- 小组讨论管理:管理员可以可以查看小组讨论列表中某一小组讨论的详情,可以对列表信息进行查询、重置和删除操作。
- 活动中心管理:管理员可以查看活动中心列表中某一活动的详情和评论信息,可以对活动中心进行查询、重置、添加和删除操作
- 活动类型管理:管理员可以查看活动类型列表中某一类型的详情,可以查询、重置、添加和删除活动类型信息。
- 活动报名管理:管理员可以查看活动报名列表中某一用户的报名详情,可以对列表信息进行查询、重置和删除操作。
- 活动通知管理:管理员可以查看活动通知列表中某一通知的详情,可以对活动通知列表进行查询、重置和删除操作。
- 活动评价管理:管理员可以查看积分记录列表中某一积分记录的详情,可以对积分记录列表进行查询、重置和删除操作。
- 分享信息管理:管理员可以查看分享信息列表中某一信息的详情和评论并提交积分信息;可以查询、重置、添加和删除分享信息。
- 分享类别管理:管理员可以查看分享类别列表中某一类别的详情;可以查询、重置、添加和删除分享类别信息。
- 积分记录管理:管理员可以查看积分记录列表中某一用户的积分详情;可以查询、重置和删除积分记录信息。
- 提醒中心管理:管理员可以查看提醒中心列表中某一提醒的详情,可以对提醒中心信息进行查询、重置、添加和删除操作。
- 提醒分类管理:管理员可以查看提醒分类列表中某一分类的详情,可以对提醒分类信息进行查询、重置、添加和删除操作。
- 兑换中心管理:管理员可以查看兑换中心列表中某一商品的详情和评论信息,可以对提兑换中心信息进行查询、重置、添加和删除操作。
- 兑换记录管理:管理员可以查看兑换记录列表中某一兑换记录的详情,可以对兑换记录信息进行查询、重置和删除操作。
- 系统管理:管理人员在“系统管理”这一菜单下对轮播图进行管控,可以对轮播图信息进行查询、添加和删除操作。
- 通知公告管理:通知公告管理界面是管理员用来管理系统中的通知公告的界面,管理员可以查询、重置、添加和删除通知公告信息。
通过上面的角色分析,得出了基于微信小程序的中老年人社交平台的用例图:
发起者用例图如下图2-1所示。

图2-1 发起者用例图
社区用户用例图如下图2-2所示。

图2-2社区用户用例图
管理员用例图如下图2-3所示。

图2-3管理员用例图
要成为系统用户,首先要通过注册,用户注册流程图如下图2-1所示

图2-4 用户注册流程图
2.3.2 用户登录流程
用户通过登录才能访问系统及权限以内的功能,对此将实现各种应用及管理等功能,用户登录流程图如下图2-5所示。

图2-5 用户登录流程图
2.3.3 数据删除流程
如果系统里面存在一些没用的数据,相关的管理人员还可以对这些数据进行删除,数据删除时流程图如下图2-6所示。

图2-6 数据删除流程图
2.4本章小结
本章主要通过对基于微信小程序的中老年人社交平台的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个基于微信小程序的中老年人社交平台要实现的功能。同时也为基于微信小程序的中老年人社交平台的代码实现和测试提供了标准。
本章主要讨论的内容包括基于微信小程序的中老年人社交平台的功能模块设计、数据库系统设计。
3.1 系统功能模块设计
3.1.1整体功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本基于微信小程序的中老年人社交平台中的用例。那么接下来就要开始对本基于微信小程序的中老年人社交平台的主要功能和数据库开始进行设计。基于微信小程序的中老年人社交平台根据前面章节的需求分析得出,其总体设计模块图如图4-1所示。

图3-1 系统功能模块图
3.1.2用户模块设计
用户模块是系统中一个重要的功能模块,它涉及用户的注册、登录、个人信息管理等操作。在用户模块设计中,我们将定义用户数据的结构和属性,包括用户名、密码、邮箱等。同时,还需要实现用户注册、登录、修改密码等功能,并对用户输入进行验证和处理。用户模块的结构图如下图所示3-2所示:

图3-2用户模块结构图
3.1.3活动中心管理模块设计
活动中心管理模块是本系统中的重要功能之一。该模块的设计旨在提供对活动中心信息的发布、编辑、删除和查看等管理功能,以便及时、准确地向系统用户发布相关的活动信息。其模块功能结构结构图如下图3-3所示:

图3-3活动中心管理模块结构图
3.1.4评论管理模块设计
基于微信小程序的中老年人社交平台是一个交流性质的公开平台,用户可以对活动中心、兑换中心等进行评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,管理员可以删除不合适的评论,其模块功能结构图如下图3-4所示:

图3-4评论管理模块结构图
3.2 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
下面是整个基于微信小程序的中老年人社交平台中主要的数据库表总E-R实体关系图。

图3-5 系统总E-R关系图
3.2.2 数据库逻辑结构设计
通过上一小节中基于微信小程序的中老年人社交平台中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
表access_token (登陆访问时长)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
| 2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
| 3 | info | text | 65535 | 0 | Y | N | ||
| 4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表activity_center (活动中心)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | activity_center_id | int | 10 | 0 | N | Y | 活动中心ID | |
| 2 | activity_number | varchar | 64 | 0 | Y | N | 活动编号 | |
| 3 | activity_title | varchar | 64 | 0 | Y | N | 活动标题 | |
| 4 | activity_type | varchar | 64 | 0 | Y | N | 活动类型 | |
| 5 | event_cover | varchar | 255 | 0 | Y | N | 活动封面 | |
| 6 | event_location | varchar | 64 | 0 | Y | N | 活动地点 | |
| 7 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
| 8 | registration_fee | int | 10 | 0 | Y | N | 0 | 报名费 |
| 9 | responsible_person | int | 10 | 0 | Y | N | 0 | 负责人 |
| 10 | activity_content | text | 65535 | 0 | Y | N | 活动内容 | |
| 11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 14 | timer_title | varchar | 64 | 0 | Y | N | 计时器标题 | |
| 15 | timing_start_time | datetime | 19 | 0 | Y | N | 计时开始时间 | |
| 16 | timing_end_time | datetime | 19 | 0 | Y | N | 计时结束时间 | |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表activity_evaluation (活动评价)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | activity_evaluation_id | int | 10 | 0 | N | Y | 活动评价ID | |
| 2 | registration_number | varchar | 64 | 0 | N | N | 报名编号 | |
| 3 | activity_number | varchar | 64 | 0 | Y | N | 活动编号 | |
| 4 | activity_title | varchar | 64 | 0 | Y | N | 活动标题 | |
| 5 | activity_type | varchar | 64 | 0 | Y | N | 活动类型 | |
| 6 | event_cover | varchar | 255 | 0 | Y | N | 活动封面 | |
| 7 | event_location | varchar | 64 | 0 | Y | N | 活动地点 | |
| 8 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
| 9 | registration_fee | int | 10 | 0 | Y | N | 0 | 报名费 |
| 10 | responsible_person | int | 10 | 0 | Y | N | 0 | 负责人 |
| 11 | registered_users | int | 10 | 0 | Y | N | 0 | 报名用户 |
| 12 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 13 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
| 14 | evaluation_content | text | 65535 | 0 | Y | N | 评价内容 | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表activity_type (活动类型)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | activity_type_id | int | 10 | 0 | N | Y | 活动类型ID | |
| 2 | activity_type | varchar | 64 | 0 | Y | N | 活动类型 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表auth (用户权限管理)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
| 2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
| 3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
| 4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
| 5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
| 6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
| 7 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 18 | option | text | 65535 | 0 | Y | N | 配置: | |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表collect (收藏)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
| 3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 6 | title | varchar | 255 | 0 | Y | N | 标题: | |
| 7 | img | varchar | 255 | 0 | Y | N | 封面: | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表comment (评论)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
| 5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
| 6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表community_users (社区用户)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | community_users_id | int | 10 | 0 | N | Y | 社区用户ID | |
| 2 | user_name | varchar | 64 | 0 | N | N | 用户姓名 | |
| 3 | community_address | varchar | 64 | 0 | Y | N | 社区地址 | |
| 4 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
| 5 | total_points | int | 10 | 0 | Y | N | 0 | 总积分 |
| 6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表event_notifications (活动通知)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | event_notifications_id | int | 10 | 0 | N | Y | 活动通知ID | |
| 2 | registration_number | varchar | 64 | 0 | N | N | 报名编号 | |
| 3 | activity_number | varchar | 64 | 0 | Y | N | 活动编号 | |
| 4 | activity_title | varchar | 64 | 0 | Y | N | 活动标题 | |
| 5 | activity_type | varchar | 64 | 0 | Y | N | 活动类型 | |
| 6 | event_cover | varchar | 255 | 0 | Y | N | 活动封面 | |
| 7 | event_location | varchar | 64 | 0 | Y | N | 活动地点 | |
| 8 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
| 9 | registration_fee | int | 10 | 0 | Y | N | 0 | 报名费 |
| 10 | responsible_person | int | 10 | 0 | Y | N | 0 | 负责人 |
| 11 | registered_users | int | 10 | 0 | Y | N | 0 | 报名用户 |
| 12 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 13 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
| 14 | notification_content | text | 65535 | 0 | Y | N | 通知内容 | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表event_registration (活动报名)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | event_registration_id | int | 10 | 0 | N | Y | 活动报名ID | |
| 2 | registration_number | varchar | 64 | 0 | Y | N | 报名编号 | |
| 3 | activity_number | varchar | 64 | 0 | Y | N | 活动编号 | |
| 4 | activity_title | varchar | 64 | 0 | Y | N | 活动标题 | |
| 5 | activity_type | varchar | 64 | 0 | Y | N | 活动类型 | |
| 6 | event_cover | varchar | 255 | 0 | Y | N | 活动封面 | |
| 7 | event_location | varchar | 64 | 0 | Y | N | 活动地点 | |
| 8 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
| 9 | registration_fee | int | 10 | 0 | Y | N | 0 | 报名费 |
| 10 | responsible_person | int | 10 | 0 | Y | N | 0 | 负责人 |
| 11 | registered_users | int | 10 | 0 | Y | N | 0 | 报名用户 |
| 12 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 13 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
| 14 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 15 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 16 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 17 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
| 18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表exchange_records (兑换记录)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | exchange_records_id | int | 10 | 0 | N | Y | 兑换记录ID | |
| 2 | exchange_number | varchar | 64 | 0 | Y | N | 兑换号 | |
| 3 | serial_number | varchar | 64 | 0 | Y | N | 物品编号 | |
| 4 | item_name | varchar | 64 | 0 | Y | N | 物品名称 | |
| 5 | item_cover | varchar | 255 | 0 | Y | N | 物品封面 | |
| 6 | item_specifications | varchar | 64 | 0 | Y | N | 物品规格 | |
| 7 | unit_price_points | int | 10 | 0 | Y | N | 0 | 单价积分 |
| 8 | exchange_date | date | 10 | 0 | Y | N | 兑换日期 | |
| 9 | redemption_users | int | 10 | 0 | Y | N | 0 | 兑换用户 |
| 10 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 11 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
| 12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 14 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表initiator (发起者)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | initiator_id | int | 10 | 0 | N | Y | 发起者ID | |
| 2 | name_of_initiator | varchar | 64 | 0 | Y | N | 发起者姓名 | |
| 3 | founders_mobile_phone | varchar | 64 | 0 | Y | N | 发起者手机 | |
| 4 | id_screenshot | varchar | 255 | 0 | Y | N | 证件截图 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表integral_record (积分记录)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | integral_record_id | int | 10 | 0 | N | Y | 积分记录ID | |
| 2 | title | varchar | 64 | 0 | N | N | 标题 | |
| 3 | cover | varchar | 255 | 0 | Y | N | 封面 | |
| 4 | sharing_categories | varchar | 64 | 0 | Y | N | 分享类别 | |
| 5 | sharing_package | varchar | 255 | 0 | Y | N | 分享包 | |
| 6 | shared_by | int | 10 | 0 | Y | N | 0 | 分享人 |
| 7 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 8 | article_content | text | 65535 | 0 | Y | N | 文章内容 | |
| 9 | earn_points | int | 10 | 0 | Y | N | 0 | 获得积分 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表interest_group (兴趣小组)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | interest_group_id | int | 10 | 0 | N | Y | 兴趣小组ID | |
| 2 | initiator | int | 10 | 0 | Y | N | 0 | 发起者 |
| 3 | name_of_initiator | varchar | 64 | 0 | Y | N | 发起者姓名 | |
| 4 | discussion_topics | varchar | 64 | 0 | Y | N | 讨论话题 | |
| 5 | initiation_date | date | 10 | 0 | Y | N | 发起日期 | |
| 6 | inviting_object_1 | int | 10 | 0 | Y | N | 0 | 邀请对象1 |
| 7 | inviting_object_2 | int | 10 | 0 | Y | N | 0 | 邀请对象2 |
| 8 | inviting_object_3 | int | 10 | 0 | Y | N | 0 | 邀请对象3 |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表money_changer (兑换中心)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | money_changer_id | int | 10 | 0 | N | Y | 兑换中心ID | |
| 2 | serial_number | varchar | 64 | 0 | N | N | 物品编号 | |
| 3 | item_name | varchar | 64 | 0 | Y | N | 物品名称 | |
| 4 | item_cover | varchar | 255 | 0 | Y | N | 物品封面 | |
| 5 | item_specifications | varchar | 64 | 0 | Y | N | 物品规格 | |
| 6 | unit_price_points | int | 10 | 0 | Y | N | 0 | 单价积分 |
| 7 | item_introduction | longtext | 2147483647 | 0 | Y | N | 物品介绍 | |
| 8 | limit_times | int | 10 | 0 | N | N | 0 | 限制次数 |
| 9 | limit_type | tinyint | 4 | 0 | N | N | 1 | 限制次数类型1-每天次,2-总计次 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notice (公告)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
| 2 | title | varchar | 125 | 0 | N | N | 标题: | |
| 3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表panel_discussion (小组讨论)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | panel_discussion_id | int | 10 | 0 | N | Y | 小组讨论ID | |
| 2 | initiator | int | 10 | 0 | Y | N | 0 | 发起者 |
| 3 | name_of_initiator | varchar | 64 | 0 | Y | N | 发起者姓名 | |
| 4 | discussion_topics | varchar | 64 | 0 | Y | N | 讨论话题 | |
| 5 | initiation_date | date | 10 | 0 | Y | N | 发起日期 | |
| 6 | inviting_object_1 | int | 10 | 0 | Y | N | 0 | 邀请对象1 |
| 7 | inviting_object_2 | int | 10 | 0 | Y | N | 0 | 邀请对象2 |
| 8 | inviting_object_3 | int | 10 | 0 | Y | N | 0 | 邀请对象3 |
| 9 | discussion_content | text | 65535 | 0 | Y | N | 讨论内容 | |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表praise (点赞)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表reminder_center (提醒中心)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | reminder_center_id | int | 10 | 0 | N | Y | 提醒中心ID | |
| 2 | reminder_date | date | 10 | 0 | Y | N | 提醒日期 | |
| 3 | reminder_object | int | 10 | 0 | Y | N | 0 | 提醒对象 |
| 4 | reminder_classification | varchar | 64 | 0 | Y | N | 提醒分类 | |
| 5 | reminder_content | text | 65535 | 0 | Y | N | 提醒内容 | |
| 6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表reminder_classification (提醒分类)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | reminder_classification_id | int | 10 | 0 | N | Y | 提醒分类ID | |
| 2 | reminder_classification | varchar | 64 | 0 | Y | N | 提醒分类 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表sharing_categories (分享类别)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | sharing_categories_id | int | 10 | 0 | N | Y | 分享类别ID | |
| 2 | sharing_categories | varchar | 64 | 0 | Y | N | 分享类别 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表sharing_information (分享信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | sharing_information_id | int | 10 | 0 | N | Y | 分享信息ID | |
| 2 | title | varchar | 64 | 0 | N | N | 标题 | |
| 3 | cover | varchar | 255 | 0 | Y | N | 封面 | |
| 4 | sharing_categories | varchar | 64 | 0 | Y | N | 分享类别 | |
| 5 | shared_by | int | 10 | 0 | Y | N | 0 | 分享人 |
| 6 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 7 | article_content | text | 65535 | 0 | Y | N | 文章内容 | |
| 8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | content | varchar | 255 | 0 | Y | N | 内容: | |
| 4 | url | varchar | 255 | 0 | Y | N | 链接: | |
| 5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表upload (文件上传)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
| 2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
| 3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
| 4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
| 5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
| 6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
| 7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
| 8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
| 4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
| 5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
| 6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
| 8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
| 9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
| 10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
| 11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
| 16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
| 3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
| 4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
| 9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个基于微信小程序的中老年人社交平台的需求分析主要对系统功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 基于微信小程序的中老年人社交平台详细设计与实现
4.1注册登录功能模块
游客可以通过注册成为系统用户。点击首页右下角“我的”进入页面点击“登录”,点击登录页面下方的“没有账户?马上注册”进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份等信息后点击“立即注册”按钮,系统会对输入的信息进行验证,验证通过后即可完成注册。其中,发起者用户注册后需由管理员进行审核,审核通过后方可使用账号密码登录。其界面图如下图4-1所示:

图4-1 用户注册界面图
注册的代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
用户注册后可以用账号密码登录,点击首页下方“我的”进入页面后点击“登录”,在登录页面输入自己的账号、密码后后点击“登录”按钮,系统验证通过后即可完成登录。其界面图如下图4-2所示。

图4-2 用户登录界面图
登录的代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.2.1 用户端首页界面
用户可以查看首页展示的轮播图、网站公告、活动中心、分享信息等信息。用户可以左右滑动查看轮播图信息。点击“活动中心”进入页面可以查看列表中某一活动的详情并可以点赞、收藏和评论;点击“分享信息”进入页面可以查看列表中某一分享信息的详情并可以点赞、收藏和评论。其界面展示如下图4-3所示。

图4-3 用户端首页界面图
用户点击首页右下角“我的”进入页面可以查看和管理基本信息、兴趣小组、小组讨论、活动中心、活动报名、活动通知、活动评价和收藏信息。点击“基本信息”进入页面可以修改密码和个人资料,密码修改后可以用新密码登录系统;点击“活动报名”可以查看列表中某一用户的报名详情并进行审核回复和发送活动通知;可以添加兴趣小组、活动中心、小组讨论信息;可以查询、重置和添加兴趣小组、活动中心信息;可以查询和重置活动报名、活动通知信息;可以查看或删除收藏列表信息。其界面展示如下图4-4所示。

图4-4我的界面图
用户可以查看首页展示的轮播图、网站公告、活动中心、分享信息、兑换中心等信息。用户可以左右滑动查看轮播图信息。点击“活动中心”进入页面可以查看列表中某一活动的详情并可以报名、点赞和评论;点击“兑换中心”进入页面可以查看兑换中心列表中某个物品的详情并可以兑换、收藏和评论。点击“分享信息”进入页面可以查看列表中某个信息的详情并可以点赞、收藏和评论。其界面展示如下图4-5所示。

图4-5首页界面图
用户点击首页右下角“我的”进入页面可以查看和管理基本信息、兴趣小组、小组讨论、活动报名、活动通知、活动评价、分享信息、积分记录、提醒中心、兑换记录、统计图和收藏信息。点击“基本信息”进入页面可以修改密码和个人资料,密码修改后可以用新密码登录系统;点击“活动报名”进入页面可以查看列表中某一报名的详情并可以通过微信、支付宝等方式完成报名费用的支付;可以查询和重置活动报名、活动通知、积分记录、提醒中心、兑换记录信息;可以查询、重置和添加小组讨论、分享信息;可以查看或删除收藏列表信息。其界面展示如下图4-6所示。

图4-6我的界面图
4.4 管理端功能模块
管理员可以可以查看小组讨论列表中某一小组讨论的详情,可以对列表信息进行查询、重置和删除操作。其界面如下图4-8所示。

图4-7小组讨论管理界面图
添加的代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
删除的代码如下:
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
管理员可以查看活动中心列表中某一活动的详情和评论信息,可以对活动中心列表进行查询、重置和删除操作;点击“活动中心添加”进入页面填写活动名称、活动地点等信息后点击“提交”即可完成活动信息的添加。其界面如下图4-8所示。

图4-8活动中心管理界面图
管理员可以查看活动评价列表中某一活动评价的详情,可以对活动评价列表进行查询、重置和删除操作。其界面如下图4-9所示。

图4-9活动评价管理界面图
管理员可以查看分享信息列表中某一信息的详情和评论并提交积分信息;可以查询、重置、添加和删除分享信息。其界面如下图4-10所示。

图4-10分享信息管理界面图
管理员可以查看分享类别列表中某一类别的详情,可以对分享类别列表进行查询、重置和删除操作。点击“分享类别添加”进入页面填写类别名称后点击“提交”即可完成分享类别的添加。其界面如下图4-11所示。

图4-11分享类别管理界面图
管理员可以查看积分记录列表中某一积分记录的详情,可以对积分记录列表进行查询、重置和删除操作。其界面如下图4-12所示。

图4-12积分记录管理界面图
管理员可以查看兑换中心列表中某一商品的详情和评论信息,可以对提兑换中心信息进行查询、重置、添加和删除操作。其界面如下图4-13所示。

图4-13兑换中心管理界面图
管理人员在“系统管理”这一菜单下对轮播图进行管控,可以对轮播图信息进行查询、添加和删除操作。其界面如下图4-14所示。

图4-14系统管理界面图
图片上传的代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
通知公告管理界面是管理员用来管理系统中的通知公告的界面,以便向用户传达各种重要信息、公告、更新或事件等内容,管理员可以查询、重置、添加和删除通知公告信息。其界面如下图4-15所示。

图4-15通知公告管理界面图
5系统测试
5.1 系统测试目的
无论什么样的系统,测试都至关重要,通过测试可以检查出潜藏的缺陷,从而确保系统的性能和稳定性,避免Bug的出现,并确保系统的功能和性价比达到预期的要求。
系统测试包括:用户登录功能测试、活动中心查看功能、轮播图信息添加功能、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
| 用例名称 | 用户登录系统 |
| 目的 | 测试用户通过正确的用户名和密码可否登录功能 |
| 前提 | 未登录的情况下 |
| 测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
| 预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
| 实际结果 | 实际结果与预期结果一致 |
活动中心查看功能测试:
表5-2 活动中心查看功能测试表
| 用例名称 | 活动中心查看 |
| 目的 | 测试活动中心查看功能 |
| 前提 | 社区用户登录 |
| 测试流程 | 点击小程序首页的“活动中心” |
| 预期结果 | 可以查看到所有活动中心信息 |
| 实际结果 | 实际结果与预期结果一致 |
轮播图信息添加界面测试:
表5-3 轮播图信息添加界面测试表
| 用例名称 | 轮播图信息添加测试用例 |
| 目的 | 测试轮播图信息添加功能 |
| 前提 | 管理员用户正常登录情况下 |
| 测试流程 | 1)管理员点击系统管理下方的“轮播图管理”,然后点击添加进入添加页面填写信息。 2)填写完毕后点击“提交”。 |
| 预期结果 | 提交以后,页面首页会显示新的轮播图信息 |
| 实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-4 密码修改功能测试表
| 用例名称 | 密码修改测试用例 |
| 目的 | 测试社区用户密码修改功能 |
| 前提 | 注社区用户正常登录情况下 |
| 测试流程 | 1)点击“我的”进入页面点击基本信息,点击“修改密码”。 2)修改后点击提交。 |
| 预期结果 | 使用新的密码可以登录 |
| 实际结果 | 实际结果与预期结果一致 |
通过编写基于微信小程序的中老年人社交平台的测试用例,已经检测完毕用户登录功能测试、活动中心查看功能、轮播图信息添加功能、密码修改功能测试,通过这四大模块的测试为基于微信小程序的中老年人社交平台的后期推广运营提供了强力的技术支撑。
在基于微信小程序的中老年人社交平台开发之前,需要先对用户的具体需求进行分析。包括系统的可行性分析、功能需求分析以及其他需求等。在可行性分析过程中,对系统实现的技术性、经济性等方面进行了分析。总体上证明了系统实施的可行性。
本文总结了基于微信小程序的中老年人社交平台开发背景与意义,然后阐述了系统的具体业务需求,并根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为用户端模块和管理端模块。在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。系统开发完成之后进行了部署,同时进行了系统的测试过程,通过测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性。
[1]冉启睿.基于DeepFM的智能社交平台系统的设计与实现[D].北京交通大学,2023.
[2]郑若彤.基于积极体验要素的城市社区老年人社交服务设计研究[D].杭州师范大学,2023.
[3]刘倩.中老年群体社交媒体使用意愿的影响因素研究[D].西安外国语大学,2022.
[4]周欣园.中老年人在社交平台使用表情包的心理探究——基于基模理论进行分析[J].新媒体研究,2021,7(19):39-41+45.0360.2021.19.008.
[5]炎琳.社交媒体平台上中老年群体的自我呈现及其影响因素研究[D].华南理工大学,2021.
[6]张文静.中老年网民群体短视频使用行为研究[D].南京理工大学,2021.
[7]李颖彦.“复媒体”环境下中老年用户的社交型构与形象自塑[D].暨南大学,2020.
[8]贾婧,张青,曾广知等.基于微信小程序的乡村文旅软件设计与实现——以“游享家”小程序为例[J].电脑知识与技术,2022,18(31):26-28+32.
[9]陈磊,黄钰涵,姜雨晴.基于微信小程序的临沂旅游应用平台开发研究[J].黑龙江科学,2022,13(18):29-32.
[10]许义,周焕,刘佳.“候鸟”微信小程序设计与实现[J].电脑编程技巧与维护,2024,(02):60-64.
[11]田晨池,谷攀登,潘家杰等.基于微信小程序的私人定制旅游攻略平台(山河行)设计与开发[J].电脑知识与技术,2022,18(04):12-14.
[12]陈清灵.疫情防控常态化下的旅游导览微信小程序设计——以中国福州三坊七巷景点为例[J].艺术与设计(理论),2022,2(01):140-141.
[13]李晟曈,刘哲,俞定国等.基于Vue和SpringBoot的乡村文旅平台设计与实现[J].现代计算机,2023,29(08):98-103.
[14]孙岩,李晶.基于SpringBoot的旅游资源管理网站的设计与实现[J].信息技术与信息化,2021,(01):37-39.
[15]游晶,邱淑丽,李敬文.基于SpringBoot的校园智慧报修系统的设计与实现[J].电脑知识与技术,2023,19(32):50-52+65.
[16]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
[17]Junhao S ,Weize L ,Zhiheng Z , et al.Design and Implementation of the Remote Use of the Table Tennis Ball Recovery and Cleaning Machine Based on Wechat Mini Program[J].Academic Journal of Engineering and Technology Science,2023,6(9):
[18]Yong R ,Feng P .Design and Realization of University Personnel Office Service Platform Based on WeChat Applet[J].Advances in Computer, Signals and Systems,2023,7(6):
[19]熊群毓.大数据时代MySQL数据库的应用分析[J].信息与电脑(理论版),2023,35(14):209-212.
[20]马庆.计算机软件开发中JAVA编程语言的应用[J].山西电子技术,2023,(06):84-86+98.
首先,我要感谢我的论文指导老师。在论文完成的整个过程中,指导老师始终给予我无微不至的关爱与指导。在论文写作的过程中,导师那耐心细致的指导,以及提出的具有建设性的意见,都给予了我极大的帮助,让我受益匪浅。导师严谨的治学态度、敬业精神以及高水平的教学能力,都给我树立了追求卓越的典范,这对我以后的人生道路和学业成就都产生了极大的积极影响。
此外,我还要感谢我班的同学们,他们既是我的同窗好友,又是我的良师益友。正是由于你们的支持和关怀,使得我在大学期间的学习和生活都变得异常充实。感谢那些在大学期间给予我帮助的所有老师和同学们,是你们给予了我在学业道路上的前进动力。
当然,我也不能忘记我的父母,是他们用无私的爱抚养我成人。你们的养育之恩我将永生难忘,将来我一定会用我的成绩回报你们。在成长的道路上,我会不断努力,不负众望,用实际行动来回报你们对我的期望。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
359

被折叠的 条评论
为什么被折叠?



