diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java index dbd34fff..e2671074 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java @@ -5,6 +5,7 @@ import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.dto.ScoreDto; import com.ccsens.mt.bean.vo.CompeteVo; import com.ccsens.mt.bean.vo.ScoreVo; +import com.ccsens.mt.service.ICompeteScoreService; import com.ccsens.mt.service.ICompeteService; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; @@ -35,6 +36,8 @@ import java.util.List; public class CompeteScoreController { @Resource private ICompeteService competeService; + @Resource + private ICompeteScoreService competeScoreService; @@ -66,9 +69,9 @@ public class CompeteScoreController { @ApiOperation(value = "花样赛成绩查看", notes = "Mr.王 -----从花样赛成绩表里面查看出这个人得成绩") @RequestMapping(value = "/showResult", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> showResult (@ApiParam @Validated @RequestBody QueryDto params){ + public JsonResponse> showResult (@ApiParam @Validated @RequestBody QueryDto params){ log.info("花样赛详细分数查看:{}",params); - List totalScoreDisplaysList= competeService.showResult(params.getParam()); + PageInfo totalScoreDisplaysList= competeService.showResult(params.getParam()); return JsonResponse.newInstance().ok(totalScoreDisplaysList); } @@ -101,14 +104,24 @@ public class CompeteScoreController { } +// @MustLogin +// @ApiOperation(value = "查看计数赛成绩公示表", notes = "多表关联之后,查询当前你场次得分数信息") +// @RequestMapping(value = "/query/countScoreAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto params) { +// log.info("查看计数赛成绩公示表:{}",params); +// PageInfo countScoreCurrentSites = competeService.queryCountScoreAll(params.getParam()); +// log.info("查看计数赛成绩公示表:{}",params); +// return JsonResponse.newInstance().ok(countScoreCurrentSites); +// } + @MustLogin @ApiOperation(value = "查看计数赛成绩公示表", notes = "多表关联之后,查询当前你场次得分数信息") @RequestMapping(value = "/query/countScoreAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto params) { log.info("查看计数赛成绩公示表:{}",params); - PageInfo countScoreCurrentSites = competeService.queryCountScoreAll(params.getParam()); - log.info("查看计数赛成绩公示表:{}",params); - return JsonResponse.newInstance().ok(countScoreCurrentSites); + PageInfo pageInfo = competeService.queryCountScore(params.getParam()); + log.info("查看计数赛成绩公示表:{}",pageInfo); + return JsonResponse.newInstance().ok(pageInfo); } @MustLogin @@ -116,7 +129,8 @@ public class CompeteScoreController { @RequestMapping(value = "/submitScore", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse submitScore(@ApiParam @Validated @RequestBody QueryDto params) { log.info("查询比赛项目上的参赛选手列表:{}",params); - competeService.submitScore(params.getParam()); +// competeService.submitScore(params.getParam()); + competeScoreService.submitScore(params.getParam()); return JsonResponse.newInstance().ok(); } diff --git a/mt/src/main/java/com/ccsens/mt/api/ExcelController.java b/mt/src/main/java/com/ccsens/mt/api/ExcelController.java index d3b10afe..8fff9c05 100644 --- a/mt/src/main/java/com/ccsens/mt/api/ExcelController.java +++ b/mt/src/main/java/com/ccsens/mt/api/ExcelController.java @@ -35,6 +35,17 @@ public class ExcelController { @Resource private IExcelService excelService; + @MustLogin + @ApiOperation(value = "比赛前八名(导出)", notes = "whj") + @RequestMapping(value = "/beforeEight", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse beforeEight(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { + log.info("比赛前八名(导出):{}",params); + String path = excelService.beforeEight(params); + log.info("比赛前八名(导出)结果:{}", path); + return JsonResponse.newInstance().ok(path); + } + + @MustLogin @ApiOperation(value = "xxx大赛报名表(导出)", notes = "") @RequestMapping(value = "/competeJoin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) 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/dto/CompeteDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java index b00bc7ee..a600e368 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java @@ -28,7 +28,7 @@ public class CompeteDto { public static class CompeteSite{ @NotNull @ApiModelProperty("场次id") - private int siteId; + private Long siteId; } @Data @@ -352,6 +352,7 @@ public class CompeteDto { private Long projectId; @ApiModelProperty("大赛id") private Long competeTimeId; + @NotNull @ApiModelProperty("场次id") private Long siteOrderId; @ApiModelProperty("主裁打分") diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteExcelVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteExcelVo.java index cacad4d0..b6e64ca2 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteExcelVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteExcelVo.java @@ -60,5 +60,13 @@ public class CompeteExcelVo { private String year; } + @Data + @ApiModel("前八名-响应") + public static class BeforeEight{ + @ApiModelProperty("组名") + private String groupName; + @ApiModelProperty("前八名学生名字,逗号分隔") + private String eightNames; + } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index 64bcf444..457cb6f7 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -492,6 +492,8 @@ public class CompeteVo { public BigDecimal referee0 = new BigDecimal(0); @ApiModelProperty("最后得分") public BigDecimal result = new BigDecimal(0); +// @ApiModelProperty("排名") +// public int rownum; @ApiModelProperty("排名") public int order; @ApiModelProperty("备注") 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/bean/vo/ScoreVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java index cb516aa6..648516b6 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java @@ -225,7 +225,34 @@ public class ScoreVo { private BigDecimal finalScore; @ApiModelProperty("备注") private String remark; - @ApiModelProperty("名词") + @ApiModelProperty("名次") + private int rangee; + @ApiModelProperty("视频路劲") + private String videoUrl; + } + + @Data + @ApiModel("计数赛成绩公示-返回") + public static class CountScorePublicity{ + @ApiModelProperty("组别") + private String groupName; + @ApiModelProperty("团队名") + private String companyName; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("主裁1打分") + private BigDecimal mainOneScore; + @ApiModelProperty("主裁2打分") + private BigDecimal mainTwoScore; + @ApiModelProperty("应得分") + private Integer shouldScore; + @ApiModelProperty("扣除次数") + private Integer deductTime; + @ApiModelProperty("最终成绩") + private BigDecimal finalScore; + @ApiModelProperty("备注") + private String remark; + @ApiModelProperty("名次") private int rangee; } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectDao.java index 67c7c4d1..5a65d69f 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectDao.java @@ -19,6 +19,12 @@ public interface CompeteProjectDao extends CompeteProjectMapper { List getPlayerForSingle (@Param("level") Byte level, @Param("type") Byte type); List getPlayerForTeam (@Param("level") Byte level, @Param("type") Byte type); + /** + * 根据大赛ID查询二级,非通级项目 + * @param competeTimeId 大赛ID + * @return 项目 + */ + List queryProject(@Param("id") Long competeTimeId); /** * 查找项目下的参赛人数或队伍 * @param projectId diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java index 74d3ac81..246c37b5 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java @@ -42,4 +42,58 @@ public interface CompeteScoreDao { * @return */ List queryCountScoreAllByTeam(Long projectId); + + /** + * 项目前八名 + * @param projectId 项目ID + * @param competeTimeId 大赛ID + * @return 前八名 + */ + List queryEight(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + /** + * 计数赛限组别前八名 + * @param projectId 项目ID + * @param competeTimeId 大赛ID + * @return 前八名 + */ + List queryEightGroupLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + /** + * 花样赛不限组别前八名 + * @param projectId 项目ID + * @param competeTimeId 大赛ID + * @return 前八名 + */ + List queryEightGroupNotLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + /** + * 花样赛限组别前八名 + * @param projectId 项目ID + * @param competeTimeId 大赛ID + * @return 前八名 + */ + List queryEightVarietyGroupLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + + /** + * 查询计数赛中团体赛成绩 + * @param projectId 项目ID + * @return 成绩 + */ + List queryCountScoreTeam(@Param("projectId") Long projectId); + + /** + * 查询计数赛中个人赛成绩 + * @param projectId 项目ID + * @return 成绩 + */ + List queryCountScorePerson(@Param("projectId") Long projectId); + + /** + * 统计花样赛成绩 + * @param projectId 项目ID + * @return 成绩 + */ + List queryVarietyScore(@Param("projectId") Long projectId); } diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteScoreService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteScoreService.java new file mode 100644 index 00000000..302b3a7a --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteScoreService.java @@ -0,0 +1,62 @@ +package com.ccsens.mt.service; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; +import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.po.CompeteCountScore; +import com.ccsens.mt.bean.po.CompeteCountScoreExample; +import com.ccsens.mt.persist.mapper.CompeteCountScoreMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 逗 + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class CompeteScoreService implements ICompeteScoreService{ + @Resource + private CompeteCountScoreMapper competeCountScoreMapper; + @Resource + private Snowflake snowflake; + + @Override + public void submitScore(CompeteDto.SubmitScore param) { + //查找该场次已经有的分数 + CompeteCountScore countScore; + CompeteCountScoreExample countScoreExample = new CompeteCountScoreExample(); + countScoreExample.createCriteria().andSiteOrderIdEqualTo(param.getSiteOrderId()).andProjectIdEqualTo(param.getProjectId()); + List countScoreList = competeCountScoreMapper.selectByExample(countScoreExample); + if(CollectionUtil.isNotEmpty(countScoreList)){ + countScore = countScoreList.get(0); + countScore.setChiefJudgmentScore(param.getMainScore()); + countScore.setJudgmentAScore(param.getMainOneScore()); + countScore.setJudgmentBScore2(param.getMainTwoScore()); + countScore.setShouldTimes(param.getShouldScore()); + countScore.setDeductTimes(param.getDeductTime()); + countScore.setDeductCause(param.getDeductReason()); + countScore.setFinalScore(param.getFinalScore()); + competeCountScoreMapper.updateByPrimaryKeySelective(countScore); + }else { + countScore = new CompeteCountScore(); + countScore.setId(snowflake.nextId()); + countScore.setProjectId(param.getProjectId()); + countScore.setSiteOrderId(param.getSiteOrderId()); + countScore.setChiefJudgmentScore(param.getMainScore()); + countScore.setJudgmentAScore(param.getMainOneScore()); + countScore.setJudgmentBScore2(param.getMainTwoScore()); + countScore.setShouldTimes(param.getShouldScore()); + countScore.setDeductTimes(param.getDeductTime()); + countScore.setDeductCause(param.getDeductReason()); + countScore.setFinalScore(param.getFinalScore()); + competeCountScoreMapper.insertSelective(countScore); + } + + } +} diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index 0b3d6fa6..b1cfdcce 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -105,6 +105,7 @@ public class CompeteService implements ICompeteService { @Resource private CompeteVideoMapper competeVideoMapper; + @Override public PageInfo showResultPage(ScoreDto.ShowResultW param) { PageHelper.startPage(param.getPageNum(),param.getPageSize()); @@ -213,126 +214,131 @@ public class CompeteService implements ICompeteService { * @param param */ @Override - public List showResult(ScoreDto.ShowResultW param) { - List totalScoreDisplaysList=new ArrayList<>(); - CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample(); - competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); - competeStartOrderExample.setOrderByClause("player_id DESC"); - List competeStartOrdersList = competeStartOrderMapper.selectByExample(competeStartOrderExample); -// if(competeStartOrdersList.size()<1){ -// throw new BaseException(CodeEnum.PARAM_ERROR); -// } - competeStartOrdersList.forEach(competeStartOrder -> { - //一个人或者一个团队得数据 - CompeteVo.TotalScoreDisplay totalScoreDisplay = new CompeteVo.TotalScoreDisplay(); - totalScoreDisplay.setRemark(totalScoreDisplay.getRemark()); - //项目名 -// CompeteProject project = competeProjectMapper.selectByPrimaryKey(competeStartOrder.getProjectId()); -// if(ObjectUtil.isNotNull(project)) { -// totalScoreDisplay.setCompanyName(project.getName()); -// } - //名字 - if(competeStartOrder.getTeam().equals((byte) 0)){ - //个人人名 - CompetePlayer player = competePlayerDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); - if(ObjectUtil.isNotNull(player)) { - totalScoreDisplay.setPeopleName(player.getName()); - //个人所属团队名 - CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(player.getCompanyId()); - if (ObjectUtil.isNotNull(competeCompany)){ - totalScoreDisplay.setCompanyName(competeCompany.getName()); - } - } - }else { - //团体名 - CompeteTeam competeTeam = competeTeamDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); - CompeteCompany competeCompany =competeCompanyMapper.selectByPrimaryKey(competeTeam.getCompanyId()); - totalScoreDisplay.setCompanyName(competeCompany.getName()); - //团队人名 - CompeteTeamMemberExample competeTeamMemberExample = new CompeteTeamMemberExample(); - competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeTeam.getId()); - List competeTeamMemberList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); - StringBuilder stringBuilder=new StringBuilder(""); - competeTeamMemberList.forEach(mes->{ - CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(mes.getPlayerId()); - stringBuilder.append(competePlayer.getName()+"、"); - }); - //totalScoreDisplay.setPeopleName(stringBuilder.toString()); -// CompeteTeamMemberExample competeTeamMemberExample =new CompeteTeamMemberExample(); -// competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeStartOrder.getPlayerId()); -// List competeTeamMembersList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); + public PageInfo showResult(ScoreDto.ShowResultW param) { + PageHelper.startPage(param.getPageNum(), param.getPageSize()); + List list = competeScoreDao.queryVarietyScore(param.getProjectId()); + return new PageInfo<>(list); + } +// public List showResult(ScoreDto.ShowResultW param) { +// List totalScoreDisplaysList=new ArrayList<>(); +// CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample(); +// competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); +// competeStartOrderExample.setOrderByClause("player_id DESC"); +// List competeStartOrdersList = competeStartOrderMapper.selectByExample(competeStartOrderExample); +//// if(competeStartOrdersList.size()<1){ +//// throw new BaseException(CodeEnum.PARAM_ERROR); +//// } +// competeStartOrdersList.forEach(competeStartOrder -> { +// //一个人或者一个团队得数据 +// CompeteVo.TotalScoreDisplay totalScoreDisplay = new CompeteVo.TotalScoreDisplay(); +// totalScoreDisplay.setRemark(totalScoreDisplay.getRemark()); +// //项目名 +//// CompeteProject project = competeProjectMapper.selectByPrimaryKey(competeStartOrder.getProjectId()); +//// if(ObjectUtil.isNotNull(project)) { +//// totalScoreDisplay.setCompanyName(project.getName()); +//// } +// //名字 +// if(competeStartOrder.getTeam().equals((byte) 0)){ +// //个人人名 +// CompetePlayer player = competePlayerDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); +// if(ObjectUtil.isNotNull(player)) { +// totalScoreDisplay.setPeopleName(player.getName()); +// //个人所属团队名 +// CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(player.getCompanyId()); +// if (ObjectUtil.isNotNull(competeCompany)){ +// totalScoreDisplay.setCompanyName(competeCompany.getName()); +// } +// } +// }else { +// //团体名 +// CompeteTeam competeTeam = competeTeamDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); +// CompeteCompany competeCompany =competeCompanyMapper.selectByPrimaryKey(competeTeam.getCompanyId()); +// totalScoreDisplay.setCompanyName(competeCompany.getName()); +// //团队人名 +// CompeteTeamMemberExample competeTeamMemberExample = new CompeteTeamMemberExample(); +// competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeTeam.getId()); +// List competeTeamMemberList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); // StringBuilder stringBuilder=new StringBuilder(""); -// competeTeamMembersList.forEach(competeTeamMember -> { -// stringBuilder.append(competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId()).getName()+'、'); +// competeTeamMemberList.forEach(mes->{ +// CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(mes.getPlayerId()); +// stringBuilder.append(competePlayer.getName()+"、"); // }); - String namess=stringBuilder.toString().substring(0,stringBuilder.length()-1); - totalScoreDisplay.setPeopleName(namess); - } - List results = competeTimeDao.selectJudgmentS(competeStartOrder.getId()); - //7个教练成绩也上去了 - for (CompeteVo.Result r :results){ - if(r.getChief()==0){ - totalScoreDisplay.setReferee0(r.getScore()); - }else if(r.getChief()==1){ - totalScoreDisplay.setReferee1(r.getScore()); - }else if(r.getChief()==2){ - totalScoreDisplay.setReferee2(r.getScore()); - }else if(r.getChief()==3){ - totalScoreDisplay.setReferee3(r.getScore()); - }else if(r.getChief()==4){ - totalScoreDisplay.setReferee4(r.getScore()); - }else if(r.getChief()==5){ - totalScoreDisplay.setReferee5(r.getScore()); - }else if(r.getChief()==6){ - totalScoreDisplay.setReferee6(r.getScore()); - } - } - BigDecimal bigDecimal1to3=new BigDecimal(0); - bigDecimal1to3.add(totalScoreDisplay.getReferee1()).add(totalScoreDisplay.getReferee2()).add(totalScoreDisplay.getReferee3()); - BigDecimal bigDecimalavg1to3=new BigDecimal(0); - BigDecimal bignum=new BigDecimal(3); - totalScoreDisplay.setAvg1To3(bigDecimalavg1to3.divide(bignum,2,BigDecimal.ROUND_HALF_UP)); - - BigDecimal bigDecimal4to6=new BigDecimal(0); - bigDecimal4to6.add(totalScoreDisplay.getReferee4()).add(totalScoreDisplay.getReferee5()).add(totalScoreDisplay.getReferee6()); - BigDecimal bigDecimalavg4to6=new BigDecimal(0); - BigDecimal bignum1=new BigDecimal(3); - totalScoreDisplay.setAvg4To6(bigDecimalavg4to6.divide(bignum1,2,BigDecimal.ROUND_HALF_UP)); - //总成绩也出来了 - BigDecimal re=new BigDecimal(0); - re.add(totalScoreDisplay.getAvg1To3()).add(totalScoreDisplay.getAvg4To6()).subtract(totalScoreDisplay.getReferee0()); - totalScoreDisplay.setResult(re); - totalScoreDisplaysList.add(totalScoreDisplay); - }); -// Collections.sort(totalScoreDisplaysList, new Comparator() { -// @Override -// public BigDecimal compare(CompeteVo.TotalScoreDisplay o1, CompeteVo.TotalScoreDisplay o2) { -// o1.getResult().subtract(o2.getResult()); -// return o1.getResult(); +// //totalScoreDisplay.setPeopleName(stringBuilder.toString()); +//// CompeteTeamMemberExample competeTeamMemberExample =new CompeteTeamMemberExample(); +//// competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeStartOrder.getPlayerId()); +//// List competeTeamMembersList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); +//// StringBuilder stringBuilder=new StringBuilder(""); +//// competeTeamMembersList.forEach(competeTeamMember -> { +//// stringBuilder.append(competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId()).getName()+'、'); +//// }); +// String namess=stringBuilder.toString().substring(0,stringBuilder.length()-1); +// totalScoreDisplay.setPeopleName(namess); // } +// List results = competeTimeDao.selectJudgmentS(competeStartOrder.getId()); +// //7个教练成绩也上去了 +// for (CompeteVo.Result r :results){ +// if(r.getChief()==0){ +// totalScoreDisplay.setReferee0(r.getScore()); +// }else if(r.getChief()==1){ +// totalScoreDisplay.setReferee1(r.getScore()); +// }else if(r.getChief()==2){ +// totalScoreDisplay.setReferee2(r.getScore()); +// }else if(r.getChief()==3){ +// totalScoreDisplay.setReferee3(r.getScore()); +// }else if(r.getChief()==4){ +// totalScoreDisplay.setReferee4(r.getScore()); +// }else if(r.getChief()==5){ +// totalScoreDisplay.setReferee5(r.getScore()); +// }else if(r.getChief()==6){ +// totalScoreDisplay.setReferee6(r.getScore()); +// } +// } +// BigDecimal bigDecimal1to3=new BigDecimal(0); +// bigDecimal1to3.add(totalScoreDisplay.getReferee1()).add(totalScoreDisplay.getReferee2()).add(totalScoreDisplay.getReferee3()); +// BigDecimal bigDecimalavg1to3=new BigDecimal(0); +// BigDecimal bignum=new BigDecimal(3); +// totalScoreDisplay.setAvg1To3(bigDecimalavg1to3.divide(bignum,2,BigDecimal.ROUND_HALF_UP)); +// +// BigDecimal bigDecimal4to6=new BigDecimal(0); +// bigDecimal4to6.add(totalScoreDisplay.getReferee4()).add(totalScoreDisplay.getReferee5()).add(totalScoreDisplay.getReferee6()); +// BigDecimal bigDecimalavg4to6=new BigDecimal(0); +// BigDecimal bignum1=new BigDecimal(3); +// totalScoreDisplay.setAvg4To6(bigDecimalavg4to6.divide(bignum1,2,BigDecimal.ROUND_HALF_UP)); +// //总成绩也出来了 +// BigDecimal re=new BigDecimal(0); +// re.add(totalScoreDisplay.getAvg1To3()).add(totalScoreDisplay.getAvg4To6()).subtract(totalScoreDisplay.getReferee0()); +// totalScoreDisplay.setResult(re); +// totalScoreDisplaysList.add(totalScoreDisplay); // }); - - for (int i = 0; i < totalScoreDisplaysList.size() - 1; i++) { - for (int j = 1; j < totalScoreDisplaysList.size() - i; j++) { - BigDecimal b1 = totalScoreDisplaysList.get(j - 1).getResult(); - BigDecimal b2 = totalScoreDisplaysList.get(j).getResult(); - - CompeteVo.TotalScoreDisplay a; - if (b1.compareTo(b2) < 0) { - a = totalScoreDisplaysList.get(j - 1); - totalScoreDisplaysList.set((j - 1), totalScoreDisplaysList.get(j)); - totalScoreDisplaysList.set(j, a); - } - } - } - - for (int i=0; i() { +//// @Override +//// public BigDecimal compare(CompeteVo.TotalScoreDisplay o1, CompeteVo.TotalScoreDisplay o2) { +//// o1.getResult().subtract(o2.getResult()); +//// return o1.getResult(); +//// } +//// }); +// +// for (int i = 0; i < totalScoreDisplaysList.size() - 1; i++) { +// for (int j = 1; j < totalScoreDisplaysList.size() - i; j++) { +// BigDecimal b1 = totalScoreDisplaysList.get(j - 1).getResult(); +// BigDecimal b2 = totalScoreDisplaysList.get(j).getResult(); +// +// CompeteVo.TotalScoreDisplay a; +// if (b1.compareTo(b2) < 0) { +// a = totalScoreDisplaysList.get(j - 1); +// totalScoreDisplaysList.set((j - 1), totalScoreDisplaysList.get(j)); +// totalScoreDisplaysList.set(j, a); +// } +// } +// } +// +// for (int i=0; i countScoreCurrentSite(CompeteDto.CompeteSite params) { - int siteId = params.getSiteId(); + + Long siteId = params.getSiteId(); List countScoreCurrentSites = competeScoreDao.selectCountScoreCurrentSite(siteId); + countScoreCurrentSites.forEach(mes->{ + CompeteStartOrder competeStartOrder = competeStartOrderMapper.selectByPrimaryKey(siteId); + CompeteVideoExample competeVideoExample = new CompeteVideoExample(); + competeVideoExample.createCriteria().andProjectIdEqualTo(competeStartOrder.getProjectId()).andPlayerIdEqualTo(competeStartOrder.getPlayerId()); + List competeVideos = competeVideoMapper.selectByExample(competeVideoExample); + CompeteVideo competeVideo = competeVideos.get(0); + String path = competeVideo.getVideoUrl(); + mes.setVideoUrl(path); + }); return countScoreCurrentSites; } @Override public void submitScore(CompeteDto.SubmitScore params) { - long competeTimeId = params.getCompeteTimeId(); - long projectId = params.getProjectId(); - long siteOrderId = params.getSiteOrderId(); - CompeteCountScoreExample competeCountScoreExample = new CompeteCountScoreExample(); - competeCountScoreExample.createCriteria(). - andCompeteTimeIdEqualTo(competeTimeId). - andProjectIdEqualTo(projectId).andSiteOrderIdEqualTo(siteOrderId). - andSiteOrderIdEqualTo(params.getSiteOrderId()). - andChiefJudgmentScoreEqualTo(params.getMainScore()). - andJudgmentAScoreEqualTo(params.getMainOneScore()). - andJudgmentBScore2EqualTo(params.getMainTwoScore()). - andShouldTimesEqualTo(params.getShouldScore()). - andDeductTimesEqualTo(params.getDeductTime()). - andDeductCauseEqualTo(params.getDeductReason()). - andFinalScoreEqualTo(params.getFinalScore()). - andIdEqualTo(snowflake.nextId()); - CompeteCountScore competeCountScore = new CompeteCountScore(); - competeCountScore.setCompeteTimeId(competeTimeId); - competeCountScore.setProjectId(projectId); - competeCountScore.setSiteOrderId(siteOrderId); - competeCountScore.setChiefJudgmentScore(params.getMainScore()); - competeCountScore.setJudgmentAScore(params.getMainOneScore()); - competeCountScore.setJudgmentBScore2(params.getMainTwoScore()); - competeCountScore.setShouldTimes(params.getShouldScore()); - competeCountScore.setDeductTimes(params.getDeductTime()); - competeCountScore.setDeductCause(params.getDeductReason()); - competeCountScore.setFinalScore(params.getFinalScore()); - competeCountScore.setId(snowflake.nextId()); - competeCountScore.setRecStatus((byte) 0); - competeCountScoreMapper.insert(competeCountScore); + + +// long competeTimeId = params.getCompeteTimeId(); +// long projectId = params.getProjectId(); +// long siteOrderId = params.getSiteOrderId(); +// CompeteCountScoreExample competeCountScoreExample = new CompeteCountScoreExample(); +// competeCountScoreExample.createCriteria(). +// andCompeteTimeIdEqualTo(competeTimeId). +// andProjectIdEqualTo(projectId).andSiteOrderIdEqualTo(siteOrderId). +// andSiteOrderIdEqualTo(params.getSiteOrderId()). +// andChiefJudgmentScoreEqualTo(params.getMainScore()). +// andJudgmentAScoreEqualTo(params.getMainOneScore()). +// andJudgmentBScore2EqualTo(params.getMainTwoScore()). +// andShouldTimesEqualTo(params.getShouldScore()). +// andDeductTimesEqualTo(params.getDeductTime()). +// andDeductCauseEqualTo(params.getDeductReason()). +// andFinalScoreEqualTo(params.getFinalScore()). +// andIdEqualTo(snowflake.nextId()); +// CompeteCountScore competeCountScore = new CompeteCountScore(); +// competeCountScore.setCompeteTimeId(competeTimeId); +// competeCountScore.setProjectId(projectId); +// competeCountScore.setSiteOrderId(siteOrderId); +// competeCountScore.setChiefJudgmentScore(params.getMainScore()); +// competeCountScore.setJudgmentAScore(params.getMainOneScore()); +// competeCountScore.setJudgmentBScore2(params.getMainTwoScore()); +// competeCountScore.setShouldTimes(params.getShouldScore()); +// competeCountScore.setDeductTimes(params.getDeductTime()); +// competeCountScore.setDeductCause(params.getDeductReason()); +// competeCountScore.setFinalScore(params.getFinalScore()); +// competeCountScore.setId(snowflake.nextId()); +// competeCountScore.setRecStatus((byte) 0); +// competeCountScoreMapper.insert(competeCountScore); } @Override @@ -1815,6 +1833,30 @@ public class CompeteService implements ICompeteService { return null; } + @Override + public PageInfo queryCountScore(ScoreDto.ShowResult param) { + + log.info("计数赛成绩公示:{}", param); + CompeteProject project = competeProjectMapper.selectByPrimaryKey(param.getProjectId()); + log.info("查询{}项目的成绩:", project); + if (project == null) { + throw new BaseException(CodeEnum.PARAM_ERROR); + } + + PageHelper.startPage(param.getPage(), param.getSize()); + List list; + if (project.getTeam() == Constant.Compete.TEAM_YES) { + // 团体赛 + list = competeScoreDao.queryCountScoreTeam(param.getProjectId()); + } else { + // 个人赛 + list = competeScoreDao.queryCountScorePerson(param.getProjectId()); + } + + + return new PageInfo<>(list); + } + @Override public String speedPassOut(CompeteDto.CompeteTimeAndProjectId params) throws IOException { 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 5c7e7f98..17df6fef 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java @@ -206,7 +206,7 @@ public class CompeteTaskService implements ICompeteTaskService { competeStartOrder.setSite((byte) site); competeStartOrder.setTeam(project.getTeam()); competeStartOrder.setCompeteOrder((byte) competeOrder); -// competeStartOrder.setTaskId(taskId); + competeStartOrder.setTaskId(taskId); competeStartOrder.setStartTime(projectStartTime); competeStartOrder.setEndTime(projectStartTime + orderTime); log.info("添加场次信息:{}", competeStartOrder); @@ -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 2b17c0e8..f0310525 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java @@ -1,8 +1,8 @@ package com.ccsens.mt.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.dto.ProvinceCompeteDto; import com.ccsens.mt.bean.dto.ScoreDto; @@ -13,24 +13,15 @@ import com.ccsens.mt.bean.vo.ScoreVo; import com.ccsens.mt.bean.vo.TableVo; import com.ccsens.mt.persist.dao.*; import com.ccsens.mt.persist.mapper.*; -import com.ccsens.util.CodeEnum; +import com.ccsens.mt.util.Constant; import com.ccsens.util.PoiUtil; import com.ccsens.util.PropUtil; -import com.ccsens.util.RedisUtil; import com.ccsens.util.WebConstant; import com.ccsens.util.bean.dto.QueryDto; -import com.ccsens.util.exception.BaseException; -import com.ctc.wstx.util.DataUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import lombok.Data; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.map.HashedMap; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.DateUtils; -import org.apache.poi.POIDocument; -import org.apache.poi.ss.usermodel.Table; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -38,7 +29,6 @@ import org.eclipse.jetty.util.StringUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.unit.DataUnit; import javax.annotation.Resource; import java.io.File; @@ -46,11 +36,9 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat; -import java.util.*; import java.util.ArrayList; import java.util.Date; -import java.util.GregorianCalendar; import java.util.List; @Slf4j @@ -68,21 +56,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; @@ -1237,7 +1215,6 @@ public class ExcelService implements IExcelService { - private String getExcelFilePathForSchedulePlanning(List arrayList) throws IOException { //创建excle表格对象 List> list = new ArrayList<>(); @@ -1335,7 +1312,7 @@ public class ExcelService implements IExcelService { @Override public String patternExpTable(ScoreDto.ShowResultW param) { - List totalScoreDisplays = competeService.showResult(param); + List totalScoreDisplays = competeService.showResult(param).getList(); List> list = new ArrayList<>(); List zero=new ArrayList<>(); PoiUtil.PoiUtilCell zeroOne=new PoiUtil.PoiUtilCell("比赛成绩公示(花样赛)", 14, 1); @@ -1587,5 +1564,105 @@ public class ExcelService implements IExcelService { return PropUtil.domain + "file/download/know?path="+path; } + @Override + public String beforeEight(QueryDto params) { + log.info("导出{}大赛各项的前八名", params); + // 查询项目 + Long competeTimeId = params.getParam().getCompeteTimeId(); + List list = competeProjectDao.queryProject(competeTimeId); + Workbook workbook = new XSSFWorkbook(); + + list.forEach(project -> { + List eights; + // 个人赛 + if (project.getTeam() == Constant.Compete.TEAM_NO) { + eights = competeScoreDao.queryEight(project.getId(), competeTimeId); + } else if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_NOT_LIMIT) { + // 团体赛不限组别 整体排名 + eights = competeScoreDao.queryEightGroupNotLimit(project.getId(), competeTimeId); + } else { + // 团体赛限组别 组别内排名 + eights = competeScoreDao.queryEightGroupLimit(project.getId(), competeTimeId); + } + List> raws = new ArrayList<>(); + initTitle(project, raws); + fillBody(project, eights, raws); + PoiUtil.exportWB(project.getName(), raws, workbook); + }); + + String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; + String path = PropUtil.path + filepath; + File file = new File(path); + try { + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + OutputStream outputStream = new FileOutputStream(file); + workbook.write(outputStream); + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + return PropUtil.domain + "file/download/know?path="+path; + } + + /** + * 添加导出前八名内容部分 + * @param project 项目 + * @param eights 前八名信息 + * @param raws 表格行对象 + */ + private void fillBody(CompeteProject project, List eights, List> raws) { + if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_LIMIT) { + eights.forEach(eight -> { + if (StrUtil.isEmpty(eight.getEightNames())) { + return; + } + List cells = new ArrayList<>(); + cells.add(new PoiUtil.PoiUtilCell(eight.getGroupName())); + String[] split = eight.getEightNames().split(","); + for (String name : split) { + cells.add(new PoiUtil.PoiUtilCell(name)); + } + raws.add(cells); + }); + } else { + for (int i = 0; i < eights.size(); i++) { + List cells = new ArrayList<>(); + cells.add(new PoiUtil.PoiUtilCell("第" + i + "名")); + cells.add(new PoiUtil.PoiUtilCell(eights.get(i).getEightNames(), 8, 1)); + raws.add(cells); + } + } + } + + /** + * 初始化导出前八名表格头 + * @param project 项目 + * @param raws 行 + */ + private void initTitle(CompeteProject project, List> raws) { + List title = new ArrayList<>(); + title.add(new PoiUtil.PoiUtilCell( "2020年山西省学生跳绳比赛", 9 , 1)); + raws.add(title); + List title2 = new ArrayList<>(); + title2.add(new PoiUtil.PoiUtilCell(project.getName() , 9 , 1)); + raws.add(title2); + if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_LIMIT) { + List head = new ArrayList<>(); + head.add(new PoiUtil.PoiUtilCell("")); + head.add(new PoiUtil.PoiUtilCell("第一名")); + head.add(new PoiUtil.PoiUtilCell("第二名")); + head.add(new PoiUtil.PoiUtilCell("第三名")); + head.add(new PoiUtil.PoiUtilCell("第四名")); + head.add(new PoiUtil.PoiUtilCell("第五名")); + head.add(new PoiUtil.PoiUtilCell("第六名")); + head.add(new PoiUtil.PoiUtilCell("第七名")); + head.add(new PoiUtil.PoiUtilCell("第八名")); + raws.add(head); + } + + } + } diff --git a/mt/src/main/java/com/ccsens/mt/service/ICompeteScoreService.java b/mt/src/main/java/com/ccsens/mt/service/ICompeteScoreService.java new file mode 100644 index 00000000..9213d22c --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteScoreService.java @@ -0,0 +1,7 @@ +package com.ccsens.mt.service; + +import com.ccsens.mt.bean.dto.CompeteDto; + +public interface ICompeteScoreService { + void submitScore(CompeteDto.SubmitScore param); +} diff --git a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java index 699688e3..56ab4697 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -157,7 +157,7 @@ public interface ICompeteService { PageInfo showResultPage(ScoreDto.ShowResultW param); - List showResult(ScoreDto.ShowResultW param); + PageInfo showResult(ScoreDto.ShowResultW param); /** @@ -190,7 +190,6 @@ public interface ICompeteService { /** -<<<<<<< HEAD * 速度通级赛 * @param params 项目id和场次id * @return 返回项目,开始时间和比赛状态 @@ -199,7 +198,6 @@ public interface ICompeteService { /** - <<<<<<< HEAD * 速度通级赛(导出) * @param params 项目id和场次id * @return 返回项目,开始时间和比赛状态 @@ -217,8 +215,12 @@ public interface ICompeteService { Long getUserCompanyId(Long userId, Byte type); - - + /** + * 分页查询计数赛成绩 + * @param param 项目ID + * @return 成绩 + */ + PageInfo queryCountScore(ScoreDto.ShowResult param); } 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 f49334f2..291380ca 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java @@ -1,11 +1,9 @@ package com.ccsens.mt.service; -import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.dto.ProvinceCompeteDto; import com.ccsens.mt.bean.dto.ScoreDto; -import com.ccsens.mt.bean.vo.TableVo; -import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.vo.TableVo; import com.ccsens.util.bean.dto.QueryDto; import com.github.pagehelper.PageInfo; @@ -94,12 +92,17 @@ public interface IExcelService { String schedulePlanningOut(CompeteDto.CompeteTime params) throws IOException; +// String patternExpTable(ScoreDto.ShowResult param); - - - + /** + * 生成比赛前八名的表格 + * @param params 第几届比赛 + * @return 表格下载地址 + */ + String beforeEight(QueryDto params); String patternExpTable(ScoreDto.ShowResultW param); String countExpTable(ScoreDto.ShowResult param); + } 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/service/ScoreService.java b/mt/src/main/java/com/ccsens/mt/service/ScoreService.java index 343c8220..615a5535 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ScoreService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ScoreService.java @@ -23,6 +23,7 @@ import com.ccsens.util.ExcelUtil; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.exception.BaseException; +import com.sun.xml.internal.bind.v2.TODO; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; 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/banner.txt b/mt/src/main/resources/banner.txt new file mode 100644 index 00000000..b5cd913f --- /dev/null +++ b/mt/src/main/resources/banner.txt @@ -0,0 +1,10 @@ + + + _ _ U _____ u _ _ U ___ u U ___ u ____ _ ____ + |'| |'| \| ___"|/ |"| |"| \/"_ \/ __ __ \/"_ \/U | _"\ u |"| | _"\ +/| |_| |\ | _|" U | | u U | | u | | | | \"\ /"/ | | | | \| |_) |/U | | u /| | | | +U| _ |u | |___ \| |/__ \| |/__.-,_| |_| | /\ \ /\ / /\.-,_| |_| | | _ < \| |/__U| |_| |\ + |_| |_| |_____| |_____| |_____|\_)-\___/ U \ V V / U\_)-\___/ |_| \_\ |_____||____/ u + // \\ << >> // \\ // \\ \\ .-,_\ /\ /_,-. \\ // \\_ // \\ |||_ +(_") ("_)(__) (__)(_")("_)(_")("_) (__) \_)-' '-(_/ (__) (__) (__)(_")("_)(__)_) + diff --git a/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml b/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml index 34388a0a..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, @@ -390,14 +390,16 @@ ORDER BY so.start_time + + SELECT - tcp.`name` as name, - tcc.`name` as companyName, - tcg.group_name as groupName, - tcppro.`name` as projectName, - tcso.site as site, - tcso.compete_order as competeOrder, - tccs.chief_judgment_score as mainScore, - tccs.judgment_a_score as mainOneScore, - tccs.judgment_b_score2 as mainTwoScore, - tccs.should_times as shouldScore, - tccs.deduct_times as deductTime, - tccs.deduct_cause as deductReason, - tccs.final_score as finalScore - from - t_compete_start_order tcso LEFT JOIN t_compete_player tcp on tcso.player_id = tcp.id - LEFT JOIN t_compete_company tcc on tcc.id = tcp.company_id - LEFT JOIN t_compete_group tcg on tcg.id = tcp.compete_group_id - LEFT JOIN t_compete_project tcppro on tcppro.id = tcso.project_id - LEFT JOIN t_compete_count_score tccs on tccs.site_order_id = tcso.id + cs.site_order_id, + p.`name` as `name`, + c.`name` as companyName, + g.group_name as groupName, + cp.`name` as projectName, + so.site as site, + so.compete_order as competeOrder, + cs.chief_judgment_score as mainScore, + cs.judgment_a_score as mainOneScore, + cs.judgment_b_score2 as mainTwoScore, + cs.should_times as shouldScore, + cs.deduct_times as deductTime, + cs.deduct_cause as deductReason, + cs.final_score as finalScore + FROM + t_compete_start_order so + LEFT JOIN t_compete_count_score cs on cs.site_order_id = so.id + LEFT JOIN t_compete_project cp on so.project_id = cp.id + LEFT JOIN t_compete_project_player pp on so.player_id = pp.id + LEFT JOIN t_compete_player p on pp.player_id = p.id + LEFT JOIN t_compete_group g on p.compete_group_id = g.id + LEFT JOIN t_compete_company c on p.company_id = c.id WHERE - tcso.rec_status=0 - and tcp.rec_status=0 - and tcc.rec_status=0 - and tcg.rec_status=0 - and tcppro.rec_status=0 - and tccs.rec_status =0 - and tcso.id =#{siteId} + so.id = #{siteId} + and so.rec_status = 0 + and cp.rec_status = 0 + and pp.rec_status = 0 + and p.rec_status = 0 + and g.rec_status = 0 + and c.rec_status = 0 + @@ -235,6 +239,641 @@ and tcc.rec_status=0 and tcg.rec_status=0 + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 7c684266..c938369f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ util tall - + game mt diff --git a/tall/src/main/resources/banner.txt b/tall/src/main/resources/banner.txt new file mode 100644 index 00000000..0bfe9c38 --- /dev/null +++ b/tall/src/main/resources/banner.txt @@ -0,0 +1,22 @@ +/** + * _ooOoo_ + * o8888888o + * 88" . "88 + * (| -_- |) + * O\ = /O + * ___/`---'\____ + * . ' \\| |// `. + * / \\||| : |||// \ + * / _||||| -:- |||||- \ + * | | \\\ - /// | | + * | \_| ''\---/'' | | + * \ .-\__ `-` ___/-. / + * ___`. .' /--.--\ `. . __ + * ."" '< `.___\_<|>_/___.' >'"". + * | | : `- \`.;`\ _ /`;.`/ - ` : | | + * \ \ `-. \_ __\ /__ _/ .-` / / + * ======`-.____`-.___\_____/___.-`____.-'====== + * `=---=' + * ............................................. + * 佛曰:bug泛滥,我已瘫痪! + */ \ No newline at end of file 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), ;