基于springboot的旅游打卡攻略分享小程序

news/2024/5/18 16:01:05/文章来源:https://blog.csdn.net/weixin_53783806/article/details/127329519

💖💖作者:IT跃迁谷毕设展
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
Java实战项目集
微信小程序实战项目集
Python实战项目集
安卓Android实战项目集

💕💕文末获取源码

文章目录

  • 💕💕文末获取源码
  • 旅游打卡小程序-系统简介
  • 旅游打卡小程序-技术选型
  • 旅游打卡小程序-图片展示
  • 旅游打卡小程序-代码展示
    • 旅游打卡小程序-Controller层
    • 旅游打卡小程序-Service层
    • 旅游打卡小程序-Dao层
  • 旅游打卡小程序-结语

旅游打卡小程序-系统简介

现代科技不断发展,人们生活水平不断的提高,解决温饱问题已经不再是人们关注的重点,现在更多关注的是精神满足的问题。近几个年来,不论是在寒暑假期、还是国庆假期,出游人数都在不断的增加,从这些数据也证明着人们在不断提升自己的生活水平,并且更加重视追求精神世界上的享受。人们在欣赏自然风光领略风土人情的同时还带动了国家财政的收益。
在这种社会发展的大背景下,随之而来的是旅游服务业的蓬勃发展。人们出游的方式也会更加多样,旅游服务系统从游客的角度出发的,为整个旅游制定合理的旅游路线、旅游行程等。虽然新兴旅游产业层出不穷,但是相应的旅游服务系统还存在着许多不足。主要有以下三个问题:一是现存在的旅游网站提供的服务水平差距大,网站的浏览量低、网站技术性较差、内容简单。二是旅游网站安全性不够高,容易受到恶意攻击泄露个人信息。三是网站系统对游客的吸引力不够,与旅游之间的互动性差。
因此开发一个旅游打卡小程序,可以在上面打卡旅游胜地,并分享旅游攻略,共同创作,一起在旅游中享受更开心的过程。

旅游打卡小程序-技术选型

开发语言:Java
数据库:MySQL
系统架构:B/S
后端框架:SpringBoot(Spring+SpringMVC+Mybatis)
前端:微信小程序

旅游打卡小程序-图片展示

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

旅游打卡小程序-代码展示

旅游打卡小程序-Controller层

