Browse Source

11-16-3

tiaosheng
Lihong@123456 5 years ago
parent
commit
8cd1751274
  1. 27
      mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java
  2. 26
      mt/src/main/java/com/ccsens/mt/bean/dto/ScoreDto.java
  3. 40
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java
  4. 45
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java
  5. 6
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java
  6. 118
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  7. 9
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  8. 4
      mt/src/main/resources/application.yml
  9. 10
      mt/src/main/resources/mapper_dao/CompeteTimeDao.xml
  10. 33
      util/src/test/java/com/ccsens/util/ListSort.java
  11. 27
      util/src/test/java/com/ccsens/util/StuVO.java

27
mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java

@ -2,12 +2,14 @@ package com.ccsens.mt.api;
import com.ccsens.cloudutil.annotation.MustLogin;
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.ICompeteService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
@ -40,8 +42,27 @@ public class CompeteScoreController {
return JsonResponse.newInstance().ok(playerList);
}
// @MustLogin
@ApiOperation(value = "项目状态", notes = "lihong,查询项目集合,再根据时间判断项目得状态")
@MustLogin
@ApiOperation(value = "花样赛提交分数", notes = "Mr.王----提交成绩到那个花样赛得表里面就行了,单表操作")
@RequestMapping(value = "/submitOrderList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitOrder(@ApiParam @Validated @RequestBody QueryDto<ScoreDto.InformationSubmitted> params){
log.info("花样赛提交分数:{}",params);
competeService.submitOrderList(params.getParam());
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "花样赛成绩查看", notes = "Mr.王 -----从花样赛成绩表里面查看出这个人得成绩")
@RequestMapping(value = "/showResult", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<CompeteVo.TotalScoreDisplay>> showResult (@ApiParam @Validated @RequestBody QueryDto<ScoreDto.ShowResult> params){
log.info("花样赛详细分数查看:{}",params);
List<CompeteVo.TotalScoreDisplay> totalScoreDisplaysList= competeService.showResult(params.getParam());
return JsonResponse.newInstance().ok(totalScoreDisplaysList);
}
@ApiOperation(value = "项目状态", notes = "")
@RequestMapping(value = "/countScore", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<CompeteVo.CountScore> countScore(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
@ -49,7 +70,7 @@ public class CompeteScoreController {
return JsonResponse.newInstance().ok(countScoreList);
}
@MustLogin
@ApiOperation(value = "选手排名", notes = "多个信息表关联之后,利用分数排序")
@RequestMapping(value = "/countScoreDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ScoreVo.CompeteScore> countScoreDetail(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.ProjectIdAndGroupId> params) {

26
mt/src/main/java/com/ccsens/mt/bean/dto/ScoreDto.java

@ -4,7 +4,9 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@ -89,30 +91,40 @@ public class ScoreDto {
@Data
@ApiModel
public static class InformationSubmitted{
@NotNull
@ApiModelProperty("大赛id")
private Long competeTimeId;
@NotNull
@ApiModelProperty("项目Id")
private Long projectId;
@NotNull
@ApiModelProperty("场次id")
private BigDecimal siteOrderId;
private Long siteOrderId;
@NotNull
@ApiModelProperty("裁判id")
private Long judgmentId;
// @ApiModelProperty("几分")
// List<Fraction>
@NotNull
@ApiModelProperty("计分项目")
private List<Fraction> fractionsList;
}
@Data
@ApiModel
public static class Fraction{
@ApiModelProperty("分数")
private int score;
private BigDecimal score;
@ApiModelProperty("分数类型")
private String code;
}
@Data
@ApiModel
public static class ShowResult{
@NotNull
@ApiModelProperty("项目id")
private Long projectId;
}
}

40
mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java

@ -1,3 +1,4 @@
package com.ccsens.mt.bean.po;
import java.io.Serializable;
@ -36,4 +37,41 @@ public class CompeteCountScoreKey implements Serializable {
sb.append("]");
return sb.toString();
}
}
}
//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();
// }
//}

45
mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java

@ -14,6 +14,17 @@ import java.util.List;
*/
@Data
public class CompeteVo {
@Data
@ApiModel("教练和成绩")
public static class Result{
@ApiModelProperty("教练号")
private byte chief;
@ApiModelProperty("分数")
private BigDecimal score;
}
@Data
@ApiModel("查找第几届")
public static class CompeteTime{
@ -452,6 +463,37 @@ public class CompeteVo {
private String otherPlayerName;
}
@Data
@ApiModel("花样赛总成绩")
public static class TotalScoreDisplay{
@ApiModelProperty("项目名")
public String companyName;
@ApiModelProperty("参赛队员名")
public String peopleName;
@ApiModelProperty("裁判1")
public BigDecimal referee1;
@ApiModelProperty("裁判2")
public BigDecimal referee2;
@ApiModelProperty("裁判3")
public BigDecimal referee3;
@ApiModelProperty("1-3裁判得平均值")
public BigDecimal avg1To3;
@ApiModelProperty("裁判4")
public BigDecimal referee4;
@ApiModelProperty("裁判5")
public BigDecimal referee5;
@ApiModelProperty("裁判6")
public BigDecimal referee6;
@ApiModelProperty("4-6裁判得平均值")
public BigDecimal avg4To6;
@ApiModelProperty("主裁判")
public BigDecimal referee0;
@ApiModelProperty("最后得分")
public BigDecimal result;
// @ApiModelProperty("排名")
// public int order;
}
@Data
@ApiModel("项目,开始时间和比赛状态")
public static class CountScore{
@ -474,8 +516,5 @@ public class CompeteVo {
private String name;
@ApiModelProperty("成绩")
private Long grade;
}
}

6
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java

@ -12,6 +12,12 @@ import java.util.List;
*/
@Repository
public interface CompeteTimeDao extends CompeteTimeMapper {
/**
* 查各个教练得成绩
* @param siteId
* @return
*/
List<CompeteVo.Result> selectJudgmentS(@Param("siteId") Long siteId );
/**
* 通过类型查找第几届和时间
* @param type 类型

118
mt/src/main/java/com/ccsens/mt/service/CompeteService.java

@ -11,6 +11,7 @@ import com.ccsens.cloudutil.bean.tall.dto.WpsDto;
import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.LevelDto;
import com.ccsens.mt.bean.dto.ScoreDto;
import com.ccsens.mt.bean.po.*;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.bean.vo.ScoreVo;
@ -37,6 +38,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -82,11 +86,109 @@ public class CompeteService implements ICompeteService {
@Resource
private CommonFileMapper commonFileMapper;
@Resource
private CompeteStartOrderMapper competeStartOrderMapper;
@Resource
private CompeteVarietyScoreMapper competeVarietyScoreMapper;
/**
* 花样赛总成绩展示
* @param param
*/
@Override
public List<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResult param) {
List<CompeteVo.TotalScoreDisplay> totalScoreDisplaysList=new ArrayList<>();
CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample();
competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
List<CompeteStartOrder> competeStartOrdersList = competeStartOrderMapper.selectByExample(competeStartOrderExample);
competeStartOrdersList.forEach(competeStartOrder -> {
//一个人或者一个团队得数据
CompeteVo.TotalScoreDisplay totalScoreDisplay=new CompeteVo.TotalScoreDisplay();
//项目名
totalScoreDisplay.setCompanyName(competeProjectMapper.selectByPrimaryKey(competeStartOrder.getProjectId()).getName());
//名字
if(competeStartOrder.getTeam().equals((byte) 0)){
//个人
totalScoreDisplay.setPeopleName( competePlayerDao.selectByPrimaryKey(competeStartOrder.getPlayerId()).getName());
}else {
//团体
CompeteTeamMemberExample competeTeamMemberExample =new CompeteTeamMemberExample();
competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeStartOrder.getPlayerId());
List<CompeteTeamMember> competeTeamMembersList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample);
StringBuilder stringBuilder=new StringBuilder("");
competeTeamMembersList.forEach(competeTeamMember -> {
stringBuilder.append(competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId()).getName()+'、');
});
totalScoreDisplay.setPeopleName(stringBuilder.toString().substring(0,stringBuilder.length()));
}
List<CompeteVo.Result> 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<CompeteVo.TotalScoreDisplay>() {
// @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);
}
}
}
return null;
}
private CompeteProjectConfigDao competeProjectConfigDao;
@Resource
private CompeteScoreDao competeScoreDao;
@Resource
private CompeteCountScoreMapper competeCountScoreMapper;
/**
* 查看第几届
*/
@ -898,6 +1000,21 @@ public class CompeteService implements ICompeteService {
}
return failPlayerInfoList;
}
@Override
public void submitOrderList(ScoreDto.InformationSubmitted param) {
param.getFractionsList().forEach(mes->{
CompeteVarietyScore competeVarietyScore=new CompeteVarietyScore();
competeVarietyScore.setId(snowflake.nextId());
competeVarietyScore.setCompeteTimeId(param.getCompeteTimeId());
competeVarietyScore.setProjectId(param.getProjectId());
competeVarietyScore.setSiteOrderId(param.getSiteOrderId());
competeVarietyScore.setCode(mes.getCode());
competeVarietyScore.setScore(mes.getScore());
competeVarietyScore.setJudgmentId(param.getJudgmentId());
competeVarietyScoreMapper.insertSelective(competeVarietyScore);
});
}
@ -1127,5 +1244,4 @@ public class CompeteService implements ICompeteService {
competeCountScoreMapper.insert(competeCountScore);
}
}

