Commit 64116a2d45822c90c85582bb339e7dec8ff305e4

Authored by liwei2917
2 parents 868c0e09 9988db06

Merge branch 'dev'

... ... @@ -62,6 +62,13 @@
62 62 <artifactId>commons-lang3</artifactId>
63 63 <version>3.8</version>
64 64 </dependency>
  65 +
  66 + <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
  67 + <dependency>
  68 + <groupId>org.jsoup</groupId>
  69 + <artifactId>jsoup</artifactId>
  70 + <version>1.11.3</version>
  71 + </dependency>
65 72  
66 73 <dependency>
67 74 <groupId>org.mybatis.spring.boot</groupId>
... ...
src/main/java/com/cnlive/shenhe/api/AvsampleCallBackControllerApi.java
... ... @@ -11,6 +11,7 @@ import org.slf4j.Logger;
11 11 import org.slf4j.LoggerFactory;
12 12 import org.springframework.beans.factory.annotation.Autowired;
13 13 import org.springframework.stereotype.Controller;
  14 +import org.springframework.web.bind.annotation.GetMapping;
14 15 import org.springframework.web.bind.annotation.PostMapping;
15 16 import org.springframework.web.bind.annotation.RequestBody;
16 17 import org.springframework.web.bind.annotation.RequestMapping;
... ... @@ -67,4 +68,9 @@ public class AvsampleCallBackControllerApi {
67 68 }
68 69 return result;
69 70 }
  71 +
  72 + @GetMapping("/getGame")
  73 + public String getGame(){
  74 + return "html/game.html";
  75 + }
70 76 }
... ...
src/main/java/com/cnlive/shenhe/api/LiveControllerApi.java 0 → 100644
  1 +package com.cnlive.shenhe.api;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONArray;
  5 +import com.alibaba.fastjson.JSONObject;
  6 +import com.cnlive.shenhe.bean.ErrorEnum;
  7 +import com.cnlive.shenhe.bean.ResponseBean;
  8 +import com.cnlive.shenhe.entity.ShyLive;
  9 +import com.cnlive.shenhe.entity.ShyVideos;
  10 +import com.cnlive.shenhe.serviceImpl.LiveServiceImpl;
  11 +import com.cnlive.shenhe.serviceImpl.VideosServiceImpl;
  12 +import com.cnlive.shenhe.utils.AntiFraudUtil;
  13 +import com.cnlive.shenhe.utils.CommonUtils;
  14 +
  15 +import java.sql.Timestamp;
  16 +import java.util.Date;
  17 +import java.util.HashMap;
  18 +import java.util.List;
  19 +import java.util.Map;
  20 +import java.util.UUID;
  21 +
  22 +import org.apache.commons.lang3.StringUtils;
  23 +import org.slf4j.Logger;
  24 +import org.slf4j.LoggerFactory;
  25 +import org.springframework.beans.factory.annotation.Autowired;
  26 +import org.springframework.stereotype.Controller;
  27 +import org.springframework.web.bind.annotation.PostMapping;
  28 +import org.springframework.web.bind.annotation.RequestBody;
  29 +import org.springframework.web.bind.annotation.RequestMapping;
  30 +import org.springframework.web.bind.annotation.RequestMethod;
  31 +import org.springframework.web.bind.annotation.ResponseBody;
  32 +import com.cnlive.shenhe.utils.AntiFraudUtil;
  33 +
  34 +
  35 +@SuppressWarnings("unused")
  36 +@Controller
  37 +@RequestMapping("/api/live")
  38 +public class LiveControllerApi {
  39 + private static Logger logger = LoggerFactory.getLogger(LiveControllerApi.class);
  40 +
  41 + @Autowired
  42 + LiveServiceImpl liveService;
  43 +
  44 + @PostMapping("/import")
  45 + @ResponseBody
  46 + public JSONObject impotVideo(String param) {
  47 + JSONObject map = new JSONObject();
  48 + JSONObject result = new JSONObject();
  49 + boolean YorN =true;//初始化一个请求数据库返回结果
  50 +
  51 + logger.info("直播入库,param=====" + param);
  52 + JSONObject json = JSONObject.parseObject(param);
  53 + //获取所有参数
  54 + String activityId = json.getString("activityId");//直播活动id
  55 + String activityName = json.getString("activityName");//直播活动名称
  56 + Integer activityStatus = Integer.parseInt(json.getString("activityStatus"));//直播活动状态
  57 + String channelId = json.getString("channelId");//直播频道id
  58 + String mp4Url = json.getString("mp4Url");//rtmp直播流
  59 + String hlsUrl = json.getString("hlsUrl");//m3u8直播流
  60 + Integer spId = Integer.parseInt(json.getString("spId"));//spid
  61 + String callback = json.getString("callback");//回调地址
  62 + Integer is_hot = Integer.parseInt(json.getString("priority"));//优先级
  63 + String coverImgUrl = json.getString("coverImgUrl");//封面
  64 + String activityIntro = json.getString("activityIntro");//活动描述
  65 + String playbackUrl = json.getString("playbackUrl");//回放地址
  66 + String startTime = json.getString("startTime");//开始时间
  67 + Date timestamp_start =null;
  68 + if (CommonUtils.isNotEmpty(startTime)) {
  69 + timestamp_start = new Timestamp(Long.valueOf(startTime));
  70 + }
  71 + String endTime = json.getString("endTime");//结束时间
  72 + Date timestamp_end =null;
  73 + if (CommonUtils.isNotEmpty(endTime)) {
  74 + timestamp_end = new Timestamp(Long.valueOf(endTime));
  75 + }
  76 +
  77 + ShyLive shylive1 = new ShyLive();
  78 + //得到直播活动id去查询是否已有
  79 + shylive1.setActivity_id(activityId);
  80 + //查询一下 存在,更新 没有,插入
  81 + List<ShyLive> listshyLive = liveService.findshyLive(shylive1);
  82 +
  83 + if (listshyLive.size() > 0) {
  84 + ShyLive shyLive = listshyLive.get(0);
  85 + //封装数据入库
  86 + shylive1.setSp_id(spId);//设置spid
  87 + shyLive.setActivity_name(activityName);//设置直播活动名称
  88 + shyLive.setActivity_status(activityStatus);//设置直播活动状态
  89 + if(activityStatus==3){//发布直播
  90 + shyLive.setActivity_start_time(timestamp_start);
  91 + shyLive.setActivity_end_time(timestamp_end);
  92 + shyLive.setIs_hot(2);//是否是热点: 1:不是 ,2: 是
  93 + }else if(activityStatus==1){//启动直播
  94 + shyLive.setActivity_start_time(CommonUtils.getCurrentTime());
  95 + shyLive.setIs_hot(2);//是否是热点: 1:不是 ,2: 是
  96 + }else if(activityStatus==2){//停止直播
  97 + shyLive.setActivity_end_time(CommonUtils.getCurrentTime());
  98 + shyLive.setPlayback_url(playbackUrl);//回放地址
  99 + shyLive.setShenhe_state(2);//状态 0:未认领 1.已领未审,2:已审
  100 + shyLive.setUpdater("自动通过");;//直播完成后自动通过
  101 + shyLive.setIs_hot(1);//是否是热点: 1:不是 ,2: 是
  102 + }else if(activityStatus==4){//审核强制下线
  103 + shyLive.setActivity_end_time(CommonUtils.getCurrentTime());
  104 + shyLive.setPlayback_url(playbackUrl);//回放地址
  105 + shyLive.setIs_hot(1);//是否是热点: 1:不是 ,2: 是
  106 + }
  107 + shyLive.setActivity_intro(activityIntro);//直播活动简介
  108 + shyLive.setM3u8_url(hlsUrl);//m3u8直播流
  109 + shyLive.setRtmp_url(mp4Url);//rtmp直播流
  110 + shyLive.setCallback(callback);//回调地址
  111 + shyLive.setCover_img_url(coverImgUrl);//封面
  112 + shyLive.setShenhe_type(3);//审核类型,1:免审,2:机审,3:人工审
  113 + shyLive.setAvsample_state(1);//抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  114 + if(activityStatus==0){//直播撤销
  115 + shyLive.setIs_show(0);//是否显示 0:不显示 1:显示
  116 + shyLive.setIs_hot(1);//是否是热点: 1:不是 ,2: 是
  117 + }else{
  118 + shyLive.setIs_show(1);
  119 + }
  120 + shyLive.setUpdated_at(CommonUtils.getCurrentTime());//更新时间
  121 +
  122 + YorN = liveService.updateshyLive(shyLive);
  123 + }else{
  124 + //查了,没有,直接插入数据库
  125 + shylive1.setActivity_id(activityId);//设置直播活动id
  126 + shylive1.setActivity_name(activityName);//设置直播活动名称
  127 + shylive1.setActivity_status(activityStatus);//设置直播活动状态
  128 + shylive1.setChannel_id(channelId);//设置直播频道
  129 + shylive1.setSp_id(spId);//设置spid
  130 + shylive1.setShenhe_state(0); //状态 0:未认领 1.已领未审,2:已审
  131 + shylive1.setIs_hot(2);//是否是热点: 1:不是 ,2: 是
  132 + if(activityStatus==3){//发布直播
  133 + shylive1.setActivity_start_time(timestamp_start);
  134 + shylive1.setActivity_end_time(timestamp_end);
  135 + }else if(activityStatus==1){//启动直播
  136 + shylive1.setActivity_start_time(CommonUtils.getCurrentTime());
  137 + shylive1.setActivity_end_time(timestamp_end);
  138 + }else if(activityStatus==2){//停止直播
  139 + shylive1.setActivity_start_time(timestamp_start);
  140 + shylive1.setActivity_end_time(CommonUtils.getCurrentTime());
  141 + shylive1.setPlayback_url(playbackUrl);//回放地址
  142 + shylive1.setShenhe_state(2); //状态 0:未认领 1.已领未审,2:已审
  143 + shylive1.setUpdater("自动通过");;//直播完成后自动通过
  144 + shylive1.setIs_hot(1);//是否是热点: 1:不是 ,2: 是
  145 + }else if(activityStatus==4){//审核强制下线
  146 + shylive1.setActivity_start_time(timestamp_start);
  147 + shylive1.setActivity_end_time(CommonUtils.getCurrentTime());
  148 + shylive1.setPlayback_url(playbackUrl);//回放地址
  149 + shylive1.setShenhe_state(2); //状态 0:未认领 1.已领未审,2:已审
  150 + shylive1.setIs_hot(1);//是否是热点: 1:不是 ,2: 是
  151 + }
  152 + shylive1.setActivity_intro(activityIntro);//直播活动简介
  153 + shylive1.setM3u8_url(hlsUrl);//m3u8直播流
  154 + shylive1.setRtmp_url(mp4Url);//rtmp直播流
  155 + shylive1.setCallback(callback);//回调地址
  156 + shylive1.setCover_img_url(coverImgUrl);//封面
  157 + shylive1.setShenhe_type(3);//审核类型,1:免审,2:机审,3:人工审
  158 + shylive1.setAvsample_state(1);//抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  159 + if(activityStatus==0){//直播撤销
  160 + shylive1.setIs_show(0);//是否显示 0:不显示 1:显示
  161 + shylive1.setIs_hot(1);//是否是热点: 1:不是 ,2: 是
  162 + }else{
  163 + shylive1.setIs_show(1);
  164 + }
  165 +
  166 + shylive1.setCreated_at(CommonUtils.getCurrentTime());//创建时间
  167 + shylive1.setUpdated_at(CommonUtils.getCurrentTime());//更新时间
  168 +
  169 + YorN = liveService.impotVideo(shylive1);
  170 + }
  171 +
  172 + if (YorN == true) {
  173 + result.put("errorCode", "0");
  174 + result.put("errorMessage", "直播审核请求收到成功");
  175 + map.put("statusCode", "200");
  176 + map.put("result", result);
  177 + } else {
  178 + result.put("errorCode", "-1");
  179 + result.put("errorMessage", "直播审核入库失败");
  180 + map.put("statusCode", "300");
  181 + map.put("result", result);
  182 + }
  183 + return map;
  184 + }
  185 +
  186 +
  187 + @RequestMapping(value = "callbackLiveResult", method = RequestMethod.POST)
  188 + @ResponseBody
  189 + public void getFilterVideoResult(@RequestBody String json) {
  190 + logger.info("数美视频过滤回调,json:{}", json);
  191 + if (StringUtils.isNotEmpty(json)) {
  192 + JSONObject jsonObj = JSON.parseObject(json);
  193 + JSONObject resultObj = jsonObj.getJSONObject("result");
  194 + Integer code = resultObj.getInteger("code");
  195 + if (code != null && code == 1100) {
  196 + String riskLevel = resultObj.getString("riskLevel");
  197 + if ("PASS".equals(riskLevel)) {
  198 +
  199 + }
  200 + if ("REJECT".equals(riskLevel)) {
  201 + JSONObject detail = resultObj.getJSONObject("detail");
  202 + logger.info("数美视频回调--REJECT,detail:{}", detail);
  203 +// resultObj.put("desc",
  204 +// String.format("(%s-%s)", detail.getString("description"), detail.getString("matchedItem")));
  205 + }
  206 +
  207 + if ("REVIEW".equals(riskLevel)) {
  208 + }
  209 + }else{
  210 + //数美请求结果code为失败状态
  211 +// jsonObj.put("type", "REJECT");
  212 +// jsonObj.put("desc","code:"+code+",message:"+resultObj.getString("message") );
  213 + }
  214 + }
  215 + }
  216 +
  217 + /**
  218 + * 测试视频流
  219 + * @param videoStream
  220 + */
  221 + @RequestMapping(value="ceshiVideo")
  222 + @ResponseBody
  223 + public void ceshiVideo(String videoStream){
  224 + //调用数美接口
  225 + JSONObject result = AntiFraudUtil.filterVideoStream(videoStream, UUID.randomUUID().toString(), "测试流的名称", "");
  226 + logger.info("code="+result.getString("code"));
  227 + logger.info("requestId="+result.getString("requestId"));
  228 + logger.error("直播流开始测试,result:{}", result);
  229 + }
  230 +
  231 + /**
  232 + * 测试视频流
  233 + * @param videoStream
  234 + */
  235 + @RequestMapping(value="ceshiFinishVideo")
  236 + @ResponseBody
  237 + public void ceshiFinishVideo(String url,String requestId){
  238 + //调用数美接口
  239 + JSONObject result = AntiFraudUtil.finishVideoStream(url,requestId);
  240 + logger.info("code="+result.getString("code"));
  241 + logger.info("requestId="+result.getString("requestId"));
  242 + logger.error("直播流结束测试,result:{}", result);
  243 + }
  244 +
  245 + /**
  246 + * 测试视频流
  247 + * @param videoStream
  248 + */
  249 + @RequestMapping(value="queryVideo")
  250 + @ResponseBody
  251 + public void queryVideo(){
  252 + //调用数美接口
  253 + JSONObject result = AntiFraudUtil.queryVideoStreamResult();
  254 + logger.info("code="+result.getString("code"));
  255 + logger.info("requestId="+result.getString("requestId"));
  256 + logger.error("直播流查询,result:{}", result);
  257 + }
  258 +
  259 +
  260 +}
... ...
src/main/java/com/cnlive/shenhe/api/VideoStreamCallbackApi.java deleted 100644 → 0
1   -package com.cnlive.shenhe.api;
2   -
3   -import com.alibaba.fastjson.JSON;
4   -import com.alibaba.fastjson.JSONArray;
5   -import com.alibaba.fastjson.JSONObject;
6   -import com.cnlive.shenhe.utils.AntiFraudUtil;
7   -
8   -import java.util.UUID;
9   -
10   -import org.apache.commons.lang3.StringUtils;
11   -import org.slf4j.Logger;
12   -import org.slf4j.LoggerFactory;
13   -import org.springframework.stereotype.Controller;
14   -import org.springframework.web.bind.annotation.RequestBody;
15   -import org.springframework.web.bind.annotation.RequestMapping;
16   -import org.springframework.web.bind.annotation.RequestMethod;
17   -import org.springframework.web.bind.annotation.ResponseBody;
18   -import com.cnlive.shenhe.utils.AntiFraudUtil;
19   -
20   -
21   -@SuppressWarnings("unused")
22   -@Controller
23   -@RequestMapping("/api/videoStream")
24   -public class VideoStreamCallbackApi {
25   - private static Logger logger = LoggerFactory.getLogger(VideoStreamCallbackApi.class);
26   -
27   - @RequestMapping(value = "callbackVideoStreamResult", method = RequestMethod.POST)
28   - @ResponseBody
29   - public void getFilterVideoResult(@RequestBody String json) {
30   - logger.info("数美视频过滤回调,json:{}", json);
31   - if (StringUtils.isNotEmpty(json)) {
32   - JSONObject jsonObj = JSON.parseObject(json);
33   - JSONObject resultObj = jsonObj.getJSONObject("result");
34   - Integer code = resultObj.getInteger("code");
35   - if (code != null && code == 1100) {
36   - String riskLevel = resultObj.getString("riskLevel");
37   - if ("PASS".equals(riskLevel)) {
38   -
39   - }
40   - if ("REJECT".equals(riskLevel)) {
41   - JSONObject detail = resultObj.getJSONObject("detail");
42   - logger.info("数美视频回调--REJECT,detail:{}", detail);
43   -// resultObj.put("desc",
44   -// String.format("(%s-%s)", detail.getString("description"), detail.getString("matchedItem")));
45   - }
46   -
47   - if ("REVIEW".equals(riskLevel)) {
48   - }
49   - }else{
50   - //数美请求结果code为失败状态
51   -// jsonObj.put("type", "REJECT");
52   -// jsonObj.put("desc","code:"+code+",message:"+resultObj.getString("message") );
53   - }
54   - }
55   - }
56   -
57   - /**
58   - * 测试视频流
59   - * @param videoStream
60   - */
61   - @RequestMapping(value="ceshiVideo")
62   - @ResponseBody
63   - public void ceshiVideo(String videoStream){
64   - //调用数美接口
65   - JSONObject result = AntiFraudUtil.filterVideoStream(videoStream, UUID.randomUUID().toString(), "测试流的名称", "");
66   - logger.info("code="+result.getString("code"));
67   - logger.info("requestId="+result.getString("requestId"));
68   - logger.error("直播流开始测试,result:{}", result);
69   - }
70   -
71   - /**
72   - * 测试视频流
73   - * @param videoStream
74   - */
75   - @RequestMapping(value="ceshiFinishVideo")
76   - @ResponseBody
77   - public void ceshiFinishVideo(String url,String requestId){
78   - //调用数美接口
79   - JSONObject result = AntiFraudUtil.finishVideoStream(url,requestId);
80   - logger.info("code="+result.getString("code"));
81   - logger.info("requestId="+result.getString("requestId"));
82   - logger.error("直播流结束测试,result:{}", result);
83   - }
84   -
85   - /**
86   - * 测试视频流
87   - * @param videoStream
88   - */
89   - @RequestMapping(value="queryVideo")
90   - @ResponseBody
91   - public void queryVideo(){
92   - //调用数美接口
93   - JSONObject result = AntiFraudUtil.queryVideoStreamResult();
94   - logger.info("code="+result.getString("code"));
95   - logger.info("requestId="+result.getString("requestId"));
96   - logger.error("直播流查询,result:{}", result);
97   - }
98   -
99   -
100   -}
src/main/java/com/cnlive/shenhe/controller/ContentController.java
... ... @@ -6,6 +6,7 @@ import com.cnlive.shenhe.bean.ResponseBean;
6 6 import com.cnlive.shenhe.bean.SessionUser;
7 7 import com.cnlive.shenhe.entity.ShyComments;
8 8 import com.cnlive.shenhe.entity.ShyContent;
  9 +import com.cnlive.shenhe.entity.ShyLive;
9 10 import com.cnlive.shenhe.entity.ShySites;
10 11 import com.cnlive.shenhe.entity.ShyUsers;
11 12 import com.cnlive.shenhe.entity.ShyVideos;
... ... @@ -17,6 +18,11 @@ import com.cnlive.shenhe.utils.AuditPass;
17 18 import com.cnlive.shenhe.utils.CommonConst;
18 19 import com.cnlive.shenhe.utils.CommonUtils;
19 20 import com.github.pagehelper.PageInfo;
  21 +
  22 +import org.apache.poi.xssf.usermodel.XSSFCell;
  23 +import org.apache.poi.xssf.usermodel.XSSFRow;
  24 +import org.apache.poi.xssf.usermodel.XSSFSheet;
  25 +import org.apache.poi.xssf.usermodel.XSSFWorkbook;
20 26 import org.slf4j.Logger;
21 27 import org.slf4j.LoggerFactory;
22 28 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -24,7 +30,15 @@ import org.springframework.stereotype.Controller;
24 30 import org.springframework.ui.Model;
25 31 import org.springframework.web.bind.annotation.*;
26 32  
  33 +import javax.servlet.ServletOutputStream;
  34 +import javax.servlet.http.HttpServletResponse;
27 35 import javax.servlet.http.HttpSession;
  36 +
  37 +import java.io.BufferedInputStream;
  38 +import java.io.BufferedOutputStream;
  39 +import java.io.ByteArrayInputStream;
  40 +import java.io.ByteArrayOutputStream;
  41 +import java.io.InputStream;
28 42 import java.util.Date;
29 43 import java.util.List;
30 44  
... ... @@ -206,5 +220,202 @@ public class ContentController {
206 220 return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "退领了" + n + "条内容");
207 221 }
208 222  
209   -
  223 + /**
  224 + * 根据条件导出excel
  225 + */
  226 + @GetMapping("excel")
  227 + public void getExcel( String title,String contentId,
  228 + String start_date, String end_date, Integer receive_status, String sp_desc,
  229 + Integer page, Integer pageSize, String orderByClause, HttpSession session,HttpServletResponse response) {
  230 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  231 + Integer spid = sessionUser.getSpid();
  232 + String userId = sessionUser.getUserId();
  233 + if (CommonUtils.isNotEmpty(sp_desc) && spid == 0) {
  234 + ShySites shySite=sitesService.findspidBySpdesc(sp_desc);
  235 + if(CommonUtils.isNotNull(shySite)){
  236 + spid = shySite.getSpid();
  237 + }
  238 + }else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
  239 + spid = null;
  240 + }
  241 + Date sDate = null;
  242 + Date eDate = null;
  243 +
  244 + if (CommonUtils.isNotEmpty(start_date)) {
  245 + try {
  246 + sDate = CommonUtils.parseDate(start_date, "yyyy-MM-dd");
  247 + } catch (Exception e) {
  248 + }
  249 + }
  250 + if (CommonUtils.isNotEmpty(end_date)) {
  251 + try {
  252 + eDate = CommonUtils.parseDate(end_date, "yyyy-MM-dd");
  253 + } catch (Exception e) {
  254 + }
  255 + }
  256 + List<ShyContent> contentList = contentService.findByCondition(title,contentId, sDate, eDate, receive_status, page, pageSize, orderByClause, spid);
  257 +
  258 + String fileName = "图文数据";
  259 +
  260 + XSSFWorkbook wb = new XSSFWorkbook();
  261 + ServletOutputStream out = null;
  262 + BufferedInputStream bis = null;
  263 + BufferedOutputStream bos = null;
  264 + try {
  265 + XSSFSheet sheetlist = wb.createSheet(fileName);
  266 + XSSFRow row = sheetlist.createRow(0);//行
  267 + XSSFCell cell = row.createCell(0);//列
  268 + cell.setCellValue("id");
  269 + cell = row.createCell(1);//列
  270 + cell.setCellValue("sp昵称");
  271 + cell = row.createCell(2);//列
  272 + cell.setCellValue("发布云id");
  273 + cell = row.createCell(3);//列
  274 + cell.setCellValue("内容标题");
  275 + cell = row.createCell(4);//列
  276 + cell.setCellValue("图文标签");
  277 + cell = row.createCell(5);//列
  278 + cell.setCellValue("审核类型");
  279 + cell = row.createCell(6);//列
  280 + cell.setCellValue("内容状态");
  281 + cell = row.createCell(7);//列
  282 + cell.setCellValue("图文创建时间");
  283 + cell = row.createCell(8);//列
  284 + cell.setCellValue("图文送审时间");
  285 + cell = row.createCell(9);//列
  286 + cell.setCellValue("领取状态");
  287 + cell = row.createCell(10);//列
  288 + cell.setCellValue("审核人");
  289 + cell = row.createCell(11);//列
  290 + cell.setCellValue("审核意见");
  291 + cell = row.createCell(12);//列
  292 + cell.setCellValue("来源");
  293 + cell = row.createCell(13);//列
  294 + cell.setCellValue("作者");
  295 + cell = row.createCell(14);//列
  296 + cell.setCellValue("图文url");
  297 +
  298 + for (int i = 0; i < contentList.size(); i++) {
  299 + row = sheetlist.createRow((short) (i + 1));//行
  300 + cell = row.createCell(0);//列
  301 + cell.setCellValue(contentList.get(i).getId());
  302 + cell = row.createCell(1);//列
  303 + cell.setCellValue(sitesService.findspidDescByspid(contentList.get(i).getSp_id()).getName());
  304 + cell = row.createCell(2);//列
  305 + cell.setCellValue(contentList.get(i).getContent_id());
  306 + cell = row.createCell(3);//列
  307 + cell.setCellValue(contentList.get(i).getTitle());
  308 + cell = row.createCell(4);//列
  309 + cell.setCellValue(contentList.get(i).getContent_tag());
  310 +
  311 + /*状态需要处理成用户可读*/
  312 + String shenheType = "";//审核类型,1:免审,2:机审,3:人工审
  313 + if (contentList.get(i).getShenhe_type() == 1) {
  314 + shenheType = "免审";
  315 + } else if (contentList.get(i).getShenhe_type() == 2) {
  316 + shenheType = "机审";
  317 + } else {
  318 + shenheType = "人工审";
  319 + }
  320 + cell = row.createCell(5);//列
  321 + cell.setCellValue(shenheType);
  322 +
  323 + /*状态需要处理成用户可读*/
  324 + String contentStatus = "";//内容状态:0:待发布,1:已发布,2:已下线,3:已删除
  325 + if (contentList.get(i).getContent_status() == 0) {
  326 + contentStatus = "待发布";
  327 + } else if (contentList.get(i).getContent_status() == 1) {
  328 + contentStatus = "已发布";
  329 + } else if(contentList.get(i).getContent_status() == 2){
  330 + contentStatus = "已下线";
  331 + }else if(contentList.get(i).getContent_status() == 3){
  332 + contentStatus = "已删除";
  333 + }
  334 +
  335 + cell = row.createCell(6);//列
  336 + cell.setCellValue(contentStatus);
  337 + cell = row.createCell(7);//列
  338 + cell.setCellValue(CommonUtils.formatDate(contentList.get(i).getContent_time(), "yyyy-MM-dd HH:mm:ss"));
  339 + cell = row.createCell(8);//列
  340 + cell.setCellValue(CommonUtils.formatDate(contentList.get(i).getCreate_date(), "yyyy-MM-dd HH:mm:ss"));
  341 +
  342 + /*状态需要处理成用户可读*/
  343 + String receiveStatus = "";//领取状态。0:未领取;1:已领取,2:已审核
  344 + if (contentList.get(i).getReceive_status() == 1) {
  345 + receiveStatus = "已领取";
  346 + } else if (contentList.get(i).getReceive_status() == 2) {
  347 + receiveStatus = "已审核";
  348 + } else {
  349 + receiveStatus = "未领取";
  350 + }
  351 +
  352 + cell = row.createCell(9);//列
  353 + cell.setCellValue(receiveStatus);
  354 +
  355 + /* 审核员需要做处理*/
  356 + String updater = "";//审核员名字
  357 + if (contentList.get(i).getReceive_status() != CommonConst.RECEIVE_BEFORE) {
  358 + updater = CommonUtils.isEmpty(contentList.get(i).getUpdater()) || "null".equals(contentList.get(i).getUpdater())? "自动通过":contentList.get(i).getUpdater();
  359 + String auditor_id = contentList.get(i).getAuditor_id();
  360 + if (CommonUtils.isNotEmpty(auditor_id)) {
  361 + ShyUsers user = new ShyUsers();
  362 + user.setUser_id(auditor_id);
  363 + user = usersService.select(user);
  364 + if (CommonUtils.isNotNull(user)) {
  365 + String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail()) ? "" : user.getEmail();
  366 + String userName = CommonUtils.isEmpty(user.getUsername()) ? email : user.getUsername();
  367 + updater = userName ;
  368 + }
  369 + }
  370 + }
  371 + cell = row.createCell(10);//列
  372 + cell.setCellValue(updater);
  373 +
  374 +
  375 +
  376 + cell = row.createCell(11);//列
  377 + cell.setCellValue(contentList.get(i).getShenhe_msg());
  378 + cell = row.createCell(12);//列
  379 + cell.setCellValue(contentList.get(i).getSource());
  380 + cell = row.createCell(13);//列
  381 + cell.setCellValue(contentList.get(i).getAuthor());
  382 + cell = row.createCell(14);//列
  383 + cell.setCellValue(contentList.get(i).getContent_url());
  384 + }
  385 +
  386 + ByteArrayOutputStream os = new ByteArrayOutputStream();
  387 + wb.write(os);
  388 + byte[] content = os.toByteArray();
  389 + InputStream is = new ByteArrayInputStream(content);
  390 + response.setContentType("application/vnd.ms-excel;charset=utf-8");
  391 + response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xlsx").getBytes(), "iso-8859-1"));
  392 + out = response.getOutputStream();
  393 + bis = new BufferedInputStream(is);
  394 + bos = new BufferedOutputStream(out);
  395 + byte[] buff = new byte[2048];
  396 + int bytesRead;
  397 + while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
  398 + bos.write(buff, 0, bytesRead);
  399 + }
  400 + } catch (final Exception e) {
  401 + e.printStackTrace();
  402 + try {
  403 + if (bis != null)
  404 + bis.close();
  405 + if (bos != null)
  406 + bos.close();
  407 + } catch (Exception e1) {
  408 + e1.printStackTrace();
  409 + }
  410 + } finally {
  411 + try {
  412 + if (bis != null)
  413 + bis.close();
  414 + if (bos != null)
  415 + bos.close();
  416 + } catch (Exception e2) {
  417 + e2.printStackTrace();
  418 + }
  419 + }
  420 + }
