Commit 3c38cfca86c1b0e90aa5df21d2c3436f3aeebda5

Authored by 刘基城
2 parents cf3fc3d5 cb801165

Merge branch 'master' of http://bj.gitlab.cnlive.com/liujicheng/cnlive_live_web into v532

# Conflicts:
#	.settings/org.eclipse.wst.common.component
#	src/main/java/com/cnlive/mz/live/action/LiveAction.java
.settings/org.eclipse.wst.common.component
  1 +<<<<<<< HEAD
1 2 <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2 3 <wb-module deploy-name="cnlive_live_web">
3 4 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
... ... @@ -33,3 +34,35 @@
33 34 <property name="context-root" value="cnlive_live_web"/>
34 35 </wb-module>
35 36 </project-modules>
  37 +=======
  38 +<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
  39 + <wb-module deploy-name="cnlive_live_web">
  40 + <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
  41 + <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
  42 + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
  43 + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
  44 + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
  45 + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources/i18n"/>
  46 + <dependent-module archiveName="cnlive_live_model-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/cnlive_live_model/cnlive_live_model">
  47 + <dependency-type>uses</dependency-type>
  48 + </dependent-module>
  49 + <dependent-module archiveName="smart-framework-4.0.1.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-framework/smart-framework">
  50 + <dependency-type>uses</dependency-type>
  51 + </dependent-module>
  52 + <dependent-module archiveName="smart-plugin-dbcp-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-dbcp/smart-plugin-dbcp">
  53 + <dependency-type>uses</dependency-type>
  54 + </dependent-module>
  55 + <dependent-module archiveName="smart-plugin-rest-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-rest/smart-plugin-rest">
  56 + <dependency-type>uses</dependency-type>
  57 + </dependent-module>
  58 + <dependent-module archiveName="smart-plugin-i18n-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-i18n/smart-plugin-i18n">
  59 + <dependency-type>uses</dependency-type>
  60 + </dependent-module>
  61 + <dependent-module archiveName="cnlive_mam_commons-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/cnlive_mam_commons/cnlive_mam_commons">
  62 + <dependency-type>uses</dependency-type>
  63 + </dependent-module>
  64 + <property name="java-output-path" value="/cnlive_live_web/target/classes"/>
  65 + <property name="context-root" value="cnlive_live_web"/>
  66 + </wb-module>
  67 +</project-modules>
  68 +>>>>>>> cb8011658d9ad15970225014e8ad4a30104d88d9
... ...
src/main/java/com/cnlive/mz/live/action/LiveAction.java
... ... @@ -45,6 +45,7 @@ import com.cnlive.mz.live.service.TCheckService;
45 45 import com.cnlive.mz.live.service.TLiveService;
46 46 import com.cnlive.mz.live.service.TRoomService;
47 47  
  48 +
48 49 /**
49 50 * TODO: 机构主播和个人主播发起直播活动 <br/>
50 51 * Date: 2016年4月25日 下午1:12:48 <br/>
... ... @@ -203,13 +204,14 @@ public class LiveAction {
203 204 boolean flag = tLiveService.addAcitvity(params);
204 205 if (flag) {
205 206 Map<String, Object> map = new HashMap<String, Object>();
206   - map.put("location", com.cnlive.mz.live.common.Constants.KS_HOST_UP_RTMP+channelID+"?vdoid=" + activityId);
  207 + map.put("location",
  208 + com.cnlive.mz.live.common.Constants.KS_HOST_UP_RTMP + channelID + "?vdoid=" + activityId);
207 209 rb.setData(map);
208 210 rb.setErrorCode("0");
209 211 rb.setErrorMessage("创建活动成功");
210 212 log.info("创建活动成功");
211   - //通知cms直播
212   - boolean success = tLiveService.startLive(tLive);
  213 + // 通知cms直播
  214 + // boolean success = tLiveService.startLive(tLive);
213 215 return rb;
214 216 } else {
215 217 Map<String, Object> map = new HashMap<String, Object>();
... ... @@ -242,23 +244,25 @@ public class LiveAction {
242 244 @Request.Get("/live/epg/startActivity")
243 245 public ResultBean startActivity(Params params) {
244 246 ResultBean rb = new ResultBean();
  247 + log.info(params);
245 248 String appId = params.getString("appId");
246 249 String activityid = params.getString("activityId");
247 250 if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(activityid)) {
248   - Map<String, Object> map = new HashMap<String, Object>();
249   - map.put("location", "");
250   - rb.setData(map);
251 251 rb.setErrorCode("500");
252   - rb.setErrorMessage("启动活动失败");
  252 + rb.setErrorMessage("启动活动失败,参数不正确");
253 253 return rb;
254 254 } else {
255 255 TLive tLive = tLiveService.selectByParams(appId, activityid);
256   - Map<String, Object> map = new HashMap<String, Object>();
257   - map.put("location", tLive.getLive_url());
258   - rb.setData(map);
259   - rb.setErrorCode("0");
260   - rb.setErrorMessage("启动活动成功");
261   - return rb;
  256 + if (tLive == null) {
  257 + log.info("tLive为空......");
  258 + rb.setErrorCode("500");
  259 + rb.setErrorMessage("启动活动失败,活动对象为空");
  260 + return rb;
  261 + } else {
  262 + rb.setErrorCode("0");
  263 + rb.setErrorMessage("启动活动成功");
  264 + return rb;
  265 + }
262 266 }
263 267 }
264 268  
... ... @@ -270,38 +274,42 @@ public class LiveAction {
270 274 */
271 275 @Request.Get("/live/epg/stopActivity")
272 276 public ResultBean stopActivity(Params params) {
  277 + log.info(params);
273 278 ResultBean rb = new ResultBean();
274 279 String appId = params.getString("appId");
275 280 String activityid = params.getString("activityId");
276 281 TLive tLive = tLiveService.selectByParams(appId, activityid);
  282 + Map<String, Object> map = new HashMap<String, Object>();
277 283 if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(activityid)) {
278   - Map<String, Object> map = new HashMap<String, Object>();
279 284 map.put("location", "");
280 285 rb.setData(map);
281 286 rb.setErrorCode("500");
282 287 rb.setErrorMessage("停止直播失败,参数不正确");
283 288 return rb;
284 289 } else {
285   -
286   - String live_url = tLive.getLive_url();
287   - int index = live_url.lastIndexOf("/");
288   - String streamName = live_url.substring(index + 1);
289   - System.out.println("streamName===" + streamName);
  290 + if (tLive == null) {
  291 + map.put("location", "");
  292 + rb.setData(map);
  293 + rb.setErrorCode("500");
  294 + rb.setErrorMessage("停止直播失败,活动对象为空");
  295 + return rb;
  296 + } else {
  297 + String live_url = tLive.getLive_url();
  298 + int index = live_url.lastIndexOf("/");
  299 + String streamName = live_url.substring(index + 1);
  300 + System.out.println("streamName===" + streamName);
290 301 // 直播断流。
291   - tCheckService.close(streamName, tLive.getId(), tLive.getUuid());
292   - //通知cms停止直播
293   - tLiveService.releaseChatRoom(tLive);
  302 + tCheckService.close(streamName, tLive.getId(), tLive.getUuid());
294 303 }
295 304 // 直播通知
296 305 // tLiveService.notify(video_uuid, -1);
297   - Map<String, Object> map = new HashMap<String, Object>();
298 306 map.put("location", tLive.getLive_url());
299 307 rb.setData(map);
300 308 rb.setErrorCode("0");
301 309 rb.setErrorMessage("停止直播成功");
302 310 return rb;
303 311 }
304   -
  312 + }
