feat : rank
This commit is contained in:
@@ -11,6 +11,7 @@ use App\Model\Cycle;
|
|||||||
use App\Model\FinancesStatement;
|
use App\Model\FinancesStatement;
|
||||||
use App\Model\Kitchen;
|
use App\Model\Kitchen;
|
||||||
use App\Model\Order;
|
use App\Model\Order;
|
||||||
|
use Exception;
|
||||||
use Hyperf\Amqp\Message\Type;
|
use Hyperf\Amqp\Message\Type;
|
||||||
use Hyperf\Amqp\Producer;
|
use Hyperf\Amqp\Producer;
|
||||||
use Hyperf\Amqp\Result;
|
use Hyperf\Amqp\Result;
|
||||||
@@ -75,54 +76,55 @@ class FinancesConsumer extends ConsumerMessage
|
|||||||
*/
|
*/
|
||||||
public function consumeMessage($data, AMQPMessage $message): Result
|
public function consumeMessage($data, AMQPMessage $message): Result
|
||||||
{
|
{
|
||||||
if (!$data['kitchen_id'] || !$data['cycle_id']) {
|
try {
|
||||||
$this->log->error('FinancesConsumer:error:NoData:'.json_encode($data));
|
if (!$data['kitchen_id'] || !$data['cycle_id']) throw new Exception('FinancesConsumer:error:NoData:'.json_encode($data));
|
||||||
|
|
||||||
|
$kitchen = $this->kitchenModel->where('id',$data['kitchen_id'])->first();
|
||||||
|
$cycle = $this->cycleModel->where('id',$data['cycle_id'])->first();
|
||||||
|
if (empty($kitchen) || empty($cycle)) {
|
||||||
|
throw new Exception('FinancesConsumer:error:kitchenOrCycleError:'.json_encode([
|
||||||
|
'kitchen_id' => $data['kitchen_id'],
|
||||||
|
'cycle_id' => $data['cycle_id'],
|
||||||
|
'cycle' => $cycle,
|
||||||
|
'kitchen' => $kitchen,
|
||||||
|
'data' => $data,
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
|
$statementInfo = $this->financesStatementModel->getStatementByCycleIdAndKitchenId((int)$data['cycle_id'],(int)$data['kitchen_id']);
|
||||||
|
if (!empty($statement)) $statementInfo->delete();
|
||||||
|
|
||||||
|
$statement = new FinancesStatement();
|
||||||
|
|
||||||
|
$statement->date = $cycle->dates;
|
||||||
|
$statement->cycle_id = $cycle->id;
|
||||||
|
$statement->kitchen_id = $kitchen->id;
|
||||||
|
$statement->discounts = $this->orderModel->getDiscountsByCycleIdAndKitchenId($cycle->id, $kitchen->id);
|
||||||
|
$statement->net_sales = $this->orderModel->getNetSalesByCycleIdAndKitchenId($cycle->id, $kitchen->id);
|
||||||
|
$statement->gross_sales = $statement->net_sales + $statement->discounts;
|
||||||
|
$statement->option_order_number = $this->orderModel->getOrderNumberByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_OPTIONAL);
|
||||||
|
$statement->option_copies = $this->orderModel->getCopiesByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_OPTIONAL);
|
||||||
|
$statement->meal_order_number = $this->orderModel->getOrderNumberByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_MEAL);
|
||||||
|
$statement->meal_copies = $this->orderModel->getCopiesByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_MEAL);
|
||||||
|
|
||||||
|
if (!$statement->save()) {
|
||||||
|
throw new Exception('FinancesConsumer:error:FinancesStatement:'.json_encode([
|
||||||
|
'statement' => $statement,
|
||||||
|
'data' => $data,
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 厨师商品结算节点 消息队列 - 生成结算数据
|
||||||
|
$chefMessage = new ChefProducer([
|
||||||
|
'cycle_id' => $data['cycle_id'],
|
||||||
|
'kitchen_id' => $data['kitchen_id'],
|
||||||
|
]);
|
||||||
|
$this->producer->produce($chefMessage);
|
||||||
|
|
||||||
|
return Result::ACK;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->log->error($e->getMessage());
|
||||||
return Result::ACK;
|
return Result::ACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
$kitchen = $this->kitchenModel->where('id',$data['kitchen_id'])->first();
|
|
||||||
$cycle = $this->cycleModel->where('id',$data['cycle_id'])->first();
|
|
||||||
if (empty($kitchen) || empty($cycle)) {
|
|
||||||
$this->log->error('FinancesConsumer:error:kitchenOrCycleError:'.json_encode([
|
|
||||||
'kitchen_id' => $data['kitchen_id'],
|
|
||||||
'cycle_id' => $data['cycle_id'],
|
|
||||||
'cycle' => $cycle,
|
|
||||||
'kitchen' => $kitchen,
|
|
||||||
'data' => $data,
|
|
||||||
]));
|
|
||||||
return Result::ACK;
|
|
||||||
}
|
|
||||||
|
|
||||||
$statement = $this->financesStatementModel->getStatementByCycleIdAndKitchenId($data['cycle_id'],$data['kitchen_id']);
|
|
||||||
if (!empty($statement)) $statement->delete();
|
|
||||||
|
|
||||||
$statement = new FinancesStatement();
|
|
||||||
|
|
||||||
$statement->date = $cycle->dates;
|
|
||||||
$statement->cycle_id = $cycle->id;
|
|
||||||
$statement->kitchen_id = $kitchen->id;
|
|
||||||
$statement->discounts = $this->orderModel->getDiscountsByCycleIdAndKitchenId($cycle->id, $kitchen->id);
|
|
||||||
$statement->net_sales = $this->orderModel->getNetSalesByCycleIdAndKitchenId($cycle->id, $kitchen->id);
|
|
||||||
$statement->gross_sales = $statement->net_sales + $statement->discounts;
|
|
||||||
$statement->option_order_number = $this->orderModel->getOrderNumberByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_OPTIONAL);
|
|
||||||
$statement->option_copies = $this->orderModel->getCopiesByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_OPTIONAL);
|
|
||||||
$statement->meal_order_number = $this->orderModel->getOrderNumberByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_MEAL);
|
|
||||||
$statement->meal_copies = $this->orderModel->getCopiesByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_MEAL);
|
|
||||||
|
|
||||||
if (!$statement->save()) {
|
|
||||||
$this->log->error('FinancesConsumer:error:FinancesStatement:'.json_encode([
|
|
||||||
'statement' => $statement,
|
|
||||||
'data' => $data,
|
|
||||||
]));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 厨师商品结算节点 消息队列 - 生成结算数据
|
|
||||||
$chefMessage = new ChefProducer([
|
|
||||||
'cycle_id' => $data['cycle_id'],
|
|
||||||
'kitchen_id' => $data['kitchen_id'],
|
|
||||||
]);
|
|
||||||
$this->producer->produce($chefMessage);
|
|
||||||
|
|
||||||
return Result::ACK;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user