修改库存

This commit is contained in:
2023-03-27 15:00:53 +08:00
parent caa92df22e
commit 4a0a162297
9 changed files with 157 additions and 85 deletions
+19 -46
View File
@@ -30,7 +30,7 @@ use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
/**
* 发送订阅消息
* 订阅消息推送
* 每条消息都需携带发送短信参数,用户可能拒绝接受订阅消息
*/
#[Consumer(exchange: 'amqp.direct', routingKey: 'SendSubMessage', queue: 'send.sub.message.queue', nums: 1)]
@@ -38,33 +38,6 @@ class SendSubMessageConsumer extends ConsumerMessage
{
/**
* @param $data
* [
* "sub_data" => [
* "push_user_id" // 用户id(被推送者)
* "template_title" // 推送的模版名称
* "send_reason" // 发送原因
* "params" => [ // 推送所需的参数
* "page" // 跳转页面
* "data" => [
* "key1" => "value1" // 入参数据结构
// * "thing1" => [ // 发送时处理的数据结构
// * "value" => [
// * "参数1"
// * ]
// * ]
* ]
* ],
* ]
* "sms_data" => [ // 短信所需的参数,如订阅发送失败需发送短信
* "template_code" => "SMS_123",
* "template_param" => [
* // 参数不确定,主要看短信模版的不同
* ],
* "scene_desc" => "场景描述",
* "phone" => "手机号",
* "user_id" => "用户id(被推送者)"
* ]
* ]
* @param AMQPMessage $message
* @return string
* @throws ContainerExceptionInterface
@@ -77,7 +50,7 @@ class SendSubMessageConsumer extends ConsumerMessage
*/
public function consumeMessage($data, AMQPMessage $message): string
{
Log::getInstance()->info("开始执行 发送订阅消息 队列:" . json_encode($data, JSON_UNESCAPED_UNICODE));
Log::getInstance()->info("开始执行 订阅消息推送 队列:" . json_encode($data, JSON_UNESCAPED_UNICODE));
try {
// 获取被推送用户信息
@@ -85,13 +58,13 @@ class SendSubMessageConsumer extends ConsumerMessage
$params['user_id'] = $data['push_user_id'];
$user = User::getOne($params);
if (empty($user)){
Log::getInstance()->error("队列发送订阅消息执行失败:未查询到被推送用户信息");
Log::getInstance()->error("订阅消息推送执行失败:未查询到被推送用户信息");
return Result::ACK;
}
// 验证发送参数
if (empty($data['sub_data']['params']['data'])){
Log::getInstance()->error("队列发送订阅消息执行失败:无推送数据");
Log::getInstance()->error("订阅消息推送执行失败:无推送数据");
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"无推送数据");
return Result::DROP;
@@ -108,7 +81,7 @@ class SendSubMessageConsumer extends ConsumerMessage
}
if (empty($send_data)){
Log::getInstance()->error("队列发送订阅消息执行失败:发送参数处理失败");
Log::getInstance()->error("订阅消息推送执行失败:发送参数处理失败");
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"发送参数处理失败");
return Result::DROP;
@@ -119,7 +92,7 @@ class SendSubMessageConsumer extends ConsumerMessage
$UserService = new UserService();
$open_id = $UserService->getOpenIdWithUserId($user['user_id'],$user['user_type']);
if (empty($open_id)){
Log::getInstance()->error("队列发送订阅消息执行失败:未获取到被推送用户open_id");
Log::getInstance()->error("订阅消息推送执行失败:未获取到被推送用户open_id");
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"未获取到被推送用户open_id");
// 执行发送短信步骤
@@ -131,7 +104,7 @@ class SendSubMessageConsumer extends ConsumerMessage
// 获取消息模版
$sub_template = $this->getSubTemplate($user['user_type'],$data['sub_data']['template_title']);
if (empty($template_title)){
Log::getInstance()->error("队列发送订阅消息执行失败:未获取到需要发送的消息模版数据");
Log::getInstance()->error("订阅消息推送执行失败:未获取到需要发送的消息模版数据");
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"未获取到需要发送的消息模版数据");
// 执行发送短信步骤
@@ -159,17 +132,17 @@ class SendSubMessageConsumer extends ConsumerMessage
$Wechat = new Wechat($user['user_type']);
$result = $Wechat->sendSubscribeMessage($options);
if (empty($result)){
Log::getInstance()->error("队列发送订阅消息执行失败:推送失败");
Log::getInstance()->error("订阅消息推送执行失败:推送失败");
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"推送失败");
}
if (!isset($result['errcode'])){
Log::getInstance()->error("队列发送订阅消息执行失败:推送失败,返回值错误" . json_encode($result,JSON_UNESCAPED_UNICODE));
Log::getInstance()->error("订阅消息推送执行失败:推送失败,返回值错误" . json_encode($result,JSON_UNESCAPED_UNICODE));
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"推送失败,返回值错误");
}
if ($result['errcode'] == 43101){
Log::getInstance()->error("队列发送订阅消息执行失败:用户拒绝接收消息");
Log::getInstance()->error("订阅消息推送执行失败:用户拒绝接收消息");
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],"用户拒绝接收消息");
// 执行发送短信步骤
@@ -178,11 +151,11 @@ class SendSubMessageConsumer extends ConsumerMessage
return Result::ACK;
}
Log::getInstance()->info("队列发送订阅消息执行成功");
Log::getInstance()->info("订阅消息推送执行成功");
$this->saveSuccessPushLog($user['user_type'],$data['sub_data']);
} catch (\Exception $e) {
Log::getInstance()->error("队列发送订阅消息执行失败:" . $e->getMessage());
Log::getInstance()->error("订阅消息推送执行失败:" . $e->getMessage());
$this->saveErrorPushLog($user['user_type'],$data['sub_data'],$e->getMessage());
}
@@ -206,7 +179,7 @@ class SendSubMessageConsumer extends ConsumerMessage
$data['content'] = json_encode($sub_data['params'],JSON_UNESCAPED_UNICODE);
$log_message_push = LogMessagePush::addLogMessagePush($data);
if (empty($log_message_push)){
Log::getInstance()->error("队列发送订阅消息成功,增加推送日志失败:" . json_encode($data,JSON_UNESCAPED_UNICODE));
Log::getInstance()->error("订阅消息推送成功,增加推送日志失败:" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
@@ -229,7 +202,7 @@ class SendSubMessageConsumer extends ConsumerMessage
$data['content'] = json_encode($sub_data['params'],JSON_UNESCAPED_UNICODE);
$log_message_push = LogMessagePush::addLogMessagePush($data);
if (empty($log_message_push)){
Log::getInstance()->error("队列发送订阅消息成功,增加推送日志失败:" . json_encode($data,JSON_UNESCAPED_UNICODE));
Log::getInstance()->error("订阅消息推送成功,增加推送日志失败:" . json_encode($data,JSON_UNESCAPED_UNICODE));
}
}
@@ -247,25 +220,25 @@ class SendSubMessageConsumer extends ConsumerMessage
try {
if (empty($sms_data)){
// 无需发送短信
Log::getInstance()->info("无数据需添加短信队列");
Log::getInstance()->info("无数据需添加短信推送队列");
return true;
}
Log::getInstance()->info("添加短信队列");
Log::getInstance()->info("添加短信推送队列");
// 增加至发送短信队列
$message = new SendSmsMessageProducer($sms_data);
$producer = $this->container->get(Producer::class);
$res = $producer->produce($message);
if (!$res) {
Log::getInstance()->error("添加短信队列失败" . json_encode($sms_data,JSON_UNESCAPED_UNICODE));
Log::getInstance()->error("添加短信推送队列失败" . json_encode($sms_data,JSON_UNESCAPED_UNICODE));
}
} catch (\Exception $e) {
Log::getInstance()->error("添加短信队列失败" . $e->getMessage());
Log::getInstance()->error("添加短信推送队列失败" . $e->getMessage());
}
Log::getInstance()->info("添加短信队列成功");
Log::getInstance()->info("添加短信推送队列成功");
return true;
}