Browse Source

查询项目组别分别参赛人数

tiaosheng
zy_Java 5 years ago
parent
commit
c32326aa81
  1. 5
      mt/src/main/java/com/ccsens/mt/api/DebugController.java
  2. 80
      mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java
  3. 5
      mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java
  4. 70
      mt/src/main/java/com/ccsens/mt/service/ExcelService.java
  5. 57
      mt/src/main/resources/mapper_dao/CompetePlayerDao.xml

5
mt/src/main/java/com/ccsens/mt/api/DebugController.java

@ -4,6 +4,7 @@ import com.ccsens.mt.bean.dto.LevelDto;
import com.ccsens.mt.bean.po.CompetePlayer;
import com.ccsens.mt.bean.po.LevelUser;
import com.ccsens.mt.bean.vo.ProvinceCompeteVo;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.persist.dao.CompetePlayerDao;
import com.ccsens.mt.service.ILevelUpService;
import com.ccsens.util.JsonResponse;
@ -73,8 +74,8 @@ public class DebugController {
})
@RequestMapping(value="/file",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse debug() throws Exception {
return JsonResponse.newInstance().ok();
List<TableVo.CompeteAllCount> competeAllCount = competePlayerDao.getTeamJoinNumByType(1L);
return JsonResponse.newInstance().ok(competeAllCount);
}
}

80
mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java

@ -1,10 +1,14 @@
package com.ccsens.mt.bean.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author li
*/
@ -30,7 +34,7 @@ public class TableVo {
@ApiModelProperty("一寸证件照")
private String picture;
@ApiModelProperty("学籍证明/俱乐部证明")
private String StudentPromise;
private String studentPromise;
@ApiModelProperty("体检证明")
private String bodyTest;
@ApiModelProperty("人身意外伤害保险证明")
@ -56,40 +60,54 @@ public class TableVo {
}
// @Data
// @ApiModel("XXX比赛报名汇总表")
// public static class CompeteAllCount{
// @ApiModelProperty("参赛项目")
// private String projectName;
// @ApiModelProperty("小学男子组")
// private int primaryMale;
// @ApiModelProperty("小学女子组")
// private int primaryFemale;
// @ApiModelProperty("小学混合组")
// private int primary;
// @ApiModelProperty("中学男子组")
// private int middleMale;
// @ApiModelProperty("中学女子组")
// private int middleFemale;
// @ApiModelProperty("中学混合组")
// private int middle;
// @ApiModelProperty("高职院校男子组")
// private int highMale;
// @ApiModelProperty("高职院校女子组")
// private int highFemale;
// @ApiModelProperty("高职院校混合组")
// private int high;
// @ApiModelProperty("本科院校男子组")
// private int collegeMale;
// @ApiModelProperty("本科院校女子组")
// private int collegeFemale;
// @ApiModelProperty("本科院校混合组")
// private int college;
// @ApiModelProperty("俱乐部男子组(14岁及以下)")
// private int clubMale;
// @ApiModelProperty("俱乐部女子组(14岁及以下)")
// private int clubFemale;
// @ApiModelProperty("俱乐部混合组(14岁及以下)")
// private int club;
// }
@Data
@ApiModel("XXX比赛报名汇总表")
@JsonIgnoreProperties(value = { "handler" })
public static class CompeteAllCount{
@ApiModelProperty("参赛id")
private String projectId;
@ApiModelProperty("参赛项目")
private String projectName;
@ApiModelProperty("小学男子组")
private int primaryMale;
@ApiModelProperty("小学女子组")
private int primaryFemale;
@ApiModelProperty("小学混合组")
private int primary;
@ApiModelProperty("中学男子组")
private int middleMale;
@ApiModelProperty("中学女子组")
private int middleFemale;
@ApiModelProperty("中学混合组")
private int middle;
@ApiModelProperty("高职院校男子组")
private int highMale;
@ApiModelProperty("高职院校女子组")
private int highFemale;
@ApiModelProperty("高职院校混合组")
private int high;
@ApiModelProperty("本科院校男子组")
private int collegeMale;
@ApiModelProperty("本科院校女子组")
private int collegeFemale;
@ApiModelProperty("本科院校混合组")
private int college;
@ApiModelProperty("俱乐部男子组(14岁及以下)")
private int clubMale;
@ApiModelProperty("俱乐部女子组(14岁及以下)")
private int clubFemale;
@ApiModelProperty("俱乐部混合组(14岁及以下)")
private int club;
@ApiModelProperty("参赛人数 顺序:小学(女男混)→中学(女男混)→高职院校(女男混)→本科院校(女男混)→俱乐部(女男混)")
private List<Integer> nums = new ArrayList<>();
}
}

5
mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java

@ -2,6 +2,7 @@ package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.bean.vo.ProvinceCompeteVo;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.persist.mapper.CompetePlayerMapper;
import org.apache.ibatis.annotations.Param;
@ -67,4 +68,8 @@ public interface CompetePlayerDao extends CompetePlayerMapper {
* @return 返回性别组和备注
*/
ProvinceCompeteVo.TeamGroupRemark getTeamGroupRemark(@Param("teamId")Long teamId);
List<TableVo.CompeteAllCount> getTeamJoinNumByType(@Param("timeId")Long timeId);
List<Integer> getTeamJoinNumByProjectId(@Param("projectId")Long projectId);
}

70
mt/src/main/java/com/ccsens/mt/service/ExcelService.java

