From 7dcb323a7a16724b5ea7188818e71b4404b5fe8e Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Sun, 22 Nov 2020 21:02:50 +0800 Subject: [PATCH] 20201122v1.1 --- .../com/ccsens/mt/api/KCPlayerController.java | 4 +- .../ccsens/mt/bean/vo/ProvinceCompeteVo.java | 12 ++++-- .../ccsens/mt/service/CompeteTaskService.java | 7 +++- .../com/ccsens/mt/service/ExcelService.java | 14 +------ .../com/ccsens/mt/service/IExcelService.java | 5 --- .../ccsens/mt/service/IKCPlayerService.java | 13 ++++++ .../ccsens/mt/service/KCPlayerService.java | 41 +++++++++++++++++++ .../java/com/ccsens/mt/util/Constant.java | 4 +- .../mapper_dao/CompeteProjectConfigDao.xml | 4 +- .../main/java/com/ccsens/util/CodeEnum.java | 1 + 10 files changed, 77 insertions(+), 28 deletions(-) diff --git a/mt/src/main/java/com/ccsens/mt/api/KCPlayerController.java b/mt/src/main/java/com/ccsens/mt/api/KCPlayerController.java index 3d07b837..c2e46490 100644 --- a/mt/src/main/java/com/ccsens/mt/api/KCPlayerController.java +++ b/mt/src/main/java/com/ccsens/mt/api/KCPlayerController.java @@ -37,11 +37,11 @@ public class KCPlayerController { return JsonResponse.newInstance().ok(signature); } - @ApiOperation(value = "查看云点播签名", notes = "从redis获取云点播签名,有则返回,没有则调用工具类查询,存入redis并返回") + @ApiOperation(value = "云点播回调接口", notes = "上传时候后,云点播回调接口,保存视频的路径") @RequestMapping(value = "/receive", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse receive(@RequestBody Map map) { log.info("接受文件上传通知:{}",map); - + kcPlayerService.saveVideoUrl(map); return JsonResponse.newInstance().ok(); } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java index 40f7bc5d..9caffcb6 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java @@ -248,9 +248,15 @@ public class ProvinceCompeteVo { @ApiModelProperty("结束时间") private Long endTime; - public Long getEndTime(){ - if(ObjectUtil.isNotNull(startTime) && startTime != 0){ - return startTime + Constant.UPLOAD_VIDEO_TIME; +// public Long getEndTime(){ +// if(ObjectUtil.isNotNull(startTime) && startTime != 0){ +// return startTime + Constant.UPLOAD_VIDEO_TIME; +// } +// return null; +// } + public Long getStartTime(){ + if(ObjectUtil.isNotNull(endTime) && endTime != 0){ + return endTime - Constant.UPLOAD_VIDEO_TIME; } return null; } diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java index 82ea42c9..17df6fef 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java @@ -422,6 +422,7 @@ public class CompeteTaskService implements ICompeteTaskService { List queryJudgmentList = competeJudgmentDao.queryJudgment(param.getCompeteTimeId(), param.getProjectId()); if (CollectionUtil.isNotEmpty(queryJudgmentList)) { queryJudgmentList.forEach(projectJudgment -> { +// for(ProvinceCompeteVo.QueryJudgment projectJudgment : queryJudgmentList){ //裁判数量 int count = projectJudgment.getProjectType() == 0 ? 3 : 7; for (int i = 0; i < projectJudgment.getSiteNums(); i++) { @@ -438,7 +439,10 @@ public class CompeteTaskService implements ICompeteTaskService { } } else { int a = projectJudgment.getSiteList().size(); - for (int j = 0; j < count - a; j++) { + System.out.println("==========="+ a); + System.out.println("==========="+ projectJudgment.getSiteNums()); + System.out.println("==========="+ (projectJudgment.getSiteNums()-a)); + for (int j = 0; j < projectJudgment.getSiteNums() - a; j++) { ProvinceCompeteVo.ProjectSite siteJudgment = new ProvinceCompeteVo.ProjectSite(); siteJudgment.setSiteNum(a + j + 1); projectJudgment.getSiteList().add(siteJudgment); @@ -451,6 +455,7 @@ public class CompeteTaskService implements ICompeteTaskService { } } } +// } }); } return queryJudgmentList; diff --git a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java index 8c5277a5..e8cfc250 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java @@ -74,21 +74,11 @@ public class ExcelService implements IExcelService { @Resource private CompetePlayerDao competePlayerDao; @Resource - private CompeteTeamMemberMapper competeTeamMemberMapper; - @Resource private CompeteProjectMapper competeProjectMapper; @Resource private CompeteProjectPlayerMapper competeProjectPlayerMapper; @Resource - private CompeteGroupMapper competeGroupMapper; - @Resource - private CompeteProjectConfigMapper competeProjectConfigMapper; - @Resource - private CommonFileMapper commonFileMapper; - @Resource - private IProvinceService provinceService; - @Resource - CompeteCoachMapper competeCoachMapper; + private CompeteCoachMapper competeCoachMapper; @Resource private CompetePlayerMapper competePlayerMapper; @@ -100,8 +90,6 @@ public class ExcelService implements IExcelService { private CompeteScoreDao competeScoreDao; @Resource private ICompeteService competeService; - @Resource - private CompeteScoreDao competeScoreDao; @Override public String dasaiduiwuxinxiWPS(QueryDto params) { diff --git a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java index 9e81105d..91639717 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java @@ -94,11 +94,6 @@ public interface IExcelService { - - - - String patternExpTable(ScoreDto.ShowResult param); - /** * 生成比赛前八名的表格 * @param params 第几届比赛 diff --git a/mt/src/main/java/com/ccsens/mt/service/IKCPlayerService.java b/mt/src/main/java/com/ccsens/mt/service/IKCPlayerService.java index b6531324..3db8e208 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IKCPlayerService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IKCPlayerService.java @@ -1,5 +1,18 @@ package com.ccsens.mt.service; +import java.util.Map; + public interface IKCPlayerService { + /** + * 获取云点播签名 + * @param id + * @return + */ String getSignature(Long id); + + /** + * 云点播回调接口 + * @param map + */ + void saveVideoUrl(Map map); } diff --git a/mt/src/main/java/com/ccsens/mt/service/KCPlayerService.java b/mt/src/main/java/com/ccsens/mt/service/KCPlayerService.java index d626a569..5116d39f 100644 --- a/mt/src/main/java/com/ccsens/mt/service/KCPlayerService.java +++ b/mt/src/main/java/com/ccsens/mt/service/KCPlayerService.java @@ -1,6 +1,12 @@ package com.ccsens.mt.service; +import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; +import com.ccsens.mt.bean.po.CompeteStartOrder; +import com.ccsens.mt.bean.po.CompeteVideo; +import com.ccsens.mt.bean.po.CompeteVideoExample; +import com.ccsens.mt.persist.mapper.CompeteStartOrderMapper; +import com.ccsens.mt.persist.mapper.CompeteVideoMapper; import com.ccsens.mt.util.Constant; import com.ccsens.util.CodeEnum; import com.ccsens.util.KCPlayerSignature; @@ -12,6 +18,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Map; import java.util.Random; @Slf4j @Service @@ -19,6 +26,12 @@ import java.util.Random; public class KCPlayerService implements IKCPlayerService{ @Resource private RedisUtil redisUtil; + @Resource + private CompeteStartOrderMapper startOrderMapper; + @Resource + private CompeteVideoMapper competeVideoMapper; + @Resource + private Snowflake snowflake; /** * 获取云点播签名 @@ -51,4 +64,32 @@ public class KCPlayerService implements IKCPlayerService{ } return signature; } + + @Override + public void saveVideoUrl(Map map) { + // TODO 获取回传的id(场次id) + Long orderId = null; + // TODO 获取视频路径 + String videoUrl = ""; + //通过场次id获取场次信息 + CompeteStartOrder startOrder = startOrderMapper.selectByPrimaryKey(orderId); + if(ObjectUtil.isNull(startOrder)){ + throw new BaseException(CodeEnum.PARAM_ERROR); + } + //查找此场次之前的上传记录 + CompeteVideoExample competeVideoExample = new CompeteVideoExample(); + competeVideoExample.createCriteria().andProjectIdEqualTo(startOrder.getProjectId()) + .andPlayerIdEqualTo(startOrder.getPlayerId()); + if(competeVideoMapper.countByExample(competeVideoExample) > 0){ + throw new BaseException(CodeEnum.ALREADY_UPLOAD_VIDEO); + } + //将视频信息存入视频表 + CompeteVideo competeVideo = new CompeteVideo(); + competeVideo.setId(snowflake.nextId()); + competeVideo.setProjectId(startOrder.getProjectId()); + competeVideo.setPlayerId(startOrder.getPlayerId()); + competeVideo.setVideoUrl(videoUrl); + competeVideo.setUploadTime(System.currentTimeMillis()); + competeVideoMapper.insertSelective(competeVideo); + } } diff --git a/mt/src/main/java/com/ccsens/mt/util/Constant.java b/mt/src/main/java/com/ccsens/mt/util/Constant.java index ef0667ca..0d0dfee5 100644 --- a/mt/src/main/java/com/ccsens/mt/util/Constant.java +++ b/mt/src/main/java/com/ccsens/mt/util/Constant.java @@ -57,9 +57,9 @@ public class Constant { */ public static final long COMPETE_VARIETY = 2002; /** - * 每个比赛项目留给选手上传视频的时间(暂定半个小时,可以修改) + * 每个比赛项目留给选手上传视频的时间(暂定一个小时,可以修改) */ - public static final long UPLOAD_VIDEO_TIME = 30 * 60 * 1000; + public static final long UPLOAD_VIDEO_TIME = 60 * 60 * 1000; public final static class Compete{ diff --git a/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml b/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml index 614887a7..20d94489 100644 --- a/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml @@ -16,7 +16,7 @@ - + @@ -331,7 +331,7 @@ so.id as startOrderId, so.compete_order as competeOrder, so.site as site, - pc.start_time as startTime, + pc.start_time as endTime, pr.id as projectId, pr.`name` as projectName, pr.`team` as team, diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 2921824a..0e81997d 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -178,6 +178,7 @@ public enum CodeEnum { JOIN_AUTH_GROUP(147,"已参加了其他组别,无法再次报名",true), ALREADY_JOIN_PROJECT(148,"该选手已经参加了比赛,不可修改身份证组别等信息",true), ALREADY_JOIN_PROJECT_DEL(149,"取消报名后可删除",true), + ALREADY_UPLOAD_VIDEO(150,"您已经上传了视频,请勿重复提交",true), ;