Sfoglia il codice sorgente

新增分镜详情与配置

tsurumure 2 mesi fa
parent
commit
9646b25226

+ 3 - 3
db/crt_drama_project_settings.sql

@@ -4,8 +4,8 @@ Source Database: backendsys
 Date: 2025/06/03 10:09:22
 */
 
-DROP TABLE IF EXISTS `drama_project_settings`;
-CREATE TABLE `drama_project_settings` (
+DROP TABLE IF EXISTS `crt_drama_project_settings`;
+CREATE TABLE `crt_drama_project_settings` (
     PRIMARY KEY (`id`),
     `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
     `drama_project_id` BIGINT NOT NULL COMMENT '项目ID',
@@ -24,7 +24,7 @@ CREATE TABLE `drama_project_settings` (
  当配置类型为生视频配置时,aspect_ratio 为必填项
  */
 
-INSERT INTO drama_project_settings(drama_project_id, drama_project_setting_type, aspect_ratio, model_id, lora_style_id, lora_style_strength) VALUES
+INSERT INTO crt_drama_project_settings(drama_project_id, drama_project_setting_type, aspect_ratio, model_id, lora_style_id, lora_style_strength) VALUES
     (1, 1, '16:9', 1, 1, 1),
     (1, 2, '16:9', null, null, null)
 ;

+ 9 - 0
src/main/java/com/backendsys/modules/crt/dao/CrtDramaProjectSettingsDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.modules.crt.dao;
+
+import com.backendsys.modules.crt.entity.CrtDramaProjectSettings;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CrtDramaProjectSettingsDao extends BaseMapper<CrtDramaProjectSettings> {
+}

+ 15 - 0
src/main/java/com/backendsys/modules/crt/entity/StoryboardResponse.java

@@ -0,0 +1,15 @@
+package com.backendsys.modules.crt.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class StoryboardResponse {
+
+    private String project_name;                                // 项目名称
+    private List<CrtDramaProjectStoryboard> storyboard_list;    // 分镜列表
+    private CrtDramaProjectSettings settings_image;             // 图片设置
+    private CrtDramaProjectSettings settings_video;             // 视频设置
+
+}

+ 4 - 0
src/main/java/com/backendsys/modules/crt/service/CrtDramaProjectSettingsService.java

@@ -0,0 +1,4 @@
+package com.backendsys.modules.crt.service;
+
+public interface CrtDramaProjectSettingsService {
+}

+ 2 - 2
src/main/java/com/backendsys/modules/crt/service/CrtDramaProjectStoryboardService.java

@@ -3,14 +3,14 @@ package com.backendsys.modules.crt.service;
 
 import com.backendsys.modules.crt.entity.CrtDramaProject;
 import com.backendsys.modules.crt.entity.CrtDramaProjectStoryboard;
-import com.backendsys.utils.response.PageEntity;
+import com.backendsys.modules.crt.entity.StoryboardResponse;
 
 import java.util.Map;
 
 public interface CrtDramaProjectStoryboardService {
 
     // 获取分镜详情
-    Map<String, Object> selectCrtDramaProjectStoryboardDetail(CrtDramaProjectStoryboard crtDramaProjectStoryboard);
+    StoryboardResponse selectCrtDramaProjectStoryboardDetail(CrtDramaProjectStoryboard crtDramaProjectStoryboard);
 
     // 创建分镜
     Map<String, Object> createStoryboard(CrtDramaProject crtDramaProject);

+ 16 - 0
src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectSettingsServiceImpl.java

@@ -0,0 +1,16 @@
+package com.backendsys.modules.crt.service.impl;
+
+import com.backendsys.modules.crt.dao.CrtDramaProjectSettingsDao;
+import com.backendsys.modules.crt.service.CrtDramaProjectSettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CrtDramaProjectSettingsServiceImpl implements CrtDramaProjectSettingsService {
+
+    @Autowired
+    private CrtDramaProjectSettingsDao crtDramaProjectSettingsDao;
+
+
+
+}

+ 31 - 12
src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectStoryboardServiceImpl.java

@@ -2,13 +2,13 @@ package com.backendsys.modules.crt.service.impl;
 
 import com.backendsys.exception.CustException;
 import com.backendsys.modules.crt.dao.CrtDramaProjectDao;
+import com.backendsys.modules.crt.dao.CrtDramaProjectSettingsDao;
 import com.backendsys.modules.crt.dao.CrtDramaProjectStoryboardDao;
 import com.backendsys.modules.crt.entity.CrtDramaProject;
+import com.backendsys.modules.crt.entity.CrtDramaProjectSettings;
 import com.backendsys.modules.crt.entity.CrtDramaProjectStoryboard;
+import com.backendsys.modules.crt.entity.StoryboardResponse;
 import com.backendsys.modules.crt.service.CrtDramaProjectStoryboardService;
-import com.backendsys.utils.response.PageEntity;
-import com.backendsys.utils.response.PageInfoResult;
-import com.backendsys.utils.v2.PageUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,28 +23,47 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
     @Autowired
     private CrtDramaProjectDao crtDramaProjectDao;
     @Autowired
+    private CrtDramaProjectSettingsDao crtDramaProjectSettingsDao;
+    @Autowired
     private CrtDramaProjectStoryboardDao crtDramaProjectStoryboardDao;
 
     /**
      * 获取分镜详情
      */
     @Override
-    public Map<String, Object> selectCrtDramaProjectStoryboardDetail(CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
+    public StoryboardResponse selectCrtDramaProjectStoryboardDetail(CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
+
+        Integer episode_num = crtDramaProjectStoryboard.getEpisode_num();
+        Long project_id = crtDramaProjectStoryboard.getDrama_project_id();
 
-        CrtDramaProject crtDramaProject = crtDramaProjectDao.selectById(crtDramaProjectStoryboard.getDrama_project_id());
+        CrtDramaProject crtDramaProject = crtDramaProjectDao.selectById(project_id);
         if (crtDramaProject == null) throw new CustException("项目不存在");
 
         LambdaQueryWrapper<CrtDramaProjectStoryboard> wrapperStoryboard = new LambdaQueryWrapper<>();
-        wrapperStoryboard.eq(CrtDramaProjectStoryboard::getDrama_project_id, crtDramaProjectStoryboard.getDrama_project_id());
-        wrapperStoryboard.eq(CrtDramaProjectStoryboard::getEpisode_num, crtDramaProjectStoryboard.getEpisode_num());
+        wrapperStoryboard.eq(CrtDramaProjectStoryboard::getDrama_project_id, project_id);
+        wrapperStoryboard.eq(CrtDramaProjectStoryboard::getEpisode_num, episode_num);
         List<CrtDramaProjectStoryboard> storyboardList = crtDramaProjectStoryboardDao.selectList(wrapperStoryboard);
         if (storyboardList.isEmpty()) throw new CustException("分镜不存在");
 
-        Map<String, Object> resp = new LinkedHashMap<>();
-        resp.put("project_name", crtDramaProject.getProject_name());
-        resp.put("storyboard_list", storyboardList);
-
-        return resp;
+        // 查询项目设置
+        LambdaQueryWrapper<CrtDramaProjectSettings> wrapperSettings = new LambdaQueryWrapper<>();
+        wrapperSettings.eq(CrtDramaProjectSettings::getDrama_project_id, project_id);
+        List<CrtDramaProjectSettings> settingsList = crtDramaProjectSettingsDao.selectList(wrapperSettings);
+
+        // 获取项目详情与分镜列表
+        StoryboardResponse storyboardResponse = new StoryboardResponse();
+        storyboardResponse.setProject_name(crtDramaProject.getProject_name());
+        storyboardResponse.setStoryboard_list(storyboardList);
+
+        if (settingsList.size() > 0) {
+            settingsList.stream().forEach(settings -> {
+                // 项目配置类型 (1: 生图配置, 2: 生视频配置)
+                if (settings.getDrama_project_setting_type() == 1) storyboardResponse.setSettings_image(settings);
+                if (settings.getDrama_project_setting_type() == 2) storyboardResponse.setSettings_video(settings);
+            });
+        }
+
+        return storyboardResponse;
     }
 
     /**