UpdateController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Api\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use Storage;
  5. use App\Model\Series;
  6. use App\Model\MoviePushLog;
  7. use ArrayToXml;
  8. use Illuminate\Http\Request;
  9. class UpdateController extends Controller
  10. {
  11. public function gxyd(Request $request)
  12. {
  13. //获取所有剧集
  14. if($request->input("series_id")){
  15. $series = Series::where("series_id",$request->input("series_id"))->select('series_id', 'series_name', 'description', 'release_year', 'orgair_date', 'volumn_count')->get();
  16. if($series->isEmpty()){
  17. echo "没有对应剧集";
  18. return;
  19. }
  20. }else{
  21. //获取已经推送的剧集ID
  22. $series = MoviePushLog::select("series_id", "series_name")->distinct("series_name")->whereNotNull("view_url")->get();
  23. foreach ($series as $k => $v) {
  24. $ids[] = Series::where("series_name", $v->series_name)->value("series_id");
  25. }
  26. $ids = array_filter($ids);
  27. if(count($ids) < 0){
  28. echo "没有对应剧集";
  29. return;
  30. }
  31. $series = Series::select('series_id', 'series_name', 'description', 'release_year', 'orgair_date', 'volumn_count')->whereIn("series_id", $ids)->get();
  32. }
  33. foreach ($series as $k => $v) {
  34. $series_id = 'HC_v1_Series_' . str_pad((int) $v->series_id, 10, "0", STR_PAD_LEFT);
  35. $http_picurl = "http://183.6.116.30:10060/media/gx/yd/{$v->series_id}.jpg";
  36. $series_data = [
  37. '_attributes' => [
  38. 'Action' => 'UPDATE',
  39. 'Code' => $series_id,
  40. 'ElementType' => 'Series',
  41. 'ID' => $series_id,
  42. ],
  43. 'Property' => [
  44. ['_attributes'=>['Name'=>'Name'],'_cdata'=>$v->series_name],
  45. ['_attributes'=>['Name'=>'LicensingWindowStart'],'_cdata'=>'20181009120000'],
  46. ['_attributes'=>['Name'=>'LicensingWindowEnd'],'_cdata'=>'20381009120000'],
  47. ['_attributes'=>['Name'=>'Code'],'_cdata'=>$series_id],
  48. ['_attributes'=>['Name'=>'Description'],'_cdata'=> $v->description],
  49. ['_attributes'=>['Name'=>'Language'],'_cdata'=>'普通话'],
  50. ['_attributes'=>['Name'=>'Definition'],'_cdata'=>'HD'],
  51. ['_attributes'=>['Name'=>'IsCharge'],'_cdata'=>'0'],
  52. ['_attributes'=>['Name'=>'Definition'],'_cdata'=>'HD'],
  53. ['_attributes'=>['Name'=>'PictureURL1'],'_cdata'=>$http_picurl],
  54. ['_attributes'=>['Name'=>'ProgramType'],'_cdata'=>'体育'],
  55. ['_attributes'=>['Name'=>'ProgramType2'],'_cdata'=>'游戏竞技'],
  56. ['_attributes'=>['Name'=>'Score'],'_cdata'=>'8.0'],
  57. ['_attributes'=>['Name'=>'ActorDisplay'],'_cdata'=>'未知'],
  58. ['_attributes'=>['Name'=>'WriterDisplay'],'_cdata'=>'未知'],
  59. ['_attributes'=>['Name'=>'OriginalCountry'],'_cdata'=>'中国大陆'],
  60. ['_attributes'=>['Name'=>'ReleaseYear'],'_cdata'=>$v->release_year],
  61. ['_attributes'=>['Name'=>'OrgAirDate'],'_cdata'=>$v->orgair_date],
  62. ['_attributes'=>['Name'=>'VolumnCount'],'_cdata'=> (int) $v->volumn_count],
  63. ['_attributes'=>['Name'=>'Duration'],'_cdata'=> (int) $v->duration],
  64. ],
  65. ];
  66. //生成 XML 信息
  67. $root = [
  68. '_attributes' => [
  69. 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
  70. 'BizDomain' => 2,
  71. ],
  72. 'rootElementName' => 'ADI',
  73. ];
  74. $objects = array();
  75. $objects['Object'][] = $series_data;
  76. $all_data = ["Objects"=>$objects];
  77. $result = ArrayToXml::convert($all_data,$root,true, 'utf-8');
  78. //上传XML
  79. file_put_contents("ftp://gzhc:GZhc2018@183.6.116.30:22111/media/gx/yd/pushxml/update_series_{$v->series_id}.xml", $result);
  80. $http_xml_file = "http://183.6.116.30:10060/media/gx/yd/pushxml/update_series_{$v->series_id}.xml";
  81. $ftp_xml_file = "ftp://gzhc:GZhc2018@183.6.116.30:22111/media/gx/yd/pushxml/update_series_{$v->series_id}.xml";
  82. //通知获取XML
  83. $wsdl_location = 'http://117.169.11.222:9000/ott4__gxyst.wsdl';
  84. $params = array(
  85. 'CSPID' =>'GX-DJBL',
  86. 'LSPID' =>'JDGX_TV_COS',
  87. 'CorrelateID' => $series_id,
  88. 'CmdFileURL' => $ftp_xml_file,
  89. );
  90. ini_set('display_errors', true);
  91. ini_set("soap.wsdl_cache_enabled", "0");
  92. $client = new \SoapClient($wsdl_location, array('encoding' => 'UTF-8'));
  93. $client->soap_defencoding = 'UTF-8';
  94. $client->xml_encoding = 'UTF-8';
  95. $result = $client->ExecCmd($params['CSPID'], $params['LSPID'], $params['CorrelateID'], $params['CmdFileURL']);
  96. }
  97. echo "处理完成";
  98. }
  99. }