StatisticsHandle.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace common\logic\statistics;
  3. use common\enums\EventNameEnum;
  4. use common\enums\RabbitMqEnum;
  5. use common\helpers\ErrHelper;
  6. use Exception;
  7. use Yii;
  8. /**
  9. * 用户数据处理
  10. * @Author lun
  11. * @DateTime 2021-11-16 19:07:32
  12. * @copyright: Copyright (c) 2020 广东七件事集团
  13. */
  14. class StatisticsHandle
  15. {
  16. /**
  17. * 订单支付统计
  18. * @Author: lun
  19. * @DateTime: 2021/11/16 0016 10:51
  20. * @Copyright: copyright (c) 2021 广东七件事集团
  21. * @param string $type
  22. * @param array $params
  23. */
  24. public static function execute($type, $params)
  25. {
  26. $handler_class = Statistics::class;
  27. switch ($type) {
  28. case EventNameEnum::ORDER_CREATE:
  29. $method = 'order_create';
  30. break;
  31. case EventNameEnum::ORDER_PAY:
  32. $method = 'order_pay';
  33. break;
  34. case EventNameEnum::ORDER_FINISH:
  35. $method = 'order_finish';
  36. break;
  37. case EventNameEnum::ORDER_CLOSE:
  38. $method = 'order_close';
  39. break;
  40. case EventNameEnum::ORDER_REFUND:
  41. $method = 'order_refund';
  42. break;
  43. case EventNameEnum::USER_REGISTER:
  44. $method = 'user_register';
  45. break;
  46. }
  47. (new $handler_class)->$method($params);
  48. }
  49. /**
  50. * 异步执行
  51. *
  52. * @param array $params
  53. * [
  54. * 'type' => string,
  55. * 'params' => array
  56. * ]
  57. * @return void
  58. */
  59. public function handleSync(array $params)
  60. {
  61. try {
  62. $type = $params['type'];
  63. $data = $params['params'];
  64. static::execute($type, $data);
  65. } catch (Exception $e) {
  66. ErrHelper::log('异步执行数据统计错误', $e);
  67. }
  68. return true;
  69. }
  70. }