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

基于Spring Boot+Vue的DIY手工社预约管理系统(Echarts图形化、腾讯地图API)

2.10 视频课程管理功能实现2.11手工互动(视频弹幕)

2.8预约设置管理功能实现🎈系统亮点:Echarts图形化、腾讯地图API;

文档包含功能结构图、系统架构图、用例图、实体属性图、E-R图。

一.系统开发工具与环境搭建

1.系统设计开发工具


后端使用Java编程语言的Spring boot框架
项目架构:B/S架构
运行环境:win10/win11、jdk17


前端:
技术:框架Vue.js;UI库:ElementUI;
开发工具:Visual Studio Code;



后端:
技术:Java语言、mybatis plus、Spring boot框架;
开发工具:IDEA 2023.3.3版本;



数据库:
数据库:mysql5.7/8.0
数据库工具:Navicat12版本;


二.系统实现(部分截图)

2.1登录注册功能的实现

2.1.1注册功能的实现

用户注册账号,输入账号,密码,邮箱,联系方式,姓名,并输入图形验证码,进行注册。注册成功后,角色默认是用户角色。前端会跳转界面到登录界面,进行登录系统,操作系统。注册功能页面图如图5-1所示。

注册功能模块具体的核心代码如下:

//检查用户名是否存在

Long userCount = AppUserMpper.selectCount(Wrappers.<AppUser>lambdaQuery()

        .eq(Extension.isNotNullOrEmpty(input.getUserName()),AppUser::getUserName, input.getUserName()));

if (userCount > 0) {

    throw new CustomException("该用户名已经存在!");

}

//检查邮箱是否存在

Long emailCount = AppUserMpper.selectCount(Wrappers.<AppUser>lambdaQuery()

        .eq(Extension.isNotNullOrEmpty(input.getUserName()),AppUser::getEmail, input.getEmail()));

if (emailCount > 0) {

    throw new CustomException("该邮箱已经存在!");

}

//检查手机号是否存在

Long phoneCount = AppUserMpper.selectCount(Wrappers.<AppUser>lambdaQuery()

        .eq(Extension.isNotNullOrEmpty(input.getPhoneNumber()), AppUser::getPhoneNumber, input.getPhoneNumber()));

if (phoneCount > 0) {

    throw new CustomException("该手机号已经存在!");

}

return CreateOrEdit(input);

2.1.2登录功能的实现

用户登录系统,输入已注册的账号、密码进行登录,选择自己的角色身份进行登录,并输入图形验证码进行登录。登录成功后,进入系统首页界面。登录功能页面图如图5-2所示。

登录功能模块具体的核心代码如下:

LambdaQueryWrapper<AppUser> queryWrapper = Wrappers.<AppUser>lambdaQuery()

        .eq(Extension.isNotNullOrEmpty(input.getUserName()),AppUser::getUserName, input.getUserName()).eq(Extension.isNotNullOrEmpty(input.getPassword()),AppUser::getPassword, input.getPassword()).eq(input.getRoleType() != null, AppUser::getRoleType, input.getRoleType());

List<AppUser> items = AppUserMpper.selectList(queryWrapper);

if (items.stream().count() == 0) {

    throw new CustomException("请检查登录的账号或者密码,角色是否都正确!");

}

Map<String, String> map = new HashMap<>();

map.put(SysConst.UserIdClaim, items.get(0).getId().toString());

map.put(SysConst.RoleTypeClaim, items.get(0).getRoleType().toString());

String token = JWTUtils.getToken(map);

return token;

2.2活动信息功能的实现

用户进入系统首页,可以通过活动类型筛选活动信息。活动列表采用卡片方式展示,能让用户一目了然地获取每个活动的关键信息。包含展示活动的创建时间,浏览次数,预约次数,评价量以及活动地址等信息。活动列表功能页面图如图5-3所示。

管理员可以进行管理活动列表信息,管理员可根据实际业务需求,添加新的活动信息,包含活动分类,活动标题,活动封面,活动的具体位置,活动内容等信息。若已有的活动信息发生变更,活动时间调整、地点更改或者活动内容更新等,及时进行调整。当活动不再运营时,管理员要删除活动信息。活动管理功能页面图如图5-4所示。

活动信息功能模块具体的核心代码如下:

// 按创建时间从大到小排序 最新的显示在最前面

queryWrapper = queryWrapper.orderByDesc(Activity::getCreationTime);

// 构建一个分页查询的model

Page<Activity> page = new Page<>(input.getPage(), input.getLimit());

// 从数据库进行分页查询获取活动数据

IPage<Activity> pageRecords = ActivityMapper.selectPage(page, queryWrapper);

// 获取所有满足条件的数据行数

Long totalCount = ActivityMapper.selectCount(queryWrapper);

// 把Activity实体转换成Activity传输模型

List<ActivityDto> items = Extension.copyBeanList(pageRecords.getRecords(), ActivityDto.class);

DispatchItem(items);

// 返回一个分页结构给前端

