Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace app\jobs;
  3. use app\services\other\queue\QueueServices;
  4. use crmeb\basic\BaseJobs;
  5. use crmeb\traits\QueueTrait;
  6. use think\facade\Log;
  7. /**
  8. * 批量任务队列
  9. * Class BatchHandleJob
  10. * @package app\jobs
  11. */
  12. class BatchHandleJob extends BaseJobs
  13. {
  14. use QueueTrait;
  15. /**
  16. * @return mixed
  17. */
  18. public static function queueName()
  19. {
  20. $default = config('queue.default');
  21. return config('queue.connections.' . $default . '.batch_queue');
  22. }
  23. /**
  24. * 批量任务队列
  25. * @param false $data
  26. * @param $type
  27. * @param array $other
  28. * @return bool
  29. * @throws \think\db\exception\DataNotFoundException
  30. * @throws \think\db\exception\DbException
  31. * @throws \think\db\exception\ModelNotFoundException
  32. */
  33. public function doJob($data = false, $type, array $other = [])
  34. {
  35. /** @var QueueServices $queueServices */
  36. $queueServices = app()->make(QueueServices::class);
  37. $re = true;
  38. try {
  39. switch ($type) {
  40. case 1://批量发放优惠券
  41. if (!$data) {
  42. return true;
  43. }
  44. $re = $queueServices->sendCoupon($data, $type);
  45. break;
  46. case 2://批量设置用户分组
  47. if (!$data) {
  48. return true;
  49. }
  50. $re = $queueServices->setUserGroup($data, $type);
  51. break;
  52. case 3://批量设置用户标签
  53. if (!$data) {
  54. return true;
  55. }
  56. $re = $queueServices->setUserLabel($data, $type, $other);
  57. break;
  58. case 4://批量上下架商品
  59. $re = $queueServices->setProductShow($data, $type);
  60. break;
  61. case 5://批量删除商品规格
  62. $re = $queueServices->delProductRule($type);
  63. break;
  64. case 6://批量删除用户已删除订单
  65. $re = $queueServices->delOrder($type);
  66. break;
  67. case 7://批量手动发货
  68. case 8://批量电子面单发货
  69. case 9://批量配送
  70. case 10://批量虚拟发货
  71. $re = $queueServices->orderDelivery($data, $other);
  72. break;
  73. default:
  74. $re = false;
  75. break;
  76. }
  77. } catch (\Throwable $e) {
  78. $queueName = $queueServices->queue_type_name[$type] ?? '';
  79. Log::error($queueName . '失败,原因' . $e->getMessage());
  80. $re = false;
  81. }
  82. if ($re === false) $queueServices->delWrongQueue(0, $type, false);
  83. return true;
  84. }
  85. }