diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java index 04586466..42601be1 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java @@ -161,6 +161,18 @@ public class CompeteController { } + @MustLogin + @ApiOperation(value = "报名表", notes = "") + @RequestMapping(value = "/enroll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse enrollPlayInfo(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { + log.info("查询各个项目报名人员信息:{}",params); + List enrollPlayInfoList= competeService.enrollPlayInfo(params); + return JsonResponse.newInstance().ok(enrollPlayInfoList); + } + + + + // @MustLogin // @ApiOperation(value = "查询比赛项目上的参赛选手列表", notes = "") // @RequestMapping(value = "/get/players", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) 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 f6f4d191..e1b308e0 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 @@ -17,7 +17,7 @@ public class CompeteDto { @ApiModel public static class CompeteType{ @NotNull - @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛") + @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛 2全民赛") private int type; } @@ -228,4 +228,5 @@ public class CompeteDto { @ApiModelProperty("其他参赛人员(亲子组需要)") private String family; } + } 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 bb2f7ab1..6333a5bc 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 @@ -351,5 +351,46 @@ public class CompeteVo { private BigDecimal score; } - + @Data + @ApiModel("所有项目参赛者信息") + public static class EnrollPlayInfo{ + @ApiModelProperty("比赛项目名字") + private String name; + @ApiModelProperty("参加的组别的名字") + private String groupName; + @ApiModelProperty("名字") + private String username; + @ApiModelProperty("身份证") + private String idCard; + @ApiModelProperty("手机号") + private String phone; + @ApiModelProperty("其他参赛者姓名") + private String othersName; + } + @Data + @ApiModel("参加的项目信息") + public static class ProjectInfo{ + @ApiModelProperty("项目id") + private Long id; + @ApiModelProperty("比赛项目名字") + private String name; + @ApiModelProperty("比赛类型:0个人 1团队") + private byte team; + } + @Data + @ApiModel("某项目下参赛者id和组别id") + public static class ProjectPlayer{ + @ApiModelProperty("参赛者id") + private Long player_id; + @ApiModelProperty("参赛组别id") + private Long compete_group_id; + } + @Data + @ApiModel("参赛队伍信息") + public static class Team{ + @ApiModelProperty("参赛团队id") + private Long id; + @ApiModelProperty("团队下的参与者id") + private long player_id; + } } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java new file mode 100644 index 00000000..7a1f276f --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java @@ -0,0 +1,56 @@ +package com.ccsens.mt.persist.dao; + +import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.persist.mapper.CompetePlayerMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 参赛选手信息 + */ +public interface CompeteEnrollDao extends CompetePlayerMapper { + /** + * 查询项目信息 + * @param type 项目类型 + * @return 项目信息 + */ + List getProject(@Param("type")int type); + + /** + * 查询项目信息 + * @param projectId 项目id + * @return 项目参与者id和组别id + */ + List getProjectPlayer(@Param("projectId")long projectId); + + /** + * 查询项目信息 + * @param playerId 参赛者id + * @return 项目参与者信息name,idcard,phone,groupname + */ + CompeteVo.EnrollPlayInfo getPlayerAndProject(@Param("playerId")long playerId); + + /** + * 查询项目信息 + * @param player_id 团队id + * @return 团队参赛的组别 + */ + CompeteVo.EnrollPlayInfo getPlayerAndProjectForTeam(@Param("player_id")long player_id); + + /** + * 查询参赛团队id + * @param projectId 项目id + * @return 参赛团队id + */ + List getTeamId(@Param("projectId")long projectId); + + /** + * 查询参赛团队id + * @param teamId 团队id + * @return 团队成员id + */ + List getTeamPlayerId(@Param("teamId")long teamId); + + +} 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 3b71aeec..988016fb 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -2,13 +2,17 @@ package com.ccsens.mt.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +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.po.*; import com.ccsens.mt.bean.vo.CompeteVo; +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; @@ -18,12 +22,14 @@ import com.ccsens.util.*; 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; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.io.IOException; +import java.io.*; import java.util.ArrayList; import java.util.List; @@ -60,7 +66,10 @@ public class CompeteService implements ICompeteService{ private CompetePlayerFamilyMapper competePlayerFamilyMapper; @Resource private CompeteProjectGroupMapper competeProjectGroupMapper; - + @Resource + private CompeteEnrollDao competeEnrollDao; + @Resource + private TallFeignClient tallFeignClient; /** * 查看第几届 @@ -585,4 +594,97 @@ public class CompeteService implements ICompeteService{ }); } } + + @Override + public List enrollPlayInfo(QueryDto params) { + CompeteDto.CompeteType competeType = params.getParam(); + int typeId = competeType.getType(); + ArrayList arrayList = new ArrayList(); + //1:查询该类型下所有项目的id,name,team信息,排除level为1的 + List projectInfoList = competeEnrollDao.getProject(typeId); + //2:根据team字段判断是否为团队项目 + for (CompeteVo.ProjectInfo projectInfo : projectInfoList){ + long team = projectInfo.getTeam(); + //3:若是单人项目,在t_compete_project_player表中根据传进来的项目名的项目id查询该项目下所有play_id-参赛选手id和该选手的所在组别id + if (team == 0){ + List projectPlayerList = competeEnrollDao.getProjectPlayer(projectInfo.getId()); + for(CompeteVo.ProjectPlayer projectPlayer : projectPlayerList){ + //4:然后根据查出来的play_id查询t_compete_player中play_id=id的所有信息,包括姓名,身份证,手机号;通过组别id,在t_compete_group中查找组别名称;单人项目不涉及同组参赛者 + CompeteVo.EnrollPlayInfo enrollPlayInfo = competeEnrollDao.getPlayerAndProject(projectPlayer.getPlayer_id()); + if (enrollPlayInfo !=null) { + enrollPlayInfo.setName(projectInfo.getName()); + arrayList.add(enrollPlayInfo); + } + } + }else { + //5:若是团队项目,t_compete_team表中根据传进来的项目id拿到该表的id字段,即参加该项目的团队集合, + List teamList = competeEnrollDao.getTeamId(projectInfo.getId()); + for (CompeteVo.Team team1 : teamList){ + //6:获取团队下队员的详细信息 + CompeteVo.EnrollPlayInfo enrollPlayInfo = competeEnrollDao.getPlayerAndProjectForTeam(team1.getPlayer_id()); + enrollPlayInfo.setName(projectInfo.getName()); + arrayList.add(enrollPlayInfo); + } + } + } + //7:将数据放入excel表格 + InputStream inputStream = null; + //excel表格行列对象 + List> list = new ArrayList<>(); + try { + Workbook workbook = new XSSFWorkbook(); + for (CompeteVo.EnrollPlayInfo enrollPlayInfo : arrayList){ + //行对象 + List cells = new ArrayList<>(); + //单元格对象 + PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(enrollPlayInfo.getName()); + cells.add(poiUtilCel); + PoiUtil.PoiUtilCell poiUtilCell = new PoiUtil.PoiUtilCell(enrollPlayInfo.getGroupName()); + cells.add(poiUtilCell); + PoiUtil.PoiUtilCell poiUtilCel2 = new PoiUtil.PoiUtilCell(enrollPlayInfo.getUsername()); + cells.add(poiUtilCel2); + PoiUtil.PoiUtilCell poiUtilCel3 = new PoiUtil.PoiUtilCell(enrollPlayInfo.getIdCard()); + cells.add(poiUtilCel3); + PoiUtil.PoiUtilCell poiUtilCel4 = new PoiUtil.PoiUtilCell(enrollPlayInfo.getPhone()); + cells.add(poiUtilCel4); + PoiUtil.PoiUtilCell poiUtilCel5 = new PoiUtil.PoiUtilCell(enrollPlayInfo.getOthersName()); + cells.add(poiUtilCel5); + list.add(cells); + } + //生成excel表格对象,并将数据放入 + Workbook wbs = PoiUtil.exportWB("Sheet1", list, workbook); + //8:关联金山在线文档 + String name = "报名表" + ".xlsx"; + String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; + //PropUtil.path获取配置文件中的path属性,拼接生成写入信息的文件名, + String path = PropUtil.path + File.separator + filepath; + File file = new File(path); + OutputStream stream = new FileOutputStream(file); + wbs.write(stream); + stream.close(); + //获取比赛的第几届信息 + CompeteVo.CompeteTime competeTimeByType = competeTimeDao.getCompeteTimeByType(competeType.getType(), System.currentTimeMillis()); + WpsDto.Business business = new WpsDto.Business(); + business.setBusinessId(competeTimeByType.getId()); + business.setBusinessType((byte) 11); + business.setFileName(name); + business.setFilePath(filepath); + business.setFileSize(file.length()); + business.setUserId(params.getUserId()); + business.setOperation(WebConstant.Wps.USER_OPERATION_NEW); + business.setPrivilege(WebConstant.Wps.PROJECT_PRIVILEGE_READ); + tallFeignClient.saveWpsFile(business); + WpsDto.VisitWpsUrl visitWpsUrl = new WpsDto.VisitWpsUrl(); + visitWpsUrl.setBusinessId(competeTimeByType.getId()); + visitWpsUrl.setBusinessType((byte) 11); + visitWpsUrl.setUserId(params.getUserId()); + tallFeignClient.queryVisitUrls(visitWpsUrl); + } catch (IOException e) { + e.printStackTrace(); + } + return arrayList; + + } + + } 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 39e0d137..d7da4e5c 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -114,4 +114,11 @@ public interface ICompeteService { * @return */ void submitProjectAndGroup(QueryDto params); + + /** + * 根据项目类型查询参赛者信息 + * @param params 项目类型信息 + * @return 返回参赛者的详细信息 + */ + List enrollPlayInfo(QueryDto params) throws IOException; } diff --git a/mt/src/main/resources/druid-dev.yml b/mt/src/main/resources/druid-dev.yml index 78308b7f..8b496426 100644 --- a/mt/src/main/resources/druid-dev.yml +++ b/mt/src/main/resources/druid-dev.yml @@ -15,7 +15,8 @@ spring: maxWait: 60000 minEvictableIdleTimeMillis: 300000 minIdle: 5 - password: 37080c1f223685592316b02dad8816c019290a476e54ebb638f9aa3ba8b6bdb9 +# password: 37080c1f223685592316b02dad8816c019290a476e54ebb638f9aa3ba8b6bdb9 + password: 68073a279b399baa1fa12cf39bfbb65bfc1480ffee7b659ccc81cf19be8c4473 poolPreparedStatements: true servletLogSlowSql: true servletLoginPassword: 111111 @@ -30,4 +31,5 @@ spring: url: jdbc:mysql://49.233.89.188:3306/mt?useUnicode=true&characterEncoding=UTF-8 username: root validationQuery: SELECT 1 FROM DUAL - env: CCSENS_GAME \ No newline at end of file +# env: CCSENS_GAME + env: CCSENS_TALL \ No newline at end of file diff --git a/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml b/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml new file mode 100644 index 00000000..b7250ad0 --- /dev/null +++ b/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/WpsDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/WpsDto.java index a5f84046..f21862be 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/WpsDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/WpsDto.java @@ -168,7 +168,7 @@ public class WpsDto { @ApiModelProperty("wps文件ID") private Long wpsFileId; @ApiModelProperty("业务类型 0: 项目ID 1:交付物ID 2会议记录 3产品依据表" + - ",4产品收入表,5成本表,6损益表,7现金流表,8数钱游戏配置,9赛跑游戏配置,10拔河游戏配置") + ",4产品收入表,5成本表,6损益表,7现金流表,8数钱游戏配置,9赛跑游戏配置,10拔河游戏配置,11跳绳项目") private Byte businessType; @ApiModelProperty("用户ID") private Long userId; diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index c88e995d..b2acd365 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/util/src/main/java/com/ccsens/util/PoiUtil.java b/util/src/main/java/com/ccsens/util/PoiUtil.java index 677fe5f6..1015495e 100644 --- a/util/src/main/java/com/ccsens/util/PoiUtil.java +++ b/util/src/main/java/com/ccsens/util/PoiUtil.java @@ -528,8 +528,11 @@ public class PoiUtil { public static void main(String[] args) throws Exception { - InputStream inputStream = new FileInputStream("C:\\Users\\逗\\Desktop\\新建文件夹\\1.xlsx"); - Workbook workbook = new XSSFWorkbook(inputStream); + +// File file = new File("F:\\wenjian\\3.xlsx"); +// file.createNewFile(); +// InputStream inputStream = new FileInputStream(file); + Workbook workbook = new XSSFWorkbook(); // XSSFSheet sheet = (XSSFSheet) workbook.getSheetAt(0); // XSSFRow row = sheet.getRow(6); // XSSFCell newCell = row.createCell(2); @@ -576,7 +579,7 @@ public class PoiUtil { // list.add(cells5); Workbook wbs = exportWB("Sheet1", list, workbook); - OutputStream stream = new FileOutputStream(new File("C:\\Users\\逗\\Desktop\\新建文件夹\\"+System.currentTimeMillis()+".xlsx")); + OutputStream stream = new FileOutputStream(new File("F:\\wenjian\\"+System.currentTimeMillis()+".xlsx")); wbs.write(stream); stream.close();