return PagedResult.GetInstance(items, totalCount);

2.3活动预约功能的实现

用户查看活动列表,对于吸引到自己的活动信息,用户只需点击,便能进入该活动的详情界面。查看活动可以预约的时间,用户可根据自己的需求进行预约,填写手机号和姓名进行预约。预约成功后,用户可在“我的预约”界面进行查看。活动预约功能页面图如图5-5所示。

管理员能够依据活动筹备情况进行设置活动基本配置。包含活动的开始时间段,结束时间段以及有效时间。当活动时间有所变动,管理员要及时的进行更新,防止用户跑空。对于不再开展的时间段,管理员要进行删除。活动预约配置功能界面图5-6所示。

活动预约配置功能模块具体的核心代码如下:

List<AppointSetting> AppointSettings = AppointSettingMapper.selectList(Wrappers

        .<AppointSetting>lambdaQuery().eq(AppointSetting::getActivityId, input.getActivityId()));

// 判断items在数据库中是否存在开始时间和结束时间之间的交集数据

for (AppointSetting item : AppointSettings) {

    if (item.getId() != input.getId()) {

        if (!(input.getEndTime().isBefore(item.getBeginTime())

                || input.getBeginTime().isAfter(item.getEndTime()))) {

            throw new CustomException("时间段发生冲突");

        }

    }

}

2.4活动统计功能的实现

系统通过Echarts进行设计了一个活动相关的数据图形化分析界面,通过环形图展示不同类型活动的占比情况。帮助管理员了解各类活动的数量占比情况。以饼图呈现活动评分的分布状况,可以了解到哪些活动最受人们的喜爱。用折线图展示近7天的活动预约情况。横轴是日期,纵轴是预约量,折线反映预约量随时间的变化趋势。活动统计功能页面图如图5-7所示。

活动统计功能功能模块具体的核心代码如下:

<!-- 图表区域 -->

        <el-row :gutter="20" class="chart-row">

            <el-col :span="12">

                <el-card>

                    <div class="chart-title">活动类型分布</div>

                    <div class="chart" id="typeChart"></div>

                </el-card>

            </el-col>

            <el-col :span="12">

                <el-card>

                    <div class="chart-title">活动评分分布</div>

                    <div class="chart" id="scoreChart"></div>

                </el-card>

            </el-col>

        </el-row>

2.5我的预约功能实现

    2.6手工课程功能实现

      2.7我的收藏功能实现

      2.8预约设置管理功能实现

        2.9 预约统计功能实现

        2.10 视频课程管理功能实现

        2.11 课程统计功能实现

        三.系统结构截图

        1.后端

        2.前端

        3.数据库

        http://www.dtcms.com/a/271269.html

        相关文章:

      1. [Pytest][Part 4]多种测试运行方式
      2. docker部署华为高斯数据库opengauss(arm版本)
      3. 1.1 ARMv8/ARMv9安全扩展
      4. 解决SQL Server SQL语句性能问题(9)——SQL语句改写(6)
      5. 【PDF提取内容改名】批量提取pdf多个指定区域内容到excel表格的操作步骤和方法
      6. NLP革命二十年:从规则驱动到深度学习的跃迁
      7. Spring Boot 项目中多数据源配置使用场景
      8. 美股异动|机器人概念表现活跃,微美全息(WIMI.US)瞄准高增长赛道涨超14%
      9. 丰田将协作机器人与现有设备相结合,以实现超高负载能力和安全性
      10. 焊接机器人智能节气装置
      11. Deepoc具身智能大模型:物流机器人的神经中枢如何重塑现代供应链
      12. Android ttyS2无法打开该如何配置 + ttyS0和ttyS1可以
      13. 板凳-------Mysql cookbook学习 (十一--------6)
      14. Android 12 - 部分相机横屏显示方案
      15. Docker高级管理--容器通信技术与数据持久化
      16. 记录跟随recyclerview滑动的指示器
      17. 智能避让+自动换针:三坐标让汽车检具测量安全又高效
      18. 小鹏汽车6月交付车辆34,611辆,同比增长224%
      19. 实现子系统深度融合,IBMS系统消除信息孤岛释放价值潜力
      20. 云成本优化的核心原则与框架
      21. React 编译器与性能优化:告别手动 Memoization
      22. App中分发中的防盗链开发是做什么的?
      23. 米思齐2.0 3.0 mixly arduino 编程软件下载安装及详情使用指南 导入库文件方法 支持8266 esp32
      24. # 如何让微软 Edge 浏览器以 IE 模式打开某些网站?
      25. APP上架怎么避免麻烦应对解决方案和替代方案
      26. Spring State Machine
      27. git上传大文件启用LFS git报错 the remote end hung up unexpectedly
      28. 数学建模:非线性规划:二次规划问题
      29. 项目管理进阶——解读智能制造项目PMO规划与项目管理方案【附全文阅读】
      30. 软件测试报告第三方是什么?软件测试报告都包含啥?