From 41b9993f36af902815f3c863f44f8cf8d1940052 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Thu, 3 Apr 2025 10:52:03 +0800 Subject: [PATCH] feat : deliver --- .../Consumer/Statement/DriverConsumer.php | 25 ----- .../Statement/RefundFinishConsumer.php | 40 -------- app/Amqp/Consumer/Statement/SiteConsumer.php | 25 ----- .../Consumer/Statement/SiteDriverConsumer.php | 52 ++++++++++ .../Producer/Statement/DriverProducer.php | 24 ----- ...ishProducer.php => SiteDriverProducer.php} | 7 +- app/Amqp/Producer/Statement/SiteProducer.php | 24 ----- app/Model/SiteDriverStatement.php | 40 ++++++++ .../Statement/DeliverStatementService.php | 95 +++++++++++++++++++ 9 files changed, 190 insertions(+), 142 deletions(-) delete mode 100644 app/Amqp/Consumer/Statement/DriverConsumer.php delete mode 100644 app/Amqp/Consumer/Statement/RefundFinishConsumer.php delete mode 100644 app/Amqp/Consumer/Statement/SiteConsumer.php create mode 100644 app/Amqp/Consumer/Statement/SiteDriverConsumer.php delete mode 100644 app/Amqp/Producer/Statement/DriverProducer.php rename app/Amqp/Producer/Statement/{RefundFinishProducer.php => SiteDriverProducer.php} (64%) delete mode 100644 app/Amqp/Producer/Statement/SiteProducer.php create mode 100644 app/Model/SiteDriverStatement.php create mode 100644 app/Service/Amqp/Statement/DeliverStatementService.php diff --git a/app/Amqp/Consumer/Statement/DriverConsumer.php b/app/Amqp/Consumer/Statement/DriverConsumer.php deleted file mode 100644 index 0d85dc4..0000000 --- a/app/Amqp/Consumer/Statement/DriverConsumer.php +++ /dev/null @@ -1,25 +0,0 @@ -log->error('RefundFinishConsumer:error:NoData:'.json_encode($data)); - return Result::ACK; - } - - - - return Result::ACK; - } -} diff --git a/app/Amqp/Consumer/Statement/SiteConsumer.php b/app/Amqp/Consumer/Statement/SiteConsumer.php deleted file mode 100644 index 77e4251..0000000 --- a/app/Amqp/Consumer/Statement/SiteConsumer.php +++ /dev/null @@ -1,25 +0,0 @@ -log->error('SiteDriverConsumer:error:NoData:'.json_encode($data)); + return Result::ACK; + } + + try { + $service = new DeliverStatementService(); + + $service->siteId = (int)$data['site_id']; + $service->cycleId = (int)$data['cycle_id']; + + $service->handle(); + } catch (Exception $e) { + $this->log->error('SiteDriverConsumer:error:'.$e->getMessage().':data:'.json_encode($data)); + } + + return Result::ACK; + } +} diff --git a/app/Amqp/Producer/Statement/DriverProducer.php b/app/Amqp/Producer/Statement/DriverProducer.php deleted file mode 100644 index 3e21185..0000000 --- a/app/Amqp/Producer/Statement/DriverProducer.php +++ /dev/null @@ -1,24 +0,0 @@ -payload = $data; - } -} diff --git a/app/Amqp/Producer/Statement/RefundFinishProducer.php b/app/Amqp/Producer/Statement/SiteDriverProducer.php similarity index 64% rename from app/Amqp/Producer/Statement/RefundFinishProducer.php rename to app/Amqp/Producer/Statement/SiteDriverProducer.php index 2eba830..3b1a289 100644 --- a/app/Amqp/Producer/Statement/RefundFinishProducer.php +++ b/app/Amqp/Producer/Statement/SiteDriverProducer.php @@ -8,10 +8,9 @@ use Hyperf\Amqp\Annotation\Producer; use Hyperf\Amqp\Message\ProducerMessage; use Hyperf\Amqp\Message\Type; -#[Producer(exchange: 'RefundStatement', routingKey: 'RefundStatement')] -class RefundFinishProducer extends ProducerMessage +#[Producer(exchange: 'SiteDriver', routingKey: 'SiteDriver')] +class SiteDriverProducer extends ProducerMessage { - /** * @var Type|string 消息类型 */ @@ -20,7 +19,7 @@ class RefundFinishProducer extends ProducerMessage public function __construct($data) { /** - * $data string array => {"order_id":"order_id","refund_order_id":"refund_order_id"} + * $data string array => {"site_id":"siteId","cycle_id":"cycle_id"} */ $this->payload = $data; } diff --git a/app/Amqp/Producer/Statement/SiteProducer.php b/app/Amqp/Producer/Statement/SiteProducer.php deleted file mode 100644 index f70532f..0000000 --- a/app/Amqp/Producer/Statement/SiteProducer.php +++ /dev/null @@ -1,24 +0,0 @@ -payload = $data; - } -} diff --git a/app/Model/SiteDriverStatement.php b/app/Model/SiteDriverStatement.php new file mode 100644 index 0000000..c553900 --- /dev/null +++ b/app/Model/SiteDriverStatement.php @@ -0,0 +1,40 @@ + 'integer', 'cycle_id' => 'integer', 'kitchen_id' => 'integer', 'site_id' => 'integer', 'driver_id' => 'integer', 'option_order_number' => 'integer', 'option_copies' => 'integer', 'option_add_staple_food_num' => 'integer', 'meal_order_number' => 'integer', 'meal_copies' => 'integer', 'meal_add_staple_food_num' => 'integer']; +} diff --git a/app/Service/Amqp/Statement/DeliverStatementService.php b/app/Service/Amqp/Statement/DeliverStatementService.php new file mode 100644 index 0000000..fab4aeb --- /dev/null +++ b/app/Service/Amqp/Statement/DeliverStatementService.php @@ -0,0 +1,95 @@ +siteModel->where('id', $this->siteId)->first(); + if (empty($siteInfo)) throw new Exception('站点数据不存在'); + + $cycleInfo = $this->cycleModel->where('id', $this->cycleId)->first(); + if (empty($cycleInfo)) throw new Exception('周期数据不存在'); + + $info = $this->driverStatusModel->where('cycle_id', $this->cycleId)->where('site_id',$this->siteId)->first(); + if (empty($info)) throw new Exception('今日该点数据不存在'); + + $this->siteDriverStatementModel->where('cycle_id', $this->cycleId)->where('site_id',$this->siteId)->delete(); + + $insertModel = new SiteDriverStatement(); + + $insertModel->date = $cycleInfo->dates; + $insertModel->cycle_id = $this->cycleId; + $insertModel->site_id = $this->siteId; + $insertModel->kitchen_id = $siteInfo->kitchen_id; + $insertModel->driver_id = $info->driver_id; + $insertModel->option_order_number = $info->option_order_number; + $insertModel->meal_order_number = $info->meal_order_number; + $insertModel->option_copies = $info->option_copies; + $insertModel->meal_copies = $info->meal_copies; + $insertModel->option_add_staple_food_num = $info->option_add_staple_food_num; + $insertModel->meal_add_staple_food_num = $info->meal_add_staple_food_num; + + if (!$insertModel->save()) throw new Exception('保存点位数据失败'); + } + +} \ No newline at end of file