123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package cn.efunbox.audio.controller;
- import cn.efunbox.audio.entity.*;
- import cn.efunbox.audio.service.*;
- import cn.efunbox.audio.util.ApiCode;
- import cn.efunbox.audio.util.HttpUtil;
- import com.netflix.ribbon.proxy.annotation.Http;
- import com.sun.tools.javac.util.*;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.*;
- import java.util.List;
- /**
- * Created by yao on 17-9-26.
- */
- @RestController
- @Slf4j
- @RequestMapping(value = "/audio")
- public class AudioController {
- @Autowired
- AudioService audioService;
- @Autowired
- DeviceService deviceService;
- @Autowired
- RecordService recordService;
- @Autowired
- GroupingService groupingService;
- @Autowired
- RightsService rightsService;
- @RequestMapping(value = "/search" ,method = RequestMethod.POST)
- public void Search(HttpServletRequest request, HttpServletResponse response){
- String id = request.getParameter("id");
- String name = request.getParameter("name");
- String album = request.getParameter("album");
- if(name==null && album==null){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- List<Audio> list = null;
- System.out.println("album:"+album+",name:"+name);
- if(name!=null && name.length()>0 && album!=null && album.length()>0)
- list = audioService.SearchByNameAlbum(name, album);
- else if(name!=null && name.length()>0)
- list = audioService.SearchByName(name);
- else
- list = audioService.SearchByAlbum(album);
- if(list==null || list.size()<1){
- HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
- return;
- }
- Device device = deviceService.GetOne(Long.valueOf(id));
- if(device==null){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- //搜素设备所属渠道具有哪些资源组的权限
- Long idChannel = device.getIdChannel();
- List<Rights> rightsList = rightsService.SearchByIdChannel(idChannel);
- if(rightsList==null || rightsList.size()<1){
- HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
- return;
- }
- //过滤出有访问权限的音频列表
- List<Audio> audioList = FilterRights(list, rightsList);
- if(audioList==null || audioList.size()<1){
- HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
- return;
- }
- //随机选择一个音频
- Random random = new Random();
- int r = Math.abs(random.nextInt())%audioList.size();
- Audio audio = audioList.get(r);
- Record record = new Record();
- record.setIdDevice(device.getId());
- record.setIdChannel(device.getIdChannel());
- record.setIdAudio(audio.getId());
- record.setCreated(new Date());
- recordService.Insert(record);
- HttpUtil.responseOkData(request, response, audio);
- return;
- }
- @RequestMapping(value = "/insert", method = RequestMethod.POST)
- public void Insert(HttpServletRequest request, HttpServletResponse response){
- String album = request.getParameter("album");
- String lesson = request.getParameter("lesson");
- String name = request.getParameter("name");
- String url = request.getParameter("url");
- if(album==null || name==null && url==null){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- Audio audio = new Audio();
- audio.setAlbum(album);
- if(lesson!=null && lesson.length()>0)
- audio.setLesson(Integer.valueOf(lesson));
- audio.setName(name);
- audio.setUrl(url);
- audio.setCreated(new Date());
- audio = audioService.Insert(audio);
- HttpUtil.responseOutWithJson(request, response, audio);
- return;
- }
- /**
- * 过滤出渠道有访问权限的音频列表
- * @param audioList
- * @param rightsList
- * @return audioList
- */
- private List<Audio> FilterRights(List<Audio> audioList, List<Rights> rightsList){
- List<Audio> aList = new ArrayList<>();
- for(int i=0; i<audioList.size(); i++){
- for(int j=0; j<rightsList.size(); j++){
- if(audioList.get(i).getIdGroup() == rightsList.get(j).getIdGroup()){
- aList.add(audioList.get(i));
- break;
- }
- }
- }
- return aList;
- }
- }
|