浏览代码

修改分集主体、场景和道具新增对timbre_url的兼容

lh 2 天之前
父节点
当前提交
4d5aa27887
共有 1 个文件被更改,包括 18 次插入0 次删除
  1. 18 0
      app/Services/Anime/AnimeService.php

+ 18 - 0
app/Services/Anime/AnimeService.php

@@ -1208,6 +1208,7 @@ class AnimeService
                         $pic_prompt = getProp($target_roles, 'pic_prompt', '');
                         $pic_prompt = getProp($target_roles, 'pic_prompt', '');
                         $url = getProp($target_roles, 'url', '');
                         $url = getProp($target_roles, 'url', '');
                         $three_view_image_url = trim(getProp($target_roles, 'three_view_image_url', ''));
                         $three_view_image_url = trim(getProp($target_roles, 'three_view_image_url', ''));
+                        $timbre_url = trim(getProp($target_roles, 'timbre_url', ''));
                         // 兼容 versions 传入数组或 JSON 字符串
                         // 兼容 versions 传入数组或 JSON 字符串
                         $versions = getProp($target_roles, 'versions', null);
                         $versions = getProp($target_roles, 'versions', null);
                         if (is_string($versions) && $versions !== '') {
                         if (is_string($versions) && $versions !== '') {
@@ -1268,6 +1269,10 @@ class AnimeService
                             if (is_array($target_roles) && array_key_exists('three_view_image_url', $target_roles)) {
                             if (is_array($target_roles) && array_key_exists('three_view_image_url', $target_roles)) {
                                 $updateData['three_view_image_url'] = trim(getProp($target_roles, 'three_view_image_url', ''));
                                 $updateData['three_view_image_url'] = trim(getProp($target_roles, 'three_view_image_url', ''));
                             }
                             }
+                            // 显式传入音色(含空值)时同步写入,空值表示清除该资产的音色
+                            if (is_array($target_roles) && array_key_exists('timbre_url', $target_roles)) {
+                                $updateData['timbre_url'] = trim(getProp($target_roles, 'timbre_url', ''));
+                            }
                             
                             
                             // 处理versions字段,显式传入数组(含空数组)时覆盖
                             // 处理versions字段,显式传入数组(含空数组)时覆盖
                             if (is_array($versions)) {
                             if (is_array($versions)) {
@@ -1293,6 +1298,7 @@ class AnimeService
                                 'product_name' => $product_name,
                                 'product_name' => $product_name,
                                 'url' => $url,
                                 'url' => $url,
                                 'three_view_image_url' => $three_view_image_url,
                                 'three_view_image_url' => $three_view_image_url,
+                                'timbre_url' => $timbre_url,
                                 'pic_prompt' => $pic_prompt,
                                 'pic_prompt' => $pic_prompt,
                                 'versions' => is_array($versions) ? json_encode($versions, 256) : '[]',
                                 'versions' => is_array($versions) ? json_encode($versions, 256) : '[]',
                                 'sort_order' => time(),
                                 'sort_order' => time(),
@@ -1442,6 +1448,7 @@ class AnimeService
                         $pic_prompt = getProp($target_scenes, 'pic_prompt', '');
                         $pic_prompt = getProp($target_scenes, 'pic_prompt', '');
                         $url = getProp($target_scenes, 'url', '');
                         $url = getProp($target_scenes, 'url', '');
                         $three_view_image_url = trim(getProp($target_scenes, 'three_view_image_url', ''));
                         $three_view_image_url = trim(getProp($target_scenes, 'three_view_image_url', ''));
+                        $timbre_url = trim(getProp($target_scenes, 'timbre_url', ''));
                         // 兼容 versions 传入数组或 JSON 字符串
                         // 兼容 versions 传入数组或 JSON 字符串
                         $versions = getProp($target_scenes, 'versions', null);
                         $versions = getProp($target_scenes, 'versions', null);
                         if (is_string($versions) && $versions !== '') {
                         if (is_string($versions) && $versions !== '') {
@@ -1502,6 +1509,10 @@ class AnimeService
                             if (is_array($target_scenes) && array_key_exists('three_view_image_url', $target_scenes)) {
                             if (is_array($target_scenes) && array_key_exists('three_view_image_url', $target_scenes)) {
                                 $updateData['three_view_image_url'] = trim(getProp($target_scenes, 'three_view_image_url', ''));
                                 $updateData['three_view_image_url'] = trim(getProp($target_scenes, 'three_view_image_url', ''));
                             }
                             }
+                            // 显式传入音色(含空值)时同步写入,空值表示清除该资产的音色
+                            if (is_array($target_scenes) && array_key_exists('timbre_url', $target_scenes)) {
+                                $updateData['timbre_url'] = trim(getProp($target_scenes, 'timbre_url', ''));
+                            }
                             
                             
                             // 处理versions字段,显式传入数组(含空数组)时覆盖
                             // 处理versions字段,显式传入数组(含空数组)时覆盖
                             if (is_array($versions)) {
                             if (is_array($versions)) {
@@ -1527,6 +1538,7 @@ class AnimeService
                                 'product_name' => $product_name,
                                 'product_name' => $product_name,
                                 'url' => $url,
                                 'url' => $url,
                                 'three_view_image_url' => $three_view_image_url,
                                 'three_view_image_url' => $three_view_image_url,
+                                'timbre_url' => $timbre_url,
                                 'pic_prompt' => $pic_prompt,
                                 'pic_prompt' => $pic_prompt,
                                 'versions' => is_array($versions) ? json_encode($versions, 256) : '[]',
                                 'versions' => is_array($versions) ? json_encode($versions, 256) : '[]',
                                 'sort_order' => time(),
                                 'sort_order' => time(),
@@ -1676,6 +1688,7 @@ class AnimeService
                         $pic_prompt = getProp($target_props, 'pic_prompt', '');
                         $pic_prompt = getProp($target_props, 'pic_prompt', '');
                         $url = getProp($target_props, 'url', '');
                         $url = getProp($target_props, 'url', '');
                         $three_view_image_url = trim(getProp($target_props, 'three_view_image_url', ''));
                         $three_view_image_url = trim(getProp($target_props, 'three_view_image_url', ''));
+                        $timbre_url = trim(getProp($target_props, 'timbre_url', ''));
                         // 兼容 versions 传入数组或 JSON 字符串
                         // 兼容 versions 传入数组或 JSON 字符串
                         $versions = getProp($target_props, 'versions', null);
                         $versions = getProp($target_props, 'versions', null);
                         if (is_string($versions) && $versions !== '') {
                         if (is_string($versions) && $versions !== '') {
@@ -1736,6 +1749,10 @@ class AnimeService
                             if (is_array($target_props) && array_key_exists('three_view_image_url', $target_props)) {
                             if (is_array($target_props) && array_key_exists('three_view_image_url', $target_props)) {
                                 $updateData['three_view_image_url'] = trim(getProp($target_props, 'three_view_image_url', ''));
                                 $updateData['three_view_image_url'] = trim(getProp($target_props, 'three_view_image_url', ''));
                             }
                             }
+                            // 显式传入音色(含空值)时同步写入,空值表示清除该资产的音色
+                            if (is_array($target_props) && array_key_exists('timbre_url', $target_props)) {
+                                $updateData['timbre_url'] = trim(getProp($target_props, 'timbre_url', ''));
+                            }
                             
                             
                             // 处理versions字段,显式传入数组(含空数组)时覆盖
                             // 处理versions字段,显式传入数组(含空数组)时覆盖
                             if (is_array($versions)) {
                             if (is_array($versions)) {
@@ -1761,6 +1778,7 @@ class AnimeService
                                 'product_name' => $product_name,
                                 'product_name' => $product_name,
                                 'url' => $url,
                                 'url' => $url,
                                 'three_view_image_url' => $three_view_image_url,
                                 'three_view_image_url' => $three_view_image_url,
+                                'timbre_url' => $timbre_url,
                                 'pic_prompt' => $pic_prompt,
                                 'pic_prompt' => $pic_prompt,
                                 'versions' => is_array($versions) ? json_encode($versions, 256) : '[]',
                                 'versions' => is_array($versions) ? json_encode($versions, 256) : '[]',
                                 'sort_order' => time(),
                                 'sort_order' => time(),