后台服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 line
5.4 KiB

  1. package com.iformall.controller;
  2. import com.github.pagehelper.PageInfo;
  3. import com.iformall.common.ErrorCode;
  4. import com.iformall.common.ResultData;
  5. import com.iformall.domain.po.base.BaseEntity;
  6. import com.iformall.domain.po.sm.MouldPatch;
  7. import com.iformall.domain.po.sm.PersonMould;
  8. import com.iformall.domain.po.sm.UserMouldVideo;
  9. import com.iformall.domain.po.sm.VoiceMould;
  10. import com.iformall.enums.EnumLanguages;
  11. import com.iformall.enums.EnumMouldPatchType;
  12. import com.iformall.enums.EnumMouldSendType;
  13. import com.iformall.enums.EnumaMouldPatchStatus;
  14. import com.iformall.language.LanguageDetect;
  15. import com.iformall.service.sm.MouldPatchService;
  16. import com.iformall.service.sm.MouldPatchSignService;
  17. import com.iformall.service.sm.PersonMouldService;
  18. import com.iformall.service.sm.VoiceMouldService;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiImplicitParam;
  21. import io.swagger.annotations.ApiImplicitParams;
  22. import io.swagger.annotations.ApiOperation;
  23. import org.apache.commons.lang3.StringUtils;
  24. import org.slf4j.Logger;
  25. import org.slf4j.LoggerFactory;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.web.bind.annotation.*;
  28. import java.util.List;
  29. @RestController
  30. @RequestMapping("/api/voiceMould")
  31. @Api(description = "模板接口")
  32. public class VoiceMouldController extends BaseController {
  33. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  34. @Autowired
  35. private VoiceMouldService voiceMouldService;
  36. @Autowired
  37. private PersonMouldService personMouldService;
  38. @Autowired
  39. private MouldPatchSignService mouldPatchSignService;
  40. @ApiOperation("分页列表接口")
  41. @GetMapping("list")
  42. @ApiImplicitParams({
  43. @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
  44. @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
  45. public ResultData list(@ModelAttribute VoiceMould record, Integer pageNum, Integer pageSize) {
  46. logger.debug("[" + getIpAddr() + "] MouldPatchController::list");
  47. if (record == null) record = new VoiceMould();
  48. // record.setSendType(EnumMouldSendType.auto.getCode());
  49. record.setStatus(EnumaMouldPatchStatus.put_on.getCode());
  50. record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
  51. final PageInfo<VoiceMould> page = voiceMouldService.cListAsPage(record, pageNum, pageSize);
  52. return new ResultData(page);
  53. }
  54. @ApiOperation("根据id查询接口")
  55. @GetMapping("/findById")
  56. @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
  57. public ResultData findById(Long id) {
  58. logger.debug("[" + getIpAddr() + "] MouldPatchController::findById");
  59. VoiceMould voiceMould = voiceMouldService.getDetailById(id);
  60. if(voiceMould != null
  61. && voiceMould.getParentId() == 0l && voiceMould.getCountSub() > 0){
  62. VoiceMould voiceQ = new VoiceMould();
  63. voiceQ.setParentId(voiceMould.getId());
  64. voiceQ.setStatus(EnumaMouldPatchStatus.put_on.getCode());
  65. voiceQ.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
  66. List<VoiceMould> sublist = voiceMouldService.getClist(voiceQ);
  67. if(sublist != null && !sublist.isEmpty()){
  68. voiceMould.setSubVoiceMould(sublist);
  69. }
  70. }
  71. return new ResultData(voiceMould);
  72. }
  73. @ApiOperation("根据输入文案获取音色")
  74. @PostMapping("voiceList")
  75. @ApiImplicitParams({
  76. @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
  77. @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
  78. public ResultData voiceList(@RequestBody UserMouldVideo record, Integer pageNum, Integer pageSize) {
  79. logger.debug("[" + getIpAddr() + "] MouldPatchController::voiceList");
  80. if (record == null || StringUtils.isBlank(record.getPaperwork())) {
  81. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  82. }
  83. Integer sex = null;
  84. if(record.getPersonMouldId() != null){
  85. PersonMould personMode = personMouldService.getDetailById(record.getPersonMouldId());
  86. if(personMode == null){
  87. return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"选择模板不存在");
  88. }
  89. sex = personMode.getSex();
  90. }
  91. String detect = LanguageDetect.detect(record.getPaperwork());
  92. if(StringUtils.isBlank(detect)){
  93. return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"语种识别失败");
  94. }
  95. EnumLanguages anEnum = EnumLanguages.getEnum(detect);
  96. if(anEnum == null){
  97. return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"暂不支持该语种");
  98. }
  99. VoiceMould voiceMould = new VoiceMould();
  100. voiceMould.setParentId(0l);
  101. voiceMould.setSex(sex);
  102. voiceMould.setSendType(EnumMouldSendType.auto.getCode());
  103. voiceMould.setStatus(EnumaMouldPatchStatus.put_on.getCode());
  104. voiceMould.setLanguages(anEnum.getCode());
  105. voiceMould.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
  106. final PageInfo<VoiceMould> page = voiceMouldService.cListAsPage(voiceMould, pageNum, pageSize);
  107. return new ResultData(page);
  108. }
  109. }