|
@@ -1,14 +1,24 @@
|
|
package com.backendsys.modules.crt.service.impl;
|
|
package com.backendsys.modules.crt.service.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import com.backendsys.exception.CustException;
|
|
import com.backendsys.modules.cms.article.entity.ArticleCategory;
|
|
import com.backendsys.modules.cms.article.entity.ArticleCategory;
|
|
|
|
+import com.backendsys.modules.common.config.security.enums.SecurityEnum;
|
|
|
|
+import com.backendsys.modules.common.config.security.utils.SecurityUtil;
|
|
import com.backendsys.modules.crt.dao.CrtDramaProjectDao;
|
|
import com.backendsys.modules.crt.dao.CrtDramaProjectDao;
|
|
|
|
+import com.backendsys.modules.crt.dao.CrtDramaProjectSettingsDao;
|
|
import com.backendsys.modules.crt.entity.CrtDramaProject;
|
|
import com.backendsys.modules.crt.entity.CrtDramaProject;
|
|
|
|
+import com.backendsys.modules.crt.entity.CrtDramaProjectSettings;
|
|
|
|
+import com.backendsys.modules.crt.enums.AspectRatioEnums;
|
|
|
|
+import com.backendsys.modules.crt.enums.ProjectSettingTypeEnums;
|
|
import com.backendsys.modules.crt.service.CrtDramaProjectService;
|
|
import com.backendsys.modules.crt.service.CrtDramaProjectService;
|
|
import com.backendsys.utils.response.PageEntity;
|
|
import com.backendsys.utils.response.PageEntity;
|
|
import com.backendsys.utils.response.PageInfoResult;
|
|
import com.backendsys.utils.response.PageInfoResult;
|
|
import com.backendsys.utils.v2.PageUtils;
|
|
import com.backendsys.utils.v2.PageUtils;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -16,8 +26,12 @@ import java.util.Map;
|
|
@Service
|
|
@Service
|
|
public class CrtDramaProjectServiceImpl implements CrtDramaProjectService {
|
|
public class CrtDramaProjectServiceImpl implements CrtDramaProjectService {
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private SecurityUtil securityUtil;
|
|
@Autowired
|
|
@Autowired
|
|
private CrtDramaProjectDao crtDramaProjectDao;
|
|
private CrtDramaProjectDao crtDramaProjectDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CrtDramaProjectSettingsDao crtDramaProjectSettingsDao;
|
|
|
|
|
|
// 获取短剧创作-项目列表
|
|
// 获取短剧创作-项目列表
|
|
@Override
|
|
@Override
|
|
@@ -27,4 +41,81 @@ public class CrtDramaProjectServiceImpl implements CrtDramaProjectService {
|
|
return new PageInfoResult(list).toEntity();
|
|
return new PageInfoResult(list).toEntity();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 创建短剧创作-项目
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Map<String, Object> createCrtDramaProject(CrtDramaProject crtDramaProject) {
|
|
|
|
+
|
|
|
|
+ // 创建项目
|
|
|
|
+ crtDramaProjectDao.insert(crtDramaProject);
|
|
|
|
+
|
|
|
|
+ // 创建项目配置 (生图、生视频配置)
|
|
|
|
+ Long project_id = crtDramaProject.getId();
|
|
|
|
+ CrtDramaProjectSettings settings_image = new CrtDramaProjectSettings();
|
|
|
|
+ settings_image.setDrama_project_id(project_id);
|
|
|
|
+ settings_image.setDrama_project_setting_type(ProjectSettingTypeEnums.GENERATE_IMAGE.getKey()); // 项目配置类型
|
|
|
|
+ settings_image.setAspect_ratio(AspectRatioEnums.RATIO_16_9.getKey()); // 画面比例
|
|
|
|
+ settings_image.setModel_id(1L);
|
|
|
|
+ settings_image.setLora_style_id(1L);
|
|
|
|
+ settings_image.setLora_style_strength(1.0f);
|
|
|
|
+ crtDramaProjectSettingsDao.insert(settings_image);
|
|
|
|
+
|
|
|
|
+ CrtDramaProjectSettings settings_video = new CrtDramaProjectSettings();
|
|
|
|
+ settings_video.setDrama_project_id(project_id);
|
|
|
|
+ settings_video.setDrama_project_setting_type(ProjectSettingTypeEnums.GENERATE_VIDEO.getKey()); // 项目配置类型
|
|
|
|
+ settings_image.setAspect_ratio(AspectRatioEnums.RATIO_16_9.getKey()); // 画面比例
|
|
|
|
+ crtDramaProjectSettingsDao.insert(settings_video);
|
|
|
|
+
|
|
|
|
+ return Map.of("project_id", project_id);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 编辑短剧创作-项目
|
|
|
|
+ */
|
|
|
|
+ @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();
|
|
|
|
+
|
|
|
|
+ // 编辑他人的用户信息
|
|
|
|
+ // - 编辑自己 (无需权限)
|
|
|
|
+ // - 编辑他人 (需要子权限或超级管理员)
|
|
|
|
+ if (user_id != SecurityUtil.getUserId() && !securityUtil.hasPermission("36.1.3")) {
|
|
|
|
+ throw new CustException(SecurityEnum.NOAUTH);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ crtDramaProject.setId(crtDramaProject.getDrama_project_id());
|
|
|
|
+
|
|
|
|
+ System.out.println(crtDramaProject);
|
|
|
|
+
|
|
|
|
+ crtDramaProjectDao.updateById(crtDramaProject);
|
|
|
|
+ return Map.of("project_id", crtDramaProject.getDrama_project_id());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 删除短剧创作-项目
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Map<String, Object> deleteCrtDramaProject(CrtDramaProject crtDramaProject) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return Map.of("project_id", crtDramaProject.getDrama_project_id());
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|