@startuml
participant 用户
用户 -> OrderAction : addOrderItemToOrder 添加商品到购物册接口 验证用户的身份认证信息以及要添加商品的信息
activate OrderAction
OrderAction -> ProductService : isProductAdequate 调用判断商品是否可用业务(判断原料数量是否可用)
activate ProductService
ProductService -> ProductServiceImpl : isProductAdequate 实现调用判断商品是否可用业务(判断原料数量是否可用)
activate ProductServiceImpl
ProductServiceImpl -> ProductServiceImpl : findProductById 查询商品详情信息以获取所需要的原料名称
activate ProductServiceImpl
ProductServiceImpl -> ProductDao : selectProductById 持久层操作
activate ProductDao
ProductDao --> ProductServiceImpl : 返回查询到的商品实体
deactivate ProductDao
ProductServiceImpl --> ProductServiceImpl : 调用私有处理信息方法
deactivate ProductServiceImpl
ProductServiceImpl -> MaterialDao : selectMaterial 获取的原料名称集合进行查询补充信息
activate MaterialDao
MaterialDao --> ProductServiceImpl : 返回具有完整信息的原料实体集合
deactivate MaterialDao
ProductServiceImpl --> ProductService : 返回原料是否足够支撑此次添加
deactivate ProductServiceImpl
ProductService --> OrderAction : 返回原料是否足够支撑此次添加
deactivate ProductService
OrderAction -> ObjectModel : new 创建服务响应包实体
activate ObjectModel
ObjectModel --> OrderAction  : 返回创建好的服务响应包实体
deactivate ObjectModel
OrderAction -> OrderItem : new 创建未绑定具体订单的订单项目实体
activate OrderItem
OrderItem --> OrderAction : 返回创建好的未绑定具体订单的订单项目实体
deactivate OrderItem
return 返回业务响应包响应服务是否成功
@enduml