/**
* 作用:旅游打卡小程序-旅游攻略攻略
* Author: IT跃迁谷毕设展
*/
@Controller
@RequestMapping("/seek")
public class SeekController {@Autowiredprivate SeekService seekService;@Autowiredprivate InformService informService;@Autowiredprivate MessageService messageService;/*** 跳转到 攻略求助*/@RequestMapping("/toSeek")public String toSeek() {return "seek/seekList";}/*** 求助列表*/@PostMapping("/seekList")@ResponseBodypublic Map<String, Object> seekList(SeekCustom seekCustom,@RequestParam(value = "page", required = false) Integer page,@RequestParam(value = "limit", required = false) Integer pageSize) {Map<String, Object> result = new HashMap<>();// 如果标题不为空,赋值为 模糊查询的格式if (StringUtil.isNotEmpty(seekCustom.getTitle())) {seekCustom.setTitle("%" + seekCustom.getTitle() + "%");}List<Seek> seekList = seekService.findByParam(seekCustom, page, pageSize);Long count = seekService.getCount(seekCustom);result.put("data", seekList);result.put("count", count);result.put("code", 0);return result;}/*** 跳转到添加求助表单页面*/@GetMapping("/toAddSeek")public String toAddSeek() {return "seek/addSeek";}/*** 后台,添加求助信息* 添加操作:一般参数会携带用户信息*/@PostMapping("/addSeek")@ResponseBodypublic AjaxResult addSeek(Seek seek, User user) {AjaxResult result = null;System.out.println("==========后台添加求助信息");System.out.println(seek);System.out.println("++========用户信息");System.out.println(user);// 用户为:后台管理员if (user.getId() == null) {user.setId(1);seek.setUser(user);}// 默认求助信息状态:1seek.setState(1);// 求助时间seek.setPublishDate(new Date());int count = seekService.addSeek(seek);if (count > 0) {result = new AjaxResult(true, "求助信息添加成功!");} else {result = new AjaxResult(false, "添加失败!");}return result;}/*** 跳转到编辑求助信息页面* 并进行数据回显*/@GetMapping("/toEditSeek/{id}")public ModelAndView toEditSeek(@PathVariable("id") Integer id) {ModelAndView mav = new ModelAndView();Seek seek = seekService.findById(id);if (seek == null) {mav.addObject("errorMsg", "数据请求失败!");} else {mav.addObject("seek", seek);}mav.setViewName("seek/editSeek");return mav;}/*** 删除求助信息* 将求助信息状态改为 0*/@PostMapping("/delSeek")@ResponseBodypublic AjaxResult delSeek(@RequestParam("seekId") Integer seekId, @RequestParam("title") String title,@RequestParam("userId") Integer userId) {AjaxResult result = null;Seek seek = new Seek();seek.setId(seekId);// 状态设为 0seek.setState(0);System.out.println("=========================求助信息详情:");System.out.println(seek);// 如果该求助信息有举报信息int count = seekService.updateSeekState(seekId);if (count > 0) {result = new AjaxResult(true, "求助信息已删除!");// 打卡景点下架通知Message message = new Message();User user = new User();user.setId(userId);message.setUser(user);message.setTitle(Consts.MSG_SEEK_TITLE_DEL);message.setContent("你打卡的求助信息 " + "\"" + title + "\" " + Consts.MSG_SEEK_CONTENT_DEL);message.setState(0);message.setCreateTime(new Date());count = messageService.publishMsg(message);if (count > 0) {result = new AjaxResult(true, "删除通知已发送!");}} else {result = new AjaxResult(false, "删除失败!");}return result;}

旅游打卡小程序-Service层

/**
* 作用:旅游打卡小程序-旅游攻略攻略
* Author: IT跃迁谷毕设展
*/
public interface SeekService {// 根据 id 查询Seek findById(Integer id);// 根据用户查询求助列表List<Seek> findByUserId(Integer userId);// 查询所有求助列表List<Seek> findAll();// 条件查询求助列表List<Seek> findByParam(SeekCustom seekCustom, Integer page, Integer pageSize);// 获取求助信息数量Long getCount(SeekCustom seekCustom);// 添加 求助信息int addSeek(Seek seek);// 修改求助信息(目前只用到,修改求助信息状态)int updateSeekState(Integer seekId);// 删除求助信息int delSeek(Integer id);// 分页查询的求助列表List<Seek> findByPage(Integer page,Integer pageSize);// 关键字搜索求助、分页List<Seek> search(String content,Integer page,Integer pageSize);
}

旅游打卡小程序-Dao层

/**
* 作用:旅游打卡小程序-旅游攻略攻略
* Author: IT跃迁谷毕设展
*/
public interface SeekMapper {
// 根据 id 查询Seek findById(Integer id);
// 根据用户查询求助列表List<Seek> findByUserId(Integer userId);
// 查询所有求助列表List<Seek> findAll();
// 条件查询求助列表List<Seek> findByParam(SeekCustom seekCustom);
// 获取求助信息数量Long getCount(SeekCustom seekCustom);
// 添加 求助信息int addSeek(Seek seek);
// 修改求助信息(目前只用到,修改求助信息状态)int updateSeekState(Integer seekId);
// 删除求助信息int delSeek(Integer id);//    // 分页查询的求助列表
//    List<Seek> findByPage();// 关键字搜索求助、分页List<Seek> search(String content);//  查询求助打卡时间超过 30 天的求助列表List<Seek> overtimeSeek();
// 根据 求助状态 查询List<Seek> findByState(Integer state);
// 删除求助信息(一般根据求助状态:为0的已删除状态)int delSeekByState(Integer state);
}

旅游打卡小程序-结语

💕💕
Java实战项目集
微信小程序实战项目集
Python实战项目集
安卓Android实战项目集
💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

预处理的补充知识

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;《初识C语言》 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录一、宏的补充知识1.1 宏定义充当注释…

MABSA(Multimodal Aspect-Based Sentiment Analysis)2022ACL 预训练

大致浏览&#xff0c;没有细看。 论文题目&#xff08;Title&#xff09;&#xff1a; Vision-Language Pre-Training for Multimodal Aspect-Based Sentiment Analysis 研究问题&#xff08;Question&#xff09;&#xff1a;多模态情感分析 MABSA (Multimodal Aspectased S…

黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day14-面向对象进阶02

1、权限修饰符和代码块 1.1 权限修饰符 权限修饰符&#xff1a;是用来控制一个成员能够被访问的范围的。 可以修饰&#xff1a;成员变量、方法、构造方法、内部类。 巧计举例&#xff1a; private--------私有的----------相当于私房钱&#xff0c;只能自己用 默认--------…

LVS+KeepAlived高可用负载均衡集群

内容预知 1. 高可用群集的相关知识 1. 1 高可用&#xff08;HA&#xff09;群集与普通群集的比较 普通群集 高可用群集(HA) 1.2 KeepAlive 高可用方案 1.3 KeepAlived的体系模块 1.4 Keepalived实现原理 2. 高可用群集的脑裂现象及预防措施 2.1 高可用集群的脑裂现象及其…

树莓派学习笔记

记录一下树莓派的使用,包含操作系统、linux命令、python、硬件等知识。参考《树莓派开发实战》树莓派简介及型号 树莓派(Raspberry Pi)是一款基于 Linux 系统的、只有一张信用卡大小的卡片式计算机,树莓派已经成为基于 Linux 的低成本电脑和嵌入式计算机平台这个领域中的重…

Material UI – React (2022) 版的完整教程

Material UI – React (2022) 版的完整教程 这是关于 Material UI 的最期待的课程。该课程涵盖了 Material UI 的所有组件 课程英文名&#xff1a;Material UI - The Complete Guide With React (2022) Editio 此视频教程共5.5小时&#xff0c;中英双语字幕&#xff0c;画质…

【贝塞尔曲线拟合】

贝塞尔曲线拟合问题描述拟合曲线生成过程参考程序注意事项问题描述 已知一条n阶贝塞尔曲线L(P0,P1,P2,P3,...,Pn)L(P0, P1, P2, P3, ..., Pn)L(P0,P1,P2,P3,...,Pn)&#xff08;P0P0P0为起点&#xff0c;P1P1P1为第一个控制点&#xff0c;P2P2P2为第二个控制点&#xff0c;P3P…

Mysql删除重复数据只保留一条

&#xff08;1&#xff09;以这张表为例&#xff1a; CREATE TABLE test (id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 注解id,name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 名字,PRIMARY KEY…

队列的顺序存储结构

说白了,就是一个数组 ,然后在两端进行操作 ,两端用首队指针和尾指针分别指向 ,然后进行相关的删除,插入操作, 目的还是模拟现实对数据的处理 ●描述队列 •数据元素data , 元素具有同一类型ElemType ,最多为MaxSize(数组容量) •当前队首front •当前队尾 rear 定义队列的数据…

RK3588安装部署openmediavault

RK3588安装部署openmediavault部署准备Debian 10 文件系统编译和获取安装 openmediavault安装基础依赖安装 openmediavault 原秘钥环添加 openmediavault 官方原安装 openmediavault 基础依赖安装 openmediavaultopenmediavault 相关资料&#xff1a; https://docs.openmediav…

YOLOX 学习笔记

笔记来源&#xff1a;https://www.bilibili.com/video/BV1jo4y1D7CF/?vd_source2ed6e8af02f9ba8cb90b90e99bd4ccee 近年来&#xff0c;目标检测的工程应用研究中&#xff0c;YOLO系列以快速响应、高精度、结构简单以及容易部署的特点备受工程研究人员的青睐。同时&#xff0c;…

3. HDFS分布式文件系统

3.1 HDFS简介 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切需要一种系统来管理多台机器上的文件&#xff0c;这就是分布式文件管理系统。HDFS只是分布…

CloudlaC是什么?

目录1. CloudIaC的简介2. 部署安装2.1 下载并解压安装包2.2 安装并启动Docker2.3 安装并启动Mysql2.4 安装并启动 Consul2.5 编辑配置文件2.6 初始化MySQL2.7 安装iaC服务2.8 启动 IaC 服务2.9 拉取 ct-worker 镜像2.10 下载前端部署包并解压2.11 安装nginx并配置2.12 访问web页…

【笔试刷题训练】day_04

选择题 C/C中各种进制的表示方法 二进制&#xff1a;在数字的末尾加b&#xff0c;如101010b 八进制&#xff1a;在数字前面加数字0&#xff0c;如0123 十进制&#xff1a;数字本身&#xff0c;如123 十六进制&#xff1a;数字前面加0x 或者 数字后面加h&#xff0c;如0x123、12…

字节跳动C++云原生二面(65min)

字节跳动C云原生二面&#xff08;65min&#xff09; 面试问题 HTTP1.0 、1.1和2.0 的区别和差异是什么 《HTTP1.0和1.1的区别》HTTP1.1 默认开启长连接&#xff08;keep-alive&#xff09; 而HTTP1.0需要添加参数&#xff0c;在一定程度上减少了建立和关闭连接的消耗和延迟HT…

AntDesign-Vue Table 查询与分页

前言 之前的增删改查小 Demo 已经快要进行到最后一步了,这节的任务是将请求数据的方式改为 分页,并且增加 分页条件查询 的功能。 页面布局 <a-table:data-source="dataSource":columns="columns":pagination="pagination" > <!-- ↑…

02 docker安装

这里写目录标题CenterOS安装使用远程镜像仓库安装设置yum远程仓库第二步&#xff1a;安装docker安装第三步&#xff1a;docker镜像加速器debian/Ubuntu安装docker官网&#xff1a;https://www.docker.com/ docker镜像库&#xff1a;https://hub.docker.com/ Docker CE&#xf…

truffle安装问题-无法加载文件

在powershell 下输入以下命令 set-executionpolicy remotesigned问题解决搜索 复制

【C语言】文件版本通讯录

文章目录文件版本通讯录一、test.c&#xff08;通讯录主干&#xff09;1.通讯录菜单的实现2.创建通讯录&#xff0c;初始化通讯录3.通讯录功能的调用二、contact.c(函数的实现)1.通讯录初始化2.查看联系人是否存在函数实现3.单个修改联系人各项的信息函数实现4.修改联系人信息目…

【PyTorch深度学习项目实战100例】—— 基于Transformer实现Twitter文本隐喻二分类 | 第43例

前言 大家好,我是阿光。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPy…