VideoServiceImpl.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. package com.caimei.service.data.impl;
  2. import com.caimei.mapper.cmMapper.AuthMapper;
  3. import com.caimei.mapper.cmMapper.VideoMapper;
  4. import com.caimei.model.ResponseJson;
  5. import com.caimei.model.po.VideoPo;
  6. import com.caimei.model.vo.VideoListVo;
  7. import com.caimei.model.vo.WxVideoListVo;
  8. import com.caimei.service.data.VideoService;
  9. import com.caimei.utils.OSSUtils;
  10. import com.github.pagehelper.PageHelper;
  11. import com.github.pagehelper.PageInfo;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.stereotype.Service;
  16. import javax.annotation.Resource;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * Description
  21. *
  22. * @author : Aslee
  23. * @date : 2021/7/9
  24. */
  25. @Slf4j
  26. @Service
  27. public class VideoServiceImpl implements VideoService {
  28. @Resource
  29. private VideoMapper videoMapper;
  30. @Value("${aliyunConfig.accessKeyId}")
  31. private String accessKeyId;
  32. @Value("${aliyunConfig.accessKeySecret}")
  33. private String accessKeySecret;
  34. @Value("${aliyunConfig.bucketName}")
  35. private String bucketName;
  36. @Value("${aliyunConfig.endpoint}")
  37. private String endpoint;
  38. @Value("${spring.profiles.active}")
  39. private String active;
  40. @Resource
  41. private AuthMapper authMapper;
  42. @Override
  43. public ResponseJson<PageInfo<VideoListVo>> getVideoList(Integer listType, Integer authUserId, String videoTitle, Integer auditStatus, Integer status, Integer pageNum, Integer pageSize) {
  44. if (null == authUserId) {
  45. return ResponseJson.error("参数异常,请输入供应商用户id", null);
  46. }
  47. listType = null == listType ? 1 : listType;
  48. PageHelper.startPage(pageNum, pageSize);
  49. List<VideoListVo> videoList = videoMapper.getVideoList(listType, authUserId, videoTitle, auditStatus, status);
  50. PageInfo<VideoListVo> pageData = new PageInfo<>(videoList);
  51. return ResponseJson.success(pageData);
  52. }
  53. @Override
  54. public ResponseJson saveVideo(Integer videoId, Integer authUserId, String videoTitle, String videoName, String videoPreviewUrl, String videoDownloadUrl) {
  55. if (null == videoId && null == authUserId) {
  56. return ResponseJson.error("参数异常,请输入供应商用户id");
  57. }
  58. if (StringUtils.isEmpty(videoTitle)) {
  59. return ResponseJson.error("参数异常,请输入视频标题");
  60. }
  61. if (StringUtils.isEmpty(videoName)) {
  62. return ResponseJson.error("参数异常,请输入视频名称");
  63. }
  64. if (null == videoPreviewUrl || null == videoDownloadUrl) {
  65. return ResponseJson.error("参数异常,请上传视频");
  66. }
  67. /*
  68. 组装视频数据
  69. */
  70. VideoPo video = new VideoPo();
  71. video.setTitle(videoTitle);
  72. video.setName(videoName);
  73. video.setPreviewUrl(videoPreviewUrl);
  74. video.setDownloadUrl(videoDownloadUrl);
  75. // 上线状态默认为“待上线”,审核状态为“待审核”
  76. // video.setStatus(2);
  77. // video.setAuditStatus(2);
  78. video.setStatus(1);
  79. video.setAuditStatus(1);
  80. Integer adminUserId = authMapper.getAdminUserId();
  81. video.setAuditBy(adminUserId);
  82. video.setAuditTime(new Date());
  83. if (null != videoId) {
  84. /*
  85. 更新视频
  86. */
  87. video.setId(videoId);
  88. videoMapper.updateVideoSelective(video);
  89. } else {
  90. /*
  91. 新增视频
  92. */
  93. video.setAuthUserId(authUserId);
  94. video.setCreateTime(new Date());
  95. videoMapper.insertVideo(video);
  96. }
  97. return ResponseJson.success("保存视频成功");
  98. }
  99. @Override
  100. public ResponseJson updateVideoStatus(Integer videoId, Integer status) {
  101. if (null == videoId) {
  102. return ResponseJson.error("请输入视频id");
  103. }
  104. if (null == status) {
  105. return ResponseJson.error("请输入要更新的状态值");
  106. }
  107. videoMapper.updateVideoStatusByVideoId(videoId, status);
  108. if (0 == status) {
  109. return ResponseJson.success("下线视频成功");
  110. } else {
  111. return ResponseJson.success("上线视频成功");
  112. }
  113. }
  114. @Override
  115. public ResponseJson deleteVideo(Integer videoId) {
  116. if (null == videoId) {
  117. return ResponseJson.error("参数异常,请输入视频id");
  118. }
  119. // 删除视频
  120. videoMapper.deleteVideoByVideoId(videoId);
  121. return ResponseJson.success("删除视频成功");
  122. }
  123. @Override
  124. public ResponseJson auditVideo(Integer videoId, Integer auditStatus, String invalidReason, Integer auditBy) {
  125. if (null == videoId) {
  126. return ResponseJson.error("请输入视频id");
  127. }
  128. if (null == auditStatus) {
  129. return ResponseJson.error("请输入审核结果");
  130. }
  131. if (0 == auditStatus && StringUtils.isEmpty(invalidReason)) {
  132. return ResponseJson.error("请输入审核不通过的原因");
  133. }
  134. if (null == auditBy) {
  135. return ResponseJson.error("请输入审核人用户id");
  136. }
  137. Date auditTime = new Date();
  138. // 授权状态更新
  139. Integer status = null;
  140. if (0 == auditStatus) {
  141. // 审核不通过,下线视频
  142. status = 0;
  143. } else {
  144. // 审核通过,上线视频
  145. status = 1;
  146. }
  147. videoMapper.updateVideoAuditStatus(videoId, status, auditStatus, invalidReason, auditBy, auditTime);
  148. return ResponseJson.success("审核视频成功");
  149. }
  150. @Override
  151. public ResponseJson<PageInfo<WxVideoListVo>> getWxVideoList(Integer authUserId, String videoTitle, Integer pageNum, Integer pageSize) {
  152. if (null == authUserId) {
  153. return ResponseJson.error("参数异常,供应商用户id不能为空", null);
  154. }
  155. PageHelper.startPage(pageNum, pageSize);
  156. List<WxVideoListVo> videoList = videoMapper.getWxVideoList(authUserId, videoTitle);
  157. videoList.forEach(video-> video.setVideoPreviewUrl(OSSUtils.getOssUrl(video.getVideoDownloadUrl())));
  158. PageInfo<WxVideoListVo> pageData = new PageInfo<>(videoList);
  159. return ResponseJson.success(pageData);
  160. }
  161. }