ソースを参照

Add (rollbackFor = Exception.class)

tsurumure 2 ヶ月 前
コミット
2cc3bb1ca3
36 ファイル変更134 行追加726 行削除
  1. 4 2
      db/sys_user_role_permission.sql
  2. 2 0
      db/sys_user_role_permission_relation.sql
  3. 0 39
      src/main/java/com/backendsys/entity/Med/MedMaterialCategoryDTO.java
  4. 0 68
      src/main/java/com/backendsys/entity/Med/MedMaterialDTO.java
  5. 0 55
      src/main/java/com/backendsys/entity/Med/MedMyMaterialDTO.java
  6. 0 16
      src/main/java/com/backendsys/mapper/Med/MedMaterialCategoryMapper.java
  7. 0 84
      src/main/java/com/backendsys/mapper/Med/MedMaterialCategoryMapper.xml
  8. 0 18
      src/main/java/com/backendsys/mapper/Med/MedMaterialMapper.java
  9. 0 184
      src/main/java/com/backendsys/mapper/Med/MedMaterialMapper.xml
  10. 0 18
      src/main/java/com/backendsys/mapper/Med/MedMyMaterialMapper.java
  11. 0 170
      src/main/java/com/backendsys/mapper/Med/MedMyMaterialMapper.xml
  12. 1 1
      src/main/java/com/backendsys/modules/ai/chat/service/impl/ChatHistoryServiceImpl.java
  13. 19 0
      src/main/java/com/backendsys/modules/crt/controller/CrtDramaProjectStoryboardController.java
  14. 3 3
      src/main/java/com/backendsys/modules/crt/entity/CrtDramaProjectStoryboard.java
  15. 44 7
      src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectStoryboardServiceImpl.java
  16. 3 3
      src/main/java/com/backendsys/modules/system/service/impl/SysAuthServiceImpl.java
  17. 3 3
      src/main/java/com/backendsys/modules/system/service/impl/SysUserRoleServiceImpl.java
  18. 5 5
      src/main/java/com/backendsys/modules/system/service/impl/SysUserServiceImpl.java
  19. 1 1
      src/main/java/com/backendsys/service/Ai/Aiivh/AiivhMakeBroadcastAudioTaskService.java
  20. 3 3
      src/main/java/com/backendsys/service/Ai/Aiivh/AiivhMakeBroadcastAudioTaskServiceImpl.java
  21. 3 3
      src/main/java/com/backendsys/service/Ai/Aiivh/AiivhMakeBroadcastTaskServiceImpl.java
  22. 1 1
      src/main/java/com/backendsys/service/Ai/Aiivh/AiivhQuotaServiceImpl.java
  23. 2 2
      src/main/java/com/backendsys/service/Ali/AliDashscopeServiceImpl.java
  24. 3 3
      src/main/java/com/backendsys/service/B2c/B2CGoodSpecServiceImpl.java
  25. 3 3
      src/main/java/com/backendsys/service/B2c/B2CGoodSpecSkuServiceImpl.java
  26. 3 3
      src/main/java/com/backendsys/service/B2c/B2cGoodBrandServiceImpl.java
  27. 3 3
      src/main/java/com/backendsys/service/B2c/B2cGoodCategoryServiceImpl.java
  28. 3 3
      src/main/java/com/backendsys/service/B2c/B2cGoodServiceImpl.java
  29. 3 3
      src/main/java/com/backendsys/service/B2c/B2cGoodUnitServiceImpl.java
  30. 3 3
      src/main/java/com/backendsys/service/B2c/B2cMemberServiceImpl.java
  31. 2 2
      src/main/java/com/backendsys/service/B2c/B2cOrderServiceImpl.java
  32. 3 3
      src/main/java/com/backendsys/service/B2c/B2cShoppingCartServiceImpl.java
  33. 1 1
      src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiServiceImpl.java
  34. 2 2
      src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiTimbreServiceImpl.java
  35. 3 3
      src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiVideoServiceImpl.java
  36. 8 8
      src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiVirtualmanServiceImpl.java

+ 4 - 2
db/sys_user_role_permission.sql

@@ -54,8 +54,10 @@ INSERT INTO sys_user_role_permission(id, parent_id, permission_name, sort) VALUE
                 ('36.2.3.1', '36.2.3', 'AI短剧创作-编辑项目生图/生视频配置 (自己)', null),
             ('36.2.4', '36.2', 'AI短剧创作-编辑分镜 (全权限)', null),
                 ('36.2.4.1', '36.2.4', 'AI短剧创作-编辑分镜 (自己)', null),
-
-
+            ('36.2.5', '36.2', 'AI短剧创作-清空分镜 (全权限)', null),
+                ('36.2.5.1', '36.2.5', 'AI短剧创作-清空分镜 (自己)', null),
+            ('36.2.6', '36.2', 'AI短剧创作-删除分集 (全权限)', null),
+                ('36.2.6.1', '36.2.6', 'AI短剧创作-删除分集 (自己)', null),
 
     ('3', -1, '系统用户管理', 900),
         ('3.1', '3', '系统用户列表 (在线的)', null),

+ 2 - 0
db/sys_user_role_permission_relation.sql

@@ -114,6 +114,8 @@ INSERT INTO sys_user_role_permission_relation(role_id, permission_id) VALUES
             (1, '36.2.2'),
             (1, '36.2.3'), (1, '36.2.3.1'),
             (1, '36.2.4'), (1, '36.2.4.1'),
+            (1, '36.2.5'), (1, '36.2.5.1'),
+            (1, '36.2.6'), (1, '36.2.6.1'),
 
 
     (1, '100'),

+ 0 - 39
src/main/java/com/backendsys/entity/Med/MedMaterialCategoryDTO.java

@@ -1,39 +0,0 @@
-//package com.backendsys.entity.Med;
-//
-//import com.backendsys.entity.validator.RangeArray;
-//import jakarta.validation.constraints.NotBlank;
-//import jakarta.validation.constraints.NotNull;
-//import jakarta.validation.constraints.Size;
-//import lombok.Data;
-//import org.hibernate.validator.constraints.Range;
-//
-//@Data
-//public class MedMaterialCategoryDTO {
-//    public static interface Detail{}
-//    public static interface Create{}
-//    public static interface Update{}
-//    public static interface Delete{}
-//
-//    /**
-//     * med_material_category
-//     */
-//    private Long id;
-//    @NotNull(message="material_category_id 不能为空", groups = { MedMaterialCategoryDTO.Detail.class, MedMaterialCategoryDTO.Update.class, MedMaterialCategoryDTO.Delete.class})
-//    private Long material_category_id;
-//
-//    private Long parent_id;
-//
-//    @Size(max = 50, message = "素材分类名称长度不超过 {max} 字符", groups = {MedMaterialCategoryDTO.Create.class, MedMaterialCategoryDTO.Update.class})
-//    @NotBlank(message="素材分类名称不能为空", groups = {MedMaterialCategoryDTO.Create.class, MedMaterialCategoryDTO.Update.class, })
-//    private String category_name;
-//
-//    @Size(max = 200, message = "素材分类描述长度不超过 {max} 字符", groups = {MedMaterialCategoryDTO.Create.class, MedMaterialCategoryDTO.Update.class})
-//    private String category_description;
-//
-//    @Range(min = 1, max = 9999, message = "排序必须在 {min} 到 {max} 之间", groups = {MedMaterialCategoryDTO.Create.class, MedMaterialCategoryDTO.Update.class})
-//    private Integer sort;
-//
-//    @RangeArray(message="状态取值有误,范围应是(-1禁用, 1启用)", value = {"-1", "1"}, groups = {MedMaterialCategoryDTO.Create.class, MedMaterialCategoryDTO.Update.class})
-//    private Integer status;
-//
-//}

+ 0 - 68
src/main/java/com/backendsys/entity/Med/MedMaterialDTO.java

