Java阶段五Day19
问题解析
需求单查询列表功能的bug
业务逻辑:
需要用户登录,师傅入驻,审核入驻通过
查询师傅详情(areaIds
,categoryIds
)
demand-server-dao-impl
包含持久层实现
requestOrderMapper.xml
需求单
需求单抢单
为了防止 多个师傅同时争抢一个订单,demand
服务需求单抢单操作使用的乐观锁 CAS(compare and swap)
逻辑
乐观锁: 在做数据操作时,采取乐观的态度,总是人为没有别的而线程 / 没有别的操作和我同时进行,但是一旦有,操作的数据中可以使用cas
先比较在交换的逻辑防止线程安全,数据冲突
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 绑定到当前订单