dengsixing 1 год назад
Родитель
Сommit
a20eb15682
40 измененных файлов с 1209 добавлено и 43 удалено
  1. 46 0
      src/main/java/com/fdkankan/scene/Interceptor/AfterReturningAspect.java
  2. 10 0
      src/main/java/com/fdkankan/scene/annotation/ScrbGetInfo.java
  3. 10 0
      src/main/java/com/fdkankan/scene/constant/FileYunPath.java
  4. 21 0
      src/main/java/com/fdkankan/scene/controller/LeaveWordController.java
  5. 2 1
      src/main/java/com/fdkankan/scene/controller/SceneEditController.java
  6. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneEditInfoScrbController.java
  7. 50 0
      src/main/java/com/fdkankan/scene/controller/ScrbController.java
  8. 129 0
      src/main/java/com/fdkankan/scene/controller/ScrbEditController.java
  9. 21 0
      src/main/java/com/fdkankan/scene/controller/TextVoiceTransferController.java
  10. 19 0
      src/main/java/com/fdkankan/scene/dto/AsrCallbackDTO.java
  11. 23 0
      src/main/java/com/fdkankan/scene/dto/BaseIdDTO.java
  12. 14 0
      src/main/java/com/fdkankan/scene/dto/LeaveWordDTO.java
  13. 19 0
      src/main/java/com/fdkankan/scene/dto/ScrbSaveDTO.java
  14. 21 0
      src/main/java/com/fdkankan/scene/dto/TextVoiceTransferDTO.java
  15. 51 0
      src/main/java/com/fdkankan/scene/entity/LeaveWord.java
  16. 60 0
      src/main/java/com/fdkankan/scene/entity/SceneEditInfoScrb.java
  17. 87 0
      src/main/java/com/fdkankan/scene/entity/TextVoiceTransfer.java
  18. 3 3
      src/main/java/com/fdkankan/scene/generate/AutoGenerate.java
  19. 18 0
      src/main/java/com/fdkankan/scene/mapper/ILeaveWordMapper.java
  20. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneEditInfoScrbMapper.java
  21. 18 0
      src/main/java/com/fdkankan/scene/mapper/ITextVoiceTransferMapper.java
  22. 19 0
      src/main/java/com/fdkankan/scene/service/ILeaveWordService.java
  23. 19 0
      src/main/java/com/fdkankan/scene/service/ISceneEditInfoScrbService.java
  24. 30 0
      src/main/java/com/fdkankan/scene/service/IScrbService.java
  25. 19 0
      src/main/java/com/fdkankan/scene/service/ITextVoiceTransferService.java
  26. 41 0
      src/main/java/com/fdkankan/scene/service/impl/LeaveWordServiceImpl.java
  27. 25 0
      src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoScrbServiceImpl.java
  28. 1 1
      src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java
  29. 191 0
      src/main/java/com/fdkankan/scene/service/impl/ScrbServiceImpl.java
  30. 25 0
      src/main/java/com/fdkankan/scene/service/impl/TextVoiceTransferServiceImpl.java
  31. 10 27
      src/main/java/com/fdkankan/scene/util/AsrUtil.java
  32. 32 9
      src/main/java/com/fdkankan/scene/util/TtsUtil.java
  33. 21 0
      src/main/java/com/fdkankan/scene/vo/BaseIdParamVO.java
  34. 3 0
      src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java
  35. 52 0
      src/main/java/com/fdkankan/scene/vo/TextVoiceTransferVO.java
  36. 43 0
      src/main/resources/bootstrap-test.yml
  37. 2 2
      src/main/resources/bootstrap.yml
  38. 5 0
      src/main/resources/mapper/scene/LeaveWordMapper.xml
  39. 5 0
      src/main/resources/mapper/scene/SceneEditInfoScrbMapper.xml
  40. 5 0
      src/main/resources/mapper/scene/TextVoiceTransferMapper.xml

+ 46 - 0
src/main/java/com/fdkankan/scene/Interceptor/AfterReturningAspect.java

@@ -0,0 +1,46 @@
+package com.fdkankan.scene.Interceptor;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.scene.entity.SceneEditInfoScrb;
+import com.fdkankan.scene.service.ISceneEditInfoScrbService;
+import com.fdkankan.scene.vo.SceneInfoVO;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+@Aspect
+@Component
+public class AfterReturningAspect {
+
+    @Autowired
+    private ISceneEditInfoScrbService sceneEditInfoScrbService;
+
+    @AfterReturning(
+        pointcut = "execution(* com.fdkankan.scene.service.ISceneEditInfoService.getSceneInfo(..))",
+            returning = "result"
+    )
+    public void afterReturningAdvice(SceneInfoVO result) throws Throwable {
+
+        String num = result.getNum();
+        SceneEditInfoScrb sceneEditInfoScrb = sceneEditInfoScrbService.getByNum(num);
+        if(Objects.nonNull(sceneEditInfoScrb)){
+            Map<String,Object> scrbInfo = new HashMap<>();
+            result.setScrbInfo(scrbInfo);
+            //基础设置
+            scrbInfo.put("baseSetting", JSON.parseArray(sceneEditInfoScrb.getBaseSetting()));
+            //数字人
+            scrbInfo.put("aiSetting", JSON.parseArray(sceneEditInfoScrb.getAiSetting()));
+            //专题导航
+            scrbInfo.put("navigation", JSON.parseArray(sceneEditInfoScrb.getNavigation()));
+        }
+    }
+}

