Explorar el Código

提示词模板新增分类筛选和设置

lh hace 3 semanas
padre
commit
d333ca47f8

+ 9 - 0
app/Http/Controllers/PromptTemplate/PromptTemplateController.php

@@ -46,9 +46,12 @@ class PromptTemplateController extends BaseController
 
         $validator = Validator::make($data, [
             'public_type' => 'nullable|integer|in:0,1,2',
+            'cate_type' => 'nullable|integer|in:1,2',
         ], [
             'public_type.integer' => 'public_type必须为整数',
             'public_type.in' => 'public_type必须为0、1或2',
+            'cate_type.integer' => 'cate_type必须为整数',
+            'cate_type.in' => 'cate_type必须为1(资产设计)或2(分镜优化)',
         ]);
 
         if ($validator->fails()) {
@@ -74,6 +77,7 @@ class PromptTemplateController extends BaseController
             'template_prompt' => 'required|string',
             'remark' => 'nullable|string|max:500',
             'is_public' => 'nullable|integer|in:0,1',
+            'cate_type' => 'nullable|integer|in:1,2',
         ], [
             'template_name.required' => '模板名称不能为空',
             'template_name.max' => '模板名称不能超过255个字符',
@@ -81,6 +85,8 @@ class PromptTemplateController extends BaseController
             'remark.max' => '备注不能超过500个字符',
             'is_public.integer' => 'is_public必须为整数',
             'is_public.in' => 'is_public必须为0或1',
+            'cate_type.integer' => 'cate_type必须为整数',
+            'cate_type.in' => 'cate_type必须为1(资产设计)或2(分镜优化)',
         ]);
 
         if ($validator->fails()) {
@@ -106,12 +112,15 @@ class PromptTemplateController extends BaseController
             'template_name' => 'nullable|string|max:255',
             'template_prompt' => 'nullable|string',
             'remark' => 'nullable|string|max:500',
+            'cate_type' => 'nullable|integer|in:1,2',
         ], [
             'template_id.required' => '模板ID不能为空',
             'template_id.integer' => '模板ID必须为整数',
             'template_id.min' => '模板ID必须大于0',
             'template_name.max' => '模板名称不能超过255个字符',
             'remark.max' => '备注不能超过500个字符',
+            'cate_type.integer' => 'cate_type必须为整数',
+            'cate_type.in' => 'cate_type必须为1(资产设计)或2(分镜优化)',
         ]);
 
         if ($validator->fails()) {

+ 16 - 0
app/Services/PromptTemplate/PromptTemplateService.php

@@ -24,6 +24,7 @@ class PromptTemplateService
         $templateName = getProp($data, 'template_name');
         $remark = getProp($data, 'remark');
         $publicType = getProp($data, 'public_type', 2); // 0=个人库, 1=公共库, 2=所有库(默认)
+        $cateType = getProp($data, 'cate_type');
 
         $query = DB::table('mp_prompt_templates')
             ->where('cpid', $cpid)
@@ -34,6 +35,7 @@ class PromptTemplateService
                 'template_prompt', 
                 'remark',
                 'user_id',
+                'cate_type',
                 DB::raw('IF(user_id = 0, 1, 0) as is_public')
             );
 
@@ -62,6 +64,11 @@ class PromptTemplateService
             $query->where('remark', 'like', "%{$remark}%");
         }
 
+        // 分类筛选(1.资产设计 2.分镜优化)
+        if ($cateType !== null && $cateType !== '') {
+            $query->where('cate_type', (int)$cateType);
+        }
+
         // 查询所有数据,排序:个人库在前(user_id > 0),公共库在后(user_id = 0)
         $list = $query->orderByRaw('IF(user_id = 0, 1, 0) ASC')->orderBy('id', 'desc')->get();
 
@@ -84,6 +91,7 @@ class PromptTemplateService
         $templatePrompt = trim($data['template_prompt']);
         $remark = $data['remark'] ?? '';
         $isPublic = getProp($data, 'is_public', 0); // 是否创建为公共库,默认为 0(个人库)
+        $cateType = (int)getProp($data, 'cate_type', 1); // 分类:1.资产设计 2.分镜优化,默认资产设计
 
         // 如果要创建公共库数据,需要验证是否为 admin 角色
         if ($isPublic == 1) {
@@ -113,6 +121,7 @@ class PromptTemplateService
             'template_name' => $templateName,
             'template_prompt' => $templatePrompt,
             'remark' => $remark,
+            'cate_type' => $cateType,
             'created_at' => date('Y-m-d H:i:s'),
             'updated_at' => date('Y-m-d H:i:s'),
         ];
@@ -125,6 +134,7 @@ class PromptTemplateService
             'template_prompt' => $templatePrompt,
             'remark' => $remark,
             'is_public' => $isPublic,
+            'cate_type' => $cateType,
         ];
     }
 
@@ -199,6 +209,11 @@ class PromptTemplateService
             $updateData['remark'] = $data['remark'];
         }
 
+        // 分类(1.资产设计 2.分镜优化)
+        if (isset($data['cate_type']) && $data['cate_type'] !== '') {
+            $updateData['cate_type'] = (int)$data['cate_type'];
+        }
+
         DB::table('mp_prompt_templates')
             ->where('id', $templateId)
             ->update($updateData);
@@ -214,6 +229,7 @@ class PromptTemplateService
             'template_prompt' => $updatedTemplate->template_prompt,
             'remark' => $updatedTemplate->remark ?? '',
             'is_public' => $updatedTemplate->user_id == 0 ? 1 : 0,
+            'cate_type' => (int)$updatedTemplate->cate_type,
             'updated_at' => $updatedTemplate->updated_at,
         ];
     }