Commit ebcc6fd1abb0438e38ebc40a3b9ede1b9b7e9b0c

Authored by liwei2917
1 parent 3964eb4c

直播开发测试

src/main/java/com/cnlive/shenhe/api/LiveControllerApi.java
... ... @@ -5,15 +5,23 @@ import com.alibaba.fastjson.JSONArray;
5 5 import com.alibaba.fastjson.JSONObject;
6 6 import com.cnlive.shenhe.bean.ErrorEnum;
7 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;
8 12 import com.cnlive.shenhe.utils.AntiFraudUtil;
  13 +import com.cnlive.shenhe.utils.CommonUtils;
9 14  
  15 +import java.util.Date;
10 16 import java.util.HashMap;
  17 +import java.util.List;
11 18 import java.util.Map;
12 19 import java.util.UUID;
13 20  
14 21 import org.apache.commons.lang3.StringUtils;
15 22 import org.slf4j.Logger;
16 23 import org.slf4j.LoggerFactory;
  24 +import org.springframework.beans.factory.annotation.Autowired;
17 25 import org.springframework.stereotype.Controller;
18 26 import org.springframework.web.bind.annotation.PostMapping;
19 27 import org.springframework.web.bind.annotation.RequestBody;
... ... @@ -27,27 +35,132 @@ import com.cnlive.shenhe.utils.AntiFraudUtil;
27 35 @Controller
28 36 @RequestMapping("/api/live")
29 37 public class LiveControllerApi {
30   - private static Logger logger = LoggerFactory.getLogger(LiveControllerApi.class);
31   -
32   -
  38 + private static Logger logger = LoggerFactory.getLogger(LiveControllerApi.class);
  39 +
  40 + @Autowired
  41 + LiveServiceImpl liveService;
33 42  
34 43 @RequestMapping("/import")
35 44 @ResponseBody
36   - public JSONObject impotVideo(String param) {
  45 + public JSONObject impotVideo(String data) {
37 46 JSONObject map = new JSONObject();
38 47 JSONObject result = new JSONObject();
  48 + boolean YorN =true;//初始化一个请求数据库返回结果
39 49  
  50 + logger.info("直播入库,data=====" + data);
  51 + JSONObject json = JSONObject.parseObject(data);
  52 + //获取所有参数
  53 + String activityId = json.getString("activityId");//直播活动id
  54 + String activityName = json.getString("activityName");//直播活动名称
  55 + Integer activityStatus = Integer.parseInt(json.getString("activityStatus"));//直播活动状态
  56 + String channelId = json.getString("channelId");//直播频道id
  57 + String mp4Url = json.getString("mp4Url");//rtmp直播流
  58 + String hlsUrl = json.getString("hlsUrl");//m3u8直播流
  59 + Integer spId = Integer.parseInt(json.getString("spId"));//spid
  60 + String callback = json.getString("callback");//回调地址
  61 + Integer is_hot = Integer.parseInt(json.getString("priority"));//优先级
  62 + String coverImgUrl = json.getString("coverImgUrl");//封面
  63 + String activityIntro = json.getString("activityIntro");//活动描述
  64 + String playbackUrl = json.getString("playbackUrl");//回放地址
  65 + String startTime = json.getString("startTime");//开始时间
  66 + Date timestamp_start =null;
  67 + if (CommonUtils.isNotEmpty(startTime)) {
  68 + timestamp_start = CommonUtils.getTimestamp(startTime, "yyyy-MM-dd HH:mm:ss");
  69 + }
  70 + String endTime = json.getString("endTime");//结束时间
  71 + Date timestamp_end =null;
  72 + if (CommonUtils.isNotEmpty(endTime)) {
  73 + timestamp_end = CommonUtils.getTimestamp(endTime, "yyyy-MM-dd HH:mm:ss");
  74 + }
  75 +
  76 + ShyLive shylive1 = new ShyLive();
  77 + //得到直播活动id去查询是否已有
  78 + shylive1.setActivity_id(activityId);
  79 + //查询一下 存在,更新 没有,插入
  80 + List<ShyLive> listshyLive = liveService.findshyLive(shylive1);
40 81  
  82 + if (listshyLive.size() > 0) {
  83 + ShyLive shyLive = listshyLive.get(0);
  84 + //封装数据入库
  85 + shyLive.setActivity_name(activityName);//设置直播活动名称
  86 + shyLive.setActivity_status(activityStatus);//设置直播活动状态
  87 + if(activityStatus==3){//发布直播
  88 + shyLive.setActivity_start_time(timestamp_start);
  89 + shyLive.setAvsample_end_time(timestamp_end);
  90 + }else if(activityStatus==1){//启动直播
  91 + shyLive.setActivity_start_time(CommonUtils.getCurrentTime());
  92 + }else if(activityStatus==2){//停止直播
  93 + shyLive.setAvsample_end_time(CommonUtils.getCurrentTime());
  94 + shyLive.setPlayback_url(playbackUrl);//回放地址
  95 + shyLive.setShenhe_state(3);//状态 1:未认领 2.已领未审,3:已审通过,4:已审拒绝
  96 + }
  97 + shyLive.setActivity_intro(activityIntro);//直播活动简介
  98 + shyLive.setM3u8_url(hlsUrl);//m3u8直播流
  99 + shyLive.setRtmp_url(mp4Url);//rtmp直播流
  100 + shyLive.setCallback(callback);//回调地址
  101 + shyLive.setCover_img_url(coverImgUrl);//封面
  102 + shyLive.setIs_hot(is_hot);//是否热点(优先级)
  103 + shyLive.setShenhe_type(3);//审核类型,1:免审,2:机审,3:人工审
  104 + shyLive.setAvsample_state(1);//抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  105 + if(activityStatus==0){//直播撤销
  106 + shyLive.setIs_show(0);//是否显示 0:不显示 1:显示
  107 + }else{
  108 + shyLive.setIs_show(1);
  109 + }
  110 + shyLive.setUpdated_at(CommonUtils.getCurrentTime());//更新时间
  111 +
  112 + YorN = liveService.updateshyLive(shyLive);
  113 + }else{
  114 + //查了,没有,直接插入数据库
  115 + shylive1.setActivity_id(activityId);//设置直播活动id
  116 + shylive1.setActivity_name(activityName);//设置直播活动名称
  117 + shylive1.setActivity_status(activityStatus);//设置直播活动状态
  118 + shylive1.setChannel_id(channelId);//设置直播频道
  119 + shylive1.setShenhe_state(1);//状态 1:未认领 2.已领未审,3:已审通过,4:已审拒绝
  120 + if(activityStatus==3){//发布直播
  121 + shylive1.setActivity_start_time(timestamp_start);
  122 + shylive1.setAvsample_end_time(timestamp_end);
  123 + }else if(activityStatus==1){//启动直播
  124 + shylive1.setActivity_start_time(CommonUtils.getCurrentTime());
  125 + shylive1.setAvsample_end_time(timestamp_end);
  126 + }else if(activityStatus==2){//停止直播
  127 + shylive1.setActivity_start_time(timestamp_start);
  128 + shylive1.setAvsample_end_time(CommonUtils.getCurrentTime());
  129 + shylive1.setPlayback_url(playbackUrl);//回放地址
  130 + shylive1.setShenhe_state(3);//状态 1:未认领 2.已领未审,3:已审通过,4:已审拒绝
  131 + }
  132 + shylive1.setActivity_intro(activityIntro);//直播活动简介
  133 + shylive1.setM3u8_url(hlsUrl);//m3u8直播流
  134 + shylive1.setRtmp_url(mp4Url);//rtmp直播流
  135 + shylive1.setCallback(callback);//回调地址
  136 + shylive1.setCover_img_url(coverImgUrl);//封面
  137 + shylive1.setIs_hot(is_hot);//是否热点(优先级)
  138 + shylive1.setShenhe_type(3);//审核类型,1:免审,2:机审,3:人工审
  139 + shylive1.setAvsample_state(1);//抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  140 + if(activityStatus==0){//直播撤销
  141 + shylive1.setIs_show(0);//是否显示 0:不显示 1:显示
  142 + }else{
  143 + shylive1.setIs_show(1);
  144 + }
  145 +
  146 + shylive1.setCreated_at(CommonUtils.getCurrentTime());//创建时间
  147 + shylive1.setUpdated_at(CommonUtils.getCurrentTime());//更新时间
  148 +
  149 + YorN = liveService.impotVideo(shylive1);
  150 + }
41 151  
42   -
43   -
44   -
45   - result.put("errorCode", "0");
46   - result.put("errorMessage", "直播审核请求收到成功");
47   - map.put("statusCode", "200");
48   - map.put("result", result);
49   -
50   - return map;
  152 + if (YorN == true) {
  153 + result.put("errorCode", "0");
  154 + result.put("errorMessage", "直播审核请求收到成功");
  155 + map.put("statusCode", "200");
  156 + map.put("result", result);
  157 + } else {
  158 + result.put("errorCode", "-1");
  159 + result.put("errorMessage", "直播审核入库失败");
  160 + map.put("statusCode", "300");
  161 + map.put("result", result);
  162 + }
  163 + return map;
51 164 }
52 165  
53 166  
... ...
src/main/java/com/cnlive/shenhe/controller/VideosStreamController.java renamed to src/main/java/com/cnlive/shenhe/controller/LiveController.java
... ... @@ -9,9 +9,11 @@ import com.alibaba.fastjson.JSONObject;
9 9 import com.cnlive.shenhe.bean.ErrorEnum;
10 10 import com.cnlive.shenhe.bean.ResponseBean;
11 11 import com.cnlive.shenhe.bean.SessionUser;
  12 +import com.cnlive.shenhe.entity.ShyLive;