+ 10 - 0
src/main/java/com/fdkankan/scene/annotation/ScrbGetInfo.java

@@ -0,0 +1,10 @@
+package com.fdkankan.scene.annotation;
+
+import java.lang.annotation.*;
+
+@Target({ElementType.PARAMETER, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface ScrbGetInfo {
+    String description() default "";
+}

+ 10 - 0
src/main/java/com/fdkankan/scene/constant/FileYunPath.java

@@ -0,0 +1,10 @@
+package com.fdkankan.scene.constant;
+
+import com.fdkankan.model.constants.UploadFilePath;
+
+public class FileYunPath extends UploadFilePath {
+
+    public final static String TEMP_PATH = "temp/%s/";
+
+
+}

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/LeaveWordController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-18
+ */
+@RestController
+@RequestMapping("/scene/leaveWord")
+public class LeaveWordController {
+
+}
+

+ 2 - 1
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -386,7 +386,8 @@ public class SceneEditController extends BaseController {
     @GetMapping(value = "/getInfo")
     public SceneInfoVO getInfo(@Validated SceneInfoParamVO param) throws Exception{
         param.setReqType(SceneInfoReqType.EDIT.code());
-        return sceneEditInfoService.getSceneInfo(param);
+        SceneInfoVO sceneInfo = sceneEditInfoService.getSceneInfo(param);
+        return sceneInfo;
     }
 
     /**

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditInfoScrbController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 四川日报编辑表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-18
+ */
+@RestController
+@RequestMapping("/scene/sceneEditInfoScrb")
+public class SceneEditInfoScrbController {
+
+}
+

+ 50 - 0
src/main/java/com/fdkankan/scene/controller/ScrbController.java

@@ -0,0 +1,50 @@
+package com.fdkankan.scene.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.CommonSuccessStatus;
+import com.fdkankan.scene.dto.AsrCallbackDTO;
+import com.fdkankan.scene.dto.LeaveWordDTO;
+import com.fdkankan.scene.dto.ScrbSaveDTO;
+import com.fdkankan.scene.dto.TextVoiceTransferDTO;
+import com.fdkankan.scene.entity.LeaveWord;
+import com.fdkankan.scene.service.ILeaveWordService;
+import com.fdkankan.scene.service.IScrbService;
+import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("/service/scene/scrb")
+public class ScrbController extends BaseController {
+
+    @Autowired
+    private IScrbService scrbService;
+    @Autowired
+    private ILeaveWordService leaveWordService;
+
+    @PostMapping("asrCallback")
+    public ResultData asrCallback(AsrCallbackDTO param){
+        scrbService.asrCallback(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("leaveWord/add")
+    public ResultData addLeaveWord(@RequestBody @Valid LeaveWordDTO dto){
+        leaveWordService.addLeaveWord(dto);
+        return ResultData.ok();
+    }
+
+    @GetMapping("leaveWord/list")
+    public ResultData listLeaveWord(@RequestParam("num") String num){
+        return ResultData.ok(leaveWordService.list(new LambdaQueryWrapper<LeaveWord>().eq(LeaveWord::getNum, num).eq(LeaveWord::getStatus, CommonSuccessStatus.SUCCESS.code())));
+    }
+
+
+
+
+
+}

+ 129 - 0
src/main/java/com/fdkankan/scene/controller/ScrbEditController.java

@@ -0,0 +1,129 @@
+package com.fdkankan.scene.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.CommonSuccessStatus;
+import com.fdkankan.scene.annotation.CheckPermit;
+import com.fdkankan.scene.dto.BaseIdDTO;
+import com.fdkankan.scene.dto.ScrbSaveDTO;
+import com.fdkankan.scene.dto.TextVoiceTransferDTO;
+import com.fdkankan.scene.entity.LeaveWord;
+import com.fdkankan.scene.service.ILeaveWordService;
+import com.fdkankan.scene.service.IScrbService;
+import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.Objects;
+
+@RestController
+@RequestMapping("/service/scene/edit/scrb")
+public class ScrbEditController extends BaseController {
+
+    @Autowired
+    private IScrbService scrbService;
+    @Autowired
+    private ILeaveWordService leaveWordService;
+
+    /**
+     * 文字语音互转列表
+     * @param num
+     * @return
+     */
+//    @CheckPermit
+    @GetMapping("/textVoiceTransfer/list")
+    public ResultData listTextVoiceTransfer(@RequestParam String num){
+        return ResultData.ok(scrbService.listTextVoiceTransfer(num));
+    }
+
+    /**
+     * 文字语音互转列表
+     * @return
+     */
+//    @CheckPermit
+    @PostMapping("/textVoiceTransfer/delete")
+    public ResultData deleteTextVoiceTransfer(@RequestBody @Valid TextVoiceTransferDTO dto){
+        scrbService.deleteTextVoiceTransfer(dto);
+        return ResultData.ok();
+    }
+
+    /**
+     * 合成语音
+     * @param dto
+     * @return
+     * @throws Exception
+     */
+//    @CheckPermit
+    @PostMapping("/tts/compose")
+    public ResultData ttsCompose(@RequestBody @Valid TextVoiceTransferDTO dto) throws Exception{
+        return ResultData.ok(scrbService.ttsCompose(dto));
+    }
+
+    /**
+     * 保存
+     * @return
+     */
+//    @CheckPermit
+    @PostMapping("/tts/save")
+    public ResultData ttsSave(@RequestBody @Valid TextVoiceTransferDTO dto) throws Exception {
+        return scrbService.ttsSave(dto);
+    }
+
+    /**
+     * 保存
+     * @param num
+     * @return
+     */
+//    @CheckPermit
+    @PostMapping("/asr/save")
+    public ResultData asrSave(@RequestParam(value = "num") String num, Long id, @RequestParam(value = "file") MultipartFile file) throws Exception {
+        return scrbService.asrSave(num, id, file);
+    }
+
+    /**
+     * 保存
+     * @return
+     */
+//    @CheckPermit
+    @PostMapping("/save")
+    public ResultData baseSave(@RequestBody @Valid ScrbSaveDTO param) throws Exception {
+        scrbService.save(param);
+        return ResultData.ok();
+    }
+
+//    @CheckPermit
+    @GetMapping("leaveWord/list")
+    public ResultData listLeaveWord(@RequestParam("num") String num){
+        return ResultData.ok(leaveWordService.list(new LambdaQueryWrapper<LeaveWord>().eq(LeaveWord::getNum, num)));
+    }
+
+//    @CheckPermit
+    @PostMapping("leaveWord/delete")
+    public ResultData listLeaveWord(@RequestBody @Valid BaseIdDTO dto){
+        LeaveWord one = leaveWordService.getOne(new LambdaQueryWrapper<LeaveWord>().eq(LeaveWord::getNum, dto.getNum()).eq(LeaveWord::getId, dto.getId()));
+        if(Objects.nonNull(one)){
+            leaveWordService.removeById(one.getId());
+        }
+        return ResultData.ok();
+    }
+
+//    @CheckPermit
+    @PostMapping("leaveWord/audit")
+    public ResultData auditLeaveWord(@RequestBody @Valid BaseIdDTO dto){
+        LeaveWord one = leaveWordService.getOne(new LambdaQueryWrapper<LeaveWord>().eq(LeaveWord::getNum, dto.getNum()).eq(LeaveWord::getId, dto.getId()));
+        if(Objects.nonNull(one)){
+            one.setStatus(CommonSuccessStatus.SUCCESS.code());
+            one.setUpdateTime(new Date());
+            leaveWordService.updateById(one);
+        }
+        return ResultData.ok();
+    }
+
+
+
+
+
+}

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/TextVoiceTransferController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 文字语音互转 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-17
+ */
+@RestController
+@RequestMapping("/scene/textVoiceTransfer")
+public class TextVoiceTransferController {
+
+}
+

+ 19 - 0
src/main/java/com/fdkankan/scene/dto/AsrCallbackDTO.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.dto;
+
+import lombok.Data;
+
+@Data
+public class AsrCallbackDTO {
+
+    private Integer code;
+    private  String message;
+    private String requestId;
+    private String appid;
+    private Integer projectId;
+    private String audioUrl;
+    private String text;
+    private String resultDetail;
+    private Double audioTime;
+
+
+}

+ 23 - 0
src/main/java/com/fdkankan/scene/dto/BaseIdDTO.java

@@ -0,0 +1,23 @@
+package com.fdkankan.scene.dto;
+
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 通用sid类型参数类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/10
+ **/
+@Data
+public class BaseIdDTO extends BaseSceneParamVO {
+
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+}

+ 14 - 0
src/main/java/com/fdkankan/scene/dto/LeaveWordDTO.java

@@ -0,0 +1,14 @@
+package com.fdkankan.scene.dto;
+
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class LeaveWordDTO extends BaseSceneParamVO {
+
+    @NotBlank(message = "留言不能为空")
+    private String content;
+
+}

+ 19 - 0
src/main/java/com/fdkankan/scene/dto/ScrbSaveDTO.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.dto;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ScrbSaveDTO extends BaseSceneParamVO {
+
+    private List<JSONObject> baseSetting;
+
+    private List<JSONObject> aiSetting;
+
+    private List<JSONObject> navigation;
+
+
+}

+ 21 - 0
src/main/java/com/fdkankan/scene/dto/TextVoiceTransferDTO.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.dto;
+
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import lombok.Data;
+
+@Data
+public class TextVoiceTransferDTO extends BaseSceneParamVO {
+
+    private Long id;
+
+    private String document;
+
+    private Integer voiceType;
+
+    private Float speed;
+
+    private Float volume;
+
+    private String voicePath;
+
+}

+ 51 - 0
src/main/java/com/fdkankan/scene/entity/LeaveWord.java

@@ -0,0 +1,51 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author
+ * @since 2024-10-18
+ */
+@Getter
+@Setter
+@TableName("t_leave_word")
+public class LeaveWord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("num")
+    private String num;
+
+    @TableField("content")
+    private String content;
+
+    @TableField("status")
+    private Integer status;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A", delval = "I")
+    private String recStatus;
+
+
+}

+ 60 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfoScrb.java

@@ -0,0 +1,60 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 四川日报编辑表
+ * </p>
+ *
+ * @author
+ * @since 2024-10-18
+ */
+@Getter
+@Setter
+@TableName("t_scene_edit_info_scrb")
+public class SceneEditInfoScrb implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("num")
+    private String num;
+
+    /**
+     * 基础设置
+     */
+    @TableField("base_setting")
+    private String baseSetting;
+
+    /**
+     * 数字人播报
+     */
+    @TableField("ai_setting")
+    private String aiSetting;
+
+    /**
+     * 专题导航
+     */
+    @TableField("navigation")
+    private String navigation;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A", delval = "I")
+    private String recStatus;
+
+
+}

+ 87 - 0
src/main/java/com/fdkankan/scene/entity/TextVoiceTransfer.java

@@ -0,0 +1,87 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 文字语音互转
+ * </p>
+ *
+ * @author
+ * @since 2024-10-17
+ */
+@Getter
+@Setter
+@TableName("t_text_voice_transfer")
+public class TextVoiceTransfer implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 名称
+     */
+    @TableField("name")
+    private String name;
+
+    @TableField("type")
+    private String type;
+
+    /**
+     * 文本内容
+     */
+    @TableField("document")
+    private String document;
+
+    /**
+     * 语音文件名称
+     */
+    @TableField("voice_name")
+    private String voiceName;
+
+    /**
+     * 语音文件路径
+     */
+    @TableField("voice_path")
+    private String voicePath;
+
+    /**
+     * 语音转文字异步任务id
+     */
+    @TableField("task_id")
+    private String taskId;
+
+    @TableField("status")
+    private Integer status;
+
+    @TableField("res_code")
+    private Integer resCode;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A", delval = "I")
+    private String recStatus;
+
+
+}

+ 3 - 3
src/main/java/com/fdkankan/scene/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"scene", getTables(new String[]{
-                "t_scene_dynamic_panel"
+                "t_leave_word"
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -46,8 +46,8 @@ public class AutoGenerate {
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:mysql://120.24.144.164:3306/4dkankan_v4",
-            "root","4Dage@4Dage#@168")
+        FastAutoGenerator.create("jdbc:mysql://172.31.175.234:3306/4dkankan_v4",
+            "root","Djqk$2024-vr#")
                 .globalConfig(builder -> {
                     builder.author("")               //作者
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ILeaveWordMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.LeaveWord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-18
+ */
+@Mapper
+public interface ILeaveWordMapper extends BaseMapper<LeaveWord> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneEditInfoScrbMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneEditInfoScrb;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 四川日报编辑表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-18
+ */
+@Mapper
+public interface ISceneEditInfoScrbMapper extends BaseMapper<SceneEditInfoScrb> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ITextVoiceTransferMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.TextVoiceTransfer;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 文字语音互转 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-10-17
+ */
+@Mapper
+public interface ITextVoiceTransferMapper extends BaseMapper<TextVoiceTransfer> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/scene/service/ILeaveWordService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.dto.LeaveWordDTO;
+import com.fdkankan.scene.entity.LeaveWord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-10-18
+ */
+public interface ILeaveWordService extends IService<LeaveWord> {
+
+    void addLeaveWord(LeaveWordDTO dto);
+
+}

+ 19 - 0
src/main/java/com/fdkankan/scene/service/ISceneEditInfoScrbService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneEditInfoScrb;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 四川日报编辑表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-10-18
+ */
+public interface ISceneEditInfoScrbService extends IService<SceneEditInfoScrb> {
+
+    SceneEditInfoScrb getByNum(String num);
+
+
+}

+ 30 - 0
src/main/java/com/fdkankan/scene/service/IScrbService.java

@@ -0,0 +1,30 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.dto.AsrCallbackDTO;
+import com.fdkankan.scene.dto.LeaveWordDTO;
+import com.fdkankan.scene.dto.ScrbSaveDTO;
+import com.fdkankan.scene.dto.TextVoiceTransferDTO;
+import com.fdkankan.scene.entity.TextVoiceTransfer;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+public interface IScrbService {
+
+    void asrCallback(AsrCallbackDTO param);
+
+    List<TextVoiceTransfer> listTextVoiceTransfer(String num);
+
+    String ttsCompose(TextVoiceTransferDTO dto) throws Exception;
+
+    ResultData ttsSave(TextVoiceTransferDTO dto) throws Exception;
+
+    ResultData asrSave(String num, Long id, MultipartFile file) throws Exception;
+
+    void deleteTextVoiceTransfer(TextVoiceTransferDTO dto);
+
+    void save(ScrbSaveDTO param);
+
+
+}

+ 19 - 0
src/main/java/com/fdkankan/scene/service/ITextVoiceTransferService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.TextVoiceTransfer;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 文字语音互转 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-10-17
+ */
+public interface ITextVoiceTransferService extends IService<TextVoiceTransfer> {
+
+    TextVoiceTransfer getByTaskId(String taskId);
+
+
+}

+ 41 - 0
src/main/java/com/fdkankan/scene/service/impl/LeaveWordServiceImpl.java

@@ -0,0 +1,41 @@
+package com.fdkankan.scene.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.scene.dto.LeaveWordDTO;
+import com.fdkankan.scene.entity.LeaveWord;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.mapper.ILeaveWordMapper;
+import com.fdkankan.scene.service.ILeaveWordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.scene.service.IScenePlusService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-10-18
+ */
+@Service
+public class LeaveWordServiceImpl extends ServiceImpl<ILeaveWordMapper, LeaveWord> implements ILeaveWordService {
+
+    @Autowired
+    private IScenePlusService scenePlusService;
+
+    @Override
+    public void addLeaveWord(LeaveWordDTO dto) {
+        ScenePlus scenePlusByNum = scenePlusService.getScenePlusByNum(dto.getNum());
+        if(Objects.isNull(scenePlusByNum)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        LeaveWord leaveWord = BeanUtil.copyProperties(dto, LeaveWord.class);
+        this.save(leaveWord);
+    }
+}

+ 25 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoScrbServiceImpl.java

@@ -0,0 +1,25 @@
+package com.fdkankan.scene.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.scene.entity.SceneEditInfoScrb;
+import com.fdkankan.scene.mapper.ISceneEditInfoScrbMapper;
+import com.fdkankan.scene.service.ISceneEditInfoScrbService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 四川日报编辑表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-10-18
+ */
+@Service
+public class SceneEditInfoScrbServiceImpl extends ServiceImpl<ISceneEditInfoScrbMapper, SceneEditInfoScrb> implements ISceneEditInfoScrbService {
+
+    @Override
+    public SceneEditInfoScrb getByNum(String num) {
+        return this.getOne(new LambdaQueryWrapper<SceneEditInfoScrb>().eq(SceneEditInfoScrb::getNum, num));
+    }
+}

+ 1 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -499,7 +499,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         this.SortBoxVideos(sceneInfoVO);
 
-        this.setExtData(sceneInfoVO, scenePlus.getCameraId());
+//        this.setExtData(sceneInfoVO, scenePlus.getCameraId());
 
         sceneInfoVO.setDynamicPanel(sceneDynamicPanelService.checkDynamicPanel(num));
 

+ 191 - 0
src/main/java/com/fdkankan/scene/service/impl/ScrbServiceImpl.java

@@ -0,0 +1,191 @@
+package com.fdkankan.scene.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.CommonSuccessStatus;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.model.constants.ConstantFilePath;
+import com.fdkankan.scene.constant.FileYunPath;
+import com.fdkankan.scene.dto.AsrCallbackDTO;
+import com.fdkankan.scene.dto.ScrbSaveDTO;
+import com.fdkankan.scene.dto.TextVoiceTransferDTO;
+import com.fdkankan.scene.entity.SceneEditInfoScrb;
+import com.fdkankan.scene.entity.TextVoiceTransfer;
+import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.util.AsrUtil;
+import com.fdkankan.scene.util.TtsUtil;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.UUID;
+
+@Service
+public class ScrbServiceImpl implements IScrbService {
+
+    @Autowired
+    private ITextVoiceTransferService textVoiceTransferService;
+    @Resource
+    private TtsUtil ttsUtil;
+
+    @Resource
+    private AsrUtil asrUtil;
+    @Resource
+    private FYunFileServiceInterface fYunFileService;
+
+    @Autowired
+    private ISceneEditInfoScrbService sceneEditInfoScrbService;
+
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+
+
+    @Override
+    public void asrCallback(AsrCallbackDTO param) {
+
+        String taskId = param.getRequestId();
+        TextVoiceTransfer task = textVoiceTransferService.getByTaskId(taskId);
+        Integer status = task.getStatus();
+        if(param.getCode() != 0){
+            status = CommonSuccessStatus.FAIL.code();
+        }else{
+            status = CommonSuccessStatus.SUCCESS.code();
+            String text = param.getText();
+            task.setDocument(text);
+        }
+        task.setResCode(param.getCode());
+        task.setStatus(status);
+        task.setUpdateTime(new Date());
+        textVoiceTransferService.updateById(task);
+
+    }
+
+    @Override
+    public List<TextVoiceTransfer> listTextVoiceTransfer(String num) {
+        return textVoiceTransferService.list(new LambdaQueryWrapper<TextVoiceTransfer>().eq(TextVoiceTransfer::getNum, num));
+    }
+
+    @Override
+    public String ttsCompose(TextVoiceTransferDTO dto) throws Exception {
+        String localVoicePath = String.format(ConstantFilePath.SCENE_USER_PATH_V4, dto.getNum()) + UUID.randomUUID() + ".mp3";
+        ttsUtil.textToVoice(dto.getDocument(), localVoicePath, dto.getVoiceType(), dto.getSpeed(), dto.getVolume());
+        String obsPath = String.format(FileYunPath.TEMP_PATH, dto.getNum()) + FileUtil.getName(localVoicePath);
+        fYunFileService.uploadFile(localVoicePath, obsPath);
+        FileUtil.del(localVoicePath);
+        return obsPath;
+    }
+
+    @Override
+    public ResultData ttsSave(TextVoiceTransferDTO dto) throws Exception {
+
+        TextVoiceTransfer textVoiceTransfer = null;
+        if(Objects.nonNull(dto.getId())){
+            textVoiceTransfer = textVoiceTransferService.getById(dto.getId());
+            textVoiceTransfer.setUpdateTime(new Date());
+        }else{
+            textVoiceTransfer = new TextVoiceTransfer();
+            textVoiceTransfer.setNum(dto.getNum());
+        }
+
+        textVoiceTransfer.setDocument(dto.getDocument());
+        textVoiceTransfer.setType("tts");
+        if(StrUtil.isEmpty(dto.getVoicePath())){
+            textVoiceTransfer.setStatus(CommonSuccessStatus.WAITING.code());
+        }else{
+            textVoiceTransfer.setStatus(CommonSuccessStatus.SUCCESS.code());
+            textVoiceTransfer.setVoicePath(dto.getVoicePath());
+        }
+
+        textVoiceTransferService.saveOrUpdate(textVoiceTransfer);
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData asrSave(String num,  Long id, MultipartFile file) throws Exception {
+
+        TextVoiceTransfer textVoiceTransfer = null;
+        if(Objects.nonNull(id)) {
+            textVoiceTransfer = textVoiceTransferService.getById(id);
+            textVoiceTransfer.setUpdateTime(new Date());
+        }else{
+            textVoiceTransfer = new TextVoiceTransfer();
+            textVoiceTransfer.setNum(num);
+        }
+
+        String filename = file.getOriginalFilename();
+        File localFile = FileUtil.file(String.format(ConstantFilePath.SCENE_USER_PATH_V4, num) + UUID.randomUUID() + "/." + FileUtil.extName(filename));
+        file.transferTo(localFile);
+        String ossPath = String.format(FileYunPath.TEMP_PATH, num) + localFile.getName();
+        String url = fYunFileService.uploadFile(localFile.getAbsolutePath(), ossPath);
+        String taskId = asrUtil.voiceToText(url);
+        textVoiceTransfer.setTaskId(taskId);
+        textVoiceTransfer.setVoiceName(filename);
+        textVoiceTransfer.setType("asr");
+        textVoiceTransfer.setStatus(CommonSuccessStatus.WAITING.code());
+        textVoiceTransferService.saveOrUpdate(textVoiceTransfer);
+        return ResultData.ok();
+    }
+
+    @Override
+    public void deleteTextVoiceTransfer(TextVoiceTransferDTO dto) {
+        if(Objects.isNull(dto.getId())){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+        TextVoiceTransfer transfer = textVoiceTransferService.getById(dto.getId());
+        if(Objects.isNull(transfer)){
+            return;
+        }
+        if(!dto.getNum().equals(transfer.getNum())){
+            throw new BusinessException(ErrorCode.NOT_RECORD);
+        }
+        textVoiceTransferService.removeById(dto.getId());
+    }
+
+    @Override
+    public void save(ScrbSaveDTO param) {
+        if(CollUtil.isNotEmpty(param.getBaseSetting())){
+            sceneEditInfoScrbService.update(
+                    new LambdaUpdateWrapper<SceneEditInfoScrb>()
+                            .eq(SceneEditInfoScrb::getNum, param.getNum())
+                            .set(SceneEditInfoScrb::getBaseSetting, JSON.toJSONString(param.getBaseSetting())));
+        }
+
+        if(CollUtil.isNotEmpty(param.getAiSetting())){
+            sceneEditInfoScrbService.update(
+                    new LambdaUpdateWrapper<SceneEditInfoScrb>()
+                            .eq(SceneEditInfoScrb::getNum, param.getNum())
+                            .set(SceneEditInfoScrb::getAiSetting, JSON.toJSONString(param.getAiSetting())));
+        }else{
+            sceneEditInfoScrbService.update(
+                    new LambdaUpdateWrapper<SceneEditInfoScrb>()
+                            .eq(SceneEditInfoScrb::getNum, param.getNum())
+                            .set(SceneEditInfoScrb::getAiSetting, null));
+        }
+
+        if(CollUtil.isNotEmpty(param.getNavigation())){
+            sceneEditInfoScrbService.update(
+                    new LambdaUpdateWrapper<SceneEditInfoScrb>()
+                            .eq(SceneEditInfoScrb::getNum, param.getNum())
+                            .set(SceneEditInfoScrb::getAiSetting, JSON.toJSONString(param.getNavigation())));
+        }else{
+            sceneEditInfoScrbService.update(
+                    new LambdaUpdateWrapper<SceneEditInfoScrb>()
+                            .eq(SceneEditInfoScrb::getNum, param.getNum())
+                            .set(SceneEditInfoScrb::getNavigation, null));
+        }
+    }
+
+}

+ 25 - 0
src/main/java/com/fdkankan/scene/service/impl/TextVoiceTransferServiceImpl.java

@@ -0,0 +1,25 @@
+package com.fdkankan.scene.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.scene.entity.TextVoiceTransfer;
+import com.fdkankan.scene.mapper.ITextVoiceTransferMapper;
+import com.fdkankan.scene.service.ITextVoiceTransferService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 文字语音互转 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-10-17
+ */
+@Service
+public class TextVoiceTransferServiceImpl extends ServiceImpl<ITextVoiceTransferMapper, TextVoiceTransfer> implements ITextVoiceTransferService {
+
+    @Override
+    public TextVoiceTransfer getByTaskId(String taskId) {
+        return this.getOne(new LambdaQueryWrapper<TextVoiceTransfer>().eq(TextVoiceTransfer::getTaskId, taskId));
+    }
+}

+ 10 - 27
src/main/java/com/fdkankan/scene/util/AsrUtil.java

@@ -30,49 +30,32 @@ import java.util.UUID;
 @Slf4j
 public class AsrUtil {
 
-    @Value("${asr.appId}")
+    @Value("${asr.appId:#{null}}}")
     private String appId;
 
-    @Value("${asr.secretId}")
+    @Value("${asr.secretId:#{null}}}")
     private String secretId;
 
-    @Value("${asr.secretKey}")
+    @Value("${asr.secretKey:#{null}}}")
     private String secretKey;
 
-    public void voiceToText(String url){
+    @Value("${main.url:#{null}}}")
+    private String host;
 
+    public String voiceToText(String url) throws TencentCloudSDKException {
         //配置请求参数
         CreateAsyncRecognitionTaskRequest req = new CreateAsyncRecognitionTaskRequest();
         req.setEngineType("16k_zh_large");
         //url 配置自己的直播流地址
         req.setUrl(url);
         //CallbackUrl 配置自己的回调地址
-//        req.setCallbackUrl("https://xxxxxx.com/xxxx/callback");
+        req.setCallbackUrl(host + "/service/scene/scrb/asrCallback");
 
         Credential credential = new Credential(secretId, secretKey);
         AsrClient client = new AsrClient(credential, "ap-shanghai");
-        try {
-            //创建异步识别任务
-            CreateAsyncRecognitionTaskResponse response = client.CreateAsyncRecognitionTask(req);
-            Gson gson = new Gson();
-            System.out.println(gson.toJson(response));
-
-//            //关闭异步识别任务
-//            CloseAsyncRecognitionTaskRequest closeAsyncRecognitionTaskRequest = new CloseAsyncRecognitionTaskRequest();
-//            closeAsyncRecognitionTaskRequest.setTaskId(response.getData().getTaskId());
-//            CloseAsyncRecognitionTaskResponse closeAsyncRecognitionTaskResponse = client.CloseAsyncRecognitionTask(closeAsyncRecognitionTaskRequest);
-//            System.out.println(gson.toJson(closeAsyncRecognitionTaskResponse));
-//
-//            //查询正在执行的异步识别任务
-//            DescribeAsyncRecognitionTasksRequest request = new DescribeAsyncRecognitionTasksRequest();
-//            DescribeAsyncRecognitionTasksResponse response1 = client.DescribeAsyncRecognitionTasks(request);
-//            System.out.println(gson.toJson(response1));
-
-        } catch (TencentCloudSDKException e) {
-            e.printStackTrace();
-        }
-
-
+        //创建异步识别任务
+        CreateAsyncRecognitionTaskResponse response = client.CreateAsyncRecognitionTask(req);
+        return String.valueOf(response.getData().getTaskId());
     }
 
 

+ 32 - 9
src/main/java/com/fdkankan/scene/util/TtsUtil.java

@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
 import java.nio.ByteBuffer;
 import java.util.UUID;
 
@@ -23,19 +24,16 @@ public class TtsUtil {
     //SpeechClient应用全局创建一个即可,生命周期可和整个应用保持一致
     static SpeechClient proxy = new SpeechClient(TtsConstant.DEFAULT_TTS_REQ_URL);
 
-    @Value("${tts.appId}")
+    @Value("${tts.appId:#{null}}")
     private String appId;
 
-    @Value("${tts.secretId}")
+    @Value("${tts.secretId:#{null}}}")
     private String secretId;
 
-    @Value("${tts.secretKey}")
+    @Value("${tts.secretKey:#{null}}}")
     private String secretKey;
 
-    @Value("${tts.voiceType}")
-    private Integer voiceType;
-
-    public void textToVoice(String text, String voiceFilePath){
+    public void textToVoice(String text, String voiceFilePath, Integer voiceType, Float speed, Float volume) throws Exception{
         String codec = FileUtil.extName(voiceFilePath);
         Credential credential = new Credential(appId, secretId, secretKey);
         SpeechSynthesizerRequest request = new SpeechSynthesizerRequest();
@@ -43,9 +41,9 @@ public class TtsUtil {
         //音色 ID
         request.setVoiceType(voiceType);
         //音量大小,范围[-10,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。
-        request.setVolume(0f);
+        request.setVolume(volume);
         //语速,范围:[-2,6],分别对应不同语速:-2代表0.6倍 -1代表0.8倍 0代表1.0倍(默认) 1代表1.2倍 2代表1.5倍 6代表2.5倍
-        request.setSpeed(0f);
+        request.setSpeed(this.speedTransfer(speed));
         //返回音频格式,可取值:wav(默认),mp3,pcm
         request.setCodec(codec);
         //音频采样率:24000:24k(部分音色支持,请参见音色列表) 16000:16k(默认)8000:8k
@@ -108,6 +106,7 @@ public class TtsUtil {
 
         } catch (Exception e) {
             log.error(e.getMessage());
+            throw e;
         } finally {
             if (synthesizer != null) {
                 synthesizer.close(); //关闭连接
@@ -116,6 +115,30 @@ public class TtsUtil {
 
     }
 
+    private Float speedTransfer(Float speed){
+
+        Float result = null;
+
+        if(speed >= 0.6 && speed < 0.8){
+            result = (float) (-2 + (speed - 0.6)/(0.8 - 0.6) * ((-1) - (-2)));
+        }
+        if(speed >= 0.8 && speed < 1.0){
+            result = (float) (-1 + (speed - 0.8)/(1.0 - 0.8) * (0 - (-1)));
+        }
+        if(speed >= 1.0 && speed < 1.2){
+            result = (float) (0 + (speed - 1.0)/(1.2 - 1.0) * (1 - 0));
+        }
+        if(speed >= 1.2 && speed < 1.5){
+            result = (float) (1 + (speed - 1.2)/(1.5 - 1.2) * (2 - 1));
+        }
+        if(speed >= 1.5 && speed < 2.5){
+            result = (float) (2 + (speed - 1.5)/(2.5 - 1.5) * (6 - 2));
+        }
+
+        return new BigDecimal(result).setScale(2).floatValue();
+
+    }
+
 
 
 

+ 21 - 0
src/main/java/com/fdkankan/scene/vo/BaseIdParamVO.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * <p>
+ * 通用sid类型参数类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/10
+ **/
+@Data
+public class BaseIdParamVO extends BaseSceneParamVO{
+
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+}

+ 3 - 0
src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -10,6 +10,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.util.Date;
+import java.util.Map;
 
 /**
  * <p>
@@ -268,4 +269,6 @@ public class SceneInfoVO {
 
     private String orientation;
 
+    private Map<String, Object> scrbInfo;
+
 }

+ 52 - 0
src/main/java/com/fdkankan/scene/vo/TextVoiceTransferVO.java

@@ -0,0 +1,52 @@
+package com.fdkankan.scene.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 文字语音互转
+ * </p>
+ *
+ * @author
+ * @since 2024-10-17
+ */
+@Getter
+@Setter
+public class TextVoiceTransferVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    private String num;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    private String type;
+
+    /**
+     * 文本内容
+     */
+    private String document;
+
+    /**
+     * 语音文件名称
+     */
+    private String voiceName;
+
+    private Integer status;
+
+    private Date createTime;
+
+}

+ 43 - 0
src/main/resources/bootstrap-test.yml

@@ -0,0 +1,43 @@
+spring:
+  application:
+    name: 4dkankan-center-scene
+  cloud:
+    nacos:
+      server-addr: 172.31.175.234:8848
+      namespace: test
+      config:
+        file-extension: yaml
+        namespace: ${spring.cloud.nacos.namespace}
+        shared-configs:
+          - data-id: common-db-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+
+          - data-id: common-redis-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+
+          - data-id: common-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+
+          - data-id: common-fyun-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+
+          - data-id: common-rabbitmq-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+
+          - data-id: forest-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+      discovery:
+        namespace: ${spring.cloud.nacos.namespace}
+
+
+
+
+
+
+

+ 2 - 2
src/main/resources/bootstrap.yml

@@ -3,8 +3,8 @@ spring:
     name: 4dkankan-center-scene
   cloud:
     nacos:
-      server-addr: 172.20.1.63:8848
-      namespace: prod
+      server-addr: 120.24.144.164:8848
+      namespace: scrb
       config:
         file-extension: yaml
         namespace: ${spring.cloud.nacos.namespace}

+ 5 - 0
src/main/resources/mapper/scene/LeaveWordMapper.xml

@@ -0,0 +1,5 @@
+<?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.fdkankan.scene.mapper.ILeaveWordMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/scene/SceneEditInfoScrbMapper.xml

@@ -0,0 +1,5 @@
+<?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.fdkankan.scene.mapper.ISceneEditInfoScrbMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/scene/TextVoiceTransferMapper.xml

@@ -0,0 +1,5 @@
+<?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.fdkankan.scene.mapper.ITextVoiceTransferMapper">
+
+</mapper>