@@ -1,68 +0,0 @@
-//package com.backendsys.entity.Med;
-//
-//import com.backendsys.entity.validator.RangeArray;
-//import jakarta.validation.constraints.NotEmpty;
-//import jakarta.validation.constraints.NotNull;
-//import jakarta.validation.constraints.Size;
-//import lombok.Data;
-//
-//import java.util.List;
-//
-//@Data
-//public class MedMaterialDTO {
-//    public static interface Detail{}
-//    public static interface Create{}
-//    public static interface Update{}
-//    public static interface Audit{}
-//    public static interface Delete{}
-//
-//    /**
-//     * med_material
-//     */
-//
-//    private Long id;
-//
-//    @NotNull(message="material_id 不能为空", groups = { MedMaterialDTO.Detail.class, MedMaterialDTO.Update.class, MedMaterialDTO.Audit.class })
-//    private Long material_id;
-//
-//    private List<Long> material_ids;
-//
-//    @NotNull(message="素材分类ID不能为空", groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class })
-//    private Long category_id;
-//    private String category_name; // 简易写法
-//
-//    @Size(max = 100, message = "素材标题长度不超过 {max} 字符")
-//    @NotEmpty(message="素材标题不能为空", groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class })
-//    private String title;
-//
-//    @Size(max = 200, message = "素材描述长度不超过 {max} 字符", groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class })
-//    private String description;
-//
-//    @Size(max = 10000, message = "素材内容长度不超过 {max} 字符", groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class })
-//    private String content;
-//
-//    @Size(max = 500, message = "缩略图路径长度不超过 {max} 字符", groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class})
-//    private String thumb;
-//
-//    @RangeArray(message="素材类型取值有误,范围应是(1图片, 2视频, 3音频, 4文案)", value = {"1", "2", "3", "4"}, groups = { MedMaterialDTO.Create.class })
-//    private Integer material_type;
-//    @Size(max = 500, message = "文件路径长度不超过 {max} 字符", groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class})
-//    private String file;
-//
-//    @RangeArray(message="素材状态取值有误,范围应是(-1禁用, 1启用)", value = {"-1", "1"}, groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class})
-//    private Integer status;
-//
-//    @RangeArray(message="审核状态取值有误,范围应是(-1审核拒绝, 1待审核, 2审核通过)", value = {"-1", "1", "2"}, groups = { MedMaterialDTO.Audit.class })
-//    private Integer audit_status;
-//    @Size(max = 1000, message = "审核备注长度不超过 {max} 字符", groups = { MedMaterialDTO.Audit.class })
-//    private String audit_note;
-//
-//    @RangeArray(message="del_flag 取值有误,范围应是(-1未删除, 1删除)", value = {"-1", "1"}, groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class})
-//    private Integer del_flag;
-//
-//    @RangeArray(message="是否置顶取值有误,范围应是(-1不置顶, 1置顶)", value = {"-1", "1"}, groups = {MedMaterialDTO.Create.class, MedMaterialDTO.Update.class})
-//    private Integer is_top;
-//    private String create_time;
-//    private String update_time;
-//
-//}

+ 0 - 55
src/main/java/com/backendsys/entity/Med/MedMyMaterialDTO.java

@@ -1,55 +0,0 @@
-//package com.backendsys.entity.Med;
-//
-//import com.backendsys.entity.validator.RangeArray;
-//import jakarta.validation.constraints.NotNull;
-//import jakarta.validation.constraints.Size;
-//import lombok.Data;
-//
-//import java.util.List;
-//
-//@Data
-//public class MedMyMaterialDTO {
-//    public static interface Detail{}
-//    public static interface Create{}
-//    public static interface Update{}
-//    public static interface Delete{}
-//
-//    /**
-//     * med_material
-//     */
-//
-//    private Long id;
-//
-//    @NotNull(message="my_material_id 不能为空", groups = { MedMyMaterialDTO.Detail.class })
-//    private Long my_material_id;
-//    private List<Long> my_material_ids;
-//
-//    // @NotNull(message="素材ID不能为空", groups = {MedMyMaterialDTO.Create.class })
-//    private Long material_id;
-//
-//    private Long user_id;
-//
-//    @NotNull(message="素材分类ID不能为空", groups = {MedMyMaterialDTO.Create.class, MedMyMaterialDTO.Update.class })
-//    private Long category_id;
-//    private String category_name;
-//
-//    @Size(max = 100, message = "素材标题长度不超过 {max} 字符")
-//    private String title;
-//
-//    @Size(max = 200, message = "素材描述长度不超过 {max} 字符", groups = {MedMyMaterialDTO.Create.class, MedMyMaterialDTO.Update.class })
-//    private String description;
-//
-//    @Size(max = 10000, message = "素材内容长度不超过 {max} 字符", groups = {MedMyMaterialDTO.Create.class, MedMyMaterialDTO.Update.class })
-//    private String content;
-//    private String thumb;
-//
-//    @RangeArray(message="素材类型取值有误,范围应是(1图片, 2视频, 3音频, 4文案)", value = {"1", "2", "3", "4"}, groups = { MedMyMaterialDTO.Create.class })
-//    private Integer material_type;
-//
-//    @Size(max = 500, message = "文件路径长度不超过 {max} 字符", groups = {MedMyMaterialDTO.Create.class, MedMyMaterialDTO.Update.class})
-//    private String file;
-//
-//    private String create_time;
-//    private String update_time;
-//
-//}

+ 0 - 16
src/main/java/com/backendsys/mapper/Med/MedMaterialCategoryMapper.java

@@ -1,16 +0,0 @@
-//package com.backendsys.mapper.Med;
-//
-//import com.backendsys.entity.Med.MedMaterialCategoryDTO;
-//import org.apache.ibatis.annotations.Mapper;
-//
-//import java.util.List;
-//import java.util.Map;
-//
-//@Mapper
-//public interface MedMaterialCategoryMapper {
-//    List<Map<String, Object>> queryMaterialCategoryList(MedMaterialCategoryDTO medMaterialCategoryDTO);
-//    Map<String, Object> queryMaterialCategoryDetail(Long material_category_id);
-//    long insertMaterialCategory(MedMaterialCategoryDTO medMaterialCategoryDTO);
-//    long deleteMaterialCategory(MedMaterialCategoryDTO medMaterialCategoryDTO);
-//    long updateMaterialCategory(MedMaterialCategoryDTO medMaterialCategoryDTO);
-//}

+ 0 - 84
src/main/java/com/backendsys/mapper/Med/MedMaterialCategoryMapper.xml

