后台服务
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.

146 lines
6.2 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.MouldPatchSign;
  8. import com.iformall.domain.po.sm.UserMouldVideo;
  9. import com.iformall.enums.EnumMouldSendType;
  10. import com.iformall.enums.EnumVideoStatus;
  11. import com.iformall.enums.EnumaMouldPatchStatus;
  12. import com.iformall.service.sm.MouldPatchService;
  13. import com.iformall.service.sm.MouldPatchSignService;
  14. import com.iformall.service.sm.UserMouldVideoService;
  15. import com.iformall.video.VideoFactory;
  16. import com.iformall.video.entity.VideUploadResult;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiImplicitParam;
  19. import io.swagger.annotations.ApiImplicitParams;
  20. import io.swagger.annotations.ApiOperation;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.web.bind.annotation.*;
  26. import java.util.Date;
  27. import java.util.List;
  28. @RestController
  29. @RequestMapping("/api/userVideo")
  30. @Api(description = "模板接口")
  31. public class UserMouldVideoController extends BaseController {
  32. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  33. @Autowired
  34. private UserMouldVideoService userMouldVideoService;
  35. @Autowired
  36. private MouldPatchService mouldPatchService;
  37. @Autowired
  38. private VideoFactory videoFactory;
  39. @Autowired
  40. String videoType;
  41. @ApiOperation("分页列表接口")
  42. @GetMapping("list")
  43. @ApiImplicitParams({
  44. @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
  45. @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
  46. public ResultData list(@ModelAttribute UserMouldVideo record, Integer pageNum, Integer pageSize) {
  47. logger.debug("[" + getIpAddr() + "] UserMouldVideoController::list");
  48. if (record == null) record = new UserMouldVideo();
  49. record.setUserId(getMemberId());
  50. record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
  51. final PageInfo<UserMouldVideo> page = userMouldVideoService.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. UserMouldVideo mouldVideo = userMouldVideoService.getById(id);
  60. if(mouldVideo == null || !mouldVideo.getUserId().equals(getMemberId())){
  61. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到用户数据");
  62. }
  63. if(mouldVideo.getPersonMouldId() != null){
  64. mouldVideo.setPersonMould(mouldPatchService.getDetailById(mouldVideo.getPersonMouldId()));
  65. }
  66. if(mouldVideo.getVoiceMouldId() != null){
  67. mouldVideo.setVoiceMould(mouldPatchService.getDetailById(mouldVideo.getVoiceMouldId()));
  68. }
  69. if(mouldVideo.getBackgroundMouldId() != null){
  70. mouldVideo.setBackgroundMould(mouldPatchService.getDetailById(mouldVideo.getBackgroundMouldId()));
  71. }
  72. return new ResultData(mouldVideo);
  73. }
  74. @ApiOperation("新增接口")
  75. @PostMapping("saveOrUpdate")
  76. public ResultData saveOrUpdate(@RequestBody UserMouldVideo record) {
  77. logger.debug("[" + getIpAddr() + "] MouldPatchController::saveOrUpdate");
  78. record.setUserId(getMemberId());
  79. return userMouldVideoService.saveOrUpdate(record);
  80. }
  81. @ApiOperation("生成视频")
  82. @PostMapping("createVideo")
  83. public ResultData create(@RequestBody UserMouldVideo record) {
  84. logger.debug("[" + getIpAddr() + "] MouldPatchController::saveOrUpdate");
  85. if(record.getId() == null){
  86. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  87. }
  88. UserMouldVideo mouldVideo = userMouldVideoService.getById(record.getId());
  89. if(mouldVideo == null || !mouldVideo.getUserId().equals(getMemberId())){
  90. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到用户数据");
  91. }
  92. if(StringUtils.isEmpty(mouldVideo.getPaperwork())){
  93. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未填写视频文案");
  94. }
  95. if(EnumVideoStatus.ing.getCode().equals(mouldVideo.getVideoStatus())){
  96. return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"生成视频中");
  97. }
  98. UserMouldVideo mouldVideoUpd = new UserMouldVideo();
  99. mouldVideoUpd.setId(record.getId());
  100. mouldVideoUpd.setVideoStatus(EnumVideoStatus.ing.getCode());
  101. mouldVideoUpd.setCreateVideoDate(new Date());
  102. userMouldVideoService.saveOrUpdate(mouldVideoUpd);
  103. userMouldVideoService.createVideo(mouldVideo);
  104. return new ResultData();
  105. }
  106. @ApiOperation("根据id查询接口")
  107. @GetMapping("/findVideo")
  108. @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
  109. public ResultData findVideo(Long id) {
  110. logger.debug("[" + getIpAddr() + "] MouldPatchController::findVideo");
  111. UserMouldVideo userMouldVideo = userMouldVideoService.findVideo(id);
  112. return new ResultData(userMouldVideo);
  113. }
  114. @GetMapping(value = "/videoDetial")
  115. @ApiOperation("视频详情")
  116. @ApiImplicitParams({
  117. @ApiImplicitParam(name = "videoId", value = "视频编号", dataType = "String", paramType = "query", required = true)})
  118. public ResultData videoDetial(String videoId) {
  119. try {
  120. VideUploadResult videoDetail = videoFactory.getExcutor(videoType).getVideoDetailWithCache(videoId);
  121. return new ResultData(videoDetail);
  122. } catch (Exception e) {
  123. logger.error(e.getMessage());
  124. return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
  125. }
  126. }
  127. }