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

相关推荐
白露与泡影23 分钟前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法
Littlehero_1211 小时前
QT自定义控件之热换站系统(源码开源)
开发语言·qt
meilindehuzi_a1 小时前
Python 基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
caimouse1 小时前
ReactOS 窗口系统分析(5):可见区域与窗口 DC — vis.c + windc.c
c语言·开发语言
OPEN-F1 小时前
Python进阶教程:装饰器与生成器深入
开发语言·python
Zane19941 小时前
HashMap 为什么要在长度16、容量必须是2的幂这些细节上较劲
java·后端
长谷深风1112 小时前
为什么你的 Tool 总被模型选错?
java·大数据·ai·llm·ai agent·工具设计·agent设计
千里码aicood3 小时前
基于Python的电商数据采集系统(大数据+爬虫)
开发语言·python
莫得感情 o3 小时前
并发 14 · 收官:虚拟线程与结构化并发
java·并发
聚美智数3 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库