网页设计html代码成品图片,沧州网站推广优化,手机logo制作软件,html结构代码1. 旅游日记#xff08;游记#xff09;
后端#xff1a;实体类#xff0c;列表#xff0c;查看#xff0c;审核 前端#xff1a;目的地明细中-游记-带范围条件查询#xff0c;游记首页#xff0c;【扩展】游记添加/编辑#xff0c;【扩展】添加游记时间没登录时…1. 旅游日记游记
后端实体类列表查看审核 前端目的地明细中-游记-带范围条件查询游记首页【扩展】游记添加/编辑【扩展】添加游记时间没登录时给提示【扩展】只有当前登录用户是游记作者时才可以显式编辑按钮 1.1 游记表结构分析
找到游记相关的页面寻找原型字段 分析关联字段 分析隐藏字段
游记表结构 原型字段id目的地封面标题子标题简介作者发布时间浏览数评论数置顶数分享数收藏数出行时间出行天数人物人均费用是否公开 分析及隐藏字段状态审核人审核时间创建时间修改时间删除标记 作者记录方式1. 记录作者id可以实时查询作者信息2. 记录作者基本信息快照数据 游记内容表结构 id游记内容
1.2 游记的crud
1.2.1 游记实体类 1.2.2 游记内容实体类 1.2.3 用户服务用户DTO
用户的DTOData Transfer Object数据传输对象微服务之间跨服务数据传输必须要实现序列化接口
1.3 游记范围条件查询 1.3.1 游记范围条件查询
前端只查传递一个参数值后端需要拼接的sql中实现范围查询
人均花费 【1-999】、【1000-6000】、【6000-20000】、【20000∞】出行天数 【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两个属性分别存储对应数据
随便用哪一种都可以借鉴面向对象思想选择使用对象存储。
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 攻略排行列表查询