Commit 64116a2d45822c90c85582bb339e7dec8ff305e4
Merge branch 'dev'
Showing
23 changed files
with
4406 additions
and
127 deletions
Too many changes to show.
To preserve performance only 23 of 26 files are displayed.
pom.xml
| @@ -62,6 +62,13 @@ | @@ -62,6 +62,13 @@ | ||
| 62 | <artifactId>commons-lang3</artifactId> | 62 | <artifactId>commons-lang3</artifactId> |
| 63 | <version>3.8</version> | 63 | <version>3.8</version> |
| 64 | </dependency> | 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 | <dependency> | 73 | <dependency> |
| 67 | <groupId>org.mybatis.spring.boot</groupId> | 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,6 +11,7 @@ import org.slf4j.Logger; | ||
| 11 | import org.slf4j.LoggerFactory; | 11 | import org.slf4j.LoggerFactory; |
| 12 | import org.springframework.beans.factory.annotation.Autowired; | 12 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | import org.springframework.stereotype.Controller; | 13 | import org.springframework.stereotype.Controller; |
| 14 | +import org.springframework.web.bind.annotation.GetMapping; | ||
| 14 | import org.springframework.web.bind.annotation.PostMapping; | 15 | import org.springframework.web.bind.annotation.PostMapping; |
| 15 | import org.springframework.web.bind.annotation.RequestBody; | 16 | import org.springframework.web.bind.annotation.RequestBody; |
| 16 | import org.springframework.web.bind.annotation.RequestMapping; | 17 | import org.springframework.web.bind.annotation.RequestMapping; |
| @@ -67,4 +68,9 @@ public class AvsampleCallBackControllerApi { | @@ -67,4 +68,9 @@ public class AvsampleCallBackControllerApi { | ||
| 67 | } | 68 | } |
| 68 | return result; | 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 +6,7 @@ import com.cnlive.shenhe.bean.ResponseBean; | ||
| 6 | import com.cnlive.shenhe.bean.SessionUser; | 6 | import com.cnlive.shenhe.bean.SessionUser; |
| 7 | import com.cnlive.shenhe.entity.ShyComments; | 7 | import com.cnlive.shenhe.entity.ShyComments; |
| 8 | import com.cnlive.shenhe.entity.ShyContent; | 8 | import com.cnlive.shenhe.entity.ShyContent; |
| 9 | +import com.cnlive.shenhe.entity.ShyLive; | ||
| 9 | import com.cnlive.shenhe.entity.ShySites; | 10 | import com.cnlive.shenhe.entity.ShySites; |
| 10 | import com.cnlive.shenhe.entity.ShyUsers; | 11 | import com.cnlive.shenhe.entity.ShyUsers; |
| 11 | import com.cnlive.shenhe.entity.ShyVideos; | 12 | import com.cnlive.shenhe.entity.ShyVideos; |
| @@ -17,6 +18,11 @@ import com.cnlive.shenhe.utils.AuditPass; | @@ -17,6 +18,11 @@ import com.cnlive.shenhe.utils.AuditPass; | ||
| 17 | import com.cnlive.shenhe.utils.CommonConst; | 18 | import com.cnlive.shenhe.utils.CommonConst; |
| 18 | import com.cnlive.shenhe.utils.CommonUtils; | 19 | import com.cnlive.shenhe.utils.CommonUtils; |
| 19 | import com.github.pagehelper.PageInfo; | 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 | import org.slf4j.Logger; | 26 | import org.slf4j.Logger; |
| 21 | import org.slf4j.LoggerFactory; | 27 | import org.slf4j.LoggerFactory; |
| 22 | import org.springframework.beans.factory.annotation.Autowired; | 28 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -24,7 +30,15 @@ import org.springframework.stereotype.Controller; | @@ -24,7 +30,15 @@ import org.springframework.stereotype.Controller; | ||
| 24 | import org.springframework.ui.Model; | 30 | import org.springframework.ui.Model; |
| 25 | import org.springframework.web.bind.annotation.*; | 31 | import org.springframework.web.bind.annotation.*; |
| 26 | 32 | ||
| 33 | +import javax.servlet.ServletOutputStream; | ||
| 34 | +import javax.servlet.http.HttpServletResponse; | ||
| 27 | import javax.servlet.http.HttpSession; | 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 | import java.util.Date; | 42 | import java.util.Date; |
| 29 | import java.util.List; | 43 | import java.util.List; |
| 30 | 44 | ||
| @@ -206,5 +220,202 @@ public class ContentController { | @@ -206,5 +220,202 @@ public class ContentController { | ||
| 206 | return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "退领了" + n + "条内容"); | 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 | \ No newline at end of file | 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
src/main/java/com/cnlive/shenhe/serviceImpl/ContentServiceImpl.java
| @@ -3,6 +3,7 @@ package com.cnlive.shenhe.serviceImpl; | @@ -3,6 +3,7 @@ package com.cnlive.shenhe.serviceImpl; | ||
| 3 | import com.alibaba.fastjson.JSONObject; | 3 | import com.alibaba.fastjson.JSONObject; |
| 4 | import com.cnlive.shenhe.entity.ShyComments; | 4 | import com.cnlive.shenhe.entity.ShyComments; |
| 5 | import com.cnlive.shenhe.entity.ShyContent; | 5 | import com.cnlive.shenhe.entity.ShyContent; |
| 6 | +import com.cnlive.shenhe.entity.ShyLive; | ||
| 6 | import com.cnlive.shenhe.entity.ShySites; | 7 | import com.cnlive.shenhe.entity.ShySites; |
| 7 | import com.cnlive.shenhe.entity.ShyUsers; | 8 | import com.cnlive.shenhe.entity.ShyUsers; |
| 8 | import com.cnlive.shenhe.entity.ShyVideos; | 9 | import com.cnlive.shenhe.entity.ShyVideos; |
| @@ -22,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -22,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
| 22 | import org.springframework.stereotype.Service; | 23 | import org.springframework.stereotype.Service; |
| 23 | import tk.mybatis.mapper.entity.Example; | 24 | import tk.mybatis.mapper.entity.Example; |
| 24 | 25 | ||
| 26 | +import java.sql.Timestamp; | ||
| 27 | +import java.text.ParseException; | ||
| 25 | import java.util.Date; | 28 | import java.util.Date; |
| 26 | import java.util.List; | 29 | import java.util.List; |
| 27 | 30 | ||
| @@ -91,9 +94,11 @@ public class ContentServiceImpl { | @@ -91,9 +94,11 @@ public class ContentServiceImpl { | ||
| 91 | } else { | 94 | } else { |
| 92 | example.setOrderByClause("create_date desc"); | 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 | criteria.andGreaterThanOrEqualTo("create_date", start_date); | 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 | if (CommonUtils.isNotEmpty(title)) { | 103 | if (CommonUtils.isNotEmpty(title)) { |
| 99 | criteria.andLike("title", "%" + title + "%"); | 104 | criteria.andLike("title", "%" + title + "%"); |
| @@ -104,15 +109,9 @@ public class ContentServiceImpl { | @@ -104,15 +109,9 @@ public class ContentServiceImpl { | ||
| 104 | if (CommonUtils.isNotNull(spid)) { | 109 | if (CommonUtils.isNotNull(spid)) { |
| 105 | criteria.andEqualTo("sp_id", spid); | 110 | criteria.andEqualTo("sp_id", spid); |
| 106 | } | 111 | } |
| 107 | - if (CommonUtils.isNotNull(contentId)) { | 112 | + if (CommonUtils.isNotEmpty(contentId)) { |
| 108 | criteria.andEqualTo("content_id", contentId); | 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 | if (CommonUtils.isNotNull(receive_status)) { | 115 | if (CommonUtils.isNotNull(receive_status)) { |
| 117 | criteria.andEqualTo("receive_status", receive_status); | 116 | criteria.andEqualTo("receive_status", receive_status); |
| 118 | if (receive_status!=CommonConst.RECEIVE_BEFORE) { | 117 | if (receive_status!=CommonConst.RECEIVE_BEFORE) { |
| @@ -120,20 +119,49 @@ public class ContentServiceImpl { | @@ -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 | PageHelper.startPage(page, pageSize, true); | 122 | PageHelper.startPage(page, pageSize, true); |
| 133 | List<ShyContent> contentList = shyContentMapper.selectByExample(example); | 123 | List<ShyContent> contentList = shyContentMapper.selectByExample(example); |
| 134 | PageInfo<ShyContent> pageInfo = new PageInfo<>(contentList); | 124 | PageInfo<ShyContent> pageInfo = new PageInfo<>(contentList); |
| 135 | return pageInfo; | 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 | public ShyContent getDetailsContent(Integer id) { | 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,6 +56,27 @@ public class AuditPass { | ||
| 56 | Map<String, String> post = httpUtil.post(URL); | 56 | Map<String, String> post = httpUtil.post(URL); |
| 57 | return JSONObject.parseObject(post.get("result")); | 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,6 +16,7 @@ | ||
| 16 | <result column="spid" jdbcType="INTEGER" property="spid" /> | 16 | <result column="spid" jdbcType="INTEGER" property="spid" /> |
| 17 | <result column="app_id" jdbcType="VARCHAR" property="app_id" /> | 17 | <result column="app_id" jdbcType="VARCHAR" property="app_id" /> |
| 18 | <result column="comment_original_url" jdbcType="VARCHAR" property="comment_original_url" /> | 18 | <result column="comment_original_url" jdbcType="VARCHAR" property="comment_original_url" /> |
| 19 | + <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" /> | ||
| 19 | <result column="updater" jdbcType="VARCHAR" property="updater" /> | 20 | <result column="updater" jdbcType="VARCHAR" property="updater" /> |
| 20 | <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" /> | 21 | <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" /> |
| 21 | <result column="callback" jdbcType="VARCHAR" property="callback" /> | 22 | <result column="callback" jdbcType="VARCHAR" property="callback" /> |
| @@ -27,7 +28,7 @@ | @@ -27,7 +28,7 @@ | ||
| 27 | <result column="comment_user_ip" jdbcType="CHAR" property="comment_user_ip" /> | 28 | <result column="comment_user_ip" jdbcType="CHAR" property="comment_user_ip" /> |
| 28 | <result column="created_at" jdbcType="TIMESTAMP" property="created_at" /> | 29 | <result column="created_at" jdbcType="TIMESTAMP" property="created_at" /> |
| 29 | <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" /> | 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 | <result column="receive_user_id" jdbcType="VARCHAR" property="receive_user_id" /> | 32 | <result column="receive_user_id" jdbcType="VARCHAR" property="receive_user_id" /> |
| 32 | </resultMap> | 33 | </resultMap> |
| 33 | </mapper> | 34 | </mapper> |
| 34 | \ No newline at end of file | 35 | \ No newline at end of file |
src/main/resources/mapper/ShyContentMapper.xml
| @@ -17,6 +17,7 @@ | @@ -17,6 +17,7 @@ | ||
| 17 | <result column="callback" jdbcType="VARCHAR" property="callback" /> | 17 | <result column="callback" jdbcType="VARCHAR" property="callback" /> |
| 18 | <result column="source" jdbcType="VARCHAR" property="source" /> | 18 | <result column="source" jdbcType="VARCHAR" property="source" /> |
| 19 | <result column="author" jdbcType="VARCHAR" property="author" /> | 19 | <result column="author" jdbcType="VARCHAR" property="author" /> |
| 20 | + <result column="content_time" jdbcType="TIMESTAMP" property="content_time" /> | ||
| 20 | <result column="create_date" jdbcType="TIMESTAMP" property="create_date" /> | 21 | <result column="create_date" jdbcType="TIMESTAMP" property="create_date" /> |
| 21 | <result column="last_update" jdbcType="TIMESTAMP" property="last_update" /> | 22 | <result column="last_update" jdbcType="TIMESTAMP" property="last_update" /> |
| 22 | <result column="receive_status" jdbcType="INTEGER" property="receive_status" /> | 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 | \ No newline at end of file | 38 | \ No newline at end of file |
src/main/resources/mapper/ShyVideosMapper.xml
| @@ -16,6 +16,7 @@ | @@ -16,6 +16,7 @@ | ||
| 16 | <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" /> | 16 | <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" /> |
| 17 | <result column="callback" jdbcType="VARCHAR" property="callback" /> | 17 | <result column="callback" jdbcType="VARCHAR" property="callback" /> |
| 18 | <result column="video_priority" jdbcType="VARCHAR" property="video_priority" /> | 18 | <result column="video_priority" jdbcType="VARCHAR" property="video_priority" /> |
| 19 | + <result column="attr_tags" jdbcType="VARCHAR" property="attr_tags" /> | ||
| 19 | <result column="msg" jdbcType="VARCHAR" property="msg" /> | 20 | <result column="msg" jdbcType="VARCHAR" property="msg" /> |
| 20 | <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" /> | 21 | <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" /> |
| 21 | <result column="state" jdbcType="INTEGER" property="state" /> | 22 | <result column="state" jdbcType="INTEGER" property="state" /> |
| @@ -25,7 +26,7 @@ | @@ -25,7 +26,7 @@ | ||
| 25 | <result column="video_id" jdbcType="VARCHAR" property="video_id" /> | 26 | <result column="video_id" jdbcType="VARCHAR" property="video_id" /> |
| 26 | <result column="created_at" jdbcType="TIMESTAMP" property="created_at" /> | 27 | <result column="created_at" jdbcType="TIMESTAMP" property="created_at" /> |
| 27 | <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" /> | 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 | <result column="receive_user_id" jdbcType="VARCHAR" property="receive_user_id" /> | 30 | <result column="receive_user_id" jdbcType="VARCHAR" property="receive_user_id" /> |
| 30 | <result column="avsample" jdbcType="INTEGER" property="avsample" /> | 31 | <result column="avsample" jdbcType="INTEGER" property="avsample" /> |
| 31 | <result column="task_id" jdbcType="VARCHAR" property="task_id" /> | 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" th:text="${session.sessionUser. | @@ -60,8 +60,8 @@ line-height: 2em; margin: 0 auto;font-size: 2em" th:text="${session.sessionUser. | ||
| 60 | <span class="menu-item-top">审核云</span> | 60 | <span class="menu-item-top">审核云</span> |
| 61 | </a> | 61 | </a> |
| 62 | <ul class="treeview-menu"> | 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 | <li><a href="/comments/page?state=0&receive=0" id="/comments/page"> 评论审核</a></li> | 65 | <li><a href="/comments/page?state=0&receive=0" id="/comments/page"> 评论审核</a></li> |
| 66 | <!-- <li><a href="/content/page?receive_status=0" id="/content/page"> 图文审核</a></li> --> | 66 | <!-- <li><a href="/content/page?receive_status=0" id="/content/page"> 图文审核</a></li> --> |
| 67 | </ul> | 67 | </ul> |
src/main/resources/templates/common/head.html
| @@ -79,5 +79,10 @@ | @@ -79,5 +79,10 @@ | ||
| 79 | 79 | ||
| 80 | <link href="../../static/css/app.css" rel="stylesheet"> | 80 | <link href="../../static/css/app.css" rel="stylesheet"> |
| 81 | <script src="../../static/js/app.js"></script> | 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 | </head> | 87 | </head> |
| 83 | </html> | 88 | </html> |
| 84 | \ No newline at end of file | 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,10 +53,9 @@ | ||
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | <div class="btn-group margin-bottom pull-right"> | 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 | <button type="button" class="btn btn-sm margin-r-5 filter " | 59 | <button type="button" class="btn btn-sm margin-r-5 filter " |
| 61 | th:onclick="'javascript:quanbu()'" value="" id="quanbu"> | 60 | th:onclick="'javascript:quanbu()'" value="" id="quanbu"> |
| 62 | 全部 | 61 | 全部 |
| @@ -562,6 +561,13 @@ | @@ -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 | </script> | 571 | </script> |
| 566 | <!-- 模态框(Modal) --> | 572 | <!-- 模态框(Modal) --> |
| 567 | <div class="modal fade" id="msgModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> | 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">×</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;"> | ||
| 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">×</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 | \ No newline at end of file | 280 | \ No newline at end of file |