Commit 1007948c by 涂亚平

汤老师小改

1 parent 051dd08c
Showing with 4940 additions and 10 deletions
...@@ -113,6 +113,12 @@ ...@@ -113,6 +113,12 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.amdelamar</groupId>
<artifactId>jhash</artifactId>
<version>${jhash.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>${poi-ooxml.version}</version> <version>${poi-ooxml.version}</version>
...@@ -192,7 +198,7 @@ ...@@ -192,7 +198,7 @@
</repositories> </repositories>
<build> <build>
<finalName>template</finalName> <finalName>lida</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
package com.template.common.configure; package com.zhongzhi.common.configure;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -26,11 +26,11 @@ public class SwaggerConfig { ...@@ -26,11 +26,11 @@ public class SwaggerConfig {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/") .pathMapping("/")
.select() .select()
.apis(RequestHandlerSelectors.basePackage("com.template.controller")) .apis(RequestHandlerSelectors.basePackage("com.zhongzhi.controller"))
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build() .build()
.apiInfo(new ApiInfoBuilder() .apiInfo(new ApiInfoBuilder()
.title("模板") .title("国泰君安")
.description("接口文档") .description("接口文档")
.version("1.0") .version("1.0")
.build()); .build());
......
package com.zhongzhi.common.constant;
import lombok.Data;
@Data
public class ProjectAssigned {
public static final String ASSIGN_ED = "已分配";
public static final String UN_ASSIGN = "未分配";
}
...@@ -113,9 +113,10 @@ public class GlobalExceptionHandler { ...@@ -113,9 +113,10 @@ public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class) @ExceptionHandler(value = Exception.class)
public ResponseVO<T> serverInternalError(Exception e, HttpServletRequest request) { public ResponseVO<T> serverInternalError(Exception e, HttpServletRequest request) {
String url = request.getRequestURI(); String url = request.getRequestURI();
log.error("path:" + url); // log.error("path:" + url);
log.error("error:"+ e.getClass()); // log.error("error:"+ e.getClass());
log.error("error message:"+ e.getLocalizedMessage() + e.getStackTrace()[0] + System.getProperty("line.separator")); // log.error("error message:"+ e.getLocalizedMessage() + e.getStackTrace()[0] + System.getProperty("line.separator"));
e.printStackTrace();
return ResponseData.generateCreatedResponse(Code.SERVER_INTERNAL_ERROR.getCode(), Code.SERVER_INTERNAL_ERROR.getMessage(), url); return ResponseData.generateCreatedResponse(Code.SERVER_INTERNAL_ERROR.getCode(), Code.SERVER_INTERNAL_ERROR.getMessage(), url);
} }
} }
\ No newline at end of file
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.administer.AdministerTracksDTO;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 赛道管理员映射表 前端控制器
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@RestController
@RequestMapping("/administerTrackMapping")
@Api("管理员赛道")
public class AdministerTrackMappingController {
@Autowired
private AdministerTrackMappingService administerTrackMappingService;
@PostMapping("administerTracks")
@ApiOperation("管理员的赛道 userId")
public ResponseVO administerTracks(@RequestBody AdministerTracksDTO administerTracksDTO){
return ResponseData.generateCreatedResponse(0,administerTrackMappingService.administerTracks(administerTracksDTO));
}
}
...@@ -29,10 +29,10 @@ import java.util.List; ...@@ -29,10 +29,10 @@ import java.util.List;
@RequestMapping("/oss") @RequestMapping("/oss")
public class OssController { public class OssController {
public static final String keyId = "LTAI5tPAH7P7WQVeowo517BE"; public static final String keyId = "LTAI5tLUBG4B6QxhHrhddc7p";
public static final String secret = "0ueqhIfdAZyw5lWlBVSLpAxTtx37RY"; public static final String secret = "eber38QGHZixTQ6bFfrd80kbg67jIP";
// @Value("${spring.profiles.active}") // @Value("${spring.profiles.active}")
......
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.service.ProjectTrackService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 赛道字典表 前端控制器
* </p>
* @author DengMin
* @since 2025-03-28
*/
@RestController
@RequestMapping("/projectTrack")
@Api(tags = "赛道")
public class ProjectTrackController {
@Autowired
private ProjectTrackService projectTrackService;
@PostMapping("allTracks")
@ApiOperation("查询所有赛道 ")
public ResponseVO allTracks(){
return ResponseData.generateCreatedResponse(0,projectTrackService.list());
}
}
package com.zhongzhi.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 赛道管理员映射表
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("administer_track_mapping")
public class AdministerTrackMappingDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long administerId;
private Long trackId;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 赛道字典表
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_track")
public class ProjectTrackDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String projectTrack;
}
...@@ -58,7 +58,7 @@ public class AliyunSmsUtil { ...@@ -58,7 +58,7 @@ public class AliyunSmsUtil {
//必填:待发送手机号 //必填:待发送手机号
request.setPhoneNumbers(phone); request.setPhoneNumbers(phone);
//必填:短信签名-可在短信控制台中找到 //必填:短信签名-可在短信控制台中找到
request.setSignName("双创平台"); request.setSignName("有课互联");
//必填:短信模板-可在短信控制台中找到 //必填:短信模板-可在短信控制台中找到
request.setTemplateCode("SMS_229640297"); request.setTemplateCode("SMS_229640297");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
......
package com.zhongzhi.common.constant;
/**
* <p>
* 项目进度
* </p>
*
* @author DengMin
* @since 2021/6/9
*/
public class ProjectSchedule {
//报名阶段
public static final String TO_REVIEW = "待评审";
public static final String REVIEW_ED = "待评审";
// 校内赛
public static final String SCHOOL_REVIEW = "市级初赛项目";
public static final String SEMI_FINAL_REVIEW = "市级复赛项目";
public static final String FINAL_REVIEW = "市级决赛项目";
public static final String PASS = "通过";
public static final String NO_PASS = "不通过";
}
package com.zhongzhi.common.constant;
/**
* <p>
* 项目状态
* </p>
*
* @author DengMin
* @since 2021/6/9
*/
public class ProjectStatus {
public static final String UN_SUBMITTED = "填写中";
public static final String TO_CHECK = "待评审";
public static final String WITHDRAWN = "已撤回";
public static final String SCHOOL_NOT_PASSED = "不予提交市级复赛";
public static final String REGISTER_NOT_PASSED = "报名不通过";
public static final String PRELIMINARY_NOT_PASSED = "不予提交市级初赛";
public static final String REMATCH_WINNING_AWARD = "优胜奖";
public static final String REMATCH_SILVER_AWARD = "二等奖";
public static final String REMATCH_BRONZE_AWARD = "三等奖";
public static final String REMATCH_FINALS_GOLD_AWARD = "一等奖";
public static final String ABANDON = "未通过";
public static final String PASS = "已通过";
}
package com.zhongzhi.common.constant;
/**
* <p>
* 项目组别
* </p>
*
* @author DengMin
* @since 2021/6/9
*/
public class ProjectType {
/**
* 赛道
*/
public static final String MAIN_TRACK = "主赛道";
public static final String SEED_TRACK = "种子赛道";
// public static final String VOCATIONAL = "职教赛道";
/**
* 组别
*/
public static final String TECHNOLOGY_INNOVATION_GROUP = "科技创新";
public static final String CULTURAL_CREATIVE_GROUP = "文化创意";
public static final String VOCATIONAL_GROUP = "高职";
public static final String SECONDARY_GROUP = "中职";
}
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.CreateAdministerDTO;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.AdministerPermissionDO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.zhongzhi.service.AdministerPermissionService;
import com.zhongzhi.service.AdministerService;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 中心管理账户表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "中心管理账户")
@RequestMapping("/administer")
public class AdministerController {
@Autowired
private AdministerService administerService;
@Autowired
private AdministerTrackMappingService administerTrackMappingService;
@Autowired
private AdministerPermissionService administerPermissionService;
@PostMapping(value = "/login")
@ApiOperation("中心端 --- 登录:手机号/telephone, code/验证码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, administerService.login(loginDTO));
}
@PostMapping(value = "/getAdministerPage")
@ApiOperation("####中心端 --- 成员管理分页查询:listItem/角色、 username/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getAdministerPage(@RequestBody AdministerPageDTO administerPageDTO) {
return ResponseData.generateCreatedResponse(0, administerService.getAdministerPage(administerPageDTO));
}
@PostMapping(value = "/createAdminister")
@ApiOperation("####中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids")
public ResponseVO createAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) {
administerService.save(createAdministerDTO);
List<Long> trackIds = createAdministerDTO.getTrackIds();
if (null != trackIds){
for (Long id : trackIds){
AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
administerTrackMappingDO.setTrackId(id);
administerTrackMappingService.save(administerTrackMappingDO);
}
}
List<Long> permissionIds = createAdministerDTO.getPermissionIds();
if (null != permissionIds){
for (Long id : permissionIds){
AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
administerPermissionDO.setAdministerId(createAdministerDTO.getId());
administerPermissionDO.setPermissionId(id);
administerPermissionService.save(administerPermissionDO);
}
}
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateAdminister")
@ApiOperation("####中心端 --- 编辑成员:id/成员ID、username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids")
public ResponseVO updateAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) {
administerService.updateAdminister(createAdministerDTO);
List<Long> trackIds = createAdministerDTO.getTrackIds();
if (null != trackIds){
administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,createAdministerDTO.getId()));
for (Long id : trackIds){
AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
administerTrackMappingDO.setTrackId(id);
administerTrackMappingService.save(administerTrackMappingDO);
}
}
List<Long> permissionIds = createAdministerDTO.getPermissionIds();
if (null != permissionIds) {
administerPermissionService.remove(new QueryWrapper<AdministerPermissionDO>()
.lambda()
.eq(AdministerPermissionDO::getAdministerId,createAdministerDTO.getId()));
for (Long id : permissionIds){
AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
administerPermissionDO.setAdministerId(createAdministerDTO.getId());
administerPermissionDO.setPermissionId(id);
administerPermissionService.save(administerPermissionDO);
}
}
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/deleteById")
@ApiOperation("####中心端 --- 删除成员:id/成员ID")
public ResponseVO delete(@RequestBody AdministerDO administerDO) {
administerService.removeById(administerDO.getId());
administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,administerDO.getId()));
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.controller;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 系统用户权限表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "用户权限")
@RequestMapping("/administerPermission")
public class AdministerPermissionController {
}
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.MajorDictDO;
import com.zhongzhi.service.MajorDictService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 专业字典表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "就读专业")
@RequestMapping("/majorDict")
public class MajorDictController {
@Autowired
private MajorDictService majorDictService;
@PostMapping(value = "/getMajorList")
@ApiOperation("####查询全部就读专业: major/专业名称、education/学历、code/院校代码")
public ResponseVO getMajorList(@RequestBody MajorDictDO majorDictDO) {
return ResponseData.generateCreatedResponse(0, majorDictService.list(new QueryWrapper<MajorDictDO>()
.lambda()
.eq(StringUtils.isNotBlank(majorDictDO.getEducation()), MajorDictDO::getEducation, majorDictDO.getEducation())
.eq(StringUtils.isNotBlank(majorDictDO.getCode()), MajorDictDO::getCode, majorDictDO.getCode())
.like(StringUtils.isNotBlank(majorDictDO.getMajor()), MajorDictDO::getMajor, majorDictDO.getMajor())));
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.project.ProjectListPageDTO;
import com.zhongzhi.model.MatchCollegePdfDO;
import com.zhongzhi.service.MatchCollegePdfService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2024-06-25
*/
@RestController
@RequestMapping("/matchCollegePdf")
@Api(tags = "pdf")
public class MatchCollegePdfController {
@Autowired
private MatchCollegePdfService matchCollegePdfService;
@PostMapping("uploadPdf")
@ApiOperation("上传盖章pdf attachment matchId fileName")
@LoginRequired(Platform.school)
public ResponseVO uploadPdf(@RequestBody MatchCollegePdfDO matchCollegePdfDO) throws Exception{
matchCollegePdfService.uploadPdf(matchCollegePdfDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("dropPdf")
@ApiOperation("删除盖章pdf matchId")
@LoginRequired(Platform.school)
public ResponseVO dropPdf(@RequestBody MatchCollegePdfDO matchCollegePdfDO) throws Exception{
matchCollegePdfService.dropPdf (matchCollegePdfDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("queryPdfStatus")
@ApiOperation("查看pdf matchId")
@LoginRequired(Platform.school)
public ResponseVO queryPdfStatus(@RequestBody MatchCollegePdfDO matchCollegePdfDO) {
return ResponseData.generateCreatedResponse(0, matchCollegePdfService.queryPdfStatus (matchCollegePdfDO));
}
}
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.service.MatchDictService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 赛事年份管理 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-17
*/
@RestController
@Api(tags = "赛事年份管理")
@RequestMapping("/match")
public class MatchDictController {
@Autowired
private MatchDictService matchDictService;
@PostMapping(value = "/getMainTrackMatch")
@LoginRequired({Platform.school, Platform.center, Platform.student})
@ApiOperation("查询主赛道启用赛事年份")
public ResponseVO getMainTrackMatch() {
return ResponseData.generateCreatedResponse(0, matchDictService.getMainTrackMatch());
}
@PostMapping(value = "/getSeedTrackMatch")
@LoginRequired({Platform.school, Platform.center, Platform.student})
@ApiOperation("查询种子赛道启用赛事年份")
public ResponseVO getSeedTrackMatch() {
return ResponseData.generateCreatedResponse(0, matchDictService.getSeedTrackMatch());
}
@PostMapping(value = "/getMatch")
@ApiOperation("查询启用种子赛事年份")
public ResponseVO getMatch() {
return ResponseData.generateCreatedResponse(0, matchDictService.getMatch());
}
@PostMapping(value = "/getVocationalMatch")
@ApiOperation("查询启用职教赛事年份")
public ResponseVO getVocationalMatch() {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalMatch());
}
@PostMapping("updateMatchDate")
@ApiOperation("修改届数 id registrationStart registrationDeadline")
public ResponseVO updateMatch(@RequestBody MatchDictDO matchDictDO){
matchDictService.updateMatchDate(matchDictDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("getMatchInfo")
@ApiOperation("查看某届数详情 id")
public ResponseVO getMatch(@RequestBody MatchDictDO matchDictDO){
return ResponseData.generateCreatedResponse(0,matchDictService.getMatch(matchDictDO));
}
@PostMapping(value = "/getMainTrackMatchPage")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("中心端/院校端 ---分页查询主赛道赛事年份:pageNo、pageSize")
public ResponseVO getMainTrackMatchPage(@RequestBody SelectListPageDTO selectListPageDTO) {
Page page = new Page(selectListPageDTO.getPageNo(), selectListPageDTO.getPageSize());
return ResponseData.generateCreatedResponse(0, matchDictService.page(page, new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.MAIN_TRACK)));
}
@PostMapping(value = "/getSeedTrackMatchPage")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 ---分页查询种子赛道赛事年份:pageNo、pageSize")
public ResponseVO getSeedTrackMatchPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getSeedTrackMatchPage(selectListPageDTO));
}
// @PostMapping(value = "/createMainTrackMatch")
// @LoginRequired({Platform.center})
// @ApiOperation("中心端 ---创建主赛道赛事年份:matchName/名称、matchDate/年份 month 月、startTime/报名起始时间、endTime/报名结束时间、" +
// "schedule:[{ scheduleTime/时间安排、explain/说明 }]")
// public ResponseVO createMainTrackMatch(@RequestBody MatchDictDTO matchDictDTO) {
// matchDictDTO.setMatchType(ProjectType.MAIN_TRACK);
// matchDictService.createMatch(matchDictDTO);
// return ResponseData.generateCreatedResponse(0);
// }
// @PostMapping(value = "/createSeedTrackMatch")
// @LoginRequired({Platform.center})
// @ApiOperation("中心端 ---创建种子赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
// "schedule:[{ scheduleTime/时间安排、explains/说明 }]")
// public ResponseVO createSeedTrackMatch(@RequestBody MatchDictDTO matchDictDTO) {
// matchDictDTO.setMatchType(ProjectType.SEED_TRACK);
// matchDictService.createMatch(matchDictDTO);
// return ResponseData.generateCreatedResponse(0);
// }
@PostMapping(value = "/createVocationalMatch")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---创建职教赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
"schedule:[{ scheduleTime/时间安排、explains/说明 }]")
public ResponseVO createVocationalMatch(@RequestBody MatchDictDTO matchDictDTO) {
matchDictService.createMatch(matchDictDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateMatch")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---编辑赛事年份:id/ID、matchName/名称、matchDate/年份、month 月 startTime/报名起始时间、endTime/报名结束时间、status/状态(1:启动,0:暂停)" +
"schedule:[{ id/时间安排ID、scheduleTime/时间安排、explains/说明 }]")
public ResponseVO updateMatch(@RequestBody MatchDictDTO matchDictDTO) {
matchDictService.updateMatch(matchDictDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---删除赛事年份:id/ID")
public ResponseVO delete(@RequestBody MatchDictDO matchDictDO) {
matchDictService.removeById(matchDictDO.getId());
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getMainTrackMatchAll")
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("中心端/学生端/院校端/审批端 ---查询全部主赛道赛事年份")
public ResponseVO getMainTrackMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.list(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.MAIN_TRACK)));
}
@PostMapping(value = "/getSeedTrackMatchAll")
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("中心端/学生端/院校端/审批端 ---查询全部种子赛道赛事年份")
public ResponseVO getSeedTrackMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.list(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.SEED_TRACK)));
}
@PostMapping(value = "/getVocationalMatchAll")
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("####中心端/学生端/院校端/审批端 ---查询全部职教赛道赛事年份")
public ResponseVO getVocationalMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.list(null));
}
/* 职教管理端 */
@PostMapping(value = "/getVocationalPage")
@ApiOperation("####中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getVocationalPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalPage(selectListPageDTO));
}
@PostMapping("getMatchByYearMonth")
@ApiOperation("通过年和月获取赛事 matchDate month")
public ResponseVO getMatchByYearMonth(@RequestBody MatchDictDO matchDictDO){
return ResponseData.generateCreatedResponse(0,matchDictService.getMatchByYearMonth(matchDictDO));
}
}
\ No newline at end of file
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.model.MatchScheduleDO;
import com.zhongzhi.service.MatchDictService;
import com.zhongzhi.service.MatchScheduleService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 时间安排 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-27
*/
@RestController
@RequestMapping("/matchSchedule")
@Api(tags = "时间安排")
public class MatchScheduleController {
@Autowired
private MatchScheduleService matchScheduleService;
@Autowired
private MatchDictService matchDictService;
@PostMapping(value = "/getMatchSchedule")
@LoginRequired({Platform.student})
@ApiOperation("学生端 ---种子赛道查看时间安排:matchId/赛事年份ID")
public ResponseVO getMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) {
MatchDictDO matchDictDO = matchDictService.getOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getId, matchScheduleDO.getMatchId())
.eq(MatchDictDO::getMatchType, ProjectType.SEED_TRACK)
.eq(MatchDictDO::getStatus, 1));
List<MatchScheduleDO> list = new ArrayList<>();
if (matchDictDO != null) {
list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
.lambda()
.eq(MatchScheduleDO::getMatchId, matchDictDO.getId()));
}
return ResponseData.generateCreatedResponse(0, list);
}
@PostMapping(value = "getVocationalMatchSchedule")
@LoginRequired({Platform.student})
@ApiOperation("学生端 ---职教赛道查看时间安排:matchId/赛事年份ID")
public ResponseVO getVocationalMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) {
MatchDictDO matchDictDO = matchDictService.getOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getId, matchScheduleDO.getMatchId())
.eq(MatchDictDO::getStatus, 1));
List<MatchScheduleDO> list = new ArrayList<>();
if (matchDictDO != null) {
list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
.lambda()
.eq(MatchScheduleDO::getMatchId, matchDictDO.getId()));
}
return ResponseData.generateCreatedResponse(0, list);
}
}
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.DateFormatUtil;
import com.zhongzhi.common.utils.Localstorage;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.message.MessagePageDTO;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.MessageDO;
import com.zhongzhi.service.MessageService;
import com.zhongzhi.vo.ResponseVO;
import com.zhongzhi.vo.message.MessageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 通知消息表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-17
*/
@RestController
@Api(tags = "通知消息")
@RequestMapping("/message")
public class MessageController {
@Autowired
private MessageService messageService;
@PostMapping(value = "/getMessage")
@ApiOperation("####查询通知")
public ResponseVO getMessage() {
List<MessageVO> messages = new ArrayList();
List<MessageDO> list = messageService.list(new QueryWrapper<MessageDO>()
.lambda()
.orderByDesc(MessageDO::getCreateTime));
for (MessageDO messageDO : list) {
MessageVO messageVO = new MessageVO();
BeanUtils.copyProperties(messageDO, messageVO);
messageVO.setReleaseTime(DateFormatUtil.format(messageDO.getReleaseTime(), DateFormatUtil.FMT_sdf_yMd));
messages.add(messageVO);
}
return ResponseData.generateCreatedResponse(0, messages);
}
@PostMapping(value = "/getMessageById")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 根据ID查询详情:id/ID")
public ResponseVO getMessageById(@RequestBody MessageDO messageDO) {
return ResponseData.generateCreatedResponse(0, messageService.getById(messageDO.getId()));
}
@PostMapping(value = "/getMessagePage")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---分页查询通知: pageNo/当前页数, pageSize/每页显示条数")
public ResponseVO getMessagePage(@RequestBody MessagePageDTO messagePageDTO) {
return ResponseData.generateCreatedResponse(0, messageService.getMessagePage(messagePageDTO));
}
@PostMapping(value = "/createMessage")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---创建通知: title/标题, content/内容, attachmentUrl/附件地址, releaseTime/发布时间, attachmentName/附件名称, attachmentType/附件类型")
public ResponseVO createMessage(@RequestBody MessageDO messageDO) {
messageService.createMessage(messageDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateMessage")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---编辑通知: id/ID, title/标题, content/内容, attachmentUrl/附件地址, attachmentName/附件名称, attachmentType/附件类型")
public ResponseVO updateMessage(@RequestBody MessageDO messageDO) {
messageService.updateById(messageDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---删除通知: id/ID, ")
public ResponseVO delete(@RequestBody MessageDO messageDO) {
messageService.removeById(messageDO.getId());
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.service.PermissionsService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 权限表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "权限")
@RequestMapping("/permissions")
public class PermissionsController {
@Autowired
private PermissionsService permissionsService;
@PostMapping("allPermissions")
@ApiOperation("所有权限")
public ResponseVO allPermissions(){
return ResponseData.generateCreatedResponse(0,permissionsService.allPermissions());
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.dto.judge.ProjectJudgePageDTO;
import com.zhongzhi.model.ProjectJudgeDO;
import com.zhongzhi.service.ProjectJudgeService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 项目评审员 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@RestController
@Api(tags = "评委")
@RequestMapping("/projectJudge")
public class ProjectJudgeController {
@Autowired
private ProjectJudgeService projectJudgeService;
@PostMapping(value = "/login")
@ApiOperation("评审端 --- 登录:accountName/账号、password/密码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.login(loginDTO));
}
@PostMapping(value = "/getProjectJudgePage")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---评委列表:username/姓名、status/状态、pageNo/当前页数、 pageSize/每页显示条数")
public ResponseVO getProjectJudgePage(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.getProjectJudgePage(projectJudgePageDTO));
}
@PostMapping(value = "/createProjectJudge")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---添加评委:username/姓名、telephone/手机号、 position/职位、unit/单位")
public ResponseVO createProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.createProjectJudge(projectJudgeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateProjectJudge")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---编辑评委:id/ID、username/姓名、telephone/手机号、 position/职位、unit/单位, status/状态(1:启用,0:禁用)")
public ResponseVO updateProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.updateProjectJudge(projectJudgeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---删除评委:id/ID")
public ResponseVO delete(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.removeById(projectJudgeDO.getId());
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/projectJudgesAssigned")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---已分配项目评委列表: matchId/赛事ID、projectGroup/组别、projectSchedule/进度")
public ResponseVO projectJudgesAssigned(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.projectJudgesAssigned(projectJudgePageDTO));
}
@PostMapping(value = "/downloadJudgeTemplate")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---下载导入评委模板")
public ResponseVO downloadJudgeTemplate() {
projectJudgeService.downloadTemplate();
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/importJudge")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---导入评委:file/文件(数据格式:Form-Data)")
public ResponseVO importJudge(MultipartFile file) {
projectJudgeService.importJudge(file);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/exportProjectJudge")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---导出评委")
public void exportProjectJudge() {
projectJudgeService.exportProjectJudge();
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.review.CancelReviewDTO;
import com.zhongzhi.dto.review.ProjectReviewDTO;
import com.zhongzhi.dto.review.SetReviewDTO;
import com.zhongzhi.service.ProjectReviewService;
import com.zhongzhi.vo.ResponseVO;
import com.zhongzhi.vo.review.SendNoticeVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 项目评审 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@RestController
@Api(tags = "项目评审")
@RequestMapping("/projectReview")
public class ProjectReviewController {
@Autowired
private ProjectReviewService projectReviewService;
@PostMapping(value = "/setReview")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---分配评审:[{projectId}]/项目ID、[{judgeId}]/评委ID、")
public ResponseVO setReview(@RequestBody SetReviewDTO setReviewDTO) {
projectReviewService.setReview(setReviewDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendNotice")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 发送通知评审:id/评委ID, matchId/赛事ID")
public ResponseVO sendNotice(@RequestBody SendNoticeVO sendNoticeVO) {
projectReviewService.sendNotice(sendNoticeVO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/cancelReview")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 撤销分配:projectId/项目ID、[{judgeId}]/评委ID、smsMessage/是否发送短信通知(0:不发送,1:发送)")
public ResponseVO cancelReview(@RequestBody CancelReviewDTO cancelReviewVO) {
projectReviewService.cancelReview(cancelReviewVO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getProjectReview")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 已分配项目评审员:projectId/项目ID")
public ResponseVO getProjectReview(@RequestBody ProjectReviewDTO projectReviewDTO) {
return ResponseData.generateCreatedResponse(0, projectReviewService.getProjectReview(projectReviewDTO));
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.period.ProjectReviewPeriodDTO;
import com.zhongzhi.model.ProjectReviewPeriodDO;
import com.zhongzhi.service.ProjectReviewPeriodService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 评审时段 前端控制器
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
@RestController
@Api(tags = "评审时段")
@RequestMapping("/projectReviewPeriod")
public class ProjectReviewPeriodController {
@Autowired
private ProjectReviewPeriodService projectReviewPeriodService;
@PostMapping(value = "/getProjectReviewPeriod")
@ApiOperation("####中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)")
public ResponseVO getProjectReviewPeriod(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) {
return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriod(projectReviewPeriodDTO));
}
@PostMapping(value = "/updateProjectReviewPeriod")
@ApiOperation("中心端 --- 修改评审时间:id/ID、matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、startTime/开始时间、endTime/结束时间")
public ResponseVO updateProjectReviewPeriod(@RequestBody ProjectReviewPeriodDO projectReviewPeriodDO) {
projectReviewPeriodService.updateProjectReviewPeriod(projectReviewPeriodDO);
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.SmsCodeDO;
import com.zhongzhi.service.SmsCodeService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 短信验证码 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "短信验证码")
@RequestMapping("/smsCode")
public class SmsCodeController {
@Autowired
private SmsCodeService smsCodeService;
@PostMapping(value = "/sendRegisterCode")
@ApiOperation("####学生端 ---注册验证码:telephone/手机号")
public ResponseVO sendRegisterCode(@RequestBody SmsCodeDO smsCodeDO) {
smsCodeService.sendRegisterCode(smsCodeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendStudentLoginCode")
@ApiOperation("####学生端 ---登陆验证码:telephone/手机号")
public ResponseVO sendStudentLoginCode(@RequestBody SmsCodeDO smsCodeDO) {
smsCodeService.sendStudentLoginCode(smsCodeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendAdministerLoginCode")
@ApiOperation("中心端 --- 中心端登陆验证码:telephone/手机号")
public ResponseVO sendAdministerLoginCode(@RequestBody AdministerDO administerDO) {
smsCodeService.sendAdministerLoginCode(administerDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendJudgeLoginCode")
@ApiOperation("评审端 ---登陆验证码:telephone/手机号")
public ResponseVO sendJudgeLoginCode(@RequestBody SmsCodeDO smsCodeDO) {
smsCodeService.sendJudgeLoginCode(smsCodeDO);
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.notice.SmsNoticeDTO;
import com.zhongzhi.dto.notice.SmsNoticePageDTO;
import com.zhongzhi.service.SmsNoticeService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 短信通知记录 前端控制器
* </p>
*
* @author DengMin
* @since 2022-04-15
*/
@RestController
@Api(tags = "短信通知")
@RequestMapping("/smsNotice")
public class SmsNoticeController {
@Autowired
private SmsNoticeService smsNoticeService;
@PostMapping(value = "batchSend")
@LoginRequired({Platform.center})
@ApiOperation("####管理端 -- 批量发送短信:matchId/赛事年份ID、projectGroup/组别、projectSchedule/阶段、projectStatus/状态、name/搜索名称")
public ResponseVO batchSend(@RequestBody SmsNoticeDTO smsNoticeDTO) {
smsNoticeService.batchSend(smsNoticeDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "send")
@LoginRequired({Platform.center})
@ApiOperation("####管理端 -- 发送短信:ids/项目ID(数组)")
public ResponseVO send(@RequestBody SmsNoticeDTO smsNoticeDTO) {
smsNoticeService.send(smsNoticeDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getListByPage")
@LoginRequired({Platform.center})
@ApiOperation("####管理端 -- 发送短信记录:date/日期、name/搜索名称、pageNo、pageSize")
public ResponseVO getListByPage(@RequestBody SmsNoticePageDTO smsNoticePageDTO) {
return ResponseData.generateCreatedResponse(0, smsNoticeService.getListByPage(smsNoticePageDTO));
}
}
\ No newline at end of file
package com.zhongzhi.controller;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.student.LoginDTO;
import com.zhongzhi.dto.student.RegisterDTO;
import com.zhongzhi.model.StudentDO;
import com.zhongzhi.service.StudentService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "学生")
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@PostMapping(value = "/register")
@ApiOperation("####注册:name/真实姓名, idCard/身份证, telephone/手机号, code/验证码, " +
"education/学历层次, school/就读院校, major/就读专业,grade,className,studyNo,enrollmentDate/入学年份, graduateDate/毕业年份")
public ResponseVO register(@RequestBody RegisterDTO registerDTO) {
return ResponseData.generateCreatedResponse(0, studentService.register(registerDTO));
}
@PostMapping(value = "/login")
@ApiOperation("####登陆:telephone/手机号, code/验证码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, studentService.login(loginDTO));
}
@PostMapping(value = "updateStudentInfo")
@LoginRequired({ Platform.student })
@ApiOperation("登陆:id/ID, education/学历, college/就读院校, major/专业, enrollmentDate/入学年份, graduateDate/毕业年份")
public ResponseVO updateStudentInfo(@RequestBody StudentDO studentDO) {
studentService.updateStudentInfo(studentDO);
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.YearDictDO;
import com.zhongzhi.service.YearDictService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 年份字典表 前端控制器
* </p>
*
* @author DengMin
* @since 2023-04-11
*/
@RestController
@RequestMapping("/yearDict")
@Api(tags = "年份管理")
public class YearDictController {
@Autowired
private YearDictService yearDictService;
@PostMapping("queryYears")
@ApiOperation("####查询年份")
public ResponseVO queryYears(){
return ResponseData.generateCreatedResponse(0,yearDictService.queryYears());
}
@PostMapping("updateYear")
@ApiOperation("编辑年份 id year status")
public ResponseVO updateYear(@RequestBody YearDictDO yearDictDO){
yearDictService.updateYear(yearDictDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("addYear")
@ApiOperation("添加年份 year status ")
public ResponseVO addYear(@RequestBody YearDictDO yearDictDO){
yearDictService.addYear(yearDictDO);
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.model.AdministerDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.administer.GetAdministerPageVO;
import org.springframework.stereotype.Repository;
/**
* <p>
* 中心管理账户表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Repository
public interface AdministerDAO extends BaseMapper<AdministerDO> {
IPage<GetAdministerPageVO> getAdministerPage(IPage iPage, String listItem, String username);
void updateAdminister(AdministerDO administerDO);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.model.ProjectTrackDO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 赛道管理员映射表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@Repository
public interface AdministerTrackMappingDAO extends BaseMapper<AdministerTrackMappingDO> {
List<ProjectTrackDO> administerTracks(Long userId);
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.dto.college.ExportCollegeDTO;
import com.zhongzhi.model.CollegesDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.college.AwardedListVO;
import com.zhongzhi.vo.college.CollegePageVO;
import com.zhongzhi.vo.college.GetCollegeInfoVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 院校字典表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Repository
public interface CollegesDictDAO extends BaseMapper<CollegesDictDO> {
IPage<CollegePageVO> listPage(Page page, String name);
IPage<AwardedListVO> getAwardedList(Page page, String name);
List<AwardedListVO> getAwardedListAll();
IPage<GetCollegeInfoVO> getCollegeInfo(IPage iPage, String name);
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.model.MatchDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.match.MatchDictVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 赛事年份管理 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-05-17
*/
@Repository
public interface MatchDictDAO extends BaseMapper<MatchDictDO> {
IPage<MatchDictVO> getSeedTrackMatchPage(Page page);
List<MatchDictDO> getList(@Param("projectType") String projectType, @Param("projectGroup") String projectGroup);
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.model.ProjectDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.project.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 项目表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-05-11
*/
@Repository
public interface ProjectDAO extends BaseMapper<ProjectDO> {
IPage<ProjectPageVO> getListPage(Page page, Long matchId, Long proposerId);
IPage<MainTrackProjectPageVO> getMainTrackProjectPage(Page page, Long matchId, String projectGroup, @Param("type") String type, @Param("projectType") String projectType,
String projectSchedule,
String projectStatus, String itemField, @Param("name") String name);
IPage<SeedTrackProjectPageVO> getSeedTrackProjectPage(Page page, Long matchId, String projectGroup,String projectTrack, @Param("type") String type,
@Param("school") String school, String projectSchedule,
String projectStatus, String itemField, @Param("name") String name,@Param("projectProgress") String projectProgress,Long userId,String college);
IPage<ReviewListVO> getReviewList(Page page, String projectName, String projectGroup, String projectReview, Long matchId, String projectSchedule, String projectAssigned,String projectProgress,Long userId,String college);
IPage<ProjectPageVO> getProjectReviewPage(Page page, Long judgeId, Long matchId, String projectName, String projectSchedule, String projectReview, String projectGroup,String projectProgress);
List<ProjectDO> getProjectReviewList(Long id, Long matchId,String projectProgress);
List<ProjectDO> getProjectByCollege(Long matchId, @Param("name") String name, String projectProgress);
List<ProjectDO> getSeedTrackProjectList(Long matchId, String projectGroup, @Param("name") String name,@Param("projectProgress")String projectProgress,Long userId,String college);
List<ProjectDO> selectListByCollege(String projectType, String projectGroup, @Param("name") String name);
List<ProjectDO> getList(Long matchId, @Param("name") String name, String projectGroup);
List<SeedTrackProjectPageVO> getProjectList(Long matchId, String projectGroup, String projectSchedule, String projectStatus, @Param("name") String name);
List<ProjectDO> getListByJudgeId(Long matchId, String projectGroup, @Param("judgeId") Long judgeId);
List<ProjectDO> getProjectById(@Param("ids") Long[] ids);
List<ProjectDO> projects(Long matchId,Long collegeId,String college);
Integer collegeNum();
List<ProjectDO> getVocationalReviewNum(Long userId,Long matchId,String college);
List<ProjectDO> getVocationalAssignNum(Long userId,Long matchId,String college);
List<ProjectDO> exportProjectReview(Long userId,Long matchId,String projectSchedule,String college);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.ProjectReviewDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.judge.ProjectReviewVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 项目评审 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@Repository
public interface ProjectReviewDAO extends BaseMapper<ProjectReviewDO> {
List<ProjectReviewVO> getList(String projectSchedule, Long projectId);
Integer selectCountByMatchId(Long judgeId, Long matchId);
Integer selectNotReviewCount(Long judgeId, Long matchId);
void updateProjectReview(ProjectReviewDO projectReviewDO);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.ProjectTrackDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 赛道字典表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
public interface ProjectTrackDAO extends BaseMapper<ProjectTrackDO> {
}
package com.zhongzhi.dto.administer;
import lombok.Data;
@Data
public class AdministerTracksDTO {
private Long userId;
}
package com.zhongzhi.dto.administer;
import com.zhongzhi.model.AdministerDO;
import lombok.Data;
import java.util.List;
@Data
public class CreateAdministerDTO extends AdministerDO {
private List<Long> trackIds;
private List<Long> permissionIds;
}
package com.zhongzhi.dto.administer;
import lombok.Data;
@Data
public class LoginDTO {
private String telephone;
private String accountName;
private String code;
private String password;
}
package com.zhongzhi.dto.college;
import lombok.Data;
@Data
public class GetCollegesListDTO {
private Integer pageSize;
private Integer pageNum;
private String name;
}
package com.zhongzhi.dto.match;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.model.MatchScheduleDO;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class MatchDictDTO extends MatchDictDO {
/**
* 时间安排
*/
private List<MatchScheduleDO> schedule;
}
package com.zhongzhi.dto.member;
import lombok.Data;
import java.util.List;
@Data
public class CreateProjectMemberDTO {
private Long id;
/**
* 姓名
*/
private String name;
/**
* 就读学校
*/
private String school;
/**
* 年级
*/
private String grade;
private String className;
/**
* 身份证
*/
private String idCard;
/**
* 就读专业
*/
private String major;
/**
* 性别
*/
private String sex;
/**
* 学籍号
*/
private String studentNo;
/**
* 手机号
*/
private String telephone;
/**
* 邮箱
*/
private String email;
/**
* 团队成员
*/
private List<TeamMemberDTO> teamMember;
/**
* 指导老师
*/
private List<MentorDTO> mentor;
/**
* 项目组别
*/
private String projectGroup;
/**
* 项目类型
*/
private String projectType;
private String fiveYears;
}
package com.zhongzhi.dto.member;
import lombok.Data;
@Data
public class MentorDTO {
private Long id;
/**
* 姓名
*/
private String teacherName;
/**
* 工作单位
*/
private String company;
/**
* 职称 [弃用]
*/
private String positionTitle;
/**
* 职务
*/
private String position;
/**
* 手机号
*/
private String telephone;
/**
* 身份证号
*/
private String idCard;
}
package com.zhongzhi.dto.member;
import lombok.Data;
@Data
public class TeamMemberDTO {
private Long id;
/**
* 姓名
*/
private String teamName;
/**
* 就读学校
*/
private String school;
/**
* 年级
*/
private String grade;
private String className;
/**
* 就读专业
*/
private String major;
/**
* 性别
*/
private String sex;
/**
* 身份证号
*/
private String idCard;
/**
* 学籍号
*/
private String studentNo;
/**
* 手机号
*/
private String teamTelephone;
}
package com.zhongzhi.dto.project;
import lombok.Data;
import java.util.List;
@Data
public class ApproveDTO {
private List<Long> ids;
private Long id;
private String projectStatus;
private String projectSchedule;
}
package com.zhongzhi.dto.project;
import com.zhongzhi.model.*;
import lombok.Data;
import java.util.List;
@Data
public class CreateVocationalProjectDTO extends ProjectDO {
private Long id;
/**
* 股权结构
*/
private List<ProjectOwnershipStructureDO> ownership;
/**
* 专利
*/
private List<ProjectPatentDO> patent;
/**
* 论文
*/
private List<ProjectPaperDO> paper;
/**
* 奖项
*/
private List<ProjectAwardDO> award;
/**
* 软件著作权
*/
private List<ProjectCopyrightDO> copyright;
/**
* 作品著作
*/
private List<ProjectWorksDO> works;
/**
* 商标
*/
private List<ProjectTrademarkDO> trademark;
}
package com.zhongzhi.dto.project;
import lombok.Data;
@Data
public class DataOverviewDTO {
private String projectGroup;
private String projectType;
private Long matchId;
}
package com.zhongzhi.dto.project;
import com.zhongzhi.common.utils.ExcelColumn;
import lombok.Data;
@Data
public class ExportProjectDTO {
// @ExcelColumn(col = 1, value = "届数")
// private String matchName;
@ExcelColumn(col = 1, value = "项目名称")
private String projectName;
@ExcelColumn(col = 2, value = "赛道")
private String projectTrack;
@ExcelColumn(col = 3, value = "负责人")
private String name;
@ExcelColumn(col = 4, value = "学院")
private String college;
@ExcelColumn(col = 5, value = "年级")
private String grade;
@ExcelColumn(col = 6, value = "班级")
private String className;
@ExcelColumn(col = 7, value = "学号")
private String studyNo;
@ExcelColumn(col = 8, value = "手机号")
private String telephone;
@ExcelColumn(col = 9, value = "团队成员")
private String teamMembers;
@ExcelColumn(col = 10, value = "指导老师")
private String teachers;
@ExcelColumn(col = 11, value = "项目状态")
private String projectStatus;
// @ExcelColumn(col = 3, value = "组别")
// private String projectGroup;
//
//
// @ExcelColumn(col = 5, value = "单元赛道")
// private String unitTrack;
//
// @ExcelColumn(col = 8, value = "专业")
// private String major;
}
package com.zhongzhi.dto.project;
import lombok.Data;
import java.util.List;
@Data
public class ProjectCollegeListDTO {
private List<Long> ids;
private String projectSchedule;
private String projectGroup;
private Long matchId;
private Long userId;
private String projectProgress;
}
package com.zhongzhi.dto.project;
import lombok.Data;
@Data
public class ProjectListPageDTO {
private String projectSchedule;
private String projectStatus;
private String projectGroup;
private String projectTrack;
private String itemField;
private String name;
private Long matchId;
private String projectProgress;
private Integer pageNo;
private Integer pageSize;
private Long userId;
}
package com.zhongzhi.dto.project;
import com.zhongzhi.vo.ExcelFieldVO;
import lombok.Data;
import java.util.List;
@Data
public class ReviewListDTO {
private List<Long> id;
private List<ExcelFieldVO> fields;
private Long matchId;
private String projectGroup;
private String projectName;
private String projectReview;
private String projectStatus;
private Integer pageNo;
private Integer pageSize;
private Integer type;
private String projectAssigned;
private String projectSchedule;
private String projectProgress;
private Long userId;
}
package com.zhongzhi.dto.project;
import lombok.Data;
@Data
public class ReviewVocationalNumDTO {
private Long matchId;
private String projectGroup;
private String projectStatus;
private Long projectJudgeId;
private String projectSchedule;
}
package com.zhongzhi.dto.project;
import lombok.Data;
@Data
public class SeedTrackProjectNumDTO {
private Long matchId;
private String projectGroup;
private String projectProgress;
private Long userId;
}
package com.zhongzhi.dto.student;
import lombok.Data;
@Data
public class LoginDTO {
private String telephone;
private String verifyCode;
}
package com.zhongzhi.dto.student;
import com.zhongzhi.model.StudentDO;
import lombok.Data;
@Data
public class RegisterDTO extends StudentDO {
private String name;
private String education;
private String code;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 中心管理账户表
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("administer")
public class AdministerDO extends BaseModel {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 手机号
*/
private String telephone;
/**
* 成员名称
*/
private String username;
/**
* 头像
*/
private String avatar;
/**
* 角色
*/
private String role;
private String college;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
* 赛事年份管理
* </p>
*
* @author DengMin
* @since 2021-05-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("match_dict")
public class MatchDictDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛事名称
*/
private String matchName;
/**
* 赛事年份
*/
private String matchDate;
/**
* 月份
*/
private String month;
/**
* 报名开始时间
*/
private String startTime;
/**
* 报名结束时间
*/
private String endTime;
/**
* 状态(1:启动,0:暂停)
*/
private Integer status;
/**
* 赛事类型
*/
private String matchType;
/***
* 截止时间
*/
private String deadline;
private String registrationStart;
private String registrationDeadline;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 时间安排
* </p>
*
* @author DengMin
* @since 2021-05-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("match_schedule")
public class MatchScheduleDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛事年份ID
*/
private Long matchId;
/**
* 时间安排
*/
private String scheduleTime;
/**
* 说明
*/
private String explains;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 项目表
* </p>
*
* @author DengMin
* @since 2021-05-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project")
public class ProjectDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 申请人ID
*/
private Long proposerId;
/**
* 项目名称
*/
private String projectName;
/**
* 项目概述
*/
private String projectIntro;
/**
* 参赛赛道
*/
private String projectTrack;
/**
* 单元赛道
*/
private String unitTrack;
/**
* 组别
*/
private String projectGroup;
/**
* 赛事年份
*/
private Long matchId;
/**
* 公司名称
*/
private String companyName;
/**
* 注册时间
*/
private String registerDate;
/**
* 注册地址
*/
private String registerAddress;
/**
* 注册资金
*/
private String registerFund;
/**
* 营业执照
*/
private String businessLicense;
/**
* 附件地址
*/
private String projectAttachment;
/**
* 附件文件名
*/
private String projectAttachmentName;
private String projectAttachmentType;
/**
* 项目PPT
*/
private String projectPptUrl;
/**
* 项目PPT类型
*/
private String projectPptType;
/**
* 项目PPT名称
*/
private String projectPptName;
private String identityCertificate;
/**
* 承诺书
*/
private String commitmentLetter;
/**
* 参赛证明书
*/
private String participationCertificate;
/**
* 项目进展
*/
private String projectProgress;
/**
* 项目阶段
*/
private String projectStage;
/**
* 项目状态
*/
private String projectStatus;
/**
* 项目进度
*/
private String projectSchedule;
/**
* 项目类型
*/
private String projectType;
/**
* 评审状态
*/
private String projectReview;
/**
* 分配状态
*/
private String projectAssigned;
private Integer editStatus;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 项目评审员
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_judge")
public class ProjectJudgeDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 姓名
*/
private String username;
private String accountName;
/**
* 密码
*/
private String password;
/**
* 手机号
*/
private String telephone;
/**
* 职务
*/
private String position;
/**
* 单位
*/
private String unit;
/**
* 身份证号
*/
private String idCard;
/**
* 开户行
*/
private String bankName;
/**
* 银行卡号
*/
private String bankCard;
/**
* 状态
*/
private Integer status;
private Integer passwordFree;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 项目团队信息表
* </p>
*
* @author DengMin
* @since 2021-05-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_member")
public class ProjectMemberDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 姓名
*/
private String name;
/**
* 就读学校
*/
private String school;
/**
* 年级
*/
private String grade;
private String className;
/**
* 身份证
*/
private String idCard;
/**
* 就读专业
*/
private String major;
/**
* 性别
*/
private String sex;
/**
* 学籍号
*/
private String studentNo;
/**
* 工作单位
*/
private String company;
/**
* 职称
*/
private String positionTitle;
/**
* 职务
*/
private String position;
/**
* 手机号
*/
private String telephone;
/**
* 邮箱
*/
private String email;
/**
* 类型(1:团队负责人,2:团队成员,3:指导老师)
*/
private String type;
private String fiveYears;
}
package com.zhongzhi.model;
import com.zhongzhi.model.base.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("student")
public class StudentDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 姓名
*/
private String name;
/**
* 头像
*/
private String avatar;
/**
* 身份证号
*/
private String idCard;
/**
* 手机号
*/
private String telephone;
/**
* 学历
*/
private String education;
/**
* 就读院校
*/
private String college;
/**
* 就读专业
*/
private String major;
/**
* 入学年份
*/
private String enrollmentDate;
/**
* 毕业年份
*/
private String graduateDate;
private String className;
private String grade;
private String studyNo;
}
package com.zhongzhi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.model.AdministerDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.administer.AdministerVO;
/**
* <p>
* 中心管理账户表 服务类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
public interface AdministerService extends IService<AdministerDO> {
AdministerVO login(LoginDTO loginDTO);
IPage getAdministerPage(AdministerPageDTO administerPageDTO);
void updateAdminister(AdministerDO administerDO);
}
package com.zhongzhi.service;
import com.zhongzhi.dto.administer.AdministerTracksDTO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.model.ProjectTrackDO;
import java.util.List;
/**
* <p>
* 赛道管理员映射表 服务类
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
public interface AdministerTrackMappingService extends IService<AdministerTrackMappingDO> {
List<ProjectTrackDO> administerTracks(AdministerTracksDTO administerTracksDTO);
}
package com.zhongzhi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.dto.college.*;
import com.zhongzhi.model.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.college.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* <p>
* 院校字典表 服务类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
public interface CollegesDictService extends IService<CollegesDictDO> {
IPage<GetCollegeInfoVO> getCollegeInfo(GetCollegesListDTO getCollegesListDTO);
CollegesVO login(LoginDTO loginDTO);
IPage getCollegesPage(CollegesPageDTO collegesPageDTO);
void createColleges(CollegesDictDO collegesDictDO);
Map<String, Object> importColleges(MultipartFile file);
void downloadErrorData(DownloadErrorDataDTO downloadErrorDataDTO);
IPage getAwardedList(AwardedListDTO awardedListDTO);
void exportAwardedList(AwardedListDTO awardedListDTO);
void exportCollege();
void updatePwd(UpdatePwdDTO updatePwdDTO);
List<ProjectDO> projects(ProjectDO projectDO);
ProjectMemberDO projectLeader(ProjectMemberDO projectMemberDO);
List<ProjectMemberDO> projectMembers(ProjectMemberDO projectMemberDO);
void addProjectMember(AddProjectMemberDTO addProjectMemberDTO)throws Exception;
void removeProject(AddProjectMemberDTO addProjectMemberDTO)throws Exception;
void addObservations(FinalMatchMemberDO finalMatchMemberDO)throws Exception;
void updateObservations(FinalMatchMemberDO finalMatchMemberDO)throws Exception;
void deleteObservations(FinalMatchMemberDO finalMatchMemberDOO)throws Exception;
List<RegisterMembersVO> registerMembers(RegisterMembersDTO registerMembersDTO);
List<RegisterMembersVO> otherMembers(RegisterMembersDTO registerMembersDTO);
List<RegisterMembersVO> cars(RegisterMembersDTO registerMembersDTO);
DetailVO detail(RegisterMembersDTO registerMembersDTO);
List<SchoolsVO> schools(RegisterMembersDTO registerMembersDTO);
void exportList(FinalMatchMemberDO finalMatchMemberDO);
void addContact(CollegesDictDO collegesDictDO);
void updateAllLoginStatus(LoginStatusDTO loginStatusDTO);
void batchUpdateLoginStatus(LoginStatusDTO loginStatusDTO);
void updateLoginStatus(LoginStatusDTO loginStatusDTO);
}
package com.zhongzhi.service;
import com.zhongzhi.model.MatchCollegePdfDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.project.QueryPdfStatusVO;
/**
* <p>
* 服务类
* </p>
*
* @author DengMin
* @since 2024-06-25
*/
public interface MatchCollegePdfService extends IService<MatchCollegePdfDO> {
void uploadPdf(MatchCollegePdfDO matchCollegePdfDO)throws Exception;
void dropPdf(MatchCollegePdfDO matchCollegePdfDO)throws Exception;
MatchCollegePdfDO queryPdfStatus(MatchCollegePdfDO matchCollegePdfDO);
}
package com.zhongzhi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.model.MatchDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 赛事年份管理 服务类
* </p>
*
* @author DengMin
* @since 2021-05-17
*/
public interface MatchDictService extends IService<MatchDictDO> {
MatchDictDO getMainTrackMatch();
MatchDictDO getSeedTrackMatch();
void updateMatch(MatchDictDTO matchDictDTO);
IPage getSeedTrackMatchPage(SelectListPageDTO selectListPageDTO);
void createMatch(MatchDictDTO matchDictDTO);
List<MatchDictDO> getMatch();
List<MatchDictDO> getList(String projectType, String projectGroup);
IPage getVocationalPage(SelectListPageDTO selectListPageDTO);
MatchDictDO getVocationalMatch();
void updateMatchDate(MatchDictDO matchDictDO);
MatchDictDO getMatch(MatchDictDO matchDictDO);
MatchDictDO getMatchByYearMonth(MatchDictDO matchDictDO);
}
package com.zhongzhi.service;
import com.zhongzhi.model.PermissionsDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.permission.PermissionVO;
import java.util.List;
/**
* <p>
* 权限表 服务类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
public interface PermissionsService extends IService<PermissionsDO> {
List<PermissionVO> getPermissionById(Long id);
List<PermissionVO> allPermissions();
}
package com.zhongzhi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.member.CreateProjectMemberDTO;
import com.zhongzhi.dto.project.*;
import com.zhongzhi.dto.review.ProjectReviewPageDTO;
import com.zhongzhi.dto.review.ProjectReviewScoreDTO;
import com.zhongzhi.dto.review.SubmittedDTO;
import com.zhongzhi.model.ProjectDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhongzhi.vo.ExcelFieldVO;
import com.zhongzhi.vo.member.ProjectMemberVO;
import com.zhongzhi.vo.project.*;
import java.util.List;
/**
* <p>
* 项目表 服务类
* </p>
*
* @author DengMin
* @since 2021-05-11
*/
public interface ProjectService extends IService<ProjectDO> {
// IPage getMainTrackProject(ProjectListPageDTO projectListPageDTO);
void createMainTrackProject(CreateMainTrackProjectDTO createMainTrackProjectDTO);
void createProjectMember(CreateProjectMemberDTO createProjectMemberDTO);
void withdrawn(ProjectDO projectDO)throws Exception;
// IPage getSeedTrackProject(ProjectListPageDTO projectListPageDTO);
void createSeedTrackProject(CreateSeedTrackProjectDTO createSeedTrackProjectDTO);
ProjectInfoVO getMainTrackProjectById();
ProjectMemberVO getProjectMemberById();
ProjectInfoVO getSeedTrackProjectById();
ProjectInfoVO getCulturalProjectById();
IPage getMainTrackProjectPage(ProjectListPageDTO projectListPageDTO);
MainTrackProjectDetailVO getMainTrackProjectDetail(Long id);
// IPage getSeedTrackProjectPage(ProjectListPageDTO projectListPageDTO);
// IPage getSeedTrackProjectList(ProjectListPageDTO projectListPageDTO);
void downloadPDF(String projectGroup);
SeedTrackProjectDetailVO getSeedTrackProjectDetail(Long id);
void pass(ApproveDTO approveDTO);
void batchPass(ApproveDTO approveDTO);
void weedOut(ApproveDTO approveDTO);
void batchWeedOut(ApproveDTO approveDTO);
void exportProjectList(ProjectCollegeListDTO projectCollegeListDTO);
void uploadPrintAttachment(PrintAttachmentDTO printAttachmentDTO)throws Exception;
IPage getReviewList(ReviewListDTO reviewListDTO);
ProjectNumVO getProjectReviewNum(ReviewListDTO reviewListDTO);
ProjectNumVO getProjectReviewAssignNum(ReviewListDTO reviewListDTO);
List<ExcelFieldVO> getExportProjectField();
List<ExcelFieldVO> getExportProjectReviewField();
IPage getProjectReviewPage(ProjectReviewPageDTO projectReviewPageDTO);
void setScore(ProjectReviewScoreDTO projectReviewScoreDTO);
void submitted(ProjectReviewScoreDTO projectReviewScoreDTO);
ProjectMemberVO getProjectMember();
ProjectDataOverview getCollegeDataOverview(DataOverviewDTO dataOverviewDTO);
// ProjectDataOverview getSeedTrackDataOverview();
// ProjectDataOverview getMainTrackDataOverview();
void exportProjectReview(ReviewListDTO reviewListDTO);
void exportProjectNew(ReviewListDTO reviewListDTO);
ProjectNumVO getReviewProjectNum(ReviewListDTO reviewListDTO);
void exportCollegeProject(CollegeProjectDTO collegeProjectDTO);
void getProjectByStudentId(StudentProjectDTO studentProjectDTO);
void rollback(ProjectDO projectDO);
SeedTrackProjectNumVO getSeedTrackProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO);
void exportProjectCollegeList(ProjectCollegeListDTO projectCollegeListDTO);
List<ProjectDO> getList(Long matchId, String name, String projectGroup);
SeedTrackProjectDetailVO getProjectById(Long id);
void exportProjectAll(ProjectCollegeListDTO projectCollegeListDTO);
void exportProjectAllProgress(ProjectCollegeListDTO projectCollegeListDTO);
void createVocationalProject(CreateVocationalProjectDTO createVocationalProjectDTO)throws Exception;
void updateVocationalProject(CreateVocationalProjectDTO createVocationalProjectDTO);
VocationalProjectInfoVO getVocationalProjectById();
void createVocationalMember(CreateProjectMemberDTO createProjectMemberDTO);
void confirm(ProjectDO projectDO);
void updateVocationalMember(CreateProjectMemberDTO createProjectMemberDTO);
ProjectDataOverview getVocationalDataOverview(DataOverviewDTO dataOverviewDTO);
IPage getVocationalProject(ProjectListPageDTO projectListPageDTO);
IPage getVocationalReviewList(ReviewListDTO reviewListDTO);
SeedTrackProjectDetailVO getVocationalProjectDetail(Long id);
IPage getVocationalProjectPage(ProjectListPageDTO projectListPageDTO);
IPage getVocationalProjectList(ProjectListPageDTO projectListPageDTO);
IPage getVocationalProjectReviewPage(ProjectReviewPageDTO projectReviewPageDTO);
// void importVocationalProject(ImportVocationalProjectDTO importVocationalProjectDTO);
VocationalNumVO getVocationalProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO);
VocationalReviewNumVO getVocationalReviewNum(ReviewListDTO reviewListDTO);
void exportProjectById(ReviewListDTO reviewListDTO);
VocationalProjectNum getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO);
void batchUpdateEditStatus(EditStatusDTO editStatusDTO);
void updateEditStatus(EditStatusDTO editStatusDTO);
void updateAllEditStatus(EditStatusDTO editStatusDTO);
ProjectAssignNumVO getVocationalAssignNum(ReviewListDTO reviewListDTO);
void importProjectByGroup(ImportVocationalProjectDTO importVocationalProjectDTO);
void exportProjectByGroup(ImportVocationalProjectDTO importVocationalProjectDTO);
// ProjectDataOverview getCollegeVocationalDataOverview();
}
package com.zhongzhi.service;
import com.zhongzhi.model.ProjectTrackDO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 赛道字典表 服务类
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
public interface ProjectTrackService extends IService<ProjectTrackDO> {
}
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.constant.SmsCode;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.JwtUtil;
import com.zhongzhi.dao.AdministerPermissionDAO;
import com.zhongzhi.dao.AdministerTrackMappingDAO;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.model.*;
import com.zhongzhi.dao.AdministerDAO;
import com.zhongzhi.service.AdministerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.service.PermissionsService;
import com.zhongzhi.service.SmsCodeService;
import com.zhongzhi.vo.administer.AdministerVO;
import com.zhongzhi.vo.administer.GetAdministerPageVO;
import com.zhongzhi.vo.permission.PermissionVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 中心管理账户表 服务实现类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Service
public class AdministerServiceImpl extends ServiceImpl<AdministerDAO, AdministerDO> implements AdministerService {
@Autowired
private SmsCodeService smsCodeService;
@Autowired
private PermissionsService permissionsService;
@Autowired
private AdministerTrackMappingDAO administerTrackMappingDAO;
@Autowired
private AdministerPermissionDAO administerPermissionDAO;
@Override
public AdministerVO login(LoginDTO loginDTO) {
AdministerVO administerVO = new AdministerVO();
SmsCodeDO smsCodeDO = smsCodeService.getOneByTelePhone(loginDTO.getTelephone(), SmsCode.login, SmsCode.center);
if (smsCodeDO == null) {
throw new HttpException(10025);
}
if (!smsCodeDO.getCode().equals(loginDTO.getCode())) {
throw new HttpException(10021);
}
smsCodeService.removeById(smsCodeDO.getId());
AdministerDO administerDO = this.baseMapper.selectOne(new QueryWrapper<AdministerDO>()
.lambda()
.eq(AdministerDO::getTelephone, loginDTO.getTelephone()));
if (administerDO == null) {
throw new HttpException(10060);
}
BeanUtils.copyProperties(administerDO, administerVO);
String token = JwtUtil.generateToken(administerDO.getId(), Platform.center);
administerVO.setToken(token);
administerVO.setId(administerDO.getId());
List<PermissionVO> list = permissionsService.getPermissionById(administerDO.getId());
List<PermissionVO> treeList = new ArrayList();
list.forEach(permissions -> {
if (permissions.getParentId() == null) {
treeList.add(permissions);
}
list.forEach(p -> {
if (p.getParentId() != null) {
if (p.getParentId().equals(permissions.getId())) {
if (permissions.getChildNodeList() == null) {
permissions.setChildNodeList(new ArrayList<>());
}
permissions.getChildNodeList().add(p);
}
}
});
});
administerVO.setPermission(treeList);
return administerVO;
}
@Override
public IPage getAdministerPage(AdministerPageDTO administerPageDTO) {
Page page = new Page(administerPageDTO.getPageNo(), administerPageDTO.getPageSize());
IPage<GetAdministerPageVO> page1 = this.baseMapper.getAdministerPage(page,administerPageDTO.getListItem(),administerPageDTO.getUsername());
List<GetAdministerPageVO> records = page1.getRecords();
for (GetAdministerPageVO getAdministerPageVO : records){
List<AdministerTrackMappingDO> administerTrackMappingDOS = administerTrackMappingDAO.selectList(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,getAdministerPageVO.getId()));
getAdministerPageVO.setAdministerTrackMappingDOS(administerTrackMappingDOS);
List<PermissionVO> list = permissionsService.getPermissionById(getAdministerPageVO.getId());
List<PermissionVO> treeList = new ArrayList();
list.forEach(permissions -> {
if (permissions.getParentId() == null) {
treeList.add(permissions);
}
list.forEach(p -> {
if (p.getParentId() != null) {
if (p.getParentId().equals(permissions.getId())) {
if (permissions.getChildNodeList() == null) {
permissions.setChildNodeList(new ArrayList<>());
}
permissions.getChildNodeList().add(p);
}
}
});
});
getAdministerPageVO.setAdministerPermissionDOS(treeList);
}
return page1;
}
@Override
public void updateAdminister(AdministerDO administerDO){
this.baseMapper.updateAdminister(administerDO);
}
}
package com.zhongzhi.service.impl;
import com.zhongzhi.dto.administer.AdministerTracksDTO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.zhongzhi.dao.AdministerTrackMappingDAO;
import com.zhongzhi.model.ProjectTrackDO;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 赛道管理员映射表 服务实现类
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@Service
public class AdministerTrackMappingServiceImpl extends ServiceImpl<AdministerTrackMappingDAO, AdministerTrackMappingDO> implements AdministerTrackMappingService {
@Override
public List<ProjectTrackDO> administerTracks(AdministerTracksDTO administerTracksDTO){
return this.baseMapper.administerTracks(administerTracksDTO.getUserId());
}
}
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.Localstorage;
import com.zhongzhi.dao.MatchCollegePdfMapper;
import com.zhongzhi.dao.MatchDictDAO;
import com.zhongzhi.model.CollegesDictDO;
import com.zhongzhi.model.MatchCollegePdfDO;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.service.MatchCollegePdfService;
import com.zhongzhi.vo.project.QueryPdfStatusVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* <p>
* 服务实现类
* </p>
*
* @author DengMin
* @since 2024-06-25
*/
@Service
public class MatchCollegePdfServiceImpl extends ServiceImpl<MatchCollegePdfMapper, MatchCollegePdfDO> implements MatchCollegePdfService {
@Autowired
private MatchDictDAO matchDictDAO;
public void uploadPdf(MatchCollegePdfDO matchCollegePdfDO)throws Exception {
MatchDictDO matchDictDO = matchDictDAO.selectById(matchCollegePdfDO.getMatchId());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//时间范围 当前时间在范围内
if (null != matchDictDO.getStartTime() && null != matchDictDO.getEndTime() && (simpleDateFormat.parse(matchDictDO.getStartTime()).after(new Date()) || simpleDateFormat.parse(matchDictDO.getEndTime()).before(new Date(new Date().getTime() - 24 * 60 * 60 * 1000)))) {
throw new HttpException(10018);
}
CollegesDictDO collegesDictDO = (CollegesDictDO) Localstorage.getUser();
this.baseMapper.delete(new QueryWrapper<MatchCollegePdfDO>()
.lambda()
.eq(MatchCollegePdfDO::getMatchId, matchCollegePdfDO.getMatchId())
.eq(MatchCollegePdfDO::getCollegeId, collegesDictDO.getId()));
matchCollegePdfDO.setCollegeId(collegesDictDO.getId());
this.baseMapper.insert(matchCollegePdfDO);
}
public void dropPdf(MatchCollegePdfDO matchCollegePdfDO)throws Exception {
MatchDictDO matchDictDO = matchDictDAO.selectById(matchCollegePdfDO.getMatchId());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (null != matchDictDO.getStartTime() && null != matchDictDO.getEndTime() && (simpleDateFormat.parse(matchDictDO.getStartTime()).after(new Date()) ||simpleDateFormat.parse(matchDictDO.getEndTime()).before(new Date(new Date().getTime() - 24 * 60 * 60 * 1000)))) {
throw new HttpException(10018);
}
CollegesDictDO collegesDictDO = (CollegesDictDO) Localstorage.getUser();
this.baseMapper.delete(new QueryWrapper<MatchCollegePdfDO>()
.lambda()
.eq(MatchCollegePdfDO::getCollegeId, collegesDictDO.getId())
.eq(MatchCollegePdfDO::getMatchId, matchCollegePdfDO.getMatchId()));
}
public MatchCollegePdfDO queryPdfStatus(MatchCollegePdfDO matchCollegePdfDO) {
CollegesDictDO collegesDictDO = (CollegesDictDO) Localstorage.getUser();
matchCollegePdfDO = this.baseMapper.selectOne(new QueryWrapper<MatchCollegePdfDO>()
.lambda()
.eq(MatchCollegePdfDO::getCollegeId, collegesDictDO.getId())
.eq(MatchCollegePdfDO::getMatchId, matchCollegePdfDO.getMatchId()));
return matchCollegePdfDO;
}
}
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.DateFormatUtil;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.dao.MatchDictDAO;
import com.zhongzhi.model.MatchScheduleDO;
import com.zhongzhi.service.MatchDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.service.MatchScheduleService;
import com.zhongzhi.vo.match.MatchDictVO;
import org.apache.xmlbeans.impl.regex.Match;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* <p>
* 赛事年份管理 服务实现类
* </p>
*
* @author DengMin
* @since 2021-05-17
*/
@Service
public class MatchDictServiceImpl extends ServiceImpl<MatchDictDAO, MatchDictDO> implements MatchDictService {
@Autowired
private MatchScheduleService matchScheduleService;
@Override
public MatchDictDO getMainTrackMatch() {
return this.baseMapper.selectOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.MAIN_TRACK)
.eq(MatchDictDO::getStatus, 1));
}
@Override
public MatchDictDO getSeedTrackMatch() {
return this.baseMapper.selectOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.SEED_TRACK)
.eq(MatchDictDO::getStatus, 1));
}
@Override
public void updateMatch(MatchDictDTO matchDictDTO) {
MatchDictDO match = this.baseMapper.selectOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getStatus, 1));
if (matchDictDTO.getStatus() != null) {
if (match != null && !match.getId().equals(matchDictDTO.getId())) {
match.setStatus(0);
this.baseMapper.updateById(match);
}
}
MatchDictDO matchDictDO = new MatchDictDO();
BeanUtils.copyProperties(matchDictDTO, matchDictDO);
this.baseMapper.updateById(matchDictDO);
// if (matchDictDTO.getSchedule() != null && matchDictDTO.getSchedule().size() > 0) {
// List<MatchScheduleDO> list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
// .lambda()
// .eq(MatchScheduleDO::getMatchId, matchDictDTO.getId()));
// if (list.size() > 0) {
// for (MatchScheduleDO matchScheduleDO : list) {
// if (matchDictDTO.getSchedule().stream().filter(ms -> ms.getScheduleTime().equals(matchScheduleDO.getScheduleTime()) &&
// ms.getExplains().equals(matchScheduleDO.getExplains())).findAny().isPresent()) {
// continue;
// } else {
// matchScheduleService.removeById(matchScheduleDO.getId());
// }
// }
// }
//
// for (MatchScheduleDO matchScheduleDO : matchDictDTO.getSchedule()) {
// if (list.stream().filter(ms -> ms.getExplains().equals(matchScheduleDO.getExplains()) &&
// ms.getScheduleTime().equals(matchScheduleDO.getScheduleTime())).findAny().isPresent()) {
// MatchScheduleDO matchSchedule = matchScheduleService.getOne(new QueryWrapper<MatchScheduleDO>()
// .lambda()
// .eq(MatchScheduleDO::getMatchId, matchScheduleDO.getMatchId())
// .eq(MatchScheduleDO::getExplains, matchScheduleDO.getExplains())
// .eq(MatchScheduleDO::getScheduleTime, matchScheduleDO.getScheduleTime()));
// if (matchSchedule != null) {
// matchScheduleDO.setId(matchSchedule.getId());
// matchScheduleService.updateById(matchScheduleDO);
// }
// } else {
// matchScheduleDO.setMatchId(matchDictDTO.getId());
// matchScheduleService.save(matchScheduleDO);
// }
// }
// }
}
@Override
public IPage<MatchDictVO> getSeedTrackMatchPage(SelectListPageDTO selectListPageDTO) {
Page page = new Page(selectListPageDTO.getPageNo(), selectListPageDTO.getPageSize());
IPage<MatchDictVO> iPage = this.baseMapper.getSeedTrackMatchPage(page);
for (MatchDictVO record : iPage.getRecords()) {
List<MatchScheduleDO> list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
.lambda()
.eq(MatchScheduleDO::getMatchId, record.getId()));
record.setSchedule(list);
}
return iPage;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void createMatch(MatchDictDTO matchDictDTO) {
// MatchDictDO matchDictDO = new MatchDictDO();
int count = this.baseMapper.selectCount(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchDate,matchDictDTO.getMatchDate())
.eq(MatchDictDO::getMonth,matchDictDTO.getMonth()));
if (count > 0){
throw new HttpException(10032);
}
// BeanUtils.copyProperties(matchDictDTO, matchDictDO);
this.baseMapper.insert(matchDictDTO);
// if (matchDictDTO.getSchedule().size() > 0) {
// for (MatchScheduleDO matchScheduleDO : matchDictDTO.getSchedule()) {
// MatchScheduleDO matchSchedule = new MatchScheduleDO();
// BeanUtils.copyProperties(matchScheduleDO, matchSchedule);
// matchSchedule.setMatchId(matchDictDO.getId());
// matchScheduleService.save(matchSchedule);
// }
// }
}
@Override
public List<MatchDictDO> getMatch() {
return this.baseMapper.selectList(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getStatus, 1));
}
@Override
public MatchDictDO getVocationalMatch() {
return this.baseMapper.selectOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getStatus, 1));
}
public void updateMatchDate(MatchDictDO matchDictDO) {
this.baseMapper.updateById(matchDictDO);
}
public MatchDictDO getMatch(MatchDictDO matchDictDO) {
return this.baseMapper.selectById(matchDictDO.getId());
}
@Override
public List<MatchDictDO> getList(String projectType, String projectGroup) {
return this.baseMapper.getList(projectType, projectGroup);
}
@Override
public IPage getVocationalPage(SelectListPageDTO selectListPageDTO) {
Page page = new Page(selectListPageDTO.getPageNo(), selectListPageDTO.getPageSize());
IPage<MatchDictVO> iPage = this.baseMapper.getSeedTrackMatchPage(page);
for (MatchDictVO record : iPage.getRecords()) {
List<MatchScheduleDO> list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
.lambda()
.eq(MatchScheduleDO::getMatchId, record.getId()));
record.setSchedule(list);
}
return iPage;
}
@Override
public MatchDictDO getMatchByYearMonth(MatchDictDO matchDictDO){
return this.baseMapper.selectOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchDate,matchDictDO.getMatchDate())
.eq(MatchDictDO::getMonth,matchDictDO.getMonth()));
}
}
\ No newline at end of file
package com.zhongzhi.service.impl;
import com.zhongzhi.model.PermissionsDO;
import com.zhongzhi.dao.PermissionsDAO;
import com.zhongzhi.service.PermissionsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.vo.permission.PermissionVO;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 权限表 服务实现类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Service
public class PermissionsServiceImpl extends ServiceImpl<PermissionsDAO, PermissionsDO> implements PermissionsService {
@Override
public List<PermissionVO> getPermissionById(Long id) {
return this.baseMapper.getPermissionById(id);
}
@Override
public List<PermissionVO> allPermissions(){
List<PermissionVO> list = this.getPermissionById(null);
List<PermissionVO> treeList = new ArrayList();
list.forEach(permissions -> {
if (permissions.getParentId() == null) {
treeList.add(permissions);
}
list.forEach(p -> {
if (p.getParentId() != null) {
if (p.getParentId().equals(permissions.getId())) {
if (permissions.getChildNodeList() == null) {
permissions.setChildNodeList(new ArrayList<>());
}
permissions.getChildNodeList().add(p);
}
}
});
});
return treeList;
}
}
package com.zhongzhi.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.constant.SmsCode;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.ExcelUtil;
import com.zhongzhi.common.utils.JwtUtil;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.dto.judge.ProjectJudgePageDTO;
import com.zhongzhi.dto.projectJudge.ImportJudge;
import com.zhongzhi.model.ProjectJudgeDO;
import com.zhongzhi.dao.ProjectJudgeDAO;
import com.zhongzhi.model.ProjectReviewDO;
import com.zhongzhi.model.SmsCodeDO;
import com.zhongzhi.service.ProjectJudgeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.service.ProjectReviewService;
import com.zhongzhi.service.SmsCodeService;
import com.zhongzhi.vo.ExcelFieldVO;
import com.zhongzhi.vo.judge.JudgeInfoVO;
import com.zhongzhi.vo.judge.ProjectJudgePageVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* <p>
* 项目评审员 服务实现类
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@Service
public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeDAO, ProjectJudgeDO> implements ProjectJudgeService {
@Autowired
private ProjectReviewService projectReviewService;
@Autowired
private SmsCodeService smsCodeService;
@Override
public IPage<ProjectJudgePageVO> getProjectJudgePage(ProjectJudgePageDTO projectJudgePageDTO) {
IPage<ProjectJudgePageVO> iPage = this.baseMapper.getProjectJudgePage(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()), projectJudgePageDTO.getUsername(), projectJudgePageDTO.getStatus());
for (ProjectJudgePageVO record : iPage.getRecords()) {
Integer count = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getJudgeId, record.getId()));
record.setAssignedQuantity(count);
}
return iPage;
}
@Override
public void createProjectJudge(ProjectJudgeDO projectJudgeDO) {
Integer count = this.baseMapper.selectCount(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO.getAccountName()));
if (count > 0 ) {
throw new HttpException(10026);
}
this.baseMapper.insert(projectJudgeDO);
}
@Override
public void updateProjectJudge(ProjectJudgeDO projectJudgeDO) {
Integer p = this.baseMapper.selectCount(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO.getAccountName())
.ne(ProjectJudgeDO::getId, projectJudgeDO.getId()));
if (p > 0) {
throw new HttpException(10026);
}
this.baseMapper.updateById(projectJudgeDO);
}
@Override
public JudgeInfoVO login(LoginDTO loginDTO) {
JudgeInfoVO judgeInfoVO = new JudgeInfoVO();
ProjectJudgeDO projectJudgeDO = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName, loginDTO.getAccountName()));
if (null != projectJudgeDO) {
if (null != projectJudgeDO.getPasswordFree() && projectJudgeDO.getPasswordFree() != 1) {
if (!projectJudgeDO.getPassword().equals(loginDTO.getPassword())) {
throw new HttpException(10021);
}
if (projectJudgeDO.getStatus() == 0) {
throw new HttpException(10024);
}
}
}
String token = JwtUtil.generateToken(projectJudgeDO.getId(), SmsCode.review);
judgeInfoVO.setTelephone(projectJudgeDO.getTelephone());
judgeInfoVO.setPosition(projectJudgeDO.getPosition());
judgeInfoVO.setUnit(projectJudgeDO.getUnit());
judgeInfoVO.setUsername(projectJudgeDO.getUsername());
judgeInfoVO.setToken(token);
return judgeInfoVO;
}
@Override
public IPage<ProjectJudgePageVO> projectJudgesAssigned(ProjectJudgePageDTO projectJudgePageDTO) {
IPage<ProjectJudgePageVO> iPage = this.baseMapper.projectJudgesAssigned(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()),
projectJudgePageDTO.getMatchId(), projectJudgePageDTO.getProjectGroup(), projectJudgePageDTO.getProjectSchedule());
if (iPage.getRecords() != null && iPage.getRecords().size() > 0) {
for (ProjectJudgePageVO record : iPage.getRecords()) {
Integer count = projectReviewService.selectCount(record.getId(), projectJudgePageDTO.getMatchId());
record.setAssignedQuantity(count);
Integer notReviewNum = projectReviewService.selectNotReviewCount(record.getId(), projectJudgePageDTO.getMatchId());
record.setNotReviewedNum(notReviewNum);
}
}
return iPage;
}
@Override
public void importJudge(MultipartFile file) {
List<ImportJudge> list = ExcelUtil.readExcel(ImportJudge.class, file);
if (list != null) {
for (ImportJudge importJudge : list) {
ProjectJudgeDO projectJudgeDO = new ProjectJudgeDO();
BeanUtils.copyProperties(importJudge, projectJudgeDO);
this.baseMapper.insert(projectJudgeDO);
}
}
}
@Override
public void downloadTemplate() {
List<ExcelFieldVO> list = ExcelUtil.getField(ImportJudge.class);
ExcelUtil.writeExcel(list, new ArrayList<>());
}
@Override
public void exportProjectJudge() {
List<ExcelFieldVO> field = ExcelUtil.getField(ImportJudge.class);
List<ProjectJudgeDO> list = this.baseMapper.selectList(new QueryWrapper<>());
List<Map> data = new ArrayList<>();
if (list != null && list.size() > 0) {
for (ProjectJudgeDO projectJudgeDO : list) {
data.add(JSON.parseObject(JSON.toJSONString(projectJudgeDO), Map.class));
}
}
ExcelUtil.writeExcel(field, data);
}
}
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.utils.DateFormatUtil;
import com.zhongzhi.dto.period.ProjectReviewPeriodDTO;
import com.zhongzhi.model.ProjectReviewPeriodDO;
import com.zhongzhi.dao.ProjectReviewPeriodMapper;
import com.zhongzhi.service.ProjectReviewPeriodService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.vo.projectReviewPeriod.ProjectReviewPeriodVO;
import org.springframework.stereotype.Service;
/**
* <p>
* 评审时段 服务实现类
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
@Service
public class ProjectReviewPeriodServiceImpl extends ServiceImpl<ProjectReviewPeriodMapper, ProjectReviewPeriodDO> implements ProjectReviewPeriodService {
@Override
public ProjectReviewPeriodVO getProjectReviewPeriod(ProjectReviewPeriodDTO projectReviewPeriodDTO) {
ProjectReviewPeriodVO projectReviewPeriodVO = new ProjectReviewPeriodVO();
ProjectReviewPeriodDO projectReviewPeriodDO = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectReviewPeriodDTO.getMatchId()));
if (projectReviewPeriodDO != null) {
projectReviewPeriodVO.setId(projectReviewPeriodDO.getId());
if (null != projectReviewPeriodDO.getStartTime()){
projectReviewPeriodVO.setStartTime(DateFormatUtil.format(projectReviewPeriodDO.getStartTime(), DateFormatUtil.FMT_sdf14_L));
}
if (null != projectReviewPeriodDO.getEndTime()){
projectReviewPeriodVO.setEndTime(DateFormatUtil.format(projectReviewPeriodDO.getEndTime(), DateFormatUtil.FMT_sdf14_L));
}
}
return projectReviewPeriodVO;
}
@Override
public void updateProjectReviewPeriod(ProjectReviewPeriodDO projectReviewPeriodDO) {
ProjectReviewPeriodDO projectReviewPeriod = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectReviewPeriodDO.getMatchId()));
if (projectReviewPeriod != null) {
projectReviewPeriodDO.setId(projectReviewPeriod.getId());
this.baseMapper.updateById(projectReviewPeriodDO);
} else {
this.baseMapper.insert(projectReviewPeriodDO);
}
}
}
This diff could not be displayed because it is too large.
package com.zhongzhi.service.impl;
import com.zhongzhi.model.ProjectTrackDO;
import com.zhongzhi.dao.ProjectTrackDAO;
import com.zhongzhi.service.ProjectTrackService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 赛道字典表 服务实现类
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@Service
public class ProjectTrackServiceImpl extends ServiceImpl<ProjectTrackDAO, ProjectTrackDO> implements ProjectTrackService {
}
package com.zhongzhi.service.impl;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.SmsCode;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.AliyunSmsUtil;
import com.zhongzhi.common.utils.RandomUtil;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.CollegesDictDO;
import com.zhongzhi.model.ProjectJudgeDO;
import com.zhongzhi.model.SmsCodeDO;
import com.zhongzhi.dao.SmsCodeDAO;
import com.zhongzhi.model.StudentDO;
import com.zhongzhi.service.AdministerService;
import com.zhongzhi.service.CollegesDictService;
import com.zhongzhi.service.ProjectJudgeService;
import com.zhongzhi.service.SmsCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* <p>
* 短信验证码 服务实现类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Service
public class SmsCodeServiceImpl extends ServiceImpl<SmsCodeDAO, SmsCodeDO> implements SmsCodeService {
@Autowired
private AliyunSmsUtil aliyunSmsUtil;
@Autowired
private StudentService studentService;
@Autowired
private AdministerService administerService;
@Autowired
private ProjectJudgeService projectJudgeService;
@Autowired
private CollegesDictService collegesDictService;
@Override
public void sendRegisterCode(SmsCodeDO smsCodeDO) {
StudentDO studentDO = studentService.getOne(new QueryWrapper<StudentDO>()
.lambda()
.eq(StudentDO::getTelephone, smsCodeDO.getTelephone()));
if (studentDO != null) {
throw new HttpException(10020);
}
int code = RandomUtil.getCode();
SendSmsResponse sendSmsResponse = aliyunSmsUtil.send(smsCodeDO.getTelephone(), code);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
SmsCodeDO smsCode = this.baseMapper.selectOne(new QueryWrapper<SmsCodeDO>()
.lambda()
.eq(SmsCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (smsCode != null) {
this.baseMapper.deleteById(smsCode.getId());
}
smsCodeDO.setCode(String.valueOf(code));
smsCodeDO.setPlatform(SmsCode.student);
smsCodeDO.setType(SmsCode.register);
this.baseMapper.insert(smsCodeDO);
} else {
throw new HttpException(10011);
}
}
@Override
public void sendStudentLoginCode(SmsCodeDO smsCodeDO) {
StudentDO studentDO = studentService.getOne(new QueryWrapper<StudentDO>()
.lambda()
.eq(StudentDO::getTelephone, smsCodeDO.getTelephone()));
if (studentDO == null) {
throw new HttpException(10024);
}
// CollegesDictDO collegesDictDO = collegesDictService.getOne(new QueryWrapper<CollegesDictDO>()
// .lambda()
// .eq(CollegesDictDO::getName, studentDO.getCollege()));
// if (collegesDictDO.getLoginStatus() == 0) {
// throw new HttpException(10067);
// }
int code = RandomUtil.getCode();
SendSmsResponse sendSmsResponse = aliyunSmsUtil.send(smsCodeDO.getTelephone(), code);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
SmsCodeDO smsCode = this.baseMapper.selectOne(new QueryWrapper<SmsCodeDO>()
.lambda()
.eq(SmsCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (smsCode != null) {
this.baseMapper.deleteById(smsCode.getId());
}
smsCodeDO.setCode(String.valueOf(code));
smsCodeDO.setPlatform(SmsCode.student);
smsCodeDO.setType(SmsCode.login);
this.baseMapper.insert(smsCodeDO);
} else {
throw new HttpException(10011);
}
}
@Override
public SmsCodeDO getOneByTelePhone(String telephone, String type, String platform) {
return this.baseMapper.getOneByTelePhone(telephone, type, platform);
}
@Override
public void sendAdministerLoginCode(AdministerDO administerDO) {
AdministerDO administer = administerService.getOne(new QueryWrapper<AdministerDO>()
.lambda()
.eq(AdministerDO::getTelephone, administerDO.getTelephone()));
if (administer == null) {
throw new HttpException(10060);
}
int code = RandomUtil.getCode();
SendSmsResponse sendSmsResponse = aliyunSmsUtil.send(administerDO.getTelephone(), code);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
SmsCodeDO smsCode = this.baseMapper.selectOne(new QueryWrapper<SmsCodeDO>()
.lambda()
.eq(SmsCodeDO::getTelephone, administerDO.getTelephone()));
if (smsCode != null) {
this.baseMapper.deleteById(smsCode.getId());
}
SmsCodeDO smsCodeDO = new SmsCodeDO();
smsCodeDO.setTelephone(administerDO.getTelephone());
smsCodeDO.setCode(String.valueOf(code));
smsCodeDO.setPlatform(SmsCode.center);
smsCodeDO.setType(SmsCode.login);
this.baseMapper.insert(smsCodeDO);
} else {
throw new HttpException(10011);
}
}
@Override
public void sendJudgeLoginCode(SmsCodeDO smsCodeDO) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getTelephone, smsCodeDO.getTelephone()));
if (projectJudgeDO == null) {
throw new HttpException(10060);
}
if (projectJudgeDO.getPasswordFree() == null || projectJudgeDO.getPasswordFree() != 1) {
int code = RandomUtil.getCode();
SendSmsResponse sendSmsResponse = aliyunSmsUtil.send(smsCodeDO.getTelephone(), code);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
SmsCodeDO smsCode = this.baseMapper.selectOne(new QueryWrapper<SmsCodeDO>()
.lambda()
.eq(SmsCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (smsCode != null) {
this.baseMapper.deleteById(smsCode.getId());
}
SmsCodeDO sc = new SmsCodeDO();
sc.setTelephone(smsCodeDO.getTelephone());
sc.setCode(String.valueOf(code));
sc.setPlatform(SmsCode.review);
sc.setType(SmsCode.login);
this.baseMapper.insert(sc);
} else {
throw new HttpException(10011);
}
}
}
}
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Code;
import com.zhongzhi.common.constant.SmsCode;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.JwtUtil;
import com.zhongzhi.common.utils.Localstorage;
import com.zhongzhi.dto.student.LoginDTO;
import com.zhongzhi.dto.student.RegisterDTO;
import com.zhongzhi.model.CollegesDictDO;
import com.zhongzhi.model.SmsCodeDO;
import com.zhongzhi.model.StudentDO;
import com.zhongzhi.dao.StudentDAO;
import com.zhongzhi.service.CollegesDictService;
import com.zhongzhi.service.SmsCodeService;
import com.zhongzhi.service.StudentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.vo.student.StudentInfoVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Service
public class StudentServiceImpl extends ServiceImpl<StudentDAO, StudentDO> implements StudentService {
@Autowired
private SmsCodeService smsCodeService;
@Override
public StudentInfoVO register(RegisterDTO registerDTO) {
StudentInfoVO studentInfoVO = new StudentInfoVO();
SmsCodeDO smsCodeDO = smsCodeService.getOneByTelePhone(registerDTO.getTelephone(), SmsCode.register, SmsCode.student);
if (smsCodeDO == null) {
throw new HttpException(10025);
}
if (!smsCodeDO.getCode().equals(registerDTO.getCode())) {
throw new HttpException(10021);
}
smsCodeService.removeById(smsCodeDO.getId());
if (!registerDTO.getTelephone().equals(smsCodeDO.getTelephone())) {
throw new HttpException(10022);
}
StudentDO telephone = this.baseMapper.selectOne(new QueryWrapper<StudentDO>()
.lambda()
.eq(StudentDO::getTelephone, registerDTO.getTelephone()));
if (telephone != null) {
throw new HttpException(10020);
}
Integer count = this.baseMapper.selectCount(new QueryWrapper<StudentDO>()
.lambda()
.eq(StudentDO::getIdCard, registerDTO.getIdCard()));
if (count > 0) {
throw new HttpException(10023);
}
StudentDO student = new StudentDO();
BeanUtils.copyProperties(registerDTO, student);
this.baseMapper.insert(student);
String token = JwtUtil.generateToken(student.getId(), SmsCode.student);
BeanUtils.copyProperties(student, studentInfoVO);
studentInfoVO.setToken(token);
return studentInfoVO;
}
@Override
public StudentInfoVO login(LoginDTO loginDTO) {
StudentInfoVO studentInfoVO = new StudentInfoVO();
SmsCodeDO smsCodeDO = smsCodeService.getOneByTelePhone(loginDTO.getTelephone(), SmsCode.login, SmsCode.student);
if (smsCodeDO == null) {
throw new HttpException(10025);
}
if (!smsCodeDO.getCode().equals(loginDTO.getVerifyCode())) {
throw new HttpException(10021);
}
smsCodeService.removeById(smsCodeDO.getId());
StudentDO studentDO = this.baseMapper.selectOne(new QueryWrapper<StudentDO>()
.lambda()
.eq(StudentDO::getTelephone, loginDTO.getTelephone()));
if (studentDO == null) {
throw new HttpException(10024);
}
String token = JwtUtil.generateToken(studentDO.getId(), SmsCode.student);
BeanUtils.copyProperties(studentDO, studentInfoVO);
studentInfoVO.setToken(token);
return studentInfoVO;
}
@Override
public void updateStudentInfo(StudentDO studentDO) {
StudentDO student = (StudentDO) Localstorage.getUser();
if (studentDO == null) {
throw new HttpException(Code.TOKEN_EXPIRED.getCode(), Code.TOKEN_EXPIRED.getMessage());
}
studentDO.setId(student.getId());
this.baseMapper.updateById(studentDO);
}
}
package com.zhongzhi.vo.administer;
import com.zhongzhi.vo.permission.PermissionVO;
import lombok.Data;
import java.util.List;
@Data
public class AdministerVO {
private Long id;
private String token;
private String username;
private String avatar;
private String telephone;
private String role;
private List<PermissionVO> permission;
}
package com.zhongzhi.vo.administer;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.AdministerPermissionDO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.zhongzhi.vo.permission.PermissionVO;
import lombok.Data;
import java.util.List;
@Data
public class GetAdministerPageVO extends AdministerDO {
private List<AdministerTrackMappingDO> administerTrackMappingDOS;
private List<PermissionVO> administerPermissionDOS;
}
package com.zhongzhi.vo.college;
import lombok.Data;
@Data
public class GetCollegeInfoVO {
private Long id;
private String name;
private String code;
}
package com.zhongzhi.vo.judge;
import com.zhongzhi.model.ProjectJudgeDO;
import lombok.Data;
@Data
public class ProjectJudgePageVO extends ProjectJudgeDO {
/**
* 分配数量
*/
private Integer assignedQuantity;
/**
* 待评审数量
*/
private Integer notReviewedNum;
}
package com.zhongzhi.vo.judge;
import lombok.Data;
@Data
public class ProjectReviewVO {
private Long id;
private String judgesName;
private Double score;
private String reviewOpinion;
}
package com.zhongzhi.vo.match;
import com.zhongzhi.model.MatchScheduleDO;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class MatchDictVO {
private Long id;
private String matchName;
private String matchDate;
private String month;
private String startTime;
private String endTime;
private Integer status;
private String matchType;
private List<MatchScheduleDO> schedule;
}
package com.zhongzhi.vo.member;
import com.zhongzhi.dto.member.MentorDTO;
import com.zhongzhi.dto.member.TeamMemberDTO;
import com.zhongzhi.vo.judge.ProjectReviewVO;
import lombok.Data;
import java.util.List;
@Data
public class ProjectMemberVO {
private Long id;
private Long projectId;
/**
* 姓名
*/
private String name;
/**
* 就读学校
*/
private String school;
/**
* 年级
*/
private String grade;
private String className;
/**
* 就读专业
*/
private String major;
private String idCard;
/**
* 性别
*/
private String sex;
/**
* 学籍号
*/
private String studentNo;
private String telephone;
private String email;
/**
* 团队成员
*/
private List<TeamMemberDTO> teamMember;
/**
* 指导老师
*/
private List<MentorDTO> mentor;
private Integer editStatus;
private String fiveYears;
}
package com.zhongzhi.vo.project;
import lombok.Data;
@Data
public class ProjectAssignNumVO {
// /**
// * 中职复赛项目数量
// */
// private Long vocRematchNum;
// /**
// * 中职决赛项目数量
// */
// private Long vocFinalNum;
/**
* 复赛项目数量
*/
private Long secRematchNum;
/**
* 决赛项目数量
*/
private Long secFinalNum;
/**
* 总数
*/
private Integer secPreliminaryNUm;
/**
* 已分配
*/
private Long assignNum;
/**
* 未分配
*/
private Long unassignedNum;
}
package com.zhongzhi.vo.project;
import lombok.Data;
@Data
public class ProjectDataOverview {
/*
注册人数
*/
private Integer registeredNum;
/*
已提交项目的院校数量
*/
private Integer matchNum;
/*
全部项目数量
*/
private Integer projectNum;
private Integer registeringNum;
/*
校级项目申请数量
*/
private Integer schoolProjectNum;
/*
初赛项目数量
*/
private Integer preliminaryProjectNum;
private Double preliminaryProportion;
/*
复赛项目数量
*/
private Integer rematchProjectNum;
/*
复赛项目比例
*/
private Double rematchProportion;
/*
决赛项目数量
*/
private Integer finalProjectNum;
/*
决赛项目比例
*/
private Double finalProportion;
/*
市级复赛铜奖
*/
private Integer rematchBronzeAwardNum;
/*
市级复赛银奖
*/
private Integer rematchSilverAwardNum;
/*
市级复赛金奖
*/
private Integer rematchWinningAwardNum;
/*
市级决赛银奖
*/
private Integer finalsSilverAwardNum;
/*
市级决赛金奖
*/
private Integer finalsGoldAwardNum;
}
package com.zhongzhi.vo.project;
import com.zhongzhi.common.utils.ExcelColumn;
import lombok.Data;
@Data
public class ProjectJudgeVO {
@ExcelColumn(col = 1, value = "届数")
private String matchName;
@ExcelColumn(col = 2, value = "项目名称")
private String projectName;
@ExcelColumn(col = 3,value = "赛道")
private String projectTrack;
@ExcelColumn(col = 4, value = "负责人")
private String leader;
@ExcelColumn(col = 5, value = "学院")
private String college;
@ExcelColumn(col = 6, value = "班级")
private String className;
}
package com.zhongzhi.vo.project;
import com.zhongzhi.model.ProjectMaterialsDO;
import lombok.Data;
import java.util.List;
@Data
public class ProjectPageVO {
private Long id;
private Long proposerId;
private Long matchId;
private String matchName;
private String projectName;
private String itemField;
private String projectGroup;
private String unitTrack;
private String projectTrack;
private String projectAttachment;
private String school;
private String college;
private String major;
private String telephone;
private String name;
private Double score;
private String grade;
private String className;
private String reviewOpinion;
private Double reviewScore;
private String projectProgress;
private String projectSchedule;
private String projectStatus;
private Integer status;
private Integer editStatus;
private String reviewStatus;
private String reviewResult;
private List<ProjectMaterialsDO> materials;
}
package com.zhongzhi.vo.project;
import lombok.Data;
@Data
public class ReviewListVO {
private Long id;
private Long proposerId;
private String name;
private String projectName;
private String projectGroup;
private String college;
private String school;
private String major;
private String className;
private String grade;
private String telephone;
private String projectTrack;
private String unitTrack;
private String projectSchedule;
private String reviewResult;
private String projectAssigned;
private String projectProgress;
}
package com.zhongzhi.vo.project;
import com.zhongzhi.model.ProjectAwardDO;
import com.zhongzhi.model.ProjectCopyrightDO;
import com.zhongzhi.model.ProjectMaterialsDO;
import com.zhongzhi.model.ProjectOwnershipStructureDO;
import com.zhongzhi.model.ProjectPaperDO;
import com.zhongzhi.model.ProjectPatentDO;
import com.zhongzhi.model.ProjectTrademarkDO;
import com.zhongzhi.model.ProjectWorksDO;
import com.zhongzhi.vo.judge.ProjectReviewVO;
import com.zhongzhi.vo.member.ProjectMemberVO;
import com.zhongzhi.vo.review.FinalsReviewVO;
import com.zhongzhi.vo.review.ReMatchReviewVO;
import com.zhongzhi.vo.review.SchoolReviewVO;
import lombok.Data;
import java.util.List;
@Data
public class SeedTrackProjectDetailVO extends ProjectMemberVO {
private Long id;
/**
* 申请人ID
*/
private Long proposerId;
/**
* 所属领域
*/
private String itemField;
/**
* 项目LOGO
*/
private String logoUri;
/**
* 项目名称
*/
private String projectName;
/**
* 组别
*/
private String projectGroup;
/**
* 赛事年份
*/
private Long matchId;
/**
* 申报项目时所在院校
*/
private String college;
/**
* 类别
*/
private String classification;
/**
* 所在地址
*/
private String address;
/**
* 项目概述
*/
private String projectIntro;
/**
* 设计背景
*/
private String projectCreativity;
/**
* 科学设计
*/
private String scientificPrinciple;
/**
* 应用前景
*/
private String applicationProspect;
/**
* 路演形式
*/
private String roadShowForm;
/**
* 创意实施或实验所受条件的限制
*/
private String restriction;
/**
* 国家级重大、重点科研项目的科研成果转化项目
*/
private String projectTransform;
/**
* 学校科技成果转化
*/
private String resultTransfer;
/**
* 参赛申报人为科技成果的完成人或所有人
*/
private String competitionOwner;
/**
* 参赛申报人为科技成果的第一完成人或所有人
*/
private String competitionFirst;
/**
* 师生共创
*/
private String bothInvention;
/**
* 项目进展
*/
private String projectProgress;
/**
* 项目阶段
*/
private String projectStage;
/**
* 公司名称
*/
private String companyName;
/**
* 参赛赛道
*/
private String projectTrack;
/**
* 单元赛道
*/
private String unitTrack;
/**
* 注册时间
*/
private String registerDate;
/**
* 注册地址
*/
private String registerAddress;
/**
* 注册资金
*/
private String registerFund;
/**
* 营业执照
*/
private String businessLicense;
private String projectAttachment;
private String projectAttachmentName;
private String projectAttachmentType;
/**
* 项目PPT
*/
private String projectPptUrl;
/**
* 项目PPT类型
*/
private String projectPptType;
/**
* 项目PPT名称
*/
private String projectPptName;
private String identityCertificate;
/**
* 承诺书
*/
private String commitmentLetter;
/**
* 参赛证明书
*/
private String participationCertificate;
/**
* 法人身份
*/
private String legalPersonStatus;
/**
* 法人姓名
*/
private String legalPersonName;
/**
* 职务
*/
private String position;
/**
* 注册省份
*/
private String registerProvince;
/**
* 统一社会信用代码
*/
private String unifyCode;
/**
* 财务报表
*/
private String financialStatement;
/**
* 隐私设置
*/
private String privacySetting;
/**
* 项目状态
*/
private String projectStatus;
/**
* 项目进度
*/
private String projectSchedule;
/**
* 项目类型
*/
private String projectType;
/**
* 上传加盖公章的附件
*/
private String printAttachment;
/**
* 上传加盖公章的附件类型
*/
private String printAttachmentType;
/**
* 上传加盖公章的附件名称
*/
private String printAttachmentName;
/**
* 项目是否获得投资
*/
private String investment;
private String email;
private String reviewStatus;
private Double reviewScore;
private String reviewOpinion;
/**
* 项目材料
*/
private List<ProjectMaterialsDO> materials;
/**
* 复赛评分
*/
private List<SchoolReviewVO> schools;
/**
* 复赛评分
*/
private List<ReMatchReviewVO> rematch;
/**
* 决赛评分
*/
private List<FinalsReviewVO> finals;
/**
* 股权结构
*/
private List<ProjectOwnershipStructureDO> ownership;
/**
* 专利
*/
private List<ProjectPatentDO> patent;
/**
* 论文
*/
private List<ProjectPaperDO> paper;
/**
* 奖项
*/
private List<ProjectAwardDO> award;
/**
* 软件著作权
*/
private List<ProjectCopyrightDO> copyright;
/**
* 作品著作
*/
private List<ProjectWorksDO> works;
/**
* 商标
*/
private List<ProjectTrademarkDO> trademark;
private Integer editStatus;
private String vodUrl;
private List<ProjectReviewVO> reviews;
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!