|
@@ -1,14 +1,11 @@
|
|
|
package cn.efunbox.audio.controller;
|
|
|
|
|
|
-import cn.efunbox.audio.entity.Audio;
|
|
|
-import cn.efunbox.audio.entity.Device;
|
|
|
-import cn.efunbox.audio.entity.Record;
|
|
|
-import cn.efunbox.audio.service.AudioService;
|
|
|
-import cn.efunbox.audio.service.DeviceService;
|
|
|
-import cn.efunbox.audio.service.RecordService;
|
|
|
+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;
|
|
@@ -19,6 +16,7 @@ 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.
|
|
@@ -34,6 +32,10 @@ public class AudioController {
|
|
|
DeviceService deviceService;
|
|
|
@Autowired
|
|
|
RecordService recordService;
|
|
|
+ @Autowired
|
|
|
+ GroupingService groupingService;
|
|
|
+ @Autowired
|
|
|
+ RightsService rightsService;
|
|
|
|
|
|
@RequestMapping(value = "/search" ,method = RequestMethod.POST)
|
|
|
public void Search(HttpServletRequest request, HttpServletResponse response){
|
|
@@ -57,17 +59,28 @@ public class AudioController {
|
|
|
HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
|
|
|
return;
|
|
|
}
|
|
|
- Random random = new Random();
|
|
|
- int r = Math.abs(random.nextInt())%list.size();
|
|
|
- Audio audio = list.get(r);
|
|
|
-
|
|
|
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());
|
|
@@ -104,4 +117,24 @@ public class AudioController {
|
|
|
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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|