Просмотр исходного кода

1.资产库新增对三视图字段的兼容2.动漫对话全能模式接口增加对三视图字段的保存

lh 2 недель назад
Родитель
Сommit
2a6a6ed8fe
2 измененных файлов с 33 добавлено и 1 удалено
  1. 28 1
      app/Services/Anime/AnimeService.php
  2. 5 0
      app/Services/DeepSeek/DeepSeekService.php

+ 28 - 1
app/Services/Anime/AnimeService.php

@@ -7312,6 +7312,18 @@ class AnimeService
         if (!in_array($extension, $allowedExtensions)) {
             Utils::throwError('20003:图片格式不正确,仅支持 jpg、jpeg、png、gif、webp、bmp 格式');
         }
+
+        // 选填三视图图片地址,格式校验与 url 一致
+        $three_view_image_url = trim(getProp($data, 'three_view_image_url', ''));
+        if ($three_view_image_url) {
+            $threeViewPath = parse_url($three_view_image_url, PHP_URL_PATH);
+            $threeViewExtension = strtolower(pathinfo($threeViewPath, PATHINFO_EXTENSION));
+
+            if (!in_array($threeViewExtension, $allowedExtensions)) {
+                Utils::throwError('20003:三视图图片格式不正确,仅支持 jpg、jpeg、png、gif、webp、bmp 格式');
+            }
+        }
+
         $pic_prompt = trim(getProp($data, 'pic_prompt'));
         if (!$pic_prompt) Utils::throwError('20003:提示词不能为空');
         
@@ -7352,6 +7364,7 @@ class AnimeService
                 'level'         => $parent_level + 1,
                 'product_name'  => $product_name,
                 'url'           => $url,
+                'three_view_image_url' => $three_view_image_url,
                 'pic_prompt'    => $pic_prompt,
                 'product'       => $product,
                 'versions'      => json_encode($versions, 256),
@@ -7380,6 +7393,7 @@ class AnimeService
             'level'         => $parent_level + 1,
             'product_name'  => $product_name,
             'url'           => $url,
+            'three_view_image_url' => $three_view_image_url,
             'pic_prompt'    => $pic_prompt,
             'product'       => $product,
             'versions'      => $versions
@@ -7435,10 +7449,10 @@ class AnimeService
         // if ($exists_id && $exists_id != $id) Utils::throwError('20003:名称不能重复,请修改');
         
         // 图片地址
+        $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp'];
         $url = trim(getProp($data, 'url'));
         if ($url) {
             // 检查是否是正确的图片格式
-            $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp'];
             $urlPath = parse_url($url, PHP_URL_PATH);
             $extension = strtolower(pathinfo($urlPath, PATHINFO_EXTENSION));
             
@@ -7453,6 +7467,19 @@ class AnimeService
             
             $updateData['url'] = $url;
         }
+
+        // 三视图图片地址(选填),格式校验与 url 一致
+        $three_view_image_url = trim(getProp($data, 'three_view_image_url', ''));
+        if ($three_view_image_url) {
+            $threeViewPath = parse_url($three_view_image_url, PHP_URL_PATH);
+            $threeViewExtension = strtolower(pathinfo($threeViewPath, PATHINFO_EXTENSION));
+
+            if (!in_array($threeViewExtension, $allowedExtensions)) {
+                Utils::throwError('20003:三视图图片格式不正确,仅支持 jpg、jpeg、png、gif、webp、bmp 格式');
+            }
+
+            $updateData['three_view_image_url'] = $three_view_image_url;
+        }
         
         // 提示词
         $pic_prompt = trim(getProp($data, 'pic_prompt'));

+ 5 - 0
app/Services/DeepSeek/DeepSeekService.php

@@ -10027,6 +10027,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
                         'product' => (int)$item->product,
                         'pic_prompt' => $item->pic_prompt,
                         'url' => $item->url,
+                        'three_view_image_url' => getProp($item, 'three_view_image_url', ''),
                         'pic_task_id' => $item->pic_task_id,
                         'pic_task_status' => $item->pic_task_status,
                         'episode_numbers' => [],
@@ -10060,6 +10061,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
                             'product' => $product['product'],
                             'pic_prompt' => $product['pic_prompt'],
                             'url' => $product['url'],
+                            'three_view_image_url' => getProp($product, 'three_view_image_url', ''),
                             'pic_task_id' => $product['pic_task_id'],
                             'pic_task_status' => $product['pic_task_status'],
                             'episode_number' => $ep_num,
@@ -14254,6 +14256,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
             // 如果参考资产里有该角色,则直接使用该图片,不继续生成
             if (isset($ref_products[$role_name])) {
                 $role['url'] = isset($ref_products[$role_name]['url']) ? $ref_products[$role_name]['url'] : '';
+                $role['three_view_image_url'] = isset($ref_products[$role_name]['three_view_image_url']) ? $ref_products[$role_name]['three_view_image_url'] : '';
                 if ($role['url']) continue;
             }
             
@@ -14346,6 +14349,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
             // 如果参考资产里有该场景,则直接使用该图片,不继续生成
             if (isset($ref_products[$scene_name])) {
                 $scene['url'] = isset($ref_products[$scene_name]['url']) ? $ref_products[$scene_name]['url'] : '';
+                $scene['three_view_image_url'] = isset($ref_products[$scene_name]['three_view_image_url']) ? $ref_products[$scene_name]['three_view_image_url'] : '';
                 if ($scene['url']) continue;
             }
             
@@ -14434,6 +14438,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
             // 如果参考资产里有该道具,则直接使用该图片,不继续生成
             if (isset($ref_products[$prop_name])) {
                 $prop['url'] = isset($ref_products[$prop_name]['url']) ? $ref_products[$prop_name]['url'] : '';
+                $prop['three_view_image_url'] = isset($ref_products[$prop_name]['three_view_image_url']) ? $ref_products[$prop_name]['three_view_image_url'] : '';
                 if ($prop['url']) continue;
             }