@@ -1,84 +0,0 @@
-<!--<?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.mapper.Med.MedMaterialCategoryMapper">-->
-
-<!--    <sql id="includeMaterialCategory">-->
-<!--        id,-->
-<!--        id material_category_id,-->
-<!--        COALESCE(parent_id, '') parent_id,-->
-<!--        category_name,-->
-<!--        COALESCE(category_description, '') category_description,-->
-<!--        sort,-->
-<!--        status-->
-<!--    </sql>-->
-
-<!--    <resultMap id="resultMapMaterialCategory" type="java.util.LinkedHashMap">-->
-<!--        <id property="id" column="id" jdbcType="BIGINT"/>-->
-<!--        <result property="parent_id" column="parent_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_name" column="category_name" />-->
-<!--        <result property="category_description" column="category_description" />-->
-<!--        <result property="sort" column="sort" javaType="java.lang.Integer" />-->
-<!--        <result property="status" column="status" javaType="java.lang.Integer" />-->
-<!--    </resultMap>-->
-
-<!--    <resultMap id="resultMapMaterialCategoryDetail" type="java.util.LinkedHashMap">-->
-<!--        <id property="id" column="id" jdbcType="BIGINT"/>-->
-<!--        <result property="parent_id" column="parent_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_name" column="category_name" />-->
-<!--        <result property="category_description" column="category_description" />-->
-<!--        <result property="sort" column="sort" javaType="java.lang.Integer" />-->
-<!--        <result property="status" column="status" javaType="java.lang.Integer" />-->
-<!--    </resultMap>-->
-
-<!--    <select id="queryMaterialCategoryList" resultMap="resultMapMaterialCategory">-->
-<!--        SELECT <include refid="includeMaterialCategory" />-->
-<!--        FROM med_material_category-->
-<!--        <where>-->
-<!--            <if test="category_name != null and category_name != ''">-->
-<!--                AND category_name LIKE CONCAT('%', #{category_name}, '%')-->
-<!--            </if>-->
-<!--            <if test="status != null and status != ''">-->
-<!--                AND status = #{status}-->
-<!--            </if>-->
-<!--        </where>-->
-<!--        ORDER BY sort DESC-->
-<!--    </select>-->
-
-<!--    <select id="queryMaterialCategoryDetail" resultMap="resultMapMaterialCategoryDetail">-->
-<!--        SELECT <include refid="includeMaterialCategory" />-->
-<!--        FROM med_material_category-->
-<!--        WHERE id = #{material_category_id}-->
-<!--    </select>-->
-
-<!--    <insert id="insertMaterialCategory" parameterType="com.backendsys.entity.Med.MedMaterialCategoryDTO"-->
-<!--        useGeneratedKeys="true" keyProperty="material_category_id">-->
-<!--        INSERT INTO med_material_category (category_name-->
-<!--            <if test="category_description != null and category_description != ''">, category_description</if>-->
-<!--            <if test="parent_id != null and parent_id != ''">, parent_id</if>-->
-<!--            <if test="sort != null and sort != ''">, sort</if>-->
-<!--            <if test="status != null and status != ''">, status</if>-->
-<!--        )-->
-<!--        VALUES (#{category_name}-->
-<!--            <if test="category_description != null and category_description != ''">, #{category_description}</if>-->
-<!--            <if test="parent_id != null and parent_id != ''">, #{parent_id}</if>-->
-<!--            <if test="sort != null and sort != ''">, #{sort}</if>-->
-<!--            <if test="status != null and status != ''">, #{status}</if>-->
-<!--        )-->
-<!--    </insert>-->
-
-<!--    <update id="updateMaterialCategory" parameterType="com.backendsys.entity.Med.MedMaterialCategoryDTO"-->
-<!--        useGeneratedKeys="true" keyProperty="material_category_id">-->
-<!--        UPDATE med_material_category-->
-<!--        SET category_name = #{category_name}-->
-<!--            <if test="category_description != null and category_description != ''">, category_description = #{category_description}</if>-->
-<!--            <if test="parent_id != null and parent_id != ''">, parent_id = #{parent_id}</if>-->
-<!--            <if test="sort != null and sort != ''">, sort = #{sort}</if>-->
-<!--            <if test="status != null and status != ''">, status = #{status}</if>-->
-<!--        WHERE id = #{material_category_id}-->
-<!--    </update>-->
-
-<!--    <delete id="deleteMaterialCategory">-->
-<!--        DELETE FROM med_material_category WHERE id = #{material_category_id}-->
-<!--    </delete>-->
-
-<!--</mapper>-->

+ 0 - 18
src/main/java/com/backendsys/mapper/Med/MedMaterialMapper.java

@@ -1,18 +0,0 @@
-//package com.backendsys.mapper.Med;
-//
-//import org.apache.ibatis.annotations.Mapper;
-//import com.backendsys.entity.Med.MedMaterialDTO;
-//
-//import java.util.List;
-//import java.util.Map;
-//
-//@Mapper
-//public interface MedMaterialMapper {
-//    List<Map<String, Object>> queryMaterialList(MedMaterialDTO medMaterialDTO);
-//    Map<String, Object> queryMaterialDetail(MedMaterialDTO medMaterialDTO);
-//    long insertMaterial(MedMaterialDTO medMaterialDTO);
-//    long auditMaterial(MedMaterialDTO medMaterialDTO);
-//    long deleteMaterial(MedMaterialDTO medMaterialDTO);
-//    long deleteMaterialBatch(List<Long> ids);
-//    long updateMaterial(MedMaterialDTO medMaterialDTO);
-//}

+ 0 - 184
src/main/java/com/backendsys/mapper/Med/MedMaterialMapper.xml

@@ -1,184 +0,0 @@
-<!--<?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.mapper.Med.MedMaterialMapper">-->
-
-<!--    <sql id="includeMaterial">-->
-<!--        m.id id,-->
-<!--        m.id material_id,-->
-<!--        mc.id category_id,-->
-<!--        mc.category_name category_name,-->
-<!--        m.title title,-->
-<!--        COALESCE(m.description, '') description,-->
-<!--        COALESCE(m.thumb, '') thumb,-->
-<!--        m.material_type material_type,-->
-<!--        &lt;!&ndash; COALESCE(m.content, '') content, &ndash;&gt;-->
-<!--        &lt;!&ndash; COALESCE(m.file, '') file, &ndash;&gt;-->
-<!--        m.is_top is_top,-->
-<!--        m.status status,-->
-<!--        m.audit_status audit_status,-->
-<!--        m.create_time create_time,-->
-<!--        m.update_time update_time-->
-<!--    </sql>-->
-
-<!--    <sql id="includeMaterialDetail">-->
-<!--        m.id id,-->
-<!--        m.id material_id,-->
-<!--        mc.id category_id,-->
-<!--        mc.category_name category_name,-->
-<!--        m.title title,-->
-<!--        COALESCE(m.description, '') description,-->
-<!--        COALESCE(m.thumb, '') thumb,-->
-<!--        m.material_type material_type,-->
-<!--        COALESCE(m.content, '') content,-->
-<!--        COALESCE(m.file, '') file,-->
-<!--        m.is_top is_top,-->
-<!--        m.status status,-->
-<!--        m.audit_status audit_status,-->
-<!--        m.create_time create_time,-->
-<!--        m.update_time update_time-->
-<!--    </sql>-->
-<!--    -->
-
-<!--    <resultMap id="resultMapMaterial" type="java.util.LinkedHashMap">-->
-<!--        <id property="id" column="id" jdbcType="BIGINT" />-->
-<!--        <result property="material_id" column="material_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_id" column="category_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_name" column="category_name" />-->
-<!--        <result property="title" column="title" />-->
-<!--        <result property="description" column="description" />-->
-<!--        <result property="thumb" column="thumb" />-->
-<!--        <result property="material_type" column="material_type" javaType="java.lang.Integer"/>-->
-<!--        &lt;!&ndash; <result property="content" column="content" /> &ndash;&gt;-->
-<!--        &lt;!&ndash; <result property="file" column="file" /> &ndash;&gt;-->
-<!--        <result property="is_top" column="is_top" javaType="java.lang.Integer"/>-->
-<!--        <result property="status" column="status" javaType="java.lang.Integer"/>-->
-<!--        <result property="audit_status" column="audit_status" javaType="java.lang.Integer"/>-->
-<!--        <result property="create_time" column="create_time" />-->
-<!--        <result property="update_time" column="update_time" />-->
-<!--    </resultMap>-->
-
-<!--    <resultMap id="resultMapMaterialDetail" type="java.util.LinkedHashMap">-->
-<!--        <id property="id" column="id" jdbcType="BIGINT" />-->
-<!--        <result property="material_id" column="material_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_id" column="category_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_name" column="category_name" />-->
-<!--        <result property="title" column="title" />-->
-<!--        <result property="description" column="description" />-->
-<!--        <result property="thumb" column="thumb" />-->
-<!--        <result property="material_type" column="material_type" javaType="java.lang.Integer" />-->
-<!--        <result property="content" column="content" />-->
-<!--        <result property="file" column="file" />-->
-<!--        <result property="is_top" column="is_top" javaType="java.lang.Integer"/>-->
-<!--        <result property="status" column="status" javaType="java.lang.Integer"/>-->
-<!--        <result property="audit_status" column="audit_status" javaType="java.lang.Integer"/>-->
-<!--        <result property="create_time" column="create_time" />-->
-<!--        <result property="update_time" column="update_time" />-->
-<!--    </resultMap>-->
-
-<!--    <sql id="leftJoinCategory">-->
-<!--        LEFT JOIN med_material_category mc ON m.category_id = mc.id-->
-<!--    </sql>-->
-
-<!--    &lt;!&ndash; 查 列表 &ndash;&gt;-->
-<!--    <select id="queryMaterialList" resultMap="resultMapMaterial">-->
-<!--        SELECT-->
-<!--           <include refid="includeMaterial" />-->
-<!--        FROM med_material m-->
-<!--        <include refid="leftJoinCategory" />-->
-<!--        <where>-->
-<!--            <if test="title != null and title != ''">-->
-<!--                AND m.title LIKE CONCAT('%', #{title}, '%')-->
-<!--            </if>-->
-<!--            <if test="description != null and description != ''">-->
-<!--                AND m.description LIKE CONCAT('%', #{description}, '%')-->
-<!--            </if>-->
-<!--            <if test="category_id != null and category_id != ''">-->
-<!--                AND m.category_id = #{category_id}-->
-<!--            </if>-->
-<!--            <if test="status != null and status != ''">-->
-<!--                AND m.status = #{status}-->
-<!--            </if>-->
-<!--            <if test="audit_status != null and audit_status != ''">-->
-<!--                AND m.audit_status = #{audit_status}-->
-<!--            </if>-->
-<!--            <if test="create_time != null and create_time != ''">-->
-<!--                AND m.create_time >= #{create_time}-->
-<!--            </if>-->
-<!--        </where>-->
-<!--        ORDER BY m.is_top = 1 DESC, m.update_time DESC-->
-<!--    </select>-->
-
-<!--    <select id="queryMaterialDetail" resultMap="resultMapMaterialDetail">-->
-<!--        SELECT <include refid="includeMaterialDetail" />-->
-<!--        FROM med_material m-->
-<!--        <include refid="leftJoinCategory" />-->
-<!--        WHERE m.id = #{material_id}-->
-<!--    </select>-->
-
-
-<!--    <insert id="insertMaterial" parameterType="com.backendsys.entity.Med.MedMaterialDTO"-->
-<!--        useGeneratedKeys="true" keyProperty="material_id">-->
-<!--        INSERT INTO med_material (-->
-<!--            category_id, title, material_type-->
-<!--            <if test="description != null and description != ''">, description</if>-->
-<!--            <if test="thumb != null and thumb != ''">, thumb</if>-->
-<!--            <if test="content != null and content != ''">, content</if>-->
-<!--            <if test="file != null and file != ''">, file</if>-->
-<!--            <if test="is_top != null and is_top != ''">, is_top</if>-->
-<!--            &lt;!&ndash; <if test="audit_status != null and audit_status != ''">, audit_status</if> &ndash;&gt;-->
-<!--            <if test="status != null and status != ''">, status</if>-->
-<!--        )-->
-<!--        VALUES (-->
-<!--            #{category_id}, #{title}, #{material_type}-->
-<!--            <if test="description != null and description != ''">, #{description}</if>-->
-<!--            <if test="thumb != null and thumb != ''">, #{thumb}</if>-->
-<!--            <if test="content != null and content != ''">, #{content}</if>-->
-<!--            <if test="file != null and file != ''">, #{file}</if>-->
-<!--            <if test="is_top != null and is_top != ''">, #{is_top}</if>-->
-<!--            &lt;!&ndash; <if test="audit_status != null and audit_status != ''">, #{audit_status}</if> &ndash;&gt;-->
-<!--            <if test="status != null and status != ''">, #{status}</if>-->
-<!--        );-->
-<!--    </insert>-->
-
-<!--    <update id="updateMaterial" parameterType="com.backendsys.entity.Med.MedMaterialDTO"-->
-<!--        useGeneratedKeys="true" keyProperty="material_id">-->
-<!--        UPDATE med_material-->
-<!--        SET-->
-<!--            category_id = #{category_id},-->
-<!--            title = #{title},-->
-<!--            material_type = #{material_type},-->
-<!--            <if test="description != null and description != ''">, description = #{description}</if>-->
-<!--            <if test="thumb != null and thumb != ''">, thumb = #{thumb}</if>-->
-<!--            <if test="content != null and content != ''">, content = #{content}</if>-->
-<!--            <if test="file != null and file != ''">, file = #{file}</if>-->
-<!--            <if test="is_top != null and is_top != ''">, is_top = #{is_top}</if>-->
-<!--            &lt;!&ndash; <if test="audit_status != null and audit_status != ''">, audit_status = #{audit_status}</if> &ndash;&gt;-->
-<!--            <if test="status != null and status != ''">, status = #{status}</if>-->
-<!--        WHERE id = #{material_id};-->
-<!--    </update>-->
-<!--    &lt;!&ndash;  &ndash;&gt;-->
-
-<!--    &lt;!&ndash; 审核 &ndash;&gt;-->
-<!--    <update id="auditMaterial" parameterType="com.backendsys.entity.Med.MedMaterialDTO">-->
-<!--        UPDATE med_material SET-->
-<!--        <trim suffixOverrides="," suffix=" ">-->
-<!--            <if test="audit_status != null and audit_status != ''">audit_status = #{audit_status},</if>-->
-<!--            <if test="audit_note != null and audit_note != ''">audit_note = #{audit_note},</if>-->
-<!--        </trim>-->
-<!--        WHERE id = #{material_id};-->
-<!--    </update>-->
-
-<!--    &lt;!&ndash; 删除 &ndash;&gt;-->
-<!--    <delete id="deleteMaterial" parameterType="java.lang.Long">-->
-<!--        DELETE FROM med_material WHERE id = #{material_id};-->
-<!--    </delete>-->
-
-<!--    &lt;!&ndash; 删除 (批量) &ndash;&gt;-->
-<!--    <delete id="deleteMaterialBatch" parameterType="java.lang.Long">-->
-<!--        DELETE FROM med_material WHERE id IN-->
-<!--        <foreach collection="ids" item="id" open="(" separator="," close=")">-->
-<!--            #{id}-->
-<!--        </foreach>-->
-<!--    </delete>-->
-
-<!--</mapper>-->

+ 0 - 18
src/main/java/com/backendsys/mapper/Med/MedMyMaterialMapper.java

@@ -1,18 +0,0 @@
-//package com.backendsys.mapper.Med;
-//
-//import org.apache.ibatis.annotations.Mapper;
-//
-//import com.backendsys.entity.Med.MedMyMaterialDTO;
-//
-//import java.util.List;
-//import java.util.Map;
-//
-//@Mapper
-//public interface MedMyMaterialMapper {
-//    List<Map<String, Object>> queryMyMaterialList(MedMyMaterialDTO medMyMaterialDTO);
-//    Map<String, Object> queryMyMaterialDetail(MedMyMaterialDTO medMyMaterialDTO);
-//    long insertMyMaterial(MedMyMaterialDTO medMyMaterialDTO);
-//    long updateMyMaterial(MedMyMaterialDTO medMyMaterialDTO);
-//    long deleteMyMaterial(MedMyMaterialDTO medMyMaterialDTO);
-//    long deleteMyMaterialBatch(List<Long> ids);
-//}

+ 0 - 170
src/main/java/com/backendsys/mapper/Med/MedMyMaterialMapper.xml

@@ -1,170 +0,0 @@
-<!--<?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.mapper.Med.MedMyMaterialMapper">-->
-
-<!--    <sql id="includeMyMaterial">-->
-<!--        m.id id,-->
-<!--        m.id my_material_id,-->
-<!--        m.material_id material_id,-->
-<!--        m.user_id user_id,-->
-<!--        mc.id category_id,-->
-<!--        mc.category_name category_name,-->
-<!--        m.title title,-->
-<!--        COALESCE(m.description, '') description,-->
-<!--        COALESCE(m.thumb, '') thumb,-->
-<!--        m.material_type material_type,-->
-<!--        &lt;!&ndash; COALESCE(m.content, '') content, &ndash;&gt;-->
-<!--        &lt;!&ndash; COALESCE(m.file, '') file, &ndash;&gt;-->
-<!--        m.create_time create_time,-->
-<!--        m.update_time update_time-->
-<!--    </sql>-->
-
-<!--    <sql id="includeMyMaterialDetail">-->
-<!--        m.id id,-->
-<!--        m.id my_material_id,-->
-<!--        m.material_id material_id,-->
-<!--        m.user_id user_id,-->
-<!--        mc.id category_id,-->
-<!--        mc.category_name category_name,-->
-<!--        m.title title,-->
-<!--        COALESCE(m.description, '') description,-->
-<!--        COALESCE(m.thumb, '') thumb,-->
-<!--        m.material_type material_type,-->
-<!--        COALESCE(m.content, '') content,-->
-<!--        COALESCE(m.file, '') file,-->
-<!--        m.create_time create_time,-->
-<!--        m.update_time update_time-->
-<!--    </sql>-->
-
-<!--    <resultMap id="resultMapMaterial" type="java.util.LinkedHashMap">-->
-<!--        <id property="id" column="id" jdbcType="BIGINT" />-->
-<!--        <result property="my_material_id" column="my_material_id" javaType="java.lang.Long"/>-->
-<!--        <result property="material_id" column="material_id" javaType="java.lang.Long"/>-->
-<!--        <result property="user_id" column="user_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_id" column="category_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_name" column="category_name" />-->
-<!--        <result property="title" column="title" />-->
-<!--        <result property="description" column="description" />-->
-<!--        <result property="thumb" column="thumb" />-->
-<!--        <result property="material_type" column="material_type" javaType="java.lang.Integer"/>-->
-<!--        &lt;!&ndash; <result property="content" column="content" /> &ndash;&gt;-->
-<!--        &lt;!&ndash; <result property="file" column="file" /> &ndash;&gt;-->
-<!--        <result property="create_time" column="create_time" />-->
-<!--        <result property="update_time" column="update_time" />-->
-<!--    </resultMap>-->
-
-<!--    <resultMap id="resultMapMaterialDetail" type="java.util.LinkedHashMap">-->
-<!--        <id property="id" column="id" jdbcType="BIGINT" />-->
-<!--        <result property="my_material_id" column="my_material_id" javaType="java.lang.Long"/>-->
-<!--        <result property="material_id" column="material_id" javaType="java.lang.Long"/>-->
-<!--        <result property="user_id" column="user_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_id" column="category_id" javaType="java.lang.Long"/>-->
-<!--        <result property="category_name" column="category_name" />-->
-<!--        <result property="title" column="title" />-->
-<!--        <result property="description" column="description" />-->
-<!--        <result property="thumb" column="thumb" />-->
-<!--        <result property="material_type" column="material_type" javaType="java.lang.Integer"/>-->
-<!--        <result property="content" column="content" />-->
-<!--        <result property="file" column="file" />-->
-<!--        <result property="create_time" column="create_time" />-->
-<!--        <result property="update_time" column="update_time" />-->
-<!--    </resultMap>-->
-
-<!--    <sql id="leftJoinCategory">-->
-<!--        LEFT JOIN med_material_category mc ON m.category_id = mc.id-->
-<!--    </sql>-->
-
-<!--    &lt;!&ndash; 查 列表 &ndash;&gt;-->
-<!--    <select id="queryMyMaterialList" resultMap="resultMapMaterial">-->
-<!--        SELECT-->
-<!--           <include refid="includeMyMaterial" />-->
-<!--        FROM med_my_material m-->
-<!--        <include refid="leftJoinCategory" />-->
-<!--        <where>-->
-<!--            <if test="my_material_ids != null and my_material_ids.size() > 0">-->
-<!--                AND m.id IN-->
-<!--                <foreach item="id" collection="my_material_ids" open="(" separator="," close=")">-->
-<!--                    #{id}-->
-<!--                </foreach>-->
-<!--            </if>-->
-<!--            <if test="title != null and title != ''">-->
-<!--                AND m.title LIKE CONCAT('%', #{title}, '%')-->
-<!--            </if>-->
-<!--            <if test="description != null and description != ''">-->
-<!--                AND m.description LIKE CONCAT('%', #{description}, '%')-->
-<!--            </if>-->
-<!--            <if test="category_id != null and category_id != ''">-->
-<!--                AND m.category_id = #{category_id}-->
-<!--            </if>-->
-<!--            <if test="user_id != null and user_id != ''">-->
-<!--                AND m.user_id = #{user_id}-->
-<!--            </if>-->
-<!--            <if test="material_id != null and material_id != ''">-->
-<!--                AND m.material_id = #{material_id}-->
-<!--            </if>-->
-<!--            <if test="create_time != null and create_time != ''">-->
-<!--                AND m.create_time >= #{create_time}-->
-<!--            </if>-->
-<!--        </where>-->
-<!--        ORDER BY m.update_time DESC-->
-<!--    </select>-->
-
-<!--    &lt;!&ndash; 查 详情 (二次查询) &ndash;&gt;-->
-<!--    <select id="queryMyMaterialDetail" resultMap="resultMapMaterialDetail">-->
-<!--        SELECT <include refid="includeMyMaterialDetail" />-->
-<!--        FROM med_my_material m-->
-<!--        <include refid="leftJoinCategory" />-->
-<!--        WHERE m.id = #{my_material_id}-->
-<!--    </select>-->
-
-
-<!--    <insert id="insertMyMaterial" parameterType="com.backendsys.entity.Med.MedMyMaterialDTO"-->
-<!--        useGeneratedKeys="true" keyProperty="my_material_id">-->
-<!--        INSERT INTO med_my_material (-->
-<!--            category_id, user_id, title, material_type-->
-<!--            <if test="material_id != null and material_id != ''">, material_id</if>-->
-<!--            <if test="description != null and description != ''">, description</if>-->
-<!--            <if test="thumb != null and thumb != ''">, thumb</if>-->
-<!--            <if test="content != null and content != ''">, content</if>-->
-<!--            <if test="file != null and file != ''">, file</if>-->
-<!--        )-->
-<!--        VALUES (-->
-<!--            #{category_id}, #{user_id}, #{title}, #{material_type}-->
-<!--            <if test="material_id != null and material_id != ''">, #{material_id}</if>-->
-<!--            <if test="description != null and description != ''">, #{description}</if>-->
-<!--            <if test="thumb != null and thumb != ''">, #{thumb}</if>-->
-<!--            <if test="content != null and content != ''">, #{content}</if>-->
-<!--            <if test="file != null and file != ''">, #{file}</if>-->
-<!--        );-->
-<!--    </insert>-->
-
-<!--    <update id="updateMyMaterial" parameterType="com.backendsys.entity.Med.MedMaterialDTO"-->
-<!--        useGeneratedKeys="true" keyProperty="my_material_id">-->
-<!--        UPDATE med_my_material-->
-<!--        SET-->
-<!--            category_id = #{category_id},-->
-<!--            user_id = #{user_id},-->
-<!--            title = #{title},-->
-<!--            material_type = #{material_type},-->
-<!--            <if test="material_id != null and material_id != ''">, material_id = #{material_id}</if>-->
-<!--            <if test="description != null and description != ''">, description = #{description}</if>-->
-<!--            <if test="thumb != null and thumb != ''">, thumb = #{thumb}</if>-->
-<!--            <if test="content != null and content != ''">, content = #{content}</if>-->
-<!--            <if test="file != null and file != ''">, file = #{file}</if>-->
-<!--        WHERE id = #{my_material_id};-->
-<!--    </update>-->
-
-<!--    &lt;!&ndash; 删除 &ndash;&gt;-->
-<!--    <delete id="deleteMyMaterial" parameterType="java.lang.Long">-->
-<!--        DELETE FROM med_my_material WHERE id = #{my_material_id};-->
-<!--    </delete>-->
-
-<!--    &lt;!&ndash; 删除 (批量) &ndash;&gt;-->
-<!--    <delete id="deleteMyMaterialBatch" parameterType="java.lang.Long">-->
-<!--        DELETE FROM med_my_material WHERE id IN-->
-<!--        <foreach collection="ids" item="id" open="(" separator="," close=")">-->
-<!--            #{id}-->
-<!--        </foreach>-->
-<!--    </delete>-->
-
-<!--</mapper>-->

+ 1 - 1
src/main/java/com/backendsys/modules/ai/chat/service/impl/ChatHistoryServiceImpl.java

@@ -40,7 +40,7 @@ public class ChatHistoryServiceImpl implements ChatHistoryService {
      * 删除我的对话历史 (软删除)
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteChatHistory(ChatHistory chatHistory) {
 
         String history_code = chatHistory.getHistory_code();

+ 19 - 0
src/main/java/com/backendsys/modules/crt/controller/CrtDramaProjectStoryboardController.java

@@ -1,5 +1,6 @@
 package com.backendsys.modules.crt.controller;
 
+import com.backendsys.modules.common.aspect.SysLog;
 import com.backendsys.modules.common.config.security.utils.SecurityUtil;
 import com.backendsys.modules.common.utils.Result;
 import com.backendsys.modules.crt.entity.CrtDramaProject;
@@ -30,6 +31,7 @@ public class CrtDramaProjectStoryboardController {
         return Result.success().put("data", crtDramaProjectStoryboardService.selectCrtDramaProjectStoryboardDetail(crtDramaProjectStoryboard));
     }
 
+    @SysLog("创建分集/分镜")
     @Operation(summary = "创建分集/分镜")
     @PreAuthorize("@sr.hasPermission('36.2.2')")
     @PostMapping("/api/crt/drama/initStoryboard")
@@ -38,10 +40,27 @@ public class CrtDramaProjectStoryboardController {
         return Result.success().put("data", crtDramaProjectStoryboardService.createStoryboard(crtDramaProjectStoryboard));
     }
 
+    @SysLog("删除分集")
+    @Operation(summary = "删除分集")
+    @DeleteMapping("/api/crt/drama/deleteStoryboard")
+    public Result deleteStoryboard(@Validated(CrtDramaProjectStoryboard.Delete.class) @RequestBody CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
+        return Result.success().put("data", crtDramaProjectStoryboardService.deleteStoryboard(crtDramaProjectStoryboard));
+    }
+
+
+
+    @SysLog("编辑分镜")
     @Operation(summary = "编辑分镜")
     @PutMapping("/api/crt/drama/updateStoryboard")
     public Result updateStoryboard(@Validated(CrtDramaProjectStoryboard.Update.class) @RequestBody CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
         return Result.success().put("data", crtDramaProjectStoryboardService.updateStoryboard(crtDramaProjectStoryboard));
     }
 
+    @SysLog("清除分镜")
+    @Operation(summary = "清除分镜")
+    @DeleteMapping("/api/crt/drama/clearStoryboard")
+    public Result clearStoryboard(@Validated(CrtDramaProjectStoryboard.Clear.class) @RequestBody CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
+        return Result.success().put("data", crtDramaProjectStoryboardService.clearStoryboard(crtDramaProjectStoryboard));
+    }
+
 }

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

@@ -31,14 +31,14 @@ public class CrtDramaProjectStoryboard {
     private Long id;
 
     @TableField(exist = false)
-    @NotNull(message = "分镜ID不能为空", groups = { Update.class, Clear.class, Delete.class })
+    @NotNull(message = "分镜ID不能为空", groups = { Update.class, Delete.class })
     private Long drama_project_storyboard_id;
 
     private Long user_id;
 
-    @NotNull(message = "项目ID不能为空", groups = { Create.class, StoryboardDetail.class })
+    @NotNull(message = "项目ID不能为空", groups = { Create.class, StoryboardDetail.class, Clear.class })
     private Long drama_project_id;
-    @NotNull(message = "集数不能为空", groups = { Create.class, StoryboardDetail.class, Clear.class })
+    @NotNull(message = "集数不能为空", groups = { Create.class, StoryboardDetail.class })
     @Max(value = 999, message = "集数不超过 {value}")
     private Integer episode_num;
 

+ 44 - 7
src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectStoryboardServiceImpl.java

@@ -151,21 +151,47 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
         return Map.of("drama_project_storyboard_id", crtDramaProjectStoryboard.getDrama_project_storyboard_id());
     }
 
+    /**
+     * [Event] 删除全部分镜
+     */
+    private void eventDeleteStoryboard(Long drama_project_id, Integer episode_num) {
+        LambdaQueryWrapper<CrtDramaProjectStoryboard> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CrtDramaProjectStoryboard::getDrama_project_id, drama_project_id);
+        wrapper.eq(CrtDramaProjectStoryboard::getEpisode_num, episode_num);
+
+        // [DB] 查询分镜
+        List<CrtDramaProjectStoryboard> storyboardList = crtDramaProjectStoryboardDao.selectList(wrapper);
+        if (storyboardList == null) throw new CustException("分镜不存在");
+        CrtDramaProjectStoryboard storyboardDetail = storyboardList.get(0);
+
+        // 是否 [分镜] 拥有者,权限:
+        // - 编辑自己的 (需 36.2.6.1 权限)
+        // - 编辑自己及他人的 (需要 36.2.6 权限或超级管理员)
+        Boolean isOwner = storyboardDetail.getUser_id() == SecurityUtil.getUserId();
+        if (isOwner && !securityUtil.hasPermissions(Arrays.asList("36.2.6", "36.2.6.1"), MatchType.OR)) {
+            throw new CustException(SecurityEnum.NOAUTH);
+        }
+        if (!isOwner && !securityUtil.hasPermission("36.2.6")) {
+            throw new CustException(SecurityEnum.NOAUTH);
+        }
+        // ---------------------------------------------------------------------------
+
+        // [DB] 清空当前分集的所有分镜
+        crtDramaProjectStoryboardDao.delete(wrapper);
+    }
 
     /**
      * 清空分镜
      */
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> clearStoryboard(CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
 
         Long drama_project_id = crtDramaProjectStoryboard.getDrama_project_id();
         Integer episode_num = crtDramaProjectStoryboard.getEpisode_num();
 
-        // [DB] 清空当前分集的所有分镜
-        LambdaQueryWrapper<CrtDramaProjectStoryboard> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(CrtDramaProjectStoryboard::getDrama_project_id, drama_project_id);
-        wrapper.eq(CrtDramaProjectStoryboard::getEpisode_num, episode_num);
-        crtDramaProjectStoryboardDao.delete(wrapper);
+        // [Event] 删除全部分镜
+        eventDeleteStoryboard(drama_project_id, episode_num);
 
         // [DB] 初始化一个分镜
         CrtDramaProjectStoryboard entity = new CrtDramaProjectStoryboard();
@@ -176,7 +202,7 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
         crtDramaProjectStoryboardDao.insert(entity);
 
         Map<String, Object> resp = new LinkedHashMap<>();
-        resp.put("drama_project_id", crtDramaProjectStoryboard.getDrama_project_id());
+        resp.put("drama_project_id", drama_project_id);
         resp.put("episode_num", episode_num);
         return resp;
     }
@@ -184,8 +210,19 @@ public class CrtDramaProjectStoryboardServiceImpl implements CrtDramaProjectStor
     /**
      * 删除分集
      */
+    @Override
     public Map<String, Object> deleteStoryboard(CrtDramaProjectStoryboard crtDramaProjectStoryboard) {
-        return Map.of("drama_project_storyboard_id", crtDramaProjectStoryboard.getDrama_project_storyboard_id());
+
+        Long drama_project_id = crtDramaProjectStoryboard.getDrama_project_id();
+        Integer episode_num = crtDramaProjectStoryboard.getEpisode_num();
+
+        // [Event] 删除全部分镜
+        eventDeleteStoryboard(drama_project_id, episode_num);
+
+        Map<String, Object> resp = new LinkedHashMap<>();
+        resp.put("drama_project_id", drama_project_id);
+        resp.put("episode_num", episode_num);
+        return resp;
     }
 
 }

+ 3 - 3
src/main/java/com/backendsys/modules/system/service/impl/SysAuthServiceImpl.java

@@ -212,7 +212,7 @@ public class SysAuthServiceImpl implements SysAuthService {
      * 登录 (用户名)
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public SysUserInfo login(SysAuth sysAuth) {
 
         String username = sysAuth.getUsername();
@@ -259,7 +259,7 @@ public class SysAuthServiceImpl implements SysAuthService {
      * 登录 (手机号码)
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public SysUserInfo loginWithPhone(SysAuthPhone sysAuthPhone) {
 
         String phone = sysAuthPhone.getPhone();
@@ -295,7 +295,7 @@ public class SysAuthServiceImpl implements SysAuthService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> register(SysUserDTO sysUserDTO) {
 
         // 判断是否允许注册

+ 3 - 3
src/main/java/com/backendsys/modules/system/service/impl/SysUserRoleServiceImpl.java

@@ -63,7 +63,7 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleDao, SysUserR
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertUserRole(SysUserRole sysUserRole) {
 
         // 判断 modules 是否重复
@@ -81,7 +81,7 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleDao, SysUserR
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateUserRole(SysUserRole sysUserRole) {
 
         // 判断 modules 是否重复
@@ -109,7 +109,7 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleDao, SysUserR
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteUserRole(SysUserRole sysUserRole) {
 
         Long role_id = sysUserRole.getRole_id();

+ 5 - 5
src/main/java/com/backendsys/modules/system/service/impl/SysUserServiceImpl.java

@@ -221,7 +221,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
      * 创建系统用户
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertUser(SysUserDTO sysUserDTO) {
         RLock lock = redissonClient.getLock("insertUser");
         try { lock.tryLock(3, TimeUnit.SECONDS);
@@ -267,7 +267,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
      * 编辑系统用户信息
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateUserInfo(SysUserDTO sysUserDTO) {
         RLock lock = redissonClient.getLock("updateUserInfo");
         try { lock.tryLock(3, TimeUnit.SECONDS);
@@ -301,7 +301,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
      * 编辑系统用户密码
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateUserPassword(SysUserDTO sysUserDTO) {
         RLock lock = redissonClient.getLock("updateUserPassword");
         try { lock.tryLock(3, TimeUnit.SECONDS);
@@ -348,7 +348,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
      * 重置系统用户密码
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> resetUserPassword(SysUserDTO sysUserDTO) {
         RLock lock = redissonClient.getLock("resetUserPassword");
         try { lock.tryLock(3, TimeUnit.SECONDS);
@@ -396,7 +396,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUser> impleme
      * 删除系统用户 (以及部分关联表)
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteUser(SysUserDTO sysUserDTO) {
         RLock lock = redissonClient.getLock("deleteUser");
         try { lock.tryLock(3, TimeUnit.SECONDS);

+ 1 - 1
src/main/java/com/backendsys/service/Ai/Aiivh/AiivhMakeBroadcastAudioTaskService.java

@@ -11,7 +11,7 @@ public interface AiivhMakeBroadcastAudioTaskService {
     Map<String, Object> queryAiivhMakeBroadcastAudioTaskDetail(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastTaskDTO) throws IOException;
     Map<String, Object> insertAiivhMakeBroadcastAudioTask(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastTaskDTO) throws IOException;
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     Map<String, Object> updateAiivhMakeBroadcastAudioTask(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO);
 
     Map<String, Object> deleteAiivhMakeBroadcastAudioTask(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastTaskDTO);

+ 3 - 3
src/main/java/com/backendsys/service/Ai/Aiivh/AiivhMakeBroadcastAudioTaskServiceImpl.java

@@ -110,7 +110,7 @@ public class AiivhMakeBroadcastAudioTaskServiceImpl implements AiivhMakeBroadcas
      * https://cloud.tencent.com/document/product/1240/81269#ec658a0e-cd14-48c2-af38-9ca07936a513
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertAiivhMakeBroadcastAudioTask(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) throws IOException {
 
         // [查询] 自身 UserId
@@ -158,7 +158,7 @@ public class AiivhMakeBroadcastAudioTaskServiceImpl implements AiivhMakeBroadcas
      * https://cloud.tencent.com/document/product/1240/81279
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateAiivhMakeBroadcastAudioTask(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) {
         long update = aiivhMakeBroadcastAudioTaskMapper.updateAiivhMakeBroadcastAudio(aiivhMakeBroadcastAudioTaskDTO);
         if (update == 1) {
@@ -172,7 +172,7 @@ public class AiivhMakeBroadcastAudioTaskServiceImpl implements AiivhMakeBroadcas
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteAiivhMakeBroadcastAudioTask(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) {
         aiivhMakeBroadcastAudioTaskMapper.deleteAiivhMakeBroadcastAudio(aiivhMakeBroadcastAudioTaskDTO);
         return Map.of("task_id", aiivhMakeBroadcastAudioTaskDTO.getTask_id());

+ 3 - 3
src/main/java/com/backendsys/service/Ai/Aiivh/AiivhMakeBroadcastTaskServiceImpl.java

@@ -244,7 +244,7 @@ public class AiivhMakeBroadcastTaskServiceImpl implements AiivhMakeBroadcastTask
      * https://cloud.tencent.com/document/product/1240/81269#ec658a0e-cd14-48c2-af38-9ca07936a513
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertAiivhMakeBroadcastTask(AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) throws IOException {
 
         // [查询] 自身 UserId
@@ -363,7 +363,7 @@ public class AiivhMakeBroadcastTaskServiceImpl implements AiivhMakeBroadcastTask
      * https://cloud.tencent.com/document/product/1240/81279
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateAiivhMakeBroadcastTask(AiivhMakeBroadcastTaskCallbackDTO aiivhMakeBroadcastTaskCallbackDTO) {
 
         System.out.println("(updateAiivhMakeBroadcastTask) 回调");
@@ -407,7 +407,7 @@ public class AiivhMakeBroadcastTaskServiceImpl implements AiivhMakeBroadcastTask
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteAiivhMakeBroadcastTask(AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) {
         aiivhMakeBroadcastTaskMapper.deleteAiivhMakeBroadcast(aiivhMakeBroadcastTaskDTO);
         return Map.of("task_id", aiivhMakeBroadcastTaskDTO.getTask_id());

+ 1 - 1
src/main/java/com/backendsys/service/Ai/Aiivh/AiivhQuotaServiceImpl.java

@@ -225,8 +225,8 @@ public class AiivhQuotaServiceImpl implements AiivhQuotaService{
     /**
      * 积分兑换配额
      */
-    @Transactional
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> pointToVirtualmanQuota(AiivhQuotaOrderDTO aiivhQuotaOrderDTO) {
 
         RLock lock = redissonClient.getLock("pointToVirtualmanQuota");

+ 2 - 2
src/main/java/com/backendsys/service/Ali/AliDashscopeServiceImpl.java

@@ -46,7 +46,7 @@ public class AliDashscopeServiceImpl implements AliDashscopeService {
      * 通义万相 - 查询任务生成结果
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> getTaskById(String task_id) {
 
         // Http 远程调用
@@ -157,7 +157,7 @@ public class AliDashscopeServiceImpl implements AliDashscopeService {
      * 通义万相 - 图像背景生成API
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> createBackgroundGenerationTask(AliDashscopeBackgroundDTO aliDashscopeBackgroundDTO) {
 
         aliDashscopeBackgroundDTO.setModel("wanx-background-generation-v2");

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2CGoodSpecServiceImpl.java

@@ -49,7 +49,7 @@ public class B2CGoodSpecServiceImpl implements B2cGoodSpecService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertGoodSpec(B2cGoodSpecDTO b2cGoodSpecDTO) {
         b2cGoodSpecMapper.insertGoodSpec(b2cGoodSpecDTO);
         return Map.of("good_spec_id", b2cGoodSpecDTO.getGood_spec_id());
@@ -59,7 +59,7 @@ public class B2CGoodSpecServiceImpl implements B2cGoodSpecService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateGoodSpec(B2cGoodSpecDTO b2cGoodSpecDTO) {
         b2cGoodSpecMapper.updateGoodSpec(b2cGoodSpecDTO);
         return Map.of("good_spec_id", b2cGoodSpecDTO.getGood_spec_id());
@@ -69,7 +69,7 @@ public class B2CGoodSpecServiceImpl implements B2cGoodSpecService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteGoodSpec(B2cGoodSpecDTO b2cGoodSpecDTO) {
         b2cGoodSpecMapper.deleteGoodSpec(b2cGoodSpecDTO);
         return Map.of("good_spec_id", b2cGoodSpecDTO.getGood_spec_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2CGoodSpecSkuServiceImpl.java

@@ -70,7 +70,7 @@ public class B2CGoodSpecSkuServiceImpl implements B2cGoodSpecSkuService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertGoodSpecSku(B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         b2cGoodSpecSkuMapper.insertGoodSpecSku(b2cGoodSpecSkuDTO);
         return Map.of("good_spec_sku_id", b2cGoodSpecSkuDTO.getGood_spec_sku_id());
@@ -80,7 +80,7 @@ public class B2CGoodSpecSkuServiceImpl implements B2cGoodSpecSkuService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateGoodSpecSku(B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         b2cGoodSpecSkuMapper.updateGoodSpecSku(b2cGoodSpecSkuDTO);
         return Map.of("good_spec_sku_id", b2cGoodSpecSkuDTO.getGood_spec_sku_id());
@@ -90,7 +90,7 @@ public class B2CGoodSpecSkuServiceImpl implements B2cGoodSpecSkuService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteGoodSpecSku(B2cGoodSpecSkuDTO b2cGoodSpecSkuDTO) {
         b2cGoodSpecSkuMapper.deleteGoodSpecSku(b2cGoodSpecSkuDTO);
         return Map.of("good_spec_sku_id", b2cGoodSpecSkuDTO.getGood_spec_sku_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2cGoodBrandServiceImpl.java

@@ -44,7 +44,7 @@ public class B2cGoodBrandServiceImpl implements B2cGoodBrandService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertGoodBrand(B2cGoodBrandDTO b2cGoodBrandDTO) {
         b2cGoodBrandMapper.insertGoodBrand(b2cGoodBrandDTO);
         return Map.of("good_brand_id", b2cGoodBrandDTO.getGood_brand_id());
@@ -54,7 +54,7 @@ public class B2cGoodBrandServiceImpl implements B2cGoodBrandService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateGoodBrand(B2cGoodBrandDTO b2cGoodBrandDTO) {
         b2cGoodBrandMapper.updateGoodBrand(b2cGoodBrandDTO);
         return Map.of("good_brand_id", b2cGoodBrandDTO.getGood_brand_id());
@@ -64,7 +64,7 @@ public class B2cGoodBrandServiceImpl implements B2cGoodBrandService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteGoodBrand(B2cGoodBrandDTO b2cGoodBrandDTO) {
         b2cGoodBrandMapper.deleteGoodBrand(b2cGoodBrandDTO);
         return Map.of("good_brand_id", b2cGoodBrandDTO.getGood_brand_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2cGoodCategoryServiceImpl.java

@@ -44,7 +44,7 @@ public class B2cGoodCategoryServiceImpl implements B2cGoodCategoryService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertGoodCategory(B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         b2cGoodCategoryMapper.insertGoodCategory(b2cGoodCategoryDTO);
         return Map.of("good_category_id", b2cGoodCategoryDTO.getGood_category_id());
@@ -54,7 +54,7 @@ public class B2cGoodCategoryServiceImpl implements B2cGoodCategoryService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateGoodCategory(B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         b2cGoodCategoryMapper.updateGoodCategory(b2cGoodCategoryDTO);
         return Map.of("good_category_id", b2cGoodCategoryDTO.getGood_category_id());
@@ -64,7 +64,7 @@ public class B2cGoodCategoryServiceImpl implements B2cGoodCategoryService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteGoodCategory(B2cGoodCategoryDTO b2cGoodCategoryDTO) {
         b2cGoodCategoryMapper.deleteGoodCategory(b2cGoodCategoryDTO);
         return Map.of("good_category_id", b2cGoodCategoryDTO.getGood_category_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2cGoodServiceImpl.java

@@ -44,7 +44,7 @@ public class B2cGoodServiceImpl implements B2cGoodService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertGood(B2cGoodDTO b2cGoodDTO) {
         b2cGoodMapper.insertGood(b2cGoodDTO);
         return Map.of("good_id", b2cGoodDTO.getGood_id());
@@ -54,7 +54,7 @@ public class B2cGoodServiceImpl implements B2cGoodService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateGood(B2cGoodDTO b2cGoodDTO) {
         b2cGoodMapper.updateGood(b2cGoodDTO);
         return Map.of("good_id", b2cGoodDTO.getGood_id());
@@ -64,7 +64,7 @@ public class B2cGoodServiceImpl implements B2cGoodService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteGood(B2cGoodDTO b2cGoodDTO) {
         b2cGoodMapper.deleteGood(b2cGoodDTO);
         return Map.of("good_id", b2cGoodDTO.getGood_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2cGoodUnitServiceImpl.java

@@ -44,7 +44,7 @@ public class B2cGoodUnitServiceImpl implements B2cGoodUnitService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertGoodUnit(B2cGoodUnitDTO b2cGoodUnitDTO) {
         b2cGoodUnitMapper.insertGoodUnit(b2cGoodUnitDTO);
         return Map.of("good_unit_id", b2cGoodUnitDTO.getGood_unit_id());
@@ -54,7 +54,7 @@ public class B2cGoodUnitServiceImpl implements B2cGoodUnitService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateGoodUnit(B2cGoodUnitDTO b2cGoodUnitDTO) {
         b2cGoodUnitMapper.updateGoodUnit(b2cGoodUnitDTO);
         return Map.of("good_unit_id", b2cGoodUnitDTO.getGood_unit_id());
@@ -64,7 +64,7 @@ public class B2cGoodUnitServiceImpl implements B2cGoodUnitService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteGoodUnit(B2cGoodUnitDTO b2cGoodUnitDTO) {
         b2cGoodUnitMapper.deleteGoodUnit(b2cGoodUnitDTO);
         return Map.of("good_unit_id", b2cGoodUnitDTO.getGood_unit_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2cMemberServiceImpl.java

@@ -68,7 +68,7 @@ public class B2cMemberServiceImpl implements B2cMemberService {
      * 创建
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertMember(B2cMemberDTO b2cMemberDTO) {
         b2cMemberMapper.insertMember(b2cMemberDTO);
         return Map.of("good_member_id", b2cMemberDTO.getMember_id());
@@ -78,7 +78,7 @@ public class B2cMemberServiceImpl implements B2cMemberService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateMember(B2cMemberDTO b2cMemberDTO) {
         b2cMemberMapper.updateMember(b2cMemberDTO);
         return Map.of("good_member_id", b2cMemberDTO.getMember_id());
@@ -88,7 +88,7 @@ public class B2cMemberServiceImpl implements B2cMemberService {
      * 删除
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> deleteMember(B2cMemberDTO b2cMemberDTO) {
         b2cMemberMapper.deleteMember(b2cMemberDTO);
         return Map.of("good_member_id", b2cMemberDTO.getMember_id());

+ 2 - 2
src/main/java/com/backendsys/service/B2c/B2cOrderServiceImpl.java

@@ -61,7 +61,7 @@ public class B2cOrderServiceImpl implements B2cOrderService {
      * 创建订单
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertOrder(B2cOrderDTO b2cOrderDTO) {
         b2cOrderMapper.insertOrder(b2cOrderDTO);
         Map<String, Object> result = new LinkedHashMap<>();
@@ -74,7 +74,7 @@ public class B2cOrderServiceImpl implements B2cOrderService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateOrder(B2cOrderDTO b2cOrderDTO) {
         b2cOrderMapper.updateOrder(b2cOrderDTO);
         return Map.of("order_id", b2cOrderDTO.getOrder_id());

+ 3 - 3
src/main/java/com/backendsys/service/B2c/B2cShoppingCartServiceImpl.java

@@ -51,7 +51,7 @@ public class B2cShoppingCartServiceImpl implements B2cShoppingCartService {
      * 加入购物车
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertShoppingCart(B2cShoppingCartDTO b2cShoppingCartDTO) {
         b2cShoppingCartMapper.insertShoppingCart(b2cShoppingCartDTO);
         Map<String, Object> result = new LinkedHashMap<>();
@@ -63,7 +63,7 @@ public class B2cShoppingCartServiceImpl implements B2cShoppingCartService {
      * 更新
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> updateShoppingCart(B2cShoppingCartDTO b2cShoppingCartDTO) {
         b2cShoppingCartMapper.updateShoppingCart(b2cShoppingCartDTO);
         Map<String, Object> result = new LinkedHashMap<>();
@@ -76,7 +76,7 @@ public class B2cShoppingCartServiceImpl implements B2cShoppingCartService {
      * 清空购物车
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> cleanShoppingCart(B2cShoppingCartDTO b2cShoppingCartDTO) {
         b2cShoppingCartMapper.cleanShoppingCart(b2cShoppingCartDTO);
         return Map.of("member_id", b2cShoppingCartDTO.getMember_id());

+ 1 - 1
src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiServiceImpl.java

@@ -73,7 +73,7 @@ public class SDKTencentAiServiceImpl implements SDKTencentAiService {
     /**
      * [腾讯-数智人] 上传素材文件 (临时目录)
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public UploadResult uploadTemp(MultipartFile file, String type, String fileTargetPath) {
 
         // 获得临时密钥

+ 2 - 2
src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiTimbreServiceImpl.java

@@ -43,7 +43,7 @@ public class SDKTencentAiTimbreServiceImpl implements SDKTencentAiTimbreService
     /**
      * [内部服务][腾讯-数智人] 获取公共/定制音色 (使用公司账号)
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> initTimbre(Integer pageIndex, Integer pageSize) {
 
         Map<String, Object> payload = new HashMap<>();
@@ -117,7 +117,7 @@ public class SDKTencentAiTimbreServiceImpl implements SDKTencentAiTimbreService
     /**
      * [腾讯-数智人] 获得音色详细信息 (通过音色名称)
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> getTimbreObject(String timbre_name) {
 
         // 循环获得数据列表,直到 total 小于 pageSize

+ 3 - 3
src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiVideoServiceImpl.java

@@ -44,7 +44,7 @@ public class SDKTencentAiVideoServiceImpl implements SDKTencentAiVideoService {
     /**
      * [腾讯-数智人] 创建 定制音频
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> customPersonaudioMake(AiivhMakeBroadcastAudioTaskDTO aiivhMakeBroadcastAudioTaskDTO) {
 
         try {
@@ -102,7 +102,7 @@ public class SDKTencentAiVideoServiceImpl implements SDKTencentAiVideoService {
     /**
      * [腾讯-数智人] 创建 定制视频
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> customPersonvideoMake(AiivhMakeBroadcastTaskDTO aiivhMakeBroadcastTaskDTO) {
 
         try {
@@ -158,7 +158,7 @@ public class SDKTencentAiVideoServiceImpl implements SDKTencentAiVideoService {
     /**
      * [腾讯-数智人] 查询 视频定制视频制作进度
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> customPersonvideoGetprogress(String task_id) {
         // -- Http Request --------------------------------------------
         Map<String, Object> signature = sdkTencentService.getSignature(appKey, accessToken); // 获得 Signature 签名

+ 8 - 8
src/main/java/com/backendsys/service/SDKService/SDKTencent/SDKTencentAiVirtualmanServiceImpl.java

@@ -75,7 +75,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
     /**
      * [腾讯-数智人] 初始化 定制数智人列表 (使用公司账号)
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> initCustomVirtualman(Integer pageIndex, Integer pageSize) {
         Map<String, Object> payload = new HashMap<>();
         payload.put("VirtualmanTypeCode", "small_sample_2d");
@@ -115,7 +115,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
      * [腾讯-数智人] 初始化公共数智人列表 (使用空白账号)
      * 注:有效期:2024/03/25-2024/04/08 过期后能否继续查询?
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> initPublicVirtualman(Integer pageIndex, Integer pageSize) {
 
         Map<String, Object> payload = new HashMap<>();
@@ -219,7 +219,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
     /**
      * [腾讯-数智人] 创建形象/音色定制任务
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> makeVirtualTask(TencentCustomserviceDTO tencentCustomserviceDTO) {
         RLock lock = redissonClient.getLock("makeVirtualTask");
         try { lock.tryLock(3, TimeUnit.SECONDS);
@@ -350,7 +350,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
     /**
      * [腾讯-数智人] 创建定制形象任务 (未提交远程)
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> insertVirtualmanTask(TencentCustomserviceDTO tencentCustomserviceDTO) {
 
         TencentCustomservicePayloadDTO tencentCustomservicePayloadDTO = tencentCustomserviceDTO.getPayload();
@@ -440,7 +440,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
     /**
      * 在上面定制的基础上增加排队机制
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> makeVirtualTaskQueue(TencentCustomserviceDTO tencentCustomserviceDTO) {
 
         RLock lock = redissonClient.getLock("makeVirtualTask");
@@ -506,7 +506,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
     /**
      * 发起任务 (填写 腾讯订单、备注,同时发起任务)
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> launchVirtualTaskQueue(VirtualmanLaunchDTO virtualmanLaunchDTO) {
 
         // 1.获得任务详情
@@ -557,7 +557,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
     /**
      * [腾讯-数智人] 查询形象/音色定制进度
      */
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> getProgressOfVirtualmanTask(String task_id) {
         // -- Http Request --------------------------------------------
         Map<String, Object> signature = sdkTencentService.getSignature(appKey, accessToken); // 获得 Signature 签名
@@ -661,7 +661,7 @@ public class SDKTencentAiVirtualmanServiceImpl implements SDKTencentAiVirtualman
         return resp;
     }
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public List<Map<String, Object>> getQueueOfVirtualmanTask(String task_id) {
 
         RList<String> rList = redissonClient.getList("makeVirtualTaskQueue");