305 313  
306 314 /**
307 315 * 1.6 获取直播活动列表接口.md
... ... @@ -320,14 +328,21 @@ public class LiveAction {
320 328 map.put("location", "");
321 329 rb.setData(map);
322 330 rb.setErrorCode("500");
323   - rb.setErrorMessage("获取活动列表失败,字段不正确");
  331 + rb.setErrorMessage("获取活动列表失败,参数不正确");
324 332 return rb;
325 333 } else {
326 334 Pager<TLive> tLive = tLiveService.getActivityPager(pageNo, pageSize, appId);
327   - rb.setData(tLive);
328   - rb.setErrorCode("0");
329   - rb.setErrorMessage("获取活动列表成功");
330   - return rb;
  335 + if (tLive == null) {
  336 + rb.setData("");
  337 + rb.setErrorCode("500");
  338 + rb.setErrorMessage("获取活动列表失败,活动对象为空");
  339 + return rb;
  340 + } else {
  341 + rb.setData(tLive);
  342 + rb.setErrorCode("0");
  343 + rb.setErrorMessage("获取活动列表成功");
  344 + return rb;
  345 + }
331 346  
332 347 }
333 348 }
... ... @@ -342,21 +357,28 @@ public class LiveAction {
342 357 ResultBean rb = new ResultBean();
343 358 String appId = params.getString("appId");
344 359 String activityid = params.getString("activityId");
  360 + Map<String, Object> map = new HashMap<String, Object>();
345 361 if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(activityid)) {
346   - Map<String, Object> map = new HashMap<String, Object>();
347 362 map.put("location", "");
348 363 rb.setData(map);
349 364 rb.setErrorCode("500");
350   - rb.setErrorMessage("获取直播回放失败");
  365 + rb.setErrorMessage("获取直播回放失败,参数不正确");
351 366 return rb;
352 367 } else {
353 368 TLive tLive = tLiveService.selectByParams(appId, activityid);
354   - Map<String, Object> map = new HashMap<String, Object>();
355   - map.put("location", tLive.getPlayback_url());
356   - rb.setData(map);
357   - rb.setErrorCode("0");
358   - rb.setErrorMessage("获取直播回放成功");
359   - return rb;
  369 + if (tLive == null) {
  370 + map.put("location", "");
  371 + rb.setData(map);
  372 + rb.setErrorCode("500");
  373 + rb.setErrorMessage("获取直播回放失败,活动对象为空");
  374 + return rb;
  375 + } else {
  376 + map.put("location", tLive.getPlayback_url());
  377 + rb.setData(map);
  378 + rb.setErrorCode("0");
  379 + rb.setErrorMessage("获取直播回放成功");
  380 + return rb;
  381 + }
360 382 }
361 383 }
362 384  
... ... @@ -367,27 +389,35 @@ public class LiveAction {
367 389 */
368 390 @Request.Get("/live/epg/liveplayByAPP")
369 391 public ResultBean liveplayByAPP(Params params) {
  392 + log.info(params);
370 393 ResultBean rb = new ResultBean();
371 394 String appId = params.getString("appId");
372 395 String activityid = params.getString("activityId");
  396 + Map<String, Object> map = new HashMap<String, Object>();
373 397 if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(activityid)) {
374   - Map<String, Object> map = new HashMap<String, Object>();
375 398 map.put("location", "");
376 399 rb.setData(map);
377 400 rb.setErrorCode("500");
378   - rb.setErrorMessage("获取直播回放失败");
  401 + rb.setErrorMessage("获取直播回放失败,参数不正确");
379 402 return rb;
380 403 } else {
381 404 TLive tLive = tLiveService.selectByParams(appId, activityid);
382   - Map<String, Object> map = new HashMap<String, Object>();
383   - map.put("location", tLive.getPlayback_url());
384   - rb.setData(map);
385   - rb.setErrorCode("0");
386   - rb.setErrorMessage("获取直播回放成功");
387   - return rb;
  405 + if (tLive == null) {
  406 + map.put("location", "");
  407 + rb.setData(map);
  408 + rb.setErrorCode("500");
  409 + rb.setErrorMessage("获取直播回放失败,活动对象为空");
  410 + return rb;
  411 + } else {
  412 + map.put("location", tLive.getPlayback_url());
  413 + rb.setData(map);
  414 + rb.setErrorCode("0");
  415 + rb.setErrorMessage("获取直播回放成功");
  416 + return rb;
  417 + }
388 418 }
389 419 }
390   -
  420 +
