当前位置: 首页 > news >正文

业务逐字稿

1.WEB端旅游线路发布模块

旅游公司在Web端点击新增旅游线路按钮,浏览器请求发送到Nginx,Nginx反向代理到网关,网关去找微服务,微服务实现具体的旅游线路发布功能

旅游公司工作人员在Web端点击新增旅游线路按钮,浏览器向Nginx发送请求。

Nginx接收到浏览器发来的请求后,根据配置文件进行反向代理,将请求转发给API网关。

API网关接收到请求后,根据Nacos中的服务注册中心找到实现旅游线路发布功能的行程微服务,并把请求转发给该微服务。

行程微服务接收到请求后,把前端录入的旅游线路信息(包括线路名称、价格、景点、行程、出发时间等字段)保存到MySQL数据库中。

行程微服务处理完请求后,把响应结果返回给网关。

最后,网关把处理后的响应结果返回给Nginx,Nginx再把结果返回给Web端,Web最终展示给用户。

2.APP端旅游线路查询模块

用户在APP端点击搜索框,输入查询内容,点击搜索的时候,请求发送到nginx,nginx反向代理到网关,网关找行程微服务,行程微服务使用了ES实现关键字搜索功能,之后把响应结果返回到前端展示。

游客在APP端点击搜索框并输入查询内容,然后点击搜索。

APP会把搜索请求发送到Nginx服务器,Nginx服务器会根据配置的反向代理规则把请求转发给网关。

网关接收到请求后会根据请求中的URL路径和HTTP方法,把请求转发给行程微服务。

行程微服务接收到请求后,会使用ElasticSearch进行关键字搜索,并获取匹配的结果。

行程微服务会把搜索结果返回给网关。

网关把响应结果返回给Nginx服务器。

Nginx服务器将响应结果返回给游客APP端。

APP端展示搜索结果。

3.APP端出游私人定制模块

私人订制模块分为个人定制和团队定制两种方案。
用户在APP端点击私人订制按钮,然后填写需求,录入出发地、目的地、出发时间、返程时间、人员信息、人均预算信息。
然后点击提交需求按钮。
运营管理端人员在Web端进行审核行程通过之后,就可以进行签约付款。
签约付款结束之后,游客就可以按照预定的时间出游。

用户点击私人定制按钮,填写需求,包括出发地、目的地、出发时间、返程时间、人员信息和人均预算信息。

用户点击提交需求按钮,将用户填写的需求信息发送到后端服务器。

运营管理人员在Web端登录系统,查看待审核的需求列表,运营管理人员查看需求详细信息并对需求进行审核,判断是否符合要求,如果需求通过审核,进入签约付款阶段。

最后用户在APP端完成付款,支付预定费用,按照预定的时间出游。

4.APP端客服模块

用户点击APP端的客服的联系客服按钮,前端会向后端发送一个请求,打开聊天窗口并连接聊天服务器,请求用WebSocket实现,保证即时通信。请求中包含用户个人信息(姓名、联系方式等),信息经过加密后发送到后端。

后端收到前端发来的请求后,先验证用户身份和权限。

若用户是已注册用户,就从数据库中获取用户信息,验证用户身份。
若用户是未注册用户,需要通过手机验证码等方式来验证。

验证通过后,后端调用聊天服务器的API建立连接并打开聊天窗口。

聊天过程中,后端会监听聊天服务器的信息,把消息记录保存到MongoDB数据库中。

用户关闭聊天窗口时,后端会中断与聊天服务器的连接,并返回确认消息给前端。后端会把聊天记录从MongoDB中都取出来并发送给前端,前端可以展示聊天记录。

5.APP端搜索历史功能

6.APP端用户下单支付功能

7.APP端签约合同和保险功能

用户在APP端下单时,选择保险方案并填写相关信息,点击提交订单按钮。后端接收到订单请求后,先对用户提交的数据进行校验和处理,检查保险方案的有效性。

合同的保存方面,我们首先准备了一个合同模板文件,使用FreeMarker语法标记需要用户动态填充的部分,比如参保人姓名、保险金额、有效期等。

从第三方保险公司获取要填充到合同的相关信息,把获取到的保险信息和合同模板整合,生成最终的合同内容。

然后用Java的iText库生成PDF文件。

之后连接MinIO服务器,创建存储桶(Bucket),把生成的PDF文件上传到存储桶中。

最后后端把升成的PDF文件的URL给前端,前端提供下载链接供用户下载。

http://www.lryc.cn/news/290389.html

相关文章:

  • 微服务舞台上的“三步曲“:Spring Cloud 服务注册、服务发现与服务调用
  • 中间件
  • 4D毫米波雷达——ADCNet 原始雷达数据 目标检测与可行驶区域分割
  • 「优选算法刷题」:提莫攻击
  • 260:vue+openlayers 通过webgl方式加载矢量图层
  • Android 8.1 相关修改
  • EG-2121CA (晶体振荡器 低抖动表面声波(SAW)振荡器)
  • Django知识随笔
  • Facebook 广告帐户:多账号运营如何防止封号?
  • 酷开会员 | 用酷开系统点亮多彩休闲时刻
  • 分配土地(100%用例)C卷(JavaPythonC++Node.jsC语言)
  • 电源的纹波
  • 85.网游逆向分析与插件开发-物品使用-物品使用的逆向分析与C++代码的封装
  • JVM系列——垃圾收集器
  • 那些年与指针的情仇(二)---二级指针指针与数组的那点事函数指针
  • APPCRASH 文件管理器不停重启问题记录 (最后reinstall解决)以及重装后到底会怎样
  • 导出excel功能,前端的解决方案
  • 【lesson24】MySQL索引的理解
  • Oracle篇—分区索引的重建和管理(第三篇,总共五篇)
  • 前端大厂面试题探索编辑部——第一期
  • 图扑 HT UI 5.0 全新升级,开箱即用!
  • 数据结构----链表介绍、模拟实现链表、链表的使用
  • 微信小程序如何控制元素的显示和隐藏
  • 解决ssh: connect to host github.com port 22: Connection timed out
  • idea 创建 spring boot
  • 【智能家居入门之微信小程序控制下位机】(STM32、ONENET云平台、微信小程序、HTTP协议)
  • 07.领域驱动设计:了解3种常见微服务架构模型的对比和分析
  • 设计模式——模板方法模式(Template Method Pattern)
  • 07. STP的基本配置
  • oracle分区范围修改与数据迁移处理