Browse Source

Dev drama project

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

+ 32 - 0
src/main/java/com/backendsys/modules/crt/controller/CrtDramaProjectController.java

@@ -0,0 +1,32 @@
+package com.backendsys.modules.crt.controller;
+
+import com.backendsys.modules.cms.article.entity.ArticleCategory;
+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.service.CrtDramaProjectService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Validated
+@RestController
+@Tag(name = "短剧创作-项目管理")
+public class CrtDramaProjectController {
+
+    @Autowired
+    private CrtDramaProjectService crtDramaProjectService;
+
+    @Operation(summary = "获取短剧创作-项目列表 (我的)")
+//    @PreAuthorize("@sr.hasPermission('10')")
+    @GetMapping("/api/crt/drama/getDramaProjectList")
+    public Result getDramaProjectList(@Validated CrtDramaProject crtDramaProject) {
+        crtDramaProject.setUser_id(SecurityUtil.getUserId());
+        return Result.success().put("data", crtDramaProjectService.selectCrtDramaProjectList(crtDramaProject));
+    }
+
+}

+ 15 - 0
src/main/java/com/backendsys/modules/crt/dao/CrtDramaProjectDao.java

@@ -0,0 +1,15 @@
+package com.backendsys.modules.crt.dao;
+
+import com.backendsys.modules.crt.entity.CrtDramaProject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface CrtDramaProjectDao extends BaseMapper<CrtDramaProject> {
+
+    List<Map<String, Object>> selectCrtDramaProjectList(CrtDramaProject crtDramaProject);
+
+}

+ 12 - 0
src/main/java/com/backendsys/modules/crt/service/CrtDramaProjectService.java

@@ -0,0 +1,12 @@
+package com.backendsys.modules.crt.service;
+
+import com.backendsys.modules.cms.article.entity.ArticleCategory;
+import com.backendsys.modules.crt.entity.CrtDramaProject;
+import com.backendsys.utils.response.PageEntity;
+
+public interface CrtDramaProjectService {
+
+    // 获取短剧创作-项目列表
+    PageEntity selectCrtDramaProjectList(CrtDramaProject crtDramaProject);
+
+}

+ 30 - 0
src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectServiceImpl.java

@@ -0,0 +1,30 @@
+package com.backendsys.modules.crt.service.impl;
+
+import com.backendsys.modules.cms.article.entity.ArticleCategory;
+import com.backendsys.modules.crt.dao.CrtDramaProjectDao;
+import com.backendsys.modules.crt.entity.CrtDramaProject;
+import com.backendsys.modules.crt.service.CrtDramaProjectService;
+import com.backendsys.utils.response.PageEntity;
+import com.backendsys.utils.response.PageInfoResult;
+import com.backendsys.utils.v2.PageUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class CrtDramaProjectServiceImpl implements CrtDramaProjectService {
+
+    @Autowired
+    private CrtDramaProjectDao crtDramaProjectDao;
+
+    // 获取短剧创作-项目列表
+    @Override
+    public PageEntity selectCrtDramaProjectList(CrtDramaProject crtDramaProject) {
+        PageUtils.startPage();  // 分页
+        List<Map<String, Object>> list = crtDramaProjectDao.selectCrtDramaProjectList(crtDramaProject);
+        return new PageInfoResult(list).toEntity();
+    }
+
+}

+ 46 - 0
src/main/resources/mapper/crt/drama/CrtDramaProjectDao.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.backendsys.modules.crt.dao.CrtDramaProjectDao">
+
+    <sql id="includeCrtDramaProject">
+        p.id,
+        p.user_id,
+        p.project_name,
+        COALESCE(p.crt_drama_lora_style_id, '') crt_drama_lora_style_id,
+        COALESCE(p.crt_drama_lora_character_ids, '') crt_drama_lora_character_ids,
+        p.create_time,
+        p.update_time
+    </sql>
+
+    <resultMap id="resultMapCrtDramaProject" type="java.util.LinkedHashMap">
+        <id property="id" column="id" jdbcType="BIGINT" />
+        <result property="user_id" column="user_id" javaType="java.lang.Long" />
+        <result property="project_name" column="project_name" />
+<!--        <result property="storyboard_episode_nums" column="storyboard_episode_nums" javaType="java.lang.String" />-->
+        <result property="storyboard_episode_nums" column="storyboard_episode_nums" javaType="java.util.List" jdbcType="VARCHAR"
+                typeHandler="com.backendsys.config.Mybatis.handler.StringToListTypeHandler" />
+        <result property="crt_drama_lora_style_id" column="crt_drama_lora_style_id" javaType="java.lang.Long" />
+        <result property="crt_drama_lora_character_ids" column="crt_drama_lora_character_ids" />
+        <result property="create_time" column="create_time" />
+        <result property="update_time" column="update_time" />
+    </resultMap>
+
+    <!-- 查 列表 -->
+    <select id="selectCrtDramaProjectList" resultMap="resultMapCrtDramaProject">
+        SELECT
+            <include refid="includeCrtDramaProject" />,
+            GROUP_CONCAT(ps.episode_num ORDER BY ps.episode_num) AS storyboard_episode_nums
+        FROM crt_drama_project p
+        LEFT JOIN crt_drama_project_storyboard ps ON p.id = ps.crt_drama_project_id
+        <where>
+            <if test="user_id != null and user_id != ''">
+                AND p.user_id = #{user_id}
+            </if>
+            <if test="project_name != null and project_name != ''">
+                AND p.project_name LIKE CONCAT('%', #{project_name}, '%')
+            </if>
+        </where>
+        GROUP BY p.id
+    </select>
+
+</mapper>