全国职业院校技能大赛“区块链技术应用”赛项赛卷—“航班延误险案例”

本文描述了一个航班延误险的场景,乘客在购票后可购买保险,保险公司需预存赔偿金。系统使用Solidity编写智能合约,前端采用Vue3构建界面,后端基于SpringBoot和MySQL处理数据,同时涉及nginx部署和Druid监控。
摘要由CSDN通过智能技术生成

1.案例分析

1.1 需求描述

在航班延误险场景中,乘机人A在机票销售平台S中向航空公司V购买了一张机票后,在0.5小时内可以在S中上购买保险公司C的航班延误险,在S中预存10元保费。如果未预存保费,交易失败;如果在0.5小时内预存了10元保费,交易成功。C需要2小时内在S上预存相应的赔偿金1000元;默认C会预存1000元赔偿金,不考虑其他情况。如果C没有在2小时内预存赔偿金,S就直接将保费退还给用户;如果C预存了赔偿金,C为A在S中生成电子保单。默认V会在S中上传航班信息,不考虑其他情况,S会进行延误时间的判断,若航班没有延误或者延误时间少于4小时,无需理赔,S自动将A预存的保费转账给C,并退还C预存的赔偿金,保险交易结束。如果航班延误超过4小时,S也会将保费转账给C,但是会将C预存的赔偿金赔偿给A,理赔结束。本案例默认账户金额足够,不考虑其他情况。

1.2 用例分析

表1 购买机票用例表
用例名称购买机票
用例描述该用例是该成绩人向航空公司购买机票的情况下,为乘机人提供后续服务
前置条件在开始此用例之前,航班延误系统正常运行,此用例开始执行
后置条件如果该用例执行成功,进入购买保险流程
事件流描述 主事件流:1.乘机人成功购买机票; 2.如果未购买机票,本用例结束
异常事件流:未发生交易,用例结束

购买机票用例图

购买机票用例图

表2 购买保险用例表
用例名称购买保险
用例描述乘机人在系统中购买了保险
前置条件在开始此用例之前,乘机人已经购买了机票,此用例开始执行
后置条件如果成功执行,则进入预存赔偿金用例流程
事件流描述 主事件流:1.乘机人在0.5小时内在平台购买了航班延误险; 2.如果乘机人未在0.5小时内购买航班延误险,则进入异常事件流; 3.乘机人在平台中预存10元保费,用例结束。
异常事件流:1.未发生交易,用例结束; 2.交易失败,用例结束

购买机票用例图
在这里插入图片描述

2.使用Solidity语言进行智能合约开发

见代码文件

3.使用vue3开发可视化界面

环境版本准备

nodejsv15.14.0
npm7.7.6
vuejs@vue/cli 5.0.8

3.1 使用vite快速创建vue项目

npm init vite

Need to install the following packages:
  create-vite
Ok to proceed? (y) y
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'create-vite@4.4.1',
npm WARN EBADENGINE   required: { node: '^14.18.0 || >=16.0.0' },
npm WARN EBADENGINE   current: { node: 'v15.14.0', npm: '7.7.6' }
npm WARN EBADENGINE }
√ Project name: ... avition-project
√ Select a framework: » Vue
√ Select a variant: » JavaScript

Scaffolding project in E:\school\区块链\code\vue\avition-project...

Done. Now run:
 cd avition-project
 npm install
 npm run dev

3.2 创建vue项目方式二

在命令窗口输入指令
  vue create 项目名称  

3.3 打包部署vue项目

在项目中执行命令进行打包

npm run build

3.3.1 在Ubuntu中安装nginx服务

 apt install nginx   #安装
 nginx -v  #查看安装版本
service nginx start  #启动nginx

3.3.2 nginx文件安装完成之后的文件位置

在这里插入图片描述

3.3.3 打包vue项目

npm run build:prod
#将生成的dist文件夹压缩上传到nginx web服务器中/usr/share/nginx/html中
unzip dist.zip #解压

3.3.4 更改nginx配置文件

在这里插入图片描述

3.3.5 重启nginx

nginx -s reload

3.2 在服务器中安装mysql

4.使用Java开发后端

在idea中创建springboot项目,并在pom.xml中引入以下依赖

 <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.3.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- JDBC连接池、监控组件 Druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!-- JDBC连接池、监控组件 Druid -->

        <!-- 添加 log4j 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.43</version>
        </dependency>

        <dependency>
            <groupId>org.web3j</groupId>
            <artifactId>core</artifactId>
            <version>4.3.0</version>
        </dependency>
    </dependencies>

后端代码见群文件
后端开发完成后打包部署到服务器
在这里插入图片描述
先clean再package或直接install
然后把jar包上传到服务器

nohup java -jar educhainx_flight_dapp-0.0.1-SNAPSHOT.jar  > ./log.file 2>&1 &

nohup可以使项目持续运行

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值