12 13 import com.cnlive.shenhe.entity.ShySites;
13 14 import com.cnlive.shenhe.entity.ShyUsers;
14 15 import com.cnlive.shenhe.entity.ShyVideos;
  16 +import com.cnlive.shenhe.serviceImpl.LiveServiceImpl;
15 17 import com.cnlive.shenhe.serviceImpl.SitesServiceImpl;
16 18 import com.cnlive.shenhe.serviceImpl.UsersServiceImpl;
17 19 import com.cnlive.shenhe.serviceImpl.VideosServiceImpl;
... ... @@ -38,8 +40,8 @@ import java.util.List;
38 40  
39 41 @Controller
40 42 @RequestMapping("/live")
41   -public class VideosStreamController {
42   - private static Logger logger = LoggerFactory.getLogger(VideosStreamController.class);
  43 +public class LiveController {
  44 + private static Logger logger = LoggerFactory.getLogger(LiveController.class);
43 45 @Autowired
44 46 AuditPass Pass;
45 47 @Autowired
... ... @@ -48,6 +50,8 @@ public class VideosStreamController {
48 50 UsersServiceImpl usersService;
49 51 @Autowired
50 52 SitesServiceImpl sitesService;
  53 + @Autowired
  54 + LiveServiceImpl liveService;
51 55  
52 56 @Value("${qn_domain}")
53 57 String qn_domain;
... ... @@ -367,7 +371,7 @@ public class VideosStreamController {
367 371 }
368 372  
369 373 /**
370   - * 打回(审核拒绝,应要求不加权限、状态等限制)
  374 + * 打回(审核拒绝)
371 375 *
372 376 * @param ids
373 377 * @param msg
... ... @@ -380,32 +384,32 @@ public class VideosStreamController {
380 384 SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
381 385 String userId = sessionUser.getUserId();
382 386 ResponseBean responseBean = new ResponseBean();
383   - String[] shyVideoIds = ids.split(",");
  387 + String[] shyLiveIds = ids.split(",");
384 388 String showMsg = "";
385   - for (String shyVideoId : shyVideoIds) {
386   - ShyVideos shyVideos = videosService.selectByPrimaryKey(Integer.parseInt(shyVideoId));
  389 + for (String shyLiveId : shyLiveIds) {
  390 + ShyLive shyLive = liveService.selectByPrimaryKey(Integer.parseInt(shyLiveId));
387 391 JSONObject result = null;
388 392 try {
389   - result = Pass.auditPass(shyVideos.getVideo_id(), 4, msg, msg, shyVideos.getCallback());
  393 + result = Pass.auditPass(shyLive.getActivity_id(), 6, msg, msg, shyLive.getCallback());
390 394 } catch (Exception e) {
391   - logger.error("视频审核失败,id==" + shyVideoId, e);
392   - showMsg = showMsg + "," + shyVideos.getVideo_title() + " 拒绝请求失败";
  395 + logger.error("直播视频审核失败,id==" + shyLiveId, e);
  396 + showMsg = showMsg + "," + shyLive.getActivity_id() + " 拒绝请求失败";
393 397 break;
394 398 }
395 399 if (result == null) {
396   - logger.error("视频审核失败且接口错误没有返回信息,id==" + shyVideoId);
397   - showMsg = showMsg + "," + shyVideos.getVideo_title() + " 拒绝请求失败";
  400 + logger.error("直播视频审核失败且接口错误没有返回信息,id==" + shyLiveId);
  401 + showMsg = showMsg + "," + shyLive.getActivity_id() + " 拒绝请求失败";
398 402 break;
399 403 }
400 404 Integer code = result.getInteger("code");
401 405 if (code != 0) {
402   - logger.error("视频审核失败,id:{},code:{}", shyVideoId, code);
403   - showMsg = showMsg + "," + shyVideos.getVideo_title() + " " + result.getString("msg");
  406 + logger.error("直播视频审核失败,id:{},code:{}", shyLiveId, code);
  407 + showMsg = showMsg + "," + shyLive.getActivity_id() + " " + result.getString("msg");
404 408 break;
405 409 }
406   - int i = videosService.updateVideo(Integer.parseInt(shyVideoId), userId,null,"", 2, msg);
  410 + int i = liveService.updateLive(Integer.parseInt(shyLiveId), userId,null,"", 4, msg);
407 411 if (i == 0) {
408   - showMsg = showMsg + "," + shyVideos.getVideo_title() + " 更新失败";
  412 + showMsg = showMsg + "," + shyLive.getActivity_id() + " 更新失败";
409 413 break;
410 414 }
411 415 }
... ...
src/main/java/com/cnlive/shenhe/entity/ShyLive.java
... ... @@ -29,14 +29,14 @@ public class ShyLive {
29 29 private String activity_name;
30 30  
31 31 /**
32   - * 直播活动状态,1:直播中,2:直播完成,3:待直播,4:直播撤销
  32 + * 直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销
33 33 */
34   - private Boolean activity_status;
  34 + private Integer activity_status;
35 35  
36 36 /**
37 37 * 直播活动开始时间
38 38 */
39   - private String activity_start_time;
  39 + private Date activity_start_time;
40 40  
41 41 /**
42 42 * 直播活动结束时间
... ... @@ -76,17 +76,17 @@ public class ShyLive {
76 76 /**
77 77 * 是否是热点: 0:全部 ,1:不是 ,2: 是
78 78 */
79   - private Boolean is_hot;
  79 + private Integer is_hot;
80 80  
81 81 /**
82 82 * 审核类型,1:免审,2:机审,3:人工审
83 83 */
84   - private Boolean shenhe_type;
  84 + private Integer shenhe_type;
85 85  
86 86 /**
87 87 * 状态 1:未认领 2.已领未审,3:已审通过,4:已审拒绝
88 88 */
89   - private Boolean shenhe_state;
  89 + private Integer shenhe_state;
90 90  
91 91 /**
92 92 * 更新者
... ... @@ -104,6 +104,11 @@ public class ShyLive {
104 104 private String shenhe_msg;
105 105  
106 106 /**
  107 + * 抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  108 + */
  109 + private Integer avsample_state;
  110 +
  111 + /**
107 112 * 抽帧开始时间
108 113 */
109 114 private Date avsample_start_time;
... ... @@ -116,7 +121,7 @@ public class ShyLive {
116 121 /**
117 122 * 是否显示 0:不显示 1:显示
118 123 */
119   - private Boolean is_show;
  124 + private Integer is_show;
120 125  
121 126 private Date created_at;
122 127  
... ... @@ -223,7 +228,7 @@ public class ShyLive {
223 228 *
224 229 * @return activity_status - 直播活动状态,1:直播中,2:直播完成,3:待直播,4:直播撤销
225 230 */
226   - public Boolean getActivity_status() {
  231 + public Integer getActivity_status() {
227 232 return activity_status;
228 233 }
229 234  
... ... @@ -232,7 +237,7 @@ public class ShyLive {
232 237 *
233 238 * @param activity_status 直播活动状态,1:直播中,2:直播完成,3:待直播,4:直播撤销
234 239 */
235   - public void setActivity_status(Boolean activity_status) {
  240 + public void setActivity_status(Integer activity_status) {
236 241 this.activity_status = activity_status;
237 242 }
238 243  
... ... @@ -241,7 +246,7 @@ public class ShyLive {
241 246 *
242 247 * @return activity_start_time - 直播活动开始时间
243 248 */
244   - public String getActivity_start_time() {
  249 + public Date getActivity_start_time() {
245 250 return activity_start_time;
246 251 }
247 252  
... ... @@ -250,7 +255,7 @@ public class ShyLive {
250 255 *
251 256 * @param activity_start_time 直播活动开始时间
252 257 */
253   - public void setActivity_start_time(String activity_start_time) {
  258 + public void setActivity_start_time(Date activity_start_time) {
254 259 this.activity_start_time = activity_start_time;
255 260 }
256 261  
... ... @@ -385,7 +390,7 @@ public class ShyLive {
385 390 *
386 391 * @return is_hot - 是否是热点: 0:全部 ,1:不是 ,2: 是
387 392 */
388   - public Boolean getIs_hot() {
  393 + public Integer getIs_hot() {
389 394 return is_hot;
390 395 }
391 396  
... ... @@ -394,7 +399,7 @@ public class ShyLive {
394 399 *
395 400 * @param is_hot 是否是热点: 0:全部 ,1:不是 ,2: 是
396 401 */
397   - public void setIs_hot(Boolean is_hot) {
  402 + public void setIs_hot(Integer is_hot) {
398 403 this.is_hot = is_hot;
399 404 }
400 405  
... ... @@ -403,7 +408,7 @@ public class ShyLive {
403 408 *
404 409 * @return shenhe_type - 审核类型,1:免审,2:机审,3:人工审
405 410 */
406   - public Boolean getShenhe_type() {
  411 + public Integer getShenhe_type() {
407 412 return shenhe_type;
408 413 }
409 414  
... ... @@ -412,7 +417,7 @@ public class ShyLive {
412 417 *
413 418 * @param shenhe_type 审核类型,1:免审,2:机审,3:人工审
414 419 */
415   - public void setShenhe_type(Boolean shenhe_type) {
  420 + public void setShenhe_type(Integer shenhe_type) {
416 421 this.shenhe_type = shenhe_type;
417 422 }
418 423  
... ... @@ -421,7 +426,7 @@ public class ShyLive {
421 426 *
422 427 * @return shenhe_state - 状态 1:未认领 2.已领未审,3:已审通过,4:已审拒绝
423 428 */
424   - public Boolean getShenhe_state() {
  429 + public Integer getShenhe_state() {
425 430 return shenhe_state;
426 431 }
427 432  
... ... @@ -430,7 +435,7 @@ public class ShyLive {
430 435 *
431 436 * @param shenhe_state 状态 1:未认领 2.已领未审,3:已审通过,4:已审拒绝
432 437 */
433   - public void setShenhe_state(Boolean shenhe_state) {
  438 + public void setShenhe_state(Integer shenhe_state) {
434 439 this.shenhe_state = shenhe_state;
435 440 }
436 441  
... ... @@ -489,6 +494,24 @@ public class ShyLive {
489 494 }
490 495  
491 496 /**
  497 + * 获取抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  498 + *
  499 + * @return avsample_state - 抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  500 + */
  501 + public Integer getAvsample_state() {
  502 + return avsample_state;
  503 + }
  504 +
  505 + /**
  506 + * 设置抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  507 + *
  508 + * @param avsample_state 抽帧状态 1:不抽帧 2:待抽帧 3:抽帧中 4:抽帧完成 5:抽帧失败
  509 + */
  510 + public void setAvsample_state(Integer avsample_state) {
  511 + this.avsample_state = avsample_state;
  512 + }
  513 +
  514 + /**
492 515 * 获取抽帧开始时间
493 516 *
494 517 * @return avsample_start_time - 抽帧开始时间
... ... @@ -529,7 +552,7 @@ public class ShyLive {
529 552 *
530 553 * @return is_show - 是否显示 0:不显示 1:显示
531 554 */
532   - public Boolean getIs_show() {
  555 + public Integer getIs_show() {
533 556 return is_show;
534 557 }
535 558  
... ... @@ -538,7 +561,7 @@ public class ShyLive {
538 561 *
539 562 * @param is_show 是否显示 0:不显示 1:显示
540 563 */
541   - public void setIs_show(Boolean is_show) {
  564 + public void setIs_show(Integer is_show) {
542 565 this.is_show = is_show;
543 566 }
544 567  
... ...
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,String attr_tags, Integer state, String msg) {
  112 + ShyLive shyLive = shyLiveMapper.selectByPrimaryKey(id);
  113 + shyLive.setAuditor(auditor_id);
  114 + shyLive.setShenhe_state(state);
  115 + shyLive.setShenhe_msg(msg);
  116 + shyLive.setUpdater(updater);
  117 + return shyLiveMapper.updateByPrimaryKey(shyLive);
  118 + }
  119 +
  120 + public PageInfo<ShyVideos> getListContent(String video_title, String start_date, String end_date, Integer state, Integer receive, Integer page, Integer pageSize, String video_priority, String orderByClause, Integer spid, String userId) {
  121 + Example example = new Example(ShyVideos.class);
  122 + Example.Criteria criteria = example.createCriteria();
  123 + Example.Criteria criteria2 = example.createCriteria();
  124 + if (CommonUtils.isNotEmpty(orderByClause)) {
  125 + example.setOrderByClause(orderByClause);
  126 + }
  127 + if (CommonUtils.isNotEmpty(start_date) && CommonUtils.isNotEmpty(end_date)) {
  128 + Timestamp startdate = null;
  129 + Timestamp enddate = null;
  130 + try {
  131 +// startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd HH:mm:ss");
  132 +// enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd HH:mm:ss");
  133 + startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd");
  134 + enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd");
  135 + } catch (ParseException e) {
  136 + e.printStackTrace();
  137 + }
  138 + criteria.andGreaterThanOrEqualTo("created_at", startdate);
  139 + criteria2.andGreaterThanOrEqualTo("created_at", startdate);
  140 + criteria.andLessThanOrEqualTo("created_at", enddate);
  141 + criteria2.andLessThanOrEqualTo("created_at", enddate);
  142 + }
  143 + if (CommonUtils.isNotEmpty(video_title)) {
  144 + criteria.andLike("video_title", "%" + video_title + "%");
  145 + criteria2.andLike("video_title", "%" + video_title + "%");
  146 + }
  147 +
  148 + if (CommonUtils.isNotEmpty(video_priority)) {
  149 + criteria.andEqualTo("video_priority", video_priority);
  150 + criteria2.andEqualTo("video_priority", video_priority);
  151 + }
  152 + if (CommonUtils.isNotNull(spid)) {
  153 + criteria.andEqualTo("spid", spid);
  154 + criteria2.andEqualTo("spid", spid);
  155 + }
  156 + if (CommonUtils.isNotNull(receive)) {
  157 + criteria.andEqualTo("receive", receive);
  158 + criteria2.andEqualTo("receive", receive);
  159 + if (receive == CommonConst.RECEIVE_AFTER) {
  160 + criteria.andEqualTo("receive_user_id", userId);
  161 + criteria2.andEqualTo("receive_user_id", userId);
  162 + }
  163 + }
  164 + if (CommonUtils.isNotNull(state) && state == 0) {
  165 + criteria.andEqualTo("state", state);
  166 + } else if (CommonUtils.isNotNull(state) && state == 1) {
  167 + criteria.andEqualTo("state", state);
  168 + criteria2.andEqualTo("state", 2);
  169 + example.or(criteria2);
  170 + }
  171 + //默认按上传时间倒序排序
  172 + example.setOrderByClause("created_at desc");
  173 + PageHelper.startPage(page, pageSize, true);
  174 + List<ShyVideos> shyVideosList = shyVideosMapper.selectByExample(example);
  175 + PageInfo<ShyVideos> pageInfo = new PageInfo<>(shyVideosList);
  176 + return pageInfo;
  177 + }
  178 +
  179 + public ShyVideos getDetailsContent(Integer id) {
  180 + ShyVideos shyVideos = shyVideosMapper.selectByPrimaryKey(id);
  181 + if (shyVideos.getState() != CommonConst.AUDIT_INTT) {
  182 + String updater = CommonUtils.isEmpty(shyVideos.getUpdater()) || "null".equals(shyVideos.getUpdater())? "白名单":shyVideos.getUpdater();
  183 + String auditor_id = shyVideos.getAuditor_id();
  184 + if (CommonUtils.isNotEmpty(auditor_id)) {
  185 + ShyUsers user = new ShyUsers();
  186 + user.setUser_id(auditor_id);
  187 + user = shyUsersMapper.selectOne(user);
  188 + String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail())? "" : user.getEmail();
  189 + String userName = CommonUtils.isEmpty(user.getUsername()) ? email: user.getUsername();
  190 + updater = userName;
  191 + }
  192 + shyVideos.setUpdater(updater);
  193 + }
  194 + return shyVideos;
  195 + }
  196 +
  197 + public Integer receive(String ids, Integer num, String userId, Integer spid) {
  198 + Integer n = 0;
  199 + if (CommonUtils.isNotEmpty(ids)) {
  200 + String[] cids = ids.split(",");
  201 + for (String cid : cids) {
  202 + ShyVideos shyVideos = shyVideosMapper.selectByPrimaryKey(Integer.parseInt(cid));
  203 + if (CommonUtils.isNotNull(shyVideos) && shyVideos.getState() == CommonConst.AUDIT_INTT && shyVideos.getReceive()==CommonConst.RECEIVE_BEFORE) {
  204 + shyVideos.setReceive_user_id(userId);
  205 + shyVideos.setReceive(CommonConst.RECEIVE_AFTER);
  206 + shyVideosMapper.updateByPrimaryKeySelective(shyVideos);
  207 + n++;
  208 + }
  209 + }
  210 + } else if (CommonUtils.isNotNull(num) && num > 0) {
  211 + Example example = new Example(ShyVideos.class);
  212 + example.setOrderByClause("created_at desc");
  213 + example.and().andEqualTo("state", CommonConst.AUDIT_INTT);
  214 + example.and().andEqualTo("receive", CommonConst.RECEIVE_BEFORE);
  215 + if (CommonUtils.isNotNull(spid) && spid != 0) example.and().andEqualTo("spid", spid);
  216 + List<ShyVideos> shyCommentsList = shyVideosMapper.selectByExampleAndRowBounds(example, new RowBounds(0, num));
  217 + if (!shyCommentsList.isEmpty()) {
  218 + for (ShyVideos shyComments : shyCommentsList) {
  219 + shyComments.setReceive_user_id(userId);
  220 + shyComments.setReceive(CommonConst.RECEIVE_AFTER);
  221 + shyVideosMapper.updateByPrimaryKeySelective(shyComments);
  222 + n++;
  223 + }
  224 + }
  225 + }
  226 + return n;
  227 + }
  228 +
  229 + public ResponseBean retReceive(String ids, String userId) {
  230 + boolean result = true;
  231 + String[] cids = ids.split(",");
  232 + for (String cid : cids) {
  233 + ShyVideos shyVideos = shyVideosMapper.selectByPrimaryKey(Integer.parseInt(cid));
  234 + if (shyVideos.getState() == CommonConst.AUDIT_INTT && shyVideos.getReceive()==CommonConst.RECEIVE_AFTER && shyVideos.getReceive_user_id().equals(userId)) {
  235 + shyVideos.setReceive(CommonConst.RECEIVE_BEFORE);
  236 + shyVideos.setReceive_user_id(null);
  237 + int i = shyVideosMapper.updateByPrimaryKey(shyVideos);
  238 + if (i != 1) {
  239 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "退领失败,请重试");
  240 + }
  241 + } else {
  242 + return new ResponseBean(ErrorEnum.ERROR.getErrorCode(), "退领失败,您选中的内容包含已退领的或已经审核的");
  243 + }
  244 + }
  245 + return new ResponseBean(ErrorEnum.SUCCESS.getErrorCode(), "已退领");
  246 + }
  247 +
  248 + /**
  249 + * 根据条件导出数据excel
  250 + *
  251 + * @param video_title
  252 + * @param start_date
  253 + * @param end_date
  254 + * @param state
  255 + * @param receive
  256 + * @param video_priority
  257 + * @param orderByClause
  258 + * @param spid
  259 + * @param userId
  260 + * @return
  261 + */
  262 + public List<ShyVideos> findByCondition(String video_title, String start_date, String end_date, Integer state, Integer receive, String video_priority, String orderByClause, Integer spid, String userId) {
  263 + Example example = new Example(ShyVideos.class);
  264 + Example.Criteria criteria = example.createCriteria();
  265 + Example.Criteria criteria2 = example.createCriteria();
  266 + if (CommonUtils.isNotEmpty(orderByClause)) {
  267 + example.setOrderByClause(orderByClause);
  268 + }
  269 + if (CommonUtils.isNotEmpty(start_date) && CommonUtils.isNotEmpty(end_date)) {
  270 + Timestamp startdate = null;
  271 + Timestamp enddate = null;
  272 + try {
  273 +// startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd HH:mm:ss");
  274 +// enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd HH:mm:ss");
  275 + startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd");
  276 + enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd");
  277 + } catch (ParseException e) {
  278 + e.printStackTrace();
  279 + }
  280 + criteria.andGreaterThanOrEqualTo("created_at", startdate);
  281 + criteria.andLessThanOrEqualTo("created_at", enddate);
  282 + }
  283 + if (CommonUtils.isNotEmpty(video_title)) {
  284 + criteria.andLike("video_title", "%" + video_title + "%");
  285 + }
  286 + if (CommonUtils.isNotNull(state) && state == 0) {
  287 + criteria.andEqualTo("state", state);
  288 + } else if (CommonUtils.isNotNull(state) && state == 1) {
  289 + criteria.andEqualTo("state", state);
  290 + criteria2.andEqualTo("state", 2);
  291 + example.or(criteria2);
  292 + }
  293 + if (CommonUtils.isNotEmpty(video_priority)) {
  294 + criteria.andEqualTo("video_priority", video_priority);
  295 + }
  296 + if (CommonUtils.isNotNull(spid)) {
  297 + criteria.andEqualTo("spid", spid);
  298 + }
  299 + if (CommonUtils.isNotNull(receive)) {
  300 + criteria.andEqualTo("receive", receive);
  301 + if (receive == CommonConst.RECEIVE_AFTER) {
  302 + criteria.andEqualTo("receive_user_id", userId);
  303 + }
  304 + }
  305 + //默认按上传时间倒序排序
  306 + //example.setOrderByClause("video_upload_time desc");
  307 + List<ShyVideos> shyVideosList = shyVideosMapper.selectByExample(example);
  308 + return shyVideosList;
  309 + }
  310 +
  311 +
  312 +
  313 +
  314 +}
... ...
src/main/java/com/cnlive/shenhe/utils/AuditPass.java
... ... @@ -56,6 +56,27 @@ public class AuditPass {
56 56 Map<String, String> post = httpUtil.post(URL);
57 57 return JSONObject.parseObject(post.get("result"));
58 58 }
  59 + /**
  60 + * 直播视频回调
  61 + *
  62 + * @param activity_id
  63 + * @param state
  64 + * @param attr_tags
  65 + * @param msg
  66 + * @return
  67 + */
  68 + public JSONObject livePass(String activity_id, int state, String attr_tags, String msg, String callBack) {
  69 + logger.info("点播回调:activity_id:{},state:{},attr_tags:{},msg:{}", activity_id, state, attr_tags, msg);
  70 + JSONObject params = new JSONObject();
  71 + params.put("activity_id", activity_id);
  72 + params.put("state", state);
  73 + params.put("attr_tags", attr_tags);
  74 + params.put("msg", 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/ShyLiveMapper.xml
... ... @@ -10,8 +10,8 @@
10 10 <result column="channel_id" jdbcType="VARCHAR" property="channel_id" />
11 11 <result column="activity_id" jdbcType="VARCHAR" property="activity_id" />
12 12 <result column="activity_name" jdbcType="VARCHAR" property="activity_name" />
13   - <result column="activity_status" jdbcType="BIT" property="activity_status" />
14   - <result column="activity_start_time" jdbcType="VARCHAR" property="activity_start_time" />
  13 + <result column="activity_status" jdbcType="INTEGER" property="activity_status" />
  14 + <result column="activity_start_time" jdbcType="TIMESTAMP" property="activity_start_time" />
15 15 <result column="activity_end_time" jdbcType="VARCHAR" property="activity_end_time" />
16 16 <result column="activity_intro" jdbcType="VARCHAR" property="activity_intro" />
17 17 <result column="m3u8_url" jdbcType="VARCHAR" property="m3u8_url" />
... ... @@ -19,15 +19,16 @@
19 19 <result column="callback" jdbcType="VARCHAR" property="callback" />
20 20 <result column="cover_img_url" jdbcType="VARCHAR" property="cover_img_url" />
21 21 <result column="playback_url" jdbcType="VARCHAR" property="playback_url" />
22   - <result column="is_hot" jdbcType="BIT" property="is_hot" />
23   - <result column="shenhe_type" jdbcType="BIT" property="shenhe_type" />
24   - <result column="shenhe_state" jdbcType="BIT" property="shenhe_state" />
  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 25 <result column="updater" jdbcType="VARCHAR" property="updater" />
26 26 <result column="auditor" jdbcType="VARCHAR" property="auditor" />
27 27 <result column="shenhe_msg" jdbcType="VARCHAR" property="shenhe_msg" />
  28 + <result column="avsample_state" jdbcType="INTEGER" property="avsample_state" />
28 29 <result column="avsample_start_time" jdbcType="TIMESTAMP" property="avsample_start_time" />
29 30 <result column="avsample_end_time" jdbcType="TIMESTAMP" property="avsample_end_time" />
30   - <result column="is_show" jdbcType="BIT" property="is_show" />
  31 + <result column="is_show" jdbcType="INTEGER" property="is_show" />
31 32 <result column="created_at" jdbcType="TIMESTAMP" property="created_at" />
32 33 <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" />
33 34 <result column="avsample_imgs" jdbcType="LONGVARCHAR" property="avsample_imgs" />
... ...