ExternalPlatformLogic.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace app\common\logic;
  3. use app\common\model\external\ExternalPlatform;
  4. use app\common\model\recharge\RechargeOrder;
  5. use app\common\model\works\ServiceWork;
  6. use think\facade\Log;
  7. class ExternalPlatformLogic extends BaseLogic
  8. {
  9. /**
  10. * @notes 根据场景执行任务
  11. */
  12. public static function handleByScene($params)
  13. {
  14. try {
  15. switch ($params['send_code']){
  16. case 1001:
  17. case 1002:
  18. case 1003:
  19. case 1005:
  20. case 1006:
  21. self::generalServiceWork($params['send_code'],$params['params']);
  22. break;
  23. default:
  24. throw new \Exception('场景不存在');
  25. }
  26. return true;
  27. } catch (\Exception $e) {
  28. Log::info('ExternalPlatform-error:'.$e->getMessage());
  29. self::setError($e->getMessage());
  30. return false;
  31. }
  32. }
  33. /**
  34. * 工单统一处理
  35. * @param $send_code
  36. * @param $params
  37. * @return bool
  38. * @author liugc <466014217@qq.com>
  39. * @date 2025/4/17 14:12
  40. */
  41. private static function generalServiceWork($send_code,$params)
  42. {
  43. try {
  44. $work = ServiceWork::where(['id'=>$params['work_id']])->findOrEmpty();
  45. if($work->isEmpty()){
  46. throw new \Exception('工单不存在');
  47. }
  48. if($work->external_platform_id > 0){
  49. $send_url = env('internal_api.api_url_host').'platf/performanceNotice';
  50. $data = [
  51. 'external_platform_id'=> $work->external_platform_id,
  52. 'send_code'=> $send_code,
  53. 'work_sn'=> $work->work_sn
  54. ];
  55. // 通过内部SDK服务 对外通知
  56. $res = http_request($send_url,http_build_query($data));
  57. Log::info('generalServiceWork:'
  58. .'url:'.$send_url
  59. .'|data:'.json_encode($data,JSON_UNESCAPED_UNICODE)
  60. .'|res:'.json_encode([$res],JSON_UNESCAPED_UNICODE)
  61. );
  62. }
  63. return true;
  64. } catch (\Exception $e) {
  65. Log::info('generalServiceWork-error:'.$e->getMessage());
  66. return false;
  67. }
  68. }
  69. }