14.订单支付

老大夫 发布于 2024-08-31 14:31
代驾:订单支付 一、账单信息 上一节中我们结束的代驾,更新了账单信息与分账信息,接下来司机端小程序会跳转到账单确认页,展示账单信息,然后发送账单给乘客端,乘客端拿到账单信息后进行支付账单。 1、获取账单信息 order_bill表记录的账单信息,我们直接获取即可 1.1、订单微服务接口 1.1.1、OrderInfoController @Operatio...

Lambda表达式()->{}的作用

老大夫 发布于 2024-08-31 14:10
就是一个匿名的执行方法,或者叫代码块 “()” 这个部分就像是一个入口,你可以在里面放一些参数,如果不需要参数就是空括号。比如说,如果要处理一个数字,可能括号里就写一个 “int num” 这样的参数表示接收一个数字进来。 “->” 这个就像是一个连接符号,连接前面的入口和后面的处理逻辑。 “{}” 里面就是具体要做的事情。如果是没有参数的情况,比如执...

JUC中的CompletableFuture异步编排

老大夫 发布于 2024-08-31 13:03
二、CompletableFuture异步编排 1、CompletableFuture异步编排 1.1、CompletableFuture介绍 问题:司机结束代驾服务页面非常复杂,数据的获取都需要远程调用,必然需要花费更多的时间。 假如司机结束代驾服务的每个查询,需要如下标注的时间才能完成 获取订单信息 1s 计算防止刷单 0.5s 计算订单实际里...

idea连接MySQL数据步骤

老大夫 发布于 2024-08-31 12:42
https://blog.csdn.net/qq_45344586/article/details/131493510

13.我的订单与异步编排

老大夫 发布于 2024-08-31 11:29
代驾:我的订单与异步编排 一、我的订单 乘客端与司机端都有我的订单,在执行中的订单,都会跳转到执行中的页面,代驾结束后,进入订单详情页。 1、乘客端我的订单 1.1、订单微服务接口 1.1.1、OrderInfoController @Operation(summary = "获取乘客订单分页列表") @GetMapping("/findCustomerO...

12.RabbitMQ

老大夫 发布于 2024-08-31 11:27
代驾:RabbitMQ 一、RabbitMQ 学习目标: 能够说出Rabbitmq应用场景 能够说出Rabbitmq消息不丢失解决方案 掌握Rabbitmq实现普通消息的收发 掌握Rabbitmq实现延迟消息 基于Rabbitmq消息队列实现商品数据同步 基于Rabbitmq消息队列实现订单延迟关闭 1、目前存在的问题 订单服务取消订单问题 乘客下单后,...

long和Long的区别

老大夫 发布于 2024-08-31 08:38
单独拿出来看很明显 在代码中L的大小写直接决定了是包装类还是基本类型 基本类型是不允许有null值的,所以报错的原因就是大写L写成了小l

Consider defining a bean of type 'org.springframework.data.mongodb.core.MongoTemplate' in your configuration.报错原因

老大夫 发布于 2024-08-31 03:23
居然是pom文件依赖问题,明明已经引入了,重写一下就不报错了 换成 <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...

11.订单执行3

老大夫 发布于 2024-08-30 23:54
代驾:订单执行 一、结束代驾 司机到达代驾终点,就可以结束代驾了,结束代驾我们要输入其他费用(路桥费、停车费与其他费用)、计算订单实际里程、计算代驾实际费用、系统奖励、分账信息与生成账单。 1、计算订单实际里程 订单实际里程其实就是把MongoDB中该订单的GPS定位坐标都给取出来,以时间排序,连接成连线,这个线的距离就是时间里程。 1.1、地图微服务接口...

10.订单执行2、MongoDB入门

老大夫 发布于 2024-08-29 19:48
代驾:订单执行 一、MongoDB入门 1、MongoDB 1.1、MongoDB 概念 1.1.1、什么是MongoDB MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款分布式文档数据库,由C++语言编写。 目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。 在Mong...

9.订单执行1

老大夫 发布于 2024-08-28 12:30
代驾:订单执行 一、加载当前订单 无论司机端还是乘客端的小程序,如果遇到微信闪退、页面切换、重新登录小程序之后,只要页面回到首页,都必须加载当前的订单,然后跳转到当前订单的执行状态页面。 前面我们写了模拟接口,当前我们来把这部分接口实现了。 司机端效果如图(乘客端类似): 1、乘客端查找当前订单 1.1、订单微服务接口 1.1.1、OrderInfoCon...

8.分布式事务

老大夫 发布于 2024-08-28 12:27
代驾:分布式事务 一、分布式事务Seata 1、事务回顾 1.1、什么是事务 提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。 1.2、事务的作用 保证数据一致性 1.3、事务ACID四大特性 A:原子性(Atomicity) 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事...

Redis分布式锁的实现方式

老大夫 发布于 2024-08-27 20:35
1. Redis原生方法 Redis的setnx在代码中是RedisTemplate.setIfAbsent(并不是.setnx) 注意为了防止在过程中异常导致无法释放锁,需要设置过期时间来解决,但是仍然存在问题,如果业务7秒处理,锁三秒释放,会出现释放不属于自己的锁的情况(锁是一个共用的,别人用着呢就被释放了) 使用UUID给锁加上唯一标识来解决误...

测试工具jmeter

老大夫 发布于 2024-08-27 18:03
多线程访问测试工具 配置好java环境后,双击bin目录下的jmeter.bat 下载地址:https://www.ilanzou.com/s/OEYyMvSu?code=ssdp

乐观锁

老大夫 发布于 2024-08-27 16:12
乐观锁就是在数据库记录后面加上 version版本号进行识别 当两个进程同时修改同一条记录时 两个进程同时读取到数据,此时version版本号为0 进程一率先完成修改并且提交修改,同时修改版本号为1 进程二落后一些,在提交的时候读取版本号version发现是1而不是刚才读取到的0,此时不能提交 乐观锁避免了并发“超卖”的问题