You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
declare(strict_types=1);
namespace App\Amqp\Consumer;
use App\Model\Order;use App\Model\SpeakerDevic;use App\Service\DeviceServiceInterFace;use Hyperf\Amqp\Result;use Hyperf\Amqp\Annotation\Consumer;use Hyperf\Amqp\Message\ConsumerMessage;use Hyperf\DbConnection\Db;use PhpAmqpLib\Message\AMQPMessage;use Hyperf\Di\Annotation\Inject;
/** * @Consumer(exchange="devicOrder", routingKey="devicOrder", queue="devicOrder", nums=1) */class DevicOrderConsumer extends ConsumerMessage{ /** * @Inject * @var DeviceServiceInterFace */ protected $deviceService;
public function consumeMessage($data, AMQPMessage $message): string { try {
$orderMainId = $message->getBody(); $order = Order::query() ->select(['id', 'store_id', 'money']) ->where(['order_main_id' => $orderMainId, 'type' => 4, 'dm_state' => 2]) ->first();
$deviceName = SpeakerDevic::query()->where(['store_id' => $order['store_id']])->value('device_name');
$msg = "{\"msg\":\"到账".$order['money']."元\"}"; $res = $this->deviceService->pubMsgToStoreByDevName($deviceName, $msg);
if ($res == true) { return Result::ACK; } else { return Result::REQUEUE; }
} catch (\Exception $e) { return Result::REQUEUE; } }
public function isEnable(): bool { //if(env('APP_ENV')!='prod') return false;
return parent::isEnable(); }}
|