提交 0d2f075f authored 作者: liupengfei's avatar liupengfei

--no commit message

上级 031101b5
......@@ -7,6 +7,10 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.zrqx.core.util.datatype.StringUtil;
import com.zrqx.resource.bg.service.articlelibrary.ArticleToAudioService;
import com.zrqx.resource.commons.model.articlelibrary.ArticleToAudio;
import com.zrqx.resource.commons.util.WebTTSWSUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -82,6 +86,9 @@ public class ArticleLibraryController {
@Autowired
private PromotionContentService promotionContentService;
@Autowired
private ArticleToAudioService articleToAudioService;
@ApiOperation(value = "新增", notes = "新增一个")
@PostMapping(value = "/save")
public CallBack<Boolean> save(@RequestBody SaveUpdateArticleLibraryForm form) {
......@@ -305,6 +312,123 @@ public class ArticleLibraryController {
public CallBack<PageInfo<ArticleLibraryListVO>> page(QueryArticleLibraryForm form, PageParam pageParam){
return CallBack.success(service.page(form, pageParam));
}
@ApiOperation(value = "添加图书音频文件")
@PostMapping(value = "/add/audio")
public CallBack<?> addAudio(String bookId){
if(StringUtils.isNotBlank(bookId)){
Example example = new Example(ArticleToAudio.class);
example.createCriteria().andEqualTo("bookId",bookId);
articleToAudioService.deleteByExample(example);
example = new Example(ArticleLibrary.class);
example.createCriteria().andEqualTo("bookId",bookId);
List<ArticleLibrary> articleList = service.selectByExample(example);
articleList.forEach(f -> {
if (StringUtils.isNotBlank(f.getText())) {
String text = StringUtil.regEx(f.getText());
List<String> textList =
getStrList(text, 2000);
for (int i = 0; i < textList.size(); i++) {
try {
String fileName = i + 1 + "";
String articlePath =
WebTTSWSUtil.textToAudio(textList.get(i), f.getId(), fileName);
ArticleToAudio articleToAudio = new ArticleToAudio();
articleToAudio.setArticleId(f.getId());
articleToAudio.setUploadTime(new Date());
articleToAudio.setUrl(articlePath);
articleToAudio.setSort(i + 1);
articleToAudio.setBookId(f.getBookId());
articleToAudioService.insert(articleToAudio);
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}else{
Example example = new Example(ArticleToAudio.class);
articleToAudioService.deleteByExample(example);
List<ArticleLibrary> articleLibraryList = service.selectAll();
articleLibraryList.forEach(f -> {
if (StringUtils.isNotBlank(f.getText())) {
String text = StringUtil.regEx(f.getText());
List<String> textList =
getStrList(text, 2000);
for (int i = 0; i < textList.size(); i++) {
try {
String fileName = i + 1 + "";
String articlePath =
WebTTSWSUtil.textToAudio(textList.get(i), f.getId(), fileName);
ArticleToAudio articleToAudio = new ArticleToAudio();
articleToAudio.setArticleId(f.getId());
articleToAudio.setUploadTime(new Date());
articleToAudio.setUrl(articlePath);
articleToAudio.setSort(i + 1);
articleToAudio.setBookId(f.getBookId());
articleToAudioService.insert(articleToAudio);
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
return CallBack.success();
}
/**
* 把原始字符串分割成指定长度的字符串列表
*
* @param inputString 原始字符串
* @param length 指定长度
* @return
*/
public static List<String> getStrList(String inputString, int length) {
int size = inputString.length() / length;
if (inputString.length() % length != 0) {
size += 1;
}
return getStrList(inputString, length, size);
}
/**
* 把原始字符串分割成指定长度的字符串列表
*
* @param inputString 原始字符串
* @param length 指定长度
* @param size 指定列表大小
* @return
*/
public static List<String> getStrList(String inputString, int length,
int size) {
List<String> list = new ArrayList<String>();
for (int index = 0; index < size; index++) {
String childStr = substring(inputString, index * length,
(index + 1) * length);
list.add(childStr);
}
return list;
}
/**
* 分割字符串,如果开始位置大于字符串长度,返回空
*
* @param str 原始字符串
* @param f 开始位置
* @param t 结束位置
* @return
*/
public static String substring(String str, int f, int t) {
if (f > str.length())
return null;
if (t > str.length()) {
return str.substring(f, str.length());
} else {
return str.substring(f, t);
}
}
/*@ApiOperation("相关资源列表")
@GetMapping(value = ResourceRequestPath.RELATION_RESOURCE + ResourceRequestPath.PAGE)
public CallBack<PageInfo<ResourceRelationVo>> reousrceRelationPage(QueryResourceRelationForm entity,
......
......@@ -39,9 +39,10 @@ import okio.ByteString;
public class WebTTSWSUtil {
private static final String hostUrl = "https://tts-api.xfyun.cn/v2/tts"; //http url 不支持解析 ws/wss schema
private static final String appid = "5f800e7f";//到控制台-语音合成页面获取
private static final String apiSecret = "fcf21aa34ac9b1c89a5ae080e86f406c";//到控制台-语音合成页面获取
private static final String apiKey = "793094b3d3f8dd4c4f57193499d6cc5a";//到控制台-语音合成页面获取
private static final String appid = "5f7ffb9d";//到控制台-语音合成页面获取
private static final String apiSecret = "6047151386cdb9d8eeb782c45ef03af5";//到控制台-语音合成页面获取
private static final String apiKey = "d479cc02d13904273bad7021943a8e2b";//到控制台-语音合成页面获取
private static final String audioPath = "/home/upload/hxwza/audio/";//音频地址
public static final Gson json = new Gson();
private static final Logger logger = LoggerFactory.getLogger(WebTTSWSUtil.class);
public static String textToAudio(String text,String filePath,String fileName) throws Exception {
......@@ -53,11 +54,11 @@ public class WebTTSWSUtil {
Request request = new Request.Builder().url(url).build();
// 存放音频的文件
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
File file = new File("/opt/upload/hxwza/audio/" + filePath);
File file = new File(audioPath + filePath);
if(!file.exists()) {
file.mkdirs();
}
File f = new File("/opt/upload/hxwza/audio/" + filePath + "/" + fileName + ".mp3");
File f = new File(audioPath + filePath + "/" + fileName + ".mp3");
String path = "/audio/" + filePath + "/" + fileName + ".mp3";
if (!f.exists()) {
f.createNewFile();
......
package com.zrqx.resource.commons.vo.bg.ebook;
import com.zrqx.core.util.excelutil.ExcelResources;
import com.zrqx.core.vo.ImportVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 导入Excel表格vo对象
* @author ydm
* @date 2018年7月12日上午9:39:24
*/
@Data
public class ExcelEbookExportVo extends ImportVo{
@ExcelResources(title="正书名",order=1)
private String name;
@ExcelResources(title="ISBN",order=2)
private String isbn;
@ExcelResources(title="第一责任者及著作方式",order=3)
private String author;
@ExcelResources(title="译者",order=4)
private String translator;
@ExcelResources(title="正丛书名",order=5)
private String bookSeries;
@ExcelResources(title="责任编辑",order=6)
private String executiveEditor;
@ExcelResources(title="版次及其他版本形式",order=7)
private String revision;
@ExcelResources(title="印次",order=8)
private String printNo;
@ExcelResources(title="主题词",order=9)
private String keywords;
@ExcelResources(title="分类号",order=10)
private String midpicid;
@ExcelResources(title="内容提要",order=11)
private String synopsis;
@ExcelResources(title="分类",order=12)
private String diytype;
@ExcelResources(title="定价",order=13)
private String price;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论