tsurumure преди 2 месеца
родител
ревизия
e33a7442b1

+ 17 - 14
db/crt_drama_project.sql

@@ -8,27 +8,30 @@ DROP TABLE IF EXISTS `crt_drama_project`;
 CREATE TABLE `crt_drama_project` (
     PRIMARY KEY (`id`),
     `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
-    `user_id` BIGINT NOT NULL COMMENT '用户ID',
+    `user_id` BIGINT NOT NULL COMMENT '用户ID (拥有者)',
     `project_name` VARCHAR(50) NOT NULL COMMENT '项目名称',
     `drama_lora_style_id` BIGINT COMMENT '风格LoRA ID',
     `drama_lora_character_ids` VARCHAR(10) COMMENT '人物LoRA ID (多个值使用逗号分隔)',
+    `create_user_id` BIGINT NOT NULL COMMENT '用户ID (创建者)',
     `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
     `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
     INDEX `idx_user_id` (`user_id`),
+    INDEX `idx_create_user_id` (`create_user_id`),
     INDEX `idx_drama_lora_style_id` (`drama_lora_style_id`)
 ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='短剧创作-项目表';
 
-INSERT INTO crt_drama_project(user_id, project_name, drama_lora_style_id, drama_lora_character_ids) VALUES
-    (1, '测试项目', null, null),
-    (1, '我的仙狐娘娘', 1, '1,2'),
-    (1, '数量测试项目3', null, null),
-    (1, '数量测试项目4', null, null),
-    (1, '数量测试项目5', null, null),
-    (1, '数量测试项目6', null, null),
-    (1, '数量测试项目7', null, null),
-    (1, '数量测试项目8', null, null),
-    (1, '数量测试项目9', null, null),
-    (1, '数量测试项目10', null, null),
-    (1, '数量测试项目11', null, null),
-    (1, '数量测试项目12', null, null)
+INSERT INTO crt_drama_project(user_id, project_name, drama_lora_style_id, drama_lora_character_ids, create_user_id) VALUES
+    (1, '测试项目', null, null, 1),
+    (1, '我的仙狐娘娘', 1, '1,2', 1),
+    (1, '数量测试项目3', null, null, 1),
+    (1, '数量测试项目4', null, null, 1),
+    (1, '数量测试项目5', null, null, 1),
+    (1, '数量测试项目6', null, null, 1),
+    (1, '数量测试项目7', null, null, 1),
+    (1, '数量测试项目8', null, null, 1),
+    (1, '数量测试项目9', null, null, 1),
+    (1, '数量测试项目10', null, null, 1),
+    (1, '数量测试项目11', null, null, 1),
+    (1, '数量测试项目12', null, null, 1),
+    (2, '数量测试项目12', null, null, 1)
 ;

+ 6 - 4
db/sys_user_role_permission_relation.sql

@@ -101,10 +101,12 @@ INSERT INTO sys_user_role_permission_relation(role_id, permission_id) VALUES
 
     (1, '36'),
         (1, '36.1'),
-            (1, '36.1.1'), (1, '36.1.2'), (1, '36.1.3'),
-                (1, '36.1.4'), (1, '36.1.4.1'),
-                (1, '36.1.5'), (1, '36.1.5.1'),
-                (1, '36.1.6'), (1, '36.1.6.1'),
+            (1, '36.1.1'),
+            (1, '36.1.2'),
+            (1, '36.1.3'),
+            (1, '36.1.4'), (1, '36.1.4.1'),
+            (1, '36.1.5'), (1, '36.1.5.1'),
+            (1, '36.1.6'), (1, '36.1.6.1'),
         (1, '36.2'),
             (1, '36.2.1'), (1, '36.2.2'),
 

+ 3 - 1
src/main/java/com/backendsys/modules/crt/controller/CrtDramaProjectController.java

@@ -44,7 +44,9 @@ public class CrtDramaProjectController {
     @PreAuthorize("@sr.hasPermission('36.1.2')")
     @PostMapping("/api/crt/drama/createDramaProject")
     public Result createDramaProject(@Validated(CrtDramaProject.Create.class) @RequestBody CrtDramaProject crtDramaProject) {
-        crtDramaProject.setUser_id(SecurityUtil.getUserId());
+        Long user_id = SecurityUtil.getUserId();
+        crtDramaProject.setUser_id(user_id);
+        crtDramaProject.setCreate_user_id(user_id);
         return Result.success().put("data", crtDramaProjectService.createCrtDramaProject(crtDramaProject));
     }
 

+ 1 - 0
src/main/java/com/backendsys/modules/crt/entity/CrtDramaProject.java

@@ -44,6 +44,7 @@ public class CrtDramaProject {
 
     private Long drama_lora_style_id;
     private String drama_lora_character_ids;
+    private Long create_user_id;
     private String create_time;
     private String update_time;
 

+ 3 - 6
src/main/java/com/backendsys/modules/crt/service/impl/CrtDramaProjectServiceImpl.java

@@ -48,7 +48,7 @@ public class CrtDramaProjectServiceImpl implements CrtDramaProjectService {
     @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> createCrtDramaProject(CrtDramaProject crtDramaProject) {
 
-        // 创建项目
+        // 创建项目 (此处不判断LoRA有效性,在调用的时候再判断)
         crtDramaProjectDao.insert(crtDramaProject);
 
         // 创建项目配置 (生图、生视频配置)
@@ -77,19 +77,16 @@ public class CrtDramaProjectServiceImpl implements CrtDramaProjectService {
     @Override
     public Map<String, Object> updateCrtDramaProject(CrtDramaProject crtDramaProject) {
 
-
-
-
-
         CrtDramaProject detail = crtDramaProjectDao.selectById(crtDramaProject.getDrama_project_id());
         if (detail == null)  throw new CustException("项目不存在");
 
         Long user_id = detail.getUser_id();
+        System.out.println("项目user_id: " + user_id + ", 当前user_id: " + SecurityUtil.getUserId());
 
         // 编辑他人的用户信息
         // - 编辑自己 (无需权限)
         // - 编辑他人 (需要子权限或超级管理员)
-        if (user_id != SecurityUtil.getUserId() && !securityUtil.hasPermission("36.1.3")) {
+        if (user_id != SecurityUtil.getUserId() && !securityUtil.hasPermission("36.1.4")) {
             throw new CustException(SecurityEnum.NOAUTH);
         }
 

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

@@ -8,6 +8,7 @@
         p.project_name,
         COALESCE(p.drama_lora_style_id, '') drama_lora_style_id,
         COALESCE(p.drama_lora_character_ids, '') drama_lora_character_ids,
+        p.create_user_id,
         p.create_time,
         p.update_time
     </sql>
@@ -20,6 +21,7 @@
                 jdbcType="VARCHAR" typeHandler="com.backendsys.config.Mybatis.handler.StringToListTypeHandler" />
         <result property="drama_lora_style_id" column="drama_lora_style_id" javaType="java.lang.Long" />
         <result property="drama_lora_character_ids" column="drama_lora_character_ids" />
+        <result property="create_user_id" column="create_user_id" />
         <result property="create_time" column="create_time" />
         <result property="update_time" column="update_time" />
     </resultMap>