智能房屋海选平台思维导图
2025-05-18 16:54:19 0 举报
AI智能生成
对项目进行总结
作者其他创作
大纲/内容
app端
首页
大广告
1.从数据库中查询到存放在lg_banner表中的数据
2.获取其中的url(minio生成的地址)并拼接minio服务器地址(通过nacos配置,注解@Value获取)
3.nacos配置rediskey,注解@value获取,然后将数据存入redis,第一次查数据库,存redis,短期查从redis中获取,缓存
要设置过期时间
- 接口URI : /banner
- 请求方式: GET
- 没有参数
- 返回LivegoodsResult
- data中存放所有Banner图片的访问地址
1.从数据库中查询到存放在lg_banner表中的数据
2.获取其中的url(minio生成的地址)并拼接minio服务器地址(通过nacos配置,注解@Value获取)
3.nacos配置rediskey,注解@value获取,然后将数据存入redis,第一次查数据库,存redis,短期查从redis中获取,缓存
要设置过期时间
热门推荐
1. URL:/recommendation
2. 请求方式: GET
3. 请求参数:city 城市
4. 从数据库lg_product表查询
5. 按需查询出hot为1(代码中为true),按照hot_sort排序的前四条数据
6. 查询结果需要拼接Nginx服务器地址
7. 首页内容添加Redis缓存
2. 请求方式: GET
3. 请求参数:city 城市
4. 从数据库lg_product表查询
5. 按需查询出hot为1(代码中为true),按照hot_sort排序的前四条数据
6. 查询结果需要拼接Nginx服务器地址
7. 首页内容添加Redis缓存
热销商品
1.查询lg_product表中的所有数据
2.获取其中的url(minio生成的地址)并拼接minio服务器地址(通过nacos配置,注解@Value获取)
3.将数据封装进LivegoodsResult返回前端
2.获取其中的url(minio生成的地址)并拼接minio服务器地址(通过nacos配置,注解@Value获取)
3.将数据封装进LivegoodsResult返回前端
城市切换
前端传参数将city也作为参数传递,查询时城市也为查询条件之一
搜索
全文检索
使用Elasticsearch 实现全文检索
搜索列表
先观察搜索接口的接口文档。可以得出结论
最终通过网关(4006)访问真实服务
URL:/search
请求方式:GET
参数:
city: 城市,搜索这个城市的房屋
content:搜索内容。这个内容可能是标题(title)、房屋类型(houseType)、租赁类型
(rentType)page:页码。一定要注意,这个页码是从0开始的页面
返回值:LivegoodsResult。data里面包含HasMoreResult
hasMore 是否还有下一页
contents 当前页数据
1.用代码实现从Elasticsearch获取对应的数据
2.取出结果对其进行高亮显示,以及排序封装,
最终通过网关(4006)访问真实服务
URL:/search
请求方式:GET
参数:
city: 城市,搜索这个城市的房屋
content:搜索内容。这个内容可能是标题(title)、房屋类型(houseType)、租赁类型
(rentType)page:页码。一定要注意,这个页码是从0开始的页面
返回值:LivegoodsResult。data里面包含HasMoreResult
hasMore 是否还有下一页
contents 当前页数据
1.用代码实现从Elasticsearch获取对应的数据
2.取出结果对其进行高亮显示,以及排序封装,
房屋详情
房屋详情查询
后端请求入口Gateway
请求方式GET
参数id
房屋主键返回值LivegoodsResult
data中包含imgs是数组类型、info是对象类型
1. 需要把数据库中imgs转换为List或数组,拼接ngix地址
2. info转换为对象
3. 不能把数据库实体对象直接返回给客户端而是要有自己的视图实体
4. 添加到Redis缓存,提升查询效率
请求方式GET
参数id
房屋主键返回值LivegoodsResult
data中包含imgs是数组类型、info是对象类型
1. 需要把数据库中imgs转换为List或数组,拼接ngix地址
2. info转换为对象
3. 不能把数据库实体对象直接返回给客户端而是要有自己的视图实体
4. 添加到Redis缓存,提升查询效率
房屋评论查询
1.查询lg_feedback表取出数据,
2.对数据中的用户信息手机号进行脱敏
3.封装返回数据
2.对数据中的用户信息手机号进行脱敏
3.封装返回数据
预定
秒杀系统
预定的倒计时
通过查询需要预定商品的预定时间返回前端
预定
1.秒杀时发送利用 MQ 的同步消息,预定就生成一个同步消息返回结果为houseId(同步消息:超时后会自动向下执行,不会一直阻塞。 返回null。)此处用于控制并发,避免过多请求一起涌入下面的业务实现中,导致衣服崩溃
2.服务主体监听对应队列的消息,一旦拿到houseId,就开始执行核心业务逻辑:
2.1查询缓存中的buy字段是否为0,不为0,则已购买,返回false
2.2缓存中为0后,可能与数据库数据不一致,查询数据库中数据是否为0,若不为0,则更新缓存,先删除缓存,后更新,返回flase。
2.3到这里说明确实为0,更新数据库,更新成功后更新缓存,返回true,预定成功,否则返回false
2.4 返回true则代表发送消息处将收到true的返回结果,即代表知道预定成功,可以执行预定成功后:
1. 创建订单:将对应的houseId和phone给到订单对应的消异步息队列,等待订单服务自己消费
2. 发送短信
3. 发送邮件
4. 等多个事情。
可以使用一个扇形交换器,发送异步消息。来完成上面的事情。不同事情,绑定不同的队列。这些队列都绑定到一个交换器上。
2.服务主体监听对应队列的消息,一旦拿到houseId,就开始执行核心业务逻辑:
2.1查询缓存中的buy字段是否为0,不为0,则已购买,返回false
2.2缓存中为0后,可能与数据库数据不一致,查询数据库中数据是否为0,若不为0,则更新缓存,先删除缓存,后更新,返回flase。
2.3到这里说明确实为0,更新数据库,更新成功后更新缓存,返回true,预定成功,否则返回false
2.4 返回true则代表发送消息处将收到true的返回结果,即代表知道预定成功,可以执行预定成功后:
1. 创建订单:将对应的houseId和phone给到订单对应的消异步息队列,等待订单服务自己消费
2. 发送短信
3. 发送邮件
4. 等多个事情。
可以使用一个扇形交换器,发送异步消息。来完成上面的事情。不同事情,绑定不同的队列。这些队列都绑定到一个交换器上。
登录
手机号登录
用户请求头中jwt令牌(jwt中携带了对应的用户信息)请求对应需要验证的服务:
1.没有携带jwt令牌或jwt令牌过期,跳转登录页面
2.jwt令牌有效,放行允许访问服务。
验证码信息是存储在Redis中的,有效时间为2分钟。在redis中
key-> yzm:手机号
value-> 四位验证码数字
验证码获取:
1.开通服务
2.申请获取密钥
3.具体实现代码,上述直接粘过来,修改密钥,内容即可。
配置:
从配置文件中读取对应信息
对短信结果进行一个处理
短信,临时数据,保存在redis中
当用户jwt令牌过期,无效或者第一次登录时:
1.当用户获取手机验证码时,系统生成一个验证码并向对应的手机获取的验证码存储在redis中并设置过期时间,前端控制用户避免重发,并调用阿里云短信服务,向用法发验证码短信
2.当用户输入验证码提交时,与后端验证码比对,若成功则生成jwt密令(调用对应的工具类),返回前端,并保存一份进入redis中。
3.使用aop进行登录日志的记录。存入lg_login_log表中(在对应方法上加入@AfterReturning(“对应的配置”),即可实现在登陆成功后添加日志的aop)
key-> yzm:手机号
value-> 四位验证码数字
验证码获取:
1.开通服务
2.申请获取密钥
3.具体实现代码,上述直接粘过来,修改密钥,内容即可。
配置:
从配置文件中读取对应信息
对短信结果进行一个处理
短信,临时数据,保存在redis中
当用户jwt令牌过期,无效或者第一次登录时:
1.当用户获取手机验证码时,系统生成一个验证码并向对应的手机获取的验证码存储在redis中并设置过期时间,前端控制用户避免重发,并调用阿里云短信服务,向用法发验证码短信
2.当用户输入验证码提交时,与后端验证码比对,若成功则生成jwt密令(调用对应的工具类),返回前端,并保存一份进入redis中。
3.使用aop进行登录日志的记录。存入lg_login_log表中(在对应方法上加入@AfterReturning(“对应的配置”),即可实现在登陆成功后添加日志的aop)
用户请求头中jwt令牌(jwt中携带了对应的用户信息)请求对应需要验证的服务:
1.没有携带jwt令牌或jwt令牌过期,跳转登录页面
2.jwt令牌有效,放行允许访问服务。
订单
评论
1.构建初始评论对象
2.根据订单ID查询订单信息
3.取出订单信息中的电话号码和房屋id封装进入评论对象
4.将评论信息添加进数据库评论表
5.根据订单id更改数据库中订单评论状态
2.根据订单ID查询订单信息
3.取出订单信息中的电话号码和房屋id封装进入评论对象
4.将评论信息添加进数据库评论表
5.根据订单id更改数据库中订单评论状态
订单列表
根据user_phone查询该用户所有的订单信息
1.直接对数据库中数据进行查询
2.组装转换其中的图片资源后返回
1.直接对数据库中数据进行查询
2.组装转换其中的图片资源后返回
订单新增
传入订单对象,调用对应新增方法,新增数据
根据订单id查询订单
前端传回订单对应id直接数据库进行查询返回对应订单信息订单
修改订单评论状态
更据订单id直接修改对应订单评论的状态
抽奖秒杀
红包抽奖
见语雀笔记
智能客服
房屋智能客服
见语雀笔记

收藏
0 条评论
下一页