9
mt/src/main/java/com/ccsens/mt/service/ICompeteService.java

@ -1,6 +1,7 @@
package com.ccsens.mt.service;
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.util.bean.dto.QueryDto;
@ -151,6 +152,12 @@ public interface ICompeteService {
void submitOrderList(ScoreDto.InformationSubmitted param);
List<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResult param);
/**
* 项目开始时间和比赛状态
* @param params 大赛id和比赛项目id
@ -180,8 +187,6 @@ public interface ICompeteService {
void submitScore(CompeteDto.SubmitScore params) ;
}

4
mt/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: common, util-dev
active: test
include: common, util-test

10
mt/src/main/resources/mapper_dao/CompeteTimeDao.xml

@ -120,4 +120,14 @@
and p.rec_status = 0
GROUP BY g.id
</select>
<select id="selectJudgmentS" resultType="com.ccsens.mt.bean.vo.CompeteVo$Result">
SELECT
sum(tcvs.score) as `score`,
tcj.`chief_judgment` as `chief`
FROM t_compete_variety_score tcvs
LEFT JOIN t_compete_judgment tcj on tcvs.judgment_id=tcj.id
WHERE site_order_id=#{siteId}
GROUP BY tcvs.`judgment_id`
</select>
</mapper>

33
util/src/test/java/com/ccsens/util/ListSort.java

@ -0,0 +1,33 @@
package com.ccsens.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ListSort {
public static void main(String[] args) {
List<StuVO> list = new ArrayList<>();
list.add(new StuVO("AAA",90));
list.add(new StuVO("BBB",150));
list.add(new StuVO("CCC",12));
list.add(new StuVO("DDD",64));
list.add(new StuVO("EEE",5));
for(int i = 0;i < list.size();i++){
System.out.println(list.get(i).getName()+" "+list.get(i).getScore());
}
System.out.println("--------");
Collections.sort(list, new Comparator<StuVO>() {
@Override
public int compare(StuVO o1, StuVO o2) {
int i = o1.getScore() - o2.getScore();
return i;
}
});
for(int i = 0;i < list.size();i++){
System.out.println(list.get(i).getName()+" "+list.get(i).getScore());
}
}
}

27
util/src/test/java/com/ccsens/util/StuVO.java

@ -0,0 +1,27 @@
package com.ccsens.util;
public class StuVO {
private String name;
private int score;
public StuVO(String name, int srore) {
this.name = name;
this.score = srore;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int srore) {
this.score = srore;
}
}
Loading…
Cancel
Save