| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace app\jobs;
- use app\models\Order;
- use app\models\SharingReceiver;
- use app\modules\admin\models\WechatThirdForm;
- use app\utils\OrderUtil;
- use app\utils\Wechat\WechatMini;
- use yii\base\BaseObject;
- use yii\queue\JobInterface;
- //处理订单异常完成售后 但是未进行分账操作的问题
- class SharingReceiverHandleJob extends BaseObject implements JobInterface
- {
- public function execute($queue)
- {
- try {
- $share_receiver = SharingReceiver::find()
- ->where(['is_delete' => 0, 'is_pay' => 0])
- ->andWhere(['OR', ['LIKE', "order_no", 'ML'], ['LIKE', "order_no", 'AL'], ['LIKE', "order_no", 'SC']])
- ->groupBy('order_no')->select('order_no')->orderBy('created_at ASC')->asArray()->all();
- $share_receiver_order_no = [];
- foreach ($share_receiver as $receiver_item) {
- $orderNoHead = substr($receiver_item['order_no'], 0, 2);
- if (in_array($orderNoHead, ['ML', 'AL'])) {
- $order = \app\models\Order::findOne(['order_no' => $receiver_item['order_no'], 'is_sale' => 1, 'is_delete' => 0, 'pay_type' => \app\models\Order::PAY_TYPE_WECHAT]);
- if ($order) {
- array_push($share_receiver_order_no, $receiver_item['order_no']);
- }
- }
- if ($orderNoHead === "SC") {
- $scan_order = \app\plugins\scanCodePay\models\Order::findOne(['order_no' => $receiver_item['order_no']]);
- if ($scan_order) {
- array_push($share_receiver_order_no, $receiver_item['order_no']);
- }
- }
- }
- $orderUtil = new \app\utils\OrderUtil();
- foreach ($share_receiver_order_no as $item) {
- $orderNoHead = substr($item, 0, 2);
- if (in_array($orderNoHead, ['ML', 'AL'])) {
- $order = \app\models\Order::findOne(['order_no' => $item]);
- } else {
- $order = \app\plugins\scanCodePay\models\Order::findOne(['order_no' => $item]);
- }
- if ($order) {
- $store_id = $order->store_id;
- if($order->transaction_id){
- //检测微信是否收货
- $app = \app\utils\Wechat\WechatMini::getWechatConfig($order->store_id);
- $form = new \app\modules\admin\models\WechatThirdForm(['store_id' => $store_id]);
- $is_trade_managed = $form->is_trade_managed($app);
- $open = true;
- if($is_trade_managed){
- $result = $form->wxOrderStateIsConfirm($app, $order);
- debug_log(['是否收货' => $result, 'order_no' => $item], 'SharingReceiver.log');
- if(!$result){
- $open = false;
- }
- }
- if($open){
- try {
- $order_id_arr = $orderUtil->profitSharing($order, $store_id);
- } catch (\Exception $e) {
- debug_log('---- profitSharing END分账失败 ----' . $e->getMessage(), 'SharingReceiver.log');
- }
- }
- }
- }
- }
- debug_log('完毕', 'SharingReceiver.log');
- } catch (\Exception $e) {
- debug_log($e->getMessage(), 'SharingReceiver.log');
- }
- }
- }
|