AudioController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package cn.efunbox.audio.controller;
  2. import cn.efunbox.audio.entity.*;
  3. import cn.efunbox.audio.service.*;
  4. import cn.efunbox.audio.util.ApiCode;
  5. import cn.efunbox.audio.util.HttpUtil;
  6. import com.netflix.ribbon.proxy.annotation.Http;
  7. import com.sun.tools.javac.util.*;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.RequestParam;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.util.*;
  17. import java.util.List;
  18. /**
  19. * Created by yao on 17-9-26.
  20. */
  21. @RestController
  22. @Slf4j
  23. @RequestMapping(value = "/audio")
  24. public class AudioController {
  25. @Autowired
  26. AudioService audioService;
  27. @Autowired
  28. DeviceService deviceService;
  29. @Autowired
  30. RecordService recordService;
  31. @Autowired
  32. GroupingService groupingService;
  33. @Autowired
  34. RightsService rightsService;
  35. @RequestMapping(value = "/search" ,method = RequestMethod.POST)
  36. public void Search(HttpServletRequest request, HttpServletResponse response){
  37. String id = request.getParameter("id");
  38. String name = request.getParameter("name");
  39. String album = request.getParameter("album");
  40. if(name==null && album==null){
  41. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  42. return;
  43. }
  44. List<Audio> list = null;
  45. System.out.println("album:"+album+",name:"+name);
  46. if(name!=null && name.length()>0 && album!=null && album.length()>0)
  47. list = audioService.SearchByNameAlbum(name, album);
  48. else if(name!=null && name.length()>0)
  49. list = audioService.SearchByName(name);
  50. else
  51. list = audioService.SearchByAlbum(album);
  52. if(list==null || list.size()<1){
  53. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  54. return;
  55. }
  56. Device device = deviceService.GetOne(Long.valueOf(id));
  57. if(device==null){
  58. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  59. return;
  60. }
  61. //搜素设备所属渠道具有哪些资源组的权限
  62. Long idChannel = device.getIdChannel();
  63. List<Rights> rightsList = rightsService.SearchByIdChannel(idChannel);
  64. if(rightsList==null || rightsList.size()<1){
  65. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  66. return;
  67. }
  68. //过滤出有访问权限的音频列表
  69. List<Audio> audioList = FilterRights(list, rightsList);
  70. if(audioList==null || audioList.size()<1){
  71. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  72. return;
  73. }
  74. //随机选择一个音频
  75. Random random = new Random();
  76. int r = Math.abs(random.nextInt())%audioList.size();
  77. Audio audio = audioList.get(r);
  78. Record record = new Record();
  79. record.setIdDevice(device.getId());
  80. record.setIdChannel(device.getIdChannel());
  81. record.setIdAudio(audio.getId());
  82. record.setCreated(new Date());
  83. recordService.Insert(record);
  84. HttpUtil.responseOkData(request, response, audio);
  85. return;
  86. }
  87. @RequestMapping(value = "/insert", method = RequestMethod.POST)
  88. public void Insert(HttpServletRequest request, HttpServletResponse response){
  89. String album = request.getParameter("album");
  90. String lesson = request.getParameter("lesson");
  91. String name = request.getParameter("name");
  92. String url = request.getParameter("url");
  93. if(album==null || name==null && url==null){
  94. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  95. return;
  96. }
  97. Audio audio = new Audio();
  98. audio.setAlbum(album);
  99. if(lesson!=null && lesson.length()>0)
  100. audio.setLesson(Integer.valueOf(lesson));
  101. audio.setName(name);
  102. audio.setUrl(url);
  103. audio.setCreated(new Date());
  104. audio = audioService.Insert(audio);
  105. HttpUtil.responseOutWithJson(request, response, audio);
  106. return;
  107. }
  108. /**
  109. * 过滤出渠道有访问权限的音频列表
  110. * @param audioList
  111. * @param rightsList
  112. * @return audioList
  113. */
  114. private List<Audio> FilterRights(List<Audio> audioList, List<Rights> rightsList){
  115. List<Audio> aList = new ArrayList<>();
  116. for(int i=0; i<audioList.size(); i++){
  117. for(int j=0; j<rightsList.size(); j++){
  118. if(audioList.get(i).getIdGroup() == rightsList.get(j).getIdGroup()){
  119. aList.add(audioList.get(i));
  120. break;
  121. }
  122. }
  123. }
  124. return aList;
  125. }
  126. }