Java阶段五Day19
问题解析
需求单查询列表功能的bug
业务逻辑:
需要用户登录,师傅入驻,审核入驻通过
查询师傅详情(areaIds,categoryIds)
demand-server-dao-impl 包含持久层实现
requestOrderMapper.xml
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvAfBF0t-1691152723359)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day19/assets/image-20230802111818777.png)]](https://img-blog.csdnimg.cn/d8e88b05f67e4f18bd1472e6d20091a1.png)
需求单
需求单抢单
为了防止 多个师傅同时争抢一个订单,demand服务需求单抢单操作使用的乐观锁 CAS(compare and swap)逻辑
乐观锁: 在做数据操作时,采取乐观的态度,总是人为没有别的而线程 / 没有别的操作和我同时进行,但是一旦有,操作的数据中可以使用cas 先比较在交换的逻辑防止线程安全,数据冲突
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZhcVrtLi-1691152723360)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day19/assets/image-20230802091347114.png)]](https://img-blog.csdnimg.cn/532907f1cc364a4b8ab3bd6fc7ba87c2.png)
update request_order set grab_status=1,version=1 where request_order_id=21 and version=0
上述sql语句满足乐观锁的一个实现逻辑原理CAS 比较并交换
- 比较: 条件中判断version=0
- 交换: 抢单状态和版本同时+1
订单
生单功能
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdNtToXH-1691152723361)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day19/assets/image-20230802102155392.png)]](https://img-blog.csdnimg.cn/e8c90a7b73da4bcb869f1d1772ba233e.png)
订单列表
https://sparrowzoo.feishu.cn/docx/My4mdlLuMovmQixHko4c6qXbnYc
订单列表订单详情
业务流程
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XQxbNgHC-1691152723362)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day19/assets/image-20230802141813055.png)]](https://img-blog.csdnimg.cn/2580bfd763a14eac97538b6ca74a3402.png)
订单状态更新(略)
- 状态值
status orderLog写入- 保证事务
图片上传绑定
把attach中上传的图片id 绑定到当前订单


















