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 绑定到当前订单

相关推荐
软件开发技术深度爱好者5 分钟前
用python制作相册浏览小工具
开发语言·python
2501_9151063211 分钟前
JavaScript编程工具有哪些?老前端的实用工具清单与经验分享
开发语言·前端·javascript·ios·小程序·uni-app·iphone
Code blocks30 分钟前
SpringBoot自定义请求前缀
java·spring boot·后端
洲覆31 分钟前
C++ 模板、泛型与 auto 关键字
开发语言·数据结构·c++
蜀中廖化37 分钟前
python VSCode中报错 E501:line too long (81 > 79 characters)
开发语言·vscode·python
消失的旧时光-19431 小时前
Android回退按钮处理方法总结
android·开发语言·kotlin
Jabes.yang1 小时前
Java求职面试:从Spring Boot到Kafka的技术探讨
java·spring boot·面试·kafka·互联网大厂
千里马-horse1 小时前
Async++ 源码分析7--parallel_reduce.h
开发语言·c++·async++·parallel_reduce
量化交易曾小健(金融号)1 小时前
Python美股量化交易填坑记录——3.盈透(Interactive Brokers)证券API接口
开发语言·python
canonical_entropy2 小时前
DDD本质论:从哲学到数学,再到工程实践的完整指南之实践篇
java·后端·领域驱动设计