main
rong.liu 1 year ago
parent be2087de72
commit 97d5da6a85
  1. 3
      competition/src/main/java/com/huoran/competition/controller/CompetitionRegistrationController.java
  2. 25
      competition/src/main/java/com/huoran/competition/entity/req/PageRegistrationStaffReq.java
  3. 57
      competition/src/main/java/com/huoran/competition/entity/vo/RegistrationVO.java
  4. 114
      competition/src/main/java/com/huoran/competition/mapper/xml/CompetitionRegistrationMapper.xml
  5. 118
      competition/src/main/java/com/huoran/competition/service/impl/CompetitionRegistrationServiceImpl.java
  6. 2
      nakadai/src/main/java/com/huoran/nakadai/controller/AliRealNameAuthenticationController.java

@ -63,7 +63,7 @@ public class CompetitionRegistrationController {
}
@ApiOperation(value = "报名人员分页条件查询", response = RegistrationVO.class)
@ApiOperation(value = "报名人员列表", response = RegistrationVO.class)
@PostMapping("/queryRegistrationByCondition")
public R registrationPageList(
@RequestBody PageRegistrationStaffReq req, HttpServletRequest request) {
@ -72,6 +72,7 @@ public class CompetitionRegistrationController {
}
@ApiOperation(value = "批量禁用人员参赛")
@PutMapping("/disableContests")
public R disableContests(

@ -11,29 +11,26 @@ import lombok.Data;
*/
@Data
@ApiModel(value = "报名人员分页参数列表")
public class PageRegistrationStaffReq extends PageReq{
public class PageRegistrationStaffReq extends PageReq {
@ApiModelProperty(value = "关键词(学生姓名/手机号)",example = "18818574533")
@ApiModelProperty(value = "关键词(学生姓名/手机号)", example = "18818574533")
private String keyWord;
@ApiModelProperty(value = "活动ID",example = "1485860415656255489")
@ApiModelProperty(value = "活动ID", example = "1485860415656255489")
private String competitionId;
private Integer pageNum;
private Integer pageSize;
@ApiModelProperty(value = "禁用启用0未禁用,1禁用",example = "0")
@ApiModelProperty(value = "禁用启用0未禁用,1禁用", example = "0")
private Integer isDisable;
@ApiModelProperty(value = "学校排序标识",example = "1正序,2倒序")
private Integer schoolOrder;
@ApiModelProperty(value = "团队排序标识",example = "null")
private Integer teamOrder;
@ApiModelProperty(value = "查询来源(1.前台/2.后台)")
private Integer querySource;
@ApiModelProperty(value = "平台来源(5:幼儿园,6:供应商)", example = "5")
private Integer platformId;
@ApiModelProperty(value = "签到状态(0待签到 1.已签到 2未签到:活动结束后没签到的)", example = "5")
private Integer signInStatus;
}

@ -1,6 +1,5 @@
package com.huoran.competition.entity.vo;
import ch.qos.logback.core.rolling.helper.IntegerTokenConverter;
import cn.afterturn.easypoi.excel.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -13,38 +12,43 @@ public class RegistrationVO {
private Integer rownum;
@ApiModelProperty(value = "学校")
@Excel(name = "学校", orderNum = "2", mergeVertical = true, isImportField = "school", width = 30)
private String school;
@ApiModelProperty(value = "学生姓名")
@Excel(name = "学生姓名", orderNum = "3", mergeVertical = true, isImportField = "username", width = 30)
@ApiModelProperty(value = "姓名")
@Excel(name = "姓名", orderNum = "2", isImportField = "username", width = 30)
private String username;
@ApiModelProperty(value = "手机号")
@Excel(name = "手机号", orderNum = "4", mergeVertical = true, isImportField = "phone", width = 30)
private String phone;
@ApiModelProperty(value = "组织名称")
@Excel(name = "组织名称", orderNum = "3", isImportField = "organizationName", width = 30)
private String organizationName;
@ApiModelProperty(value = "学号")
@Excel(name = "学号", orderNum = "5", mergeVertical = true, isImportField = "workNumber", width = 30)
private String workNumber;
@ApiModelProperty(value = "组织类型/平台来源(5:幼儿园,6:供应商) 没有数据显示'无'")
@Excel(name = "组织类型", orderNum = "4", isImportField = "platformId", width = 30)
private String platformId;
@ApiModelProperty(value = "报名时间")
@Excel(name = "报名时间", orderNum = "6", mergeVertical = true, isImportField = "createTime", width = 30)
@Excel(name = "报名时间", orderNum = "5", isImportField = "createTime", width = 30)
private String createTime;
@ApiModelProperty(value = "团队名称")
@Excel(name = "团队名称", orderNum = "7", mergeVertical = true, isImportField = "teamName", width = 30)
private String teamName;
@ApiModelProperty(value = "签到情况(签到状态(0待签到 1.已签到 2未签到:活动结束后没签到的))")
@Excel(name = "签到情况", orderNum = "6", isImportField = "signInStatus", width = 30)
private String signInStatus;
@ApiModelProperty(value = "签到时间")
@Excel(name = "签到时间", orderNum = "7", isImportField = "signInTime", width = 30)
private String signInTime;
@ApiModelProperty(value = "手机号")
@Excel(name = "手机号", orderNum = "8", isImportField = "phone", width = 30)
private String phone;
@ApiModelProperty(value = "头像")
private String userAvatars;
@ApiModelProperty(value = "团队id")
private Integer teamId;
@ApiModelProperty(value = "账号id")
private Integer accountId;
@ -52,18 +56,17 @@ public class RegistrationVO {
@ApiModelProperty(value = "用户id")
private Integer userId;
@ApiModelProperty(value = "学校id")
private Integer schoolId;
@ApiModelProperty(value = "活动id")
private Integer competitionId;
@ApiModelProperty(value = "报名id")
@ApiModelProperty(value = "当前报名生成的主键id(用于禁用/删除等报名人员)")
private Integer id;
@ApiModelProperty(value = "是否禁用")
private Integer isDisable;
@ApiModelProperty(value = "是否队长")
private Integer captain;
@ApiModelProperty(value = "内部标识")
private Integer identification;
}

@ -21,8 +21,16 @@
</select>
<select id="selectRegistrationByCondition" resultType="com.huoran.competition.entity.vo.RegistrationVO">
SELECT
temp.* ,
(SELECT
@row_number := @row_number + 1 AS rownum,
temp.*
FROM
(
SELECT
r.competition_id AS competitionId,
r.id,
r.account_id,
(
SELECT
u.user_name
FROM
nakadai.hr_user_account ua
@ -30,86 +38,50 @@
AND u.is_del = 0
WHERE
ua.is_del = 0
AND ua.app_open_id = temp.app_open_id
AND ua.platform_id = 7) as username
FROM
(
SELECT
a.*,
@rownum := @rownum + 1 AS rownum
FROM
(
SELECT
qa.id,
qa.is_disable,
ua.phone,
ua.work_number,
( SELECT school_name FROM nakadai.school s WHERE s.school_id = ua.school_id ) AS school,
ua.school_id,
u.user_name AS enterpriseName,
u.user_id,
qa.account_id,
AND ua.app_open_id = a.app_open_id
AND ua.platform_id = 7
) AS username,
a.phone,
u.user_avatars,
qa.create_time,
qa.identification,
ct.team_name,
ct.captain,
CASE
WHEN ct.captain = 0 THEN
ct.team_id
WHEN ct.captain = 1 THEN
ct.pid
END AS team_id,
ua.app_open_id
IFNULL( c.classification_name, '无' ) AS organizationName,
IFNULL( ta.platform_id, '无' ) AS platformId,
r.create_time,
sign_in_status,
sign_in_time
FROM
c_competition_registration qa
INNER JOIN nakadai.hr_user_account ua ON ua.id = qa.account_id
AND ua.is_del = 0
INNER JOIN nakadai.hr_user_info u ON u.user_id = ua.user_id
c_competition_registration r
INNER JOIN nakadai.hr_user_account a ON a.id = r.account_id
AND a.is_del = 0
INNER JOIN nakadai.hr_user_info u ON u.user_id = a.user_id
AND u.is_del = 0
LEFT JOIN c_competition_team ct ON ct.competition_id = qa.competition_id
AND ct.account_id = qa.account_id
LEFT JOIN nakadai.k_platform_team_account ta ON ta.account_id = a.id
LEFT JOIN nakadai.k_platform_team t ON t.manage_id = ta.manage_id
LEFT JOIN nakadai.k_platform_team_classification c ON c.id = t.classification_id
) temp,
( SELECT @row_number := 0 ) AS t
WHERE
qa.competition_id = #{req.competitionId}
GROUP BY
qa.id
ORDER BY
qa.create_time DESC
) a
LEFT JOIN ( SELECT @rownum := 0 ) b ON 1 = 1
) temp
WHERE
1 =1
temp.competitionId = #{req.competitionId}
<if test=" req.keyWord!=null and req.keyWord!='' ">
AND CONCAT( IFNULL( temp.phone, '' ),
AND CONCAT(
IFNULL( temp.phone, '' ),
IFNULL( temp.username, '' ),
IFNULL( temp.school, '' ) ,
IFNULL( temp.work_number, '' ) )
IFNULL( temp.organizationName, '' )
)
like CONCAT('%',#{req.keyWord},'%')
</if>
<if test=" req.isDisable!=null and req.isDisable!='' ">
AND temp.is_disable = #{req.isDisable}
</if>
<if test=" req.schoolOrder == 1 ">
ORDER BY LEFT(school, 1)
</if>
<if test=" req.schoolOrder == 2 ">
ORDER BY LEFT(school, 1) DESC
</if>
<if test=" req.schoolOrder!=null and req.teamOrder == 1 ">
,LEFT(team_name, 1)
</if>
<if test=" req.schoolOrder!=null and req.teamOrder == 2 ">
,LEFT(team_name, 1) DESC
</if>
<if test=" req.schoolOrder==null and req.teamOrder == 1 ">
ORDER BY LEFT(team_name, 1)
<if test=" req.signInStatus!=null ">
and temp.sign_in_status = #{req.signInStatus}
</if>
<if test=" req.schoolOrder==null and req.teamOrder == 2 ">
ORDER BY LEFT(team_name, 1) DESC
<if test=" req.platformId!=null">
and temp.platformId = #{req.platformId}
</if>
ORDER BY
temp.create_time DESC
</select>
<select id="selectApplicantByCondition" resultType="com.huoran.competition.entity.vo.RegistrationVO">
SELECT

@ -14,11 +14,7 @@ import com.huoran.common.exception.ExceptionEnum;
import com.huoran.common.response.R;
import com.huoran.competition.entity.Competition;
import com.huoran.competition.entity.CompetitionRegistration;
import com.huoran.competition.entity.CompetitionTeam;
import com.huoran.competition.entity.CompleteCompetitionSetup;
import com.huoran.competition.entity.req.PageRegistrationStaffReq;
import com.huoran.competition.entity.vo.ExcelData;
import com.huoran.competition.entity.vo.PersonalExcelData;
import com.huoran.competition.entity.vo.RegistrationVO;
import com.huoran.competition.mapper.*;
import com.huoran.competition.service.CompetitionRangeService;
@ -29,7 +25,6 @@ import com.huoran.competition.utils.ExcelStyleUtil;
import com.huoran.competition.utils.HandleNameAsteriskReplacementUtil;
import org.apache.poi.ss.usermodel.Workbook;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -38,7 +33,6 @@ import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
@ -89,14 +83,13 @@ public class CompetitionRegistrationServiceImpl extends ServiceImpl<CompetitionR
//默认设置后台
if (ObjectUtils.isEmpty(req.getQuerySource())){
req.setQuerySource(2);
}
if (ObjectUtils.isEmpty(req.getQuerySource())) {
req.setQuerySource(2);
}
if (req.getQuerySource() == 1) {
pageList
.getRecords().forEach(registrationVO -> {
registrationVO.setUsername(HandleNameAsteriskReplacementUtil.desensitizedName(registrationVO.getUsername()));
});
pageList.getRecords().forEach(registrationVO -> {
registrationVO.setUsername(HandleNameAsteriskReplacementUtil.desensitizedName(registrationVO.getUsername()));
});
}
return R.ok().put("data", pageList);
@ -142,39 +135,37 @@ public class CompetitionRegistrationServiceImpl extends ServiceImpl<CompetitionR
@Override
public void export(HttpServletResponse response, PageRegistrationStaffReq req) throws IOException {
Page<RegistrationVO> page = new Page<RegistrationVO>(req.getPageNum(), req.getPageSize());
IPage<RegistrationVO> applicantVOList = baseMapper.selectApplicantByCondition(page, req);
QueryWrapper<CompleteCompetitionSetup> setupQueryWrapper = new QueryWrapper<>();
setupQueryWrapper.eq("competition_id", req.getCompetitionId());
CompleteCompetitionSetup setup = completeCompetitionSetupMapper.selectOne(setupQueryWrapper);
List<ExcelData> excelDataList = new ArrayList<>();
List<PersonalExcelData> personalExcelData = new ArrayList<>();
//导出团队名称
if (setup.getCompetitionType() == 1) {
applicantVOList.getRecords().forEach(registrationVO -> {
QueryWrapper<CompetitionTeam> teamQueryWrapper = new QueryWrapper<>();
teamQueryWrapper.eq("competition_id", req.getCompetitionId());
teamQueryWrapper.eq("account_id", registrationVO.getAccountId());
CompetitionTeam team = competitionTeamMapper.selectOne(teamQueryWrapper);
if (team != null && team.getCaptain() == 0) {
registrationVO.setTeamName(team.getTeamName());
} else if (team != null) {
CompetitionTeam team1 = competitionTeamMapper.selectById(team.getPid());
registrationVO.setTeamName(team1.getTeamName());
}
});
applicantVOList.getRecords().forEach(applicantVO -> {
ExcelData excelData = new ExcelData();
BeanUtils.copyProperties(applicantVO, excelData);
excelDataList.add(excelData);
});
} else {
//个人导出列
applicantVOList.getRecords().forEach(applicantVO -> {
PersonalExcelData personalExcelData1 = new PersonalExcelData();
BeanUtils.copyProperties(applicantVO, personalExcelData1);
personalExcelData.add(personalExcelData1);
});
IPage<RegistrationVO> pageList = baseMapper.selectRegistrationByCondition(page, req);
for (RegistrationVO vo : pageList.getRecords()) {
//组织类型/平台来源(5:幼儿园,6:供应商)
switch (vo.getPlatformId()) {
case "5":
vo.setPlatformId("幼儿园");
break;
case "6":
vo.setPlatformId("供应商");
break;
}
//签到状态(0.待签到 1.已签到 2.未签到:活动结束后没签到的)
switch (vo.getSignInStatus()) {
case "0":
vo.setSignInStatus("待签到");
break;
case "1":
vo.setSignInStatus("已签到");
break;
case "2":
vo.setSignInStatus("未签到");
break;
}
}
// 告诉浏览器用什么软件可以打开此文件
@ -184,12 +175,8 @@ public class CompetitionRegistrationServiceImpl extends ServiceImpl<CompetitionR
//编码
response.setCharacterEncoding("UTF-8");
Workbook workbook;
if (setup.getCompetitionType() == 1) {
workbook = ExcelExportUtil.exportExcel(new ExportParams(), ExcelData.class, excelDataList);
} else {
workbook = ExcelExportUtil.exportExcel(new ExportParams(), PersonalExcelData.class, personalExcelData);
}
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), RegistrationVO.class, pageList.getRecords());
ExportParams exportParams = new ExportParams(null, "delivery", ExcelType.XSSF);
exportParams.setStyle(ExcelStyleUtil.class);
workbook.write(response.getOutputStream());
@ -197,6 +184,35 @@ public class CompetitionRegistrationServiceImpl extends ServiceImpl<CompetitionR
@Override
public void exportDataInBatches(List<RegistrationVO> listOfExportSub, HttpServletResponse response) throws IOException {
if (!listOfExportSub.isEmpty()) {
for (RegistrationVO vo : listOfExportSub) {
//组织类型/平台来源(5:幼儿园,6:供应商)
switch (vo.getPlatformId()) {
case "5":
vo.setPlatformId("幼儿园");
break;
case "6":
vo.setPlatformId("供应商");
break;
}
//签到状态(0.待签到 1.已签到 2.未签到:活动结束后没签到的)
switch (vo.getSignInStatus()) {
case "0":
vo.setSignInStatus("待签到");
break;
case "1":
vo.setSignInStatus("已签到");
break;
case "2":
vo.setSignInStatus("未签到");
break;
}
}
}
// 告诉浏览器用什么软件可以打开此文件
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称

@ -197,7 +197,7 @@ public class AliRealNameAuthenticationController {
String method = "GET";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + "5a7f623d06724a4da5806c1fb0544e47");
headers.put("Authorization", "APPCODE " + "bd4ad25d0e41466eabb31d9baa16a79f");//嘉龙
Map<String, String> querys = new HashMap<String, String>();
querys.put("ComapnyName", enterpriseCertification.getCompanyName());
querys.put("CreditCode", enterpriseCertification.getCreditCode());

Loading…
Cancel
Save