123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- package cn.efunbox.audio.controller;
- import cn.efunbox.audio.entity.*;
- import cn.efunbox.audio.service.*;
- import cn.efunbox.audio.utils.ApiCode;
- import cn.efunbox.audio.utils.HttpUtil;
- import cn.efunbox.audio.utils.Common;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
- import java.sql.Timestamp;
- 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;
- /**
- * 管理员搜索接口
- * @param request
- * @param response
- */
- @RequestMapping(value = "/admsearch", method = RequestMethod.POST)
- public void AdminSearch(HttpServletRequest request, HttpServletResponse response){
- String name = request.getParameter("name");
- String album = request.getParameter("album");
- List<Audio> list = new ArrayList<>();
- 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 if(album!=null && album.length()>0)
- list = audioService.SearchByAlbum(album);
- else
- list = audioService.SearchAll();
- HttpUtil.responseOkData(request, response, list);
- return;
- }
- /**
- * 用户搜索接口
- * @param request
- * @param response
- */
- @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;
- }
- if(id==null || id.length()==0)
- id = request.getHeader("id");
- 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 Timestamp(new Date().getTime()));
- recordService.Insert(record);
- HttpUtil.responseOkData(request, response, audio);
- return;
- }
- // @RequestMapping(value = "/insert", method = RequestMethod.POST)
- // public void Insert(HttpServletRequest request, HttpServletResponse response){
- // String gid = request.getParameter("gid");
- // String rid = request.getParameter("rid");
- // String album = request.getParameter("album");
- // String lesson = request.getParameter("lesson");
- // String name = request.getParameter("name");
- // String url = request.getParameter("url");
- // if(gid==null || rid==null || album==null || name==null){
- // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- // return;
- // }
- //
- // Audio audio = new Audio();
- // audio.setIdGroup(Long.valueOf(gid));
- // audio.setIdResource(rid);
- // 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;
- // }
- @RequestMapping(value = "/insert", method = RequestMethod.POST)
- public void Insert(HttpServletRequest request, HttpServletResponse response, @RequestBody Audio audio){
- if(audio.getIdGroup()==null || audio.getIdResource()==null || audio.getName()==null){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- audio.setCreated(new Timestamp(new Date().getTime()));
- audio = audioService.Insert(audio);
- HttpUtil.responseOutWithJson(request, response, audio);
- return;
- }
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- public void Update(HttpServletRequest request, HttpServletResponse response, @RequestBody Audio audio){
- if(audio.getId()==null){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- System.out.println(audio.toString());
- Audio audioOld = audioService.GetOne(audio.getId());
- if(audioOld==null){
- HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
- return;
- }
- audio = (Audio)Common.CopyValue(audio, audioOld);
- 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;
- }
- }
|