ExternalPlatformLogic.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 1002:
  17. case 1003:
  18. case 1005:
  19. case 1006:
  20. self::generalServiceWork($params['send_code'],$params['params']);
  21. break;
  22. default:
  23. throw new \Exception('场景不存在');
  24. }
  25. return true;
  26. } catch (\Exception $e) {
  27. Log::info('ExternalPlatform-error:'.$e->getMessage());
  28. self::setError($e->getMessage());
  29. return false;
  30. }
  31. }
  32. /**
  33. * 工单统一处理
  34. * @param $send_code
  35. * @param $params
  36. * @return bool
  37. * @author liugc <466014217@qq.com>
  38. * @date 2025/4/17 14:12
  39. */
  40. private static function generalServiceWork($send_code,$params)
  41. {
  42. try {
  43. $work = ServiceWork::where(['id'=>$params['work_id']])->findOrEmpty();
  44. if($work->isEmpty()){
  45. throw new \Exception('工单不存在');
  46. }
  47. if($work->external_platform_id > 0){
  48. $send_url = env('internal_api.api_url_host').'platf/performanceNotice';
  49. $data = [
  50. 'external_platform_id'=> $work->external_platform_id,
  51. 'send_code'=> $send_code,
  52. 'work_sn'=> $work->work_sn
  53. ];
  54. // 通过内部SDK服务 对外通知
  55. $res = http_request($send_url,http_build_query($data));
  56. Log::info('generalServiceWork:'
  57. .'url:'.$send_url
  58. .'|data:'.json_encode($data,JSON_UNESCAPED_UNICODE)
  59. .'|res:'.json_encode([$res],JSON_UNESCAPED_UNICODE)
  60. );
  61. }
  62. return true;
  63. } catch (\Exception $e) {
  64. Log::info('generalServiceWork-error:'.$e->getMessage());
  65. return false;
  66. }
  67. }
  68. }