391 421 /**
392 422 * 1.8 获取APP直播URL接口.md
393 423 *
... ... @@ -409,26 +439,35 @@ public class LiveAction {
409 439 return rb;
410 440 } else {
411 441 TLive tLive = tLiveService.selectByParams(appId, activityid);
412   - TChannel tchannel = tLiveService.selectChannel(tLive.getRelation_id());
413   - if(tchannel!=null){
414   - // 请求到app.......
415   - redirect(response, "http://ips.cnlive.com/IPS/liveplayByAPP.action?appId="+appId+"&channelID="+tLive.getRelation_id());
  442 + if (tLive == null) {
416 443 map.put("location", "");
417 444 rb.setData(map);
418   - rb.setErrorCode("0");
419   - rb.setErrorMessage("302重定向到app");
420   - return rb;
421   - }else{
422   - map.put("location", tLive.getLive_url());
423   - rb.setData(map);
424   - rb.setErrorCode("0");
425   - rb.setErrorMessage("启动app活动成功");
  445 + rb.setErrorCode("500");
  446 + rb.setErrorMessage("启动app活动失败,活动对象为空");
426 447 return rb;
  448 + } else {
  449 + TChannel tchannel = tLiveService.selectChannel(tLive.getRelation_id());
  450 + if (tchannel != null) {
  451 + // 请求到app.......
  452 + redirect(response, "http://ips.cnlive.com/IPS/liveplayByAPP.action?appId=" + appId + "&channelID="
  453 + + tLive.getRelation_id());
  454 + map.put("location", "");
  455 + rb.setData(map);
  456 + rb.setErrorCode("0");
  457 + rb.setErrorMessage("302重定向到app");
  458 + return rb;
  459 + } else {
  460 + map.put("location", tLive.getLive_url());
  461 + rb.setData(map);
  462 + rb.setErrorCode("0");
  463 + rb.setErrorMessage("启动app活动成功");
  464 + return rb;
  465 + }
427 466 }
428 467 }
429   -
  468 +
430 469 }
431   -
  470 +
432 471 /**
433 472 * 1.9 获取H5直播URL接口.md
434 473 *
... ... @@ -450,26 +489,35 @@ public class LiveAction {
450 489 return rb;
451 490 } else {
452 491 TLive tLive = tLiveService.selectByParams(appId, activityid);
453   - TChannel tchannel = tLiveService.selectChannel(tLive.getRelation_id());
454   - if(tchannel!=null){
455   - // 重定向到h5.......
456   - redirect(response, "http://ips.cnlive.com/IPS/liveplayByH5?appId="+appId+"&channelID="+tLive.getRelation_id());
  492 + if (tLive == null) {
457 493 map.put("location", "");
458 494 rb.setData(map);
459   - rb.setErrorCode("0");
460   - rb.setErrorMessage("302重定向到h5");
461   - return rb;
462   - }else{
463   - map.put("location", tLive.getLive_url());
464   - rb.setData(map);
465   - rb.setErrorCode("0");
466   - rb.setErrorMessage("启动h5活动成功");
  495 + rb.setErrorCode("500");
  496 + rb.setErrorMessage("启动h5活动失败,活动对象为空");
467 497 return rb;
  498 + } else {
  499 + TChannel tchannel = tLiveService.selectChannel(tLive.getRelation_id());
  500 + if (tchannel != null) {
  501 + // 重定向到h5.......
  502 + redirect(response, "http://ips.cnlive.com/IPS/liveplayByH5?appId=" + appId + "&channelID="
  503 + + tLive.getRelation_id());
  504 + map.put("location", "");
  505 + rb.setData(map);
  506 + rb.setErrorCode("0");
  507 + rb.setErrorMessage("302重定向到h5");
  508 + return rb;
  509 + } else {
  510 + map.put("location", tLive.getLive_url());
  511 + rb.setData(map);
  512 + rb.setErrorCode("0");
  513 + rb.setErrorMessage("启动h5活动成功");
  514 + return rb;
  515 + }
468 516 }
469 517 }
470   -
  518 +
471 519 }
472   -
  520 +
473 521 /**
474 522 * 2.0 获取SWF直播URL接口.md
475 523 *
... ... @@ -491,22 +539,34 @@ public class LiveAction {
491 539 return rb;
492 540 } else {
493 541 TLive tLive = tLiveService.selectByParams(appId, activityid);
494   - TChannel tchannel = tLiveService.selectChannel(tLive.getRelation_id());
495   - rb.setData(map);
496   - rb.setErrorCode("0");
497   - if(tchannel!=null){
498   - // 302重定向到swf.......
499   - redirect(response, "http://ips.cnlive.com/IPS/liveplayBySWF.action?appId="+appId+"&channelID="+tLive.getRelation_id());
  542 + if (tLive == null) {
500 543 map.put("location", "");
501   - rb.setErrorMessage("302重定向到swf");
502   - return rb;
503   - }else{
504   - map.put("location", tLive.getLive_url());
505   - rb.setErrorMessage("启动swf活动成功");
  544 + rb.setData(map);
  545 + rb.setErrorCode("500");
  546 + rb.setErrorMessage("启动swf活动失败,活动对象为空");
506 547 return rb;
  548 + } else {
  549 + TChannel tchannel = tLiveService.selectChannel(tLive.getRelation_id());
  550 + rb.setData(map);
  551 + rb.setErrorCode("0");
  552 + if (tchannel != null) {
  553 + // 302重定向到swf.......
  554 + redirect(response, "http://ips.cnlive.com/IPS/liveplayBySWF.action?appId=" + appId + "&channelID="
  555 + + tLive.getRelation_id());
  556 + map.put("location", "");
  557 + rb.setErrorMessage("302重定向到swf");
  558 + return rb;
  559 + } else {
  560 +
  561 + map.put("location", tLive.getLive_url());
  562 + rb.setErrorMessage("启动swf活动成功");
  563 + return rb;
  564 + }
507 565 }
508 566 }
  567 +
509 568 }
  569 +
510 570 /**
511 571 * 2.1 获取推流直播播放地址.md
512 572 *
... ... @@ -527,14 +587,15 @@ public class LiveAction {
527 587 return rb;
528 588 } else {
529 589 TLive tLive = tLiveService.selectByParams(appId, activityid);
530   - Map<String, Object> map = new HashMap<String, Object>();
531   - map.put("location", tLive.getLive_url());
532   - rb.setData(map);
533   - rb.setErrorCode("0");
534   - rb.setErrorMessage("启动活动成功");
535   - return rb;
536   - }
  590 + Map<String, Object> map = new HashMap<String, Object>();
  591 + map.put("location", tLive.getLive_url());
  592 + rb.setData(map);
  593 + rb.setErrorCode("0");
  594 + rb.setErrorMessage("启动活动成功");
  595 + return rb;
537 596 }
  597 + }
  598 +
538 599 @Request.Post("/live/epg/error500")
539 600 public ResultBean error(Params params) {
540 601 ResultBean rb = new ResultBean();
... ... @@ -545,57 +606,47 @@ public class LiveAction {
545 606 rb.setErrorMessage("失败");
546 607 return rb;
547 608 }
548   -
  609 +
549 610 public static void redirect(HttpServletResponse response, String redirectUrl) {
550   - try {
551   - response.setContentType("application/mpegurl");
552   - response.setStatus(302);
553   - response.setHeader("Location", redirectUrl);
554   - response.setHeader("Connection", "close");
555   - } catch (Exception e) {
556   - throw new RuntimeException(e);
557   - }
558   - }
  611 + try {
  612 + response.setContentType("application/mpegurl");
  613 + response.setStatus(302);
  614 + response.setHeader("Location", redirectUrl);
  615 + response.setHeader("Connection", "close");
  616 + } catch (Exception e) {
  617 + throw new RuntimeException(e);
  618 + }
  619 + }
  620 +
559 621 @Request.Get("/live/epg/302")
560 622 public void red302() {
561   - HttpServletResponse response =DataContext.getResponse();
  623 + HttpServletResponse response = DataContext.getResponse();
562 624 redirect(response, "http://ips.cnlive.com/IPS/liveplayBySWF.action?activityId=12345");
563 625 }
564 626  
565 627 public static void main(String[] args) {
566   -
567   - /*NameValuePair[] nvp = new NameValuePair[6];
568   - NameValuePair nv1 = new NameValuePair();
569   - nv1.setName("appId");
570   - nv1.setValue("123");
571   - nvp[0] = nv1;
572   - NameValuePair nv2 = new NameValuePair();
573   - nv2.setName("activityId");
574   - nv2.setValue("234e");
575   - nvp[1] = nv2;
576   - NameValuePair nv3 = new NameValuePair();
577   - nv3.setName("activityName");
578   - nv3.setValue("ee");
579   - nvp[2] = nv3;
580   - NameValuePair nv4 = new NameValuePair();
581   - nv4.setName("activityStatus");
582   - nv4.setValue("11");
583   - nvp[3] = nv4;
584   - NameValuePair nv5 = new NameValuePair();
585   - nv5.setName("isHorizontalScreen");
586   - nv5.setValue("321");
587   - nvp[4] = nv5;
588   - NameValuePair nv6 = new NameValuePair();
589   - nv6.setName("channelId");
590   - nv6.setValue("ww");
591   - nvp[5] = nv6;
592   - String ss = HttpReq.postRequestWidthResult("http://bc.cnlive.com/live/epg/createActivity", nvp);
593   - System.out.println(ss);
594   -<<<<<<< HEAD
  628 +
  629 + /*
  630 + * NameValuePair[] nvp = new NameValuePair[6]; NameValuePair nv1 = new
  631 + * NameValuePair(); nv1.setName("appId"); nv1.setValue("123"); nvp[0] =
  632 + * nv1; NameValuePair nv2 = new NameValuePair();
  633 + * nv2.setName("activityId"); nv2.setValue("234e"); nvp[1] = nv2;
  634 + * NameValuePair nv3 = new NameValuePair(); nv3.setName("activityName");
  635 + * nv3.setValue("ee"); nvp[2] = nv3; NameValuePair nv4 = new
  636 + * NameValuePair(); nv4.setName("activityStatus"); nv4.setValue("11");
  637 + * nvp[3] = nv4; NameValuePair nv5 = new NameValuePair();
  638 + * nv5.setName("isHorizontalScreen"); nv5.setValue("321"); nvp[4] = nv5;
  639 + * NameValuePair nv6 = new NameValuePair(); nv6.setName("channelId");
  640 + * nv6.setValue("ww"); nvp[5] = nv6; String ss =
  641 + * HttpReq.postRequestWidthResult(
  642 + * "http://bc.cnlive.com/live/epg/createActivity", nvp);
  643 + * System.out.println(ss); <<<<<<< HEAD String aa = HttpReq
  644 + * .getRequestWidthResult(
  645 + * "http://bc.cnlive.com/live/epg/startActivity?appId=123&activityId=234"
  646 + * ); System.out.println(aa);
  647 + */
