VideoStreamCallbackApi.java 3.55 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)) {
                	JSONObject detail = resultObj.getJSONObject("detail");
                	logger.info("数美视频回调--REJECT,detail:{}", detail);
//                    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);
    }
    
    
}