新增退款充实次数
This commit is contained in:
parent
cf9d3ff424
commit
b65f822618
@ -8,11 +8,13 @@ use App\Model\OrderInquiry;
|
||||
use App\Services\InquiryService;
|
||||
use App\Services\UserDoctorService;
|
||||
use App\Utils\Log;
|
||||
use Extend\Wechat\WechatPay;
|
||||
use Hyperf\Amqp\Result;
|
||||
use Hyperf\Amqp\Annotation\Consumer;
|
||||
use Hyperf\Amqp\Message\ConsumerMessage;
|
||||
use Hyperf\DbConnection\Db;
|
||||
use Hyperf\Redis\Redis;
|
||||
use Hyperf\Snowflake\IdGeneratorInterface;
|
||||
use PhpAmqpLib\Message\AMQPMessage;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
@ -92,30 +94,40 @@ class AssignDoctorConsumer extends ConsumerMessage
|
||||
return Result::DROP;// 销毁
|
||||
}
|
||||
|
||||
$redis = $this->container->get(Redis::class);
|
||||
|
||||
if ($diff_time > 300){
|
||||
try {
|
||||
// 超出5分钟,执行退款
|
||||
Log::getInstance()->info("超出5分钟,执行退款");
|
||||
$InquiryService = new InquiryService();
|
||||
$InquiryService->inquiryRefund($order_inquiry['order_inquiry_id'],"分配医生失败");
|
||||
// 超出5分钟,执行退款
|
||||
Log::getInstance()->info("超出5分钟,执行退款");
|
||||
|
||||
// 退款成功
|
||||
Db::commit();
|
||||
Log::getInstance()->info("订单已退款");
|
||||
$redis_key = "inquiryRefund" . $order_inquiry['order_inquiry_id'];
|
||||
$redis_value = $redis->get($redis_key);
|
||||
if (!empty($redis_value)){
|
||||
// 判断退款次数
|
||||
if ($redis_value >= 3){
|
||||
Log::getInstance()->info("退款取消,退款失败次数过多");
|
||||
|
||||
// 加入消息通知队列
|
||||
// 加入短信队列
|
||||
|
||||
return Result::ACK;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("队列执行失败原因:" . "执行退款失败" . $e->getMessage());
|
||||
return Result::REQUEUE; // 重回队列
|
||||
return Result::DROP;// 销毁
|
||||
}
|
||||
|
||||
$redis_value = $redis_value + 1;
|
||||
}else{
|
||||
$redis_value = 1;
|
||||
}
|
||||
|
||||
}
|
||||
try {
|
||||
$InquiryService = new InquiryService();
|
||||
$InquiryService->inquiryRefund($order_inquiry['order_inquiry_id'],"暂无医生接诊");
|
||||
|
||||
$redis = $this->container->get(Redis::class);
|
||||
$redis_key = $order_inquiry['order_inquiry_id'];
|
||||
$redis->set($redis_key,$redis_value);
|
||||
} catch (\Exception $e) {
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("队列执行失败原因:退款失败,原因:" . $e->getMessage());
|
||||
return Result::REQUEUE; // 重回队列
|
||||
}
|
||||
}
|
||||
|
||||
// 分配医生
|
||||
$UserDoctorService = new UserDoctorService();
|
||||
@ -123,6 +135,8 @@ class AssignDoctorConsumer extends ConsumerMessage
|
||||
if (empty($doctor_id)){
|
||||
Db::rollBack();
|
||||
Log::getInstance()->error("重回队列,目前没有合适医生");
|
||||
|
||||
$redis_key = "AssignDoctor" . $order_inquiry['order_inquiry_id'];
|
||||
$redis_value = $redis->get($redis_key);
|
||||
if (!empty($redis_value)){
|
||||
$redis_value = $redis_value + 1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user