Browse Source

lihong

tiaosheng
Lihong@123456 5 years ago
parent
commit
2de59bdd3e
  1. 12
      mt/src/main/java/com/ccsens/mt/api/CompeteController.java
  2. 3
      mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java
  3. 43
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java
  4. 56
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java
  5. 106
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  6. 7
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  7. 6
      mt/src/main/resources/druid-dev.yml
  8. 102
      mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml
  9. 2
      tall/src/main/java/com/ccsens/tall/bean/dto/WpsDto.java
  10. 4
      tall/src/main/resources/application.yml
  11. 9
      util/src/main/java/com/ccsens/util/PoiUtil.java

12
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<CompeteDto.CompeteType> params) throws IOException {
log.info("查询各个项目报名人员信息:{}",params);
List<CompeteVo.EnrollPlayInfo> 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"})

3
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;
}
}

43
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;
}
}

56
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<CompeteVo.ProjectInfo> getProject(@Param("type")int type);
/**
* 查询项目信息
* @param projectId 项目id
* @return 项目参与者id和组别id
*/
List<CompeteVo.ProjectPlayer> getProjectPlayer(@Param("projectId")long projectId);
/**
* 查询项目信息
* @param playerId 参赛者id
* @return 项目参与者信息nameidcardphone,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<CompeteVo.Team> getTeamId(@Param("projectId")long projectId);
/**
* 查询参赛团队id
* @param teamId 团队id
* @return 团队成员id
*/
List<CompeteVo.Team> getTeamPlayerId(@Param("teamId")long teamId);
}

106
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<CompeteVo.EnrollPlayInfo> enrollPlayInfo(QueryDto<CompeteDto.CompeteType> params) {
CompeteDto.CompeteType competeType = params.getParam();
int typeId = competeType.getType();
ArrayList<CompeteVo.EnrollPlayInfo> arrayList = new ArrayList();
//1:查询该类型下所有项目的id,name,team信息,排除level为1的
List<CompeteVo.ProjectInfo> 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<CompeteVo.ProjectPlayer> 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<CompeteVo.Team> 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<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
try {
Workbook workbook = new XSSFWorkbook();
for (CompeteVo.EnrollPlayInfo enrollPlayInfo : arrayList){
//行对象
List<PoiUtil.PoiUtilCell> 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;
}
}

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

@ -114,4 +114,11 @@ public interface ICompeteService {
* @return
*/
void submitProjectAndGroup(QueryDto<CompeteDto.CompetePlayerAndProject> params);
/**
* 根据项目类型查询参赛者信息
* @param params 项目类型信息
* @return 返回参赛者的详细信息
*/
List<CompeteVo.EnrollPlayInfo> enrollPlayInfo(QueryDto<CompeteDto.CompeteType> params) throws IOException;
}

6
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
# env: CCSENS_GAME
env: CCSENS_TALL

102
mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.mt.persist.dao.CompeteEnrollDao">
<resultMap id="getProject" type="com.ccsens.mt.bean.vo.CompeteVo$ProjectInfo">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="team" property="team"/>
</resultMap>
<resultMap id="getProjectPlayer" type="com.ccsens.mt.bean.vo.CompeteVo$ProjectPlayer">
<result column="player_id" property="player_id"/>
<result column="compete_group_id" property="compete_group_id"/>
</resultMap>
<resultMap id="getPlayerAndProject" type="com.ccsens.mt.bean.vo.CompeteVo$EnrollPlayInfo">
<result column="name" property="username"/>
<result column="id_Card" property="idCard"/>
<result column="phone" property="phone"/>
</resultMap>
<resultMap id="getTeam" type="com.ccsens.mt.bean.vo.CompeteVo$Team">
<result column="id" property="id"/>
<result column="player_id" property="player_id"/>
</resultMap>
<select id="getProject" parameterType="java.util.Map" resultMap="getProject">
SELECT
a.id,
a.name,
a.team
FROM
t_compete_project a
WHERE
a.type = #{type}
AND level != 1
AND rec_status = 0
</select>
<select id="getProjectPlayer" parameterType="java.util.Map" resultMap="getProjectPlayer">
SELECT
a.player_id,
a.compete_group_id
FROM
t_compete_project_player a
WHERE
a.project_id = #{projectId}
AND rec_status = 0
</select>
<select id="getPlayerAndProject" parameterType="java.util.Map" resultMap="getPlayerAndProject">
SELECT
a.name,
a.id_Card,
a.phone,
b.group_name
FROM
t_compete_player a,
t_compete_project_player c,
t_compete_group b
WHERE
a.id = #{playerId}
AND b.id = c.compete_group_id
AND a.id = c.player_id
</select>
<select id="getPlayerAndProjectForTeam" parameterType="java.util.Map" resultMap="getPlayerAndProject">
SELECT
p.name as username,
g.group_name as groupName,
GROUP_CONCAT(a.mName) as othersName,
p.id_card as idCard,
p.phone as phone
FROM
t_compete_team t
LEFT JOIN t_compete_player p on t.creator = p.id
LEFT JOIN t_compete_group g on t.compete_group_id = g.id
LEFT JOIN (
SELECT
p.`name` as mName,
tm.compete_team_id as tId
FROM t_compete_player p LEFT JOIN t_compete_team_member tm on p.id = tm.player_id
and tm.captain = 0
)a on a.tId = t.id
WHERE
p.id = #{player_id}
and p.rec_status = 0
and t.rec_status = 0
</select>
<select id="getTeamId" parameterType="java.util.Map" resultMap="getTeam">
SELECT
a.id,
a.creator as player_id
FROM
t_compete_team a
WHERE
a.project_id = #{projectId}
AND rec_status = 0
</select>
<select id="getTeamPlayerId" parameterType="java.util.Map" resultMap="getTeam">
SELECT
a.player_id
FROM
t_compete_team_member a
WHERE
a.compete_team_id = #{teamId}
AND rec_status = 0
</select>
</mapper>

2
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;

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

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

9
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();

Loading…
Cancel
Save