Browse Source

新增分镜详情接口

tsurumure 2 tháng trước cách đây
mục cha
commit
fb6e6a05ed

+ 7 - 1
src/main/java/com/backendsys/modules/crt/controller/CrtDramaProjectStoryboardController.java

@@ -3,6 +3,7 @@ package com.backendsys.modules.crt.controller;
 import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.modules.common.utils.Result;
 import com.backendsys.modules.crt.entity.CrtDramaProject;
+import com.backendsys.modules.crt.entity.CrtDramaProjectStoryboard;
 import com.backendsys.modules.crt.service.CrtDramaProjectService;
 import com.backendsys.modules.crt.service.CrtDramaProjectStoryboardService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -24,7 +25,12 @@ public class CrtDramaProjectStoryboardController {
     private CrtDramaProjectStoryboardService crtDramaProjectStoryboardService;
 
 
-    // 分镜列表 (36.2.1)
+    @Operation(summary = "获取分镜详情")
+    @PreAuthorize("@sr.hasPermission('36.2.1')")
+    @GetMapping("/api/crt/drama/getStoryboard")
+    public Result getStoryboard(@Validated(CrtDramaProjectStoryboard.StoryboardDetail.class) CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
+        return Result.success().put("data", crtDramaProjectStoryboardService.selectCrtDramaProjectStoryboardDetail(crtDramaProjectStoryboard));
+    }
 
     // { drama_project_id }
     @Operation(summary = "创建分镜")

+ 5 - 0
src/main/java/com/backendsys/modules/crt/entity/CrtDramaProjectStoryboard.java

@@ -3,6 +3,7 @@ package com.backendsys.modules.crt.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 @Data
@@ -10,6 +11,7 @@ import lombok.Data;
 public class CrtDramaProjectStoryboard {
 
     public static interface Detail{}
+    public static interface StoryboardDetail{}
     public static interface Create{}
     public static interface Update{}
     public static interface Delete{}
@@ -18,7 +20,10 @@ public class CrtDramaProjectStoryboard {
     private Long id;
 
     private Long user_id;
+
+    @NotNull(message = "项目ID不能为空", groups = { StoryboardDetail.class })
     private Long drama_project_id;                  // 项目ID
+    @NotNull(message = "集数不能为空", groups = { StoryboardDetail.class })
     private Integer episode_num;                    // 集数 (不超过999集)
     private Integer sort;                           // 排序
 

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

@@ -2,11 +2,16 @@ 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 java.util.Map;
 
 public interface CrtDramaProjectStoryboardService {
 
+    // 获取分镜详情
+    Map<String, Object> selectCrtDramaProjectStoryboardDetail(CrtDramaProjectStoryboard crtDramaProjectStoryboard);
+
     // 创建分镜
     Map<String, Object> createStoryboard(CrtDramaProject crtDramaProject);
 

+ 26 - 0
src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectStoryboardServiceImpl.java

@@ -6,11 +6,15 @@ import com.backendsys.modules.crt.dao.CrtDramaProjectStoryboardDao;
 import com.backendsys.modules.crt.entity.CrtDramaProject;
 import com.backendsys.modules.crt.entity.CrtDramaProjectStoryboard;
 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;
 
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 @Service
@@ -21,6 +25,28 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
     @Autowired
     private CrtDramaProjectStoryboardDao crtDramaProjectStoryboardDao;
 
+    /**
+     * 获取分镜详情
+     */
+    @Override
+    public Map<String, Object> selectCrtDramaProjectStoryboardDetail(CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
+
+        CrtDramaProject crtDramaProject = crtDramaProjectDao.selectById(crtDramaProjectStoryboard.getDrama_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());
+        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;
+    }
+
     /**
      * 创建分镜
      */