210 421 }
... ...
src/main/java/com/cnlive/shenhe/controller/LiveController.java 0 → 100644
  1 +package com.cnlive.shenhe.controller;
  2 +
  3 +import org.apache.poi.xssf.usermodel.XSSFCell;
  4 +import org.apache.poi.xssf.usermodel.XSSFRow;
  5 +import org.apache.poi.xssf.usermodel.XSSFSheet;
  6 +import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  7 +import com.alibaba.fastjson.JSON;
  8 +import com.alibaba.fastjson.JSONObject;
  9 +import com.cnlive.shenhe.bean.ErrorEnum;
  10 +import com.cnlive.shenhe.bean.ResponseBean;
  11 +import com.cnlive.shenhe.bean.SessionUser;
  12 +import com.cnlive.shenhe.entity.ShyLive;
  13 +import com.cnlive.shenhe.entity.ShySites;
  14 +import com.cnlive.shenhe.entity.ShyUsers;
  15 +import com.cnlive.shenhe.entity.ShyVideos;
  16 +import com.cnlive.shenhe.serviceImpl.LiveServiceImpl;
  17 +import com.cnlive.shenhe.serviceImpl.SitesServiceImpl;
  18 +import com.cnlive.shenhe.serviceImpl.UsersServiceImpl;
  19 +import com.cnlive.shenhe.serviceImpl.VideosServiceImpl;
  20 +import com.cnlive.shenhe.utils.AuditPass;
  21 +import com.cnlive.shenhe.utils.CommonConst;
  22 +import com.cnlive.shenhe.utils.CommonUtils;
  23 +import com.github.pagehelper.PageInfo;
  24 +import org.slf4j.Logger;
  25 +import org.slf4j.LoggerFactory;
  26 +import org.springframework.beans.factory.annotation.Autowired;
  27 +import org.springframework.beans.factory.annotation.Value;
  28 +import org.springframework.stereotype.Controller;
  29 +import org.springframework.ui.Model;
  30 +import org.springframework.web.bind.annotation.GetMapping;
  31 +import org.springframework.web.bind.annotation.PostMapping;
  32 +import org.springframework.web.bind.annotation.RequestMapping;
  33 +import org.springframework.web.bind.annotation.ResponseBody;
  34 +
  35 +import javax.servlet.ServletOutputStream;
  36 +import javax.servlet.http.HttpServletResponse;
  37 +import javax.servlet.http.HttpSession;
  38 +import java.io.*;
  39 +import java.util.List;
  40 +
  41 +@Controller
  42 +@RequestMapping("/live")
  43 +public class LiveController {
  44 + private static Logger logger = LoggerFactory.getLogger(LiveController.class);
  45 + @Autowired
  46 + AuditPass Pass;
  47 + @Autowired
  48 + VideosServiceImpl videosService;
  49 + @Autowired
  50 + UsersServiceImpl usersService;
  51 + @Autowired
  52 + SitesServiceImpl sitesService;
  53 + @Autowired
  54 + LiveServiceImpl liveService;
  55 +
  56 + @Value("${qn_domain}")
  57 + String qn_domain;
  58 +
  59 + @Value("${ks_domain}")
  60 + String ks_domain;
  61 +
  62 + /**
  63 + * 审核信息返回接口
  64 + *
  65 + * @param activity_id 视频id
  66 + * @param state 状态码
  67 + * @param attr_tags 标签
  68 + * @param msg 备注信息
  69 + * @return
  70 + */
  71 + @PostMapping("/shenheVideo")
  72 + @ResponseBody
  73 + public ResponseBean shenheInfo(Integer id, String activity_id, Integer state, String attr_tags, String msg, String callback, HttpSession session) {
  74 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  75 + String userId = sessionUser.getUserId();
  76 +// ShyVideos shyVideos = videosService.selectByPrimaryKey(id);
  77 +// if (shyVideos.getReceive() && CommonUtils.isNotEmpty(shyVideos.getReceive_user_id()) && userId.equals(shyVideos.getReceive_user_id())) {
  78 + JSONObject result = null;
  79 + try {
  80 + result = Pass.auditPass(activity_id, state, attr_tags, msg, callback);
  81 + } catch (Exception e) {
  82 + e.printStackTrace();
  83 + System.out.println("视频审核失败");
  84 + return new ResponseBean(ErrorEnum.ERROR);
  85 + }
  86 + if (result == null) {
  87 + System.out.println("视频审核失败且接口错误没有返回信息");
  88 + return new ResponseBean(ErrorEnum.ERROR);
  89 + }
  90 + Integer code = result.getInteger("code");
  91 + if (code != 0) {
  92 + System.out.println("审核失败,code==" + code);
  93 + return new ResponseBean(code, result.getString("msg"));
  94 + }
  95 + state = state == 4 ? 2 : 1;
  96 + int i = videosService.updateVideo(id, userId,null,attr_tags, state, msg);
  97 + if (i == 0) {
  98 + return new ResponseBean(ErrorEnum.ERROR);
  99 + }
  100 + return new ResponseBean(ErrorEnum.SUCCESS);
  101 +// }
  102 +// logger.error("领取逻辑不符,不能审核,Video_id:{}", shyVideos.getVideo_id());
  103 +// return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "领取逻辑不符,不能审核");
  104 + }
  105 +
  106 + /**
  107 + * 内容分页列表接口
  108 + *
  109 + * @param video_title
  110 + * @param start_date
  111 + * @param end_date
  112 + * @param state
  113 + * @param page
  114 + * @param pageSize
  115 + * @param orderByClause
  116 + * @return
  117 + */
  118 + @GetMapping("/page")
  119 + public Object getListVideos(Model model,String activity_id,String start_date,String end_date,
  120 + String activity_name, Integer activity_status, Integer page,Integer pageSize,
  121 + Integer shenhe_state, String orderByClause, String sp_desc, HttpSession session) {
  122 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  123 + if(CommonUtils.isNull(sessionUser)){
  124 + return "redirect:/users/login";
  125 + }
  126 + Integer spid = sessionUser.getSpid();
  127 + String userId = sessionUser.getUserId();
  128 + if (CommonUtils.isNull(page)) page = 1;
  129 + if (CommonUtils.isNull(pageSize)) pageSize = 30;
  130 + if (CommonUtils.isNotEmpty(sp_desc) && spid == 0) {
  131 + ShySites shySite=sitesService.findspidBySpdesc(sp_desc);
  132 + if(CommonUtils.isNotNull(shySite)){
  133 + spid = shySite.getSpid();
  134 + }else{
  135 + return "page/sitesError.html";
  136 + }
  137 + } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
  138 + spid = null;
  139 + }
  140 + PageInfo<ShyLive> livePage = liveService.getListContent(activity_name, start_date,end_date,
  141 + activity_id, activity_status, page, pageSize, shenhe_state, orderByClause, spid, userId);
  142 + List<ShyLive> list = livePage.getList();
  143 + if (!list.isEmpty()) {
  144 + for (ShyLive live : list) {
  145 + //显示spid简称
  146 + ShySites shySites = sitesService.findspidDescByspid(live.getSp_id());
  147 + if (CommonUtils.isNotNull(shySites)) {
  148 + live.setSpid_desc(shySites.getName());
  149 + }
  150 + }
  151 + }
  152 + model.addAttribute("livePage", livePage);
  153 + return "page/live.html";
  154 + }
  155 +
  156 + /**
  157 + * 内容详情页接口(查看)
  158 + *
  159 + * @param id
  160 + * @return
  161 + */
  162 + @GetMapping("/details")
  163 + public Object getDetailsLive(Model model, Integer id) {
  164 + ShyLive live = liveService.getDetailsLive(id);
  165 +
  166 + //显示spid简称
  167 + ShySites shySites = sitesService.findspidDescByspid(live.getSp_id());
  168 + if (CommonUtils.isNotNull(shySites)) {
  169 + live.setSpid_desc(shySites.getName());
  170 + }
  171 +
  172 + model.addAttribute("live", live);
  173 +
  174 + return "page/liveDetail.html";
  175 + }
  176 +
  177 + /**
  178 + * 认领
  179 + *
  180 + * @param ids 根据id认领
  181 + * @param num 认领条数
  182 + * @param session
  183 + * @return
  184 + */
  185 + @PostMapping("/receive")
  186 + @ResponseBody
  187 + public ResponseBean receive(String ids, Integer num, HttpSession session) {
  188 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  189 + String userId = sessionUser.getUserId();
  190 + Integer spid = sessionUser.getSpid();
  191 + //领取时要检查领取的数据是否可以领
  192 + if (CommonUtils.isNotEmpty(ids)) {
  193 + String[] cids = ids.split(",");
  194 + for (String cid : cids) {
  195 + ShyLive shyLive = liveService.selectByPrimaryKey(Integer.parseInt(cid));
  196 + if (CommonUtils.isNotNull(shyLive)) {
  197 + if (shyLive.getShenhe_state() != CommonConst.RECEIVE_BEFORE ) {
  198 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "您领取的内容中有已被领取或者已经被审核,请检查并重试");
  199 + }
  200 + } else {
  201 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "您领取的内容不存在,请检查并重试");
  202 +
  203 + }
  204 + }
  205 + }
  206 + Integer n = liveService.receive(ids, num, userId, spid);
  207 + return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "认领到" + n + "条内容");
  208 + }
  209 +
  210 +
  211 + /**
  212 + * 退领
  213 + * @param ids
  214 + * @param session
  215 + * @return
  216 + */
  217 + @PostMapping("/retReceive")
  218 + @ResponseBody
  219 + public ResponseBean retReceive(String ids, HttpSession session) {
  220 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  221 + String userId = sessionUser.getUserId();
  222 + //在退领操作前先判断是否包含已退领或者已经审核的数据,有则退回检查并重新退领
  223 + String[] cids = ids.split(",");
  224 + for (String cid : cids) {
  225 + ShyLive shyLive = liveService.selectByPrimaryKey(Integer.parseInt(cid));
  226 + if (shyLive.getShenhe_state() != CommonConst.RECEIVE_AFTER || !shyLive.getAuditor().equals(userId)) {
  227 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "退领失败,您选中的内容包含已退领的或已经审核的");
  228 + }
  229 + }
  230 + return liveService.retReceive(ids, userId);
  231 + }
  232 +
  233 + /**
  234 + * 打回(审核拒绝)
  235 + *
  236 + * @param ids
  237 + * @param msg
  238 + * @param session
  239 + * @return
  240 + */
  241 + @PostMapping("/repulse")
  242 + @ResponseBody
  243 + public ResponseBean repulse(String ids, String msg, HttpSession session) {
  244 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  245 + String userId = sessionUser.getUserId();
  246 + ResponseBean responseBean = new ResponseBean();
  247 + String[] shyLiveIds = ids.split(",");
  248 + String showMsg = "";
  249 + for (String shyLiveId : shyLiveIds) {
  250 + ShyLive shyLive = liveService.selectByPrimaryKey(Integer.parseInt(shyLiveId));
  251 + JSONObject result = null;
  252 + try {
  253 + result = Pass.livePass(shyLive.getActivity_id(), 6, msg, msg, shyLive.getCallback());
  254 + } catch (Exception e) {
  255 + logger.error("直播视频审核失败,id==" + shyLiveId, e);
  256 + showMsg = showMsg + "," + shyLive.getActivity_id() + " 拒绝请求失败";
  257 + break;
  258 + }
  259 + if (result == null) {
  260 + logger.error("直播视频审核失败且接口错误没有返回信息,id==" + shyLiveId);
  261 + showMsg = showMsg + "," + shyLive.getActivity_id() + " 拒绝请求失败";
  262 + break;
  263 + }
  264 + Integer code = result.getInteger("errorCode");
  265 + if (code != 0) {
  266 + logger.error("直播视频审核失败,id:{},code:{}", shyLiveId, code);
  267 + showMsg = showMsg + "," + shyLive.getActivity_id() + " " + result.getString(" errorMessage");
  268 + break;
  269 + }
  270 + int i = liveService.updateLive(Integer.parseInt(shyLiveId), userId,"", 4, msg);
  271 + if (i == 0) {
  272 + showMsg = showMsg + "," + shyLive.getActivity_id() + " 更新失败";
  273 + break;
  274 + }
  275 + }
  276 + if (CommonUtils.isNotEmpty(showMsg)) {
  277 + responseBean.setErrorCode(ErrorEnum.ERROR.getErrorCode());
  278 + responseBean.setErrorMessage(showMsg);
  279 + }
  280 + return responseBean;
  281 + }
  282 +
  283 + /**
  284 + * 根据条件导出excel
  285 + */
  286 + @GetMapping("excel")
  287 + public void getExcel(String activity_id,String start_date,String end_date,
  288 + String activity_name, Integer activity_status, Integer page,Integer pageSize,
  289 + Integer shenhe_state, String orderByClause, String sp_desc, HttpSession session,HttpServletResponse response) {
  290 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  291 + Integer spid = sessionUser.getSpid();
  292 + String userId = sessionUser.getUserId();
  293 + if (CommonUtils.isNotEmpty(sp_desc) && spid == 0) {
  294 + ShySites shySite=sitesService.findspidBySpdesc(sp_desc);
  295 + if(CommonUtils.isNotNull(shySite)){
  296 + spid = shySite.getSpid();
  297 + }
  298 + }else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
  299 + spid = null;
  300 + }
  301 + List<ShyLive> liveList = liveService.findByCondition(activity_name, start_date,end_date,
  302 + activity_id, activity_status, page, pageSize, shenhe_state, orderByClause, spid);
  303 +
  304 + String fileName = "直播数据";
  305 +
  306 + XSSFWorkbook wb = new XSSFWorkbook();
  307 + ServletOutputStream out = null;
  308 + BufferedInputStream bis = null;
  309 + BufferedOutputStream bos = null;
  310 + try {
  311 + XSSFSheet sheetlist = wb.createSheet(fileName);
  312 + XSSFRow row = sheetlist.createRow(0);//行
  313 + XSSFCell cell = row.createCell(0);//列
  314 + cell.setCellValue("id");
  315 + cell = row.createCell(1);//列
  316 + cell.setCellValue("sp昵称");
  317 + cell = row.createCell(2);//列
  318 + cell.setCellValue("频道_id");
  319 + cell = row.createCell(3);//列
  320 + cell.setCellValue("直播活动id");
  321 + cell = row.createCell(4);//列
  322 + cell.setCellValue("直播活动名称");
  323 + cell = row.createCell(5);//列
  324 + cell.setCellValue("直播活动状态");
  325 + cell = row.createCell(6);//列
  326 + cell.setCellValue("直播活动开始时间");
  327 + cell = row.createCell(7);//列
  328 + cell.setCellValue("直播活动结束时间");
  329 + cell = row.createCell(8);//列
  330 + cell.setCellValue("直播活动简介");
  331 + cell = row.createCell(9);//列
  332 + cell.setCellValue("审核类型");
  333 + cell = row.createCell(10);//列
  334 + cell.setCellValue("审核状态");
  335 + cell = row.createCell(11);//列
  336 + cell.setCellValue("审核员");
  337 + cell = row.createCell(12);//列
  338 + cell.setCellValue("审核信息");
  339 + cell = row.createCell(13);//列
  340 + cell.setCellValue("创建时间");
  341 + cell = row.createCell(14);//列
  342 + cell.setCellValue("最后更新时间");
  343 +
  344 + for (int i = 0; i < liveList.size(); i++) {
  345 + row = sheetlist.createRow((short) (i + 1));//行
  346 + cell = row.createCell(0);//列
  347 + cell.setCellValue(liveList.get(i).getId());
  348 + cell = row.createCell(1);//列
  349 + cell.setCellValue(sitesService.findspidDescByspid(liveList.get(i).getSp_id()).getName());
  350 + cell = row.createCell(2);//列
  351 + cell.setCellValue(liveList.get(i).getChannel_id());
  352 + cell = row.createCell(3);//列
  353 + cell.setCellValue(liveList.get(i).getActivity_id());
  354 + cell = row.createCell(4);//列
  355 + cell.setCellValue(liveList.get(i).getActivity_name());
  356 + /*状态需要处理成用户可读*/
  357 + String activityStatus = "";//直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制)
  358 + if (liveList.get(i).getActivity_status() == 0) {
  359 + activityStatus = "直播撤销(手动)";
  360 + } else if (liveList.get(i).getActivity_status() == 1) {
  361 + activityStatus = "正在直播";
  362 + } else if(liveList.get(i).getActivity_status() == 2){
  363 + activityStatus = "直播完成";
  364 + }else if(liveList.get(i).getActivity_status() == 3){
  365 + activityStatus = "等待直播";
  366 + }else if(liveList.get(i).getActivity_status() == 4){
  367 + activityStatus = "直播下线(强制)";
  368 + }
  369 + cell = row.createCell(5);//列
  370 + cell.setCellValue(activityStatus);
  371 + cell = row.createCell(6);//列
  372 + cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getActivity_start_time(), "yyyy-MM-dd HH:mm:ss"));
  373 + cell = row.createCell(7);//列
  374 + cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getActivity_end_time(), "yyyy-MM-dd HH:mm:ss"));
  375 + cell = row.createCell(8);//列
  376 + cell.setCellValue(liveList.get(i).getActivity_intro());
  377 +
  378 + /*状态需要处理成用户可读*/
  379 + String shenheType = "";//审核类型,1:免审,2:机审,3:人工审
  380 + if (liveList.get(i).getShenhe_type() == 1) {
  381 + shenheType = "免审";
  382 + } else if (liveList.get(i).getShenhe_type() == 2) {
  383 + shenheType = "机审";
  384 + } else {
  385 + shenheType = "人工审";
  386 + }
  387 +
  388 + cell = row.createCell(9);//列
  389 + cell.setCellValue(shenheType);
  390 +
  391 + /*状态需要处理成用户可读*/
  392 + String shenheState = "";//审核状态 0:未认领 1.已认领,2:已审核
  393 + if (liveList.get(i).getShenhe_type() == 1) {
  394 + shenheState = "已认领";
  395 + } else if (liveList.get(i).getShenhe_type() == 2) {
  396 + shenheState = "已审核";
  397 + } else {
  398 + shenheState = "未认领";
  399 + }
  400 +
  401 + cell = row.createCell(10);//列
  402 + cell.setCellValue(shenheState);
  403 +
  404 + /* 审核员需要做处理*/
  405 + String updater = "";//审核员名字
  406 + if (liveList.get(i).getShenhe_state() != CommonConst.RECEIVE_BEFORE) {
  407 + updater = CommonUtils.isEmpty(liveList.get(i).getUpdater()) || "null".equals(liveList.get(i).getUpdater())? "自动通过":liveList.get(i).getUpdater();
  408 + String auditor_id = liveList.get(i).getAuditor();
  409 + if (CommonUtils.isNotEmpty(auditor_id)) {
  410 + ShyUsers user = new ShyUsers();
  411 + user.setUser_id(auditor_id);
  412 + user = usersService.select(user);
  413 + if (CommonUtils.isNotNull(user)) {
  414 + String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail()) ? "" : user.getEmail();
  415 + String userName = CommonUtils.isEmpty(user.getUsername()) ? email : user.getUsername();
  416 + updater = userName ;
  417 + }
  418 + }
  419 + }
  420 +
  421 + cell = row.createCell(11);//列
  422 + cell.setCellValue(updater);
  423 + cell = row.createCell(12);//列
  424 + cell.setCellValue(liveList.get(i).getShenhe_msg());
  425 + cell = row.createCell(13);//列
  426 + cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getCreated_at(), "yyyy-MM-dd HH:mm:ss"));
  427 + cell = row.createCell(14);//列
  428 + cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getUpdated_at(), "yyyy-MM-dd HH:mm:ss"));
  429 + }
  430 +
  431 + ByteArrayOutputStream os = new ByteArrayOutputStream();
  432 + wb.write(os);
  433 + byte[] content = os.toByteArray();
  434 + InputStream is = new ByteArrayInputStream(content);
  435 + response.setContentType("application/vnd.ms-excel;charset=utf-8");
  436 + response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xlsx").getBytes(), "iso-8859-1"));
  437 + out = response.getOutputStream();
  438 + bis = new BufferedInputStream(is);
  439 + bos = new BufferedOutputStream(out);
  440 + byte[] buff = new byte[2048];
  441 + int bytesRead;
  442 + while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
  443 + bos.write(buff, 0, bytesRead);
  444 + }
  445 + } catch (final Exception e) {
  446 + e.printStackTrace();
  447 + try {
  448 + if (bis != null)
  449 + bis.close();
  450 + if (bos != null)
  451 + bos.close();
  452 + } catch (Exception e1) {
  453 + e1.printStackTrace();
  454 + }
  455 + } finally {
  456 + try {
  457 + if (bis != null)
  458 + bis.close();
  459 + if (bos != null)
  460 + bos.close();
  461 + } catch (Exception e2) {
  462 + e2.printStackTrace();
  463 + }
  464 + }
  465 + }
  466 +
  467 + @PostMapping("/ceshi")
  468 + @ResponseBody
  469 + public static String ceshi(String name) {
  470 +
  471 +
  472 + return name;
  473 + }
  474 +
  475 +}
... ...
src/main/java/com/cnlive/shenhe/entity/ShyLive.java 0 → 100644
  1 +package com.cnlive.shenhe.entity;
  2 +
  3 +import java.util.Date;
  4 +import javax.persistence.*;
  5 +
  6 +@Table(name = "shy_live")
  7 +public class ShyLive {
  8 + @Id
  9 + private Integer id;
  10 +
  11 + /**
  12 + * spId
  13 + */
  14 + private Integer sp_id;
  15 +
  16 + /**
  17 + * 主播资质标识
  18 + */
  19 + private String channel_id;
  20 +
  21 + /**
  22 + * 直播活动id
  23 + */
  24 + private String activity_id;
  25 +
  26 + /**
  27 + * 直播活动名称
  28 + */
  29 + private String activity_name;
  30 +
  31 + /**
  32 + * 直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制)
  33 + */
  34 + private Integer activity_status;
  35 +
  36 + /**
  37 + * 直播活动开始时间
  38 + */
  39 + private Date activity_start_time;
  40 +
  41 + /**
  42 + * 直播活动结束时间
  43 + */
  44 + private Date activity_end_time;
  45 +
  46 + /**
  47 + * 直播活动简介
  48 + */
  49 + private String activity_intro;
  50 +
  51 + /**
  52 + * m3u8直播流
  53 + */
  54 + private String m3u8_url;
  55 +
  56 + /**
  57 + * rtmp直播流
  58 + */
  59 + private String rtmp_url;
  60 +
  61 + /**
  62 + * 回调函数
  63 + */
  64 + private String callback;
  65 +
  66 + /**
  67 + * 直播封面图
  68 + */
  69 + private String cover_img_url;
  70 +
  71 + /**
  72 + * 直播回放的url
  73 + */
  74 + private String playback_url;
  75 +
  76 + /**
  77 + * 是否是热点: 0:全部 ,1:不是 ,2: 是
  78 + */
  79 + private Integer is_hot;
  80 +
  81 + /**
  82 + * 审核类型,1:免审,2:机审,3:人工审
  83 + */
  84 + private Integer shenhe_type;
  85 +
  86 + /**
  87 + * 状态 0:未认领 1.已认领,2:已审核
  88 + */
  89 + private Integer shenhe_state;
  90 +
  91 + /**
  92 + * 更新者
  93 + */
  94 + private String updater;
  95 +
  96 + /**
  97 + * 审核员
  98 + */
  99 + private String auditor;
  100 +
  101 + /**
  102 + * 审核信息
  103 + */
  104 + private String shenhe_msg;
  105 +
  106 + /**
  107 + * 抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  108 + */
  109 + private Integer avsample_state;
  110 +
  111 + /**
  112 + * 抽帧开始时间
  113 + */
  114 + private Date avsample_start_time;
  115 +
  116 + /**
  117 + * 抽帧结束时间
  118 + */
  119 + private Date avsample_end_time;
  120 +
  121 + /**
  122 + * 是否显示 0:不显示 1:显示
  123 + */
  124 + private Integer is_show;
  125 +
  126 + private Date created_at;
  127 +
  128 + private Date updated_at;
  129 +
  130 + /**
  131 + * 抽帧图片地址
  132 + */
  133 + private String avsample_imgs;
  134 +
  135 + /**
  136 + * 抽帧返回信息(主要找问题时使用)
  137 + */
  138 + private String avsample_msg;
  139 +
  140 + @Transient
  141 + private String spid_desc;
  142 +
  143 + /**
  144 + * @return id
  145 + */
  146 + public Integer getId() {
  147 + return id;
  148 + }
  149 +
  150 + /**
  151 + * @param id
  152 + */
  153 + public void setId(Integer id) {
  154 + this.id = id;
  155 + }
  156 +
  157 + /**
  158 + * 获取spId
  159 + *
  160 + * @return sp_id - spId
  161 + */
  162 + public Integer getSp_id() {
  163 + return sp_id;
  164 + }
  165 +
  166 + /**
  167 + * 设置spId
  168 + *
  169 + * @param sp_id spId
  170 + */
  171 + public void setSp_id(Integer sp_id) {
  172 + this.sp_id = sp_id;
  173 + }
  174 +
  175 + /**
  176 + * 获取主播资质标识
  177 + *
  178 + * @return channel_id - 主播资质标识
  179 + */
  180 + public String getChannel_id() {
  181 + return channel_id;
  182 + }
  183 +
  184 + /**
  185 + * 设置主播资质标识
  186 + *
  187 + * @param channel_id 主播资质标识
  188 + */
  189 + public void setChannel_id(String channel_id) {
  190 + this.channel_id = channel_id;
  191 + }
  192 +
  193 + /**
  194 + * 获取直播活动id
  195 + *
  196 + * @return activity_id - 直播活动id
  197 + */
  198 + public String getActivity_id() {
  199 + return activity_id;
  200 + }
  201 +
  202 + /**
  203 + * 设置直播活动id
  204 + *
  205 + * @param activity_id 直播活动id
  206 + */
  207 + public void setActivity_id(String activity_id) {
  208 + this.activity_id = activity_id;
  209 + }
  210 +
  211 + /**
  212 + * 获取直播活动名称
  213 + *
  214 + * @return activity_name - 直播活动名称
  215 + */
  216 + public String getActivity_name() {
  217 + return activity_name;
  218 + }
  219 +
  220 + /**
  221 + * 设置直播活动名称
  222 + *
  223 + * @param activity_name 直播活动名称
  224 + */
  225 + public void setActivity_name(String activity_name) {
  226 + this.activity_name = activity_name;
  227 + }
  228 +
  229 + /**
  230 + * 获取直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制)
  231 + *
  232 + * @return activity_status - 直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制)
  233 + */
  234 + public Integer getActivity_status() {
  235 + return activity_status;
  236 + }
  237 +
  238 + /**
  239 + * 设置直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制)
  240 + *
  241 + * @param activity_status 直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制)
  242 + */
  243 + public void setActivity_status(Integer activity_status) {
  244 + this.activity_status = activity_status;
  245 + }
  246 +
  247 + /**
  248 + * 获取直播活动开始时间
  249 + *
  250 + * @return activity_start_time - 直播活动开始时间
  251 + */
  252 + public Date getActivity_start_time() {
  253 + return activity_start_time;
  254 + }
  255 +
  256 + /**
  257 + * 设置直播活动开始时间
  258 + *
  259 + * @param activity_start_time 直播活动开始时间
  260 + */
  261 + public void setActivity_start_time(Date activity_start_time) {
  262 + this.activity_start_time = activity_start_time;
  263 + }
  264 +
  265 + /**
  266 + * 获取直播活动结束时间
  267 + *
  268 + * @return activity_end_time - 直播活动结束时间
  269 + */
  270 + public Date getActivity_end_time() {
  271 + return activity_end_time;
  272 + }
  273 +
  274 + /**
  275 + * 设置直播活动结束时间
  276 + *
  277 + * @param activity_end_time 直播活动结束时间
  278 + */
  279 + public void setActivity_end_time(Date activity_end_time) {
  280 + this.activity_end_time = activity_end_time;
  281 + }
  282 +
  283 + /**
  284 + * 获取直播活动简介
  285 + *
  286 + * @return activity_intro - 直播活动简介
  287 + */
  288 + public String getActivity_intro() {
  289 + return activity_intro;
  290 + }
  291 +
  292 + /**
  293 + * 设置直播活动简介
  294 + *
  295 + * @param activity_intro 直播活动简介
  296 + */
  297 + public void setActivity_intro(String activity_intro) {
  298 + this.activity_intro = activity_intro;
  299 + }
  300 +
  301 + /**
  302 + * 获取m3u8直播流
  303 + *
  304 + * @return m3u8_url - m3u8直播流
  305 + */
  306 + public String getM3u8_url() {
  307 + return m3u8_url;
  308 + }
  309 +
  310 + /**
  311 + * 设置m3u8直播流
  312 + *
  313 + * @param m3u8_url m3u8直播流
  314 + */
  315 + public void setM3u8_url(String m3u8_url) {
  316 + this.m3u8_url = m3u8_url;
  317 + }
  318 +
  319 + /**
  320 + * 获取rtmp直播流
  321 + *
  322 + * @return rtmp_url - rtmp直播流
  323 + */
  324 + public String getRtmp_url() {
  325 + return rtmp_url;
  326 + }
  327 +
  328 + /**
  329 + * 设置rtmp直播流
  330 + *
  331 + * @param rtmp_url rtmp直播流
  332 + */
  333 + public void setRtmp_url(String rtmp_url) {
  334 + this.rtmp_url = rtmp_url;
  335 + }
  336 +
  337 + /**
  338 + * 获取回调函数
  339 + *
  340 + * @return callback - 回调函数
  341 + */
  342 + public String getCallback() {
  343 + return callback;
  344 + }
  345 +
  346 + /**
  347 + * 设置回调函数
  348 + *
  349 + * @param callback 回调函数
  350 + */
  351 + public void setCallback(String callback) {
  352 + this.callback = callback;
  353 + }
  354 +
  355 + /**
  356 + * 获取直播封面图
  357 + *
  358 + * @return cover_img_url - 直播封面图
  359 + */
  360 + public String getCover_img_url() {
  361 + return cover_img_url;
  362 + }
  363 +
  364 + /**
  365 + * 设置直播封面图
  366 + *
  367 + * @param cover_img_url 直播封面图
  368 + */
  369 + public void setCover_img_url(String cover_img_url) {
  370 + this.cover_img_url = cover_img_url;
  371 + }
  372 +
  373 + /**
  374 + * 获取直播回放的url
  375 + *
  376 + * @return playback_url - 直播回放的url
  377 + */
  378 + public String getPlayback_url() {
  379 + return playback_url;
  380 + }
  381 +
  382 + /**
  383 + * 设置直播回放的url
  384 + *
  385 + * @param playback_url 直播回放的url
  386 + */
  387 + public void setPlayback_url(String playback_url) {
  388 + this.playback_url = playback_url;
  389 + }
  390 +
  391 + /**
  392 + * 获取是否是热点: 0:全部 ,1:不是 ,2: 是
  393 + *
  394 + * @return is_hot - 是否是热点: 0:全部 ,1:不是 ,2: 是
  395 + */
  396 + public Integer getIs_hot() {
  397 + return is_hot;
  398 + }
  399 +
  400 + /**
  401 + * 设置是否是热点: 0:全部 ,1:不是 ,2: 是
  402 + *
  403 + * @param is_hot 是否是热点: 0:全部 ,1:不是 ,2: 是
  404 + */
  405 + public void setIs_hot(Integer is_hot) {
  406 + this.is_hot = is_hot;
  407 + }
  408 +
  409 + /**
  410 + * 获取审核类型,1:免审,2:机审,3:人工审
  411 + *
  412 + * @return shenhe_type - 审核类型,1:免审,2:机审,3:人工审
  413 + */
  414 + public Integer getShenhe_type() {
  415 + return shenhe_type;
  416 + }
  417 +
  418 + /**
  419 + * 设置审核类型,1:免审,2:机审,3:人工审
  420 + *
  421 + * @param shenhe_type 审核类型,1:免审,2:机审,3:人工审
  422 + */
  423 + public void setShenhe_type(Integer shenhe_type) {
  424 + this.shenhe_type = shenhe_type;
  425 + }
  426 +
  427 + /**
  428 + * 获取状态 1:未认领 2.已认领,3:已审核
  429 + *
  430 + * @return shenhe_state - 状态 1:未认领 2.已认领,3:已审核
  431 + */
  432 + public Integer getShenhe_state() {
  433 + return shenhe_state;
  434 + }
  435 +
  436 + /**
  437 + * 设置状态 1:未认领 2.已认领,3:已审核
  438 + *
  439 + * @param shenhe_state 状态 1:未认领 2.已认领,3:已审核
  440 + */
  441 + public void setShenhe_state(Integer shenhe_state) {
  442 + this.shenhe_state = shenhe_state;
  443 + }
  444 +
  445 + /**
  446 + * 获取更新者
  447 + *
  448 + * @return updater - 更新者
  449 + */
  450 + public String getUpdater() {
  451 + return updater;
  452 + }
  453 +
  454 + /**
  455 + * 设置更新者
  456 + *
  457 + * @param updater 更新者
  458 + */
  459 + public void setUpdater(String updater) {
  460 + this.updater = updater;
  461 + }
  462 +
  463 + /**
  464 + * 获取审核员
  465 + *
  466 + * @return auditor - 审核员
  467 + */
  468 + public String getAuditor() {
  469 + return auditor;
  470 + }
  471 +
  472 + /**
  473 + * 设置审核员
  474 + *
  475 + * @param auditor 审核员
  476 + */
  477 + public void setAuditor(String auditor) {
  478 + this.auditor = auditor;
  479 + }
  480 +
  481 + /**
  482 + * 获取审核信息
  483 + *
  484 + * @return shenhe_msg - 审核信息
  485 + */
  486 + public String getShenhe_msg() {
  487 + return shenhe_msg;
  488 + }
  489 +
  490 + /**
  491 + * 设置审核信息
  492 + *
  493 + * @param shenhe_msg 审核信息
  494 + */
  495 + public void setShenhe_msg(String shenhe_msg) {
  496 + this.shenhe_msg = shenhe_msg;
  497 + }
  498 +
  499 + /**
  500 + * 获取抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  501 + *
  502 + * @return avsample_state - 抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  503 + */
  504 + public Integer getAvsample_state() {
  505 + return avsample_state;
  506 + }
  507 +
  508 + /**
  509 + * 设置抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  510 + *
  511 + * @param avsample_state 抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  512 + */
  513 + public void setAvsample_state(Integer avsample_state) {
  514 + this.avsample_state = avsample_state;
  515 + }
  516 +
  517 + /**
  518 + * 获取抽帧开始时间
  519 + *
  520 + * @return avsample_start_time - 抽帧开始时间
  521 + */
  522 + public Date getAvsample_start_time() {
  523 + return avsample_start_time;
  524 + }
  525 +
  526 + /**
  527 + * 设置抽帧开始时间
  528 + *
  529 + * @param avsample_start_time 抽帧开始时间
  530 + */
  531 + public void setAvsample_start_time(Date avsample_start_time) {
  532 + this.avsample_start_time = avsample_start_time;
  533 + }
  534 +
  535 + /**
  536 + * 获取抽帧结束时间
  537 + *
  538 + * @return avsample_end_time - 抽帧结束时间
  539 + */
  540 + public Date getAvsample_end_time() {
  541 + return avsample_end_time;
  542 + }
  543 +
  544 + /**
  545 + * 设置抽帧结束时间
  546 + *
  547 + * @param avsample_end_time 抽帧结束时间
  548 + */
  549 + public void setAvsample_end_time(Date avsample_end_time) {
  550 + this.avsample_end_time = avsample_end_time;
  551 + }
  552 +
  553 + /**
  554 + * 获取是否显示 0:不显示 1:显示
  555 + *
  556 + * @return is_show - 是否显示 0:不显示 1:显示
  557 + */
  558 + public Integer getIs_show() {
  559 + return is_show;
  560 + }
  561 +
  562 + /**
  563 + * 设置是否显示 0:不显示 1:显示
  564 + *
  565 + * @param is_show 是否显示 0:不显示 1:显示
  566 + */
  567 + public void setIs_show(Integer is_show) {
  568 + this.is_show = is_show;
  569 + }
  570 +
  571 + /**
  572 + * @return created_at
  573 + */
  574 + public Date getCreated_at() {
  575 + return created_at;
  576 + }
  577 +
  578 + /**
  579 + * @param created_at
  580 + */
  581 + public void setCreated_at(Date created_at) {
  582 + this.created_at = created_at;
  583 + }
  584 +
  585 + /**
  586 + * @return updated_at
  587 + */
  588 + public Date getUpdated_at() {
  589 + return updated_at;
  590 + }
  591 +
  592 + /**
  593 + * @param updated_at
  594 + */
  595 + public void setUpdated_at(Date updated_at) {
  596 + this.updated_at = updated_at;
  597 + }
  598 +
  599 + /**
  600 + * 获取抽帧图片地址
  601 + *
  602 + * @return avsample_imgs - 抽帧图片地址
  603 + */
  604 + public String getAvsample_imgs() {
  605 + return avsample_imgs;
  606 + }
  607 +
  608 + /**
  609 + * 设置抽帧图片地址
  610 + *
  611 + * @param avsample_imgs 抽帧图片地址
  612 + */
  613 + public void setAvsample_imgs(String avsample_imgs) {
  614 + this.avsample_imgs = avsample_imgs;
  615 + }
  616 +
  617 + /**
  618 + * 获取抽帧返回信息(主要找问题时使用)
  619 + *
  620 + * @return avsample_msg - 抽帧返回信息(主要找问题时使用)
  621 + */
  622 + public String getAvsample_msg() {
  623 + return avsample_msg;
  624 + }
  625 +
  626 + /**
  627 + * 设置抽帧返回信息(主要找问题时使用)
  628 + *
  629 + * @param avsample_msg 抽帧返回信息(主要找问题时使用)
  630 + */
  631 + public void setAvsample_msg(String avsample_msg) {
  632 + this.avsample_msg = avsample_msg;
  633 + }
  634 +
  635 + public String getSpid_desc() {
  636 + return spid_desc;
  637 + }
  638 +
  639 + public void setSpid_desc(String spid_desc) {
  640 + this.spid_desc = spid_desc;
  641 + }
  642 +
  643 +}