@ -8,9 +8,11 @@ import com.ccsens.mt.bean.po.*;
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.util.PoiUtil;
import com.ccsens.util.PropUtil;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -392,41 +394,43 @@ public class ExcelService implements IExcelService {
return null;
}
private List<TableVo.CompeteAllCount> competeAllCountList(CompeteDto.CompeteTime params){
//根据大赛查类型
Long competeTimeId = params.getCompeteTimeId();
CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(competeTimeId);
int type = competeTime.getType();
Byte level = 2;
CompeteProjectExample competeProjectExample = new CompeteProjectExample();
competeProjectExample.createCriteria().andTypeEqualTo((byte) type).andLevelEqualTo(level);
//获取参赛项目集合
List<CompeteProject> competeProjectList = competeProjectMapper.selectByExample(competeProjectExample);
CompeteGroupExample competeGroupExample = new CompeteGroupExample();
competeGroupExample.createCriteria().andTypeEqualTo((byte) type);
//获取组别集合
List<CompeteGroup> competeGroupList = competeGroupMapper.selectByExample(competeGroupExample);
for (CompeteProject competeProject : competeProjectList){
//若不是团队项目
if (competeProject.getTeam() == 0){
TableVo.CompeteAllCount competeAllCount = new TableVo.CompeteAllCount();
//项目名赋值
competeAllCount.setProjectName(competeProject.getName());
//遍历组别集合
int i = 0;
for(CompeteGroup competeGroup : competeGroupList){
CompetePlayerExample competePlayerExample = new CompetePlayerExample();
competePlayerExample.createCriteria().andCompeteGroupIdEqualTo(competeGroup.getId());
//计算每个组别人数
long count = competePlayerDao.countByExample(competePlayerExample);
}
}
}
return null;
}
// private List<TableVo.CompeteAllCount> competeAllCountList(CompeteDto.CompeteTime params){
// //根据大赛查类型
// Long competeTimeId = params.getCompeteTimeId();
// CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(competeTimeId);
// int type = competeTime.getType();
// Byte level = 2;
// CompeteProjectExample competeProjectExample = new CompeteProjectExample();
// competeProjectExample.createCriteria().andTypeEqualTo((byte) type).andLevelEqualTo(level);
// //获取参赛项目集合
// List<CompeteProject> competeProjectList = competeProjectMapper.selectByExample(competeProjectExample);
// CompeteGroupExample competeGroupExample = new CompeteGroupExample();
// competeGroupExample.createCriteria().andTypeEqualTo((byte) type);
// //获取组别集合
// List<CompeteGroup> competeGroupList = competeGroupMapper.selectByExample(competeGroupExample);
// for (CompeteProject competeProject : competeProjectList){
// //若不是团队项目
// if (competeProject.getTeam() == 0){
// TableVo.CompeteAllCount competeAllCount = new TableVo.CompeteAllCount();
// //项目名赋值
// competeAllCount.setProjectName(competeProject.getName());
// //遍历组别集合
// int i = 0;
// for(CompeteGroup competeGroup : competeGroupList){
// CompetePlayerExample competePlayerExample = new CompetePlayerExample();
// competePlayerExample.createCriteria().andCompeteGroupIdEqualTo(competeGroup.getId());
// //计算每个组别人数
// long count = competePlayerDao.countByExample(competePlayerExample);
// }
// }
// }
// return null;
// }
private List<TableVo.CompeteAllCount> competeAllCountList(CompeteDto.CompeteTime params){
return competePlayerDao.getTeamJoinNumByType(params.getCompeteTimeId());
}
}

57
mt/src/main/resources/mapper_dao/CompetePlayerDao.xml

@ -24,6 +24,13 @@
</collection>
</resultMap>
<resultMap id="teamNum" type="com.ccsens.mt.bean.vo.TableVo$CompeteAllCount">
<id column="projectId" property="projectId"/>
<result column="projectName" property="projectName"/>
<collection property="nums" ofType="Integer" column="projectId" select="getTeamJoinNumByProjectId">
</collection>
</resultMap>
<select id="getInfo" resultType="com.ccsens.mt.bean.vo.CompeteVo$GetPlayerInfo">
SELECT
p.id AS playerId,
@ -205,4 +212,54 @@
and m.rec_status = 0
and g.rec_status = 0
</select>
<select id="getTeamJoinNumByType" resultMap="teamNum">
SELECT
p.id as projectId,
p.`name` as projectName
FROM
t_compete_project p LEFT JOIN t_compete_time t on p.type = t.type
WHERE
t.id = #{timeId}
and p.`level` = 2
and t.rec_status = 0
and p.rec_status = 0
</select>
<select id="getTeamJoinNumByProjectId" resultType="Integer">
SELECT
if(p.team = 1,(if(t1.co is null,0,t1.co)),(if(t2.co is null,0,t2.co)))
from
t_compete_project p
LEFT JOIN
t_compete_group g on p.type = g.type
LEFT JOIN
(
SELECT
count(id) as co,
group_remark as re,
gender_group as ge,
project_id as tpId
FROM
t_compete_team
WHERE
rec_status = 0
GROUP BY group_remark,gender_group
)t1 on g.sequence = (t1.re*10 + t1.ge) and t1.tpId = p.id
LEFT JOIN
(
SELECT
pl.compete_group_id as groupId,
count(pp.id) as co
FROM
t_compete_project_player pp
LEFT JOIN t_compete_player pl on pp.player_id = pl.id
WHERE
pl.rec_status = 0 and pp.rec_status = 0
GROUP BY pl.compete_group_id
)t2 on g.id = t2.groupId
WHERE
p.id = #{projectId}
and g.rec_status in (0,1)
ORDER BY g.sequence
</select>
</mapper>
Loading…
Cancel
Save