[ 'app_id' => $appId, 'title' => $title, 'seq_num' => $seqNum, 'cover_list' => $coverList, 'year' => $year, 'album_status' => $albumStatus, 'recommendation' => $recommendation, 'desp' => $desp, 'tag_list' => $tagList, 'qualification' => $qualification, 'record_info' => $recordInfo, 'record_audit_info' => $recordAuditInfo, 'episode_info_list' => $episodeInfoList ], 'exception' => [ 'file' => $exception->getFile(), 'line' => $exception->getLine(), 'message' => $exception->getMessage(), 'trace' => $exception->getTraceAsString() ] ]); $errno = 400; return false; } } public static function albumParamsValid($appId, $title, $seqNum, $coverList, $year, $albumStatus, $recommendation , $desp, $tagList, $qualification, &$errcode) { # 验证必要参数是否为空 if(empty($appId) || empty($title) || empty($seqNum) || empty($coverList) || empty($year) || empty($albumStatus)|| empty($recommendation) || empty($desp) || empty($tagList) || empty($qualification)) { $errcode = 1102; return false; } # 验证参数内容 return true; } public static function recordAuditInfoParamsValid($recordAuditInfo, &$error) { if(!isset($recordAuditInfo['record_material'])) { $error = 1102; return false; } if(isset($recordAuditInfo['broadcast_record_info']) && (!isset($recordAuditInfo['broadcast_record_info']['record_type']) || !isset($recordAuditInfo['broadcast_record_info']['broadcast_record_number']))) { $error = 1102; return false; } if(empty($recordAuditInfo['record_material']['name']) || empty($recordAuditInfo['record_material']['duration']) || empty($recordAuditInfo['record_material']['seqs_count']) || empty($recordAuditInfo['record_material']['production_organisation']) || empty($recordAuditInfo['record_material']['director']) || empty($recordAuditInfo['record_material']['producer']) || empty($recordAuditInfo['record_material']['actor']) || empty($recordAuditInfo['record_material']['summary']) || empty($recordAuditInfo['record_material']['cost_distribution_uri']) || empty($recordAuditInfo['record_material']['assurance_uri']) || empty($recordAuditInfo['record_material']['playlet_production_cost']) ){ $error = 1102; return false; } return true; } public static function episodeParamsValid($episodeInfoList, &$errcode) { foreach($episodeInfoList as $episodeInfo) { if(empty($episodeInfo['title']) || empty($episodeInfo['seq']) || empty($episodeInfo['cover_list']) || empty($episodeInfo['open_video_id']) || !is_array($episodeInfo['cover_list'])) { $errcode = 1102; return false; } } return true; } public static function editAlbum($appId, $albumId, $title, $seqNum, $coverList, $year, $albumStatus, $recommendation, $desp , $tagList, $qualification, $recordInfo, $recordAuditInfo, $episodeInfoList, &$errno) { $tagList = json_decode($tagList, 1); $coverList = json_decode($coverList, 1); # 短剧参数验证 $albumParamsValidStatus = AlbumManageService::albumParamsValid($appId, $title, $seqNum, $coverList, $year, $albumStatus, $recommendation , $desp, $tagList, $qualification, $errno); if(!$albumParamsValidStatus) return false; # 剧集参数验证 $episodeInfoList = json_decode($episodeInfoList, 1); $episodeParamsValidStatus = AlbumManageService::episodeParamsValid($episodeInfoList, $errno); if(!$episodeParamsValidStatus) return false; # 如果备案审核信息不为空,校验备案信息 if (!empty($recordAuditInfo)) { $recordAuditInfo = json_decode($recordAuditInfo, 1); $recordAuditInfoParamsValidStatus = AlbumManageService::recordAuditInfoParamsValid($recordAuditInfo, $errno); if (!$recordAuditInfoParamsValidStatus) return false; } # 调用抖音接口 $responseData = DouYinApi::editAlbum($appId, $albumId, $title, $seqNum, $coverList, $year, $albumStatus, $recommendation , $desp, $tagList, $qualification, $recordInfo, $recordAuditInfo, $episodeInfoList); $albumId = $responseData['album_id'] ?? ''; $version = $responseData['version'] ?? 0; $episodeIdMap = $responseData['episode_id_map'] ?? []; if(empty($episodeIdMap)) { $errno = 2401; return false; } # 调用成功后将数据保存到系统 // 更新短剧信息 $albumSaveRes = Album::saveData($appId, $title, $seqNum, $coverList, $year, $albumStatus, $recommendation, $desp , $tagList, $qualification, $albumId); // 更新剧集信息 $episodeSaveStatus = Episode::saveData($appId, $albumId, $episodeInfoList, $episodeIdMap); if(!$albumStatus || !$episodeSaveStatus){ $errno = 400; return false; } return true; } public static function bindPage($appId, $albumId, $episodeIdList, &$errno) { # 查询剧集基础信息 $episodeInfoList = Episode::getInfoList($appId, $albumId, $episodeIdList); $path = self::BIND_PAGE; # 如果要绑定多个剧集 foreach($episodeIdList as $episodeId) { $episodeInfo = $episodeInfoList->where('episode_id', $episodeId)->first(); $seq = $episodeInfo->seq ?? null; if(empty($seq)) { continue; } $params = [ ['key' => 'album_id', 'value' => strval($albumId)], ['key' => 'episode_id', 'value' => strval($episodeId)], ['key' => 'seq', 'value' => strval($seq)] ]; $singleSchemaBind = [ 'album_id' => $albumId, 'episode_id' => $episodeId, 'path' => $path, 'params' => $params ]; $responseData = DouYinApi::bindPage($appId, $singleSchemaBind, 1); print_r($responseData); } } public static function albumAuth($maAppId, $appIdList, $albumId, $increment, &$error) { $responseData = DouYinApi::albumAuth($maAppId, $appIdList, $albumId, $increment); print_r($responseData); } public static function albumToExamine($appId, $albumId, &$error) { $responseData = DouYinApi::albumToExamine($appId, $albumId); print_r($responseData); } public static function albumOnline($appId, $albumId, $operate, $version, $errcode) { $responseData = DouYinApi::albumOnline($appId, $albumId, $operate, $version); print_r($responseData); } public static function albumFetch($appId, $queryType, $batchQuery, $singleQuery, $detailQuery) { $responseData = DouYinApi::albumFetch($appId, $queryType, $batchQuery, $singleQuery, $detailQuery); print_r($responseData); } public static function albumList($appId, $keyword, $page, $pageSize) { list($list, $count) = Album::getList([ 'app_id' => $appId, 'keyword' => $keyword ], $page, $pageSize); # 数据格式化 foreach($list as $info) { # 封面图处理 $coverList = explode(',', $info->cover_list); # 根据封面id获取封面url $picInfo = Material::getPicList($appId, $coverList); $coverInfo = $picInfo->first(); $info->cover_url = $coverInfo->oss_url ?? ''; } return [$list, $count]; } public static function albumDetail($albumId) { } }