MdGroupActivitiesJob.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * MdGroupActivitiesJob.php
  4. * todo 文件描述
  5. * Created on 2024/4/9 09:21
  6. * @author: hankaige
  7. */
  8. namespace app\jobs;
  9. use app\models\MdGroupActivities;
  10. use app\models\Order;
  11. use app\models\VerifyCardSale;
  12. use app\modules\admin\models\OrderRevokeForm;
  13. use app\utils\Notice\NoticeSend;
  14. use app\utils\PrintOrder;
  15. use yii\base\BaseObject;
  16. use yii\queue\JobInterface;
  17. class MdGroupActivitiesJob extends BaseObject implements JobInterface
  18. {
  19. // 活动ID
  20. public $activity_id;
  21. public function execute($queue)
  22. {
  23. $mdGroupActivities = MdGroupActivities::findOne($this->activity_id);
  24. if($mdGroupActivities->rules == 0){
  25. // 没有成团条件限制
  26. return true;
  27. }
  28. // 查询没有成团的订单 执行取消订单并退款
  29. $orderList = Order::find()->where(['md_group_activities_id' => $this->activity_id, 'md_group_activities_status' => 0])->all();
  30. foreach($orderList as $order){
  31. // 未支付 直接取消订单
  32. if($order->is_pay == 0){
  33. $order->trade_status = 1;
  34. $order->save();
  35. continue;
  36. }else{
  37. $t = \Yii::$app->db->beginTransaction();
  38. try {
  39. $order->seller_comments = '退款原因是 未达到成团条件';
  40. $form = new OrderRevokeForm();
  41. $form->order_id = $order->id;
  42. $form->delete_pass = true;
  43. $form->user_id = $order->user_id;
  44. $form->store_id = $order->store_id;
  45. $res = $form->save();
  46. if($res['code'] == 0){
  47. VerifyCardSale::cancelCard($order);
  48. $order->save();
  49. // NoticeSend::OrderCancel($order->user_id, $order->mobile, $order->order_no, $order->pay_price, '', 0);
  50. // 订单打印
  51. // if ((int)$order->md_id === -1 || (int)$order->md_id === 0 || !isset($order->md_id)) {
  52. // $order->md_id = 0;
  53. // }
  54. // $printer_order = new PrintOrder($order->store_id, $order->id, 'confirm', 0, $order->md_id);
  55. // $printer_order->is_refund = true;
  56. // $printer_order->print_order();
  57. }
  58. $t->commit();
  59. }catch (\Throwable $e){
  60. $t->rollBack();
  61. }
  62. }
  63. }
  64. }
  65. }