0 644 \ No newline at end of file
... ...
src/main/java/com/cnlive/shenhe/jsoup/GetData.java 0 → 100644
  1 +package com.cnlive.shenhe.jsoup;
  2 +
  3 +import org.jsoup.Jsoup;
  4 +import org.jsoup.nodes.Document;
  5 +import org.jsoup.nodes.Element;
  6 +import org.jsoup.select.Elements;
  7 +
  8 +import java.net.URL;
  9 +import java.util.ArrayList;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * @Auther: 陈浩
  14 + * @Date: 2019/6/21 14:31
  15 + * @Description:
  16 + */
  17 +public class GetData {
  18 + public static void main(String[] args) {
  19 + String url = "http://www.chinanews.com/society.shtml";
  20 + Document document = getDocument(url);
  21 + while (true) {
  22 + List<String> jobList = getJobList(document);
  23 + for (String joburl : jobList) {
  24 + System.out.println(joburl);
  25 + try {
  26 + new newCrawl().abc(joburl);
  27 + } catch (Exception e) {
  28 + e.printStackTrace();
  29 + }
  30 + }
  31 + try {
  32 + Thread.sleep(1000);
  33 + } catch (Exception e) {
  34 + e.printStackTrace();
  35 + }
  36 + }
  37 + }
  38 +
  39 +
  40 + /**
  41 + * 通过document获取具体的岗位数据
  42 + */
  43 + private static List<String> getJobList(Document dom) {
  44 + String URL ="http://www.chinanews.com";
  45 + ArrayList<String> list = new ArrayList<>();
  46 + Elements select = dom.select(".content_list ul li");//获取到整个列表数据
  47 + for (Element element : select) {
  48 + /* 处理个别li标签是空格问题,直接跳过不处理*/
  49 + if (element.attr("id") != "" && !element.attr("id").equals("")){
  50 + continue;
  51 + }
  52 + Elements elementa = element.select(".dd_bt a");//得到带连接的a标签
  53 + String href = elementa.attr("href");//从a标签里面获取到他的相对路径
  54 + href = URL+href;
  55 +// String jobName = select1.text();
  56 +// Elements select2 = element.select(".t2 a");
  57 +// String addr = element.select(".t3").text();
  58 +// String salary = element.select(".t4").text();
  59 +// String date = element.select(".t5").text();
  60 +// JobBean jobBean = new JobBean();
  61 +// jobBean.set(jobName, companyName, addr, salary, date);
  62 + list.add(href);
  63 + }
  64 + return list;
  65 + }
  66 +
  67 + /**
  68 + * 获取document
  69 + *
  70 + * @param url
  71 + * @return
  72 + */
  73 + private static Document getDocument(String url) {
  74 + try {
  75 + Document document = Jsoup.parse(new URL(url), 4000);
  76 + return document;
  77 + } catch (Exception e) {
  78 + e.printStackTrace();
  79 + }
  80 + return null;
  81 +
  82 + }
  83 +}
... ...
src/main/java/com/cnlive/shenhe/jsoup/newCrawl.java 0 → 100644
  1 +package com.cnlive.shenhe.jsoup;
  2 +
  3 +import java.io.IOException;
  4 +import java.net.URL;
  5 +import java.util.LinkedList;
  6 +import java.util.regex.Matcher;
  7 +import java.util.regex.Pattern;
  8 +
  9 +import org.jsoup.Jsoup;
  10 +import org.jsoup.nodes.Document;
  11 +import org.jsoup.nodes.Element;
  12 +import org.jsoup.select.Elements;
  13 +
  14 +public class newCrawl {
  15 + public void abc(String url) throws Exception {
  16 + newCrawl newCl = new newCrawl();
  17 + //String url = "http://www.chinanews.com/sh/2019/06-21/8871343.shtml";
  18 + //Document doc = Jsoup.connect(url).get();
  19 + Document doc = Jsoup.parse(new URL(url), 4000);
  20 + String title = newCl.getnewTitle(doc);//获取新闻标题
  21 + String time = newCl.getTime(doc);//获取新闻发布时间
  22 + String text = newCl.getNewtext(doc);//获取新闻内容
  23 + String imgurl = newCl.getImgurl(doc);//获取标题图片链接
  24 + String source = newCl.getSource(doc);//获取来源
  25 + System.out.println("新闻Url:" + url);
  26 + System.out.println("新闻标题:" + title);
  27 + System.out.println("新闻标题图片url:" + imgurl);
  28 + System.out.println("新闻发布时间:" + time);
  29 + System.out.println("新闻来源:" + source);
  30 + System.out.println("新闻内容:" + text);
  31 + }
  32 +
  33 + public String getnewTitle(Document doc) {
  34 + //获取网页的标题
  35 + String title = doc.title();
  36 + return title;
  37 + }
  38 +
  39 + public String getImgurl(Document doc) throws IOException {
  40 + //获取图片地址,并保存在ImgUrls链表中
  41 + Elements pngs = doc.select(".left_ph img");
  42 + String imageUrl = pngs.attr("src");
  43 + return imageUrl;
  44 + }
  45 +
  46 + public String getSource(Document doc) throws IOException {
  47 + //获取新闻来源
  48 + String source = "";
  49 + Elements pngs = doc.select(".left-t a:first-child");
  50 + source = pngs.text();
  51 + return source;
  52 + }
  53 +
  54 + public String getNewtext(Document doc) {
  55 + //获取新闻内容
  56 + String text = doc.select(".left_zw").text();
  57 + return text;
  58 + }
  59 +
  60 + public String getTime(Document doc) {
  61 + //获取新闻发布的时间
  62 + String time = null;
  63 + Elements element = doc.select(".left-t");
  64 + String text = element.text();
  65 + String s1 = text.replaceAll(" ", "");//完全清除,空格
  66 + time = s1.substring(0, 17);
  67 + return time;
  68 + }
  69 +
  70 +}
  71 +
... ...
src/main/java/com/cnlive/shenhe/mapper/ShyLiveMapper.java 0 → 100644
  1 +package com.cnlive.shenhe.mapper;
  2 +
  3 +import com.cnlive.shenhe.entity.ShyLive;
  4 +import tk.mybatis.mapper.common.Mapper;
  5 +
  6 +public interface ShyLiveMapper extends Mapper<ShyLive> {
  7 +}
0 8 \ No newline at end of file
... ...
src/main/java/com/cnlive/shenhe/serviceImpl/ContentServiceImpl.java
... ... @@ -3,6 +3,7 @@ package com.cnlive.shenhe.serviceImpl;
3 3 import com.alibaba.fastjson.JSONObject;
4 4 import com.cnlive.shenhe.entity.ShyComments;
5 5 import com.cnlive.shenhe.entity.ShyContent;
  6 +import com.cnlive.shenhe.entity.ShyLive;
6 7 import com.cnlive.shenhe.entity.ShySites;
7 8 import com.cnlive.shenhe.entity.ShyUsers;
8 9 import com.cnlive.shenhe.entity.ShyVideos;
... ... @@ -22,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
22 23 import org.springframework.stereotype.Service;
23 24 import tk.mybatis.mapper.entity.Example;
24 25  
  26 +import java.sql.Timestamp;
  27 +import java.text.ParseException;
