Java阶段五Day19

Java阶段五Day19

问题解析

需求单查询列表功能的bug

业务逻辑:

需要用户登录,师傅入驻,审核入驻通过

查询师傅详情(areaIdscategoryIds

demand-server-dao-impl 包含持久层实现

requestOrderMapper.xml

需求单

需求单抢单

为了防止 多个师傅同时争抢一个订单,demand服务需求单抢单操作使用的乐观锁 CAS(compare and swap)逻辑

乐观锁: 在做数据操作时,采取乐观的态度,总是人为没有别的而线程 / 没有别的操作和我同时进行,但是一旦有,操作的数据中可以使用cas 先比较在交换的逻辑防止线程安全,数据冲突

sql 复制代码
update request_order set grab_status=1,version=1 where request_order_id=21 and version=0

上述sql语句满足乐观锁的一个实现逻辑原理CAS 比较并交换

  • 比较: 条件中判断version=0
  • 交换: 抢单状态和版本同时+1

订单

生单功能

订单列表

https://sparrowzoo.feishu.cn/docx/My4mdlLuMovmQixHko4c6qXbnYc

订单列表订单详情

业务流程

订单状态更新(略)

  • 状态值status
  • orderLog写入
  • 保证事务

图片上传绑定

attach中上传的图片id 绑定到当前订单

相关推荐
栈溢出了7 分钟前
Redis repl_backlog 学习笔记
java·开发语言·redis·学习
urkay-16 分钟前
Kotlin Flow分类
android·开发语言·kotlin
并不喜欢吃鱼22 分钟前
从零开始 C++----- 十五.一文吃透 C++ 异常:try-catch、栈展开、自定义异常、异常安全 noexcept 底层全剖析
java·开发语言·jvm
gr95ZS6E634 分钟前
基础入门java安全(一)--CC1基础分析
开发语言·python
智码看视界41 分钟前
Day19 Spring Boot启动优化:启动时间从8秒降到2秒
java·spring boot·后端·启动优化
北京阿法龙科技有限公司1 小时前
AR智能眼镜安防应用核心指标:识别距离筑牢防线
java·开发语言·ar
杜子不疼.1 小时前
【C++】继承—C++的秘密武器,get父类的智慧
开发语言·c++
殘殤血1 小时前
Tomcat的事件监听机制:观察者模式 _
java·观察者模式·tomcat
汤姆yu1 小时前
面向具身智能的物理视频模拟器:蚂蚁灵波LingBot-Video开源模型全解析
java·大数据·人工智能·gpt·开源·大模型·音视频
SQL-First布道者1 小时前
Spring JDBC Ultra 十边型战士
java·spring boot·后端·mysql·spring·mybatis