Commit 1d0f01aa4abe6e5573728b1aafdc2780c3bc30db
1 parent
00eaf988
增加直播申请审核业务,实现列表展示、详情查看、审核回调、excel导出等
Showing
9 changed files
with
402 additions
and
172 deletions
src/main/java/com/cnlive/shenhe/api/LiveApplyControllerApi.java
| ... | ... | @@ -11,6 +11,7 @@ import com.cnlive.shenhe.entity.ShyVideos; |
| 11 | 11 | import com.cnlive.shenhe.serviceImpl.LiveApplyServiceImpl; |
| 12 | 12 | import com.cnlive.shenhe.serviceImpl.VideosServiceImpl; |
| 13 | 13 | import com.cnlive.shenhe.utils.AntiFraudUtil; |
| 14 | +import com.cnlive.shenhe.utils.CommonConst; | |
| 14 | 15 | import com.cnlive.shenhe.utils.CommonUtils; |
| 15 | 16 | |
| 16 | 17 | import java.sql.Timestamp; |
| ... | ... | @@ -64,6 +65,7 @@ public class LiveApplyControllerApi { |
| 64 | 65 | Integer businessModel = Integer.parseInt(json.getString("businessModel"));//商务模式:0免费 1收费 |
| 65 | 66 | Integer contentProperty = Integer.parseInt(json.getString("contentProperty"));//内容属性:1商业类活动 0非商业活动 |
| 66 | 67 | String simpleContent = json.getString("simpleContent");//内容简述 |
| 68 | + String live_type = json.getString("liveType");//直播类型 | |
| 67 | 69 | String keys = json.getString("keys");//要点报备:0品牌植入 1广告植入 2商品推销 3网家家独家麦标 |
| 68 | 70 | String livePlace = json.getString("livePlace");//直播地点 |
| 69 | 71 | String pushUrl = json.getString("pushUrl");//推流地址 |
| ... | ... | @@ -100,6 +102,7 @@ public class LiveApplyControllerApi { |
| 100 | 102 | shyliveApply.setMobile(mobile);//设置联系方式 |
| 101 | 103 | shyliveApply.setOrganization(organization);//设置直播发起单位 |
| 102 | 104 | shyliveApply.setTheme(theme);//直播主题 |
| 105 | + shyliveApply.setLive_type(live_type);//直播类型 | |
| 103 | 106 | shyliveApply.setPre_start_time(timestamp_start);//预计开始时间 |
| 104 | 107 | shyliveApply.setPre_end_time(timestamp_end);//预计结束时间 |
| 105 | 108 | shyliveApply.setBusiness_model(businessModel);//商务模式:0免费 1收费 |
| ... | ... | @@ -111,8 +114,9 @@ public class LiveApplyControllerApi { |
| 111 | 114 | shyliveApply.setPull_url(pullUrl);//拉流地址 |
| 112 | 115 | shyliveApply.setPlatforms(platforms);//播出平台及通道:0网家家 1CNLive网站 2@TV互动电视 |
| 113 | 116 | shyliveApply.setCallback(callback);//设置回调地址 |
| 114 | - shyliveApply.setReceive(0); | |
| 115 | - shyliveApply.setShenhe_state(0); | |
| 117 | + shyliveApply.setReceive(CommonConst.RECEIVE_BEFORE); | |
| 118 | + shyliveApply.setShenhe_state(CommonConst.AUDIT_INTT); | |
| 119 | + shyliveApply.setNotice_jishu(CommonConst.NOTICE_INTT); | |
| 116 | 120 | shyliveApply.setUpdater(null); |
| 117 | 121 | shyliveApply.setAuditor(null); |
| 118 | 122 | shyliveApply.setUpdated_at(CommonUtils.getCurrentTime());//更新时间 |
| ... | ... | @@ -127,6 +131,7 @@ public class LiveApplyControllerApi { |
| 127 | 131 | shyliveApply1.setMobile(mobile);//设置联系方式 |
| 128 | 132 | shyliveApply1.setOrganization(organization);//设置直播发起单位 |
| 129 | 133 | shyliveApply1.setTheme(theme);//直播主题 |
| 134 | + shyliveApply1.setLive_type(live_type);//直播类型 | |
| 130 | 135 | shyliveApply1.setPre_start_time(timestamp_start);//预计开始时间 |
| 131 | 136 | shyliveApply1.setPre_end_time(timestamp_end);//预计结束时间 |
| 132 | 137 | shyliveApply1.setBusiness_model(businessModel);//商务模式:0免费 1收费 |
| ... | ... | @@ -139,11 +144,13 @@ public class LiveApplyControllerApi { |
| 139 | 144 | shyliveApply1.setPlatforms(platforms);//播出平台及通道:0网家家 1CNLive网站 2@TV互动电视 |
| 140 | 145 | shyliveApply1.setCallback(callback);//设置回调地址 |
| 141 | 146 | liveApplyServiceImpl.getShenheType(shyliveApply1);//获取审核类型 |
| 142 | - shyliveApply1.setReceive(0); | |
| 143 | - shyliveApply1.setShenhe_state(0); | |
| 147 | + shyliveApply1.setReceive(CommonConst.RECEIVE_BEFORE); | |
| 148 | + shyliveApply1.setShenhe_state(CommonConst.AUDIT_INTT); | |
| 149 | + shyliveApply1.setNotice_jishu(CommonConst.NOTICE_INTT); | |
| 144 | 150 | shyliveApply1.setUpdater(null); |
| 145 | 151 | shyliveApply1.setAuditor(null); |
| 146 | 152 | shyliveApply1.setShenhe_msg(null); |
| 153 | + shyliveApply1.setNotice_msg(null); | |
| 147 | 154 | shyliveApply1.setCreated_at(CommonUtils.getCurrentTime());//创建时间 |
| 148 | 155 | shyliveApply1.setUpdated_at(CommonUtils.getCurrentTime());//更新时间 |
| 149 | 156 | ... | ... |
src/main/java/com/cnlive/shenhe/controller/LiveApplyController.java
| ... | ... | @@ -311,60 +311,12 @@ public class LiveApplyController { |
| 311 | 311 | } |
| 312 | 312 | |
| 313 | 313 | /** |
| 314 | - * 同步直播云信息 | |
| 315 | - * | |
| 316 | - * @param ids | |
| 317 | - * @param msg | |
| 318 | - * @param session | |
| 319 | - * @return | |
| 320 | - */ | |
| 321 | - @PostMapping("/syncLive") | |
| 322 | - @ResponseBody | |
| 323 | - public ResponseBean syncLive(String ids, HttpSession session) { | |
| 324 | - logger.info("同步直播云信息接口进入"); | |
| 325 | - ResponseBean responseBean = new ResponseBean(); | |
| 326 | - String[] shyLiveIds = ids.split(","); | |
| 327 | - String showMsg = ""; | |
| 328 | - for (String shyLiveId : shyLiveIds) { | |
| 329 | - ShyLive shyLive = liveService.selectByPrimaryKey(Integer.parseInt(shyLiveId)); | |
| 330 | - JSONObject result = null; | |
| 331 | - try { | |
| 332 | - result = Pass.syncLive(shyLive.getActivity_id()); | |
| 333 | - } catch (Exception e) { | |
| 334 | - logger.error("直播云信息同步失败,id==" + shyLiveId, e); | |
| 335 | - showMsg = showMsg + "," + shyLive.getActivity_id() + " 拒绝请求失败"; | |
| 336 | - break; | |
| 337 | - } | |
| 338 | - if (result == null) { | |
| 339 | - logger.error("直播云信息同步失败且接口错误没有返回信息,id==" + shyLiveId); | |
| 340 | - showMsg = showMsg + "," + shyLive.getActivity_id() + " 拒绝请求失败"; | |
| 341 | - break; | |
| 342 | - } | |
| 343 | - Integer code = result.getInteger("errorCode"); | |
| 344 | - if (code != 0) { | |
| 345 | - logger.error("直播云信息同步失败,id:{},code:{}", shyLiveId, code); | |
| 346 | - showMsg = result.getString("errorMessage"); | |
| 347 | - break; | |
| 348 | - } | |
| 349 | - } | |
| 350 | - if (CommonUtils.isNotEmpty(showMsg)) { | |
| 351 | - responseBean.setErrorCode(ErrorEnum.ERROR.getErrorCode()); | |
| 352 | - responseBean.setErrorMessage(showMsg); | |
| 353 | - }else{ | |
| 354 | - showMsg="直播云信息同步成功"; | |
| 355 | - responseBean.setErrorCode(ErrorEnum.SUCCESS.getErrorCode()); | |
| 356 | - responseBean.setErrorMessage(showMsg); | |
| 357 | - } | |
| 358 | - return responseBean; | |
| 359 | - } | |
| 360 | - | |
| 361 | - /** | |
| 362 | 314 | * 根据条件导出excel |
| 363 | 315 | */ |
| 364 | 316 | @GetMapping("excel") |
| 365 | - public void getExcel(String activity_id,String start_date,String end_date, | |
| 366 | - String activity_name, Integer activity_status, Integer page,Integer pageSize, | |
| 367 | - Integer shenhe_state, String orderByClause, String sp_desc, HttpSession session,HttpServletResponse response) { | |
| 317 | + public void getExcel(String start_date,String end_date, | |
| 318 | + String theme, Integer business_model, Integer page,Integer pageSize, | |
| 319 | + Integer shenhe_state,Integer receive, String sp_desc,String orderByClause, HttpSession session,HttpServletResponse response) { | |
| 368 | 320 | SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey()); |
| 369 | 321 | Integer spid = sessionUser.getSpid(); |
| 370 | 322 | String userId = sessionUser.getUserId(); |
| ... | ... | @@ -376,10 +328,10 @@ public class LiveApplyController { |
| 376 | 328 | }else if (CommonUtils.isEmpty(sp_desc) && spid == 0) { |
| 377 | 329 | spid = null; |
| 378 | 330 | } |
| 379 | - List<ShyLive> liveList = liveService.findByCondition(activity_name, start_date,end_date, | |
| 380 | - activity_id, activity_status, page, pageSize, shenhe_state, orderByClause, spid); | |
| 331 | + List<ShyLiveapply> liveApplyList = liveApplyServiceImpl.findByCondition(theme, start_date,end_date, | |
| 332 | + business_model, page, pageSize, shenhe_state,receive, orderByClause, spid, userId); | |
| 381 | 333 | |
| 382 | - String fileName = "直播数据"; | |
| 334 | + String fileName = "直播申请数据"; | |
| 383 | 335 | |
| 384 | 336 | XSSFWorkbook wb = new XSSFWorkbook(); |
| 385 | 337 | ServletOutputStream out = null; |
| ... | ... | @@ -391,119 +343,60 @@ public class LiveApplyController { |
| 391 | 343 | XSSFCell cell = row.createCell(0);//列 |
| 392 | 344 | cell.setCellValue("id"); |
| 393 | 345 | cell = row.createCell(1);//列 |
| 394 | - cell.setCellValue("sp昵称"); | |
| 346 | + cell.setCellValue("直播日期"); | |
| 395 | 347 | cell = row.createCell(2);//列 |
| 396 | - cell.setCellValue("频道_id"); | |
| 348 | + cell.setCellValue("预计开始时间"); | |
| 397 | 349 | cell = row.createCell(3);//列 |
| 398 | - cell.setCellValue("直播活动id"); | |
| 350 | + cell.setCellValue("预计结束时间"); | |
| 399 | 351 | cell = row.createCell(4);//列 |
| 400 | - cell.setCellValue("直播活动名称"); | |
| 352 | + cell.setCellValue("直播主题"); | |
| 401 | 353 | cell = row.createCell(5);//列 |
| 402 | - cell.setCellValue("直播活动状态"); | |
| 354 | + cell.setCellValue("直播申请方"); | |
| 403 | 355 | cell = row.createCell(6);//列 |
| 404 | - cell.setCellValue("直播活动开始时间"); | |
| 356 | + cell.setCellValue("直播类型"); | |
| 405 | 357 | cell = row.createCell(7);//列 |
| 406 | - cell.setCellValue("直播活动结束时间"); | |
| 358 | + cell.setCellValue("频道_id"); | |
| 407 | 359 | cell = row.createCell(8);//列 |
| 408 | - cell.setCellValue("直播活动简介"); | |
| 360 | + cell.setCellValue("直播活动id"); | |
| 409 | 361 | cell = row.createCell(9);//列 |
| 410 | - cell.setCellValue("审核类型"); | |
| 411 | - cell = row.createCell(10);//列 | |
| 412 | - cell.setCellValue("审核状态"); | |
| 413 | - cell = row.createCell(11);//列 | |
| 414 | - cell.setCellValue("审核员"); | |
| 415 | - cell = row.createCell(12);//列 | |
| 416 | - cell.setCellValue("审核信息"); | |
| 417 | - cell = row.createCell(13);//列 | |
| 418 | 362 | cell.setCellValue("创建时间"); |
| 419 | - cell = row.createCell(14);//列 | |
| 420 | - cell.setCellValue("最后更新时间"); | |
| 421 | 363 | |
| 422 | - for (int i = 0; i < liveList.size(); i++) { | |
| 364 | + for (int i = 0; i < liveApplyList.size(); i++) { | |
| 423 | 365 | row = sheetlist.createRow((short) (i + 1));//行 |
| 424 | 366 | cell = row.createCell(0);//列 |
| 425 | - cell.setCellValue(liveList.get(i).getId()); | |
| 367 | + cell.setCellValue(liveApplyList.get(i).getId()); | |
| 426 | 368 | cell = row.createCell(1);//列 |
| 427 | - cell.setCellValue(sitesService.findspidDescByspid(liveList.get(i).getSp_id()).getName()); | |
| 369 | + cell.setCellValue(CommonUtils.formatDate(liveApplyList.get(i).getPre_start_time(), "yyyy/MM/dd")); | |
| 428 | 370 | cell = row.createCell(2);//列 |
| 429 | - cell.setCellValue(liveList.get(i).getChannel_id()); | |
| 371 | + cell.setCellValue(CommonUtils.formatDate(liveApplyList.get(i).getPre_start_time(), "HH:mm")); | |
| 372 | + String endTime=""; | |
| 373 | + long start = liveApplyList.get(i).getPre_start_time().getTime()+8*60*60*1000; | |
| 374 | + if(CommonUtils.isNull(liveApplyList.get(i).getPre_end_time())){//结束时间为空 | |
| 375 | + endTime="待定"; | |
| 376 | + }else{ | |
| 377 | + long end = liveApplyList.get(i).getPre_end_time().getTime()+8*60*60*1000; | |
| 378 | + long count=end/(24*3600*1000)-start/(24*3600*1000); | |
| 379 | + logger.info(String.valueOf(count)); | |
| 380 | + if(count==0){ | |
| 381 | + endTime=CommonUtils.formatDate(liveApplyList.get(i).getPre_end_time(), "HH:mm"); | |
| 382 | + }else if(count > 0){ | |
| 383 | + endTime="跨"+count+"天 "+CommonUtils.formatDate(liveApplyList.get(i).getPre_end_time(), "HH:mm"); | |
| 384 | + } | |
| 385 | + } | |
| 430 | 386 | cell = row.createCell(3);//列 |
| 431 | - cell.setCellValue(liveList.get(i).getActivity_id()); | |
| 387 | + cell.setCellValue(endTime); | |
| 432 | 388 | cell = row.createCell(4);//列 |
| 433 | - cell.setCellValue(liveList.get(i).getActivity_name()); | |
| 434 | - /*状态需要处理成用户可读*/ | |
| 435 | - String activityStatus = "";//直播活动状态,1:直播中,2:直播完成,3:待直播,0:直播撤销(手动),4:直播下线(强制) | |
| 436 | - if (liveList.get(i).getActivity_status() == 0) { | |
| 437 | - activityStatus = "直播撤销(手动)"; | |
| 438 | - } else if (liveList.get(i).getActivity_status() == 1) { | |
| 439 | - activityStatus = "正在直播"; | |
| 440 | - } else if(liveList.get(i).getActivity_status() == 2){ | |
| 441 | - activityStatus = "直播完成"; | |
| 442 | - }else if(liveList.get(i).getActivity_status() == 3){ | |
| 443 | - activityStatus = "等待直播"; | |
| 444 | - }else if(liveList.get(i).getActivity_status() == 4){ | |
| 445 | - activityStatus = "直播下线(强制)"; | |
| 446 | - } | |
| 389 | + cell.setCellValue(liveApplyList.get(i).getTheme()); | |
| 447 | 390 | cell = row.createCell(5);//列 |
| 448 | - cell.setCellValue(activityStatus); | |
| 391 | + cell.setCellValue(sitesService.findspidDescByspid(liveApplyList.get(i).getSp_id()).getName()); | |
| 449 | 392 | cell = row.createCell(6);//列 |
| 450 | - cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getActivity_start_time(), "yyyy-MM-dd HH:mm:ss")); | |
| 393 | + cell.setCellValue(liveApplyList.get(i).getLive_type()); | |
| 451 | 394 | cell = row.createCell(7);//列 |
| 452 | - cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getActivity_end_time(), "yyyy-MM-dd HH:mm:ss")); | |
| 395 | + cell.setCellValue(liveApplyList.get(i).getChannel_id()); | |
| 453 | 396 | cell = row.createCell(8);//列 |
| 454 | - cell.setCellValue(liveList.get(i).getActivity_intro()); | |
| 455 | - | |
| 456 | - /*状态需要处理成用户可读*/ | |
| 457 | - String shenheType = "";//审核类型,1:免审,2:机审,3:人工审 | |
| 458 | - if (liveList.get(i).getShenhe_type() == 1) { | |
| 459 | - shenheType = "免审"; | |
| 460 | - } else if (liveList.get(i).getShenhe_type() == 2) { | |
| 461 | - shenheType = "机审"; | |
| 462 | - } else { | |
| 463 | - shenheType = "人工审"; | |
| 464 | - } | |
| 465 | - | |
| 397 | + cell.setCellValue(liveApplyList.get(i).getActivity_id()); | |
| 466 | 398 | cell = row.createCell(9);//列 |
| 467 | - cell.setCellValue(shenheType); | |
| 468 | - | |
| 469 | - /*状态需要处理成用户可读*/ | |
| 470 | - String shenheState = "";//审核状态 0:未认领 1.已认领,2:已审核 | |
| 471 | - if (liveList.get(i).getShenhe_type() == 1) { | |
| 472 | - shenheState = "已认领"; | |
| 473 | - } else if (liveList.get(i).getShenhe_type() == 2) { | |
| 474 | - shenheState = "已审核"; | |
| 475 | - } else { | |
| 476 | - shenheState = "未认领"; | |
| 477 | - } | |
| 478 | - | |
| 479 | - cell = row.createCell(10);//列 | |
| 480 | - cell.setCellValue(shenheState); | |
| 481 | - | |
| 482 | - /* 审核员需要做处理*/ | |
| 483 | - String updater = "";//审核员名字 | |
| 484 | - if (liveList.get(i).getShenhe_state() != CommonConst.RECEIVE_BEFORE) { | |
| 485 | - updater = CommonUtils.isEmpty(liveList.get(i).getUpdater()) || "null".equals(liveList.get(i).getUpdater())? "自动通过":liveList.get(i).getUpdater(); | |
| 486 | - String auditor_id = liveList.get(i).getAuditor(); | |
| 487 | - if (CommonUtils.isNotEmpty(auditor_id)) { | |
| 488 | - ShyUsers user = new ShyUsers(); | |
| 489 | - user.setUser_id(auditor_id); | |
| 490 | - user = usersService.select(user); | |
| 491 | - if (CommonUtils.isNotNull(user)) { | |
| 492 | - String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail()) ? "" : user.getEmail(); | |
| 493 | - String userName = CommonUtils.isEmpty(user.getUsername()) ? email : user.getUsername(); | |
| 494 | - updater = userName ; | |
| 495 | - } | |
| 496 | - } | |
| 497 | - } | |
| 498 | - | |
| 499 | - cell = row.createCell(11);//列 | |
| 500 | - cell.setCellValue(updater); | |
| 501 | - cell = row.createCell(12);//列 | |
| 502 | - cell.setCellValue(liveList.get(i).getShenhe_msg()); | |
| 503 | - cell = row.createCell(13);//列 | |
| 504 | - cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getCreated_at(), "yyyy-MM-dd HH:mm:ss")); | |
| 505 | - cell = row.createCell(14);//列 | |
| 506 | - cell.setCellValue(CommonUtils.formatDate(liveList.get(i).getUpdated_at(), "yyyy-MM-dd HH:mm:ss")); | |
| 399 | + cell.setCellValue(CommonUtils.formatDate(liveApplyList.get(i).getCreated_at(), "yyyy-MM-dd HH:mm")); | |
| 507 | 400 | } |
| 508 | 401 | |
| 509 | 402 | ByteArrayOutputStream os = new ByteArrayOutputStream(); | ... | ... |
src/main/java/com/cnlive/shenhe/entity/ShyLiveapply.java
| ... | ... | @@ -47,6 +47,11 @@ public class ShyLiveapply { |
| 47 | 47 | private String theme; |
| 48 | 48 | |
| 49 | 49 | /** |
| 50 | + * 直播类型 | |
| 51 | + */ | |
| 52 | + private String live_type; | |
| 53 | + | |
| 54 | + /** | |
| 50 | 55 | * 预计开始时间 |
| 51 | 56 | */ |
| 52 | 57 | private Date pre_start_time; |
| ... | ... | @@ -127,6 +132,16 @@ public class ShyLiveapply { |
| 127 | 132 | private String shenhe_msg; |
| 128 | 133 | |
| 129 | 134 | /** |
| 135 | + * 技术通知 1未通知 2已通知 3通知失败 | |
| 136 | + */ | |
| 137 | + private Integer notice_jishu; | |
| 138 | + | |
| 139 | + /** | |
| 140 | + * 通知消息 | |
| 141 | + */ | |
| 142 | + private String notice_msg; | |
| 143 | + | |
| 144 | + /** | |
| 130 | 145 | * 创建时间 |
| 131 | 146 | */ |
| 132 | 147 | private Date created_at; |
| ... | ... | @@ -289,6 +304,24 @@ public class ShyLiveapply { |
| 289 | 304 | } |
| 290 | 305 | |
| 291 | 306 | /** |
| 307 | + * 获取直播类型 | |
| 308 | + * | |
| 309 | + * @return live_type - 直播类型 | |
| 310 | + */ | |
| 311 | + public String getLive_type() { | |
| 312 | + return live_type; | |
| 313 | + } | |
| 314 | + | |
| 315 | + /** | |
| 316 | + * 设置直播类型 | |
| 317 | + * | |
| 318 | + * @param live_type 直播类型 | |
| 319 | + */ | |
| 320 | + public void setLive_type(String live_type) { | |
| 321 | + this.live_type = live_type; | |
| 322 | + } | |
| 323 | + | |
| 324 | + /** | |
| 292 | 325 | * 获取预计开始时间 |
| 293 | 326 | * |
| 294 | 327 | * @return pre_start_time - 预计开始时间 |
| ... | ... | @@ -577,6 +610,42 @@ public class ShyLiveapply { |
| 577 | 610 | } |
| 578 | 611 | |
| 579 | 612 | /** |
| 613 | + * 获取技术通知 1未通知 2已通知 3通知失败 | |
| 614 | + * | |
| 615 | + * @return notice_jishu - 技术通知 1未通知 2已通知 3通知失败 | |
| 616 | + */ | |
| 617 | + public Integer getNotice_jishu() { | |
| 618 | + return notice_jishu; | |
| 619 | + } | |
| 620 | + | |
| 621 | + /** | |
| 622 | + * 设置技术通知 1未通知 2已通知 3通知失败 | |
| 623 | + * | |
| 624 | + * @param notice_jishu 技术通知 1未通知 2已通知 3通知失败 | |
| 625 | + */ | |
| 626 | + public void setNotice_jishu(Integer notice_jishu) { | |
| 627 | + this.notice_jishu = notice_jishu; | |
| 628 | + } | |
| 629 | + | |
| 630 | + /** | |
| 631 | + * 获取通知消息 | |
| 632 | + * | |
| 633 | + * @return notice_msg - 通知消息 | |
| 634 | + */ | |
| 635 | + public String getNotice_msg() { | |
| 636 | + return notice_msg; | |
| 637 | + } | |
| 638 | + | |
| 639 | + /** | |
| 640 | + * 设置通知消息 | |
| 641 | + * | |
| 642 | + * @param notice_msg 通知消息 | |
| 643 | + */ | |
| 644 | + public void setNotice_msg(String notice_msg) { | |
| 645 | + this.notice_msg = notice_msg; | |
| 646 | + } | |
| 647 | + | |
| 648 | + /** | |
| 580 | 649 | * 获取创建时间 |
| 581 | 650 | * |
| 582 | 651 | * @return created_at - 创建时间 | ... | ... |
src/main/java/com/cnlive/shenhe/job/LiveApplyJob.java
0 → 100644
| 1 | +package com.cnlive.shenhe.job; | |
| 2 | + | |
| 3 | +import com.alibaba.fastjson.JSONObject; | |
| 4 | +import com.cnlive.shenhe.bean.ErrorEnum; | |
| 5 | +import com.cnlive.shenhe.bean.ResponseBean; | |
| 6 | +import com.cnlive.shenhe.entity.ShyChannel; | |
| 7 | +import com.cnlive.shenhe.entity.ShyComments; | |
| 8 | +import com.cnlive.shenhe.entity.ShyLiveapply; | |
| 9 | +import com.cnlive.shenhe.entity.ShyVideos; | |
| 10 | +import com.cnlive.shenhe.mapper.ShyLiveapplyMapper; | |
| 11 | +import com.cnlive.shenhe.serviceImpl.ChannelServiceImpl; | |
| 12 | +import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl; | |
| 13 | +import com.cnlive.shenhe.serviceImpl.LiveApplyServiceImpl; | |
| 14 | +import com.cnlive.shenhe.serviceImpl.SitesServiceImpl; | |
| 15 | +import com.cnlive.shenhe.serviceImpl.UsersServiceImpl; | |
| 16 | +import com.cnlive.shenhe.utils.AuditPass; | |
| 17 | +import com.cnlive.shenhe.utils.CommonConst; | |
| 18 | +import com.cnlive.shenhe.utils.CommonUtils; | |
| 19 | +import com.cnlive.shenhe.utils.HttpUtil; | |
| 20 | +import com.cnlive.shenhe.utils.InfoUtil; | |
| 21 | +import com.cnlive.shenhe.utils.OpenUtil; | |
| 22 | + | |
| 23 | +import tk.mybatis.mapper.entity.Example; | |
| 24 | + | |
| 25 | +import org.slf4j.Logger; | |
| 26 | +import org.slf4j.LoggerFactory; | |
| 27 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 28 | +import org.springframework.beans.factory.annotation.Value; | |
| 29 | +import org.springframework.scheduling.annotation.Scheduled; | |
| 30 | +import org.springframework.stereotype.Component; | |
| 31 | + | |
| 32 | +import java.util.HashMap; | |
| 33 | +import java.util.List; | |
| 34 | +import java.util.Map; | |
| 35 | + | |
| 36 | +@Component | |
| 37 | +public class LiveApplyJob { | |
| 38 | + private static Logger logger = LoggerFactory.getLogger(LiveApplyJob.class); | |
| 39 | + @Value("${spring.localhost.url}") | |
| 40 | + private String localhost_url;//本机地址 | |
| 41 | + | |
| 42 | + @Autowired | |
| 43 | + SitesServiceImpl sitesService; | |
| 44 | + @Autowired | |
| 45 | + AuditPass Pass; | |
| 46 | + @Autowired | |
| 47 | + InfoUtil infoUtil; | |
| 48 | + @Autowired | |
| 49 | + LiveApplyServiceImpl liveApplyServiceImpl; | |
| 50 | + @Autowired | |
| 51 | + ShyLiveapplyMapper shyLiveApplyMapper; | |
| 52 | + | |
| 53 | + @Autowired | |
| 54 | + UsersServiceImpl usersService; | |
| 55 | + | |
| 56 | + | |
| 57 | + @Scheduled(fixedRate = 60 * 1000) | |
| 58 | + public void updateLiveApply() { | |
| 59 | + | |
| 60 | + //遍历免审的spid去更改状态值 | |
| 61 | + ShyLiveapply shyLiveApply = new ShyLiveapply(); | |
| 62 | + shyLiveApply.setShenhe_type(CommonConst.AUDIT_TYPE_FREE);// 审核类型为免审 | |
| 63 | + shyLiveApply.setShenhe_state(CommonConst.AUDIT_INTT); | |
| 64 | + List<ShyLiveapply> liveApplyList = liveApplyServiceImpl.findshyLiveApply(shyLiveApply); | |
| 65 | + if (liveApplyList.size() > 0) { | |
| 66 | + for (ShyLiveapply liveApply : liveApplyList) { | |
| 67 | + liveApplyServiceImpl.updateLiveApply(liveApply.getId(), "","白名单", CommonConst.AUDIT_SUCCESS,"白名单通过"); | |
| 68 | + } | |
| 69 | + } | |
| 70 | + } | |
| 71 | + | |
| 72 | + /** | |
| 73 | + * 直播申请邮件通知 | |
| 74 | + */ | |
| 75 | + @Scheduled(fixedRate = 60 * 1000) | |
| 76 | + public void liveApplyNotice() { | |
| 77 | + Example example = new Example(ShyLiveapply.class); | |
| 78 | + Example.Criteria criteria = example.createCriteria(); | |
| 79 | + criteria.andEqualTo("shenhe_state", CommonConst.AUDIT_SUCCESS); | |
| 80 | + criteria.andNotEqualTo("notice_jishu", CommonConst.NOTICE_SUCCESS); | |
| 81 | + List<ShyLiveapply> shyLiveApplyList = shyLiveApplyMapper.selectByExample(example); | |
| 82 | + if (shyLiveApplyList.size() > 0) { | |
| 83 | + logger.info("直播申请邮件通知开始,共"+shyLiveApplyList.size()+"个"); | |
| 84 | + String app_id = "769_jetja50p18"; //开发者对应的id,与app_key相对应 | |
| 85 | + String app_key = "ad101b9152817a79b5c33c3617b96ff91385096ff3b4ba"; //开发者帐号对应的key. 请开发者谨慎保管此值。 | |
| 86 | + String URL = "http://sms.cnlive.com/CnliveM3/email/sendMoreVarEmail.action";//调用邮件发送服务器的地址 | |
| 87 | + for(ShyLiveapply liveApply : shyLiveApplyList){ | |
| 88 | + String startTime=CommonUtils.formatDate(liveApply.getPre_start_time(), "yyyy-MM-dd HH:mm:ss"); | |
| 89 | + String endTime=CommonUtils.isNotNull(liveApply.getPre_end_time())?CommonUtils.formatDate(liveApply.getPre_end_time(), "yyyy-MM-dd HH:mm:ss"):"待定"; | |
| 90 | + String content = liveApply.getSender()+"__"+liveApply.getMobile()+"__"+liveApply.getOrganization()+"__"+liveApply.getTheme()+"__"+startTime+"__"+endTime+"__"+liveApply.getLive_place()+"__"+liveApply.getPush_url()+"__"+liveApply.getPull_url(); | |
| 91 | + String emailAddr = "642522156@qq.com"; | |
| 92 | + String title = "新直播开播申请"; | |
| 93 | + String templateId = "4017"; | |
| 94 | + Integer notice_jishu = CommonConst.NOTICE_INTT;//初始化通知状态 | |
| 95 | + String notice_msg = "";//初始化通知消息 | |
| 96 | + Map<String, String> params = new HashMap<>(); | |
| 97 | + params.put("appId", app_id); | |
| 98 | + params.put("emailAddr", emailAddr); | |
| 99 | + params.put("title",title ); | |
| 100 | + params.put("content", content); | |
| 101 | + params.put("templateId", templateId); | |
| 102 | + params.put("sign", OpenUtil.sign(params,app_key)); | |
| 103 | + HttpUtil httpUtil = HttpUtil.init(); | |
| 104 | + httpUtil.setParamMap(params); | |
| 105 | + try { | |
| 106 | + Map<String, String> post = httpUtil.post(URL); | |
| 107 | + logger.info(post.get("result")); | |
| 108 | + JSONObject result=JSONObject.parseObject(post.get("result")); | |
| 109 | + if (result == null) { | |
| 110 | + notice_jishu=CommonConst.NOTICE_FAIL; | |
| 111 | + notice_msg="邮件服务器调用失败,result为空"; | |
| 112 | + } | |
| 113 | + Integer code = result.getInteger("errorCode"); | |
| 114 | + if (code != 0) { | |
| 115 | + notice_jishu=CommonConst.NOTICE_FAIL; | |
| 116 | + notice_msg="邮件服务器调用失败,result返回消息为:"+result.getString("errorMessage"); | |
| 117 | + }else{ | |
| 118 | + notice_jishu=CommonConst.NOTICE_SUCCESS; | |
| 119 | + notice_msg="邮件发送成功"; | |
| 120 | + } | |
| 121 | + } catch (Exception e) { | |
| 122 | + notice_jishu=CommonConst.NOTICE_FAIL; | |
| 123 | + notice_msg="邮件服务器调用失败,服务器报错了"; | |
| 124 | + } | |
| 125 | + | |
| 126 | + liveApply.setNotice_jishu(notice_jishu); | |
| 127 | + liveApply.setNotice_msg(notice_msg); | |
| 128 | + liveApplyServiceImpl.updateshyLiveApply(liveApply); | |
| 129 | + } | |
| 130 | + } | |
| 131 | + | |
| 132 | + } | |
| 133 | + /** | |
| 134 | + * 自动退领 | |
| 135 | + */ | |
| 136 | + @Scheduled(cron="0 0 0 * * ? ")//每天0点执行 | |
| 137 | + public void autoRetReceive() { | |
| 138 | + logger.info("直播申请自动退领的进入....."); | |
| 139 | + ShyLiveapply liveApply = new ShyLiveapply(); | |
| 140 | + liveApply.setShenhe_state(CommonConst.AUDIT_INTT);//审核状态:未审核 | |
| 141 | + liveApply.setReceive(CommonConst.RECEIVE_AFTER);//已领取 | |
| 142 | + List<ShyLiveapply> shyLiveapplyList = liveApplyServiceImpl.findshyLiveApply(liveApply); | |
| 143 | + if(shyLiveapplyList.size()>0){ | |
| 144 | + for (ShyLiveapply liveapply : shyLiveapplyList) { | |
| 145 | + logger.info("自动退领的liveApply_id:"+liveapply.getId()); | |
| 146 | + liveapply.setReceive(CommonConst.RECEIVE_BEFORE);//未领取 | |
| 147 | + liveapply.setAuditor(null); | |
| 148 | + liveApplyServiceImpl.updateshyLiveApply(liveApply); | |
| 149 | + } | |
| 150 | + } | |
| 151 | + } | |
| 152 | + | |
| 153 | +} | ... | ... |
src/main/java/com/cnlive/shenhe/serviceImpl/LiveApplyServiceImpl.java
| ... | ... | @@ -237,53 +237,57 @@ public class LiveApplyServiceImpl { |
| 237 | 237 | * 根据条件导出数据excel |
| 238 | 238 | * @return |
| 239 | 239 | */ |
| 240 | - public List<ShyLive> findByCondition(String activity_id,String start_date,String end_date, | |
| 241 | - String activity_name, Integer activity_status, Integer page,Integer pageSize, | |
| 242 | - Integer shenhe_state, String orderByClause, Integer spid) { | |
| 243 | - Example example = new Example(ShyLive.class); | |
| 240 | + public List<ShyLiveapply> findByCondition(String theme, String start_date, String end_date, | |
| 241 | + Integer business_model, Integer page, Integer pageSize, | |
| 242 | + Integer shenhe_state,Integer receive, String orderByClause, Integer spid, String userId) { | |
| 243 | + Example example = new Example(ShyLiveapply.class); | |
| 244 | 244 | Example.Criteria criteria = example.createCriteria(); |
| 245 | 245 | if (CommonUtils.isNotEmpty(orderByClause)) { |
| 246 | 246 | example.setOrderByClause(orderByClause); |
| 247 | 247 | }else{ |
| 248 | - //默认排序 | |
| 249 | - example.setOrderByClause("activity_start_time asc"); | |
| 248 | + example.setOrderByClause("pre_start_time"); | |
| 250 | 249 | } |
| 251 | 250 | if (CommonUtils.isNotEmpty(start_date)) { |
| 252 | 251 | Timestamp startdate = null; |
| 253 | 252 | try { |
| 254 | - startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd HH:mm"); | |
| 253 | + startdate = CommonUtils.parseDate(start_date, "yyyy-MM-dd"); | |
| 255 | 254 | } catch (ParseException e) { |
| 256 | 255 | e.printStackTrace(); |
| 257 | 256 | } |
| 258 | - criteria.andGreaterThanOrEqualTo("activity_start_time", startdate); | |
| 257 | + criteria.andGreaterThanOrEqualTo("pre_start_time", startdate); | |
| 259 | 258 | } |
| 260 | 259 | if ( CommonUtils.isNotEmpty(end_date)) { |
| 261 | 260 | Timestamp enddate = null; |
| 262 | 261 | try { |
| 263 | - enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd HH:mm"); | |
| 262 | + enddate = CommonUtils.parseDate(end_date, "yyyy-MM-dd"); | |
| 264 | 263 | } catch (ParseException e) { |
| 265 | 264 | e.printStackTrace(); |
| 266 | 265 | } |
| 267 | - criteria.andLessThanOrEqualTo("activity_end_time", enddate); | |
| 268 | - } | |
| 269 | - if (CommonUtils.isNotEmpty(activity_name)) { | |
| 270 | - criteria.andLike("activity_name", "%" + activity_name + "%"); | |
| 266 | + criteria.andLessThanOrEqualTo("pre_end_time", enddate); | |
| 271 | 267 | } |
| 272 | - if (CommonUtils.isNotNull(activity_status) ) { | |
| 273 | - criteria.andEqualTo("activity_status", activity_status); | |
| 268 | + if (CommonUtils.isNotEmpty(theme)) { | |
| 269 | + criteria.andLike("theme", "%" + theme + "%"); | |
| 274 | 270 | } |
| 275 | - if (CommonUtils.isNotEmpty(activity_id)) { | |
| 276 | - criteria.andEqualTo("activity_id", activity_id); | |
| 271 | + | |
| 272 | + if (CommonUtils.isNotNull(business_model)) { | |
| 273 | + criteria.andEqualTo("business_model", business_model); | |
| 277 | 274 | } |
| 278 | 275 | if (CommonUtils.isNotNull(spid)) { |
| 279 | - criteria.andEqualTo("spid", spid); | |
| 276 | + criteria.andEqualTo("sp_id", spid); | |
| 280 | 277 | } |
| 281 | - if (CommonUtils.isNotNull(shenhe_state)) { | |
| 278 | + if (CommonUtils.isNotNull(shenhe_state)&& shenhe_state != 3) { | |
| 282 | 279 | criteria.andEqualTo("shenhe_state", shenhe_state); |
| 280 | + }else if(CommonUtils.isNotNull(shenhe_state)&& shenhe_state == 3){ | |
| 281 | + criteria.andNotEqualTo("shenhe_state", 0); | |
| 282 | + } | |
| 283 | + if (CommonUtils.isNotNull(receive)) { | |
| 284 | + criteria.andEqualTo("receive", receive); | |
| 285 | + if(receive!=0 && CommonUtils.isNotEmpty(userId)){ | |
| 286 | + criteria.andEqualTo("auditor", userId); | |
| 287 | + } | |
| 283 | 288 | } |
| 284 | - | |
| 285 | - List<ShyLive> shyLiveList = shyLiveMapper.selectByExample(example); | |
| 286 | - return shyLiveList; | |
| 289 | + List<ShyLiveapply> shyLiveApplyList = shyLiveApplyMapper.selectByExample(example); | |
| 290 | + return shyLiveApplyList; | |
| 287 | 291 | } |
| 288 | 292 | |
| 289 | 293 | /** | ... | ... |
src/main/java/com/cnlive/shenhe/utils/CommonConst.java
| ... | ... | @@ -61,6 +61,19 @@ public class CommonConst { |
| 61 | 61 | * 用户状态:禁用 |
| 62 | 62 | */ |
| 63 | 63 | public static Integer USER_STATUS_FORBID = 2; |
| 64 | + | |
| 65 | + /** | |
| 66 | + * 通知状态:未通知 | |
| 67 | + */ | |
| 68 | + public static Integer NOTICE_INTT = 1; | |
| 69 | + /** | |
| 70 | + * 通知状态:已通知 | |
| 71 | + */ | |
| 72 | + public static Integer NOTICE_SUCCESS = 2; | |
| 73 | + /** | |
| 74 | + * 通知状态:通知失败 | |
| 75 | + */ | |
| 76 | + public static Integer NOTICE_FAIL = 3; | |
| 64 | 77 | |
| 65 | 78 | |
| 66 | 79 | /** | ... | ... |
src/main/java/com/cnlive/shenhe/utils/OpenUtil.java
| 1 | 1 | package com.cnlive.shenhe.utils; |
| 2 | 2 | |
| 3 | 3 | import javax.servlet.ServletRequest; |
| 4 | + | |
| 5 | +import com.alibaba.fastjson.JSONObject; | |
| 6 | + | |
| 4 | 7 | import java.io.UnsupportedEncodingException; |
| 5 | 8 | import java.net.URLDecoder; |
| 6 | 9 | import java.net.URLEncoder; |
| ... | ... | @@ -8,6 +11,24 @@ import java.util.*; |
| 8 | 11 | |
| 9 | 12 | public class OpenUtil { |
| 10 | 13 | |
| 14 | + | |
| 15 | + //生成post方式的请求参数签名 | |
| 16 | + public static void main(String[] args) { | |
| 17 | +// String app_key = "ad101b9152817a79b5c33c3617b96ff91385096ff3b4ba"; //开发者帐号对应的key. 请开发者谨慎保管此值。 | |
| 18 | +// Map<String, String> params = new HashMap<>(); | |
| 19 | +// params.put("appId", "769_jetja50p18"); | |
| 20 | +// params.put("emailAddr", "642522156@qq.com"); | |
| 21 | +// params.put("title", "新直播开播申请"); | |
| 22 | +// params.put("content", "李伟 __12001072345__中投视讯sdadadad__测试2测试2测试2测试2__2019-10-30 14:53:50__2019-10-30 14:55:15__花园桥花园桥花园桥花园桥花园桥花园桥__rtmp://sxzg.rtmpt2.cnlive.com/live-sxzg-82/82_newshen4?key=564329e44212e754__rtmp://sxzg.rtmpt2.cnlive.com/live-sxzg-82/82_newshen4"); | |
| 23 | +// params.put("templateId", "4017"); | |
| 24 | +// params.put("sign", sign(params,app_key)); | |
| 25 | +// HttpUtil httpUtil = HttpUtil.init(); | |
| 26 | +// httpUtil.setParamMap(params); | |
| 27 | +// String URL = "http://sms.cnlive.com/CnliveM3/email/sendMoreVarEmail.action"; | |
| 28 | +// Map<String, String> post = httpUtil.post(URL); | |
| 29 | +// System.out.println(post.get("result")); | |
| 30 | + } | |
| 31 | + | |
| 11 | 32 | |
| 12 | 33 | /** |
| 13 | 34 | * 验证签名 | ... | ... |
src/main/resources/mapper/ShyLiveapplyMapper.xml
| ... | ... | @@ -13,6 +13,7 @@ |
| 13 | 13 | <result column="mobile" jdbcType="VARCHAR" property="mobile" /> |
| 14 | 14 | <result column="organization" jdbcType="VARCHAR" property="organization" /> |
| 15 | 15 | <result column="theme" jdbcType="VARCHAR" property="theme" /> |
| 16 | + <result column="live_type" jdbcType="VARCHAR" property="live_type" /> | |
| 16 | 17 | <result column="pre_start_time" jdbcType="TIMESTAMP" property="pre_start_time" /> |
| 17 | 18 | <result column="pre_end_time" jdbcType="TIMESTAMP" property="pre_end_time" /> |
| 18 | 19 | <result column="business_model" jdbcType="INTEGER" property="business_model" /> |
| ... | ... | @@ -29,6 +30,8 @@ |
| 29 | 30 | <result column="updater" jdbcType="VARCHAR" property="updater" /> |
| 30 | 31 | <result column="auditor" jdbcType="VARCHAR" property="auditor" /> |
| 31 | 32 | <result column="shenhe_msg" jdbcType="VARCHAR" property="shenhe_msg" /> |
| 33 | + <result column="notice_jishu" jdbcType="INTEGER" property="notice_jishu" /> | |
| 34 | + <result column="notice_msg" jdbcType="VARCHAR" property="notice_msg" /> | |
| 32 | 35 | <result column="created_at" jdbcType="TIMESTAMP" property="created_at" /> |
| 33 | 36 | <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" /> |
| 34 | 37 | <result column="simple_content" jdbcType="LONGVARCHAR" property="simple_content" /> | ... | ... |
src/main/resources/templates/email/email_templates.html
0 → 100644
| 1 | +<html> | |
| 2 | +<head> | |
| 3 | +<title>新直播开播申请</title> | |
| 4 | +</head> | |
| 5 | +<body> | |
| 6 | + <div align="center" id="tabContents" class="tab-content"> | |
| 7 | + <span style="font-size:30px;font-weight: bold;color:#F4A460;">中国网家家直播申请单</span> | |
| 8 | + <table border="1" style="background-color:#F5FFFA;width:80%;font-size:20px;" id="table"> | |
| 9 | + <tr align="center" valign="middle" height="40px"> | |
| 10 | + <td width="25%" >直播发起人</td> | |
| 11 | + <td width="30%" colspan="2" > | |
| 12 | + <span style="color:#DC143C" >${sender}</span> | |
| 13 | + </td> | |
| 14 | + <td width="15%">联系方式</td> | |
| 15 | + <td width="30%" colspan="2"> | |
| 16 | + <span style="color:#DC143C" >${mobile}</span> | |
| 17 | + </td> | |
| 18 | + </tr> | |
| 19 | + <tr align="center" valign="middle" height="40px"> | |
| 20 | + <td >直播发起单位</td> | |
| 21 | + <td colspan="5"> | |
| 22 | + <span style="color:#DC143C" >${organization}</span> | |
| 23 | + </td> | |
| 24 | + </tr> | |
| 25 | + <tr align="center" valign="middle" height="40px"> | |
| 26 | + <td >直播主题</td> | |
| 27 | + <td colspan="5"> | |
| 28 | + <span style="color:#DC143C" >${theme}</span> | |
| 29 | + </td> | |
| 30 | + </tr> | |
| 31 | + <tr align="center" valign="middle" height="40px"> | |
| 32 | + <td >直播开始时间</td> | |
| 33 | + <td colspan="5"> | |
| 34 | + <span style="color:#DC143C" >${pre_start_time}</span> | |
| 35 | + </td> | |
| 36 | + </tr> | |
| 37 | + <tr align="center" valign="middle" height="40px"> | |
| 38 | + <td >直播结束时间</td> | |
| 39 | + <td colspan="5"> | |
| 40 | + <span style="color:#DC143C" >${pre_end_time}</span> | |
| 41 | + </td> | |
| 42 | + </tr> | |
| 43 | + | |
| 44 | + <tr align="center" valign="middle" height="40px"> | |
| 45 | + <td >直播地点</td> | |
| 46 | + <td colspan="5"> | |
| 47 | + <span style="color:#DC143C" >${live_place}</span> | |
| 48 | + </td> | |
| 49 | + </tr> | |
| 50 | + <tr align="center" valign="middle" height="40px"> | |
| 51 | + <td >推流地址</td> | |
| 52 | + <td colspan="5"> | |
| 53 | + <span style="color:#DC143C" >${push_url}</span> | |
| 54 | + </td> | |
| 55 | + </tr> | |
| 56 | + <tr align="center" valign="middle" height="40px"> | |
| 57 | + <td >拉流地址</td> | |
| 58 | + <td colspan="5"> | |
| 59 | + <span style="color:#DC143C" >${pull_url}</span> | |
| 60 | + </td> | |
| 61 | + </tr> | |
| 62 | + | |
| 63 | + </table> | |
| 64 | + | |
| 65 | + </div> | |
| 66 | +</body> | |
| 67 | +</html> | |
| 0 | 68 | \ No newline at end of file | ... | ... |