@@ -11,7 +11,7 @@ | |||
Target Server Version : 80026 (8.0.26) | |||
File Encoding : 65001 | |||
Date: 13/07/2023 18:42:24 | |||
Date: 19/07/2023 10:37:00 | |||
*/ | |||
SET NAMES utf8mb4; | |||
@@ -25,7 +25,7 @@ CREATE TABLE `wx_c_voice` ( | |||
`id` int NOT NULL COMMENT '声纹id', | |||
`localel_id` int NULL DEFAULT NULL COMMENT '地区id', | |||
`voice_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '声纹名称', | |||
`display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '声纹显示名称', | |||
`voice_display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '声纹显示名称', | |||
`gender` int NULL DEFAULT NULL COMMENT '男1女0', | |||
`class` int NULL DEFAULT NULL COMMENT '共享0定制1', | |||
PRIMARY KEY (`id`) USING BTREE | |||
@@ -11,7 +11,7 @@ | |||
Target Server Version : 80026 (8.0.26) | |||
File Encoding : 65001 | |||
Date: 13/07/2023 18:42:33 | |||
Date: 19/07/2023 10:37:08 | |||
*/ | |||
SET NAMES utf8mb4; | |||
@@ -24,7 +24,7 @@ DROP TABLE IF EXISTS `wx_c_voice_local`; | |||
CREATE TABLE `wx_c_voice_local` ( | |||
`id` int NOT NULL COMMENT '地区id', | |||
`local_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '地区名称', | |||
`display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '地区名称显示', | |||
`local_display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '地区名称显示', | |||
PRIMARY KEY (`id`) USING BTREE | |||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; | |||
@@ -11,7 +11,7 @@ | |||
Target Server Version : 80026 (8.0.26) | |||
File Encoding : 65001 | |||
Date: 13/07/2023 18:42:38 | |||
Date: 19/07/2023 10:37:19 | |||
*/ | |||
SET NAMES utf8mb4; | |||
@@ -25,7 +25,7 @@ CREATE TABLE `wx_c_voice_style` ( | |||
`id` int NOT NULL COMMENT '风格', | |||
`voice_id` int NULL DEFAULT NULL COMMENT '声纹id', | |||
`style_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '风格名称', | |||
`display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '风格显示名称', | |||
`style_display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '风格显示名称', | |||
`style_demo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样例视频', | |||
PRIMARY KEY (`id`) USING BTREE | |||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; | |||
@@ -12,6 +12,7 @@ import com.iformall.domain.po.sm.VoiceMould; | |||
import com.iformall.enums.*; | |||
import com.iformall.language.LanguageDetect; | |||
import com.iformall.mapper.VoiceLanguageMapper; | |||
import com.iformall.service.WxCVoiceService; | |||
import com.iformall.service.sm.*; | |||
import com.iformall.sm.AiPreviewParam; | |||
import io.swagger.annotations.Api; | |||
@@ -27,6 +28,7 @@ import org.springframework.web.bind.annotation.*; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
@RestController | |||
@@ -49,6 +51,8 @@ public class VoiceMouldController extends BaseController { | |||
@Autowired | |||
private VoiceLanguageService voiceLanguageService; | |||
@Autowired | |||
private WxCVoiceService wxCVoiceService; | |||
@AuthIgnore | |||
@ApiOperation("获取语种") | |||
@@ -84,15 +88,15 @@ public class VoiceMouldController extends BaseController { | |||
public ResultData findById(Long id) { | |||
logger.debug("[" + getIpAddr() + "] MouldPatchController::findById"); | |||
VoiceMould voiceMould = voiceMouldService.getDetailById(id); | |||
if(voiceMould != null | |||
&& voiceMould.getParentId() == 0l && voiceMould.getCountSub() > 0){ | |||
if (voiceMould != null | |||
&& voiceMould.getParentId() == 0l && voiceMould.getCountSub() > 0) { | |||
VoiceMould voiceQ = new VoiceMould(); | |||
voiceQ.setParentId(voiceMould.getId()); | |||
voiceQ.setVoiceType(EnumVoiceType.speak.getCode());//目前只查询说话风格 | |||
voiceQ.setStatus(EnumaMouldPatchStatus.put_on.getCode()); | |||
voiceQ.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); | |||
List<VoiceMould> sublist = voiceMouldService.getClist(voiceQ); | |||
if(sublist != null && !sublist.isEmpty()){ | |||
if (sublist != null && !sublist.isEmpty()) { | |||
voiceMould.setSubVoiceMould(sublist); | |||
} | |||
} | |||
@@ -110,20 +114,20 @@ public class VoiceMouldController extends BaseController { | |||
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
} | |||
Integer sex = null; | |||
if(record.getPersonMouldId() != null){ | |||
if (record.getPersonMouldId() != null) { | |||
PersonMould personMode = personMouldService.getDetailById(record.getPersonMouldId()); | |||
if(personMode == null){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"选择模板不存在"); | |||
if (personMode == null) { | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "选择模板不存在"); | |||
} | |||
sex = personMode.getSex(); | |||
} | |||
String detect = LanguageDetect.detect(record.getPaperwork()); | |||
if(StringUtils.isBlank(detect)){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"语种识别失败"); | |||
if (StringUtils.isBlank(detect)) { | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "语种识别失败"); | |||
} | |||
EnumLanguages anEnum = EnumLanguages.getEnum(detect); | |||
if(anEnum == null){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"暂不支持该语种"); | |||
if (anEnum == null) { | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "暂不支持该语种"); | |||
} | |||
VoiceMould voiceMould = new VoiceMould(); | |||
@@ -163,4 +167,16 @@ public class VoiceMouldController extends BaseController { | |||
logger.debug("[" + getIpAddr() + "] MouldPatchController::voicePreview"); | |||
return new ResultData(voiceInfoService.voicePreview(aiPreviewParam)); | |||
} | |||
/** | |||
* 视频模板列表 | |||
*/ | |||
@AuthIgnore | |||
@PostMapping("/audioList") | |||
@ApiOperation(value = "视频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | |||
public ResultData audioList(@RequestBody Map<String, String> params) { | |||
String username = params.get("username"); | |||
return wxCVoiceService.findByUserName(username); | |||
} | |||
} |
@@ -0,0 +1,45 @@ | |||
package com.iformall.domain.po; | |||
import com.baomidou.mybatisplus.annotation.TableField; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import lombok.Data; | |||
import lombok.ToString; | |||
@TableName(value = "wx_c_voice") | |||
@Data | |||
@ToString(callSuper = true) | |||
public class WxCUserAuthority { | |||
@TableField(exist = false) | |||
private String userName; | |||
@TableField(exist = false) | |||
private String currentTime; | |||
@TableField(exist = false) | |||
private String expireTime; | |||
@io.swagger.annotations.ApiModelProperty(value = "地区名称", name = "local_name") | |||
private String localelName; | |||
@io.swagger.annotations.ApiModelProperty(value = "地区显示名称", name = "local_display_name") | |||
private String localDisPlayName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹ID", name = "voice_id") | |||
private int voiceId; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹名称(用于调微软接口)", name = "voice_name") | |||
private String voiceName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹展示名称", name = "voice_display_name") | |||
private String voiceDisplayName; | |||
@io.swagger.annotations.ApiModelProperty(value = "性别(男1 女0)", name = "gender") | |||
private int gender; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹类型 共享:0 定制:1", name = "class") | |||
private int voiceType; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹风格名称(用于微软接口)", name = "style_name") | |||
private String styleName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹风格展示名称", name = "style_display_name") | |||
private String styleDisplayName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹风格样例文件链接", name = "style_demo") | |||
private String styleDemo; | |||
} |
@@ -0,0 +1,47 @@ | |||
package com.iformall.domain.po; | |||
import com.baomidou.mybatisplus.annotation.TableField; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import lombok.Data; | |||
import lombok.ToString; | |||
@TableName(value = "wx_c_voice") | |||
@Data | |||
@ToString(callSuper = true) | |||
public class WxCVoiceTable { | |||
@TableField(exist = false) | |||
private String userName; | |||
@TableField(exist = false) | |||
private String currentTime; | |||
@TableField(exist = false) | |||
private String expireTime; | |||
@io.swagger.annotations.ApiModelProperty(value = "地区名称", name = "local_name") | |||
private String localelName; | |||
@io.swagger.annotations.ApiModelProperty(value = "地区显示名称", name = "local_display_name") | |||
private String localDisPlayName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹ID", name = "voice_id") | |||
private int voiceId; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹名称(用于调微软接口)", name = "voice_name") | |||
private String voiceName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹展示名称", name = "voice_display_name") | |||
private String voiceDisplayName; | |||
@io.swagger.annotations.ApiModelProperty(value = "性别(男1 女0)", name = "gender") | |||
private int gender; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹类型 共享:0 定制:1", name = "class") | |||
private int voiceType; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹风格名称(用于微软接口)", name = "style_name") | |||
private String styleName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹风格展示名称", name = "style_display_name") | |||
private String styleDisplayName; | |||
@io.swagger.annotations.ApiModelProperty(value = "声纹风格样例文件链接", name = "style_demo") | |||
private String styleDemo; | |||
} | |||
@@ -0,0 +1,13 @@ | |||
package com.iformall.mapper; | |||
import com.iformall.common.CommonMapper; | |||
import com.iformall.domain.po.WxCVideoTable; | |||
import com.iformall.domain.po.WxCVoiceTable; | |||
import java.util.List; | |||
public interface WxCVoiceMapper extends CommonMapper<WxCVoiceTable, String> { | |||
List<WxCVoiceTable> findByUserName(String username); | |||
} |
@@ -0,0 +1,7 @@ | |||
package com.iformall.service; | |||
import com.iformall.common.ResultData; | |||
public interface WxCVoiceService { | |||
ResultData findByUserName(String username); | |||
} |
@@ -0,0 +1,68 @@ | |||
package com.iformall.service.impl; | |||
import com.iformall.common.ResultData; | |||
import com.iformall.domain.po.WxCVideoTable; | |||
import com.iformall.domain.po.WxCVoiceTable; | |||
import com.iformall.mapper.WxCVoiceMapper; | |||
import com.iformall.service.WxCVoiceService; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.util.ArrayList; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
@Service | |||
public class WxCVoiceServiceImpl implements WxCVoiceService { | |||
@Autowired | |||
WxCVoiceMapper wxCVoiceMapper; | |||
@Override | |||
public ResultData findByUserName(String username) { | |||
List<WxCVoiceTable> resultList = wxCVoiceMapper.findByUserName(username); | |||
HashMap<String, Object> result = new HashMap<>(); | |||
List audioList = new ArrayList(); | |||
for (WxCVoiceTable wxCVoiceTable : resultList) { | |||
HashMap<String, Object> audio = new HashMap<>(); | |||
HashMap<String, Object> voice = new HashMap<>(); | |||
HashMap<String, Object> style = new HashMap<>(); | |||
result.put("username", wxCVoiceTable.getUserName()); | |||
result.put("current_time", new Date(System.currentTimeMillis())); | |||
audioList.add(audio); | |||
audio.put("LocaleName", wxCVoiceTable.getLocalelName()); | |||
audio.put("displayname", wxCVoiceTable.getLocalDisPlayName()); | |||
List voiceList = new ArrayList(); | |||
voiceList.add(voice); | |||
audio.put("voiceList", voiceList); | |||
voice.put("voiceid", wxCVoiceTable.getVoiceId()); | |||
voice.put("expire_time", wxCVoiceTable.getExpireTime()); | |||
voice.put("voicename", wxCVoiceTable.getVoiceName()); | |||
voice.put("voicetype", wxCVoiceTable.getVoiceType()); | |||
voice.put("displayname", wxCVoiceTable.getVoiceDisplayName()); | |||
voice.put("gender", wxCVoiceTable.getGender()); | |||
List styleList = new ArrayList(); | |||
styleList.add(style); | |||
voice.put("styleList", styleList); | |||
style.put("stylename", wxCVoiceTable.getStyleName()); | |||
style.put("displayname", wxCVoiceTable.getStyleDisplayName()); | |||
style.put("styledemo", wxCVoiceTable.getStyleDemo()); | |||
} | |||
result.put("audioList", audioList); | |||
return new ResultData(result); | |||
} | |||
} |
@@ -3,13 +3,13 @@ | |||
<mapper namespace="com.iformall.mapper.WxCVideoMapper"> | |||
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCVideoTable"> | |||
<id column="id" jdbcType="INTEGER" property="id"/> | |||
<result column="user_name" jdbcType="VARCHAR" property="userName"/> | |||
<result column="name" jdbcType="VARCHAR" property="name"/> | |||
<result column="image" jdbcType="VARCHAR" property="image"/> | |||
<result column="demo" jdbcType="VARCHAR" property="demo"/> | |||
<result column="preinfo" jdbcType="VARCHAR" property="preInfo"/> | |||
<result column="expire_time" jdbcType="VARCHAR" property="expireTime"/> | |||
<id column="id" jdbcType="INTEGER" property="id"/> | |||
<result column="user_name" jdbcType="VARCHAR" property="userName"/> | |||
<result column="name" jdbcType="VARCHAR" property="name"/> | |||
<result column="image" jdbcType="VARCHAR" property="image"/> | |||
<result column="demo" jdbcType="VARCHAR" property="demo"/> | |||
<result column="preinfo" jdbcType="VARCHAR" property="preInfo"/> | |||
<result column="expire_time" jdbcType="VARCHAR" property="expireTime"/> | |||
</resultMap> | |||
@@ -19,8 +19,12 @@ | |||
<result column="expire_time" jdbcType="VARCHAR" property="expireTime"/> | |||
</resultMap>--> | |||
<select id="findByUserName" resultMap="BaseResultMap"> | |||
SELECT wca.user_name,expire_time,wcav.id,wcav.name,wcav.image,wcav.model,wcav.preinfo,wcav.demo from wx_c_author wca left join wx_c_avatar wcav on wcav.id =wca.resource_id where wca.resource_id in (select wca.resource_id from wx_c_author wca WHERE wca.user_name = '13930071765' AND wca.type = 0 ) | |||
<select id="findByUserName" resultMap="BaseResultMap"> | |||
SELECT wca.user_name,expire_time,wcav.id,wcav.name,wcav.image,wcav.model,wcav.preinfo,wcav.demo | |||
from wx_c_author wca | |||
left join wx_c_avatar wcav on wcav.id =wca.resource_id | |||
where wca.resource_id | |||
in (select wca.resource_id from wx_c_author wca WHERE wca.user_name =#{username} AND wca.type = 0 ) | |||
</select> | |||
@@ -0,0 +1,32 @@ | |||
<?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.iformall.mapper.WxCVoiceMapper"> | |||
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCVoiceTable"> | |||
<result column="user_name" jdbcType="VARCHAR" property="userName"/> | |||
<result column="local_name" jdbcType="VARCHAR" property="localelName"/> | |||
<result column="local_display_name" jdbcType="VARCHAR" property="localDisPlayName"/> | |||
<result column="voice_id" jdbcType="INTEGER" property="voiceId"/> | |||
<result column="class" jdbcType="INTEGER" property="voiceType"/> | |||
<result column="voice_name" jdbcType="VARCHAR" property="voiceName"/> | |||
<result column="voice_display_name" jdbcType="VARCHAR" property="voiceDisplayName"/> | |||
<result column="gender" jdbcType="INTEGER" property="gender"/> | |||
<result column="style_name" jdbcType="VARCHAR" property="styleName"/> | |||
<result column="style_display_name" jdbcType="VARCHAR" property="styleDisplayName"/> | |||
<result column="style_demo" jdbcType="VARCHAR" property="styleDemo"/> | |||
</resultMap> | |||
<select id="findByUserName" resultMap="BaseResultMap"> | |||
select wca.user_name,wca.resource_id,wca.expire_time,wcv.id, wcv.localel_id ,wcv.id ,wcv.voice_name,wcv.voice_display_name ,wcv.gender , wcv.class , wcvl.id,wcvl.local_name,wcvl.local_display_name,wcvs.id,wcvs.voice_id,wcvs.style_name,wcvs.style_display_name,wcvs.style_demo | |||
from wx_c_author wca | |||
INNER JOIN wx_c_voice wcv on wca.resource_id = wcv.id | |||
and wca.type = 1 | |||
join wx_c_voice_local wcvl on wcv.localel_id = wcvl.id | |||
join wx_c_voice_style wcvs on wcv.id=wcvs.voice_id where wca.user_name = #{username} | |||
</select> | |||
</mapper> |