初始化仓库
This commit is contained in:
179
common/handlers/orderHandler/OrderPayedHandlerClass.php
Normal file
179
common/handlers/orderHandler/OrderPayedHandlerClass.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
namespace common\handlers\orderHandler;
|
||||
|
||||
use common\core\BaseModel;
|
||||
use common\forms\order\CommonLog;
|
||||
use common\forms\order\CommonOrder;
|
||||
use common\forms\order\OrderRefundForm;
|
||||
use common\jobs\CfOrderCancelJob;
|
||||
use common\jobs\CfTemplateJob;
|
||||
use common\jobs\TemplateJob;
|
||||
use common\models\Order;
|
||||
use common\models\OrderRefund;
|
||||
use common\models\OrderSubAmount;
|
||||
|
||||
class OrderPayedHandlerClass extends BaseOrderPayedHandler
|
||||
{
|
||||
public function handle()
|
||||
{
|
||||
CommonLog::saveLog($this->event->order->id,'订单支付事件start');
|
||||
self::execute();
|
||||
CommonLog::saveLog($this->event->order->id,'订单支付事件end');
|
||||
}
|
||||
|
||||
protected function execute()
|
||||
{
|
||||
$this->user = $this->event->order->user;
|
||||
/**
|
||||
* 订单是否取消状态(针对调起支付后,自动取消的订单)
|
||||
* 退款且不执行后续操作
|
||||
* $order 重新查一次最新的订单数据
|
||||
*/
|
||||
$order = Order::findOne($this->event->order->id);
|
||||
if ($order->cancel_status == 1 && ($order->pay_type == 1 || $order->pay_type == 4)) {
|
||||
CommonLog::saveLog($this->event->order->id,'调起支付后已经自动取消的订单进行退款');
|
||||
|
||||
$t = \Yii::$app->db->beginTransaction();
|
||||
try {
|
||||
// 生成售后订单
|
||||
$orderRefund = new OrderRefund();
|
||||
$orderRefund->mall_id = \Yii::$app->mall->id;
|
||||
$orderRefund->user_id = $this->user->id;
|
||||
$orderRefund->order_id = $order->id;
|
||||
$orderRefund->order_detail_id = 0;
|
||||
$orderRefund->order_no = Order::getOrderNo('RE');
|
||||
$orderRefund->type = 1;
|
||||
$orderRefund->refund_price = $order->total_pay_price;
|
||||
$orderRefund->status = 2;
|
||||
$orderRefund->is_refund = 1;
|
||||
$res = $orderRefund->save();
|
||||
if (!$res) {
|
||||
throw new \Exception((new BaseModel())->getErrorMsg($orderRefund));
|
||||
}
|
||||
|
||||
(new CommonOrder())->extraCancel($order);
|
||||
|
||||
(new OrderRefundForm())->refundMoney($orderRefund,$orderRefund->refund_price);
|
||||
|
||||
$t->commit();
|
||||
} catch (\Exception $e) {
|
||||
$t->rollBack();
|
||||
CommonLog::saveLog($this->event->order->id,'调起支付后已经自动取消的订单进行退款异常:'.$e->getMessage());
|
||||
}
|
||||
return $this;
|
||||
}else{
|
||||
static::notice();
|
||||
// static::pay();
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
protected function notice()
|
||||
{
|
||||
// $this->sendSms()->sendMail()->receiptPrint('pay')
|
||||
// ->sendTemplate()->sendMpTemplate()->sendTemplateMsgToMch()->sendBuyPrompt()->setGoods()->sendSmsToUser()->addShareOrder();
|
||||
$this->setGoods()->setAutoCancel()->sendCfTemplate()->setSubAmount();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付后分账记录状态调整
|
||||
*/
|
||||
public function setSubAmount()
|
||||
{
|
||||
OrderSubAmount::updateAll(['status'=>1],[
|
||||
'order_id' => $this->event->order->id,
|
||||
'mall_id' => $this->event->order->mall_id,
|
||||
'status' => 0
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 超时未填写处方单取消订单退款
|
||||
*/
|
||||
public function setAutoCancel()
|
||||
{
|
||||
$order = Order::findOne($this->event->order->id);
|
||||
if($order->prescription_status == 1){
|
||||
\Yii::$app->queue4->delay(48*60*60)->push(new CfOrderCancelJob([
|
||||
'orderId' => $this->event->order->id,
|
||||
]));
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处方单提醒消息
|
||||
*/
|
||||
public function sendCfTemplate()
|
||||
{
|
||||
$order = Order::findOne($this->event->order->id);
|
||||
if($order->prescription_status == 1){
|
||||
\Yii::$app->queue4->delay(5*60)->push(new CfTemplateJob([
|
||||
'orderId' => $this->event->order->id,
|
||||
"data" => [
|
||||
'character_string1' => [
|
||||
'value' => $this->event->order->order_no,
|
||||
],
|
||||
'phrase2' => [
|
||||
'value' => '已付款',
|
||||
],
|
||||
'date3' => [
|
||||
'value' => date("Y/m/d",$this->event->order->created_at),
|
||||
],
|
||||
'thing4' => [
|
||||
'value' => '您的订单含有处方药,请尽快填写用药信息',
|
||||
],
|
||||
],
|
||||
"page" => "/pages/PreliminaryInformation/PreliminaryInformation?orderInfo=".urlencode('{"order_id":'.$this->event->order->id.'}')
|
||||
]));
|
||||
|
||||
\Yii::$app->queue4->delay(55*60)->push(new CfTemplateJob([
|
||||
'orderId' => $this->event->order->id,
|
||||
"data" => [
|
||||
'character_string1' => [
|
||||
'value' => $this->event->order->order_no,
|
||||
],
|
||||
'phrase2' => [
|
||||
'value' => '已付款',
|
||||
],
|
||||
'date3' => [
|
||||
'value' => date("Y/m/d",$this->event->order->created_at),
|
||||
],
|
||||
'thing4' => [
|
||||
'value' => '您的订单含有处方药,请尽快填写用药信息',
|
||||
],
|
||||
],
|
||||
"page" => "/pages/PreliminaryInformation/PreliminaryInformation?orderInfo=".urlencode('{"order_id":'.$this->event->order->id.'}')
|
||||
]));
|
||||
|
||||
\Yii::$app->queue4->delay(24*60*60)->push(new CfTemplateJob([
|
||||
'orderId' => $this->event->order->id,
|
||||
"data" => [
|
||||
'character_string1' => [
|
||||
'value' => $this->event->order->order_no,
|
||||
],
|
||||
'phrase2' => [
|
||||
'value' => '已付款',
|
||||
],
|
||||
'date3' => [
|
||||
'value' => date("Y/m/d",$this->event->order->created_at),
|
||||
],
|
||||
'thing4' => [
|
||||
'value' => '请尽快填写用药信息,超期将退款并关闭订单',
|
||||
],
|
||||
],
|
||||
"page" => "/pages/PreliminaryInformation/PreliminaryInformation?orderInfo=".urlencode('{"order_id":'.$this->event->order->id.'}')
|
||||
]));
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
// protected function pay()
|
||||
// {
|
||||
// \Yii::error('--mall pay--');
|
||||
// // 首次付款绑定下级--生成分销订单--下单用户成为分销商--设置卡密数据
|
||||
// $this->saveResult()->becomeJuniorByFirstPay()->addShareOrder()->becomeShare()->setTypeData();
|
||||
// return $this;
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user