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 4418005c..f5715c4b 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java @@ -3,6 +3,7 @@ package com.ccsens.mt.api; import com.ccsens.cloudutil.annotation.MustLogin; import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.bean.vo.ScoreVo; import com.ccsens.mt.service.ICompeteService; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; @@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * @author 逗 @@ -38,6 +40,42 @@ public class CompeteScoreController { return JsonResponse.newInstance().ok(playerList); } + @MustLogin + @ApiOperation(value = "项目状态", notes = "") + @RequestMapping(value = "/countScore", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse countScore(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查询比赛项目上的参赛选手列表:{}",params); + List countScoreList = competeService.countScore(params.getParam()); + return JsonResponse.newInstance().ok(countScoreList); + } + + @MustLogin + @ApiOperation(value = "选手排名", notes = "") + @RequestMapping(value = "/countScoreDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse countScoreDetail(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查询比赛项目上的参赛选手列表:{}",params); + List competeScores = competeService.countScoreDetail(params.getParam()); + return JsonResponse.newInstance().ok(competeScores); + } + + + @MustLogin + @ApiOperation(value = "计数赛查看当前场次的分数信息", notes = "") + @RequestMapping(value = "/countScoreCurrentSite", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse countScoreCurrentSite(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查询比赛项目上的参赛选手列表:{}",params); + List countScoreCurrentSites = competeService.countScoreCurrentSite(params.getParam()); + return JsonResponse.newInstance().ok(countScoreCurrentSites); + } + + @MustLogin + @ApiOperation(value = "技术赛提交分数", notes = "") + @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()); + 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 af6d9117..74adc31b 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 @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NonNull; import javax.validation.constraints.*; +import java.math.BigDecimal; import java.util.List; /** @@ -21,6 +22,14 @@ public class CompeteDto { private int type; } + @Data + @ApiModel + public static class CompeteSite{ + @NotNull + @ApiModelProperty("场次id") + private int siteId; + } + @Data @ApiModel public static class CompeteTime{ @@ -325,5 +334,39 @@ public class CompeteDto { private String idCard; } + @Data + @ApiModel("项目id和组别id") + public static class ProjectIdAndGroupId{ + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("组别id") + private Long competeGroupId; + } + + @Data + @ApiModel("提交分数") + public static class SubmitScore{ + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("大赛id") + private Long competeTimeId; + @ApiModelProperty("场次id") + private Long siteOrderId; + @ApiModelProperty("主裁打分") + private BigDecimal mainScore; + @ApiModelProperty("主裁1打分") + private BigDecimal mainOneScore; + @ApiModelProperty("主裁2打分") + private BigDecimal mainTwoScore; + @ApiModelProperty("应得分") + private int shouldScore; + @ApiModelProperty("扣除次数") + private int deductTime; + @ApiModelProperty("扣除原因") + private String deductReason; + @ApiModelProperty("最终成绩") + private BigDecimal finalScore; + } + } diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java index 8eb52089..b1b31911 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java @@ -1,39 +1,39 @@ -package com.ccsens.mt.bean.po; - -import java.io.Serializable; - -public class CompeteCountScoreKey implements Serializable { - private Long id; - - private Integer shouldTimes; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Integer getShouldTimes() { - return shouldTimes; - } - - public void setShouldTimes(Integer shouldTimes) { - this.shouldTimes = shouldTimes; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", shouldTimes=").append(shouldTimes); - sb.append("]"); - return sb.toString(); - } +package com.ccsens.mt.bean.po; + +import java.io.Serializable; + +public class CompeteCountScoreKey implements Serializable { + private Long id; + + private Integer shouldTimes; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Integer getShouldTimes() { + return shouldTimes; + } + + public void setShouldTimes(Integer shouldTimes) { + this.shouldTimes = shouldTimes; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", shouldTimes=").append(shouldTimes); + sb.append("]"); + return sb.toString(); + } } \ No newline at end of file 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 84e8bb67..cacad4d0 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 @@ -59,4 +59,6 @@ public class CompeteExcelVo { @ApiModelProperty("月/日 上/下午") private String year; } + + } 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 2c46dd01..917ec421 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 @@ -452,4 +452,30 @@ public class CompeteVo { private String otherPlayerName; } + @Data + @ApiModel("项目,开始时间和比赛状态") + public static class CountScore{ + @ApiModelProperty("项目id") + private Long id; + @ApiModelProperty("项目名") + private String projectName; + @ApiModelProperty("项目开始时间") + private Long startTime; + @ApiModelProperty("项目状态") + private int status; + } + + @Data + @ApiModel("得分享请") + public static class CountScoreDetail{ + @ApiModelProperty("参赛队伍") + private String companyName; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("成绩") + private Long grade; + + } + + } 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 a2a9404d..6372cc6a 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 @@ -179,4 +179,50 @@ public class ScoreVo { // @ApiModelProperty("平均分") // private BigDecimal aveScore; // } + + @Data + @ApiModel("返回项目配置信息") + public static class CompeteScore{ + @ApiModelProperty("参赛id") + private Long projectId; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("参赛队伍") + private String companyName; + @ApiModelProperty("得分") + private String score; + } + + + @Data + @ApiModel("返回项目配置信息") + public static class CountScoreCurrentSite{ + @ApiModelProperty("项目名") + private String projectName; + @ApiModelProperty("组别") + private String groupName; + @ApiModelProperty("团队名") + private String companyName; + @ApiModelProperty("场次") + private int competeOrder; + @ApiModelProperty("场地") + private int site; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("主裁打分") + private BigDecimal mainScore; + @ApiModelProperty("主裁1打分") + private BigDecimal mainOneScore; + @ApiModelProperty("主裁2打分") + private BigDecimal mainTwoScore; + @ApiModelProperty("应得分") + private BigDecimal shouldScore; + @ApiModelProperty("扣除次数") + private BigDecimal deductTime; + @ApiModelProperty("扣除原因") + private String deductReason; + @ApiModelProperty("最终成绩") + private BigDecimal finalScore; + } + } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java index 8c272643..6f31e47b 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java @@ -18,6 +18,8 @@ public interface CompeteProjectConfigDao extends CompeteProjectConfigMapper { List selectDetail (); List selectSingle (@Param("competeTimeId") Long competeTimeId,@Param("projectId") Long projectId,@Param("groupId") Long groupId,@Param("companyId") Long companyId,@Param("name") String name,@Param("idCard") String idCard); List selectGroup (@Param("competeTimeId") Long competeTimeId,@Param("projectId") Long projectId,@Param("groupId") Long groupId,@Param("companyId") Long companyId,@Param("name") String name,@Param("idCard") String idCard); + CompeteProjectConfig selectStartTime(@Param("projectId") Long projectId); + /** * 查询所有项目配置信息 @@ -25,4 +27,5 @@ public interface CompeteProjectConfigDao extends CompeteProjectConfigMapper { * @return 返回所有比赛日程配置信息 */ List queryProjectConfig(@Param("type")int type); + } \ No newline at end of file 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 new file mode 100644 index 00000000..828dae59 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java @@ -0,0 +1,27 @@ +package com.ccsens.mt.persist.dao; + +import com.ccsens.mt.bean.po.CompeteCoach; +import com.ccsens.mt.bean.po.CompeteCompany; +import com.ccsens.mt.bean.vo.CompeteExcelVo; +import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.bean.vo.ProvinceCompeteVo; +import com.ccsens.mt.bean.vo.ScoreVo; +import com.ccsens.mt.persist.mapper.CompeteCompanyMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author 逗 + */ +@Repository +public interface CompeteScoreDao { + List selectSingleCount (@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId); + List selectGroupCount (@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId); + List selectSingleVarity(@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId); + List selectGroupVarity (@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId); + List selectCountScoreCurrentSite (@Param("siteId") long siteId); + + +} 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 c6f2ca97..5f14e370 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -13,11 +13,9 @@ import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.dto.LevelDto; import com.ccsens.mt.bean.po.*; import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.bean.vo.ScoreVo; import com.ccsens.mt.bean.vo.TableVo; -import com.ccsens.mt.persist.dao.CompeteEnrollDao; -import com.ccsens.mt.persist.dao.CompetePlayerDao; -import com.ccsens.mt.persist.dao.CompeteTeamDao; -import com.ccsens.mt.persist.dao.CompeteTimeDao; +import com.ccsens.mt.persist.dao.*; import com.ccsens.mt.persist.mapper.*; import com.ccsens.mt.util.Constant; import com.ccsens.util.*; @@ -38,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.*; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -82,7 +81,12 @@ public class CompeteService implements ICompeteService { private TallFeignClient tallFeignClient; @Resource private CommonFileMapper commonFileMapper; - + @Resource + private CompeteProjectConfigDao competeProjectConfigDao; + @Resource + private CompeteScoreDao competeScoreDao; + @Resource + private CompeteCountScoreMapper competeCountScoreMapper; /** * 查看第几届 */ @@ -896,6 +900,8 @@ public class CompeteService implements ICompeteService { } + + /** * 验证数据的正确性,存入数据库 */ @@ -1008,8 +1014,117 @@ public class CompeteService implements ICompeteService { } + @Override + public List countScore(CompeteDto.CompeteTime params) { + List countScoreList = new ArrayList<>(); + //查询项目 + CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(params.getCompeteTimeId()); + CompeteProjectExample competeProjectExample = new CompeteProjectExample(); + int level = 2; + competeProjectExample.createCriteria().andTypeEqualTo(competeTime.getType()).andLevelEqualTo((byte) level); + //项目集合 + List competeProjectList = competeProjectMapper.selectByExample(competeProjectExample); + for(CompeteProject competeProject : competeProjectList) { + long projectId = competeProject.getId(); + CompeteProjectConfig competeProjectConfig = competeProjectConfigDao.selectStartTime(projectId); + if (ObjectUtil.isNotNull(competeProjectConfig)) { + CompeteVo.CountScore countScore = new CompeteVo.CountScore(); + countScore.setId(competeProject.getId()); + countScore.setProjectName(competeProject.getName()); + countScore.setStartTime(competeProjectConfig.getStartTime()); + //状态判断 + long currentTime = System.currentTimeMillis(); + if (currentTime < competeProjectConfig.getStartTime()) { + //未开始0-未开始 + countScore.setStatus(0); + } + if (currentTime > competeProjectConfig.getStartTime() && competeProjectConfig.getEndTime() > currentTime) { + //进行中1-进行中 + countScore.setStatus(1); + } + if (competeProjectConfig.getEndTime() < currentTime) { + //已经结束-结束 + countScore.setStatus(2); + } + countScoreList.add(countScore); + } + } + return countScoreList; + } + @Override + public List countScoreDetail(CompeteDto.ProjectIdAndGroupId params) { + List competeScoreList = new ArrayList<>(); + //判断比赛类型 + long ProjectId = params.getProjectId(); + long competeGroupId = params.getCompeteGroupId(); + CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(ProjectId); + if (ObjectUtil.isNotNull(competeProject)){ + int team = competeProject.getTeam(); + long fatherId = competeProject.getParentId(); + //如果比赛是个人计数赛 + if (fatherId == 2001 && team == 0){ + List competeScores = competeScoreDao.selectSingleCount(ProjectId, competeGroupId); + competeScoreList.addAll(competeScores); + } + //如果是个人花样赛 + if (fatherId == 2002 && team == 0){ + List competeScores = competeScoreDao.selectSingleVarity(ProjectId, competeGroupId); + competeScoreList.addAll(competeScores); + } + //如果是团队计数赛 + if (fatherId == 2001 && team == 1){ + List competeScores = competeScoreDao.selectGroupCount(ProjectId, competeGroupId); + competeScoreList.addAll(competeScores); + } + //如果是团队花样赛 + if (fatherId == 2002 && team == 1){ + List competeScores = competeScoreDao.selectGroupVarity(ProjectId, competeGroupId); + competeScoreList.addAll(competeScores); + } + } + return competeScoreList; + } + + @Override + public List countScoreCurrentSite(CompeteDto.CompeteSite params) { + int siteId = params.getSiteId(); + List countScoreCurrentSites = competeScoreDao.selectCountScoreCurrentSite(siteId); + 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()); + competeCountScoreMapper.insert(competeCountScore); + } } \ No newline at end of file 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 84cf068a..c022b0d8 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -2,6 +2,7 @@ package com.ccsens.mt.service; import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.bean.vo.ScoreVo; import com.ccsens.util.bean.dto.QueryDto; import java.io.FileNotFoundException; @@ -149,6 +150,38 @@ public interface ICompeteService { List signupImport(String path) throws FileNotFoundException, Exception; + + /** + * 项目,开始时间和比赛状态 + * @param params 大赛id和比赛项目id + * @return 返回项目,开始时间和比赛状态 + */ + List countScore(CompeteDto.CompeteTime params) ; + + /** + * 得分详情 + * @param params 大赛id和比赛项目id + * @return 返回项目,开始时间和比赛状态 + */ + List countScoreDetail(CompeteDto.ProjectIdAndGroupId params) ; + + /** + * 得分详情 + * @param params 场次id + * @return 返回项目,开始时间和比赛状态 + */ + List countScoreCurrentSite(CompeteDto.CompeteSite params) ; + + /** + * 提交得分 + * @param params 场次id + * @return 返回项目,开始时间和比赛状态 + */ + void submitScore(CompeteDto.SubmitScore params) ; + + + + } diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml index 4ecd13fd..f59084b0 100644 --- a/mt/src/main/resources/application.yml +++ b/mt/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: common, util-dev + active: test + include: common, util-test diff --git a/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml b/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml index 2cbc76c4..13b5f64f 100644 --- a/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml @@ -24,6 +24,12 @@ FROM t_compete_project_config a , t_compete_project b where a.project_id = b.id + + + SELECT + tcp.`name` as name, + tcc.`name` as companyName, + tccs.final_score as score + from + t_compete_project_player tcpp LEFT JOIN t_compete_player tcp ON tcpp.player_id = tcp.id + LEFT JOIN t_compete_start_order tcso on tcso.player_id = tcpp.player_id + LEFT JOIN t_compete_count_score tccs on tccs.site_order_id = tcso.id + LEFT JOIN t_compete_company tcc on tcc.id = tcp.company_id + WHERE tcpp.rec_status = 0 + and tcp.rec_status=0 + and tcso.rec_status=0 + and tccs.rec_status=0 + and tcc.rec_status = 0 + and tcpp.project_id= #{projectId} + and tcpp.compete_group_id =#{competeGroupId} + GROUP BY tccs.final_score + + + + + + + + + + + + \ No newline at end of file