|
@@ -5,14 +5,21 @@ import cn.rankin.common.utils.api.model.APIResult;
|
|
|
import cn.rankin.common.utils.api.page.Page;
|
|
|
import cn.rankin.common.utils.constant.ResourceType;
|
|
|
import cn.rankin.common.utils.dto.resource.ResourceSearchDTO;
|
|
|
+import cn.rankin.common.utils.enums.BaseStatusEnum;
|
|
|
+import cn.rankin.common.utils.util.DateUtil;
|
|
|
+import cn.rankin.data.api.resource.dto.AudioImgDTO;
|
|
|
+import cn.rankin.data.api.resource.entity.AudioImg;
|
|
|
import cn.rankin.data.api.resource.entity.Resource;
|
|
|
+import cn.rankin.resourceservice.service.AudioImgService;
|
|
|
import cn.rankin.resourceservice.service.ResourceService;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@@ -24,6 +31,9 @@ public class ResourceController {
|
|
|
@Autowired
|
|
|
private ResourceService resourceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private AudioImgService audioImgService;
|
|
|
+
|
|
|
public static String HTTP_VIDEO_DOMAIN = "http://efunvideo.ai160.com";
|
|
|
public static String LJ_VIDEO_DOMAIN = "http://ljvideo.ai160.com";
|
|
|
|
|
@@ -53,6 +63,62 @@ public class ResourceController {
|
|
|
resource.setName("%" + name.trim() + "%");
|
|
|
}
|
|
|
return resourceService.search(resource, resourceSearchDTO.getPageNo(), resourceSearchDTO.getPageSize());
|
|
|
+ }else if(type.intValue() == ResourceType.AUDIO_IMG){
|
|
|
+ // 本地取
|
|
|
+ AudioImg audioImg = new AudioImg();
|
|
|
+
|
|
|
+ String code = resourceSearchDTO.getCode();
|
|
|
+ if (!StringUtils.isEmpty(code)) {
|
|
|
+ audioImg.setCode("%" + code.trim() + "%");
|
|
|
+ }
|
|
|
+
|
|
|
+ String name = resourceSearchDTO.getName();
|
|
|
+ if (!StringUtils.isEmpty(name)) {
|
|
|
+ audioImg.setName("%" + name.trim() + "%");
|
|
|
+ }
|
|
|
+ Page<AudioImg> audioImgPage = audioImgService.search(audioImg, resourceSearchDTO.getPageNo(), resourceSearchDTO.getPageSize());
|
|
|
+
|
|
|
+ //创建一个默认为0
|
|
|
+ Page<Resource> page = new Page(0L, resourceSearchDTO.getPageNo(), resourceSearchDTO.getPageSize());
|
|
|
+
|
|
|
+ if(audioImgPage.getPageSize() > 0 ){
|
|
|
+ List<AudioImg> audioImgList = audioImgPage.getList();
|
|
|
+
|
|
|
+ if(!CollectionUtils.isEmpty(audioImgList)){
|
|
|
+ List<Resource> resourceList = new ArrayList<>();
|
|
|
+ page.setTotalSize(audioImgList.size());
|
|
|
+
|
|
|
+ //有声读物 转 资源
|
|
|
+ audioImgList.forEach(ai -> {
|
|
|
+ String audioId = ai.getAudioId();
|
|
|
+ Resource audio = resourceService.get(audioId);
|
|
|
+ resourceService.initResourceUrl(audio);
|
|
|
+ String imgId = ai.getImgId();
|
|
|
+ Resource img = resourceService.get(imgId);
|
|
|
+ resourceService.initResourceUrl(img);
|
|
|
+
|
|
|
+ Resource resource = new Resource();
|
|
|
+ //有声读物info
|
|
|
+ resource.setType(ai.getType());
|
|
|
+ resource.setId(ai.getId());
|
|
|
+ resource.setCode(ai.getCode());
|
|
|
+ resource.setName(ai.getName());
|
|
|
+ resource.setStatus(ai.getStatus());
|
|
|
+ resource.setGmtCreated(ai.getGmtCreated());
|
|
|
+ resource.setGmtModified(ai.getGmtModified());
|
|
|
+
|
|
|
+ //图片info
|
|
|
+ resource.setImg(img);
|
|
|
+ //音频info
|
|
|
+ resource.setAudio(audio);
|
|
|
+
|
|
|
+ resourceList.add(resource);
|
|
|
+ });
|
|
|
+ page.setList(resourceList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return APIResult.ok(page);
|
|
|
+
|
|
|
}else {
|
|
|
// 其他去云平台
|
|
|
if (resourceSearchDTO.getCode() != null) {
|
|
@@ -102,4 +168,116 @@ public class ResourceController {
|
|
|
|
|
|
return APIResult.ok();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /* ------------ 有声读物 audioImg ---------------------start---------------------------------*/
|
|
|
+ @RequestMapping(value="/audioImg",method = RequestMethod.POST)
|
|
|
+ public AudioImg createAudioImg(@RequestBody AudioImgDTO dto) {
|
|
|
+ if (audioImgService.exists(dto.getCode())) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ Resource audio = toAudioResource(dto);
|
|
|
+ Resource img = toImgResource(dto);
|
|
|
+
|
|
|
+ img = saveResource(img);
|
|
|
+ audio = saveResource(audio);
|
|
|
+
|
|
|
+ if(null != audio && null != img){
|
|
|
+ AudioImg ai = new AudioImg();
|
|
|
+ ai.setStatus(dto.getStatus());
|
|
|
+ ai.setName(dto.getName());
|
|
|
+ ai.setCode(dto.getCode());
|
|
|
+ ai.setType(ResourceType.AUDIO_IMG);
|
|
|
+
|
|
|
+ //audio info
|
|
|
+ ai.setAudioId(audio.getId());
|
|
|
+
|
|
|
+ //img info
|
|
|
+ ai.setImgId(img.getId());
|
|
|
+
|
|
|
+ AudioImg audioImg = audioImgService.save(ai);
|
|
|
+
|
|
|
+ return audioImg;
|
|
|
+ }else{
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value="/audioImg",method = RequestMethod.PUT)
|
|
|
+ public AudioImg updateAudioImg(@RequestBody AudioImgDTO dto) {
|
|
|
+
|
|
|
+ Resource audio = toAudioResource(dto);
|
|
|
+ Resource img = toImgResource(dto);
|
|
|
+
|
|
|
+ img = saveResource(img);
|
|
|
+ audio = saveResource(audio);
|
|
|
+
|
|
|
+ if(null != audio && null != img){
|
|
|
+ AudioImg ai = audioImgService.get(dto.getId());
|
|
|
+
|
|
|
+ ai.setStatus(dto.getStatus());
|
|
|
+ ai.setName(dto.getName());
|
|
|
+ ai.setCode(dto.getCode());
|
|
|
+
|
|
|
+ //audio info
|
|
|
+ ai.setAudioId(audio.getId());
|
|
|
+ //img info
|
|
|
+ ai.setImgId(img.getId());
|
|
|
+
|
|
|
+ AudioImg audioImg = audioImgService.update(ai);
|
|
|
+
|
|
|
+ return audioImg;
|
|
|
+ }else{
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private Resource toAudioResource(AudioImgDTO dto) {
|
|
|
+ Resource audio = new Resource();
|
|
|
+ audio.setCode(dto.getCode()+"_"+ResourceType.AUDIO+DateUtil.getTimeStamp());
|
|
|
+ audio.setName(dto.getName()+"_"+ResourceType.AUDIO+DateUtil.getTimeStamp());
|
|
|
+ audio.setFormat(dto.getAudioFormat());
|
|
|
+ audio.setPath(dto.getAudioPath());
|
|
|
+ audio.setSize(dto.getAudioSize());
|
|
|
+ audio.setStatus(BaseStatusEnum.NORMAL);
|
|
|
+ audio.setType(ResourceType.AUDIO);
|
|
|
+ audio.setQuality(dto.getAudioQuality());
|
|
|
+ return audio;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Resource toImgResource(AudioImgDTO dto) {
|
|
|
+ Resource img = new Resource();
|
|
|
+ img.setCode(dto.getCode()+"_"+ResourceType.IMG+DateUtil.getTimeStamp());
|
|
|
+ img.setName(dto.getName()+"_"+ResourceType.IMG+DateUtil.getTimeStamp());
|
|
|
+ img.setFormat(dto.getImgFormat());
|
|
|
+ img.setPath(dto.getImgPath());
|
|
|
+ img.setSize(dto.getImgSize());
|
|
|
+ img.setQuality(dto.getImgQuality());
|
|
|
+ img.setStatus(BaseStatusEnum.NORMAL);
|
|
|
+ img.setType(ResourceType.IMG);
|
|
|
+ return img;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 存储资源
|
|
|
+ * @param resource
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Resource saveResource(Resource resource) {
|
|
|
+
|
|
|
+ if (StringUtils.isEmpty(resource.getCode()) || StringUtils.isEmpty(resource.getPath())) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (resourceService.exists(resource.getCode())) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ //图片,音频类型 存本地
|
|
|
+ Resource result = resourceService.save(resource);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* ------------ 有声读物 audioImg ---------------------start---------------------------------*/
|
|
|
}
|