旅游项目day08

1. 旅游日记(游记)

后端:实体类,列表,查看,审核

前端:目的地明细中-游记->带范围条件查询,游记首页,【扩展】游记添加/编辑,【扩展】添加游记时间没登录时给提示,【扩展】只有当前登录用户是游记作者时,才可以显式编辑按钮

1.1 游记表结构分析

找到游记相关的页面,寻找原型字段

分析关联字段

分析隐藏字段

游记表结构:

原型字段:(id,目的地,封面,标题,子标题,简介,作者,发布时间,浏览数,评论数,置顶数,分享数,收藏数,出行时间,出行天数,人物,人均费用,是否公开)

分析及隐藏字段:(状态,审核人,审核时间,创建时间,修改时间,删除标记)

作者记录方式:1. 记录作者id,可以实时查询作者信息;2. 记录作者基本信息(快照数据)
游记内容表结构:

(id,游记内容)

1.2 游记的crud

1.2.1 游记实体类:


1.2.2 游记内容实体类:
1.2.3 用户服务用户DTO

用户的DTO(Data Transfer Object)数据传输对象:微服务之间跨服务数据传输,必须要实现序列化接口

1.3 游记范围条件查询

1.3.1 游记范围条件查询:

前端只查传递一个参数值,后端需要拼接的sql中实现范围查询

  1. 人均花费:
    【1-999】、【1000-6000】、【6000-20000】、【20000,+∞】
  2. 出行天数:
    【1-3】、【4-7】、【8-14】、【15,+∞】

在Java中,如何同时存储两个值?

集合、数组、对象

1:【1-999】、2:【1000-6000】、3:【6000-20000】、4:【20000,+∞】

1:【1-3】、2:【4-7】、3:【8-14】、4:【15,+∞】

通过映射思想,实现前端传入一个值,映射到后端对应的一个范围参数

集合:Map是k-v键值对操作不方便,HashSet具有无序性故不合适,LinkedList和ArrayList还凑合

数组:通过索引操作 [min,max]

对象:封装min max两个属性,分别存储对应数据

随便用哪一种都可以,借鉴面向对象思想选择使用对象存储

java 复制代码
TravelRange{
	private Integer min;
	private Integer max;
}

前端参数与范围对象之间的映射=》使用map,例如map.put(1,new TravelRange(1,999));

1.3.2 实现细节

出行时间条件查询:

最新/最热条件查询:

查询实体类:

查询逻辑:按照范围条件查询游记时,需要展示用户名等用户信息,每查询出一条游记,就向用户服务发起远程调用,根据游记存储的用户id,查询用户信息,保存在需要向前端返回的数据中,这里可用多线程异步发起调用,提升效率。CountDownLatch。使用线程池异步向用户服务发送远程调用并返回用户信息

1.4 游记详情查询

详情页面:

1.5 游记列表区分游客与登录用户

如何判断用户是否登录?

基于请求中是否有token。

希望在任意地方可以拿到用户对象。

获取请求对象工具类:

其中,以下类是SpringMVC封装的快速获取请求对象的工具类,使用到了ThreadLocal。

可以在请求对象中获取到token:

实际用户信息是保存在redis中的,故需要根据当前token去redis获取用户对象:

游客只能看已发布且公开的游记:

登录用户:

1.6 攻略排行列表查询

相关推荐
橘子海全栈攻城狮6 天前
【源码+文档+调试讲解】党员之家服务系统小程序1
java·开发语言·spring boot·后端·小程序·旅游
电商数据girl7 天前
酒店旅游类数据采集API接口之携程数据获取地方美食品列表 获取地方美餐馆列表 景点评论
java·大数据·开发语言·python·json·旅游
万能程序员-传康Kk9 天前
旅游推荐数据分析可视化系统算法
算法·数据分析·旅游
凯禾瑞华健康管理实训室建设15 天前
康养休闲旅游行程服务实训室:打造沉浸式康养旅游人才培养新模式
旅游·虚拟仿真·健康管理人才培养
凯禾瑞华健康管理实训室建设15 天前
康养休闲旅游住宿服务实训室:构建产教融合新标杆
旅游·虚拟仿真·产教融合·健康管理人才培养·健康管理实训室
假客套16 天前
2025 后端自学UNIAPP【项目实战:旅游项目】1、创建项目框架
uni-app·旅游
源码云商17 天前
【旅游网站设计与实现】基于SpringBoot + Vue 的前后端分离项目 | 万字详细文档 + 源码 + 数据库 + PPT
vue.js·spring boot·旅游
CIb0la17 天前
同质化的旅游内核
程序人生·生活·旅游
VyrnSynx20 天前
从0到上线,CodeBuddy 如何帮我快速构建旅游 App?
腾讯云·ai编程·旅游·腾讯云ai代码助手
计算机毕设指导620 天前
基于Springboot旅游网站系统【附源码】
java·开发语言·spring boot·后端·mysql·spring·旅游