25 28 import java.util.Date;
26 29 import java.util.List;
27 30  
... ... @@ -91,9 +94,11 @@ public class ContentServiceImpl {
91 94 } else {
92 95 example.setOrderByClause("create_date desc");
93 96 }
94   - if (CommonUtils.isNotNull(start_date) && CommonUtils.isNotNull(end_date)) {
  97 + if (CommonUtils.isNotNull(start_date) ) {
95 98 criteria.andGreaterThanOrEqualTo("create_date", start_date);
96   - criteria.andLessThanOrEqualTo("create_date", end_date);
  99 + }
  100 + if ( CommonUtils.isNotNull(end_date)) {
  101 + criteria.andLessThanOrEqualTo("create_date", end_date);
97 102 }
98 103 if (CommonUtils.isNotEmpty(title)) {
99 104 criteria.andLike("title", "%" + title + "%");
... ... @@ -104,15 +109,9 @@ public class ContentServiceImpl {
104 109 if (CommonUtils.isNotNull(spid)) {
105 110 criteria.andEqualTo("sp_id", spid);
106 111 }
107   - if (CommonUtils.isNotNull(contentId)) {
  112 + if (CommonUtils.isNotEmpty(contentId)) {
108 113 criteria.andEqualTo("content_id", contentId);
109 114 }
110   -// if (CommonUtils.isNotNull(is_hot)) {
111   -// criteria.andEqualTo("is_hot", is_hot);
112   -// }
113   -// if (CommonUtils.isNotEmpty(activity_id)) {
114   -// criteria.andLike("auditor_id", "%" + activity_id + "%");
115   -// }
116 115 if (CommonUtils.isNotNull(receive_status)) {
117 116 criteria.andEqualTo("receive_status", receive_status);
118 117 if (receive_status!=CommonConst.RECEIVE_BEFORE) {
... ... @@ -120,20 +119,49 @@ public class ContentServiceImpl {
120 119 }
121 120 }
122 121  
123   -// if (CommonUtils.isNotEmpty(states)) {
124   -// Example.Criteria criteria1 = example.createCriteria();
125   -// String[] stas = states.split(",");
126   -// for (String s : stas) {
127   -// criteria1.orEqualTo("state", Integer.parseInt(s));
128   -// }
129   -// example.and(criteria1);
130   -// }
131   -
132 122 PageHelper.startPage(page, pageSize, true);
133 123 List<ShyContent> contentList = shyContentMapper.selectByExample(example);
134 124 PageInfo<ShyContent> pageInfo = new PageInfo<>(contentList);
135 125 return pageInfo;
136 126 }
  127 +
  128 + /**
  129 + * 根据条件导出数据excel
  130 + * @return
  131 + */
  132 + public List<ShyContent> findByCondition(String title,String contentId, Date start_date,
  133 + Date end_date,Integer receive_status, Integer page,
  134 + Integer pageSize, String orderByClause, Integer spid) {
  135 +
  136 + Example example = new Example(ShyContent.class);
  137 + Example.Criteria criteria = example.createCriteria();
  138 + if (CommonUtils.isNotEmpty(orderByClause)) {
  139 + example.setOrderByClause(orderByClause);
  140 + } else {
  141 + example.setOrderByClause("create_date desc");
  142 + }
  143 + if (CommonUtils.isNotNull(start_date) ) {
  144 + criteria.andGreaterThanOrEqualTo("create_date", start_date);
  145 + }
  146 + if ( CommonUtils.isNotNull(end_date)) {
  147 + criteria.andLessThanOrEqualTo("create_date", end_date);
  148 + }
  149 + if (CommonUtils.isNotEmpty(title)) {
  150 + criteria.andLike("title", "%" + title + "%");
  151 + }
  152 + if (CommonUtils.isNotNull(spid)) {
  153 + criteria.andEqualTo("sp_id", spid);
  154 + }
  155 + if (CommonUtils.isNotEmpty(contentId)) {
  156 + criteria.andEqualTo("content_id", contentId);
  157 + }
  158 + if (CommonUtils.isNotNull(receive_status)) {
  159 + criteria.andEqualTo("receive_status", receive_status);
  160 + }
  161 + List<ShyContent> shyContentList = shyContentMapper.selectByExample(example);
  162 + return shyContentList;
  163 + }
  164 +
137 165  
138 166 //******************************
139 167 public ShyContent getDetailsContent(Integer id) {
... ...
src/main/java/com/cnlive/shenhe/serviceImpl/LiveServiceImpl.java 0 → 100644
  1 +package com.cnlive.shenhe.serviceImpl;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONArray;
  5 +import com.alibaba.fastjson.JSONObject;
  6 +import com.cnlive.shenhe.bean.ErrorEnum;
  7 +import com.cnlive.shenhe.bean.ResponseBean;
  8 +import com.cnlive.shenhe.entity.ShyLive;
  9 +import com.cnlive.shenhe.entity.ShySites;
  10 +import com.cnlive.shenhe.entity.ShyUsers;
  11 +import com.cnlive.shenhe.entity.ShyUsersfree;
  12 +import com.cnlive.shenhe.entity.ShyVideofilter;
  13 +import com.cnlive.shenhe.entity.ShyVideos;
  14 +import com.cnlive.shenhe.job.VideosJob;
  15 +import com.cnlive.shenhe.mapper.ShyLiveMapper;
  16 +import com.cnlive.shenhe.mapper.ShySitesMapper;
  17 +import com.cnlive.shenhe.mapper.ShyUsersMapper;
  18 +import com.cnlive.shenhe.mapper.ShyVideosMapper;
  19 +import com.cnlive.shenhe.utils.AntiFraudUtil;
  20 +import com.cnlive.shenhe.utils.AuditPass;
  21 +import com.cnlive.shenhe.utils.CommonConst;
  22 +import com.cnlive.shenhe.utils.CommonUtils;
  23 +import com.github.pagehelper.PageHelper;
  24 +import com.github.pagehelper.PageInfo;
  25 +
  26 +
  27 +import org.apache.ibatis.session.RowBounds;
  28 +import org.slf4j.Logger;
  29 +import org.slf4j.LoggerFactory;
  30 +import org.springframework.beans.factory.annotation.Autowired;
  31 +import org.springframework.beans.factory.annotation.Value;
  32 +import org.springframework.stereotype.Service;
  33 +import tk.mybatis.mapper.entity.Example;
  34 +
  35 +import java.sql.Timestamp;
  36 +import java.text.ParseException;
  37 +import java.util.ArrayList;
  38 +import java.util.Arrays;
  39 +import java.util.HashMap;
  40 +import java.util.List;
  41 +import java.util.Map;
  42 +
  43 +/**
  44 + * @Auther: chenhao
  45 + * @Date: 2018/11/30 14:23
  46 + * @Description:
  47 + */
  48 +@Service
  49 +public class LiveServiceImpl {
  50 + private static Logger logger = LoggerFactory.getLogger(LiveServiceImpl.class);
  51 + @Autowired
  52 + ShyVideosMapper shyVideosMapper;
  53 + @Autowired
  54 + ShyLiveMapper shyLiveMapper;
  55 + @Autowired
  56 + ShySitesMapper shySitesMapper;
  57 + @Autowired
  58 + ShyUsersMapper shyUsersMapper;
  59 +
  60 + @Autowired
  61 + LiveServiceImpl videosService;
  62 + @Autowired
  63 + SitesServiceImpl sitesService;
  64 +
  65 + @Autowired
  66 + UsersfreeServiceImpl usersfreeServiceImpl;
  67 +
  68 + @Autowired
  69 + VideofilterServiceImpl videofilterServiceImpl;
  70 +
  71 + @Value("${qn_domain}")
  72 + String qn_domain;
  73 +
  74 + @Value("${ks_domain}")
  75 + String ks_domain;
  76 +
  77 + @Autowired
  78 + AuditPass Pass;
  79 +
  80 + //==============
  81 + public boolean impotVideo(ShyLive shyLive) {
  82 + int result = shyLiveMapper.insertSelective(shyLive);
  83 + if (result == 0) {
  84 + return false;
  85 + }
  86 + return true;
  87 + }
  88 +
  89 + //==============
  90 + public ShyLive selectByPrimaryKey(Integer id) {
  91 + ShyLive shyLive = shyLiveMapper.selectByPrimaryKey(id);
  92 + return shyLive;
  93 + }
  94 +
  95 + //=============
  96 + public List<ShyLive> findshyLive(ShyLive shyLive) {
  97 + List<ShyLive> shyLivelist = shyLiveMapper.selectByRowBounds(shyLive, new RowBounds(0, 100));
  98 + return shyLivelist;
  99 + }
  100 +
  101 + //==============
  102 + public boolean updateshyLive(ShyLive shyLive) {
  103 + int i = shyLiveMapper.updateByPrimaryKey(shyLive);
  104 + if (i == 0) {
  105 + return false;
  106 + }
  107 + return true;
  108 + }
  109 +
  110 + //==============
  111 + public int updateLive(Integer id, String auditor_id,String updater, Integer activity_status, String msg) {
  112 + ShyLive shyLive = shyLiveMapper.selectByPrimaryKey(id);
  113 + shyLive.setAuditor(auditor_id);
  114 + shyLive.setShenhe_state(CommonConst.RECEIVE_AUDIT);
  115 + shyLive.setActivity_status(activity_status);
  116 + shyLive.setShenhe_msg(msg);
  117 + shyLive.setUpdater(updater);
  118 + return shyLiveMapper.updateByPrimaryKey(shyLive);
  119 + }
  120 +
  121 + //===============
  122 + public PageInfo<ShyLive> getListContent(String activity_name, String start_date, String end_date,
  123 + String activity_id, Integer activity_status, Integer page, Integer pageSize,
  124 + Integer shenhe_state, String orderByClause, Integer spid, String userId) {
  125 + Example example = new Example(ShyLive.class);
  126 + Example.Criteria criteria = example.createCriteria();
  127 +// Example.Criteria criteria2 = example.createCriteria();
  128 + if (CommonUtils.isNotEmpty(orderByClause)) {
  129 + example.setOrderByClause(orderByClause);
  130 + }
  131 + if (CommonUtils.isNotEmpty(start_date)) {
  132 + Timestamp startdate = null;
  133 + try {
  134 + startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd HH:mm");
  135 + } catch (ParseException e) {
  136 + e.printStackTrace();
  137 + }
  138 + criteria.andGreaterThanOrEqualTo("activity_start_time", startdate);
  139 +// criteria2.andGreaterThanOrEqualTo("activity_start_time", startdate);
  140 + }
  141 + if ( CommonUtils.isNotEmpty(end_date)) {
  142 + Timestamp enddate = null;
  143 + try {
  144 + enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd HH:mm");
  145 + } catch (ParseException e) {
  146 + e.printStackTrace();
  147 + }
  148 + criteria.andLessThanOrEqualTo("activity_end_time", enddate);
  149 +// criteria2.andLessThanOrEqualTo("activity_end_time", enddate);
  150 + }
  151 + if (CommonUtils.isNotEmpty(activity_name)) {
  152 + criteria.andLike("activity_name", "%" + activity_name + "%");
  153 +// criteria2.andLike("activity_name", "%" + activity_name + "%");
  154 + }
  155 +
  156 + if (CommonUtils.isNotEmpty(activity_id)) {
  157 + criteria.andEqualTo("activity_id", activity_id);
  158 +// criteria2.andEqualTo("activity_id", activity_id);
  159 + }
  160 + if (CommonUtils.isNotNull(spid)) {
  161 + criteria.andEqualTo("spid", spid);
  162 +// criteria2.andEqualTo("spid", spid);
  163 + }
  164 + if (CommonUtils.isNotNull(shenhe_state)) {
  165 + criteria.andEqualTo("shenhe_state", shenhe_state);
  166 +// criteria2.andEqualTo("shenhe_state", shenhe_state);
  167 + if (shenhe_state != CommonConst.RECEIVE_BEFORE) {
  168 + criteria.andEqualTo("auditor", userId);
  169 +// criteria2.andEqualTo("auditor", userId);
  170 + }
  171 + }
  172 + if (CommonUtils.isNotNull(activity_status) ) {
  173 + criteria.andEqualTo("activity_status", activity_status);
  174 + }
  175 + criteria.andEqualTo("is_show", 1);
  176 + //排序
  177 + example.setOrderByClause("is_hot desc, activity_start_time asc");
  178 + PageHelper.startPage(page, pageSize, true);
  179 + List<ShyLive> shyLiveList = shyLiveMapper.selectByExample(example);
  180 + PageInfo<ShyLive> pageInfo = new PageInfo<>(shyLiveList);
  181 + return pageInfo;
  182 + }
  183 +
  184 + //======================
  185 + public ShyLive getDetailsLive(Integer id) {
  186 + ShyLive shyLive = shyLiveMapper.selectByPrimaryKey(id);
  187 + if (shyLive.getShenhe_state() != CommonConst.RECEIVE_BEFORE) {
  188 + String updater = CommonUtils.isEmpty(shyLive.getUpdater()) || "null".equals(shyLive.getUpdater())? "自动通过":shyLive.getUpdater();
  189 + String auditor_id = shyLive.getAuditor();
  190 + if (CommonUtils.isNotEmpty(auditor_id)) {
  191 + ShyUsers user = new ShyUsers();
  192 + user.setUser_id(auditor_id);
  193 + user = shyUsersMapper.selectOne(user);
  194 + String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail())? "" : user.getEmail();
  195 + String userName = CommonUtils.isEmpty(user.getUsername()) ? email: user.getUsername();
  196 + updater = userName;
  197 + }
  198 + shyLive.setUpdater(updater);
  199 + }
  200 + return shyLive;
  201 + }
  202 +
  203 + //====================
  204 + public Integer receive(String ids, Integer num, String userId, Integer spid) {
  205 + Integer n = 0;
  206 + if (CommonUtils.isNotEmpty(ids)) {
  207 + String[] cids = ids.split(",");
  208 + for (String cid : cids) {
  209 + ShyLive shyLive = shyLiveMapper.selectByPrimaryKey(Integer.parseInt(cid));
  210 + if (CommonUtils.isNotNull(shyLive) && shyLive.getShenhe_state() == CommonConst.RECEIVE_BEFORE ) {
  211 + shyLive.setAuditor(userId);;
  212 + shyLive.setShenhe_state(CommonConst.RECEIVE_AFTER);
  213 + shyLiveMapper.updateByPrimaryKeySelective(shyLive);
  214 + n++;
  215 + }
  216 + }
  217 + } else if (CommonUtils.isNotNull(num) && num > 0) {
  218 + Example example = new Example(ShyLive.class);
  219 + example.setOrderByClause("is_hot desc, activity_start_time asc");
  220 + example.and().andEqualTo("shenhe_state", CommonConst.RECEIVE_BEFORE);
  221 + if (CommonUtils.isNotNull(spid) && spid != 0) example.and().andEqualTo("spid", spid);
  222 + List<ShyLive> shyLiveList = shyLiveMapper.selectByExampleAndRowBounds(example, new RowBounds(0, num));
  223 + if (!shyLiveList.isEmpty()) {
  224 + for (ShyLive shyLive : shyLiveList) {
  225 + shyLive.setAuditor(userId);
  226 + shyLive.setShenhe_state(CommonConst.RECEIVE_AFTER);
  227 + shyLiveMapper.updateByPrimaryKeySelective(shyLive);
  228 + n++;
  229 + }
  230 + }
  231 + }
  232 + return n;
  233 + }
  234 +
  235 + //================
  236 + public ResponseBean retReceive(String ids, String userId) {
  237 + String[] cids = ids.split(",");
  238 + for (String cid : cids) {
  239 + ShyLive shyLive = shyLiveMapper.selectByPrimaryKey(Integer.parseInt(cid));
  240 + if (shyLive.getShenhe_state() == CommonConst.RECEIVE_AFTER && shyLive.getAuditor().equals(userId)) {
  241 + shyLive.setShenhe_state(CommonConst.RECEIVE_BEFORE);
  242 + shyLive.setAuditor(null);
  243 + int i = shyLiveMapper.updateByPrimaryKey(shyLive);
  244 + if (i != 1) {
  245 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "退领失败,请重试");
  246 + }
  247 + } else {
  248 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "退领失败,您选中的内容包含已退领的或已经审核的");
  249 + }
  250 + }
  251 + return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "已退领");
  252 + }
  253 +
  254 + /**
  255 + * 根据条件导出数据excel
  256 + * @return
  257 + */
  258 + public List<ShyLive> findByCondition(String activity_id,String start_date,String end_date,
  259 + String activity_name, Integer activity_status, Integer page,Integer pageSize,
  260 + Integer shenhe_state, String orderByClause, Integer spid) {
  261 + Example example = new Example(ShyLive.class);
  262 + Example.Criteria criteria = example.createCriteria();
  263 + if (CommonUtils.isNotEmpty(orderByClause)) {
  264 + example.setOrderByClause(orderByClause);
  265 + }else{
  266 + //默认排序
  267 + example.setOrderByClause("activity_start_time asc");
  268 + }
  269 + if (CommonUtils.isNotEmpty(start_date)) {
  270 + Timestamp startdate = null;
  271 + try {
  272 + startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd HH:mm");
  273 + } catch (ParseException e) {
  274 + e.printStackTrace();
  275 + }
  276 + criteria.andGreaterThanOrEqualTo("activity_start_time", startdate);
  277 + }
  278 + if ( CommonUtils.isNotEmpty(end_date)) {
  279 + Timestamp enddate = null;
  280 + try {
  281 + enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd HH:mm");
  282 + } catch (ParseException e) {
  283 + e.printStackTrace();
  284 + }
  285 + criteria.andLessThanOrEqualTo("activity_end_time", enddate);
  286 + }
  287 + if (CommonUtils.isNotEmpty(activity_name)) {
  288 + criteria.andLike("activity_name", "%" + activity_name + "%");
  289 + }
  290 + if (CommonUtils.isNotNull(activity_status) ) {
  291 + criteria.andEqualTo("activity_status", activity_status);
  292 + }
  293 + if (CommonUtils.isNotEmpty(activity_id)) {
  294 + criteria.andEqualTo("activity_id", activity_id);
  295 + }
  296 + if (CommonUtils.isNotNull(spid)) {
  297 + criteria.andEqualTo("spid", spid);
  298 + }
  299 + if (CommonUtils.isNotNull(shenhe_state)) {
  300 + criteria.andEqualTo("shenhe_state", shenhe_state);
  301 + }
  302 +
  303 + List<ShyLive> shyLiveList = shyLiveMapper.selectByExample(example);
  304 + return shyLiveList;
  305 + }
  306 +
  307 +
  308 +
  309 +
  310 +}
... ...
src/main/java/com/cnlive/shenhe/utils/AuditPass.java
... ... @@ -56,6 +56,27 @@ public class AuditPass {
56 56 Map<String, String> post = httpUtil.post(URL);
57 57 return JSONObject.parseObject(post.get("result"));
58 58 }
  59 + /**
  60 + * 直播视频回调
  61 + *
  62 + * @param activity_id
  63 + * @param state
  64 + * @param attr_tags
  65 + * @param msg
  66 + * @return
  67 + */
  68 + public JSONObject livePass(String activity_id, int state, String attr_tags, String msg, String callBack) {
  69 + logger.info("直播回调:id:{},state:{},attr_tags:{},exceptionMessage:{}", activity_id, state, attr_tags, msg);
  70 + JSONObject params = new JSONObject();
  71 + params.put("id", activity_id);
  72 + params.put("state", state);
  73 + params.put("attr_tags", attr_tags);
  74 + params.put("exceptionMessage", msg);
  75 + HttpUtil httpUtil = HttpUtil.init();
  76 + httpUtil.setParam("param", params.toJSONString());
  77 + Map<String, String> post = httpUtil.post(callBack);
  78 + return JSONObject.parseObject(post.get("result"));
  79 + }
59 80  
60 81 /**
61 82 * 评论打回回调
... ...
src/main/resources/mapper/ShyCommentsMapper.xml
... ... @@ -16,6 +16,7 @@
16 16 <result column="spid" jdbcType="INTEGER" property="spid" />
17 17 <result column="app_id" jdbcType="VARCHAR" property="app_id" />
18 18 <result column="comment_original_url" jdbcType="VARCHAR" property="comment_original_url" />
  19 + <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" />
19 20 <result column="updater" jdbcType="VARCHAR" property="updater" />
20 21 <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" />
21 22 <result column="callback" jdbcType="VARCHAR" property="callback" />
... ... @@ -27,7 +28,7 @@
27 28 <result column="comment_user_ip" jdbcType="CHAR" property="comment_user_ip" />
28 29 <result column="created_at" jdbcType="TIMESTAMP" property="created_at" />
29 30 <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" />
30   - <result column="receive" jdbcType="BIT" property="receive" />
  31 + <result column="receive" jdbcType="INTEGER" property="receive" />
31 32 <result column="receive_user_id" jdbcType="VARCHAR" property="receive_user_id" />
32 33 </resultMap>
33 34 </mapper>
34 35 \ No newline at end of file
... ...
src/main/resources/mapper/ShyContentMapper.xml
... ... @@ -17,6 +17,7 @@
17 17 <result column="callback" jdbcType="VARCHAR" property="callback" />
18 18 <result column="source" jdbcType="VARCHAR" property="source" />
19 19 <result column="author" jdbcType="VARCHAR" property="author" />
  20 + <result column="content_time" jdbcType="TIMESTAMP" property="content_time" />
20 21 <result column="create_date" jdbcType="TIMESTAMP" property="create_date" />
21 22 <result column="last_update" jdbcType="TIMESTAMP" property="last_update" />
22 23 <result column="receive_status" jdbcType="INTEGER" property="receive_status" />
... ...
src/main/resources/mapper/ShyLiveMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.cnlive.shenhe.mapper.ShyLiveMapper">
  4 + <resultMap id="BaseResultMap" type="com.cnlive.shenhe.entity.ShyLive">
  5 + <!--
  6 + WARNING - @mbg.generated
  7 + -->
  8 + <id column="id" jdbcType="INTEGER" property="id" />
  9 + <result column="sp_id" jdbcType="INTEGER" property="sp_id" />
  10 + <result column="channel_id" jdbcType="VARCHAR" property="channel_id" />
  11 + <result column="activity_id" jdbcType="VARCHAR" property="activity_id" />
  12 + <result column="activity_name" jdbcType="VARCHAR" property="activity_name" />
  13 + <result column="activity_status" jdbcType="INTEGER" property="activity_status" />
  14 + <result column="activity_start_time" jdbcType="TIMESTAMP" property="activity_start_time" />
  15 + <result column="activity_end_time" jdbcType="TIMESTAMP" property="activity_end_time" />
  16 + <result column="activity_intro" jdbcType="VARCHAR" property="activity_intro" />
  17 + <result column="m3u8_url" jdbcType="VARCHAR" property="m3u8_url" />
  18 + <result column="rtmp_url" jdbcType="VARCHAR" property="rtmp_url" />
  19 + <result column="callback" jdbcType="VARCHAR" property="callback" />
  20 + <result column="cover_img_url" jdbcType="VARCHAR" property="cover_img_url" />
  21 + <result column="playback_url" jdbcType="VARCHAR" property="playback_url" />
  22 + <result column="is_hot" jdbcType="INTEGER" property="is_hot" />
  23 + <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" />
  24 + <result column="shenhe_state" jdbcType="INTEGER" property="shenhe_state" />
  25 + <result column="updater" jdbcType="VARCHAR" property="updater" />
  26 + <result column="auditor" jdbcType="VARCHAR" property="auditor" />
  27 + <result column="shenhe_msg" jdbcType="VARCHAR" property="shenhe_msg" />
  28 + <result column="avsample_state" jdbcType="INTEGER" property="avsample_state" />
  29 + <result column="avsample_start_time" jdbcType="TIMESTAMP" property="avsample_start_time" />
  30 + <result column="avsample_end_time" jdbcType="TIMESTAMP" property="avsample_end_time" />
  31 + <result column="is_show" jdbcType="INTEGER" property="is_show" />
  32 + <result column="created_at" jdbcType="TIMESTAMP" property="created_at" />
  33 + <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" />
  34 + <result column="avsample_imgs" jdbcType="LONGVARCHAR" property="avsample_imgs" />
  35 + <result column="avsample_msg" jdbcType="LONGVARCHAR" property="avsample_msg" />
  36 + </resultMap>
  37 +</mapper>
0 38 \ No newline at end of file
... ...
src/main/resources/mapper/ShyVideosMapper.xml
... ... @@ -16,6 +16,7 @@
16 16 <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" />
17 17 <result column="callback" jdbcType="VARCHAR" property="callback" />
18 18 <result column="video_priority" jdbcType="VARCHAR" property="video_priority" />
  19 + <result column="attr_tags" jdbcType="VARCHAR" property="attr_tags" />
19 20 <result column="msg" jdbcType="VARCHAR" property="msg" />
20 21 <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" />
21 22 <result column="state" jdbcType="INTEGER" property="state" />
... ... @@ -25,7 +26,7 @@
25 26 <result column="video_id" jdbcType="VARCHAR" property="video_id" />
26 27 <result column="created_at" jdbcType="TIMESTAMP" property="created_at" />
27 28 <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" />
28   - <result column="receive" jdbcType="BIT" property="receive" />
  29 + <result column="receive" jdbcType="INTEGER" property="receive" />
29 30 <result column="receive_user_id" jdbcType="VARCHAR" property="receive_user_id" />
30 31 <result column="avsample" jdbcType="INTEGER" property="avsample" />
31 32 <result column="task_id" jdbcType="VARCHAR" property="task_id" />
... ...
src/main/resources/templates/common/frame.html
... ... @@ -60,8 +60,8 @@ line-height: 2em; margin: 0 auto;font-size: 2em&quot; th:text=&quot;${session.sessionUser.
60 60 <span class="menu-item-top">审核云</span>
61 61 </a>
62 62 <ul class="treeview-menu">
63   - <li class="active"><a href="/videos/page?state=0&receive=0" id="/videos/page"></i> 点播审核</a></li>
64   -<!-- <li><a href="/live/page?receive_status=0" id="/live/page"> 直播审核</a></li> -->
  63 + <li class="active"><a href="/videos/page?state=0&receive=0" id="/videos/page">点播审核</a></li>
  64 +<!-- <li><a href="/live/page?shenhe_state=0" id="/live/page"> 直播审核</a></li> -->
65 65 <li><a href="/comments/page?state=0&receive=0" id="/comments/page"> 评论审核</a></li>
66 66 <!-- <li><a href="/content/page?receive_status=0" id="/content/page"> 图文审核</a></li> -->
67 67 </ul>
... ...
src/main/resources/templates/common/head.html
... ... @@ -79,5 +79,10 @@
79 79  
80 80 <link href="../../static/css/app.css" rel="stylesheet">
81 81 <script src="../../static/js/app.js"></script>
  82 +
  83 + <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
  84 + <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"
  85 + integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
  86 + crossorigin="anonymous"></script>
82 87 </head>
83 88 </html>
84 89 \ No newline at end of file
... ...
src/main/resources/templates/html/game.html 0 → 100644
  1 +
  2 +
  3 +
  4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5 +<html xmlns="http://www.w3.org/1999/xhtml">
  6 +<head>
  7 +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8 +<title>游戏专区</title>
  9 +<script src="http://y1.cnliveimg.com:8080/icms/game/js/jquery1.42.min.js" type="text/javascript"></script>
  10 +<link href="http://y1.cnliveimg.com:8080/icms/game/css/shouye.css" rel="stylesheet" type="text/css" />
  11 +<link rel="stylesheet" type="text/css" href="http://y1.cnliveimg.com:8080/icms/game/css/lrtk.css">
  12 +<link href="http://www.cnlive.com/css/2012.css" rel="stylesheet" type="text/css" />
  13 +<script src="http://y1.cnliveimg.com:8080/icms/game/js/jquery.superslide.2.1.1.js" type="text/javascript"></script>
  14 + <script type="text/javascript">
  15 +
  16 +function logout(){
  17 + $.ajax({
  18 + dataType:'json',
  19 + url:"/handler/user/delcookie.do",
  20 + success:function(data){
  21 + var flag = data.flag;
  22 + if(flag == "1"){
  23 + window.location.href="http://www.ikol.cn/yxzq/index1.html";
  24 + }
  25 +
  26 +
  27 + }
  28 + })
  29 +
  30 +}
  31 +</script>
  32 + <script>
  33 +(function(){
  34 + var bp = document.createElement('script');
  35 + var curProtocol = window.location.protocol.split(':')[0];
  36 + if (curProtocol === 'https') {
  37 + bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  38 + }
  39 + else {
  40 + bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  41 + }
  42 + var s = document.getElementsByTagName("script")[0];
  43 + s.parentNode.insertBefore(bp, s);
  44 +})();
  45 +</script>
  46 + <script>
  47 + var _hmt = _hmt || [];
  48 + (function() {
  49 + var hm = document.createElement("script");
  50 + hm.src = "//hm.baidu.com/hm.js?4627425aed488d04175e70d4539c8e72";
  51 + var s = document.getElementsByTagName("script")[0];
  52 + s.parentNode.insertBefore(hm, s);
  53 + })();
  54 + </script>
  55 +<style>
  56 + .com {
  57 + background-image: url(http://y1.cnliveimg.com:8080/icms/game/images_detail/bg.gif);
  58 + background-repeat: repeat-x;
  59 + background-position: bottom;
  60 + }
  61 +
  62 + .com .content-12 {
  63 + font-family: "微软雅黑", "宋体", Helvetica, Arial, Helvetica, sans-serif;
  64 + color: #636363;
  65 + font-size: 12px;
  66 + line-height: 20px;
  67 + padding-bottom: 20px;
  68 + padding-left: 35px;
  69 + padding-right: 20px;
  70 + padding-top: 30px;
  71 + text-align: left;
  72 + }
  73 +</style>
  74 +</head>
  75 +
  76 +
  77 +
  78 +<body bgcolor="#f1f1f1" >
  79 +
  80 +
  81 +
  82 +<!-- content -->
  83 +<div class="content-1" >
  84 + <table width="708" border="0" cellspacing="0" cellpadding="0" align="left">
  85 + <!-- 左侧-有奖游戏 -->
  86 + <tr>
  87 + <td>
  88 + <div id="menucontainer1" >
  89 +
  90 +
  91 +
  92 +
  93 +
  94 +
  95 +
  96 +
  97 +<div>
  98 +
  99 +
  100 + <table border="0" cellspacing="0" cellpadding="0" class="content-2">
  101 + <tr>
  102 + <td class="content-10"><img src="http://y1.cnliveimg.com:8080/icms/game/images/content-1.gif" /> 有奖游戏</td>
  103 + </tr>
  104 + <tr>
  105 + <td ><table align="center">
  106 + <tr>
  107 + <td class="content-7" >
  108 +
  109 + <ul class="content-5">
  110 +
  111 +
  112 + <li class="content-6" >
  113 + <table >
  114 + <tr>
  115 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/base.png" style="width:78px;height:78px;" border="0" /></a> </td>
  116 + </tr>
  117 + <tr>
  118 + <td ><a href="#" target="_blank">泡泡消除 </a> </td>
  119 + </tr>
  120 + <tr>
  121 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">29万次下载</span> </td>
  122 + </tr>
  123 + <tr>
  124 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/base.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  125 + </tr>
  126 + </table>
  127 + </li>
  128 + <li class="content-6" >
  129 + <table >
  130 + <tr>
  131 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/leiting.png" style="width:78px;height:78px;" border="0" /></a> </td>
  132 + </tr>
  133 + <tr>
  134 + <td ><a href="#" target="_blank">雷霆战机 </a> </td>
  135 + </tr>
  136 + <tr>
  137 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">35万次下载</span> </td>
  138 + </tr>
  139 + <tr>
  140 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/leiting.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  141 + </tr>
  142 + </table>
  143 + </li>
  144 + <li class="content-6" >
  145 + <table >
  146 + <tr>
  147 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/mofa.png" style="width:78px;height:78px;" border="0" /></a> </td>
  148 + </tr>
  149 + <tr>
  150 + <td ><a href="#" target="_blank">魔法消除 </a> </td>
  151 + </tr>
  152 + <tr>
  153 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">43万次下载</span> </td>
  154 + </tr>
  155 + <tr>
  156 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/mofa.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  157 + </tr>
  158 + </table>
  159 + </li>
  160 + <li class="content-6" >
  161 + <table >
  162 + <tr>
  163 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/momv.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  164 + </tr>
  165 + <tr>
  166 + <td ><a href="#" target="_blank">魔女酷跑 </a> </td>
  167 + </tr>
  168 + <tr>
  169 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">29万次下载</span> </td>
  170 + </tr>
  171 + <tr>
  172 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/monv.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  173 + </tr>
  174 + </table>
  175 + </li>
  176 + <li class="content-6" >
  177 + <table >
  178 + <tr>
  179 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/zhanshen.png" style="width:78px;height:78px;" border="0" /></a> </td>
  180 + </tr>
  181 + <tr>
  182 + <td ><a href="#" target="_blank">战神机甲出击 </a> </td>
  183 + </tr>
  184 + <tr>
  185 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">60万次下载</span> </td>
  186 + </tr>
  187 + <tr>
  188 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/zhanshen.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  189 + </tr>
  190 + </table>
  191 + </li>
  192 + <li class="content-6" >
  193 + <table >
  194 + <tr>
  195 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721754" target="_blank"><img src="http://yweb2.cnliveimg.com/cnlive/public/170303135004827_081.png" style="width:78px;height:78px;" border="0" /></a> </td>
  196 + </tr>
  197 + <tr>
  198 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721754" target="_blank">干掉僵尸 </a> </td>
  199 + </tr>
  200 + <tr>
  201 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">29万次下载</span> </td>
  202 + </tr>
  203 + <tr>
  204 + <td><a href="http://resweb.cnliveimg.com/icms/file/2017/03/03/170303135401564_404.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  205 + </tr>
  206 + </table>
  207 + </li>
  208 +
  209 + <li class="content-6" >
  210 + <table >
  211 + <tr>
  212 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721753" target="_blank"><img src="http://yweb2.cnliveimg.com/cnlive/public/170303134123648_480.png" style="width:78px;height:78px;" border="0" /></a> </td>
  213 + </tr>
  214 + <tr>
  215 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721753" target="_blank">麻将消除乐 </a> </td>
  216 + </tr>
  217 + <tr>
  218 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">0万次下载</span> </td>
  219 + </tr>
  220 + <tr>
  221 + <td><a href="http://resweb.cnliveimg.com/icms/file/2017/03/03/170303134700302_062.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  222 + </tr>
  223 + </table>
  224 + </li>
  225 +
  226 + <li class="content-6" >
  227 + <table >
  228 + <tr>
  229 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721751" target="_blank"><img src="http://yweb1.cnliveimg.com/cnlive/public/170302152814499_814.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  230 + </tr>
  231 + <tr>
  232 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721751" target="_blank">乐动达人全民 </a> </td>
  233 + </tr>
  234 + <tr>
  235 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">0万次下载</span> </td>
  236 + </tr>
  237 + <tr>
  238 + <td><a href="http://resweb.cnliveimg.com/icms/file/2017/03/02/170302153332333_970.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  239 + </tr>
  240 + </table>
  241 + </li>
  242 +
  243 + <li class="content-6" >
  244 + <table >
  245 + <tr>
  246 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=416602" target="_blank"><img src="http://yweb3.cnliveimg.com/img/cnlive/public/141205153040204_506.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  247 + </tr>
  248 + <tr>
  249 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=416602" target="_blank">萌宠爱跳跃 </a> </td>
  250 + </tr>
  251 + <tr>
  252 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">35万次下载</span> </td>
  253 + </tr>
  254 + <tr>
  255 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/12/05/141205153056054_241.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  256 + </tr>
  257 + </table>
  258 + </li>
  259 +
  260 + <li class="content-6" >
  261 + <table >
  262 + <tr>
  263 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415491" target="_blank"><img src="http://yweb0.cnliveimg.com/img/cnlive/public/141127171157374_570.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  264 + </tr>
  265 + <tr>
  266 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415491" target="_blank">银河空战 </a> </td>
  267 + </tr>
  268 + <tr>
  269 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">57万次下载</span> </td>
  270 + </tr>
  271 + <tr>
  272 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/27/141127171237246_236.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  273 + </tr>
  274 + </table>
  275 + </li>
  276 +
  277 + <li class="content-6" >
  278 + <table >
  279 + <tr>
  280 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=282816" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587479043.png" style="width:78px;height:78px;" border="0" /></a> </td>
  281 + </tr>
  282 + <tr>
  283 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=282816" target="_blank">剑雨 </a> </td>
  284 + </tr>
  285 + <tr>
  286 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">46万次下载</span> </td>
  287 + </tr>
  288 + <tr>
  289 + <td><a href="http://dl.m.duoku.com/game/67000/67745/20140822094925_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  290 + </tr>
  291 + </table>
  292 + </li>
  293 +
  294 + <li class="content-6" >
  295 + <table >
  296 + <tr>
  297 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=285517" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410451235430.png" style="width:78px;height:78px;" border="0" /></a> </td>
  298 + </tr>
  299 + <tr>
  300 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=285517" target="_blank">无极剑圣 </a> </td>
  301 + </tr>
  302 + <tr>
  303 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">33万次下载</span> </td>
  304 + </tr>
  305 + <tr>
  306 + <td><a href="http://dl.m.duoku.com/game/72000/72264/20140911162127_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  307 + </tr>
  308 + </table>
  309 + </li>
  310 +
  311 + <li class="content-6" >
  312 + <table >
  313 + <tr>
  314 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=285514" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410451231418.png" style="width:78px;height:78px;" border="0" /></a> </td>
  315 + </tr>
  316 + <tr>
  317 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=285514" target="_blank">疯狂冒险岛 </a> </td>
  318 + </tr>
  319 + <tr>
  320 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">64万次下载</span> </td>
  321 + </tr>
  322 + <tr>
  323 + <td><a href="http://dl.m.duoku.com/game/72000/72267/20140911174645_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  324 + </tr>
  325 + </table>
  326 + </li>
  327 +
  328 + <li class="content-6" >
  329 + <table >
  330 + <tr>
  331 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281793" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587435863.png" style="width:78px;height:78px;" border="0" /></a> </td>
  332 + </tr>
  333 + <tr>
  334 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281793" target="_blank">全民挂机 </a> </td>
  335 + </tr>
  336 + <tr>
  337 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">26万次下载</span> </td>
  338 + </tr>
  339 + <tr>
  340 + <td><a href="http://dl.m.duoku.com/game/67000/67710/20140916143558_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  341 + </tr>
  342 + </table>
  343 + </li>
  344 +
  345 + <li class="content-6" >
  346 + <table >
  347 + <tr>
  348 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281792" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587443477.png" style="width:78px;height:78px;" border="0" /></a> </td>
  349 + </tr>
  350 + <tr>
  351 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281792" target="_blank">斗萌西游 </a> </td>
  352 + </tr>
  353 + <tr>
  354 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">86万次下载</span> </td>
  355 + </tr>
  356 + <tr>
  357 + <td><a href="http://dl.m.duoku.com/game/67000/67707/20140815110017_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  358 + </tr>
  359 + </table>
  360 + </li>
  361 +
  362 + <li class="content-6" >
  363 + <table >
  364 + <tr>
  365 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=280229" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587429318.png" style="width:78px;height:78px;" border="0" /></a> </td>
  366 + </tr>
  367 + <tr>
  368 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=280229" target="_blank">冰火战魂 </a> </td>
  369 + </tr>
  370 + <tr>
  371 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">93万次下载</span> </td>
  372 + </tr>
  373 + <tr>
  374 + <td><a href="http://dl.m.duoku.com/game/67000/67642/20140806203113_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  375 + </tr>
  376 + </table>
  377 + </li>
  378 +
  379 + <li class="content-6" >
  380 + <table >
  381 + <tr>
  382 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286224" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410969629641.png" style="width:78px;height:78px;" border="0" /></a> </td>
  383 + </tr>
  384 + <tr>
  385 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286224" target="_blank">我是圣斗士 </a> </td>
  386 + </tr>
  387 + <tr>
  388 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">25万次下载</span> </td>
  389 + </tr>
  390 + <tr>
  391 + <td><a href="http://dl.m.duoku.com/game/72000/72374/20140917163719_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  392 + </tr>
  393 + </table>
  394 + </li>
  395 +
  396 + <li class="content-6" >
  397 + <table >
  398 + <tr>
  399 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281793" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587435863.png" style="width:78px;height:78px;" border="0" /></a> </td>
  400 + </tr>
  401 + <tr>
  402 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281793" target="_blank">全民挂机 </a> </td>
  403 + </tr>
  404 + <tr>
  405 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">26万次下载</span> </td>
  406 + </tr>
  407 + <tr>
  408 + <td><a href="http://dl.m.duoku.com/game/67000/67710/20140916143558_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  409 + </tr>
  410 + </table>
  411 + </li>
  412 +
  413 + <li class="content-6" >
  414 + <table >
  415 + <tr>
  416 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281361" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587455727.png" style="width:78px;height:78px;" border="0" /></a> </td>
  417 + </tr>
  418 + <tr>
  419 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281361" target="_blank">超级经纪人 </a> </td>
  420 + </tr>
  421 + <tr>
  422 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">89万次下载</span> </td>
  423 + </tr>
  424 + <tr>
  425 + <td><a href="http://dl.m.duoku.com/game/67000/67685/20140822183712_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  426 + </tr>
  427 + </table>
  428 + </li>
  429 +
  430 + <li class="content-6" >
  431 + <table >
  432 + <tr>
  433 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=413425" target="_blank"><img src="http://y1.cnliveimg.com:8080/img/cnlive/public/141114103331407_937.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  434 + </tr>
  435 + <tr>
  436 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=413425" target="_blank">布偶大逃亡 </a> </td>
  437 + </tr>
  438 + <tr>
  439 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">76万次下载</span> </td>
  440 + </tr>
  441 + <tr>
  442 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/14/141114103530246_480.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  443 + </tr>
  444 + </table>
  445 + </li>
  446 +
  447 + <li class="content-6" >
  448 + <table >
  449 + <tr>
  450 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415490" target="_blank"><img src="http://yweb0.cnliveimg.com/img/cnlive/public/141127170821446_983.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  451 + </tr>
  452 + <tr>
  453 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415490" target="_blank">音符消除 </a> </td>
  454 + </tr>
  455 + <tr>
  456 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">93万次下载</span> </td>
  457 + </tr>
  458 + <tr>
  459 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/27/141127170949132_019.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  460 + </tr>
  461 + </table>
  462 + </li>
  463 +
  464 + <li class="content-6" >
  465 + <table >
  466 + <tr>
  467 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281360" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587446007.png" style="width:78px;height:78px;" border="0" /></a> </td>
  468 + </tr>
  469 + <tr>
  470 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=281360" target="_blank">全民西游 </a> </td>
  471 + </tr>
  472 + <tr>
  473 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">61万次下载</span> </td>
  474 + </tr>
  475 + <tr>
  476 + <td><a href="http://dl.m.duoku.com/game/67000/67681/20140813163121_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  477 + </tr>
  478 + </table>
  479 + </li>
  480 +
  481 + <li class="content-6" >
  482 + <table >
  483 + <tr>
  484 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286229" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410969637749.png" style="width:78px;height:78px;" border="0" /></a> </td>
  485 + </tr>
  486 + <tr>
  487 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286229" target="_blank">塔王之王 </a> </td>
  488 + </tr>
  489 + <tr>
  490 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">91万次下载</span> </td>
  491 + </tr>
  492 + <tr>
  493 + <td><a href="http://dl.m.duoku.com/game/72000/72380/20140917183912_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  494 + </tr>
  495 + </table>
  496 + </li>
  497 +
  498 + <li class="content-6" >
  499 + <table >
  500 + <tr>
  501 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=285289" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410364847556.png" style="width:78px;height:78px;" border="0" /></a> </td>
  502 + </tr>
  503 + <tr>
  504 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=285289" target="_blank">齐天大圣3D </a> </td>
  505 + </tr>
  506 + <tr>
  507 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">54万次下载</span> </td>
  508 + </tr>
  509 + <tr>
  510 + <td><a href="http://dl.m.duoku.com/game/72000/72207/20140910180005_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  511 + </tr>
  512 + </table>
  513 + </li>
  514 +
  515 + <li class="content-6" >
  516 + <table >
  517 + <tr>
  518 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=284287" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409673595124.png" style="width:78px;height:78px;" border="0" /></a> </td>
  519 + </tr>
  520 + <tr>
  521 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=284287" target="_blank">新森林舞会 </a> </td>
  522 + </tr>
  523 + <tr>
  524 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">83万次下载</span> </td>
  525 + </tr>
  526 + <tr>
  527 + <td><a href="http://dl.m.duoku.com/game/72000/72134/20140902162203_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  528 + </tr>
  529 + </table>
  530 + </li>
  531 +
  532 + <li class="content-6" >
  533 + <table >
  534 + <tr>
  535 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415479" target="_blank"><img src="http://yweb3.cnliveimg.com/img/cnlive/public/141127170346292_122.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  536 + </tr>
  537 + <tr>
  538 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415479" target="_blank">兔子围堵战 </a> </td>
  539 + </tr>
  540 + <tr>
  541 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">70万次下载</span> </td>
  542 + </tr>
  543 + <tr>
  544 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/27/141127170510204_433.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  545 + </tr>
  546 + </table>
  547 + </li>
  548 +
  549 + </ul>
  550 + </td>
  551 + </tr>
  552 + </table></td>
  553 + </tr>
  554 +
  555 + </table>
  556 +
  557 +</div>
  558 +
  559 +
  560 +
  561 +
  562 +</div>
  563 + </td>
  564 + </tr>
  565 + <!-- 左侧--安卓精选游戏 -->
  566 + <tr>
  567 + <td>
  568 + <div id="menucontainer10" >
  569 +
  570 +
  571 +
  572 +
  573 +
  574 +
  575 +
  576 +<div >
  577 + <table border="0" cellspacing="0" cellpadding="0" class="content-2">
  578 + <tr>
  579 + <td class="content-3"><img src="http://y1.cnliveimg.com:8080/icms/game/images/content-1.gif"/> 安卓精选游戏</td>
  580 + </tr>
  581 +
  582 + <tr>
  583 + <td ><table align="center">
  584 + <tr>
  585 + <td class="content-7" >
  586 +
  587 + <ul class="content-5">
  588 +
  589 +
  590 + <li class="content-6" >
  591 + <table >
  592 + <tr>
  593 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/base.png" style="width:78px;height:78px;" border="0" /></a> </td>
  594 + </tr>
  595 + <tr>
  596 + <td ><a href="#" target="_blank">泡泡消除 </a> </td>
  597 + </tr>
  598 + <tr>
  599 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">29万次下载</span> </td>
  600 + </tr>
  601 + <tr>
  602 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/base.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  603 + </tr>
  604 + </table>
  605 + </li>
  606 + <li class="content-6" >
  607 + <table >
  608 + <tr>
  609 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/leiting.png" style="width:78px;height:78px;" border="0" /></a> </td>
  610 + </tr>
  611 + <tr>
  612 + <td ><a href="#" target="_blank">雷霆战机 </a> </td>
  613 + </tr>
  614 + <tr>
  615 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">35万次下载</span> </td>
  616 + </tr>
  617 + <tr>
  618 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/leiting.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  619 + </tr>
  620 + </table>
  621 + </li>
  622 + <li class="content-6" >
  623 + <table >
  624 + <tr>
  625 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/mofa.png" style="width:78px;height:78px;" border="0" /></a> </td>
  626 + </tr>
  627 + <tr>
  628 + <td ><a href="#" target="_blank">魔法消除 </a> </td>
  629 + </tr>
  630 + <tr>
  631 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">43万次下载</span> </td>
  632 + </tr>
  633 + <tr>
  634 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/mofa.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  635 + </tr>
  636 + </table>
  637 + </li>
  638 + <li class="content-6" >
  639 + <table >
  640 + <tr>
  641 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/momv.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  642 + </tr>
  643 + <tr>
  644 + <td ><a href="#" target="_blank">魔女酷跑 </a> </td>
  645 + </tr>
  646 + <tr>
  647 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">29万次下载</span> </td>
  648 + </tr>
  649 + <tr>
  650 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/monv.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  651 + </tr>
  652 + </table>
  653 + </li>
  654 + <li class="content-6" >
  655 + <table >
  656 + <tr>
  657 + <td ><a href="#" target="_blank"><img src="http://sxzg.vods1.cnlive.com/82/games/zhanshen.png" style="width:78px;height:78px;" border="0" /></a> </td>
  658 + </tr>
  659 + <tr>
  660 + <td ><a href="#" target="_blank">战神机甲出击 </a> </td>
  661 + </tr>
  662 + <tr>
  663 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">60万次下载</span> </td>
  664 + </tr>
  665 + <tr>
  666 + <td><a href="http://sxzg.vods1.cnlive.com/82/games/zhanshen.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  667 + </tr>
  668 + </table>
  669 + </li>
  670 + <li class="content-6" >
  671 + <table >
  672 + <tr>
  673 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721754" target="_blank"><img src="http://yweb2.cnliveimg.com/cnlive/public/170303135004827_081.png" style="width:78px;height:78px;" border="0" /></a> </td>
  674 + </tr>
  675 + <tr>
  676 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721754" target="_blank">干掉僵尸 </a> </td>
  677 + </tr>
  678 + <tr>
  679 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">29万次下载</span> </td>
  680 + </tr>
  681 + <tr>
  682 + <td><a href="http://resweb.cnliveimg.com/icms/file/2017/03/03/170303135401564_404.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  683 + </tr>
  684 + </table>
  685 + </li>
  686 +
  687 + <li class="content-6" >
  688 + <table >
  689 + <tr>
  690 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721753" target="_blank"><img src="http://yweb2.cnliveimg.com/cnlive/public/170303134123648_480.png" style="width:78px;height:78px;" border="0" /></a> </td>
  691 + </tr>
  692 + <tr>
  693 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721753" target="_blank">麻将消除乐 </a> </td>
  694 + </tr>
  695 + <tr>
  696 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">0万次下载</span> </td>
  697 + </tr>
  698 + <tr>
  699 + <td><a href="http://resweb.cnliveimg.com/icms/file/2017/03/03/170303134700302_062.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  700 + </tr>
  701 + </table>
  702 + </li>
  703 +
  704 + <li class="content-6" >
  705 + <table >
  706 + <tr>
  707 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721751" target="_blank"><img src="http://yweb1.cnliveimg.com/cnlive/public/170302152814499_814.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  708 + </tr>
  709 + <tr>
  710 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=721751" target="_blank">乐动达人全民 </a> </td>
  711 + </tr>
  712 + <tr>
  713 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">0万次下载</span> </td>
  714 + </tr>
  715 + <tr>
  716 + <td><a href="http://resweb.cnliveimg.com/icms/file/2017/03/02/170302153332333_970.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  717 + </tr>
  718 + </table>
  719 + </li>
  720 +
  721 + <li class="content-6" >
  722 + <table >
  723 + <tr>
  724 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=417186" target="_blank"><img src="http://yweb2.cnliveimg.com/img/cnlive/public/141210094644721_697.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  725 + </tr>
  726 + <tr>
  727 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=417186" target="_blank">奇缘连萌 </a> </td>
  728 + </tr>
  729 + <tr>
  730 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">77万次下载</span> </td>
  731 + </tr>
  732 + <tr>
  733 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/12/10/141210094704593_508.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  734 + </tr>
  735 + </table>
  736 + </li>
  737 +
  738 + <li class="content-6" >
  739 + <table >
  740 + <tr>
  741 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=413288" target="_blank"><img src="http://y1.cnliveimg.com:8080/img/cnlive/public/141113165335498_246.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  742 + </tr>
  743 + <tr>
  744 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=413288" target="_blank">宇宙大碰撞 </a> </td>
  745 + </tr>
  746 + <tr>
  747 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">50万次下载</span> </td>
  748 + </tr>
  749 + <tr>
  750 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/13/141113171347721_931.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  751 + </tr>
  752 + </table>
  753 + </li>
  754 +
  755 + <li class="content-6" >
  756 + <table >
  757 + <tr>
  758 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286111" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410883235015.png" style="width:78px;height:78px;" border="0" /></a> </td>
  759 + </tr>
  760 + <tr>
  761 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286111" target="_blank">嘿嘿三国 </a> </td>
  762 + </tr>
  763 + <tr>
  764 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">37万次下载</span> </td>
  765 + </tr>
  766 + <tr>
  767 + <td><a href="http://dl.m.duoku.com/game/72000/72361/20140916174319_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  768 + </tr>
  769 + </table>
  770 + </li>
  771 +
  772 + <li class="content-6" >
  773 + <table >
  774 + <tr>
  775 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286229" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1410969637749.png" style="width:78px;height:78px;" border="0" /></a> </td>
  776 + </tr>
  777 + <tr>
  778 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=286229" target="_blank">塔王之王 </a> </td>
  779 + </tr>
  780 + <tr>
  781 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">91万次下载</span> </td>
  782 + </tr>
  783 + <tr>
  784 + <td><a href="http://dl.m.duoku.com/game/72000/72380/20140917183912_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  785 + </tr>
  786 + </table>
  787 + </li>
  788 +
  789 + <li class="content-6" >
  790 + <table >
  791 + <tr>
  792 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415477" target="_blank"><img src="http://yweb3.cnliveimg.com/img/cnlive/public/141127165215289_416.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  793 + </tr>
  794 + <tr>
  795 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415477" target="_blank">魔法传奇 </a> </td>
  796 + </tr>
  797 + <tr>
  798 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">68万次下载</span> </td>
  799 + </tr>
  800 + <tr>
  801 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/27/141127165418184_896.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  802 + </tr>
  803 + </table>
  804 + </li>
  805 +
  806 + <li class="content-6" >
  807 + <table >
  808 + <tr>
  809 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=416602" target="_blank"><img src="http://yweb3.cnliveimg.com/img/cnlive/public/141205153040204_506.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  810 + </tr>
  811 + <tr>
  812 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=416602" target="_blank">萌宠爱跳跃 </a> </td>
  813 + </tr>
  814 + <tr>
  815 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">35万次下载</span> </td>
  816 + </tr>
  817 + <tr>
  818 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/12/05/141205153056054_241.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  819 + </tr>
  820 + </table>
  821 + </li>
  822 +
  823 + <li class="content-6" >
  824 + <table >
  825 + <tr>
  826 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=284287" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409673595124.png" style="width:78px;height:78px;" border="0" /></a> </td>
  827 + </tr>
  828 + <tr>
  829 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=284287" target="_blank">新森林舞会 </a> </td>
  830 + </tr>
  831 + <tr>
  832 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">83万次下载</span> </td>
  833 + </tr>
  834 + <tr>
  835 + <td><a href="http://dl.m.duoku.com/game/72000/72134/20140902162203_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  836 + </tr>
  837 + </table>
  838 + </li>
  839 +
  840 + <li class="content-6" >
  841 + <table >
  842 + <tr>
  843 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=282816" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587479043.png" style="width:78px;height:78px;" border="0" /></a> </td>
  844 + </tr>
  845 + <tr>
  846 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=282816" target="_blank">剑雨 </a> </td>
  847 + </tr>
  848 + <tr>
  849 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">46万次下载</span> </td>
  850 + </tr>
  851 + <tr>
  852 + <td><a href="http://dl.m.duoku.com/game/67000/67745/20140822094925_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  853 + </tr>
  854 + </table>
  855 + </li>
  856 +
  857 + <li class="content-6" >
  858 + <table >
  859 + <tr>
  860 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=283843" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409587489149.png" style="width:78px;height:78px;" border="0" /></a> </td>
  861 + </tr>
  862 + <tr>
  863 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=283843" target="_blank">众神之光 </a> </td>
  864 + </tr>
  865 + <tr>
  866 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">36万次下载</span> </td>
  867 + </tr>
  868 + <tr>
  869 + <td><a href="http://dl.m.duoku.com/game/72000/72121/20140829204025_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  870 + </tr>
  871 + </table>
  872 + </li>
  873 +
  874 + <li class="content-6" >
  875 + <table >
  876 + <tr>
  877 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=284495" target="_blank"><img src="http://y1.cnliveimg.com:8080/picture/cnlive/public/1409846440370.png" style="width:78px;height:78px;" border="0" /></a> </td>
  878 + </tr>
  879 + <tr>
  880 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=284495" target="_blank">群雄割据 </a> </td>
  881 + </tr>
  882 + <tr>
  883 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">71万次下载</span> </td>
  884 + </tr>
  885 + <tr>
  886 + <td><a href="http://dl.m.duoku.com/game/72000/72163/20140904172024_DuoKu.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  887 + </tr>
  888 + </table>
  889 + </li>
  890 +
  891 + <li class="content-6" >
  892 + <table >
  893 + <tr>
  894 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415479" target="_blank"><img src="http://yweb3.cnliveimg.com/img/cnlive/public/141127170346292_122.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  895 + </tr>
  896 + <tr>
  897 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415479" target="_blank">兔子围堵战 </a> </td>
  898 + </tr>
  899 + <tr>
  900 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">70万次下载</span> </td>
  901 + </tr>
  902 + <tr>
  903 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/27/141127170510204_433.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  904 + </tr>
  905 + </table>
  906 + </li>
  907 +
  908 + <li class="content-6" >
  909 + <table >
  910 + <tr>
  911 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415490" target="_blank"><img src="http://yweb0.cnliveimg.com/img/cnlive/public/141127170821446_983.jpg" style="width:78px;height:78px;" border="0" /></a> </td>
  912 + </tr>
  913 + <tr>
  914 + <td ><a href="http://www.ikol.cn/yxzq/view1.html?id=415490" target="_blank">音符消除 </a> </td>
  915 + </tr>
  916 + <tr>
  917 + <td><span style="color:#d0d0d0;font-family:'微软雅黑','宋体';font-size:12px;">93万次下载</span> </td>
  918 + </tr>
  919 + <tr>
  920 + <td><a href="http://media4.cnlive.com:8080/icms/file/2014/11/27/141127170949132_019.apk" ><img src="http://y1.cnliveimg.com:8080/icms/game/images/down-1.gif" border="0" /></a> </td>
  921 + </tr>
  922 + </table>
  923 + </li>
  924 +
  925 + </ul>
  926 + </td>
  927 + </tr>
  928 + </table></td>
  929 + </tr>
  930 + </table>
  931 +
  932 +</div>
  933 +
  934 +
  935 +
  936 +
  937 +</div>
  938 + </td>
  939 + </tr>
  940 + </tbody>
  941 + </table>
  942 + </td>
  943 + </tr>
  944 +
  945 + </table>
  946 + </td>
  947 + </tr>
  948 +
  949 + </table>
  950 + <!-- 右侧-- -->
  951 +
  952 +<script>
  953 + function tabChange(id) {
  954 + if (id=='tab_1') {
  955 + $("#tab_2").css("display","none");
  956 + $("#tab_1").css("display","block");
  957 + } else {
  958 + $("#tab_1").css("display","none");
  959 + $("#tab_2").css("display","block");
  960 + }
  961 + }
  962 +
  963 +</script>
  964 +
  965 +<table border="0" cellspacing="0" cellpadding="0" class="content-10a" align="left" >
  966 + <tr>
  967 +
  968 + <td>
  969 +
  970 + <table class="content-25">
  971 + <tr>
  972 + <td class="content-29">
  973 + <ul>
  974 + <li>
  975 + <a href="javascript:tabChange('tab_1')">排行</a>
  976 + </li>
  977 + <li>
  978 + <a href="javascript:tabChange('tab_2')">下载排行</a>
  979 + </li>
  980 + </ul>
  981 + </td>
  982 + </tr>
  983 + <tr>
  984 + <td class="content-32" >
  985 + <div id="tab_1">
  986 + <div id="menucontainer2" >
  987 +
  988 +
  989 +
  990 +
  991 +
  992 +
  993 +
  994 +
  995 +<div>
  996 +<table cellspacing="15" >
  997 +<tbody>
  998 +
  999 + <tr>
  1000 + <td class="content-31"><p>1</p></td>
  1001 + <td><h2 class="h2"><a href="http://sxzg.vods1.cnlive.com/82/games/base.apk" target="_blank">泡泡消除</a></h2></td>
  1002 + </tr>
  1003 +
  1004 +
  1005 + <tr>
  1006 + <td class="content-31"><p>2</p></td>
  1007 + <td><h2 class="h2"><a href="http://sxzg.vods1.cnlive.com/82/games/leiting.apk" target="_blank">雷霆战机</a></h2></td>
  1008 + </tr>
  1009 +
  1010 +
  1011 + <tr>
  1012 + <td class="content-31"><p>3</p></td>
  1013 + <td><h2 class="h2"><a href="http://sxzg.vods1.cnlive.com/82/games/mofa.apk" target="_blank">魔法消除</a></h2></td>
  1014 + </tr>
  1015 +
  1016 +
  1017 + <tr>
  1018 + <td class="content-31-1"><p>4</p></td>
  1019 + <td><h2 class="h2"><a href="http://sxzg.vods1.cnlive.com/82/games/monv.apk" target="_blank">魔女酷跑</a></h2></td>
  1020 + </tr>
  1021 +
  1022 +
  1023 + <tr>
  1024 + <td class="content-31-1"><p>5</p></td>
  1025 + <td><h2 class="h2"><a href="http://sxzg.vods1.cnlive.com/82/games/zhanshen.apk" target="_blank">战神机甲出击</a></h2></td>
  1026 + </tr>
  1027 +
  1028 +
  1029 + <tr>
  1030 + <td class="content-31-1"><p>6</p></td>
  1031 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=407801" target="_blank">小呀小飞机</a></h2></td>
  1032 + </tr>
  1033 +
  1034 +
  1035 + <tr>
  1036 + <td class="content-31-1"><p>7</p></td>
  1037 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=413288" target="_blank">宇宙大碰撞</a></h2></td>
  1038 + </tr>
  1039 +
  1040 +
  1041 + <tr>
  1042 + <td class="content-31-1"><p>8</p></td>
  1043 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=415490" target="_blank">音符消除</a></h2></td>
  1044 + </tr>
  1045 +
  1046 +
  1047 +</tbody>
  1048 +</table>
  1049 +</div>
  1050 +
  1051 +
  1052 +
  1053 +
  1054 +</div>
  1055 + </div>
  1056 + <div id="tab_2" style="display:none;">
  1057 + <div id="menucontainer2_1" >
  1058 +
  1059 +
  1060 +
  1061 +
  1062 +
  1063 +
  1064 +
  1065 +
  1066 +<div>
  1067 +<table cellspacing="15" >
  1068 +<tbody>
  1069 +
  1070 + <tr>
  1071 + <td class="content-31"><p>1</p></td>
  1072 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=417186" target="_blank">奇缘连萌</a></h2></td>
  1073 + </tr>
  1074 +
  1075 + <tr>
  1076 + <td class="content-31"><p>2</p></td>
  1077 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=416602" target="_blank">萌宠爱跳跃</a></h2></td>
  1078 + </tr>
  1079 +
  1080 + <tr>
  1081 + <td class="content-31"><p>3</p></td>
  1082 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=415893" target="_blank">豪门德州扑克</a></h2></td>
  1083 + </tr>
  1084 +
  1085 + <tr>
  1086 + <td class="content-31-1"><p>4</p></td>
  1087 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=413425" target="_blank">布偶大逃亡</a></h2></td>
  1088 + </tr>
  1089 +
  1090 + <tr>
  1091 + <td class="content-31-1"><p>5</p></td>
  1092 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=415490" target="_blank">音符消除</a></h2></td>
  1093 + </tr>
  1094 +
  1095 + <tr>
  1096 + <td class="content-31-1"><p>6</p></td>
  1097 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=415479" target="_blank">兔子围堵战</a></h2></td>
  1098 + </tr>
  1099 +
  1100 + <tr>
  1101 + <td class="content-31-1"><p>7</p></td>
  1102 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=415491" target="_blank">银河空战</a></h2></td>
  1103 + </tr>
  1104 +
  1105 + <tr>
  1106 + <td class="content-31-1"><p>8</p></td>
  1107 + <td><h2 class="h2"><a href="http://www.ikol.cn/yxzq/view1.html?id=415894" target="_blank">萌喵斗地主</a></h2></td>
  1108 + </tr>
  1109 +
  1110 +</tbody>
  1111 +</table>
  1112 +</div>
  1113 +
  1114 +
  1115 +
  1116 +
  1117 +</div>
  1118 + </div>
  1119 + </td>
  1120 + </tr>
  1121 +</table>
  1122 + </td>
  1123 + </tr>
  1124 + <tr>
  1125 + <td>
  1126 + <div>
  1127 + <div id="menucontainer3" >
  1128 +
  1129 +
  1130 +
  1131 +
  1132 +
  1133 +
  1134 +
  1135 +
  1136 +<table cellspacing="0" cellpadding="0" border="0" class="content-25">
  1137 + <tbody><tr>
  1138 + <td class="content-10" colspan="2"><img src="http://y1.cnliveimg.com:8080/icms/game/images/content-1.gif"> 活动专区</td>
  1139 + </tr>
  1140 + <tr>
  1141 + <td>
  1142 + <table>
  1143 + <tbody>
  1144 +
  1145 + <tr>
  1146 + <td class="content-26"><a href="http://www.ikol.cn/yxzq/view1.html?id=415491" target="_blank"><img width="60" height="54" src="http://yweb0.cnliveimg.com/img/cnlive/public/141127171157374_570.jpg"></a></td>
  1147 + <td><h1 class="h1"><a target="_blank" href="http://www.ikol.cn/yxzq/view1.html?id=415491">银河空战</a></h1>
  1148 + <p class="p">《银河空战》是一款射击类的游戏,精致的游戏画面</p></td>
  1149 + </tr>
  1150 +
  1151 + </tbody>
  1152 + </table></td>
  1153 + </tr>
  1154 + <tr>
  1155 + <td align="center"><img src="http://y1.cnliveimg.com:8080/icms/game/images/huodong-2.gif"></td>
  1156 + </tr>
  1157 + <tr>
  1158 + <td><table>
  1159 + <tbody><tr>
  1160 + <td class="content-28">
  1161 + <ul>
  1162 +
  1163 + <li><a target="_blank" href="http://www.ikol.cn/yxzq/view1.html?id=415490">音符消除</a> </li>
  1164 +
  1165 + <li><a target="_blank" href="http://www.ikol.cn/yxzq/view1.html?id=419347">佰果连萌</a> </li>
  1166 +
  1167 + </ul></td>
  1168 + </tr>
  1169 + </tbody></table></td>
  1170 + </tr>
  1171 + </tbody></table>
  1172 +
  1173 +
  1174 +
  1175 +
  1176 +
  1177 +</div>
  1178 + </div>
  1179 + </td>
  1180 + </tr>
  1181 + </table>
  1182 +</div>
  1183 + <script type="text/javascript" src="http://yweb3.cnliveimg.com/js/page_stadig.min.js"></script>
  1184 +</body>
  1185 +</html>
  1186 +
  1187 +
  1188 +
  1189 +
  1190 +
... ...
src/main/resources/templates/page/content.html
... ... @@ -53,10 +53,9 @@
53 53  
54 54  
55 55 <div class="btn-group margin-bottom pull-right">
56   -<!-- <button type="button" class="btn btn-success btn-sm margin-r-5 filter " -->
57   -<!-- th:onclick="'javascript:daochu()'" value="" id="excel"> -->
58   -<!-- 导出excel -->
59   -<!-- </button> -->
  56 + <button type="button" class="btn btn-success btn-sm margin-r-5 filter "
  57 + th:onclick="'javascript:daochu()'" value="" id="excel">导出excel
  58 + </button>
60 59 <button type="button" class="btn btn-sm margin-r-5 filter "
61 60 th:onclick="'javascript:quanbu()'" value="" id="quanbu">
62 61 全部
... ... @@ -562,6 +561,13 @@
562 561 }
563 562 })
564 563 }
  564 +
  565 +
  566 + //导出excel
  567 + function daochu() {
  568 + var param = location.search;
  569 + window.location.href = "/content/excel" + param;
  570 + }
565 571 </script>
566 572 <!-- 模态框(Modal) -->
567 573 <div class="modal fade" id="msgModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
... ...
src/main/resources/templates/page/live.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +
  4 +<head th:replace="../templates/common/head::head">
  5 +<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  6 +<!-- <link rel="stylesheet" -->
  7 +<!-- href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" -->
  8 +<!-- integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" -->
  9 +<!-- crossorigin="anonymous"> -->
  10 +</head>
  11 +
  12 +<body class="hold-transition skin-blue sidebar-mini">
  13 +
  14 + <div class="wrapper">
  15 + <div th:replace="../templates/common/frame::frame"></div>
  16 + <div class="content-wrapper" style="min-height: 788px;">
  17 + <section class="content-header">
  18 + <h1>直播审核</h1>
  19 + <ol class="breadcrumb">
  20 + <li><a href="/"><i class="fa fa-dashboard"></i> 首页</a></li>
  21 + <li class="active"><a href="/live/page?activity_status=1">直播审核</a></li>
  22 + </ol>
  23 + </section>
  24 + <section class="content">
  25 + <div class="row">
  26 + <div class="col-md-12">
  27 + <div class="box box-info">
  28 + <div class="box-body">
  29 + <div class="clearfix">
  30 + <div class="btn-group margin-bottom" id="hide_select_area_2">
  31 + <div class="cb-toolbar">
  32 + <input type="checkbox" id="select_all">全选
  33 + </div>
  34 + <div class="btn-group margin-bottom pull-left" style=>
  35 + <input type="hidden" name="state" id="state" value="" />
  36 +
  37 + <button type="button"
  38 + class="btn btn-success btn-sm margin-r-5 action claim"
  39 + value="2" data="claim" id="claim" data-toggle="modal"
  40 + data-target="#modal" onclick="receive(0);">认领</button>
  41 + <button type="button"
  42 + class="btn btn-success btn-sm margin-r-5 action claim"
  43 + value="2" data="claim10" id="claim10" data-toggle="modal"
  44 + data-target="#modal" onclick="receive(10);">认领10条</button>
  45 + <button type="button"
  46 + class="btn btn-success btn-sm margin-r-5 action claim"
  47 + value="2" data="claim100" id="claim100"
  48 + data-toggle="modal" data-target="#modal" onclick="receive(100);">认领100条</button>
  49 + </div>
  50 + </div>
  51 +
  52 + <div class="btn-group margin-bottom pull-right">
  53 + <button type="button" class="btn btn-success btn-sm margin-r-5 filter "
  54 + th:onclick="'javascript:daochu()'" value="" id="excel">导出excel
  55 + </button>
  56 + <button type="button" class="btn btn-sm margin-r-5 filter >"
  57 + value="0" th:onclick="'javascript:quanbu()'" id="quanbu">全部</button>
  58 + <button type="button"
  59 + class="btn btn-sm margin-r-5 filter " id="daishen" value="0">全部待领
  60 + </button>
  61 + <button type="button"
  62 + class="btn btn-sm margin-r-5 filter " id="Mydaishen" value="0">我的待审
  63 + </button>
  64 + <button type="button"
  65 + class="btn btn-sm margin-r-5 filter " id="yishen" value="1">我的已审
  66 + </button>
  67 + <button type="button"
  68 + class="btn btn-primary btn-sm margin-r-5" id="query"
  69 + onclick="openOrClose('forms')">
  70 + 查询 <span id="a_up">▼</span><span id="a_down">▲</span>
  71 + </button>
  72 + </div>
  73 +
  74 + </div>
  75 +
  76 + <div class="clearfix">
  77 + <div class="form-horizontal form-group-sm" id="forms"
  78 + style="display: none;">
  79 + <div class="btn-group margin-bottom col-md-7"
  80 + style="padding: 0;">
  81 + <div class="col-md-3" style="padding: 0">
  82 + <label for="activity_id" class="control-label cb-toolbar">直播id:</label>
  83 + <div class="col-sm-7" style="padding: 0;">
  84 + <input class="form-control" name="activity_id" type="text"
  85 + id="activity_id">
  86 + </div>
  87 + </div>
  88 + <div class="col-md-3" style="padding: 0">
  89 + <label for="activity_name" class="control-label cb-toolbar">直播名称:</label>
  90 + <div class="col-sm-7" style="padding: 0;">
  91 + <input class="form-control col-sm-2" name="activity_name"
  92 + type="text" id="activity_name">
  93 + </div>
  94 + </div>
  95 +
  96 +<!-- <div class="col-md-3" style="padding: 0"> -->
  97 +<!-- <label for="is_hot" class="control-label cb-toolbar">是否热点:</label> -->
  98 +<!-- <div class="col-sm-6" style="padding: 0;"> -->
  99 +<!-- <select class="form-control" id="is_hot" name="is_hot"><option -->
  100 +<!-- value="0">全部</option> -->
  101 +<!-- <option value="2">是</option> -->
  102 +<!-- <option value="1">否</option></select> -->
  103 +<!-- </div> -->
  104 +<!-- </div> -->
  105 +
  106 + <div class="col-md-6" style="padding: 0;width: 25%;" th:if="${session.sessionUser.spid==0}">
  107 + <label for="sp_desc" class="control-label cb-toolbar">sp简称:</label>
  108 + <div class="col-sm-8" style="padding: 0;">
  109 + <input class="form-control" type="text" value="" id="sp_desc">
  110 + </div>
  111 + </div>
  112 + <div class="col-md-3" style="padding: 0">
  113 + <label for="activity_status"
  114 + class="control-label cb-toolbar">直播状态:</label>
  115 + <div class="col-sm-6" style="padding: 0;">
  116 + <select class="form-control col-sm-2" id="activity_status"
  117 + name="activity_status"><option value="">全部</option>
  118 + <option value="3">等待直播</option>
  119 + <option value="1">正在直播</option>
  120 + <option value="2">直播结束</option>
  121 + <option value="0">直播撤销</option>
  122 + <option value="4">直播下线</option></select>
  123 + </div>
  124 + </div>
  125 +
  126 + </div>
  127 +
  128 + <div class="btn-group margin-bottom col-md-5 pull-right"
  129 + style="padding: 0">
  130 + <div class="col-md-11" style="width: 88%; padding: 0;">
  131 + <div class="col-md-5" style="padding: 0">
  132 + <label for="start_date" class="control-label cb-toolbar">时间:</label>
  133 + <div class='input-group col-md-9 date'>
  134 + <input class="form-control date" name="start_date"
  135 + type="text" id="start_date"> <span
  136 + class="input-group-addon"> <span
  137 + class="glyphicon glyphicon-calendar"></span>
  138 + </span>
  139 + </div>
  140 + </div>
  141 + <div class="col-md-5" style="padding: 0">
  142 + <label for="start_date" class="control-label cb-toolbar">至</label>
  143 + <div class='input-group col-md-9 date'>
  144 + <input class="form-control date" name="end_date"
  145 + type="text" id="end_date"> <span class="input-group-addon">
  146 + <span class="glyphicon glyphicon-calendar"></span>
  147 + </span>
  148 + </div>
  149 + </div>
  150 + </div>
  151 +
  152 +<!-- <div class="col-md-1 text-center" -->
  153 +<!-- style="width: 12%; padding: 0"> -->
  154 +<!-- <button type="button" class="btn btn-primary btn-sm" -->
  155 +<!-- id="live_query" onclick="query()">查 询</button> -->
  156 +<!-- </div> -->
  157 +
  158 + </div>
  159 +
  160 + <div class="btn-group margin-bottom col-md-6"
  161 + style="padding: 0;"></div>
  162 + </div>
  163 + </div>
  164 +
  165 + <div class="modal fade common" id="modal_remove" tabindex="-1"
  166 + role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  167 + <div class="modal-dialog">
  168 + <div class="modal-content">
  169 + <div class="modal-header">
  170 + <button type="button" class="close" data-dismiss="modal"
  171 + aria-hidden="true">&times;</button>
  172 + <h4 class="modal-title" id="modal_title"></h4>
  173 + </div>
  174 + <div class="modal-body">
  175 + <div class="alert alert-danger" id="window_msg"
  176 + style="display: none;">
  177 + <p></p>
  178 + </div>
  179 + <div id="contents"></div>
  180 + </div>
  181 + </div>
  182 + </div>
  183 + </div>
  184 +
  185 + <div class="fixed-table-container" style="padding-bottom: 0px;">
  186 + <div class="fixed-table-body">
  187 + <table id="table">
  188 + <div>
  189 + <div class="col-xs-2 col-lg-2 margin-bottom action" th:each="live : ${livePage.list}">
  190 + <a href="#" class="thumbnail margin-bottom"
  191 + th:onclick="@{'preview(\''+${live.rtmp_url}+'\')'}">
  192 + <div style="text-align: center">
  193 + <img th:src='@{${live.cover_img_url}}'
  194 + alt="封面图" width="134px" height="100px">
  195 + </div>
  196 +
  197 + </a>
  198 + <div>
  199 + <p style="line-height: 0">
  200 + <span class="text-success" th:text="${live.shenhe_state==2?'已审':'待审'}">待审</span>
  201 + <span class="text-primary pull-right"
  202 + th:text="${#dates.format(live.activity_start_time, 'yyyy-MM-dd HH:mm:ss')}">2019-06-26 14:56:33</span>
  203 + </p>
  204 + <p class="info-box-text">
  205 + <input type="checkbox" class="check" th:value="${live.id}" name="btSelectItem">
  206 + <span th:text="${live.activity_name}">国新办举行新时代人民满意公务员代表中外记者见面会</span>
  207 + </p>
  208 + <p class="info-box-text">
  209 + <span style="float: left;">id:<span th:text="${live.id}">10225</span></span>
  210 + <span style="float: right;"> <span style="margin-left: 40px;">&nbsp;&nbsp;
  211 + <span th:if="${live.activity_status==0}">直播撤销</span>
  212 + <span th:if="${live.activity_status==1}">正在直播</span>
  213 + <span th:if="${live.activity_status==2}">直播完成</span>
  214 + <span th:if="${live.activity_status==3}">等待直播</span>
  215 + <span th:if="${live.activity_status==4}">直播下线</span>
  216 + </span><span></span>
  217 + </span>
  218 + </p>
  219 + <p class="info-box-text">
  220 + <span style="float: left;"> <span>SP简称:</span>
  221 + </span> <span style="float: right;"> <span th:text="${live.spid_desc}">国新客户端</span>
  222 + </span>
  223 + </p>
  224 +
  225 + </div>
  226 + <div class="width-10p pull-left padding-r-5"
  227 + th:if="${live.shenhe_state==0}">
  228 + <button class="btn btn-primary btn-xs btn-block" title="认领"
  229 + th:onclick="'applyReceive('+${live.id}+')'" data-field="action"
  230 + data-formatter="actionFormatter" data-events="actionEvents"
  231 + data-toggle="tooltip" data-placement="top" value="2"
  232 + th:id="'claim_'+${live.id}">
  233 + <i class="fa fa-hand-pointer-o"></i>
  234 + </button>
  235 + </div>
  236 +
  237 + <div class="width-10p pull-left padding-r-5">
  238 + <button class="btn btn-success btn-xs btn-block "
  239 + title="查看"
  240 + th:onclick="'detail('+${live.id}+')'"
  241 + data-toggle="tooltip" data-placement="top"
  242 + >
  243 + <i class="fa fa-eye"></i>
  244 + </button>
  245 + </div>
  246 + <div class="width-10p pull-left padding-r-5"
  247 + th:if="${live.activity_status!=4 and live.activity_status!=2 and live.shenhe_state==1 and session.sessionUser.userId==live.auditor}">
  248 + <button class="btn btn-danger btn-xs btn-block"
  249 + title="退领" th:onclick="'applyRetReceive('+${live.id}+')'"
  250 + data-toggle="tooltip" data-placement="top">
  251 + <i class="fa fa-mail-reply"></i>
  252 + </button>
  253 + </div>
  254 +
  255 +<!-- <div class="width-10p pull-right padding-r-5"> -->
  256 +<!-- <button class="btn btn-primary btn-xs btn-block" -->
  257 +<!-- disabled="disabled" title="日志" -->
  258 +<!-- onclick="reject('38_09471046aa7f4835a734f1d6208249fc')"> -->
  259 +<!-- <i class="fa fa-bullseye"></i> -->
  260 +<!-- </button> -->
  261 +<!-- </div> -->
  262 +
  263 + <div class="width-10p pull-right padding-r-5">
  264 + <button class="btn btn-danger btn-xs btn-block" title="下线直播"
  265 + th:onclick="'offline_live('+${live.id}+')'" data-toggle="tooltip"
  266 + data-placement="top"
  267 + data-target="#modal">
  268 + <i class="fa fa-arrow-down"></i>
  269 + </button>
  270 + </div>
  271 +
  272 + <div class="width-10p pull-right padding-r-5">
  273 + <button class="btn btn-danger btn-xs btn-block" title="下线主播"
  274 + th:onclick="'offline_anchor('+${live.id}+')'" data-toggle="tooltip"
  275 + data-placement="top">
  276 + <i class="glyphicon glyphicon-user"></i>
  277 + </button>
  278 + </div>
  279 + </div>
  280 +
  281 + </div>
  282 + </table>
  283 + </div>
  284 +
  285 +
  286 + <!--分页处理-->
  287 + <div class="fixed-table-pagination" style="display: block;">
  288 + <div class="pull-left pagination-detail"><span class="pagination-info"
  289 + th:text="'共 '+${livePage.total}+' 条记录'">共 0 条记录</span>
  290 + </div>
  291 + <div class="pull-right pagination">
  292 + <ul class="pagination" th:if="${livePage.pages>1}">
  293 + <li class="page-pre"><a th:href="'javascript:fanye(1);'">‹‹</a></li>
  294 + <li class="page-pre" th:if="${!livePage.isFirstPage}"><a
  295 + th:onclick="'javascript:fanye(\''+${livePage.pageNum-1}+'\');'">‹</a>
  296 + </li>
  297 +
  298 + <li class="page-number" th:if="${livePage.pageNum-3>=1}"><a
  299 + th:onclick="'javascript:fanye(\''+${livePage.pageNum-3}+'\');'"
  300 + th:text="${livePage.pageNum-3}">2</a></li>
  301 + <li class="page-number" th:if="${livePage.pageNum-2>=1}"><a
  302 + th:onclick="'javascript:fanye(\''+${livePage.pageNum-2}+'\');'"
  303 + th:text="${livePage.pageNum-2}">2</a></li>
  304 + <li class="page-number" th:if="${livePage.pageNum-1>=1}"><a
  305 + th:onclick="'javascript:fanye(\''+${livePage.pageNum-1}+'\');'"
  306 + th:text="${livePage.pageNum-1}">2</a></li>
  307 + <li class="page-number active"><a href="javaScript:void(0);"
  308 + th:text="${livePage.pageNum}">2</a></li>
  309 + <li class="page-number" th:if="${livePage.pageNum+1<=livePage.pages}"><a
  310 + th:onclick="'javascript:fanye(\''+${livePage.pageNum+1}+'\');'"
  311 + th:text="${livePage.pageNum+1}">2</a></li>
  312 + <li class="page-number" th:if="${livePage.pageNum+2<=livePage.pages}"><a
  313 + th:onclick="'javascript:fanye(\''+${livePage.pageNum+2}+'\');'"
  314 + th:text="${livePage.pageNum+2}">2</a></li>
  315 + <li class="page-number" th:if="${livePage.pageNum+3<=livePage.pages}"><a
  316 + th:onclick="'javascript:fanye(\''+${livePage.pageNum+3}+'\');'"
  317 + th:text="${livePage.pageNum+3}">2</a></li>
  318 +
  319 + <li class="page-next" th:if="${!livePage.isLastPage}"><a
  320 + th:onclick="'javascript:fanye(\''+${livePage.pageNum+1}+'\');'">›</a>
  321 + </li>
  322 + <li class="page-next"><a
  323 + th:onclick="'javascript:fanye(\''+${livePage.pages}+'\');'">››</a>
  324 + </li>
  325 + </ul>
  326 + </div>
  327 + </div>
  328 + </div>
  329 + </div>
  330 + </div>
  331 + </div>
  332 + </div>
  333 + </section>
  334 + <!-- /.content -->
  335 +<!-- <div class="box-footer"> -->
  336 +<!-- <div class="pull-right"></div> -->
  337 +<!-- </div> -->
  338 + </div>
  339 + <!-- /.content-wrapper -->
  340 +
  341 + <!-- 预览对话框 -->
  342 + <div class="modal fade" id="preview" role="dialog" aria-hidden="true">
  343 + <div class="modal-dialog" style="width: 670px;">
  344 + <div class="modal-content">
  345 + <div class="modal-header">
  346 + <button type="button" class="close" data-dismiss="modal"
  347 + aria-hidden="true">&times;</button>
  348 + <h5 class="modal-title" id="myModalLabel">视频预览</h5>
  349 + </div>
  350 + <div class="modal-body">
  351 + <embed name="cnlive" width="640" height="450" id="cnlive" volume="0"
  352 + src="http://data.cnlive.com/export/UuidPlayerMain.swf"
  353 + flashVars="" type="application/x-shockwave-flash" wmode="window"
  354 + quility="high" allowscriptaccess="always" allowfullscreen="true">
  355 + </div>
  356 + </div>
  357 + <!-- /.modal-content -->
  358 + </div>
  359 + <!-- /.modal -->
  360 + </div>
  361 +
  362 + <!-- 确认直播下线,直播下线 -->
  363 + <div class="modal" id="action_note" role="dialog"
  364 + aria-labelledby="myModalLabel">
  365 + <div class="modal-dialog">
  366 + <div class="modal-content">
  367 + <div class="modal-header">
  368 + <h4 class="modal-title">温馨提示</h4>
  369 + </div>
  370 + <div class="modal-body" id="msg2"></div>
  371 +
  372 + <div class="modal-footer">
  373 + <button type="button" class="btn btn-default "
  374 + data-dismiss="modal" id="action_note_no">取消</button>
  375 + <button type="button" class="btn btn-primary" id="action_note_yes">确认</button>
  376 + <input type="hidden" name="action_note_type" id="action_note_type"
  377 + value="" /> <input type="hidden" name="action_note_id"
  378 + id="action_note_id" value="" />
  379 + </div>
  380 + </div>
  381 + </div>
  382 + </div>
  383 + <!-- 模态框(Modal) -->
  384 + <div class="modal fade" id="msgModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  385 + <div class="modal-dialog">
  386 + <div class="modal-content" style="margin-top: 30%;">
  387 + <div class="modal-header">
  388 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  389 + <h4 class="modal-title" id="myModalLabel">审核意见</h4>
  390 + </div>
  391 + <div class="modal-body">
  392 + <div class="form-group" style="margin-bottom: 0;">
  393 + <textarea id="reviewMsg" style="width: 100%;height: 80px;"></textarea>
  394 + </div>
  395 + <div class="form-group">
  396 + </div>
  397 + </div>
  398 + <div class="modal-footer">
  399 + <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  400 + <button type="button" class="btn btn-primary" onclick="javascript:repulseSubmit();">提交</button>
  401 + </div>
  402 + </div><!-- /.modal-content -->
  403 + </div><!-- /.modal-dialog -->
  404 + </div>
  405 + <!-- /.modal -->
  406 +
  407 +
  408 + <script th:inline="javascript">
  409 +
  410 + var activity_id ="";//直播id
  411 + var activity_name = "";//直播名称
  412 + var is_hot ="";//是否热点
  413 + var activity_status ="";//直播状态
  414 + var start_date ="";//开始时间
  415 + var end_date = "";//结束时间
  416 + var sp_desc = "";
  417 + var count = "";
  418 + var shenhe_state ="";//审核状态
  419 +
  420 + function query(){
  421 + activity_id = $("#activity_id").val();
  422 + activity_name = $("#activity_name").val();
  423 + activity_status = $("#activity_status").val();
  424 + start_date = $("#start_date").val();
  425 + end_date = $("#end_date").val();
  426 + var spId=[[${session.sessionUser.spid}]];
  427 + if(spId==0){
  428 + sp_desc = $("#sp_desc").val();
  429 + }
  430 + window.location.href = "/live/page?activity_status="+activity_status+"&activity_id=" + activity_id + "&start_date=" + start_date + "&end_date=" + end_date + "&activity_name=" + activity_name + "&sp_desc=" + sp_desc+"&pageSize="+count+"&shenhe_state="+shenhe_state;
  431 + }
  432 +
  433 + //全部
  434 + function quanbu() {
  435 + query();
  436 + }
  437 +
  438 + //全部待领
  439 + $('#daishen').click(function () {
  440 + shenhe_state=0;
  441 + query();
  442 + });
  443 + //我的待审核
  444 + $('#Mydaishen').click(function () {
  445 + shenhe_state=1;
  446 + query();
  447 + });
  448 + //我的已审核
  449 + $('#yishen').click(function () {
  450 + shenhe_state=2;
  451 + query();
  452 + });
  453 +
  454 +
  455 + /*全选的操作*/
  456 + $('#select_all').click(function () {
  457 + if ($("[name=btSelectItem]:checkbox:not(:checked)").length > 0) {
  458 + $("#select_all").prop('checked', true);
  459 + $("[name=btSelectItem]:checkbox").each(function () {
  460 + $(this).prop('checked', true);
  461 + });
  462 + } else {
  463 + $("#select_all").prop('checked', false);
  464 + $("[name=btSelectItem]:checkbox").each(function () {
  465 + $(this).prop('checked', false);
  466 + });
  467 + }
  468 + });
  469 +
  470 + /**
  471 + * 认领
  472 + */
  473 + function receive(n) {
  474 + if (n > 0) {
  475 + applyReceiveNum(n);
  476 + } else {
  477 + var rows = $("[name=btSelectItem]:checkbox:checked");
  478 + if (rows.length > 0) {
  479 + var ids = "";
  480 + rows.each(function (i, e) {
  481 + ids = ids + "," + e.value;
  482 + })
  483 + ids = ids.substring(1);
  484 + applyReceive(ids);
  485 + } else {
  486 + alert("请选择要认领的内容!");
  487 + }
  488 + }
  489 + }
  490 +
  491 + //认领选中请求
  492 + function applyReceive(ids) {
  493 + $.post("/live/receive?ids=" + ids, function (data) {
  494 + if (data.errorCode == 0) {
  495 + alert(data.errorMessage);
  496 + location.href = location.href;
  497 + } else {
  498 + alert(data.errorMessage);
  499 + }
  500 + })
  501 + }
  502 +
  503 + //认领多条请求
  504 + function applyReceiveNum(num) {
  505 + $.post("/live/receive?num=" + num, function (data) {
  506 + if (data.errorCode == 0) {
  507 + alert(data.errorMessage);
  508 + location.href = location.href;
  509 + } else {
  510 + alert(data.errorMessage);
  511 + }
  512 + })
  513 + }
  514 +
  515 + //退领选中内容
  516 + function retReceive() {
  517 + var rows = $("[name=btSelectItem]:checkbox:checked");
  518 + if (rows.length > 0) {
  519 + var r = confirm("您确定退领选中的" + rows.length + "条内容吗?");
  520 + if (r == true) {
  521 + var ids = "";
  522 + rows.each(function (i, e) {
  523 + ids = ids + "," + e.value;
  524 + })
  525 + ids = ids.substring(1);
  526 + applyRetReceive(ids);
  527 + }
  528 + } else {
  529 + alert("没有选中的数据!");
  530 + }
  531 + }
  532 +
  533 + //退领
  534 + function applyRetReceive(ids) {
  535 + $.post("/live/retReceive?ids=" + ids, function (data) {
  536 + if (data.errorCode == 0) {
  537 + alert(data.errorMessage);
  538 + location.href = location.href;
  539 + } else {
  540 + alert(data.errorMessage);
  541 + }
  542 + })
  543 + }
  544 +
  545 + //导出excel
  546 + function daochu() {
  547 + var param = location.search;
  548 + window.location.href = "/live/excel" + param;
  549 + }
  550 +
  551 + //详情页
  552 + function detail(ids) {
  553 + location.href ="/live/details?id=" + ids;
  554 + }
  555 +
  556 + /*下线主播*/
  557 + function offline_anchor(id) {
  558 + $('#msg2').html('您确认下线该主播吗?');
  559 + $('#action_note').show();
  560 + $("#action_note_type").val('offline_anchor');
  561 + $("#action_note_id").val(id);
  562 + }
  563 +
  564 + /*下线直播*/
  565 + function offline_live(id) {
  566 +
  567 + $('#msg2').html('您确认下线该直播吗?');
  568 + $('#action_note').show();
  569 + $("#action_note_type").val('offline_live');
  570 + $("#action_note_id").val(id);
  571 + $('#modal_remove').attr('claim', 'claim');
  572 + }
  573 +
  574 + $("#action_note_no").click(function() {
  575 + $("#action_note").hide();
  576 + });
  577 +
  578 + $("#action_note_yes").click(function() {
  579 + $("#action_note").hide();
  580 + $('#msgModal').modal('show');
  581 + })
  582 +
  583 + //提交打回
  584 + function repulseSubmit() {
  585 + var action_note_type = $("#action_note_type").val();
  586 + var ids = $("#action_note_id").val();
  587 + var msg = $("#reviewMsg").val();
  588 + if (action_note_type == 'offline_live') {
  589 + $.post("/live/repulse?ids=" + ids + "&msg=" + msg, function (data) {
  590 + if (data.errorCode == 0) {
  591 + alert(data.errorMessage);
  592 + location.href = location.href;
  593 + } else {
  594 + alert(data.errorMessage);
  595 + }
  596 + })
  597 + } else if (action_note_type == 'offline_anchor') {
  598 + $.post("/anchor/repulse?ids=" + ids + "&msg=" + msg, function (data) {
  599 + if (data.errorCode == 0) {
  600 + alert(data.errorMessage);
  601 + location.href = location.href;
  602 + } else {
  603 + alert(data.errorMessage);
  604 + }
  605 + })
  606 + } else if (action_note_type = 'reject') {
  607 +
  608 + }
  609 + }
  610 +
  611 +
  612 + /*时间插件*/
  613 + $('.date').datetimepicker({
  614 + format : 'YYYY-MM-DD HH:mm',
  615 + locale : "zh-CN",
  616 + toolbarPlacement : 'bottom',
  617 + showClear : true,
  618 + });
  619 +
  620 +
  621 + $('#a_down').hide();
  622 +
  623 + /*查询样式*/
  624 + function openOrClose(id_name_str) {
  625 + var id_name = '#' + id_name_str;
  626 + if ($(id_name).css('display') == 'block') {
  627 + $(id_name).slideUp(350);
  628 + $('#a_up').show();
  629 + $('#a_down').hide();
  630 + } else {
  631 + $(id_name).slideDown(350);
  632 + $('#a_up').hide();
  633 + $('#a_down').show();
  634 + }
  635 + }
  636 +
  637 +
  638 + $(function () {
  639 + //按钮颜色设置
  640 + var shenhe_state = [[${param.shenhe_state}]] ? [[${param.shenhe_state}]][0] : null;
  641 + var stateIsNull = $.trim(shenhe_state) == "";
  642 + if (stateIsNull ) {
  643 + $("#quanbu").addClass("btn-info");
  644 + } else if (shenhe_state == '0' ) {
  645 + $("#daishen").addClass("btn-warning");
  646 + } else if (shenhe_state == '1' ) {
  647 + $("#Mydaishen").addClass("btn-success");
  648 + } else if ( shenhe_state == '2') {
  649 + $("#yishen").addClass("btn-danger");
  650 + }
  651 +
  652 + })
  653 +
  654 + //翻页函数
  655 + function fanye(page) {
  656 + var param = location.search;
  657 + if (param.indexOf("page=") != -1) {
  658 + if (page < 10) {
  659 + param = param.substring(1, param.length - 7);
  660 + } else if (page < 100) {
  661 + param = param.substring(1, param.length - 8);
  662 + } else if (page < 1000) {
  663 + param = param.substring(1, param.length - 9);
  664 + } else if (page < 10000) {
  665 + param = param.substring(1, param.length - 10);
  666 + }
  667 + window.location.href = "/live/page?" + param + "&page=" + page;
  668 + } else {
  669 + param = param.substring(1, param.length);
  670 + window.location.href = "/live/page?" + param + "&page=" + page;
  671 + }
  672 + }
  673 +
  674 +
  675 +
  676 +
  677 +
  678 + //弹窗播放操作 ---预览,审核,查看,退领
  679 + function preview(url) {
  680 + $('#cnlive').attr('flashVars',
  681 + "hasBorder=false&appid=82_irej0pbo53&type=live&model=2&videoURL="
  682 + + url);
  683 + $('#preview').modal('show');
  684 + $('.close').click(function() {
  685 + $('.preview').attr('display', 'none');
  686 + })
  687 + }
  688 +
  689 + </script>
  690 + <script>
  691 + $(function() {
  692 + $("[data-toggle='tooltip']").tooltip();
  693 + });
  694 + </script>
  695 +
  696 +
  697 +
  698 + <footer th:replace="../templates/common/foot::foot"></footer>
  699 +
  700 +
  701 + <!-- Control Sidebar -->
  702 + <aside class="control-sidebar control-sidebar-dark">
  703 + <!-- Create the tabs -->
  704 + <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
  705 + <li><a href="#control-sidebar-home-tab" data-toggle="tab"><i
  706 + class="fa fa-home"></i></a></li>
  707 + <li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i
  708 + class="fa fa-gears"></i></a></li>
  709 + </ul>
  710 + <!-- Tab panes -->
  711 + <div class="tab-content">
  712 + <!-- Home tab content -->
  713 + <div class="tab-pane" id="control-sidebar-home-tab"></div>
  714 + <!-- /.tab-pane -->
  715 + </div>
  716 + </aside>
  717 + <!-- /.control-sidebar -->
  718 + <!-- Add the sidebar's background. This div must be placed
  719 + immediately after the control sidebar -->
  720 + <div class="control-sidebar-bg"></div>
  721 +
  722 + </div>
  723 + <!-- ./wrapper -->
  724 +</body>
  725 +
  726 +
  727 +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
  728 +<script type="text/javascript">
  729 + $('div.alert').not('.alert-danger').delay(3000).slideUp(300);
  730 +</script>
  731 +
  732 +<!-- AdminLTE App -->
  733 +<script src="./../../static/js/app.min.js"></script>
  734 +<!-- AdminLTE for demo purposes -->
  735 +<script src="./../../static/js/sidebar.js"></script>
  736 +
  737 +</html>
... ...
src/main/resources/templates/page/liveDetail.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<head th:replace="../templates/common/head::head"></head>
  4 +
  5 +<body class="skin-blue sidebar-mini">
  6 +
  7 +<div class="wrapper">
  8 +
  9 + <div th:replace="../templates/common/frame::frame"></div>
  10 +
  11 + <div class="content-wrapper" style="min-height: 788px;">
  12 + <section class="content-header">
  13 + <h1>
  14 + 直播详情
  15 + </h1>
  16 + <ol class="breadcrumb">
  17 + <li> 首页</li>
  18 + <li class="active">直播审核</li>
  19 + </ol>
  20 + </section>
  21 +
  22 + <section class="content">
  23 + <div class="row">
  24 + <div class="col-xs-12">
  25 + <div class="box box-info">
  26 + <div class="box-body form-horizontal">
  27 + <div id="tabContents" class="tab-content">
  28 +
  29 + <div id="tabHome" class="tab-pane fade in active padding-t-15 ">
  30 + <!-- 左侧列表展示 -->
  31 + <div class="col-sm-6">
  32 + <div class="form-group">
  33 + <label for="live_title" class="control-label col-sm-2">直播id:</label>
  34 + <div class="col-sm-10">
  35 + <h5 style=" font-weight: bold;" th:text="${live.id}"></h5>
  36 + </div>
  37 + </div>
  38 + <div class="form-group">
  39 + <label for="live_title" class="control-label col-sm-2">直播标题:</label>
  40 + <div class="col-sm-10">
  41 + <h5 style="font-size:1.5em; font-weight: bold;"
  42 + th:text="${live.activity_name}"></h5>
  43 + </div>
  44 + </div>
  45 + <div class="form-group ">
  46 + <label for="username" class="control-label col-sm-2">直播状态:</label>
  47 + <div class="col-sm-10 ">
  48 + <h5 class="status" th:if="${live.activity_status==0}">直播撤销</h5>
  49 + <h5 class="status" th:if="${live.activity_status==1}">正在直播</h5>
  50 + <h5 class="status" th:if="${live.activity_status==2}">直播完成</h5>
  51 + <h5 class="status" th:if="${live.activity_status==3}">等待直播</h5>
  52 + <h5 class="status" th:if="${live.activity_status==4}">直播下线</h5>
  53 + </div>
  54 + </div>
  55 + <div class="form-group" >
  56 + <label for="claimed_at" class="control-label col-sm-2">直播开始时间:</label>
  57 + <div class="col-sm-10">
  58 + <h5 th:text="${#dates.format(live.activity_start_time, 'yyyy-MM-dd HH:mm:ss')}">
  59 + 2018-11-29 10:04:35</h5>
  60 + </div>
  61 + </div>
  62 + <div class="form-group" >
  63 + <label for="claimed_at" class="control-label col-sm-2">直播结束时间:</label>
  64 + <div class="col-sm-10">
  65 + <h5 th:text="${#dates.format(live.activity_end_time, 'yyyy-MM-dd HH:mm:ss')}">
  66 + 2018-11-29 10:04:35</h5>
  67 + </div>
  68 + </div>
  69 + <div class="form-group">
  70 + <label for="live_title" class="control-label col-sm-2">直播简介</label>
  71 + <div class="col-sm-8">
  72 + <h5 style="font-size:1.5em; "
  73 + th:text="${live.activity_intro}"></h5>
  74 + </div>
  75 + </div>
  76 + <div class="form-group" th:if="${live.activity_status== 4 or live.activity_status== 2}">
  77 + <div class="col-sm-10">
  78 + <div class="modal-body" id="videoBox" style="height:400px">
  79 + <script type="text/javascript"
  80 + src="//resweb.cnliveimg.com/sites/common/cnlive_video.min.js"></script>
  81 + <script th:inline="javascript">
  82 + var videoUrl = [[${live.playback_url}]];
  83 + var cover = [[${live.cover_img_url}]];
  84 + cnliveVideo.init({
  85 + "eleId": "videoBox",
  86 + "width": 450,//指定放入指定ID元素内
  87 + "height": 400,
  88 + "model": 3,
  89 + "autoplay": 1,
  90 + "currRate": 3,
  91 + "cover": cover,
  92 + "videoUrl_3": videoUrl
  93 + });
  94 + </script>
  95 +
  96 + </div>
  97 + </div>
  98 + </div>
  99 +
  100 + <div class="form-group" th:if="${live.activity_status!= 4 and live.activity_status!= 2}">
  101 + <div class="col-sm-10">
  102 + <div class="modal-body" style="height: 400px">
  103 + <embed name="cnlive" width="450" height="100%" id="cnlive"
  104 + src="http://data.cnlive.com/export/UuidPlayerMain.swf"
  105 + th:flashVars="@{'hasBorder=false&appid=82_irej0pbo53&type=live&model=2&videoURL='+${live.rtmp_url}}"
  106 + type="application/x-shockwave-flash" wmode="window"
  107 + quility="high" allowscriptaccess="always"
  108 + allowfullscreen="true">
  109 + </div>
  110 +
  111 + </div>
  112 + </div>
  113 +
  114 +
  115 + </div>
  116 +
  117 + <!-- 右侧列表展示 -->
  118 + <div class="col-sm-6">
  119 + <div class="form-group">
  120 + <label for="program_id" class="control-label col-sm-2">直播活动id:</label>
  121 + <div class="col-sm-10">
  122 + <h5 th:text="${live.activity_id}">604</h5>
  123 + </div>
  124 + </div>
  125 + <div class="form-group">
  126 + <label for="live_user_id" class="control-label col-sm-2">sp_id:</label>
  127 + <div class="col-sm-10">
  128 + <h5 th:text="${live.sp_id}">821403</h5>
  129 + </div>
  130 + </div>
  131 +
  132 +
  133 + <div class="form-group">
  134 + <label for="activity_id" class="control-label col-sm-2">sp昵称:</label>
  135 + <div class="col-sm-10">
  136 + <h5 th:text="${live.spid_desc}">
  137 + 769:video:comets:604_902dce9848ac482eb433f15c2cb0c401#3025</h5>
  138 + </div>
  139 + </div>
  140 +
  141 +
  142 + <div class="form-group">
  143 + <label for="live_user_avatar"
  144 + class="control-label col-sm-2">封面图:</label>
  145 + <div class="col-sm-10">
  146 + <h5><img width="160px" th:src="@{${live.cover_img_url}}"
  147 + alt=""></h5>
  148 +
  149 + </div>
  150 + </div>
  151 + <div class="form-group">
  152 + <label for="live_user_name" class="control-label col-sm-2">审核类型:</label>
  153 + <div class="col-sm-10">
  154 + <h5 class="status" th:if="${live.shenhe_type==1}">免审</h5>
  155 + <h5 class="status" th:if="${live.shenhe_type==2}">机审</h5>
  156 + <h5 class="status" th:if="${live.shenhe_type==3}">人工审</h5>
  157 + </div>
  158 + </div>
  159 +
  160 + <div class="form-group">
  161 + <label for="live_user_ip"
  162 + class="control-label col-sm-2">审核状态:</label>
  163 + <div class="col-sm-10">
  164 + <h5 class="status" th:if="${live.shenhe_state==0}">未认领</h5>
  165 + <h5 class="status" th:if="${live.shenhe_state==1}">已认领</h5>
  166 + <h5 class="status" th:if="${live.shenhe_state==2}">已审核</h5>
  167 + </div>
  168 + </div>
  169 +
  170 + <div class="form-group" th:if="${live.shenhe_state!=0}">
  171 + <label for="app_id" class="control-label col-sm-2">审核员:</label>
  172 + <div class="col-sm-10">
  173 + <h5 th:text="${live.updater}">769_jetj7bq525</h5>
  174 + </div>
  175 + </div>
  176 +
  177 + <div class="form-group">
  178 + <label for="msg" class="control-label col-sm-2">审核信息:</label>
  179 + <div class="col-sm-8">
  180 + <textarea class="form-control" name="msg" cols="50" rows="8"
  181 + id="msg" th:text="${live.shenhe_msg}">审核信息</textarea>
  182 + </div>
  183 + </div>
  184 +
  185 + <div class="form-group" >
  186 + <label for="claimed_at" class="control-label col-sm-2">创建时间:</label>
  187 + <div class="col-sm-10">
  188 + <h5 th:text="${#dates.format(live.created_at, 'yyyy-MM-dd HH:mm:ss')}">
  189 + 2018-11-29 10:04:35</h5>
  190 + </div>
  191 + </div>
  192 + <div class="form-group" >
  193 + <label for="claimed_at" class="control-label col-sm-2">最后更新时间:</label>
  194 + <div class="col-sm-10">
  195 + <h5 th:text="${#dates.format(live.updated_at, 'yyyy-MM-dd HH:mm:ss')}">
  196 + 2018-11-29 10:04:35</h5>
  197 + </div>
  198 + </div>
  199 + </div>
  200 +
  201 + </div>
  202 + <hr>
  203 + </div>
  204 +
  205 + <div class="form-group">
  206 + <input type="text" hidden="hidden" id="live_id" th:value="${live.id}">
  207 + </div>
  208 +
  209 +
  210 + <div class="box-footer">
  211 +<!-- <div class="col-sm-5"> -->
  212 +<!-- <button type="button" class="btn btn-danger pull-right" onclick="live(2);">拒 绝 -->
  213 +<!-- </button> -->
  214 +<!-- </div> -->
  215 +
  216 +<!-- <div class="col-sm-1" style="margin-right:26px;"> -->
  217 +<!-- <button type="button" class="btn btn-primary pull-right" onclick="live(1);">通 过 -->
  218 +<!-- </button> -->
  219 +<!-- </div> -->
  220 +
  221 + <div class="col-sm-6">
  222 + <button type="button" class="btn btn-info pull-right"
  223 + onclick="self.location=document.referrer;">返回列表
  224 + </button>
  225 + </div>
  226 + </div>
  227 + <script th:inline="javascript">
  228 + var liveId = [[${live.id}]];
  229 +
  230 + //审核操作,status=1为通过
  231 + function live(status) {
  232 + if (status == 1) {
  233 + $.post("/live/pass?ids=" + liveId, function (data) {
  234 + if (data.errorCode == 0) {
  235 + //location.href = history.back();
  236 + self.location = document.referrer;
  237 + } else {
  238 + alert(data.errorMessage);
  239 + }
  240 + })
  241 + } else {
  242 + $.post("/live/refuse?ids=" + liveId, function (data) {
  243 + if (data.errorCode == 0) {
  244 + //location.href = history.back();
  245 + self.location = document.referrer;
  246 + } else {
  247 + alert(data.errorMessage);
  248 + }
  249 + })
  250 + }
  251 + }
  252 +
  253 + </script>
  254 +
  255 + </div>
  256 + </div>
  257 + </div>
  258 + </div>
  259 +
  260 + </section>
  261 + </div>
  262 +
  263 +
  264 + <footer th:replace="../templates/common/foot::foot"></footer>
  265 +
  266 + <div class="control-sidebar-bg" style="position: fixed; height: auto;"></div>
  267 +
  268 +</div><!-- ./wrapper -->
  269 +
  270 +<script type="text/javascript">
  271 + $('div.alert').not('.alert-danger').delay(3000).slideUp(300);
  272 +</script>
  273 +
  274 +<script src="../../static/js/app.min.js"></script>
  275 +<script src="../../static/js/sidebar.js"></script>
  276 +
  277 +
  278 +</body>
  279 +</html>
0 280 \ No newline at end of file
... ...
src/main/resources/templates/page/liveDetail2.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<head th:replace="../templates/common/head::head"></head>
  4 +<body class="hold-transition skin-blue sidebar-mini">
  5 +
  6 + <div class="wrapper">
  7 + <div th:replace="../templates/common/frame::frame"></div>
  8 +
  9 +<div class="content-wrapper">
  10 + <section class="content-header">
  11 + <h1> 直播详情</h1>
  12 + <ol class="breadcrumb">
  13 + <li><a href="/"><i class="fa fa-dashboard"></i> 首页</a></li>
  14 + <li class="active"><a href="/live">直播审核</a></li>
  15 + </ol>
  16 + </section>
  17 +
  18 + <section class="content">
  19 + <div class="row">
  20 + <div class="col-xs-12">
  21 + <div class="box box-info">
  22 + <div class="box-body form-horizontal">
  23 +
  24 + <div class="form-group" style="margin-bottom: 6px;">
  25 + <label for="activity_id" class="control-label col-sm-2">直播id:</label>
  26 + <div class="col-sm-2">
  27 + <h5>223_b9c79a010ff84d07a34bfec67d3b3f1a</h5>
  28 + </div>
  29 +
  30 + <label for="channel_name" class="control-label col-sm-2">主播昵称:</label>
  31 + <div class="col-sm-2">
  32 + <h5>非凡娱乐1-无logo</h5>
  33 + </div>
  34 +
  35 + <label for="partner_id" class="control-label col-sm-2">spId简称:</label>
  36 + <div class="col-sm-2">
  37 + <h5>非凡娱乐</h5>
  38 + </div>
  39 +
  40 + <label for="mark" class="control-label col-sm-2">是否白名单:</label>
  41 + <div class="col-sm-2">
  42 + <h5>否</h5>
  43 + </div>
  44 +
  45 + <label for="frame_start_time" class="control-label col-sm-2">直播开始时间:</label>
  46 + <div class="col-sm-2">
  47 + <h5 id="frame_start_time">2019-07-09 12:31:29</h5>
  48 + </div>
  49 +
  50 + <label for="frame_end_time" class="control-label col-sm-2">直播结束时间:</label>
  51 + <div class="col-sm-2">
  52 + <h5 id="frame_end_time">2019-07-09 13:23:18</h5>
  53 + </div>
  54 +</div>
  55 +<hr>
  56 +
  57 +<div id="tabContents" class="tab-content">
  58 +
  59 + <div id="tabHome" class="tab-pane fade in active padding-t-15 ">
  60 + <div class="col-sm-5">
  61 + <div class="form-group" style="margin-bottom: 6px;">
  62 + <label for="activity_status" class="control-label col-sm-3">直播状态:</label>
  63 + <div class="col-sm-9 ">
  64 + <h5>已结束--直播时长:0天 0小时51分49秒 </h5>
  65 + </div>
  66 + </div>
  67 + <hr>
  68 + <div class="form-group">
  69 + <label for="cover_img_url1" class="control-label col-sm-3">封面图:</label>
  70 + <div class="col-sm-9 popover-options">
  71 + <a href="Javascript:void(0);" title=""
  72 + data-container="body" data-toggle="popover"
  73 + data-content='<img src="http://yweb0.cnliveimg.com/bc/223/2019/0709/1562636742524_6367.jpg" width="400px" alt="封面图">'>
  74 + <img src='http://yweb0.cnliveimg.com/bc/223/2019/0709/1562636742524_6367.jpg' width="160px" alt="封面图">
  75 + </a>
  76 +
  77 + </div>
  78 + </div>
  79 + <div class="form-group" style="margin-bottom: 6px;">
  80 + <label for="activity_name" class="control-label col-sm-3">直播标题:</label>
  81 + <div class="col-sm-9">
  82 + <h5 style="font-size:1.5em; font-weight: bold;">黄龄新专辑分享会 无logo</h5>
  83 + </div>
  84 + </div>
  85 + <div class="form-group intro" style="margin-bottom: 6px;">
  86 + <label for="activity_intro" class="control-label col-sm-3">直播简介:</label>
  87 + <div class="col-sm-9">
  88 + <h5 style="font-size:1.0em; font-weight: bold;"> </h5>
  89 + </div>
  90 + </div>
  91 + <hr>
  92 + <div class="form-group">
  93 + <div class="col-sm-12">
  94 + <div class="modal-body" style="height:480px">
  95 + <embed name="cnlive" width="100%" height="100%" id="cnlive"
  96 + src="http://data.cnlive.com/export/UuidPlayerMain.swf"
  97 + flashVars="hasBorder=false&appid=82_irej0pbo53&type=live&model=2&videoURL=rtmp://ffyl.rtmps2.cnlive.com/live-ffyl-223/223_ffyl1-nologo"
  98 + type="application/x-shockwave-flash" wmode="window" quility="high"
  99 + allowscriptaccess="always" allowfullscreen="true">
  100 + </div>
  101 +
  102 + </div>
  103 + </div>
  104 + <br>
  105 + <hr>
  106 + <div class="form-group ">
  107 + <label for="state" class="control-label col-sm-3">审核状态:</label>
  108 + <div class="col-sm-9 ">
  109 + <h5 id="state">已审 通过</h5>
  110 + </div>
  111 + </div>
  112 +
  113 + <div class="form-group ">
  114 + <label for="state" class="control-label col-sm-3">审核日志:</label>
  115 + <div class="col-sm-9 ">
  116 + <h5 id="state">1:系统审核;2019-07-09 13:25:01;点播审核可信,系统自动审核
  117 +<br/>
  118 +2:系统审核;2019-07-09 13:23:18;通过:直播未认领正常结束
  119 +<br/></h5>
  120 + </div>
  121 + </div>
  122 +
  123 + <div class="form-group ">
  124 + <label for="auditor" class="control-label col-sm-3">审核员:</label>
  125 + <div class="col-sm-9 ">
  126 + <h5 id="auditor">系统审核 </h5>
  127 + </div>
  128 + </div>
  129 +
  130 + <div class="form-group">
  131 + <label class='control-label col-sm-3' for="attr_tags">常用审核意见:</label>
  132 + <div class="col-sm-9">
  133 + <select class="form-control select2" multiple="multiple"
  134 + data-placeholder="选择常用审核意见,可多选" name="attr_tags[]" id="attr_tags"
  135 + style="width: 100%;">
  136 + </select>
  137 + </div>
  138 + </div><!-- /.form-group -->
  139 +
  140 + <div class="form-group">
  141 + <label for="msg" class="control-label col-sm-3">审核备注</label>
  142 + <div class="col-sm-9">
  143 + <textarea name="msg" id="msg" cols="5" rows="5"
  144 + class="form-control"></textarea>
  145 + </div>
  146 + </div>
  147 + </div>
  148 + <!--可无视-->
  149 +<style>
  150 + .small_pic {
  151 + display: inline-block;
  152 + width: 25%;
  153 + height: 25%;
  154 + /*height: 120px;*/
  155 + text-align: center;
  156 + zoom: 1;
  157 + margin: 10px 0;
  158 + }
  159 +
  160 + .small_pic a {
  161 + width: 120%;
  162 + display: -webkit-flex;
  163 + display: flex;
  164 + align-items: center;
  165 + justify-content: center;
  166 + border: 1px solid #ccc;
  167 + background: #fff;
  168 + margin: 0 auto;
  169 + }
  170 +
  171 + .small_pic img {
  172 + max-width: 100%;
  173 + /*height: 100px;*/
  174 + /*height: 80%;*/
  175 + }
  176 +
  177 +</style>
  178 +<style type="text/css">
  179 + /*自适应圆角投影*/
  180 + .round_shade_box {
  181 + width: 1px;
  182 + height: 1px;
  183 + font-size: 0;
  184 + display: none;
  185 + _background: white;
  186 + _border: 1px solid #cccccc;
  187 + }
  188 +
  189 + .round_shade_top {
  190 + margin: 0 12px 0 10px;
  191 + background: url(image/zxx_round_shade.png) repeat-x -20px -40px;
  192 + _background: white;
  193 + zoom: 1;
  194 + }
  195 +
  196 + .round_shade_topleft {
  197 + width: 11px;
  198 + height: 10px;
  199 + background: url(image/zxx_round_shade.png) no-repeat 0 0;
  200 + _background: none;
  201 + float: left;
  202 + margin-left: -11px;
  203 + position: relative;
  204 + }
  205 +
  206 + .round_shade_topright {
  207 + width: 12px;
  208 + height: 10px;
  209 + background: url(image/zxx_round_shade.png) no-repeat -29px 0;
  210 + _background: none;
  211 + float: right;
  212 + margin-right: -12px;
  213 + position: relative;
  214 + }
  215 +
  216 + .round_shade_centerleft {
  217 + background: url(image/zxx_round_shade.png) no-repeat 0 -1580px;
  218 + _background: none;
  219 + }
  220 +
  221 + .round_shade_centerright {
  222 + background: url(image/zxx_round_shade.png) no-repeat right -80px;
  223 + _background: none;
  224 + }
  225 +
  226 + .round_shade_center {
  227 + display: -webkit-flex;
  228 + display: flex;
  229 + align-items: center;
  230 + justify-content: center;
  231 + border: 1px solid #ccc;
  232 + background: #fff;
  233 + margin: 0 auto;
  234 + /*margin-top: 443px;*/
  235 + max-height: 1200px;
  236 + }
  237 +
  238 + .round_shade_bottom {
  239 + margin: 0 12px 0 11px;
  240 + background: url(image/zxx_round_shade.png) repeat-x -20px bottom;
  241 + _background: white;
  242 + zoom: 1;
  243 + }
  244 +
  245 + .round_shade_bottomleft {
  246 + width: 11px;
  247 + height: 10px;
  248 + background: url(image/zxx_round_shade.png) no-repeat 0 -30px;
  249 + _background: none;
  250 + float: left;
  251 + margin-left: -11px;
  252 + position: relative;
  253 + }
  254 +
  255 + .round_shade_bottomright {
  256 + width: 12px;
  257 + height: 10px;
  258 + background: url(image/zxx_round_shade.png) no-repeat -29px -30px;
  259 + _background: none;
  260 + float: right;
  261 + margin-right: -12px;
  262 + position: relative;
  263 + }
  264 +
  265 + .round_shade_top:after, .round_shade_bottom:after, .zxx_zoom_box:after {
  266 + display: block;
  267 + content: ".";
  268 + height: 0;
  269 + clear: both;
  270 + overflow: hidden;
  271 + visibility: hidden;
  272 + }
  273 +
  274 + .round_box_close {
  275 + padding: 6px 6px;
  276 + font-size: 10px;
  277 + color: #ffffff;
  278 + text-decoration: none;
  279 + border: 1px solid #cccccc;
  280 + -moz-border-radius: 4px;
  281 + -webkit-border-radius: 4px;
  282 + background: #000000;
  283 + opacity: 0.8;
  284 + filter: alpha(opacity=80);
  285 + position: absolute;
  286 + right: 0px;
  287 + top: 50px;
  288 + }
  289 +
  290 + .round_box_close:hover {
  291 + opacity: 0.95;
  292 + filter: alpha(opacity=95);
  293 + }
  294 +
  295 + /*自适应圆角投影结束*/
  296 + .zxx_zoom_left {
  297 + width: 45%;
  298 + float: left;
  299 + margin-top: 20px;
  300 + border-right: 1px solid #dddddd;
  301 + }
  302 +
  303 + .zxx_zoom_left h4 {
  304 + margin: 5px 0px 15px 5px;
  305 + font-size: 1.1em;
  306 + }
  307 +
  308 + /*.small_pic {*/
  309 + /*display: inline-block;*/
  310 + /*width: 10%;*/
  311 + /*height: 150px;*/
  312 + /*font-size: 1px;*/
  313 + /*text-align: center;*/
  314 + /**display: inline;*/
  315 + /*zoom: 1;*/
  316 + /*vertical-align: middle;*/
  317 + /*}*/
  318 +
  319 + /*.small_pic img {*/
  320 + /*padding: 3px;*/
  321 + /*background: #ffffff;*/
  322 + /*border: 1px solid #cccccc;*/
  323 + /*vertical-align: middle;*/
  324 + /*}*/
  325 +
  326 + .zxx_zoom_right {
  327 + width: 50%;
  328 + float: left;
  329 + margin-top: 20px;
  330 + padding-left: 2%;
  331 + }
  332 +
  333 + .zxx_zoom_right h4 {
  334 + margin: 5px 0px;
  335 + font-size: 1.1em;
  336 + }
  337 +
  338 + .zxx_zoom_right p.zxx_zoom_word {
  339 + line-height: 1.5;
  340 + font-size: 1.05em;
  341 + letter-spacing: 1px;
  342 + margin: 0 0 35px;
  343 + padding-top: 5px;
  344 + }
  345 +</style>
  346 +
  347 +<!--js放大的效果-->
  348 +<script type="text/javascript" src="http://shenhe.cnlive.com/enlarge/js/content_zoom.js"></script>
  349 +
  350 +<!--点击放大的div-->
  351 + <div class="pic_big" id="pic_287" style="display:none;"><img
  352 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000287"/>
  353 + </div>
  354 + <div class="pic_big" id="pic_288" style="display:none;"><img
  355 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000288"/>
  356 + </div>
  357 + <div class="pic_big" id="pic_289" style="display:none;"><img
  358 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000289"/>
  359 + </div>
  360 + <div class="pic_big" id="pic_290" style="display:none;"><img
  361 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000290"/>
  362 + </div>
  363 + <div class="pic_big" id="pic_291" style="display:none;"><img
  364 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000291"/>
  365 + </div>
  366 + <div class="pic_big" id="pic_292" style="display:none;"><img
  367 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000292"/>
  368 + </div>
  369 + <div class="pic_big" id="pic_293" style="display:none;"><img
  370 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000293"/>
  371 + </div>
  372 + <div class="pic_big" id="pic_294" style="display:none;"><img
  373 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000294"/>
  374 + </div>
  375 + <div class="pic_big" id="pic_295" style="display:none;"><img
  376 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000295"/>
  377 + </div>
  378 + <div class="pic_big" id="pic_296" style="display:none;"><img
  379 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000296"/>
  380 + </div>
  381 + <div class="pic_big" id="pic_297" style="display:none;"><img
  382 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000297"/>
  383 + </div>
  384 + <div class="pic_big" id="pic_298" style="display:none;"><img
  385 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000298"/>
  386 + </div>
  387 + <div class="pic_big" id="pic_299" style="display:none;"><img
  388 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000299"/>
  389 + </div>
  390 + <div class="pic_big" id="pic_300" style="display:none;"><img
  391 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000300"/>
  392 + </div>
  393 + <div class="pic_big" id="pic_301" style="display:none;"><img
  394 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000301"/>
  395 + </div>
  396 + <div class="pic_big" id="pic_302" style="display:none;"><img
  397 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000302"/>
  398 + </div>
  399 + <div class="pic_big" id="pic_303" style="display:none;"><img
  400 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000303"/>
  401 + </div>
  402 + <div class="pic_big" id="pic_304" style="display:none;"><img
  403 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000304"/>
  404 + </div>
  405 + <div class="pic_big" id="pic_305" style="display:none;"><img
  406 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000305"/>
  407 + </div>
  408 + <div class="pic_big" id="pic_306" style="display:none;"><img
  409 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000306"/>
  410 + </div>
  411 + <div class="pic_big" id="pic_307" style="display:none;"><img
  412 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000307"/>
  413 + </div>
  414 + <div class="pic_big" id="pic_308" style="display:none;"><img
  415 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000308"/>
  416 + </div>
  417 + <div class="pic_big" id="pic_309" style="display:none;"><img
  418 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000309"/>
  419 + </div>
  420 + <div class="pic_big" id="pic_310" style="display:none;"><img
  421 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000310"/>
  422 + </div>
  423 +
  424 +<div class="form-group col-sm-7" id="flush" onload="load()">
  425 + <div class="col-sm-12" id="flush">
  426 + &nbsp;&nbsp;&nbsp;&nbsp;
  427 + <button type="button" class="btn btn-success btn-xs margin-r-5"
  428 + value="" style="font-size:1.5em;">刷新
  429 + </button>
  430 + <span style="font-size:1.5em;">抽帧截图 &nbsp;(默认最新24张,友情提示:点击图片放大,再次点击恢复):</span>
  431 + <br/>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:red; font-size:1.5em;">(注:直播抽帧隔2h重置一下抽帧)</span>
  432 + </div>
  433 +
  434 +</div>
  435 +<!--抽帧做页面刷新操作 ---每30秒刷新一次 start-->
  436 +
  437 +<div class="form-group col-sm-7" onload="load()">
  438 +
  439 + <div class="col-sm-12" id="add_pic">
  440 + <!--点击放大的div-->
  441 + <div class="pic_big" id="pic_287" style="display:none;"><img
  442 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000287"/>
  443 + </div>
  444 + <div class="pic_big" id="pic_288" style="display:none;"><img
  445 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000288"/>
  446 + </div>
  447 + <div class="pic_big" id="pic_289" style="display:none;"><img
  448 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000289"/>
  449 + </div>
  450 + <div class="pic_big" id="pic_290" style="display:none;"><img
  451 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000290"/>
  452 + </div>
  453 + <div class="pic_big" id="pic_291" style="display:none;"><img
  454 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000291"/>
  455 + </div>
  456 + <div class="pic_big" id="pic_292" style="display:none;"><img
  457 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000292"/>
  458 + </div>
  459 + <div class="pic_big" id="pic_293" style="display:none;"><img
  460 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000293"/>
  461 + </div>
  462 + <div class="pic_big" id="pic_294" style="display:none;"><img
  463 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000294"/>
  464 + </div>
  465 + <div class="pic_big" id="pic_295" style="display:none;"><img
  466 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000295"/>
  467 + </div>
  468 + <div class="pic_big" id="pic_296" style="display:none;"><img
  469 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000296"/>
  470 + </div>
  471 + <div class="pic_big" id="pic_297" style="display:none;"><img
  472 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000297"/>
  473 + </div>
  474 + <div class="pic_big" id="pic_298" style="display:none;"><img
  475 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000298"/>
  476 + </div>
  477 + <div class="pic_big" id="pic_299" style="display:none;"><img
  478 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000299"/>
  479 + </div>
  480 + <div class="pic_big" id="pic_300" style="display:none;"><img
  481 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000300"/>
  482 + </div>
  483 + <div class="pic_big" id="pic_301" style="display:none;"><img
  484 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000301"/>
  485 + </div>
  486 + <div class="pic_big" id="pic_302" style="display:none;"><img
  487 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000302"/>
  488 + </div>
  489 + <div class="pic_big" id="pic_303" style="display:none;"><img
  490 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000303"/>
  491 + </div>
  492 + <div class="pic_big" id="pic_304" style="display:none;"><img
  493 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000304"/>
  494 + </div>
  495 + <div class="pic_big" id="pic_305" style="display:none;"><img
  496 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000305"/>
  497 + </div>
  498 + <div class="pic_big" id="pic_306" style="display:none;"><img
  499 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000306"/>
  500 + </div>
  501 + <div class="pic_big" id="pic_307" style="display:none;"><img
  502 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000307"/>
  503 + </div>
  504 + <div class="pic_big" id="pic_308" style="display:none;"><img
  505 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000308"/>
  506 + </div>
  507 + <div class="pic_big" id="pic_309" style="display:none;"><img
  508 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000309"/>
  509 + </div>
  510 + <div class="pic_big" id="pic_310" style="display:none;"><img
  511 + src="http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000310"/>
  512 + </div>
  513 + <div style="float:left;" class="small_pic">
  514 + <div style="padding:5px;" class="col-sm-8">
  515 + <a href="#pic_310">
  516 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000310_s' alt="抽帧图">
  517 + </a>
  518 + <p>13:23:08</p>
  519 + </div>
  520 + </div>
  521 + <div style="float:left;" class="small_pic">
  522 + <div style="padding:5px;" class="col-sm-8">
  523 + <a href="#pic_309">
  524 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000309_s' alt="抽帧图">
  525 + </a>
  526 + <p>13:22:58</p>
  527 + </div>
  528 + </div>
  529 + <div style="float:left;" class="small_pic">
  530 + <div style="padding:5px;" class="col-sm-8">
  531 + <a href="#pic_308">
  532 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000308_s' alt="抽帧图">
  533 + </a>
  534 + <p>13:22:48</p>
  535 + </div>
  536 + </div>
  537 + <div style="float:left;" class="small_pic">
  538 + <div style="padding:5px;" class="col-sm-8">
  539 + <a href="#pic_307">
  540 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000307_s' alt="抽帧图">
  541 + </a>
  542 + <p>13:22:38</p>
  543 + </div>
  544 + </div>
  545 + <div style="float:left;" class="small_pic">
  546 + <div style="padding:5px;" class="col-sm-8">
  547 + <a href="#pic_306">
  548 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000306_s' alt="抽帧图">
  549 + </a>
  550 + <p>13:22:28</p>
  551 + </div>
  552 + </div>
  553 + <div style="float:left;" class="small_pic">
  554 + <div style="padding:5px;" class="col-sm-8">
  555 + <a href="#pic_305">
  556 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000305_s' alt="抽帧图">
  557 + </a>
  558 + <p>13:22:18</p>
  559 + </div>
  560 + </div>
  561 + <div style="float:left;" class="small_pic">
  562 + <div style="padding:5px;" class="col-sm-8">
  563 + <a href="#pic_304">
  564 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000304_s' alt="抽帧图">
  565 + </a>
  566 + <p>13:22:08</p>
  567 + </div>
  568 + </div>
  569 + <div style="float:left;" class="small_pic">
  570 + <div style="padding:5px;" class="col-sm-8">
  571 + <a href="#pic_303">
  572 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000303_s' alt="抽帧图">
  573 + </a>
  574 + <p>13:21:58</p>
  575 + </div>
  576 + </div>
  577 + <div style="float:left;" class="small_pic">
  578 + <div style="padding:5px;" class="col-sm-8">
  579 + <a href="#pic_302">
  580 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000302_s' alt="抽帧图">
  581 + </a>
  582 + <p>13:21:48</p>
  583 + </div>
  584 + </div>
  585 + <div style="float:left;" class="small_pic">
  586 + <div style="padding:5px;" class="col-sm-8">
  587 + <a href="#pic_301">
  588 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000301_s' alt="抽帧图">
  589 + </a>
  590 + <p>13:21:38</p>
  591 + </div>
  592 + </div>
  593 + <div style="float:left;" class="small_pic">
  594 + <div style="padding:5px;" class="col-sm-8">
  595 + <a href="#pic_300">
  596 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000300_s' alt="抽帧图">
  597 + </a>
  598 + <p>13:21:28</p>
  599 + </div>
  600 + </div>
  601 + <div style="float:left;" class="small_pic">
  602 + <div style="padding:5px;" class="col-sm-8">
  603 + <a href="#pic_299">
  604 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000299_s' alt="抽帧图">
  605 + </a>
  606 + <p>13:21:18</p>
  607 + </div>
  608 + </div>
  609 + <div style="float:left;" class="small_pic">
  610 + <div style="padding:5px;" class="col-sm-8">
  611 + <a href="#pic_298">
  612 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000298_s' alt="抽帧图">
  613 + </a>
  614 + <p>13:21:08</p>
  615 + </div>
  616 + </div>
  617 + <div style="float:left;" class="small_pic">
  618 + <div style="padding:5px;" class="col-sm-8">
  619 + <a href="#pic_297">
  620 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000297_s' alt="抽帧图">
  621 + </a>
  622 + <p>13:20:58</p>
  623 + </div>
  624 + </div>
  625 + <div style="float:left;" class="small_pic">
  626 + <div style="padding:5px;" class="col-sm-8">
  627 + <a href="#pic_296">
  628 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000296_s' alt="抽帧图">
  629 + </a>
  630 + <p>13:20:48</p>
  631 + </div>
  632 + </div>
  633 + <div style="float:left;" class="small_pic">
  634 + <div style="padding:5px;" class="col-sm-8">
  635 + <a href="#pic_295">
  636 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000295_s' alt="抽帧图">
  637 + </a>
  638 + <p>13:20:38</p>
  639 + </div>
  640 + </div>
  641 + <div style="float:left;" class="small_pic">
  642 + <div style="padding:5px;" class="col-sm-8">
  643 + <a href="#pic_294">
  644 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000294_s' alt="抽帧图">
  645 + </a>
  646 + <p>13:20:28</p>
  647 + </div>
  648 + </div>
  649 + <div style="float:left;" class="small_pic">
  650 + <div style="padding:5px;" class="col-sm-8">
  651 + <a href="#pic_293">
  652 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000293_s' alt="抽帧图">
  653 + </a>
  654 + <p>13:20:18</p>
  655 + </div>
  656 + </div>
  657 + <div style="float:left;" class="small_pic">
  658 + <div style="padding:5px;" class="col-sm-8">
  659 + <a href="#pic_292">
  660 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000292_s' alt="抽帧图">
  661 + </a>
  662 + <p>13:20:08</p>
  663 + </div>
  664 + </div>
  665 + <div style="float:left;" class="small_pic">
  666 + <div style="padding:5px;" class="col-sm-8">
  667 + <a href="#pic_291">
  668 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000291_s' alt="抽帧图">
  669 + </a>
  670 + <p>13:19:58</p>
  671 + </div>
  672 + </div>
  673 + <div style="float:left;" class="small_pic">
  674 + <div style="padding:5px;" class="col-sm-8">
  675 + <a href="#pic_290">
  676 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000290_s' alt="抽帧图">
  677 + </a>
  678 + <p>13:19:48</p>
  679 + </div>
  680 + </div>
  681 + <div style="float:left;" class="small_pic">
  682 + <div style="padding:5px;" class="col-sm-8">
  683 + <a href="#pic_289">
  684 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000289_s' alt="抽帧图">
  685 + </a>
  686 + <p>13:19:38</p>
  687 + </div>
  688 + </div>
  689 + <div style="float:left;" class="small_pic">
  690 + <div style="padding:5px;" class="col-sm-8">
  691 + <a href="#pic_288">
  692 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000288_s' alt="抽帧图">
  693 + </a>
  694 + <p>13:19:28</p>
  695 + </div>
  696 + </div>
  697 + <div style="float:left;" class="small_pic">
  698 + <div style="padding:5px;" class="col-sm-8">
  699 + <a href="#pic_287">
  700 + <img src='http://120.92.200.154/screenshot?id=shenhe-223_b9c79a010ff84d07a34bfec67d3b3f1a&amp;t=000287_s' alt="抽帧图">
  701 + </a>
  702 + <p>13:19:18</p>
  703 + </div>
  704 + </div>
  705 +
  706 + <div class="col-sm-12">
  707 + <span id="more" style="font-size:1.8em; float:left;"><a href="javascript:;">查看全部(共310
  708 + 张)</a></span>
  709 + </div>
  710 + </div>
  711 +
  712 +</div>
  713 +<script>
  714 + $("#flush").click(function () {
  715 + var row_id = $("#live_id").val();
  716 + if (typeof(row_id) == "undefined") {
  717 + return false;
  718 + }
  719 + var time = Date.parse(new Date());
  720 + $.ajax({
  721 + type: 'GET',
  722 + cache: false,
  723 + dataType: "html",
  724 + data: {'_token': 'OPAYyJTsfW7AcH6OGqWNVICiRup24V6nL2mFM9t6', 'time': time, 'row_id': row_id},
  725 + url: '/live/flush_ajax',
  726 + success: function (msg) {
  727 + //eval将字符串转成对象数组
  728 + $("#add_pic").html(msg);
  729 +// var message = eval(msg);
  730 +// if (message['errorCode'] == 0) {
  731 +// }
  732 + },
  733 + error: function (msg) {
  734 + console.log("failed");
  735 + }
  736 + });
  737 + });
  738 +
  739 + /*点击更多加载分页*/
  740 +// $("#more").click(function () {
  741 +// var row_id = $("#live_id").val();
  742 +// if (typeof(row_id) == "undefined") {
  743 +// return false;
  744 +// }
  745 +// var time = Date.parse(new Date());
  746 +// // window.location.href = '/live/more?'+'row_id='+row_id + '&time='+ time;
  747 +// window.open('/live/more?' + 'row_id=' + row_id + '&time=' + time);
  748 +//
  749 +// });
  750 + /*点击放大*/
  751 + $(document).ready(function () {
  752 + $('div.small_pic a').fancyZoom({scaleImg: true, closeOnClick: true});
  753 + $('#zoom_word_1').fancyZoom({width: 400, height: 200});
  754 + $('#zoom_word_2').fancyZoom();
  755 + $('#zoom_flash').fancyZoom();
  756 + });
  757 +
  758 +
  759 +</script>;
  760 + </div>
  761 +</div>
  762 +
  763 +<!--抽帧做页面刷新操作 ---每5分钟刷新一次 end-->
  764 +
  765 +<div class="form-group">
  766 + <input type="text" hidden="hidden" id="live_id" value="10391">
  767 +</div>
  768 +
  769 +<div class="form-group">
  770 + <input type="text" hidden="hidden" id="host" value="shenhe.cnlive.com">
  771 +</div>
  772 +
  773 +<!-- 预览对话框 -->
  774 +<div class="modal fade" id="preview" role="dialog" aria-hidden="true">
  775 + <div class="modal-dialog" style="width: 670px;">
  776 + <div class="modal-content">
  777 + <div class="modal-header">
  778 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
  779 + &times;
  780 + </button>
  781 + <h5 class="modal-title" id="myModalLabel">
  782 + 视频预览
  783 + </h5>
  784 + </div>
  785 + <div class="modal-body">
  786 + <embed name="cnlive" width="640" height="450" id="cnlive"
  787 + src="http://data.cnlive.com/export/UuidPlayerMain.swf"
  788 + flashVars="hasBorder=false&appid=82_irej0pbo53&type=live&model=2&videoURL="
  789 + type="application/x-shockwave-flash" wmode="window" quility="high"
  790 + allowscriptaccess="always" allowfullscreen="true">
  791 + </div>
  792 + </div><!-- /.modal-content -->
  793 + </div><!-- /.modal -->
  794 +</div>
  795 +
  796 +<div class="box-footer">
  797 + <div class="col-sm-4">
  798 + <button type="button" class="btn btn-warning pull-right" onclick="offline_live(10391)">下线直播
  799 + </button>
  800 + </div>
  801 +
  802 + <div class="col-sm-1">
  803 + <button type="button" class="btn btn-warning pull-right" onclick="offline_anchor(10391)">下线主播
  804 + </button>
  805 + </div>
  806 +
  807 + <div class="col-sm-1">
  808 + <button type="button" class="btn btn-primary pull-right" id="back">返回列表</button>
  809 + </div>
  810 +</div>
  811 +
  812 +<!-- 确认弹出框 -->
  813 +<div class="modal" id="action_note" role="dialog" aria-labelledby="myModalLabel">
  814 + <div class="modal-dialog">
  815 + <div class="modal-content">
  816 + <div class="modal-header">
  817 + <button type="button" class="close" data-dismiss="modal"> &times;</button>
  818 + <h4 class="modal-title">温馨提示</h4>
  819 + </div>
  820 + <div class="modal-body" id="msg2"></div>
  821 + <div class="modal-footer">
  822 + <button type="button" class="btn btn-default " data-dismiss="modal" id="action_note_no">取消
  823 + </button>
  824 + <button type="button" class="btn btn-primary" id="action_note_yes">确认</button>
  825 + <input type="hidden" name="action_note_type" id="action_note_type" value=""/>
  826 + <input type="hidden" name="action_note_id" id="action_note_id" value=""/>
  827 + </div>
  828 + </div>
  829 + </div>
  830 +</div>
  831 +
  832 +<!-- Select2 todo xiaohu -->
  833 +<script src="/admin-lte/js/select2/select2.full.min.js"></script>
  834 +<!-- Select2 todo xiaohu -->
  835 +<link rel="stylesheet" href="/admin-lte/css/select2/select2.min.css" type="text/css"/>
  836 +<link rel="stylesheet" href="/admin-lte/css/AdminLTE.min.css" type="text/css"/>
  837 +
  838 +<script>
  839 + //列表中的操作
  840 + function preview(url) {
  841 + $('#cnlive').attr('flashVars', "hasBorder=false&appid=82_irej0pbo53&type=live&model=2&videoURL=" + url);
  842 + $('#preview').modal('show');
  843 + $('.close').click(function () {
  844 + $('.preview').attr('display', 'none');
  845 + })
  846 + }
  847 +
  848 + $(function () {
  849 + $('#begin_date').datetimepicker({
  850 + format: 'YYYY/MM/DD HH:mm',
  851 + locale: 'zh-cn'
  852 + });
  853 + $('#end_date').datetimepicker({
  854 + format: 'YYYY/MM/DD HH:mm',
  855 + locale: 'zh-cn'
  856 + });
  857 + });
  858 +
  859 +
  860 + /*通过*/
  861 + $("#pass").click(function () {
  862 + var row_id = $("#live_id").val();
  863 + var attr_tags = $('#attr_tags').val();//获取标签属性信息
  864 + var msg = $('#msg').val(); //获取审核msg
  865 + if (typeof(row_id) == "undefined") {
  866 + return false;
  867 + }
  868 + $.ajax({
  869 + type: 'get',
  870 + data: {'_token': 'OPAYyJTsfW7AcH6OGqWNVICiRup24V6nL2mFM9t6', 'attr_tags': attr_tags, 'msg': msg},
  871 + url: '/live/pass/' + row_id,
  872 + success: function (data) {
  873 + window.location.href = '/live';
  874 + }
  875 + });
  876 + });
  877 +
  878 + /*点击更多加载分页*/
  879 + $("#more").click(function () {
  880 + var row_id = $("#live_id").val();
  881 + if (typeof(row_id) == "undefined") {
  882 + return false;
  883 + }
  884 + var time = Date.parse(new Date());
  885 + window.open('/live/more?' + 'row_id=' + row_id + '&time=' + time);
  886 + });
  887 +
  888 +</script>
  889 +
  890 +<script>
  891 +
  892 + $(function () {
  893 + //Initialize Select2 Elements
  894 + $(".select2").select2();
  895 + });
  896 + /*返回列表*/
  897 + $("#back").click(function () {
  898 + console.log('222')
  899 + var state = 0;
  900 + window.location.href = '/live/filter/' + state;
  901 + });
  902 + /*下线主播*/
  903 + function offline_anchor(id) {
  904 +
  905 + var attr_tags = $('#attr_tags').val();//获取标签属性信息
  906 + var msg = $('#msg').val(); //获取审核msg
  907 + if (attr_tags == null && msg == '') { //两个都为空 不行
  908 + alert('请输入审核备注或者常用审核意见!');
  909 + return false;
  910 + }
  911 +
  912 + $('#msg2').html('您确认下线主播吗?');
  913 + $('#action_note').show();
  914 + $("#action_note_type").val('offline_anchor');
  915 + $("#action_note_id").val(id);
  916 + }
  917 + /*下线直播*/
  918 + function offline_live(id) {
  919 +
  920 + var attr_tags = $('#attr_tags').val();//获取标签属性信息
  921 + var msg = $('#msg').val(); //获取审核msg
  922 + if (attr_tags == null && msg == '') { //两个都为空 不行
  923 + alert('请输入审核备注或者常用审核意见!');
  924 + return false;
  925 + }
  926 +
  927 + $('#msg2').html('您确认下线直播吗?');
  928 + $('#action_note').show();
  929 + $("#action_note_type").val('offline_live');
  930 + $("#action_note_id").val(id);
  931 + }
  932 + //弹出框取消
  933 + $("#action_note_no").click(function () {
  934 + $("#action_note").hide();
  935 + });
  936 + //弹出框确认
  937 + $("#action_note_yes").click(function () {
  938 + var action_note_type = $("#action_note_type").val();
  939 + var id = $("#action_note_id").val();
  940 + var state = 0;
  941 + if (action_note_type == 'reject') {
  942 + var row_id = $("#live_id").val();
  943 + var attr_tags = $('#attr_tags').val();//获取标签属性信息
  944 + var msg = $('#msg').val(); //获取审核msg
  945 + if (attr_tags == null && msg == '') { //两个都为空 不行
  946 + alert('请输入审核备注或者常用审核意见!');
  947 + return false;
  948 + }
  949 + if (typeof(row_id) == "undefined") {
  950 + return false;
  951 + }
  952 + $.ajax({
  953 + type: 'get',
  954 + data: {'_token': 'OPAYyJTsfW7AcH6OGqWNVICiRup24V6nL2mFM9t6', 'attr_tags': attr_tags, 'msg': msg},
  955 + url: '/live/reject/' + row_id,
  956 + success: function (data) {
  957 + window.location.href = '/live' + '/filter/' + state;
  958 + }
  959 + });
  960 + } else if (action_note_type == 'offline_live') {
  961 + var id = $("#live_id").val();
  962 + var attr_tags = $('#attr_tags').val();//获取标签属性信息
  963 + var msg = $('#msg').val(); //获取审核msg
  964 + if (attr_tags == null && msg == '') {
  965 + alert('请输入审核备注或者常用审核意见!');
  966 + return false;
  967 + }
  968 + if (typeof(id) == "undefined") {
  969 + return false;
  970 + }
  971 + $.ajax({
  972 + type: 'get',
  973 + data: {'_token': 'OPAYyJTsfW7AcH6OGqWNVICiRup24V6nL2mFM9t6', 'attr_tags': attr_tags, 'msg': msg},
  974 + url: '/live/offline_live/' + id,
  975 + success: function (data) {
  976 + window.location.href = '/live' + '/filter/' + state;
  977 + }
  978 + });
  979 + } else if (action_note_type == 'offline_anchor') {
  980 + var id = $("#live_id").val();
  981 + var attr_tags = $('#attr_tags').val();//获取标签属性信息
  982 + var msg = $('#msg').val(); //获取审核msg
  983 + if (attr_tags == null && msg == '') {
  984 + alert('请输入审核备注或者常用审核意见!');
  985 + return false;
  986 + }
  987 + if (typeof(id) == "undefined") {
  988 + return false;
  989 + }
  990 + $.ajax({
  991 + type: 'get',
  992 + data: {'_token': 'OPAYyJTsfW7AcH6OGqWNVICiRup24V6nL2mFM9t6', 'attr_tags': attr_tags, 'msg': msg},
  993 + url: '/live/offline_anchor/' + id,
  994 + success: function (data) {
  995 + window.location.href = '/live' + '/filter/' + state;
  996 + }
  997 + });
  998 + }
  999 +
  1000 + });
  1001 +
  1002 +
  1003 +</script>
  1004 + </div>
  1005 + </div>
  1006 + </div>
  1007 + </div>
  1008 + </section>
  1009 + </div>
  1010 +
  1011 +
  1012 + <footer class="main-footer" style='font-size:18px;'>
  1013 + <div class="pull-right hidden-xs" >
  1014 + <b>Version</b> 1.2
  1015 + <span><a href="/scan_update_logs">查看更新日志</a></span>
  1016 + </div>
  1017 + <strong>&copy; 2017-2018 <a href="http://www.cnlive.com">&nbsp;&nbsp;&nbsp;&nbsp;视讯中国&nbsp;&nbsp;CNLive</a></strong> 版权所有.
  1018 +</footer>
  1019 +
  1020 +
  1021 + <!-- Control Sidebar -->
  1022 +<aside class="control-sidebar control-sidebar-dark">
  1023 + <!-- Create the tabs -->
  1024 + <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
  1025 + <li><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li>
  1026 + <li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li>
  1027 + </ul>
  1028 + <!-- Tab panes -->
  1029 + <div class="tab-content">
  1030 + <!-- Home tab content -->
  1031 + <div class="tab-pane" id="control-sidebar-home-tab">
  1032 + </div><!-- /.tab-pane -->
  1033 + </div>
  1034 +</aside><!-- /.control-sidebar -->
  1035 +<!-- Add the sidebar's background. This div must be placed
  1036 + immediately after the control sidebar -->
  1037 +<div class="control-sidebar-bg"></div>
  1038 +
  1039 + </div><!-- ./wrapper -->
  1040 + </body>
  1041 +
  1042 +
  1043 +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
  1044 +<script type="text/javascript">
  1045 + $('div.alert').not('.alert-danger').delay(3000).slideUp(300);
  1046 +</script>
  1047 +
  1048 +<!-- AdminLTE App -->
  1049 +<script src="/admin-lte/js/app.min.js"></script>
  1050 +<!-- AdminLTE for demo purposes -->
  1051 +<script src="/admin-lte/js/sidebar.js"></script>
  1052 +
  1053 +
  1054 +
  1055 +
  1056 +
  1057 +
  1058 +</html>
... ...
src/main/resources/templates/page/video.html
... ... @@ -383,7 +383,6 @@
383 383 //全部
384 384 function quanbu() {
385 385 updateValue();
386   -// window.location.href = "/videos/page?video_title=&start_date=&end_date=&state=&receive=&video_priority=";
387 386 window.location.href = "/videos/page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
388 387 }
389 388  
... ... @@ -392,12 +391,6 @@
392 391 updateValue();
393 392 var state = 0;
394 393 var receive = 0;
395   -// var video_priority = $("#video_priority").val();
396   -// var video_title = $("#video_titleID").val();
397   -// var start_date = $("#start_date").val();
398   -// var end_date = $("#end_date").val();
399   -// var sp_desc = $("#sp_desc").val();
400   -// var count = $("#count").val();
401 394 window.location.href = "page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=" + state + "&receive=" + receive + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
402 395 });
403 396 //我的待审核
... ... @@ -405,12 +398,6 @@
405 398 updateValue();
406 399 var state = 0;
407 400 var receive = 1;
408   -// var video_priority = $("#video_priority").val();
409   -// var video_title = $("#video_titleID").val();
410   -// var start_date = $("#start_date").val();
411   -// var end_date = $("#end_date").val();
412   -// var sp_desc = $("#sp_desc").val();
413   -// var count = $("#count").val();
414 401 window.location.href = "page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=" + state + "&receive=" + receive + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
415 402 });
416 403 //我的已审核
... ... @@ -418,24 +405,12 @@
418 405 updateValue();
419 406 var state = 1;
420 407 var receive = 1;
421   -// var video_priority = $("#video_priority").val();
422   -// var video_title = $("#video_titleID").val();
423   -// var start_date = $("#start_date").val();
424   -// var end_date = $("#end_date").val();
425   -// var sp_desc = $("#sp_desc").val();
426   -// var count = $("#count").val();
427 408 window.location.href = "page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=" + state + "&receive=" + receive + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
428 409 });
429 410  
430 411  
431 412 //查询
432 413 $('#videos_query').click(function () {
433   -// var video_priority = $("#video_priority").val();
434   -// var video_title = $("#video_titleID").val();
435   -// var start_date = $("#start_date").val();
436   -// var end_date = $("#end_date").val();
437   -// var sp_desc = $("#sp_desc").val();
438   -// var count = $("#count").val();
439 414 window.location.href = "/videos/page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
440 415 });
441 416 /*全选的操作*/
... ...
src/main/resources/templates/page/videoStream.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +
  4 +<head th:replace="../templates/common/head::head">
  5 +<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  6 +<!-- <link rel="stylesheet" -->
  7 +<!-- href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" -->
  8 +<!-- integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" -->
  9 +<!-- crossorigin="anonymous"> -->
  10 +</head>
  11 +
  12 +<body class="hold-transition skin-blue sidebar-mini">
  13 +
  14 + <div class="wrapper">
  15 + <div th:replace="../templates/common/frame::frame"></div>
  16 + <div class="content-wrapper" style="min-height: 788px;">
  17 + <section class="content-header">
  18 + <h1>直播审核</h1>
  19 + <ol class="breadcrumb">
  20 + <li><a href="/"><i class="fa fa-dashboard"></i> 首页</a></li>
  21 + <li class="active"><a href="/live/page?activity_status=1">直播审核</a></li>
  22 + </ol>
  23 + </section>
  24 + <section class="content">
  25 + <div class="row">
  26 + <div class="col-md-12">
  27 + <div class="box box-info">
  28 + <div class="box-body">
  29 + <div class="modal fade" id="modal" tabindex="-1" role="dialog"
  30 + aria-labelledby="myModalLabel" aria-hidden="true">
  31 + <div class="modal-dialog">
  32 + <div class="modal-content">
  33 + <div class="modal-header">
  34 + <button type="button" class="close" data-dismiss="modal"
  35 + aria-hidden="true">&times;</button>
  36 + <h4 class="modal-title">温馨提示</h4>
  37 + </div>
  38 + <div class="modal-body" id="msg">您确认认领该条信息吗?</div>
  39 + <div class="modal-footer">
  40 + <button type="button" class="btn btn-default"
  41 + data-dismiss="modal">取消</button>
  42 + <button type="button" class="btn btn-primary"
  43 + id="modal_remove">确认</button>
  44 + </div>
  45 + </div>
  46 + </div>
  47 + </div>
  48 + <div class="clearfix">
  49 + <div class="btn-group margin-bottom" id="hide_select_area_2">
  50 + <div class="cb-toolbar">
  51 + <input type="checkbox" id="check">全选
  52 + </div>
  53 + <div class="btn-group margin-bottom pull-left" style=>
  54 + <input type="hidden" name="state" id="state" value="" />
  55 +
  56 + <button type="button"
  57 + class="btn btn-success btn-sm margin-r-5 action claim"
  58 + value="2" data="claim" id="claim" data-toggle="modal"
  59 + data-target="#modal">认领</button>
  60 + <button type="button"
  61 + class="btn btn-success btn-sm margin-r-5 action claim"
  62 + value="2" data="claim10" id="claim10" data-toggle="modal"
  63 + data-target="#modal">认领10条</button>
  64 + <button type="button"
  65 + class="btn btn-success btn-sm margin-r-5 action claim"
  66 + value="2" data="claim100" id="claim100"
  67 + data-toggle="modal" data-target="#modal">认领100条</button>
  68 + </div>
  69 + </div>
  70 +
  71 + <div class="btn-group margin-bottom pull-right">
  72 + <button type="button" class="btn btn-sm margin-r-5 filter ?>"
  73 + value="0" id="all" data="all">全部</button>
  74 + <button type="button"
  75 + class="btn btn-sm margin-r-5 filter btn-info ?>" value="1">全部待领
  76 + </button>
  77 + <button type="button"
  78 + class="btn btn-sm margin-r-5 filter ?>" value="2">我的待审
  79 + </button>
  80 + <!--<button type="button" class="btn btn-sm margin-r-5 filter"
  81 + value="4">我的未通过
  82 + </button> -->
  83 + <button type="button"
  84 + class="btn btn-sm margin-r-5 filter ?>" value="7">我的已审
  85 + </button>
  86 + <button type="button"
  87 + class="btn btn-primary btn-sm margin-r-5" id="query"
  88 + onclick="openOrClose('forms')">
  89 + 查询 <span id="a_up">▼</span><span id="a_down">▲</span>
  90 + </button>
  91 + </div>
  92 +
  93 + </div>
  94 +
  95 + <div class="clearfix">
  96 + <div class="form-horizontal form-group-sm" id="forms"
  97 + style="display: none;">
  98 + <div class="btn-group margin-bottom col-md-7"
  99 + style="padding: 0;">
  100 + <div class="col-md-3" style="padding: 0">
  101 + <label for="activity_id" class="control-label cb-toolbar">直播id:</label>
  102 + <div class="col-sm-7" style="padding: 0;">
  103 + <input class="form-control" name="activity_id" type="text"
  104 + id="activity_id">
  105 + </div>
  106 + </div>
  107 + <div class="col-md-3" style="padding: 0">
  108 + <label for="activity_name" class="control-label cb-toolbar">直播名称:</label>
  109 + <div class="col-sm-7" style="padding: 0;">
  110 + <input class="form-control col-sm-2" name="activity_name"
  111 + type="text" id="activity_name">
  112 + </div>
  113 + </div>
  114 +
  115 +<!-- <div class="col-md-3" style="padding: 0"> -->
  116 +<!-- <label for="is_hot" class="control-label cb-toolbar">是否热点:</label> -->
  117 +<!-- <div class="col-sm-6" style="padding: 0;"> -->
  118 +<!-- <select class="form-control" id="is_hot" name="is_hot"><option -->
  119 +<!-- value="0">全部</option> -->
  120 +<!-- <option value="2">是</option> -->
  121 +<!-- <option value="1">否</option></select> -->
  122 +<!-- </div> -->
  123 +<!-- </div> -->
  124 +
  125 + <div class="col-md-6" style="padding: 0;width: 25%;" th:if="${session.sessionUser.spid==0}">
  126 + <label for="sp_desc" class="control-label cb-toolbar">sp简称:</label>
  127 + <div class="col-sm-8" style="padding: 0;">
  128 + <input class="form-control" type="text" value="" id="sp_desc">
  129 + </div>
  130 + </div>
  131 + <div class="col-md-3" style="padding: 0">
  132 + <label for="activity_status"
  133 + class="control-label cb-toolbar">直播状态:</label>
  134 + <div class="col-sm-6" style="padding: 0;">
  135 + <select class="form-control col-sm-2" id="activity_status"
  136 + name="activity_status"><option value="">全部</option>
  137 + <option value="3">待直播</option>
  138 + <option value="1">直播中</option>
  139 + <option value="2">已结束</option>
  140 + <option value="0">已下线</option></select>
  141 + </div>
  142 + </div>
  143 +
  144 + </div>
  145 +
  146 + <div class="btn-group margin-bottom col-md-5 pull-right"
  147 + style="padding: 0">
  148 + <div class="col-md-11" style="width: 88%; padding: 0;">
  149 + <div class="col-md-5" style="padding: 0">
  150 + <label for="start_date" class="control-label cb-toolbar">时间:</label>
  151 + <div class='input-group col-md-9 date'>
  152 + <input class="form-control date" name="start_date"
  153 + type="text" id="start_date"> <span
  154 + class="input-group-addon"> <span
  155 + class="glyphicon glyphicon-calendar"></span>
  156 + </span>
  157 + </div>
  158 + </div>
  159 + <div class="col-md-5" style="padding: 0">
  160 + <label for="start_date" class="control-label cb-toolbar">至</label>
  161 + <div class='input-group col-md-9 date'>
  162 + <input class="form-control date" name="end_date"
  163 + type="text"> <span class="input-group-addon">
  164 + <span class="glyphicon glyphicon-calendar"></span>
  165 + </span>
  166 + </div>
  167 + </div>
  168 + </div>
  169 +
  170 +<!-- <div class="col-md-1 text-center" -->
  171 +<!-- style="width: 12%; padding: 0"> -->
  172 +<!-- <button type="button" class="btn btn-primary btn-sm" -->
  173 +<!-- id="live_query">查 询</button> -->
  174 +<!-- </div> -->
  175 +
  176 + </div>
  177 +
  178 + <div class="btn-group margin-bottom col-md-6"
  179 + style="padding: 0;"></div>
  180 + </div>
  181 + </div>
  182 + <script>
  183 +
  184 + var activity_id ="";//直播id
  185 + var activity_name = "";//直播名称
  186 + var is_hot ="";//是否热点
  187 + var activity_status ="";//直播状态
  188 + var start_date ="";//开始时间
  189 + var end_date = "";//结束时间
  190 + var sp_desc = "";
  191 + var count = "";
  192 +
  193 + function updateValue(){
  194 + activity_id = $("#activity_id").val();
  195 + activity_name = $("activity_name").val();
  196 +// is_hot = $("#is_hot").val();
  197 + activity_status = $("#activity_status").val();
  198 + start_date = $("#start_date").val();
  199 + end_date = $("#end_date").val();
  200 + var spId=[[${session.sessionUser.spid}]];
  201 + if(spId==0){
  202 + sp_desc = $("#sp_desc").val();
  203 +// count = $("#count").val();
  204 + }
  205 + }
  206 +
  207 +
  208 + //全部
  209 + function quanbu() {
  210 + updateValue();
  211 + window.location.href = "/live/page?activity_status="+activity_status+"&activity_id=" + activity_id + "&start_date=" + start_date + "&end_date=" + end_date + "&activity_name=" + activity_name + "&sp_desc=" + sp_desc+"&pageSize="+count;
  212 + }
  213 +
  214 + //全部待领
  215 + $('#daishen').click(function () {
  216 + updateValue();
  217 + var state = 0;
  218 + var receive = 0;
  219 + window.location.href = "page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=" + state + "&receive=" + receive + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
  220 + });
  221 + //我的待审核
  222 + $('#Mydaishen').click(function () {
  223 + updateValue();
  224 + var state = 0;
  225 + var receive = 1;
  226 + window.location.href = "page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=" + state + "&receive=" + receive + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
  227 + });
  228 + //我的已审核
  229 + $('#yishen').click(function () {
  230 + updateValue();
  231 + var state = 1;
  232 + var receive = 1;
  233 + window.location.href = "page?video_title=" + video_title + "&start_date=" + start_date + "&end_date=" + end_date + "&state=" + state + "&receive=" + receive + "&video_priority=" + video_priority + "&sp_desc=" + sp_desc+"&pageSize="+count;
  234 + });
  235 +
  236 +
  237 + /*时间插件*/
  238 + $('.date').datetimepicker({
  239 + format : 'YYYY-MM-DD HH:mm',
  240 + locale : "zh-CN",
  241 + toolbarPlacement : 'bottom',
  242 + showClear : true,
  243 + });
  244 +
  245 + /*大图列表图切换*/
  246 +// $('#big').click(function() {
  247 +// window.location.href = '/live/big_list';
  248 +// })
  249 +// $('#list').click(function() {
  250 +// window.location.href = '/live';
  251 +// })
  252 +
  253 + /*全选的操作*/
  254 + $('#check').click(function() {
  255 + if ($(this).prop('checked')) {
  256 + $('.check').each(function() {
  257 + $(this).prop('checked', true);
  258 + });
  259 + } else {
  260 + $('.check').each(function() {
  261 + $(this).removeAttr('checked');
  262 + });
  263 + }
  264 + });
  265 +
  266 + /*批量认领操作*/
  267 + $('.action').click(function() {
  268 + var flag = $(this).attr('data');
  269 + if (flag == 'claim') {
  270 + var ids = [];
  271 + $('.check').each(function() {
  272 + if ($(this).prop('checked')) {
  273 + ids[ids.length] = $(this).attr('value');
  274 + }
  275 + });
  276 + } else if (flag == 'claim10') {
  277 + ids = 10;
  278 + } else {
  279 + ids = 100;
  280 + }
  281 + if (ids.length > 0|| ids > 0) {
  282 + if (flag == 'claim') {
  283 + $('#msg').html('您确认认领这<strong><span class="text-danger">'
  284 + + ids.length+ '</span></strong>条信息吗?');
  285 + $('#modal_remove').show();
  286 + $('#modal_remove').attr('claim','claim');
  287 + } else if (flag == 'claim10') {
  288 + $('#msg').html('您确认认领这前<strong><span class="text-danger">'
  289 + + ids+ '</span></strong>条信息吗?');
  290 + $('#modal_remove').show();
  291 + $('#modal_remove').attr('claim','claim10');
  292 + } else {
  293 + $('#msg').html('您确认认领这前<strong><span class="text-danger">'
  294 + + ids+ '</span></strong>条信息吗?');
  295 + $('#modal_remove').show();
  296 + $('#modal_remove').attr('claim','claim100');
  297 + }
  298 + } else {
  299 + alert('请选择要认领的数据');
  300 + return false;
  301 + }
  302 + });
  303 +
  304 + /*批量*/
  305 + /*批量操作 --认领*/
  306 + // var claim_open = false;
  307 + // var remove_open = false;
  308 + $("#modal_remove").delegate(this,"click",function() {
  309 + // if (claim_open == true) {
  310 + // return false;
  311 + // }
  312 + // if (remove_open == true) { //这样的话是true,就是单个操作
  313 + // return false;
  314 + // }
  315 + var status = $('.action').val();
  316 + var flag = $(this).attr('claim');
  317 + // var flag = $(this).attr('data');
  318 + if (flag == 'claim') {
  319 + var ids = [];
  320 + $('.check').each(function() {
  321 + if ($(this).prop('checked')) {
  322 + ids[ids.length] = $(this).attr('value');
  323 + }
  324 + });
  325 + } else if (flag == 'claim10') {
  326 + ids = 10;
  327 + } else {
  328 + ids = 100;
  329 + }
  330 + var state = 2;
  331 + $.ajax({
  332 + url : '/live/status/'+ status,
  333 + type : 'POST',
  334 + data : {'_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  335 + 'flag' : flag,
  336 + 'ids' : ids
  337 + },
  338 + success : function() {
  339 + // window.location.reload();
  340 + window.location.href = '/live/filter/'+ state;
  341 + }
  342 + });
  343 + });
  344 + /*批量*/
  345 +
  346 + /*批量调用的方法*/
  347 + function ajaxAction(action, flag) {
  348 + var ids = [];
  349 + $('.check').each(function() {
  350 + if ($(this).prop('checked')) {
  351 + ids[ids.length] = $(this).attr('value');
  352 + }
  353 + });
  354 +
  355 + if (ids.length > 0) {
  356 + $.ajax({
  357 + url : '/live/status/'+ action,
  358 + type : 'POST',
  359 + data : {'_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  360 + 'ids' : ids,
  361 + 'flag' : flag
  362 + },
  363 + success : function(data) {
  364 + window.location.reload();
  365 + // window.location.href = '/live/big_list';
  366 + }
  367 + });
  368 + }
  369 + }
  370 +
  371 + $('#all').click(
  372 + function() {
  373 + $(this).addClass('btn-info');
  374 + $(this).siblings().removeClass('btn-info');
  375 + window.location.href = '/live';
  376 + });
  377 +
  378 + //刷新功能
  379 +// $('#refresh').click(
  380 +// function() {
  381 +// // var id =$('#refresh').attr('data-id');
  382 +// $.ajax({
  383 +// url : '/live/big_list',
  384 +// type : 'POST',
  385 +// data : {
  386 +// '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74'
  387 +// },
  388 +// success : function(data) {
  389 +// window.location.reload();
  390 +// }
  391 +// });
  392 +// window.location.href = '/live';
  393 +// })
  394 + //是否显示待领选项
  395 + $('#hide_select_area_2').show();
  396 +
  397 + /* 筛选 状态 */
  398 + $('.filter').click(function() {
  399 + var state = $(this).val();
  400 + global_state = state;
  401 + switch (state) {
  402 + case "1":
  403 + $('#hide_select_area_2').show();
  404 + $(this).addClass('btn-info');
  405 + $(this).siblings().removeClass('btn-info');
  406 + $.ajax({
  407 + url : '/live/filter/'+ state,
  408 + type : 'POST',
  409 + data : {
  410 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  411 + 'state' : state
  412 + },
  413 + success : function(data) {
  414 + window.location.reload();
  415 + }
  416 + });
  417 + window.location.href = '/live/filter/'+ state;
  418 + break;
  419 + case "2":
  420 + $('#hide_select_area_2').hide();
  421 + $(this).addClass('btn-info');
  422 + $(this).siblings().removeClass('btn-info');
  423 + window.location.href = '/live/filter/'+ state;
  424 + break;
  425 + case "3":
  426 + $('#hide_select_area_2').hide();
  427 + $(this).addClass('btn-info');
  428 + $(this).siblings().removeClass('btn-info');
  429 + window.location.href = '/live/filter/'+ state;
  430 + break;
  431 + case "4":
  432 + $('#hide_select_area_2').hide();
  433 + $(this).addClass('btn-info');
  434 + $(this).siblings().removeClass('btn-info');
  435 + window.location.href = '/live/filter/'+ state;
  436 + break;
  437 + case "7":
  438 + $('#hide_select_area_2').hide();
  439 + $(this).addClass('btn-info');
  440 + $(this).siblings().removeClass('btn-info');
  441 + window.location.href = '/live/filter/'+ state;
  442 + break;
  443 + case '0':
  444 + $('#hide_select_area_2').hide();
  445 + $(this).addClass('btn-info');
  446 + $(this).siblings().removeClass('btn-info');
  447 + window.location.href = '/live/filter/'+ state;
  448 + break;
  449 + }
  450 + });
  451 + </script>
  452 + <div class="modal fade common" id="modal_remove" tabindex="-1"
  453 + role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  454 + <div class="modal-dialog">
  455 + <div class="modal-content">
  456 + <div class="modal-header">
  457 + <button type="button" class="close" data-dismiss="modal"
  458 + aria-hidden="true">&times;</button>
  459 + <h4 class="modal-title" id="modal_title"></h4>
  460 + </div>
  461 + <div class="modal-body">
  462 + <div class="alert alert-danger" id="window_msg"
  463 + style="display: none;">
  464 + <p></p>
  465 + </div>
  466 + <div id="contents"></div>
  467 + </div>
  468 + </div>
  469 + </div>
  470 + </div>
  471 +
  472 + <table id="table">
  473 + <div>
  474 + <div class="col-xs-2 col-lg-2 margin-bottom action">
  475 + <a href="#" class="thumbnail margin-bottom"
  476 + onclick="preview('rtmp://hyyy.rtmps2.cnlive.com/live-hyyy-604/604_000007')">
  477 + <div style="text-align: center">
  478 + <img src='http://app.scio.gov.cn/upload/img/2019/06/2ef0a5dc-a98c-469c-a419-04eeb866a401.png'
  479 + alt="封面图" width="134px" height="100px">
  480 + </div>
  481 +
  482 + </a>
  483 + <div>
  484 + <p style="line-height: 0">
  485 + <span class="text-success">待审</span> <span
  486 + class="text-primary pull-right">2019-06-26 14:56:33</span>
  487 + </p>
  488 + <p class="info-box-text">
  489 + <input type="checkbox" class="check" value="10225">
  490 + 国新办举行新时代人民满意公务员代表中外记者见面会
  491 + </p>
  492 + <p class="info-box-text">
  493 + <span style="float: left;">id:10225&nbsp;&nbsp;</span> <span
  494 + style="margin-left: 60px;">&nbsp;&nbsp; <span>直播中</span>
  495 + </span> <span style="float: right;"> <span></span>
  496 + </span>
  497 + </p>
  498 + <p class="info-box-text">
  499 + <span style="float: left;"> <span>SP简称:</span>
  500 + </span> <span style="float: right;"> <span>国新客户端</span>
  501 + </span>
  502 + </p>
  503 +
  504 + </div>
  505 + <div class="width-10p pull-left padding-r-5">
  506 + <button class="btn btn-primary btn-xs btn-block" title="认领"
  507 + onclick="claim('10225')" data-field="action"
  508 + data-formatter="actionFormatter" data-events="actionEvents"
  509 + data-toggle="tooltip" data-placement="top" value="2"
  510 + id="claim_10225">
  511 + <i class="fa fa-hand-pointer-o"></i>
  512 + </button>
  513 + </div>
  514 +
  515 + <div class="width-10p pull-left padding-r-5">
  516 + <button class="btn btn-success btn-xs btn-block "
  517 + disabled="disabled" title="查看" onclick="detail('10225')"
  518 + data-toggle="tooltip" data-placement="top">
  519 + <i class="fa fa-eye"></i>
  520 + </button>
  521 + </div>
  522 + <div class="width-10p pull-left padding-r-5">
  523 + <button class="btn btn-danger btn-xs btn-block"
  524 + disabled="disabled" title="退领" onclick="back('10225')"
  525 + data-toggle="tooltip" data-placement="top">
  526 + <i class="fa fa-mail-reply"></i>
  527 + </button>
  528 + </div>
  529 +
  530 + <div class="width-10p pull-right padding-r-5">
  531 + <button class="btn btn-primary btn-xs btn-block"
  532 + disabled="disabled" title="日志"
  533 + onclick="reject('38_09471046aa7f4835a734f1d6208249fc')">
  534 + <i class="fa fa-bullseye"></i>
  535 + </button>
  536 + </div>
  537 +
  538 + <div class="width-10p pull-right padding-r-5">
  539 + <button class="btn btn-danger btn-xs btn-block" title="下线直播"
  540 + onclick="offline_live('10225')" data-toggle="tooltip"
  541 + data-placement="top"
  542 + data-target="#modal">
  543 + <i class="fa fa-arrow-down"></i>
  544 + </button>
  545 + </div>
  546 +
  547 + <div class="width-10p pull-right padding-r-5">
  548 + <button class="btn btn-danger btn-xs btn-block" title="下线主播"
  549 + onclick="offline_anchor('10225')" data-toggle="tooltip"
  550 + data-placement="top">
  551 + <i class="glyphicon glyphicon-user"></i>
  552 + </button>
  553 + </div>
  554 + </div>
  555 + <div class="col-xs-2 col-lg-2 margin-bottom action">
  556 + <a href="#" class="thumbnail margin-bottom"
  557 + onclick="preview('rtmp://sxzg.rtmps2.cnlive.com/live-sxzg-82/82_liveshow01')">
  558 + <div style="text-align: center">
  559 + <img
  560 + src='http://yweb3.cnliveimg.com/bc/82/2019/0621/1561102155567_1507.jpg'
  561 + alt="封面图" width="134px" height="100px">
  562 + </div>
  563 +
  564 + </a>
  565 + <div>
  566 + <p style="line-height: 0">
  567 + <span class="text-success">待审</span> <span
  568 + class="text-primary pull-right">2019-06-24 13:30:00</span>
  569 + </p>
  570 + <p class="info-box-text">
  571 + <input type="checkbox" class="check" value="10179">
  572 + 第四届世界厨师艺术节-2
  573 + </p>
  574 + <p class="info-box-text">
  575 + <span style="float: left;">id:10179&nbsp;&nbsp;</span> <span
  576 + style="margin-left: 60px;">&nbsp;&nbsp; <span>直播中</span>
  577 + </span> <span style="float: right;"> <span></span>
  578 + </span>
  579 + </p>
  580 + <p class="info-box-text">
  581 + <span style="float: left;"> <span>SP简称:</span>
  582 + </span> <span style="float: right;"> <span>视讯中国</span>
  583 + </span>
  584 + </p>
  585 +
  586 + </div>
  587 + <div class="width-10p pull-left padding-r-5">
  588 + <button class="btn btn-primary btn-xs btn-block" title="认领"
  589 + onclick="claim('10179')" data-field="action"
  590 + data-formatter="actionFormatter" data-events="actionEvents"
  591 + data-toggle="tooltip" data-placement="top" value="2"
  592 + id="claim_10179">
  593 + <i class="fa fa-hand-pointer-o"></i>
  594 + </button>
  595 + </div>
  596 +
  597 + <div class="width-10p pull-left padding-r-5">
  598 + <button class="btn btn-success btn-xs btn-block "
  599 + disabled="disabled" title="查看" onclick="detail('10179')"
  600 + data-toggle="tooltip" data-placement="top">
  601 + <i class="fa fa-eye"></i>
  602 + </button>
  603 + </div>
  604 + <div class="width-10p pull-left padding-r-5">
  605 + <button class="btn btn-danger btn-xs btn-block"
  606 + disabled="disabled" title="退领" onclick="back('10179')"
  607 + data-toggle="tooltip" data-placement="top">
  608 + <i class="fa fa-mail-reply"></i>
  609 + </button>
  610 + </div>
  611 +
  612 + <div class="width-10p pull-right padding-r-5">
  613 + <button class="btn btn-primary btn-xs btn-block"
  614 + disabled="disabled" title="日志"
  615 + onclick="reject('82_YKJ-0624-2')">
  616 + <i class="fa fa-bullseye"></i>
  617 + </button>
  618 + </div>
  619 +
  620 + <div class="width-10p pull-right padding-r-5">
  621 + <button class="btn btn-danger btn-xs btn-block" title="下线直播"
  622 + onclick="offline_live('10179')" data-toggle="tooltip"
  623 + data-placement="top"
  624 + data-target="#modal">
  625 + <i class="fa fa-arrow-down"></i>
  626 + </button>
  627 + </div>
  628 +
  629 + <div class="width-10p pull-right padding-r-5">
  630 + <button class="btn btn-danger btn-xs btn-block" title="下线主播"
  631 + onclick="offline_anchor('10179')" data-toggle="tooltip"
  632 + data-placement="top">
  633 + <i class="glyphicon glyphicon-user"></i>
  634 + </button>
  635 + </div>
  636 + </div>
  637 + </div>
  638 + </table>
  639 +
  640 + </div>
  641 + </div>
  642 + </div>
  643 + </div>
  644 + </section>
  645 + <!-- /.content -->
  646 +<!-- <div class="box-footer"> -->
  647 +<!-- <div class="pull-right"></div> -->
  648 +<!-- </div> -->
  649 + </div>
  650 + <!-- /.content-wrapper -->
  651 +
  652 + <!-- 预览对话框 -->
  653 + <div class="modal fade" id="preview" role="dialog" aria-hidden="true">
  654 + <div class="modal-dialog" style="width: 670px;">
  655 + <div class="modal-content">
  656 + <div class="modal-header">
  657 + <button type="button" class="close" data-dismiss="modal"
  658 + aria-hidden="true">&times;</button>
  659 + <h5 class="modal-title" id="myModalLabel">视频预览</h5>
  660 + </div>
  661 + <div class="modal-body">
  662 + <embed name="cnlive" width="640" height="450" id="cnlive" volume="0"
  663 + src="http://data.cnlive.com/export/UuidPlayerMain.swf"
  664 + flashVars="" type="application/x-shockwave-flash" wmode="window"
  665 + quility="high" allowscriptaccess="always" allowfullscreen="true">
  666 + </div>
  667 + </div>
  668 + <!-- /.modal-content -->
  669 + </div>
  670 + <!-- /.modal -->
  671 + </div>
  672 +
  673 + <!-- 确认直播下线,直播下线 -->
  674 + <div class="modal" id="action_note" role="dialog"
  675 + aria-labelledby="myModalLabel">
  676 + <div class="modal-dialog">
  677 + <div class="modal-content">
  678 + <div class="modal-header">
  679 + <h4 class="modal-title">温馨提示</h4>
  680 + </div>
  681 + <div class="modal-body" id="msg2"></div>
  682 +
  683 + <div class="modal-footer">
  684 + <button type="button" class="btn btn-default "
  685 + data-dismiss="modal" id="action_note_no">取消</button>
  686 + <button type="button" class="btn btn-primary" id="action_note_yes">确认</button>
  687 + <input type="hidden" name="action_note_type" id="action_note_type"
  688 + value="" /> <input type="hidden" name="action_note_id"
  689 + id="action_note_id" value="" />
  690 + </div>
  691 + </div>
  692 + </div>
  693 + </div>
  694 +
  695 +
  696 +
  697 +
  698 + <script>
  699 +
  700 + $('#a_down').hide();
  701 +
  702 + /*查询样式*/
  703 + function openOrClose(id_name_str) {
  704 + var id_name = '#' + id_name_str;
  705 + if ($(id_name).css('display') == 'block') {
  706 + $(id_name).slideUp(350);
  707 + $('#a_up').show();
  708 + $('#a_down').hide();
  709 + } else {
  710 + $(id_name).slideDown(350);
  711 + $('#a_up').hide();
  712 + $('#a_down').show();
  713 + }
  714 + }
  715 +
  716 +
  717 + /*查询字段效果*/
  718 + $('#videos_query').click(function() {
  719 + $('#table').bootstrapTable('selectPage', 1);
  720 + });
  721 +
  722 + // $('#modal').modal('hide');
  723 + $('#modal').on('hide.bs.modal', function(event) {
  724 +
  725 + });
  726 +
  727 + //列表中的操作 ---预览,审核,查看,退领
  728 + function preview(url) {
  729 + $('#cnlive').attr('flashVars',
  730 + "hasBorder=false&appid=82_irej0pbo53&type=live&model=2&videoURL="
  731 + + url);
  732 + $('#preview').modal('show');
  733 + $('.close').click(function() {
  734 + $('.preview').attr('display', 'none');
  735 + })
  736 + }
  737 +
  738 + /*认领*/
  739 + function claim(id) {
  740 + var source_state = global_state; //当前按钮状态
  741 + var current_state = $("#claim_" + id).val() //当前直播状态
  742 + if (source_state == 0) { //从全部点认领让其跳转到我的已审
  743 + if (current_state == 2) { //直播中
  744 + var state = 2;
  745 + $.ajax({
  746 + type : 'get',
  747 + data : {
  748 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74'
  749 + },
  750 + url : '/live/claim/' + id+ "?current_state=" + current_state,
  751 + success : function(data) {
  752 + // window.location.href = '/live/filter/' + state;
  753 + if (data['status_code'] == 403) {
  754 + window.location.href = '/live/filter/' + 0;
  755 + } else {
  756 + window.location.href = '/live/filter/'+ state;
  757 + }
  758 + }
  759 + });
  760 + } else { //已结束
  761 + var state = 7;
  762 + $.ajax({
  763 + type : 'get',
  764 + data : {
  765 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74'
  766 + },
  767 + url : '/live/claim/' + id+ "?source_state=" + source_state,
  768 + success : function(data) {
  769 + // window.location.href = '/live/filter/' + state;
  770 + if (data['status_code'] == 403) {
  771 + window.location.href = '/live/filter/' + 0;
  772 + } else {
  773 + window.location.href = '/live/filter/'+ state;
  774 + }
  775 + }
  776 + });
  777 + }
  778 + } else {
  779 + //我的待领页面中,点击认领就跳转到我的待审
  780 + var state = 2;
  781 + $.ajax({
  782 + type : 'get',
  783 + data : {'_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74'
  784 + },
  785 + url : '/live/claim/' + id,
  786 + success : function(data) {
  787 + // window.location.href = '/live/filter/' + state;
  788 + if (data['status_code'] == 403) {
  789 + window.location.href = '/live/filter/' + 1;
  790 + } else {
  791 + window.location.href = '/live/filter/'+ state;
  792 + }
  793 + }
  794 + });
  795 + }
  796 + }
  797 +
  798 + /*查看*/
  799 + function detail(id) {
  800 + // var flag = 'big-list';
  801 + var state = global_state;
  802 + var time = Date.parse(new Date());
  803 + if (typeof (id) == "undefined") {
  804 + return false;
  805 + }
  806 + window.open('/live/detail/' + id + '/' + time + '?state='+ state);
  807 + }
  808 +
  809 + /*退领*/
  810 + function back(id) {
  811 + var state = global_state;
  812 + $.ajax({
  813 + type : 'get',
  814 + data : {
  815 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74'
  816 + },
  817 + url : '/live/back/' + id,
  818 + success : function(data) {
  819 + window.location.href = '/live' + '?state=' + state;
  820 + }
  821 + });
  822 + }
  823 + /*拒绝*/
  824 + function reject(id) {
  825 + // var act_id = row.activity_id;
  826 + $.ajax({
  827 + type : 'get',
  828 + data : {
  829 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  830 + 'act_id' : id
  831 + },
  832 + url : '/live/get_msg/',
  833 + success : function(data) {
  834 + if (data['status_code'] == 200) {
  835 + var msg = eval("(" + data['data'] + ")")
  836 + console.log(msg)
  837 + if (msg == '') {
  838 + alert('没有审核记录');
  839 + return false;
  840 + } else {
  841 + alert(msg);
  842 + }
  843 + }
  844 + }
  845 + });
  846 + }
  847 + /*下线主播*/
  848 + function offline_anchor(id) {
  849 + $('#msg2').html('您确认下线该主播吗?');
  850 + $('#action_note').show();
  851 + $("#action_note_type").val('offline_anchor');
  852 + $("#action_note_id").val(id);
  853 + }
  854 +
  855 + /*下线直播*/
  856 + function offline_live(id) {
  857 +
  858 + $('#msg2').html('您确认下线该直播吗?');
  859 + $('#action_note').show();
  860 + $("#action_note_type").val('offline_live');
  861 + $("#action_note_id").val(id);
  862 + $('#modal_remove').attr('claim', 'claim');
  863 + }
  864 +
  865 + $("#action_note_no").click(function() {
  866 + $("#action_note").hide();
  867 + });
  868 +
  869 + $("#action_note_yes").click(function() {
  870 + var action_note_type = $("#action_note_type").val();
  871 + var id = $("#action_note_id").val();
  872 + var state = global_state;
  873 + if (action_note_type == 'offline_live') {
  874 + $.ajax({
  875 + type : 'get',
  876 + data : {
  877 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  878 + 'msg' : '首页-下线直播-操作'
  879 + },
  880 + url : '/live/offline_live/'+ id,
  881 + success : function(data) {
  882 + window.location.href = '/live'+ '?state=' + state;
  883 + }
  884 + });
  885 + } else if (action_note_type == 'offline_anchor') {
  886 + $.ajax({
  887 + type : 'get',
  888 + data : {
  889 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  890 + 'msg' : '首页-下线主播-操作'
  891 + },
  892 + url : '/live/offline_anchor/'+ id,
  893 + success : function(data) {
  894 + window.location.href = '/live'+ '?state=' + state;
  895 + }
  896 + });
  897 + } else if (action_note_type = 'reject') {
  898 + $.ajax({
  899 + type : 'get',
  900 + data : {
  901 + '_token' : 'VljOVtqOXq8KDlkbyDxOSyDSx1VLv40V5TrDob74',
  902 + 'msg' : '首页-拒绝-操作'
  903 + },
  904 + url : '/live/reject/' + id,
  905 + success : function(data) {
  906 + window.location.href = '/live'+ '?state=' + state;
  907 + }
  908 + });
  909 + }
  910 + })
  911 + </script>
  912 + <script>
  913 + $(function() {
  914 + $("[data-toggle='tooltip']").tooltip();
  915 + });
  916 + </script>
  917 +
  918 +
  919 +
  920 + <footer th:replace="../templates/common/foot::foot"></footer>
  921 +
  922 +
  923 + <!-- Control Sidebar -->
  924 + <aside class="control-sidebar control-sidebar-dark">
  925 + <!-- Create the tabs -->
  926 + <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
  927 + <li><a href="#control-sidebar-home-tab" data-toggle="tab"><i
  928 + class="fa fa-home"></i></a></li>
  929 + <li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i
  930 + class="fa fa-gears"></i></a></li>
  931 + </ul>
  932 + <!-- Tab panes -->
  933 + <div class="tab-content">
  934 + <!-- Home tab content -->
  935 + <div class="tab-pane" id="control-sidebar-home-tab"></div>
  936 + <!-- /.tab-pane -->
  937 + </div>
  938 + </aside>
  939 + <!-- /.control-sidebar -->
  940 + <!-- Add the sidebar's background. This div must be placed
  941 + immediately after the control sidebar -->
  942 + <div class="control-sidebar-bg"></div>
  943 +
  944 + </div>
  945 + <!-- ./wrapper -->
  946 +</body>
  947 +
  948 +
  949 +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
  950 +<script type="text/javascript">
  951 + $('div.alert').not('.alert-danger').delay(3000).slideUp(300);
  952 +</script>
  953 +
  954 +<!-- AdminLTE App -->
  955 +<script src="./../../static/js/app.min.js"></script>
  956 +<!-- AdminLTE for demo purposes -->
  957 +<script src="./../../static/js/sidebar.js"></script>
  958 +
  959 +</html>
... ...