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