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

相关推荐
执笔画流年呀几秒前
⾃动化测试常⽤函数
java·dubbo
我星期八休息8 分钟前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump
疯狂打码的少年8 分钟前
【面向对象】UML概述(基本构造块:事物/关系/图)
java
小小代码狗30 分钟前
PHP 常用函数与变量参考文档
开发语言·安全·php
一水1 小时前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
编程阿峰1 小时前
Python 环境配置(二)安装jupyter、matplotlib、numpy库
开发语言·python·jupyter·numpy·matplotlib
AC赳赳老秦1 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
磁爆步兵1 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
此生决int1 小时前
深入理解C++系列(06)——模版初阶与STL
开发语言·c++
流星白龙2 小时前
【Docker】4.NameSpace空间隔离实战
java·运维·docker