|
|
|
@ -20,6 +20,8 @@ use Hyperf\Snowflake\IdGeneratorInterface; |
|
|
|
use Hyperf\Utils\ApplicationContext; |
|
|
|
use Hyperf\Di\Annotation\Inject; |
|
|
|
use App\Service\WxRefundServiceInterface; |
|
|
|
use App\Service\UserServiceInterface; |
|
|
|
use App\Model\Users; |
|
|
|
|
|
|
|
class OrderService implements OrderServiceInterface |
|
|
|
{ |
|
|
|
@ -41,6 +43,12 @@ class OrderService implements OrderServiceInterface |
|
|
|
*/ |
|
|
|
protected $wxRefundService; |
|
|
|
|
|
|
|
/** |
|
|
|
* @Inject |
|
|
|
* @var UserServiceInterface |
|
|
|
*/ |
|
|
|
protected $userService; |
|
|
|
|
|
|
|
/** |
|
|
|
* @inheritDoc |
|
|
|
*/ |
|
|
|
@ -731,7 +739,7 @@ class OrderService implements OrderServiceInterface |
|
|
|
$time = time(); |
|
|
|
// 主订单状态更新
|
|
|
|
$orderMain = OrderMain::query() |
|
|
|
->select('id','global_order_id','state','pay_type') |
|
|
|
->select('id','global_order_id','state','pay_type','user_id','money') |
|
|
|
->where(['global_order_id' => $global_order_id, 'state' => OrderMain::ORDER_STATE_REFUNDING]) |
|
|
|
->first(); |
|
|
|
|
|
|
|
@ -741,7 +749,10 @@ class OrderService implements OrderServiceInterface |
|
|
|
} |
|
|
|
|
|
|
|
$orderMain->state = OrderMain::ORDER_STATE_REFUNDED; |
|
|
|
$upOrderMain = $orderMain->save(); |
|
|
|
if(!$orderMain->save()){ |
|
|
|
Db::rollBack(); |
|
|
|
return false; |
|
|
|
}; |
|
|
|
|
|
|
|
// 子订单状态更新
|
|
|
|
$upChild = Order::query() |
|
|
|
@ -755,14 +766,21 @@ class OrderService implements OrderServiceInterface |
|
|
|
|
|
|
|
if($orderMain->pay_type == OrderMain::ORDER_PAY_WX){ |
|
|
|
// 微信支付 微信退款
|
|
|
|
$refundRes = $this->wxRefundService->wxPayRefund($global_order_id); |
|
|
|
if($this->wxRefundService->wxPayRefund($global_order_id)){ |
|
|
|
Db::rollBack(); |
|
|
|
return false; |
|
|
|
}; |
|
|
|
}else if($orderMain->pay_type == OrderMain::ORDER_PAY_BALANCE){ |
|
|
|
// 余额支付 退款到用户余额
|
|
|
|
if($this->userService->userWallet($orderMain->user_id,$orderMain->money,Users::WALLET_TYPE_INC)){ |
|
|
|
Db::rollBack(); |
|
|
|
return false; |
|
|
|
}; |
|
|
|
|
|
|
|
// 返还优惠券
|
|
|
|
$this->couponService->orderRefundCoupon($global_order_id); |
|
|
|
// 添加用户流水
|
|
|
|
|
|
|
|
$this->financialService->userByOLOrderRefund($orderMain->user_id, $orderMain->global_order_id, $orderMain->money); |
|
|
|
} |
|
|
|
|
|
|
|
Db::commit(); |
|
|
|
@ -813,7 +831,7 @@ class OrderService implements OrderServiceInterface |
|
|
|
return true; |
|
|
|
} catch (Exception $e) { |
|
|
|
|
|
|
|
$this->log->event(LogLabel::ORDER_LOG, ['msg'=> '订单退款失败时处理状态9->8','exception' => $e->getMessage()]); |
|
|
|
$this->log->event(LogLabel::ORDER_LOG, ['msg'=> '订单退款失败时处理状态9->8 ','exception' => $e->getMessage()]); |
|
|
|
Db::rollBack(); |
|
|
|
return false; |
|
|
|
} |
|
|
|
|