周总批发商场
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.
 
 
 
 
 
 
dianshang/crmeb/app/jobs/OutPushJob.php

151 lines
4.8 KiB

<?php
namespace app\jobs;
use app\services\order\OutStoreOrderRefundServices;
use app\services\order\OutStoreOrderServices;
use app\services\user\UserServices;
use crmeb\basic\BaseJobs;
use crmeb\traits\QueueTrait;
use think\facade\Log;
class OutPushJob extends BaseJobs
{
use QueueTrait;
/**
* 订单推送
* @param int $oid
* @param string $pushUrl
* @param int $step
* @return bool
*/
public function orderCreate(int $oid, string $pushUrl, int $step = 0): bool
{
if ($step > 2) {
Log::error('订单' . $oid . '推送失败');
return true;
}
try {
/** @var OutStoreOrderServices $services */
$services = app()->make(OutStoreOrderServices::class);
if (!$services->orderCreatePush($oid, $pushUrl)) {
OutPushJob::dispatchSecs(($step + 1) * 5, 'orderCreate', [$oid, $pushUrl, $step + 1]);
}
} catch (\Exception $e) {
Log::error('订单' . $oid . '推送失败,失败原因:' . $e->getMessage());
OutPushJob::dispatchSecs(($step + 1) * 5, 'orderCreate', [$oid, $pushUrl, $step + 1]);
}
return true;
}
/**
* 订单支付推送
* @param int $oid
* @param string $pushUrl
* @param int $step
* @return bool
*/
public function paySuccess(int $oid, string $pushUrl, int $step = 0): bool
{
if ($step > 2) {
Log::error('订单支付' . $oid . '推送失败');
return true;
}
try {
/** @var OutStoreOrderServices $services */
$services = app()->make(OutStoreOrderServices::class);
if (!$services->paySuccessPush($oid, $pushUrl)) {
OutPushJob::dispatchSecs(($step + 1) * 5, 'paySuccess', [$oid, $pushUrl, $step + 1]);
}
} catch (\Exception $e) {
Log::error('订单支付' . $oid . '推送失败,失败原因:' . $e->getMessage());
OutPushJob::dispatchSecs(($step + 1) * 5, 'paySuccess', [$oid, $pushUrl, $step + 1]);
}
return true;
}
/**
* 售后单生成
* @param int $oid
* @param string $pushUrl
* @param int $step
* @return bool
*/
public function refundCreate(int $oid, string $pushUrl, int $step = 0): bool
{
if ($step > 2) {
Log::error('售后单' . $oid . '推送失败');
return true;
}
try {
/** @var OutStoreOrderRefundServices $services */
$services = app()->make(OutStoreOrderRefundServices::class);
if (!$services->refundCreatePush($oid, $pushUrl)) {
OutPushJob::dispatchSecs(($step + 1) * 5, 'refundCreate', [$oid, $pushUrl, $step + 1]);
}
} catch (\Exception $e) {
Log::error('售后单' . $oid . '推送失败,失败原因:' . $e->getMessage());
OutPushJob::dispatchSecs(($step + 1) * 5, 'refundCreate', [$oid, $pushUrl, $step + 1]);
}
return true;
}
/**
* 取消申请
* @param int $oid
* @param string $pushUrl
* @param int $step
* @return bool
*/
public function refundCancel(int $oid, string $pushUrl, int $step = 0): bool
{
if ($step > 2) {
Log::error('取消售后单' . $oid . '推送失败');
return true;
}
try {
/** @var OutStoreOrderRefundServices $services */
$services = app()->make(OutStoreOrderRefundServices::class);
if (!$services->cancelApplyPush($oid, $pushUrl)) {
OutPushJob::dispatchSecs(($step + 1) * 5, 'refundCancel', [$oid, $pushUrl, $step + 1]);
}
} catch (\Exception $e) {
Log::error('取消售后单' . $oid . '推送失败,失败原因:' . $e->getMessage());
OutPushJob::dispatchSecs(($step + 1) * 5, 'refundCancel', [$oid, $pushUrl, $step + 1]);
}
return true;
}
/**
* 余额,积分,佣金,经验变动推送
* @param array $data
* @param string $pushUrl
* @param int $step
* @return bool
*/
public function userUpdate(array $data, string $pushUrl, int $step = 0): bool
{
if ($step > 2) {
Log::error('用户变动推送失败');
return true;
}
try {
/** @var UserServices $services */
$services = app()->make(UserServices::class);
if (!$services->userUpdate($data, $pushUrl)) {
OutPushJob::dispatchSecs(($step + 1) * 5, 'userUpdate', [$data, $pushUrl, $step + 1]);
}
} catch (\Exception $e) {
OutPushJob::dispatchSecs(($step + 1) * 5, 'userUpdate', [$data, $pushUrl, $step + 1]);
}
return true;
}
}