595 648 String aa = HttpReq
596 649 .getRequestWidthResult("http://bc.cnlive.com/live/epg/startActivity?appId=123&activityId=234");
597   - System.out.println(aa);*/
598   - String aa = HttpReq.getRequestWidthResult("http://bc.cnlive.com/live/epg/startActivity?appId=123&activityId=234");
599 650 System.out.println(aa);
600 651 }
601 652 }
602 653 \ No newline at end of file
... ...
src/main/java/com/cnlive/mz/live/action/VideoAction.java
1   -package com.cnlive.mz.live.action;
2   -
3   -import java.util.Date;
4   -import java.util.LinkedHashMap;
5   -import java.util.Map;
6   -
7   -import org.apache.commons.lang3.StringUtils;
8   -import org.apache.log4j.Logger;
9   -import org.smart4j.framework.dao.bean.Pager;
10   -import org.smart4j.framework.ioc.annotation.Inject;
11   -import org.smart4j.framework.mvc.DataContext;
12   -import org.smart4j.framework.mvc.annotation.Action;
13   -import org.smart4j.framework.mvc.annotation.Request;
14   -import org.smart4j.framework.mvc.bean.ApiBean;
15   -import org.smart4j.framework.mvc.bean.Params;
16   -import org.smart4j.framework.mvc.bean.Result;
17   -import org.smart4j.framework.mvc.bean.View;
18   -import org.smart4j.framework.util.CastUtil;
19   -
20   -import com.cnlive.mz.commons.CnliveUtil;
21   -import com.cnlive.mz.commons.sensitive.FilteredResult;
22   -import com.cnlive.mz.commons.sensitive.WordFilterUtil;
23   -import com.cnlive.mz.live.common.Constants;
24   -import com.cnlive.mz.live.common.LiveUtils;
25   -import com.cnlive.mz.live.entity.TLive;
26   -import com.cnlive.mz.live.entity.TVideo;
27   -import com.cnlive.mz.live.service.TDispatchServerService;
28   -import com.cnlive.mz.live.service.TLiveService;
29   -import com.cnlive.mz.live.service.TUserService;
30   -import com.cnlive.mz.live.service.TVideoService;
31   -
32   -@Action
33   -public class VideoAction {
34   -
35   - private Logger log = Logger.getLogger("action");
36   - @Inject
37   - private TDispatchServerService tDispatchServerService;
38   - @Inject
39   - private TVideoService tVideoService;
40   - @Inject
41   - private TUserService tUserService;
42   - @Inject
43   - private TLiveService tLiveService;
44   -
45   - /**
46   - * 服务器定向
47   - *
48   - * @param params
49   - * @return
50   - * {"mediaComment":"","nickName":"阳Sir","appId":"1","mediaName":"","userId"
51   - * :"1167015","uuid":
52   - * "1167015_1463725085798_6a551f9122494a05ac8566b7a2ae1092"}
53   - */
54   - @Request.Post("/api/video/redirect")
55   - public ApiBean redirect(Params params) {
56   - String app_access_key = params.getString("app_access_key");
57   - String video_type = params.getString("video_type");
58   - String user_id = params.getString("relation_id");
59   - ApiBean apiBean = tDispatchServerService.redirect(video_type, app_access_key, user_id);
60   - return apiBean;
61   - }
62   -
63   - @Request.Post("/api/video/supload")
64   - public ApiBean supload(Params params) {
65   - Map data = new LinkedHashMap();
66   - String app_access_key = params.getString("app_access_key");
67   - String video_type = params.getString("video_type");
68   - String user_access_key = params.getString("user_access_key");
69   - String server_access_key = params.getString("server_access_key");
70   - String active_id = params.getString("active_id");
71   - String title = params.getString("title");
72   - if (title.length() > 50) {
73   - title = title.substring(0, 50);
74   - }
75   - String description = params.getString("description");
76   - WordFilterUtil wf = new WordFilterUtil();
77   - FilteredResult resTitle = wf.filterHtml(title, '*');
78   - title = resTitle.getFilteredContent().toString();
79   - FilteredResult resDescr = wf.filterHtml(description, '*');
80   - description = resDescr.getFilteredContent().toString();
81   -
82   - String direct = params.getString("direct");
83   - String custom_args = params.getString("custom_args");
84   - String md5 = params.getString("md5");
85   - String relation_id = params.getString("relation_id");
86   - String uuid = "";
87   - boolean success = true;
88   - if (video_type.equals("2")) {
89   - // 2:sdk上传录播文件
90   - TVideo tVideo = new TVideo();
91   - tVideo.setCustom_args(custom_args);
92   - tVideo.setRelation_id(relation_id);
93   - tVideo.setName(params.getString("name"));
94   - tVideo.setVideo_type(params.getString("video_type"));
95   - tVideo.setPlat(params.getString("plat"));
96   - tVideo.setState(207);
97   - tVideo.setMd5(md5);
98   - uuid = CnliveUtil.getUUID();
99   - tVideo.setVideo_uuid(uuid);
100   - tVideo.setTitle(title);
101   - tVideo.setDescription(description);
102   - tVideoService.saveSdkVideo(tVideo, server_access_key, user_access_key, app_access_key);
103   - } else if (video_type.equals("3")) {
104   - TLive tLive = tLiveService.getTLiveByUUId(active_id);
105   - tLive.setT_status_id(1);
106   - tLive.setTitle(title);
107   - tLive.setDescription(description);
108   - tLive.setStart_time(new Date());
109   - tLive.setUser_uuid(params.getString("name"));
110   - tLive.setRelation_id(relation_id);
111   - tLive.setCustom_args(custom_args);
112   - uuid = tLive.getUuid();
113   - if (StringUtils.isEmpty(direct)) {
114   - tLive.setDirect(0);
115   - } else {
116   - tLive.setDirect(Integer.parseInt(direct));
117   - }
118   - tLive.setLive_url(Constants.KS_HOST_RTMP + tLive.getT_user_id() + "_" + uuid);
119   - success = tLiveService.startLive(tLive);
120   - }
121   - data.put("video_uuid", uuid);
122   - ApiBean apiBean = new ApiBean();
123   - if (success) {
124   - apiBean.setCode(100);
125   - apiBean.setMessage("请求成功");
126   - } else {
127   - apiBean.setCode(201);
128   - apiBean.setMessage("发起直播失败");
129   - }
130   - apiBean.setData(data);
131   - return apiBean;
132   - }
133   -
134   - @Request.Post("/api/video/all")
135   - public ApiBean all(Params params) {
136   - String app_access_key = params.getString("app_access_key");
137   - String relationId = params.getString("relation_id");
138   - String pageNo = params.getString("page_no");
139   - String relation_id = params.getString("relation_id");
140   - String upload_type = params.getString("upload_type");
141   - // String video_type = params.getString("video_type");
142   - Pager<TVideo> page = tVideoService.findAll(app_access_key, relationId, pageNo);
143   - ApiBean apiBean = new ApiBean();
144   - apiBean.setCode(100);
145   - apiBean.setMessage("请求成功");
146   - apiBean.setData(page);
147   - return apiBean;
148   - }
149   -
150   - @Request.Get("/video/list/{page_number}")
151   - public View list(int page_number) {
152   - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID));
153   - Pager<TVideo> page = tVideoService.list(user_id, page_number, 33);
154   - return new View("live/video_management.jsp").data("videos", page);
155   - }
156   -
157   - @Request.Get("/video/check/{page_number}")
158   - public View check(int page_number) {
159   - Pager<TVideo> page = tVideoService.list(page_number, 33);
160   - return new View("live/video_management.jsp").data("videos", page);
161   - }
162   -
163   - @Request.Get("/video/pass/{id}")
164   - public Result pass(int id) {
165   - tVideoService.pass(id);
166   - return new Result(true);
167   - }
168   -
169   - @Request.Get("/video/view/{id}")
170   - public View view(int id) {
171   - TVideo tVideo = tVideoService.getVideoById(id);
172   - System.out.println("------" + tVideo);
173   - return new View("live/video_view.jsp").data("tVideo", tVideo);
174   - }
175   -
176   - @Request.Post("/api/video/one")
177   - public ApiBean one(Params params) {
178   - String app_access_key = params.getString("app_access_key");
179   - String video_uuid = params.getString("video_uuid");
180   - TVideo page = tVideoService.getVideoByUuId(video_uuid);
181   - ApiBean apiBean = new ApiBean();
182   - apiBean.setCode(100);
183   - apiBean.setMessage("请求成功");
184   - apiBean.setData(page);
185   - return apiBean;
186   - }
187   -
188   - @Request.Post("/api/video/uploadNotify")
189   - public ApiBean uploadNotify(Params params) {
190   - String video_uuid = params.getString("video_uuid");
191   - String upload_type = params.getString("upload_type");
192   - String video_type = params.getString("video_type");
193   - String state = params.getString("state");
194   - String duration = params.getString("duration");
195   - xLog("uploadNotify", "duration", duration, video_uuid, video_type, state);
196   - if (video_type.equals("2")) {
197   - // 点播通知
198   - tVideoService.notify(video_uuid);
199   - } else if (video_type.equals("3")) {
200   - // 直播通知
201   - // tLiveService.notify(video_uuid);
202   - // 直播正常结束
203   - tLiveService.notify(video_uuid, 2);
204   - }
205   - ApiBean apiBean = new ApiBean();
206   - apiBean.setCode(100);
207   - apiBean.setMessage("请求成功");
208   - return apiBean;
209   - }
210   -
211   - @Request.Get("/api/video/error/{video_uuid}")
212   - public ApiBean error(String video_uuid) {
213   - // 直播异常结束
214   - tLiveService.notify(video_uuid, -2);
215   - ApiBean apiBean = new ApiBean();
216   - apiBean.setCode(100);
217   - apiBean.setMessage("请求成功");
218   - return apiBean;
219   - }
220   -
221   - @Request.Post("/api/video/delete")
222   - public ApiBean delete(Params params) {
223   - String user_access_key = params.getString("user_access_key");
224   - String video_uuid = params.getString("video_uuid");
225   - String app_access_key = params.getString("app_access_key");
226   - String video_type = params.getString("video_type");// 视频类型
227   - tVideoService.delete(video_uuid);
228   - ApiBean apiBean = new ApiBean();
229   - apiBean.setCode(100);
230   - apiBean.setMessage("请求成功");
231   - return apiBean;
232   - }
233   -
234   - private void xLog(String... str) {
235   - StringBuffer sb = new StringBuffer();
236   - for (int i = 0; i < str.length; i++) {
237   - sb.append(str[i]);
238   - sb.append("|");
239   - }
240   - log.info(sb.toString());
241   - }
242   -
243   - @Request.Get("/video/unline/{id}")
244   - public Result underLine(int id) {
245   - boolean flag = tVideoService.underLine(id);
246   - return new Result(flag);
247   - }
248   -}
  1 +package com.cnlive.mz.live.action;
  2 +
  3 +import java.util.Date;
  4 +import java.util.LinkedHashMap;
  5 +import java.util.Map;
  6 +
  7 +import org.apache.commons.lang3.StringUtils;
  8 +import org.apache.log4j.Logger;
  9 +import org.smart4j.framework.dao.bean.Pager;
  10 +import org.smart4j.framework.ioc.annotation.Inject;
  11 +import org.smart4j.framework.mvc.DataContext;
  12 +import org.smart4j.framework.mvc.annotation.Action;
  13 +import org.smart4j.framework.mvc.annotation.Request;
  14 +import org.smart4j.framework.mvc.bean.ApiBean;
  15 +import org.smart4j.framework.mvc.bean.Params;
  16 +import org.smart4j.framework.mvc.bean.Result;
  17 +import org.smart4j.framework.mvc.bean.View;
  18 +import org.smart4j.framework.util.CastUtil;
  19 +
  20 +import com.cnlive.mz.commons.CnliveUtil;
  21 +import com.cnlive.mz.commons.sensitive.FilteredResult;
  22 +import com.cnlive.mz.commons.sensitive.WordFilterUtil;
  23 +import com.cnlive.mz.live.common.Constants;
  24 +import com.cnlive.mz.live.common.LiveUtils;
  25 +import com.cnlive.mz.live.entity.TLive;
  26 +import com.cnlive.mz.live.entity.TVideo;
  27 +import com.cnlive.mz.live.service.TDispatchServerService;
  28 +import com.cnlive.mz.live.service.TLiveService;
  29 +import com.cnlive.mz.live.service.TUserService;
  30 +import com.cnlive.mz.live.service.TVideoService;
  31 +
  32 +@Action
  33 +public class VideoAction {
  34 +
  35 + private Logger log = Logger.getLogger("action");
  36 + @Inject
  37 + private TDispatchServerService tDispatchServerService;
  38 + @Inject
  39 + private TVideoService tVideoService;
  40 + @Inject
  41 + private TUserService tUserService;
  42 + @Inject
  43 + private TLiveService tLiveService;
  44 +
  45 + /**
  46 + * 服务器定向
  47 + *
  48 + * @param params
  49 + * @return
  50 + * {"mediaComment":"","nickName":"阳Sir","appId":"1","mediaName":"","userId"
  51 + * :"1167015","uuid":
  52 + * "1167015_1463725085798_6a551f9122494a05ac8566b7a2ae1092"}
  53 + */
  54 + @Request.Post("/api/video/redirect")
  55 + public ApiBean redirect(Params params) {
  56 + String app_access_key = params.getString("app_access_key");
  57 + String video_type = params.getString("video_type");
  58 + String user_id = params.getString("relation_id");
  59 + ApiBean apiBean = tDispatchServerService.redirect(video_type, app_access_key, user_id);
  60 + return apiBean;
  61 + }
  62 +
  63 + @Request.Post("/api/video/supload")
  64 + public ApiBean supload(Params params) {
  65 + Map data = new LinkedHashMap();
  66 + String app_access_key = params.getString("app_access_key");
  67 + String video_type = params.getString("video_type");
  68 + String user_access_key = params.getString("user_access_key");
  69 + String server_access_key = params.getString("server_access_key");
  70 + String active_id = params.getString("active_id");
  71 + String title = params.getString("title");
  72 + if (title.length() > 50) {
  73 + title = title.substring(0, 50);
  74 + }
  75 + String description = params.getString("description");
  76 + WordFilterUtil wf = new WordFilterUtil();
  77 + FilteredResult resTitle = wf.filterHtml(title, '*');
  78 + title = resTitle.getFilteredContent().toString();
  79 + FilteredResult resDescr = wf.filterHtml(description, '*');
  80 + description = resDescr.getFilteredContent().toString();
  81 +
  82 + String direct = params.getString("direct");
  83 + String custom_args = params.getString("custom_args");
  84 + String md5 = params.getString("md5");
  85 + String relation_id = params.getString("relation_id");
  86 + String uuid = "";
  87 + boolean success = true;
  88 + if (video_type.equals("2")) {
  89 + // 2:sdk上传录播文件
  90 + TVideo tVideo = new TVideo();
  91 + tVideo.setCustom_args(custom_args);
  92 + tVideo.setRelation_id(relation_id);
  93 + tVideo.setName(params.getString("name"));
  94 + tVideo.setVideo_type(params.getString("video_type"));
  95 + tVideo.setPlat(params.getString("plat"));
  96 + tVideo.setState(207);
  97 + tVideo.setMd5(md5);
  98 + uuid = CnliveUtil.getUUID();
  99 + tVideo.setVideo_uuid(uuid);
  100 + tVideo.setTitle(title);
  101 + tVideo.setDescription(description);
  102 + tVideoService.saveSdkVideo(tVideo, server_access_key, user_access_key, app_access_key);
  103 + } else if (video_type.equals("3")) {
  104 + TLive tLive = tLiveService.getTLiveByUUId(active_id);
  105 + tLive.setT_status_id(1);
  106 + tLive.setTitle(title);
  107 + tLive.setDescription(description);
  108 + tLive.setStart_time(new Date());
  109 + tLive.setUser_uuid(params.getString("name"));
  110 + tLive.setRelation_id(relation_id);
  111 + tLive.setCustom_args(custom_args);
  112 + uuid = tLive.getUuid();
  113 + if (StringUtils.isEmpty(direct)) {
  114 + tLive.setDirect(0);
  115 + } else {
  116 + tLive.setDirect(Integer.parseInt(direct));
  117 + }
  118 + tLive.setLive_url(Constants.KS_HOST_RTMP + tLive.getT_user_id() );
  119 + success = tLiveService.startLive(tLive);
  120 + }
  121 + data.put("video_uuid", uuid);
  122 + ApiBean apiBean = new ApiBean();
  123 + if (success) {
  124 + apiBean.setCode(100);
  125 + apiBean.setMessage("请求成功");
  126 + } else {
  127 + apiBean.setCode(201);
  128 + apiBean.setMessage("发起直播失败");
  129 + }
  130 + apiBean.setData(data);
  131 + return apiBean;
  132 + }
  133 +
  134 + @Request.Post("/api/video/all")
  135 + public ApiBean all(Params params) {
  136 + String app_access_key = params.getString("app_access_key");
  137 + String relationId = params.getString("relation_id");
  138 + String pageNo = params.getString("page_no");
  139 + String relation_id = params.getString("relation_id");
  140 + String upload_type = params.getString("upload_type");
  141 + // String video_type = params.getString("video_type");
  142 + Pager<TVideo> page = tVideoService.findAll(app_access_key, relationId, pageNo);
  143 + ApiBean apiBean = new ApiBean();
  144 + apiBean.setCode(100);
  145 + apiBean.setMessage("请求成功");
  146 + apiBean.setData(page);
  147 + return apiBean;
  148 + }
  149 +
  150 + @Request.Get("/video/list/{page_number}")
  151 + public View list(int page_number) {
  152 + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID));
  153 + Pager<TVideo> page = tVideoService.list(user_id, page_number, 33);
  154 + return new View("live/video_management.jsp").data("videos", page);
  155 + }
  156 +
  157 + @Request.Get("/video/check/{page_number}")
  158 + public View check(int page_number) {
  159 + Pager<TVideo> page = tVideoService.list(page_number, 33);
  160 + return new View("live/video_management.jsp").data("videos", page);
  161 + }
  162 +
  163 + @Request.Get("/video/pass/{id}")
  164 + public Result pass(int id) {
  165 + tVideoService.pass(id);
  166 + return new Result(true);
  167 + }
  168 +
  169 + @Request.Get("/video/view/{id}")
  170 + public View view(int id) {
  171 + TVideo tVideo = tVideoService.getVideoById(id);
  172 + System.out.println("------" + tVideo);
  173 + return new View("live/video_view.jsp").data("tVideo", tVideo);
  174 + }
  175 +
  176 + @Request.Post("/api/video/one")
  177 + public ApiBean one(Params params) {
  178 + String app_access_key = params.getString("app_access_key");
  179 + String video_uuid = params.getString("video_uuid");
  180 + TVideo page = tVideoService.getVideoByUuId(video_uuid);
  181 + ApiBean apiBean = new ApiBean();
  182 + apiBean.setCode(100);
  183 + apiBean.setMessage("请求成功");
  184 + apiBean.setData(page);
  185 + return apiBean;
  186 + }
  187 +
  188 + @Request.Post("/api/video/uploadNotify")
  189 + public ApiBean uploadNotify(Params params) {
  190 + String video_uuid = params.getString("video_uuid");
  191 + String upload_type = params.getString("upload_type");
  192 + String video_type = params.getString("video_type");
  193 + String state = params.getString("state");
  194 + String duration = params.getString("duration");
  195 + xLog("uploadNotify", "duration", duration, video_uuid, video_type, state);
  196 + if (video_type.equals("2")) {
  197 + // 点播通知
  198 + tVideoService.notify(video_uuid);
  199 + } else if (video_type.equals("3")) {
  200 + // 直播通知
  201 + // tLiveService.notify(video_uuid);
  202 + // 直播正常结束
  203 + tLiveService.notify(video_uuid, 2);
  204 + }
  205 + ApiBean apiBean = new ApiBean();
  206 + apiBean.setCode(100);
  207 + apiBean.setMessage("请求成功");
  208 + return apiBean;
  209 + }
  210 +
  211 + @Request.Get("/api/video/error/{video_uuid}")
  212 + public ApiBean error(String video_uuid) {
  213 + // 直播异常结束
  214 + tLiveService.notify(video_uuid, -2);
  215 + ApiBean apiBean = new ApiBean();
  216 + apiBean.setCode(100);
  217 + apiBean.setMessage("请求成功");
  218 + return apiBean;
  219 + }
  220 +
  221 + @Request.Post("/api/video/delete")
  222 + public ApiBean delete(Params params) {
  223 + String user_access_key = params.getString("user_access_key");
  224 + String video_uuid = params.getString("video_uuid");
  225 + String app_access_key = params.getString("app_access_key");
  226 + String video_type = params.getString("video_type");// 视频类型
  227 + tVideoService.delete(video_uuid);
  228 + ApiBean apiBean = new ApiBean();
  229 + apiBean.setCode(100);
  230 + apiBean.setMessage("请求成功");
  231 + return apiBean;
  232 + }
  233 +
  234 + private void xLog(String... str) {
  235 + StringBuffer sb = new StringBuffer();
  236 + for (int i = 0; i < str.length; i++) {
  237 + sb.append(str[i]);
  238 + sb.append("|");
  239 + }
  240 + log.info(sb.toString());
  241 + }
  242 +
  243 + @Request.Get("/video/unline/{id}")
  244 + public Result underLine(int id) {
  245 + boolean flag = tVideoService.underLine(id);
  246 + return new Result(flag);
  247 + }
  248 +}
... ...