VideoStreamCallbackApi.java 4.2 KB
package com.cnlive.shenhe.api;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cnlive.shenhe.utils.AntiFraudUtil;

import java.util.UUID;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
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.ResponseBody;
import com.cnlive.shenhe.utils.AntiFraudUtil;


@SuppressWarnings("unused")
@Controller
@RequestMapping("/api/videoStream")
public class VideoStreamCallbackApi {
	 private static Logger logger = LoggerFactory.getLogger(VideoStreamCallbackApi.class);

    @RequestMapping(value = "callbackVideoStreamResult", method = RequestMethod.POST)
    @ResponseBody
    public void getFilterVideoResult(@RequestBody String json) {
        logger.info("数美视频过滤回调,json:{}", json);
        if (StringUtils.isNotEmpty(json)) {
            JSONObject jsonObj = JSON.parseObject(json);
            JSONObject resultObj = jsonObj.getJSONObject("result");
            Integer code = resultObj.getInteger("code");
            if (code != null && code == 1100) {
                String riskLevel = resultObj.getString("riskLevel");
                if ("PASS".equals(riskLevel)) {

                }
                if ("REJECT".equals(riskLevel)) {
                    JSONArray detail = resultObj.getJSONArray("detail");
                    JSONArray addition = resultObj.getJSONArray("addition");
                    if (detail == null || detail.size() == 0) {
                        if (addition != null || addition.size() > 0) {
                            for (int i = 0; i < addition.size(); i++) {
                                JSONObject additionObj = (JSONObject) addition.get(i);
                                String audio_evidence = additionObj.getString("audio_evidence");
                            }
//                            resultObj.put("desc",
//                                    String.format("(%s-%s)", audio_evidence.getString("description"), addition.getString("audio_matchedItem")));
                        }
                    }
//                    resultObj.put("desc",
//                            String.format("(%s-%s)", detail.getString("description"), detail.getString("matchedItem")));
                }

                if ("REVIEW".equals(riskLevel)) {
                }
            }else{
            	//数美请求结果code为失败状态
//            	jsonObj.put("type", "REJECT");
//            	jsonObj.put("desc","code:"+code+",message:"+resultObj.getString("message") );
            }
        }
    }
    
    /**
     * 测试视频流
     * @param videoStream
     */
    @RequestMapping(value="ceshiVideo")
    @ResponseBody
    public void ceshiVideo(String videoStream){
    	//调用数美接口
    	JSONObject result =  AntiFraudUtil.filterVideoStream(videoStream, UUID.randomUUID().toString(), "测试流的名称", "");
    	logger.info("code="+result.getString("code"));
    	logger.info("requestId="+result.getString("requestId"));
    	logger.error("直播流开始测试,result:{}", result);
    }
    
    /**
     * 测试视频流
     * @param videoStream
     */
    @RequestMapping(value="ceshiFinishVideo")
    @ResponseBody
    public void ceshiFinishVideo(String url,String requestId){
    	//调用数美接口
    	JSONObject result =  AntiFraudUtil.finishVideoStream(url,requestId);
    	logger.info("code="+result.getString("code"));
    	logger.info("requestId="+result.getString("requestId"));
    	logger.error("直播流结束测试,result:{}", result);
    }
    
    /**
     * 测试视频流
     * @param videoStream
     */
    @RequestMapping(value="queryVideo")
    @ResponseBody
    public void queryVideo(){
    	//调用数美接口
    	JSONObject result =  AntiFraudUtil.queryVideoStreamResult();
    	logger.info("code="+result.getString("code"));
    	logger.info("requestId="+result.getString("requestId"));
    	logger.error("直播流查询,result:{}", result);
    }
    
    
}