AudioController.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package cn.efunbox.audio.controller;
  2. import cn.efunbox.audio.entity.*;
  3. import cn.efunbox.audio.service.*;
  4. import cn.efunbox.audio.utils.ApiCode;
  5. import cn.efunbox.audio.utils.HttpUtil;
  6. import cn.efunbox.audio.utils.Common;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.RequestBody;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import java.lang.reflect.Field;
  16. import java.lang.reflect.Method;
  17. import java.sql.Timestamp;
  18. import java.util.*;
  19. import java.util.List;
  20. /**
  21. * Created by yao on 17-9-26.
  22. */
  23. @RestController
  24. @Slf4j
  25. @RequestMapping(value = "/audio")
  26. public class AudioController {
  27. @Autowired
  28. AudioService audioService;
  29. @Autowired
  30. DeviceService deviceService;
  31. @Autowired
  32. RecordService recordService;
  33. @Autowired
  34. GroupingService groupingService;
  35. @Autowired
  36. RightsService rightsService;
  37. /**
  38. * 管理员搜索接口
  39. * @param request
  40. * @param response
  41. */
  42. @RequestMapping(value = "/admsearch", method = RequestMethod.POST)
  43. public void AdminSearch(HttpServletRequest request, HttpServletResponse response){
  44. String name = request.getParameter("name");
  45. String album = request.getParameter("album");
  46. List<Audio> list = new ArrayList<>();
  47. if(name!=null && name.length()>0 && album!=null && album.length()>0)
  48. list = audioService.SearchByNameAlbum(name, album);
  49. else if(name!=null && name.length()>0)
  50. list = audioService.SearchByName(name);
  51. else if(album!=null && album.length()>0)
  52. list = audioService.SearchByAlbum(album);
  53. else
  54. list = audioService.SearchAll();
  55. HttpUtil.responseOkData(request, response, list);
  56. return;
  57. }
  58. /**
  59. * 用户搜索接口
  60. * @param request
  61. * @param response
  62. */
  63. @RequestMapping(value = "/search", method = RequestMethod.POST)
  64. public void Search(HttpServletRequest request, HttpServletResponse response){
  65. String id = request.getParameter("id");
  66. String name = request.getParameter("name");
  67. String album = request.getParameter("album");
  68. if(name==null && album==null){
  69. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  70. return;
  71. }
  72. if(id==null || id.length()==0)
  73. id = request.getHeader("id");
  74. List<Audio> list = null;
  75. // System.out.println("album:"+album+",name:"+name);
  76. if(name!=null && name.length()>0 && album!=null && album.length()>0)
  77. list = audioService.SearchByNameAlbum(name, album);
  78. else if(name!=null && name.length()>0)
  79. list = audioService.SearchByName(name);
  80. else
  81. list = audioService.SearchByAlbum(album);
  82. if(list==null || list.size()<1){
  83. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  84. return;
  85. }
  86. Device device = deviceService.GetOne(Long.valueOf(id));
  87. if(device==null){
  88. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  89. return;
  90. }
  91. //搜素设备所属渠道具有哪些资源组的权限
  92. Long idChannel = device.getIdChannel();
  93. List<Rights> rightsList = rightsService.SearchByIdChannel(idChannel);
  94. if(rightsList==null || rightsList.size()<1){
  95. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  96. return;
  97. }
  98. //过滤出有访问权限的音频列表
  99. List<Audio> audioList = FilterRights(list, rightsList);
  100. if(audioList==null || audioList.size()<1){
  101. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  102. return;
  103. }
  104. //随机选择一个音频
  105. Random random = new Random();
  106. int r = Math.abs(random.nextInt())%audioList.size();
  107. Audio audio = audioList.get(r);
  108. Record record = new Record();
  109. record.setIdDevice(device.getId());
  110. record.setIdChannel(device.getIdChannel());
  111. record.setIdAudio(audio.getId());
  112. record.setCreated(new Timestamp(new Date().getTime()));
  113. recordService.Insert(record);
  114. HttpUtil.responseOkData(request, response, audio);
  115. return;
  116. }
  117. // @RequestMapping(value = "/insert", method = RequestMethod.POST)
  118. // public void Insert(HttpServletRequest request, HttpServletResponse response){
  119. // String gid = request.getParameter("gid");
  120. // String rid = request.getParameter("rid");
  121. // String album = request.getParameter("album");
  122. // String lesson = request.getParameter("lesson");
  123. // String name = request.getParameter("name");
  124. // String url = request.getParameter("url");
  125. // if(gid==null || rid==null || album==null || name==null){
  126. // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  127. // return;
  128. // }
  129. //
  130. // Audio audio = new Audio();
  131. // audio.setIdGroup(Long.valueOf(gid));
  132. // audio.setIdResource(rid);
  133. // audio.setAlbum(album);
  134. // if(lesson!=null && lesson.length()>0)
  135. // audio.setLesson(Integer.valueOf(lesson));
  136. // audio.setName(name);
  137. // audio.setUrl(url);
  138. // audio.setCreated(new Date());
  139. // audio = audioService.Insert(audio);
  140. //
  141. // HttpUtil.responseOutWithJson(request, response, audio);
  142. // return;
  143. // }
  144. @RequestMapping(value = "/insert", method = RequestMethod.POST)
  145. public void Insert(HttpServletRequest request, HttpServletResponse response, @RequestBody Audio audio){
  146. if(audio.getIdGroup()==null || audio.getIdResource()==null || audio.getName()==null){
  147. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  148. return;
  149. }
  150. audio.setCreated(new Timestamp(new Date().getTime()));
  151. audio = audioService.Insert(audio);
  152. HttpUtil.responseOutWithJson(request, response, audio);
  153. return;
  154. }
  155. @RequestMapping(value = "/update", method = RequestMethod.POST)
  156. public void Update(HttpServletRequest request, HttpServletResponse response, @RequestBody Audio audio){
  157. if(audio.getId()==null){
  158. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  159. return;
  160. }
  161. System.out.println(audio.toString());
  162. Audio audioOld = audioService.GetOne(audio.getId());
  163. if(audioOld==null){
  164. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  165. return;
  166. }
  167. audio = (Audio)Common.CopyValue(audio, audioOld);
  168. audio = audioService.Insert(audio);
  169. HttpUtil.responseOutWithJson(request, response, audio);
  170. return;
  171. }
  172. /**
  173. * 过滤出渠道有访问权限的音频列表
  174. * @param audioList
  175. * @param rightsList
  176. * @return audioList
  177. */
  178. private List<Audio> FilterRights(List<Audio> audioList, List<Rights> rightsList){
  179. List<Audio> aList = new ArrayList<>();
  180. for(int i=0; i<audioList.size(); i++){
  181. for(int j=0; j<rightsList.size(); j++){
  182. if(audioList.get(i).getIdGroup() == rightsList.get(j).getIdGroup()){
  183. aList.add(audioList.get(i));
  184. break;
  185. }
  186. }
  187. }
  188. return aList;
  189. }
  190. }