Commit 1007948c by 涂亚平

汤老师小改

1 parent 051dd08c
Showing with 7982 additions and 16 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.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.college.*;
import com.zhongzhi.dto.project.EditStatusDTO;
import com.zhongzhi.model.*;
import com.zhongzhi.service.CollegesDictService;
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;
import org.springframework.web.multipart.MultipartFile;
import java.net.ResponseCache;
/**
* <p>
* 院校字典表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@RestController
@Api(tags = "就读院校")
@RequestMapping("/collegesDict")
public class CollegesDictController {
@Autowired
public CollegesDictService collegesDictService;
@PostMapping(value = "/getCollegesListNew")
@ApiOperation("####查询所有就读院校: name/院校名称, education/学历")
public ResponseVO getCollegesList(@RequestBody CollegesDictDTO collegesDictDTO) {
QueryWrapper<CollegesDictDO> queryWrapper = new QueryWrapper();
if (StringUtils.isNotBlank(collegesDictDTO.getEducation())) {
if ("中职".equals(collegesDictDTO.getEducation())){
queryWrapper.lambda().eq(CollegesDictDO::getEducation, collegesDictDTO.getEducation());
}else {
queryWrapper.lambda().like(CollegesDictDO::getEducation, collegesDictDTO.getEducation());
}
}
if (StringUtils.isNotBlank(collegesDictDTO.getName())) {
queryWrapper.lambda().like(CollegesDictDO::getName, collegesDictDTO.getName());
}
queryWrapper.lambda().eq(CollegesDictDO::getLoginStatus,1);
return ResponseData.generateCreatedResponse(0, collegesDictService.list(queryWrapper));
}
@PostMapping("getCollegeInfo")
@ApiOperation("返回院校基本信息 pageSize pageNum")
public ResponseVO getCollegeInfo(@RequestBody GetCollegesListDTO getCollegesListDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.getCollegeInfo(getCollegesListDTO));
}
@PostMapping(value = "/login")
@ApiOperation("院校端 --- 登录: account/账户, password/密码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, collegesDictService.login(loginDTO));
}
@PostMapping(value = "updateCollegeById")
@LoginRequired({Platform.center,Platform.school})
@ApiOperation("####院校端,中心端 --- 更新院校信息: id/ID, account/账户,code/代码, name/名称, password/密码")
public ResponseVO updateCollegeById(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.updateById(collegesDictDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "addContact")
@LoginRequired({Platform.school})
@ApiOperation("院校端 --- 新增联系人:leaderName/领导姓名、leaderPost/领导职务、leaderPhone/领导手机号、contactName/联系人姓名、contactPost/联系人职务、contactPhone/联系人手机号")
public ResponseVO addContact(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.addContact(collegesDictDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updatePwd")
@LoginRequired(Platform.school)
@ApiOperation("院校端 --- 修改密码: password/密码")
public ResponseVO updatePwd(@RequestBody UpdatePwdDTO updatePwdDTO) {
collegesDictService.updatePwd(updatePwdDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/projects")
@LoginRequired(Platform.school)
@ApiOperation("##院校端 --- 查看某个院校进决赛的项目(除去已经登记过的) matchId ")
public ResponseVO projects(@RequestBody ProjectDO projectDO) {
return ResponseData.generateCreatedResponse(0,collegesDictService.projects(projectDO));
}
@PostMapping("projectLeader")
@LoginRequired(Platform.school)
@ApiOperation("##院校端---自动带出负责人 projectId ")
public ResponseVO projectLeader(@RequestBody ProjectMemberDO projectMemberDO){
return ResponseData.generateCreatedResponse(0,collegesDictService.projectLeader(projectMemberDO));
}
@PostMapping("projectMembers")
@LoginRequired(Platform.school)
@ApiOperation("##院校端---进决赛的项目下的成员 projectId ")
public ResponseVO projectMembers(@RequestBody ProjectMemberDO projectMemberDO){
return ResponseData.generateCreatedResponse(0,collegesDictService.projectMembers(projectMemberDO));
}
@PostMapping("addProjectMember")
@LoginRequired({Platform.school})
@ApiOperation("##院校端---添加参赛人员 matchId studentIds[] 人员id projectId matchId")
public ResponseVO addProjectMember(@RequestBody AddProjectMemberDTO addProjectMemberDTO)throws Exception{
collegesDictService.addProjectMember(addProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("removeProject")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##院校端---移除参赛人员 projectId matchId")
public ResponseVO removeProject(@RequestBody AddProjectMemberDTO addProjectMemberDTO)throws Exception{
collegesDictService.removeProject(addProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("addObservations")
@LoginRequired(Platform.school)
@ApiOperation("##院校端---添加观摩人员/学校领队 matchId memberType 观摩人员/学校领队/车 userName 人名/车牌号 telephone idCardType idCard")
public ResponseVO addObservations(@RequestBody FinalMatchMemberDO finalMatchMemberDO)throws Exception {
collegesDictService.addObservations(finalMatchMemberDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("updateObservations")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##院校端---修改观摩人员 matchId id userName telephone idCardType idCard")
public ResponseVO updateObservations(@RequestBody FinalMatchMemberDO finalMatchMemberDO)throws Exception{
collegesDictService.updateObservations(finalMatchMemberDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("deleteObservations")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##院校端---删除观摩人员 id matchId ")
public ResponseVO deleteObservations(@RequestBody FinalMatchMemberDO finalMatchMemberDO)throws Exception{
collegesDictService.deleteObservations(finalMatchMemberDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("registerMembers")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##查看已登记的参赛人员 collegeId matchId ")
public ResponseVO registerMembers(@RequestBody RegisterMembersDTO registerMembersDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.registerMembers(registerMembersDTO));
}
@PostMapping("otherMembers")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##查看已登记的其他人员 collegeId matchId")
public ResponseVO otherMembers(@RequestBody RegisterMembersDTO registerMembersDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.otherMembers(registerMembersDTO));
}
@PostMapping("cars")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##查看已登记的车辆 collegeId matchId")
public ResponseVO cars(@RequestBody RegisterMembersDTO registerMembersDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.cars(registerMembersDTO));
}
@PostMapping("details")
@LoginRequired({Platform.school,Platform.center})
@ApiOperation("##截至时间+最近一次更新时间 id matchId ")
public ResponseVO details(@RequestBody RegisterMembersDTO registerMembersDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.detail(registerMembersDTO));
}
@PostMapping("schools")
@LoginRequired(Platform.center)
@ApiOperation("##这届登记的院校+人员数 matchId name")
public ResponseVO schools(@RequestBody RegisterMembersDTO registerMembersDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.schools(registerMembersDTO));
}
@PostMapping("exportList")
@LoginRequired(Platform.center)
@ApiOperation("##导出总名单 id 届数id collegeId")
public ResponseVO exportList(@RequestBody FinalMatchMemberDO finalMatchMemberDO){
collegesDictService.exportList(finalMatchMemberDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getCollegesPage")
@LoginRequired(Platform.center)
@ApiOperation("####中心端 --- 院校名录分页查询: name/搜索名称, pageNo/当前页数, pageSize/每页显示条数")
public ResponseVO getCollegesPage(@RequestBody CollegesPageDTO collegesPageDTO) {
return ResponseData.generateCreatedResponse(0, collegesDictService.getCollegesPage(collegesPageDTO));
}
@PostMapping(value = "/createColleges")
@LoginRequired(Platform.center)
@ApiOperation("####中心端 --- 新建院校: name/搜索名称, code/院校代码、 phone/手机号")
public ResponseVO createColleges(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.createColleges(collegesDictDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@LoginRequired(Platform.center)
@ApiOperation("####中心端 --- 删除院校: id/院校ID")
public ResponseVO delete(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.removeById(collegesDictDO.getId());
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/importColleges")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 导入院校:file/文件(数据格式:Form-Data)")
public ResponseVO importColleges(MultipartFile file) {
return ResponseData.generateCreatedResponse(0, collegesDictService.importColleges(file));
}
@PostMapping(value = "/downloadErrorData")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 下载导入失败院校数据:errorData/失败数据")
public ResponseVO downloadErrorData(@RequestBody DownloadErrorDataDTO downloadErrorDataDTO) {
collegesDictService.downloadErrorData(downloadErrorDataDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getAwardedListPage")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 查询获奖情况:matchId/赛事年份ID、projectGroup/项目组别(科技创新、红色文创、高职、中职)、name/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getAwardedList(@RequestBody AwardedListDTO awardedListDTO) {
return ResponseData.generateCreatedResponse(0, collegesDictService.getAwardedList(awardedListDTO));
}
@PostMapping(value = "/exportAwardedList")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 导出获奖情况:matchId/赛事年份ID")
public void exportAwardedList(@RequestBody AwardedListDTO awardedListDTO) {
collegesDictService.exportAwardedList(awardedListDTO);
}
@PostMapping(value = "/exportCollege")
@LoginRequired(Platform.center)
@ApiOperation("####导出院校名录")
public ResponseVO exportCollege() {
collegesDictService.exportCollege();
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "updateAllLoginStatus")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 更新所有登录状态:loginStatus/状态(0:关闭,1:开启)")
public ResponseVO updateAllLoginStatus(@RequestBody LoginStatusDTO loginStatusDTO) {
collegesDictService.updateAllLoginStatus(loginStatusDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "batchUpdateLoginStatus")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 批量更新登录状态:ids/院校ID(数组)、loginStatus/状态(0:关闭,1:开启)")
public ResponseVO batchUpdateLoginStatus(@RequestBody LoginStatusDTO loginStatusDTO) {
collegesDictService.batchUpdateLoginStatus(loginStatusDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "updateLoginStatus")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 更新登录状态:id/院校ID、loginStatus/状态(0:关闭,1:开启)")
public ResponseVO updateLoginStatus(@RequestBody LoginStatusDTO loginStatusDTO) {
collegesDictService.updateLoginStatus(loginStatusDTO);
return ResponseData.generateCreatedResponse(0);
}
}
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.constant.ProjectType;
import com.zhongzhi.common.utils.LoginRequired;
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.model.ProjectDO;
import com.zhongzhi.service.ProjectService;
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-11
*/
@RestController
@Api(tags = "项目")
@RequestMapping("/project")
public class ProjectController {
@Autowired
private ProjectService projectService;
@PostMapping(value = "/getProjectDetail")
@ApiOperation("####学生端(高职赛道、种子赛道通用) ---项目详情: id/项目ID")
public ResponseVO getProjectDetail(@RequestBody ProjectDO projectDO) {
return ResponseData.generateCreatedResponse(0, projectService.getProjectById(projectDO.getId()));
}
// @PostMapping(value = "/getMainTrackProject")
// @LoginRequired(Platform.student)
// @ApiOperation("学生端 ---主赛道项目分页查询: matchId/赛事年份ID, pageNo/当前页数, pageSize/每页显示条数")
// public ResponseVO getMainTrackProject(@RequestBody ProjectListPageDTO projectListPageDTO) {
// return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProject(projectListPageDTO));
// }
@PostMapping(value = "/getMainTrackProjectById")
@LoginRequired(Platform.student)
@ApiOperation("学生端---根据ID查询主赛道项目信息")
public ResponseVO getMainTrackProjectById() {
return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProjectById());
}
@PostMapping(value = "/createMainTrackProject")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---保存主赛道项目信息: 项目logo/logoUri、项目名称/projectName、所在地/address、itemField/所属领域、项目概述/projectIntro、projectTransform/国家级重大、重点科研项目的科研成果转化项目" +
"学校科技成果转化/resultTransfer、参赛申报人为科技成果的完成人或所有人/competitionOwner、参赛申报人为科技成果的第一完成人或所有人/competitionFirst" +
"师生共创/bothInvention、项目进展/projectProgress(创意设计阶段,已注册公司)、公司名称/companyName、法人身份/legalPersonStatus、法人姓名/legalPersonName、职务/position、注册资金/registerFund" +
"注册时间/registerDate、注册省份/registerProvince、注册地址/registerAddress、统一社会信用代码/unifyCode" +
"股权结构/pos:[{ shareholderStatus/股东身份、shareholderName/股东名称、shareholdingRatio/持股比例 }]" +
"隐私设置/privacySetting(保密,公开)、materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址" +
"vodUrl 视频地址")
public ResponseVO createMainTrackProject(@RequestBody CreateMainTrackProjectDTO createMainTrackProjectDTO) {
projectService.createMainTrackProject(createMainTrackProjectDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getProjectMemberById")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---根据项目ID查询主赛道团队成员")
public ResponseVO getProjectMemberById() {
return ResponseData.generateCreatedResponse(0, projectService.getProjectMemberById());
}
@PostMapping(value = "/createProjectMember")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---保存主赛道团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号" +
"teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" +
"mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]")
public ResponseVO createProjectMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
createProjectMemberDTO.setProjectGroup(ProjectType.MAIN_TRACK);
createProjectMemberDTO.setProjectType(ProjectType.MAIN_TRACK);
projectService.createProjectMember(createProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/withdrawn")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---撤回申请:id/项目ID")
public ResponseVO withdrawn(@RequestBody ProjectDO projectDO) throws Exception{
projectService.withdrawn(projectDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/rollback")
// @LoginRequired(Platform.school)
@ApiOperation("院校端 ---上报撤回:id/项目ID")
public ResponseVO rollback(@RequestBody ProjectDO projectDO) {
projectService.rollback(projectDO);
return ResponseData.generateCreatedResponse(0);
}
// @PostMapping(value = "/getSeedTrackProject")
// @LoginRequired(Platform.student)
// @ApiOperation("学生端 ---种子赛道项目分页查询: matchId/年份ID, pageNo/当前页数, pageSize/每页显示条数")
// public ResponseVO getSeedTrackProject(@RequestBody ProjectListPageDTO projectListPageDTO) {
// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProject(projectListPageDTO));
// }
@PostMapping(value = "/createSeedTrackProject")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---保存种子赛道项目信息: projectProgress:红色文创/科技创新 projectName/项目名称、projectGroup/组别、projectIntro/介绍及创新点、projectCreativity/设计背景、" +
"scientificPrinciple/科学设计、applicationProspect/应用前景、roadShowForm/路演形式、restriction/创意实施或实验所受条件的限制" +
"、materials/项目材料:[{ materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址 }]")
public ResponseVO createSeedTrackProject(@RequestBody CreateSeedTrackProjectDTO createSeedTrackProjectDTO) {
projectService.createSeedTrackProject(createSeedTrackProjectDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getTechnologyProjectById")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---根据ID查询科技创新项目")
public ResponseVO getTechnologyProjectById() {
return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectById());
}
@PostMapping(value = "/getCulturalProjectById")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---根据ID查询红色文创项目")
public ResponseVO getCulturalProjectById() {
return ResponseData.generateCreatedResponse(0, projectService.getCulturalProjectById());
}
@PostMapping(value = "/uploadTechnologyProjectAttachment")
@LoginRequired(Platform.student)
@ApiOperation("学生端 --- 上传科技创新项目加盖公章的附件: printAttachment/附件地址, printAttachmentType/附件类型, printAttachmentName/附件名称")
public ResponseVO uploadTechnologyProjectAttachment(@RequestBody PrintAttachmentDTO printAttachmentDTO)throws Exception {
printAttachmentDTO.setProjectGroup(ProjectType.TECHNOLOGY_INNOVATION_GROUP);
projectService.uploadPrintAttachment(printAttachmentDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/createTechnologyProjectMember")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---保存科技创新项目团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、idCard身份证 studentNo/学籍号 fiveYears" +
"teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" +
"mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]")
public ResponseVO createTechnologyProjectMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
createProjectMemberDTO.setProjectGroup(ProjectType.TECHNOLOGY_INNOVATION_GROUP);
createProjectMemberDTO.setProjectType(ProjectType.SEED_TRACK);
projectService.createProjectMember(createProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
// @PostMapping(value = "/getTechnologyProjectMember")
// @LoginRequired(Platform.student)
// @ApiOperation("学生端 ---查询科技创新项目团队信息")
// public ResponseVO getTechnologyProjectMember() {
// return ResponseData.generateCreatedResponse(0, projectService.getProjectMember(ProjectType.TECHNOLOGY_INNOVATION_GROUP));
// }
@PostMapping(value = "/uploadCulturalProjectAttachment")
@LoginRequired(Platform.student)
@ApiOperation("学生端 --- 上传红色文创项目加盖公章的附件: printAttachment/附件地址, printAttachmentType/附件类型, printAttachmentName/附件名称")
public ResponseVO uploadCulturalProjectAttachment(@RequestBody PrintAttachmentDTO printAttachmentDTO) throws Exception{
printAttachmentDTO.setProjectGroup(ProjectType.CULTURAL_CREATIVE_GROUP);
projectService.uploadPrintAttachment(printAttachmentDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/createCulturalProjectMember")
@LoginRequired(Platform.student)
@ApiOperation("学生端 ---保存红色文创项目团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、idCard 身份证 studentNo/学籍号 fiveYears" +
"teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" +
"mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]")
public ResponseVO createCulturalProjectMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
createProjectMemberDTO.setProjectGroup(ProjectType.CULTURAL_CREATIVE_GROUP);
createProjectMemberDTO.setProjectType(ProjectType.SEED_TRACK);
projectService.createProjectMember(createProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
// @PostMapping(value = "/getCulturalProjectMember")
// @LoginRequired(Platform.student)
// @ApiOperation("学生端 ---查询红色文创项目团队信息")
// public ResponseVO getCulturalProjectMember() {
// return ResponseData.generateCreatedResponse(0, projectService.getProjectMember(ProjectType.CULTURAL_CREATIVE_GROUP));
// }
@PostMapping(value = "/getMainTrackProjectPage")
@LoginRequired(Platform.school)
@ApiOperation("院校端 --- 分页查询主赛道全部项目:matchId/赛事ID, projectSchedule/项目进度(全部项目传空字符串、校内赛、复赛、决赛), " +
"projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
public ResponseVO getMainTrackProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProjectPage(projectListPageDTO));
}
@PostMapping(value = "/getMainTrackProjectDetail")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("学生端/中心端 ---查询主赛道项目详情:id/项目ID")
public ResponseVO getMainTrackProjectDetail(@RequestBody ProjectDO projectDO) {
return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProjectDetail(projectDO.getId()));
}
@PostMapping(value = "/delete")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("中心端/院校端 --- 删除项目:id/项目ID")
public ResponseVO delete(@RequestBody ProjectDO projectDO) {
projectService.removeById(projectDO.getId());
return ResponseData.generateCreatedResponse(0);
}
// @PostMapping(value = "/getSeedTrackProjectList")
// @LoginRequired(Platform.school)
// @ApiOperation("院校端 --- 分页查询种子赛道全部项目:matchId/赛事ID,projectGroup/项目组别(科技创新、红色文创)、projectSchedule/项目进度(全部项目传空字符串、校内赛、复赛、决赛), " +
// "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
// public ResponseVO getSeedTrackProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) {
// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectList(projectListPageDTO));
// }
// @PostMapping(value = "/getSeedTrackProjectPage")
// @LoginRequired(Platform.center)
// @ApiOperation("中心端 --- 分页查询种子赛道全部项目:matchId/赛事ID,projectGroup/项目组别(科技创新、红色文创)、projectSchedule/项目进度(全部项目传空字符串、校内赛、复赛、决赛), " +
// "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数 projectProgress")
// public ResponseVO getSeedTrackProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) {
// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectPage(projectListPageDTO));
// }
@PostMapping(value = "/downloadTechnologyPDF")
@LoginRequired({Platform.student})
@ApiOperation("学生端 --- 种子赛道科技创新申请表下载")
public void downloadTechnologyPDF() {
projectService.downloadPDF(ProjectType.TECHNOLOGY_INNOVATION_GROUP);
}
@PostMapping(value = "/downloadCulturalPDF")
@LoginRequired({Platform.student})
@ApiOperation("学生端 --- 种子赛道红色文创申请表下载")
public void downloadCulturalPDF() {
projectService.downloadPDF(ProjectType.CULTURAL_CREATIVE_GROUP);
}
@PostMapping(value = "/getSeedTrackProjectDetail")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 --- 种子赛道项目详情:id/项目ID")
public ResponseVO getSeedTrackProjectDetail(@RequestBody ProjectDO projectDO) {
return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectDetail(projectDO.getId()));
}
@PostMapping(value = "/weedOut")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("院校端 --- 不予提交:id/项目ID")
public ResponseVO weedOut(@RequestBody ApproveDTO approveDTO) {
projectService.weedOut(approveDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/batchWeedOut")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("院校端 --- 批量不予提交:ids/项目ID")
public ResponseVO batchWeedOut(@RequestBody ApproveDTO approveDTO) {
projectService.batchWeedOut(approveDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/pass")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("中心端/院校端 --- (校内赛/初赛/复赛/决赛)通过:id/项目ID、" +
"projectStatus projectSchedule ")
public ResponseVO pass(@RequestBody ApproveDTO approveDTO) {
projectService.pass(approveDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/batchPass")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("中心端/院校端 --- 批量(校内赛/初赛/复赛/决赛)通过:ids/项目ID、" +
"projectStatus/1:市级复赛通过, 2:市级优胜奖,3/6:市级银奖,4:市级铜奖,5:市级金奖 7 未通过")
public ResponseVO batchPass(@RequestBody ApproveDTO approveDTO) {
projectService.batchPass(approveDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getReviewList")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 评审列表:projectGroup/组别(科技创新、红色文创、主赛道)、projectName/搜索项目或院校、 projectStatus/项目状态(市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" +
"pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getReviewList(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getReviewList(reviewListDTO));
}
@PostMapping(value = "/getProjectReviewNum")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 评审列表项目数量统计:matchId/赛事年份ID、projectProgress/组别(科技创新、文化创意), projectStatus/项目进度(市级复赛、市级决赛)")
public ResponseVO getProjectReviewNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getProjectReviewNum(reviewListDTO));
}
@PostMapping(value = "/getProjectReviewAssignNum")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 评审分配项目数量统计:matchId/赛事年份ID、projectGroup/组别(科技创新、红色文创), projectStatus/项目进度(市级复赛、市级决赛)")
public ResponseVO getProjectReviewAssignNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getProjectReviewAssignNum(reviewListDTO));
}
@PostMapping(value = "/getReviewProjectNum")
@LoginRequired({Platform.review})
@ApiOperation("评审端 --- 评审项目数量统计:matchId/赛事年份ID、projectGroup/组别(科技创新、红色文创), projectStatus/项目状态(市级复赛、市级决赛)")
public ResponseVO getReviewProjectNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getReviewProjectNum(reviewListDTO));
}
@PostMapping(value = "/getExportProjectListField")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("中心端 --- 种子赛道项目字段")
public ResponseVO getExportProjectListField() {
return ResponseData.generateCreatedResponse(0, projectService.getExportProjectField());
}
@PostMapping(value = "/exportProjectCollegeList")
@LoginRequired({Platform.school})
@ApiOperation("院校端 --- 批量导出院校项目:matchId/赛事ID")
public void exportProjectCollegeList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
projectService.exportProjectCollegeList(projectCollegeListDTO);
}
@PostMapping(value = "/exportProjectList")
@ApiOperation("####中心端 --- 批量导出种子赛道项目:matchId/赛事ID")
public void exportProjectList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
projectService.exportProjectList(projectCollegeListDTO);
}
@PostMapping(value = "/exportProjectAll")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 --- 导出全部种子赛道项目:matchId/赛事ID, projectSchedule/项目进度,projectGroup/项目组别")
public void exportProjectAll(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
projectService.exportProjectAll(projectCollegeListDTO);
}
@PostMapping(value = "/exportProjectAllProgress")
// @LoginRequired({Platform.center})
@ApiOperation("中心端 --- 导出全部种子赛道项目:matchId/赛事ID, projectSchedule/项目进度,projectGroup/项目组别 projectProgress 组别")
public void exportProjectAllProgress(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
projectService.exportProjectAllProgress(projectCollegeListDTO);
}
@PostMapping(value = "/getExportProjectField")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 评审项目字段")
public ResponseVO getExportProjectField() {
return ResponseData.generateCreatedResponse(0, projectService.getExportProjectReviewField());
}
@PostMapping(value = "/exportProject")
// @LoginRequired({Platform.center})
@ApiOperation("####中心端 --- 评审项目导出:matchId/赛事ID userId")
public ResponseVO exportProject(@RequestBody ReviewListDTO reviewListDTO) {
projectService.exportProjectReview(reviewListDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/exportProjectNew")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 评审项目导出:matchId/赛事ID")
public ResponseVO exportProjectNew(@RequestBody ReviewListDTO reviewListDTO) {
projectService.exportProjectNew(reviewListDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/exportProjectById")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 --- 评审项目根据ID导出:id/ID")
public ResponseVO exportProjectById(@RequestBody ReviewListDTO reviewListDTO) {
projectService.exportProjectById(reviewListDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getProjectReviewPage")
@LoginRequired({Platform.review})
@ApiOperation("评审端 ---评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getProjectReviewPage(projectReviewPageDTO));
}
@PostMapping(value = "/setScore")
@LoginRequired({Platform.review})
@ApiOperation("评审端 ---批量预评分:reviewScore[{ id/项目ID、score/分数 }] +" +
" --- 单个预评分:id/项目ID、score/分数")
public ResponseVO setScore(@RequestBody ProjectReviewScoreDTO projectReviewScoreDTO) {
projectService.setScore(projectReviewScoreDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/submitted")
@LoginRequired({Platform.review})
@ApiOperation("评审端 ---批量提交:ids:[项目ID]" +
" --- 提交评分:id/项目ID ")
public ResponseVO submitted(@RequestBody ProjectReviewScoreDTO projectReviewScoreDTO) {
projectService.submitted(projectReviewScoreDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getCollegeDataOverview")
@LoginRequired({Platform.school})
@ApiOperation("院校端 --- 种子赛道数据概览")
public ResponseVO getCollegeDataOverview(@RequestBody DataOverviewDTO dataOverviewDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getCollegeDataOverview(dataOverviewDTO));
}
// @PostMapping(value = "getCollegeVocationalDataOverview")
// @LoginRequired({Platform.school})
// @ApiOperation("院校端 --- 职教赛道数据概览")
// public ResponseVO getCollegeVocationalDataOverview() {
// return ResponseData.generateCreatedResponse(0, projectService.getCollegeVocationalDataOverview());
// }
@PostMapping(value = "getDataOverview")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 --- 数据概览 matchId")
public ResponseVO getDataOverview(@RequestBody DataOverviewDTO dataOverviewDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalDataOverview(dataOverviewDTO));
}
// @PostMapping(value = "getSeedTrackDataOverview")
// @LoginRequired({Platform.center})
// @ApiOperation("中心端 --- 种子赛道数据概览")
// public ResponseVO getSeedTrackDataOverview() {
// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackDataOverview());
// }
//
// @PostMapping(value = "getMainTrackDataOverview")
// @LoginRequired({Platform.center})
// @ApiOperation("中心端 --- 主赛道数据概览")
// public ResponseVO getMainTrackDataOverview() {
// return ResponseData.generateCreatedResponse(0, projectService.getMainTrackDataOverview());
// }
@PostMapping(value = "exportCollegeProject")
@LoginRequired({Platform.school})
@ApiOperation("院校端 --- 批量导出项目")
public ResponseVO exportCollegeProject(@RequestBody CollegeProjectDTO collegeProjectDTO) {
projectService.exportCollegeProject(collegeProjectDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getProjectByStudentId")
@LoginRequired({Platform.student})
@ApiOperation("学生端 --- 项目查重:matchId/赛事ID, projectGroup/组别")
public ResponseVO getProjectByStudentId(@RequestBody StudentProjectDTO studentProjectDTO) {
projectService.getProjectByStudentId(studentProjectDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getSeedTrackProjectNum")
@LoginRequired({Platform.center, Platform.school})
@ApiOperation("中心端/院校端 --- 项目数量: matchId/赛事ID、projectGroup/项目组别")
public ResponseVO getSeedTrackProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectNum(seedTrackProjectNumDTO));
}
/* -- 职教接口(学生端) -- */
@PostMapping(value = "createVocationalProject")
@LoginRequired({ Platform.student })
@ApiOperation("####学生端--创建项目:项目名称/projectName、项目概述/projectIntro、参赛赛道/projectTrack、单元赛道/unitTrack、组别/projectGroup" +
"公司名称/companyName、注册资金/registerFund、注册时间/registerDate、注册地址/registerAddress、营业执照/businessLicense" +
"项目计划书 projectAttachment projectAttachmentName projectAttachmentType" +
"答辩PPT projectPptUrl projectPptType projectPptName"+
"身份证明书/identityCertificate 承诺书 commitmentLetter participationCertificate 参赛证明书")
public ResponseVO createVocationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO)throws Exception {
projectService.createVocationalProject(createVocationalProjectDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "updateVocationalProject")
@LoginRequired({ Platform.student })
@ApiOperation("学生端(职教)--修改职教项目:id/项目ID、 createVocationalProject的字段, projectSchedule 项目阶段 ")
public ResponseVO updateVocationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO) {
projectService.updateVocationalProject(createVocationalProjectDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getVocationalProject")
@LoginRequired(Platform.student)
@ApiOperation("####学生端 ---职教赛道项目分页查询: matchId/赛事届数ID ,pageNo/当前页数, pageSize/每页显示条数")
public ResponseVO getVocationalProject(@RequestBody ProjectListPageDTO projectListPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProject(projectListPageDTO));
}
@PostMapping(value = "getVocationalProjectById")
@LoginRequired(Platform.student)
@ApiOperation("####学生端(职教)--根据ID查询高职赛道项目信息")
public ResponseVO getVocationalProjectById() {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectById());
}
@PostMapping(value = "createVocationalMember")
@LoginRequired(Platform.student)
@ApiOperation("####学生端(职教) ---保存职教赛道团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号、email/邮箱 " +
"teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号}]" +
"mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号 idCard}]")
public ResponseVO createVocationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
projectService.createVocationalMember(createProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping("confirm")
@LoginRequired(Platform.student)
@ApiOperation("id 项目id")
public ResponseVO confirm(@RequestBody ProjectDO projectDO){
projectService.confirm(projectDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "updateVocationalMember")
@LoginRequired(Platform.student)
@ApiOperation("####学生端(职教) ---保存职教赛道团队信息:id/项目ID、name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号、email/邮箱" +
"teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" +
"mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]")
public ResponseVO updateVocationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
projectService.updateVocationalMember(createProjectMemberDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getVocationalProjectMember")
@LoginRequired(Platform.student)
@ApiOperation("####学生端(职教) ---查询职教项目团队信息")
public ResponseVO getVocationalProjectMember() {
return ResponseData.generateCreatedResponse(0, projectService.getProjectMember());
}
/* -- 管理端 -- */
@PostMapping(value = "/getVocationalProjectPage")
@ApiOperation("####中心端 --- 分页查询职教赛道项目管理:matchId/赛事ID,projectStatus/项目进度, " +
"name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
public ResponseVO getVocationalProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectPage(projectListPageDTO));
}
@PostMapping(value = "updateAllEditStatus")
@ApiOperation("中心端 --- 更新所有编辑状态:matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、editStatus/状态(0:关闭,1:开启)")
public ResponseVO updateAllEditStatus(@RequestBody EditStatusDTO editStatusDTO) {
projectService.updateAllEditStatus(editStatusDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "batchUpdateEditStatus")
@ApiOperation("中心端 --- 批量更新编辑状态:ids/项目ID(数组)、editStatus/状态(0:关闭,1:开启)")
public ResponseVO batchUpdateEditStatus(@RequestBody EditStatusDTO editStatusDTO) {
projectService.batchUpdateEditStatus(editStatusDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "updateEditStatus")
@ApiOperation("中心端 --- 更新编辑状态:id/项目ID、editStatus/状态(0:关闭,1:开启)")
public ResponseVO updateEditStatus(@RequestBody EditStatusDTO editStatusDTO) {
projectService.updateEditStatus(editStatusDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getVocationalReviewList")
@ApiOperation("####中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectSchedule/、projectReview/评审分配状态(已分配/未分配)、" +
"pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getVocationalReviewList(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewList(reviewListDTO));
}
@PostMapping(value = "/getVocationalProjectDetail")
@ApiOperation("####中心端/院校端 --- 职教赛道项目详情:id/项目ID")
@LoginRequired({Platform.center,Platform.school,Platform.review})
public ResponseVO getVocationalProjectDetail(@RequestBody ProjectDO projectDO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectDetail(projectDO.getId()));
}
/* -- 院校端 -- */
@PostMapping(value = "/getVocationalProjectList")
@ApiOperation("院校端 --- 分页查询职教赛道项目:matchId/赛事ID,projectGroup/项目组别、projectSchedule/项目进度(全部项目传空字符串、校内赛、初赛、复赛、决赛), " +
"projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
@LoginRequired({Platform.center,Platform.school})
public ResponseVO getVocationalProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectList(projectListPageDTO));
}
@PostMapping(value = "getReviewVocationalNum")
@ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId")
@LoginRequired({Platform.center,Platform.review})
public ResponseVO getReviewVocationalNum(@RequestBody ReviewVocationalNumDTO reviewVocationalNumDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getReviewVocationalNum(reviewVocationalNumDTO));
}
/* -- 评审端 -- */
@PostMapping(value = "/getVocationalProjectReviewPage")
@ApiOperation("评审端 ---职教评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(初赛、复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
@LoginRequired({Platform.center,Platform.school,Platform.review})
public ResponseVO getVocationalProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectReviewPage(projectReviewPageDTO));
}
@PostMapping(value = "getVocationalProjectNum")
@ApiOperation("####中心端/院校端 --- (职教)项目管理数量: matchId/赛事ID、projectGroup/项目组别")
public ResponseVO getVocationalProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectNum(seedTrackProjectNumDTO));
}
@PostMapping(value = "/getVocationalReviewNum")
@ApiOperation("####中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、, projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
public ResponseVO getVocationalReviewNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewNum(reviewListDTO));
}
@PostMapping(value = "/getVocationalAssignNum")
@ApiOperation("中心端 --- 职教评审分配(已分配 + 未分配)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
public ResponseVO getVocationalAssignNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalAssignNum(reviewListDTO));
}
// @PostMapping(value = "importVocationalProject")
// @ApiOperation("中心端/院校端 --- 导出高职项目赛事: projectGroup/项目组别")
// @LoginRequired({ Platform.center, Platform.school })
// public void importVocationalProject(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) {
// projectService.importVocationalProject(importVocationalProjectDTO);
// }
@PostMapping(value = "importProjectByGroup")
@ApiOperation("中心端/院校端 ---excel 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别")
public void importProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) {
projectService.importProjectByGroup(importVocationalProjectDTO);
}
@PostMapping("exportProjectByGroup")
@ApiOperation("中心端/院校端 ---pdf 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别 matchId")
public void exportProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) {
projectService.exportProjectByGroup(importVocationalProjectDTO);
}
}
\ 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.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.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.Platform;
import com.zhongzhi.common.constant.ProjectSchedule;
import com.zhongzhi.common.constant.ProjectStatus;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.*;
import com.zhongzhi.dao.*;
import com.zhongzhi.dto.college.*;
import com.zhongzhi.dto.projectJudge.ImportJudge;
import com.zhongzhi.model.*;
import com.zhongzhi.service.CollegesDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.service.ProjectScheduleRecordService;
import com.zhongzhi.service.ProjectService;
import com.zhongzhi.vo.ExcelFieldVO;
import com.zhongzhi.vo.college.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
/**
* <p>
* 院校字典表 服务实现类
* </p>
*
* @author DengMin
* @since 2021-04-28
*/
@Service
public class CollegesDictServiceImpl extends ServiceImpl<CollegesDictDAO, CollegesDictDO> implements CollegesDictService {
@Autowired
private ProjectService projectService;
@Autowired
private MatchCollegePdfMapper matchCollegePdfMapper;
@Autowired
private MatchDictDAO matchDictDAO;
@Autowired
private FinalMatchMemberDAO finalMatchMemberDAO;
@Autowired
private StudentDAO studentDAO;
@Autowired
private ProjectDAO projectDAO;
@Autowired
private ProjectMemberDAO projectMemberDAO;
@Autowired
private CollegesDictDAO collegesDictDAO;
public IPage<GetCollegeInfoVO> getCollegeInfo(GetCollegesListDTO getCollegesListDTO){
Page page = new Page(getCollegesListDTO.getPageNum(), getCollegesListDTO.getPageSize());
return this.baseMapper.getCollegeInfo(page,getCollegesListDTO.getName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public CollegesVO login(LoginDTO loginDTO) {
CollegesVO collegesVO = new CollegesVO();
CollegesDictDO collegesDict = this.baseMapper.selectOne(new QueryWrapper<CollegesDictDO>().lambda()
.eq(CollegesDictDO::getAccount, loginDTO.getAccount()));
if (collegesDict == null) {
throw new HttpException(10060);
}
if (!collegesDict.getPassword().equals(loginDTO.getPassword())) {
throw new HttpException(10061);
}
if (collegesDict.getLoginStatus() == 0) {
throw new HttpException(10067);
}
BeanUtils.copyProperties(collegesDict, collegesVO);
if (collegesDict.getLoginTime() != null) {
collegesVO.setIsLogin(1);
} else {
collegesVO.setIsLogin(0);
}
String token = JwtUtil.generateToken(collegesDict.getId(), Platform.school);
collegesVO.setToken(token);
return collegesVO;
}
@Override
public IPage getCollegesPage(CollegesPageDTO collegesPageDTO) {
Page page = new Page(collegesPageDTO.getPageNo(), collegesPageDTO.getPageSize());
IPage<CollegePageVO> iPage = this.baseMapper.listPage(page, collegesPageDTO.getName());
return iPage;
}
@Override
public void createColleges(CollegesDictDO collegesDictDO) {
CollegesDictDO collegesDict = this.baseMapper.selectOne(new QueryWrapper<CollegesDictDO>().lambda()
.eq(CollegesDictDO::getAccount, collegesDictDO.getAccount()));
if (collegesDict != null) {
throw new HttpException(10062);
}
if (collegesDictDO.getName().equals(collegesDict.getName())) {
throw new HttpException(10063);
}
if (collegesDictDO.getCode().equals(collegesDict.getCode())) {
throw new HttpException(10064);
}
collegesDictDO.setAccount("shzc" + collegesDictDO.getCode());
collegesDictDO.setPassword(RandomUtil.randomPass(8));
this.baseMapper.insert(collegesDictDO);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> importColleges(MultipartFile file) {
Map<String, Object> map = new HashMap<>();
if (file == null) {
throw new HttpException(10066);
}
List<CollegesDOT> list = ExcelUtil.readExcel(CollegesDOT.class, file);
int success = 0;
int fail = 0;
List<CollegesDOT> error = new ArrayList<>();
if (list.size() > 0) {
for (CollegesDOT collegesDOT : list) {
CollegesDictDO collegesDictDO = new CollegesDictDO();
BeanUtils.copyProperties(collegesDOT, collegesDictDO);
CollegesDictDO collegesDict = this.baseMapper.selectOne(new QueryWrapper<CollegesDictDO>()
.lambda()
.eq(CollegesDictDO::getAccount, collegesDictDO.getAccount()));
if (collegesDict != null) {
fail++;
collegesDOT.setFailReason("院校账户已存在");
continue;
}
if (collegesDictDO.getName().equals(collegesDict.getName())) {
fail++;
collegesDOT.setFailReason("院校名称重复");
continue;
}
if (collegesDictDO.getCode().equals(collegesDict.getCode())) {
fail++;
collegesDOT.setFailReason("院校代码重复");
continue;
}
if (fail > 0) {
error.add(collegesDOT);
}
collegesDictDO.setAccount("shzc" + collegesDictDO.getCode());
collegesDictDO.setPassword(RandomUtil.randomPass(8));
this.baseMapper.insert(collegesDictDO);
success++;
}
}
map.put("success", success);
map.put("fail", fail);
map.put("errorData", error);
return map;
}
@Override
public void downloadErrorData(DownloadErrorDataDTO downloadErrorDataDTO) {
List<ExcelFieldVO> list = ExcelUtil.getField(CollegesDOT.class);
List<Map> data = new ArrayList<>();
if (downloadErrorDataDTO.getErrorData().size() > 0) {
for (CollegesDOT errorDatum : downloadErrorDataDTO.getErrorData()) {
if (errorDatum != null) {
data.add(JSON.parseObject(JSON.toJSONString(errorDatum), Map.class));
}
}
}
ExcelUtil.writeExcel(list, data);
}
@Override
public IPage getAwardedList(AwardedListDTO awardedListDTO) {
IPage<AwardedListVO> iPage = this.baseMapper.getAwardedList(new Page<>(awardedListDTO.getPageNo(), awardedListDTO.getPageSize()),
awardedListDTO.getName());
for (AwardedListVO record : iPage.getRecords()) {
List<ProjectDO> list = projectService.getList(awardedListDTO.getMatchId(), record.getName(), awardedListDTO.getProjectGroup());
if (list != null && list.size() > 0) {
Integer schoolCompetitionNum = 0;
Integer rematchNum = 0;
Integer finalNum = 0;
Integer winningPrizeNum = 0;
Integer bronzeAwardNum = 0;
Integer silverAwardNum = 0;
Integer goldAwardNum = 0;
for (ProjectDO projectDO : list) {
/**
* 奖项
*/
if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_BRONZE_AWARD)) {
bronzeAwardNum++;
} else if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_SILVER_AWARD)) {
silverAwardNum++;
} else if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_FINALS_GOLD_AWARD)) {
goldAwardNum++;
} else if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_WINNING_AWARD)) {
winningPrizeNum++;
}
/**
* 项目进度
*/
if (projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)) {
schoolCompetitionNum++;
} else if (projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) {
rematchNum++;
} else if (projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)) {
finalNum++;
}
}
record.setSchoolCompetitionNum(schoolCompetitionNum + rematchNum + finalNum);
record.setRematchNum(rematchNum);
record.setFinalNum(finalNum);
record.setBronzeAwardNum(bronzeAwardNum);
record.setSilverAwardNum(silverAwardNum);
record.setGoldAwardNum(goldAwardNum);
record.setWinningPrizeNum(winningPrizeNum);
//盖章pdf
MatchCollegePdfDO matchCollegePdfDO = matchCollegePdfMapper.selectOne(new QueryWrapper<MatchCollegePdfDO>()
.lambda()
.eq(MatchCollegePdfDO::getMatchId, awardedListDTO.getMatchId())
.eq(MatchCollegePdfDO::getCollegeId, record.getId()));
if (null != matchCollegePdfDO) {
record.setAttachment(matchCollegePdfDO.getAttachment());
record.setFileName(matchCollegePdfDO.getFileName());
}
}
}
return iPage;
}
@Override
public void exportAwardedList(AwardedListDTO awardedListDTO) {
List<Map> data = new ArrayList<>();
List<AwardedListVO> listAll = this.baseMapper.getAwardedListAll();
for (AwardedListVO awardedListVO : listAll) {
List<ProjectDO> list = projectService.getList(awardedListDTO.getMatchId(), awardedListVO.getName(), awardedListDTO.getProjectGroup());
Integer schoolCompetitionNum = 0;
Integer rematchNum = 0;
Integer finalNum = 0;
Integer winningPrizeNum = 0;
Integer bronzeAwardNum = 0;
Integer silverAwardNum = 0;
Integer goldAwardNum = 0;
for (ProjectDO projectDO : list) {
/**
* 奖项
*/
if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_BRONZE_AWARD)) {
bronzeAwardNum++;
} else if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_SILVER_AWARD)) {
silverAwardNum++;
} else if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_FINALS_GOLD_AWARD)) {
goldAwardNum++;
} else if (projectDO.getProjectStatus().equals(ProjectStatus.REMATCH_WINNING_AWARD)) {
winningPrizeNum++;
}
/**
* 项目进度
*/
if (projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)) {
schoolCompetitionNum++;
} else if (projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) {
rematchNum++;
} else if (projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)) {
finalNum++;
}
}
awardedListVO.setSchoolCompetitionNum(schoolCompetitionNum + rematchNum + finalNum);
awardedListVO.setRematchNum(rematchNum);
awardedListVO.setFinalNum(finalNum);
awardedListVO.setBronzeAwardNum(bronzeAwardNum);
awardedListVO.setSilverAwardNum(silverAwardNum);
awardedListVO.setGoldAwardNum(goldAwardNum);
awardedListVO.setWinningPrizeNum(winningPrizeNum);
data.add(JSON.parseObject(JSON.toJSONString(awardedListVO), Map.class));
}
ExcelUtil.writeExcel(ExcelUtil.getField(AwardedListVO.class), data);
}
@Override
public void exportCollege() {
List<ExcelFieldVO> field = ExcelUtil.getField(ExportCollegeDTO.class);
List<Map> data = new ArrayList<>();
List<CollegesDictDO> list = this.baseMapper.selectList(new QueryWrapper<>());
if (list != null && list.size() > 0) {
for (CollegesDictDO collegesDictDO : list) {
data.add(JSON.parseObject(JSON.toJSONString(collegesDictDO), Map.class));
}
}
ExcelUtil.writeExcel(field, data);
}
@Override
public void updatePwd(UpdatePwdDTO updatePwdDTO) {
CollegesDictDO collegesDict = (CollegesDictDO) Localstorage.getUser();
if (collegesDict == null) {
throw new HttpException(10060);
}
CollegesDictDO collegesDictDO = new CollegesDictDO();
collegesDictDO.setLoginTime(DateFormatUtil.dateToLocalDateTime(new Date()));
collegesDictDO.setId(collegesDict.getId());
collegesDictDO.setPassword(updatePwdDTO.getPassword());
this.baseMapper.updateById(collegesDictDO);
}
public List<ProjectDO> projects(ProjectDO projectDO) {
CollegesDictDO collegesDict = (CollegesDictDO) Localstorage.getUser();
//除去已经报名了的项目
List<ProjectDO> list = projectDAO.projects(projectDO.getMatchId(), collegesDict.getId(), collegesDict.getName());
return list;
}
public ProjectMemberDO projectLeader(ProjectMemberDO projectMemberDO) {
ProjectMemberDO projectMemberDO1 = projectMemberDAO.selectOne(new QueryWrapper<ProjectMemberDO>()
.lambda()
.eq(ProjectMemberDO::getType, "团队负责人")
.eq(ProjectMemberDO::getProjectId, projectMemberDO.getProjectId()));
ProjectDO projectDO = projectDAO.selectById(projectMemberDO.getProjectId());
StudentDO studentDO = studentDAO.selectById(projectDO.getProposerId());
projectMemberDO1.setIdCard(studentDO.getIdCard());
return projectMemberDO1;
}
public List<ProjectMemberDO> projectMembers(ProjectMemberDO projectMemberDO) {
List<ProjectMemberDO> projectMemberDOS = projectMemberDAO.projectMembers(projectMemberDO.getProjectId());
return projectMemberDOS;
}
public void addProjectMember(AddProjectMemberDTO addProjectMemberDTO) throws Exception {
CollegesDictDO collegesDict = (CollegesDictDO) Localstorage.getUser();
ProjectDO projectDO = projectDAO.selectById(addProjectMemberDTO.getProjectId());
MatchDictDO matchDictDO = matchDictDAO.selectById(addProjectMemberDTO.getMatchId());
if (StringUtils.isEmpty(matchDictDO.getRegistrationDeadline()) || StringUtils.isEmpty(matchDictDO.getRegistrationStart())){
throw new HttpException(10031);
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (new Date().before(simpleDateFormat.parse(matchDictDO.getRegistrationStart())) || new Date().after(simpleDateFormat.parse(matchDictDO.getRegistrationDeadline()))) {
throw new HttpException(10031);
}
List<Long> studentIds = addProjectMemberDTO.getStudentIds();
for (Long studentId : studentIds) {
FinalMatchMemberDO finalMatchMemberDO = new FinalMatchMemberDO();
finalMatchMemberDO.setCollegeId(collegesDict.getId());
finalMatchMemberDO.setMemberId(studentId);
finalMatchMemberDO.setProjectId(addProjectMemberDTO.getProjectId());
StudentDO studentDO = studentDAO.selectById(projectDO.getProposerId());
finalMatchMemberDO.setIdCard(studentDO.getIdCard());
ProjectMemberDO projectMemberDO = projectMemberDAO.selectById(studentId);
finalMatchMemberDO.setIdCard(projectMemberDO.getIdCard());
finalMatchMemberDO.setMatchId(addProjectMemberDTO.getMatchId());
finalMatchMemberDO.setTelephone(projectMemberDO.getTelephone());
finalMatchMemberDO.setUserName(projectMemberDO.getName());
if ("团队负责人".equals(projectMemberDO.getType())) {
finalMatchMemberDO.setMemberType("参赛人员(负责人)");
finalMatchMemberDO.setIdCard(studentDO.getIdCard());
finalMatchMemberDO.setOrderNo(0);
} else {
finalMatchMemberDO.setMemberType("参赛人员");
finalMatchMemberDO.setOrderNo(1);
}
finalMatchMemberDO.setUpdateTime(LocalDateTime.now());
finalMatchMemberDAO.insert(finalMatchMemberDO);
}
}
public void removeProject(AddProjectMemberDTO addProjectMemberDTO) throws Exception {
MatchDictDO matchDictDO = matchDictDAO.selectById(addProjectMemberDTO.getMatchId());
if (StringUtils.isEmpty(matchDictDO.getRegistrationDeadline()) || StringUtils.isEmpty(matchDictDO.getRegistrationStart())){
throw new HttpException(10031);
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (new Date().before(simpleDateFormat.parse(matchDictDO.getRegistrationStart())) || new Date().after(simpleDateFormat.parse(matchDictDO.getRegistrationDeadline()))) {
throw new HttpException(10031);
}
finalMatchMemberDAO.delete(new QueryWrapper<FinalMatchMemberDO>()
.lambda()
.eq(FinalMatchMemberDO::getProjectId, addProjectMemberDTO.getProjectId()));
}
public void addObservations(FinalMatchMemberDO finalMatchMemberDO) throws Exception {
CollegesDictDO collegesDict = (CollegesDictDO) Localstorage.getUser();
MatchDictDO matchDictDO = matchDictDAO.selectById(finalMatchMemberDO.getMatchId());
if (null == matchDictDO.getRegistrationDeadline() || null == matchDictDO.getRegistrationStart()){
throw new HttpException(10031);
}
if (null != matchDictDO.getRegistrationDeadline()) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (new Date().before(simpleDateFormat.parse(matchDictDO.getRegistrationStart())) || new Date().after(simpleDateFormat.parse(matchDictDO.getRegistrationDeadline()))) {
throw new HttpException(10031);
}
}
if ("观摩人员".equals(finalMatchMemberDO.getMemberType())) {
//当前有几个观摩人员
int count = finalMatchMemberDAO.selectCount(new QueryWrapper<FinalMatchMemberDO>()
.lambda()
.eq(FinalMatchMemberDO::getCollegeId, collegesDict.getId())
.eq(FinalMatchMemberDO::getMemberType, "观摩人员"));
if (count >=2) {
throw new HttpException(10029);
}
finalMatchMemberDO.setOrderNo(4);
finalMatchMemberDO.setCollegeId(collegesDict.getId());
finalMatchMemberDO.setUpdateTime(LocalDateTime.now());
finalMatchMemberDAO.insert(finalMatchMemberDO);
}
if ("学校领队".equals(finalMatchMemberDO.getMemberType())) {
//当前有几个学校领队
int count = finalMatchMemberDAO.selectCount(new QueryWrapper<FinalMatchMemberDO>()
.lambda()
.eq(FinalMatchMemberDO::getCollegeId, collegesDict.getId())
.eq(FinalMatchMemberDO::getMemberType, "学校领队"));
if (count > 0) {
throw new HttpException(10019);
}
finalMatchMemberDO.setCollegeId(collegesDict.getId());
finalMatchMemberDO.setOrderNo(3);
finalMatchMemberDO.setUpdateTime(LocalDateTime.now());
finalMatchMemberDAO.insert(finalMatchMemberDO);
}
if ("车".equals(finalMatchMemberDO.getMemberType())){
finalMatchMemberDO.setCollegeId(collegesDict.getId());
finalMatchMemberDO.setOrderNo(5);
finalMatchMemberDO.setUpdateTime(LocalDateTime.now());
finalMatchMemberDAO.insert(finalMatchMemberDO);
}
}
public void updateObservations(FinalMatchMemberDO finalMatchMemberDO) throws Exception {
MatchDictDO matchDictDO = matchDictDAO.selectById(finalMatchMemberDO.getMatchId());
if (StringUtils.isEmpty(matchDictDO.getRegistrationDeadline()) || StringUtils.isEmpty(matchDictDO.getRegistrationStart())){
throw new HttpException(10031);
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (new Date().before(simpleDateFormat.parse(matchDictDO.getRegistrationStart())) || new Date().after(simpleDateFormat.parse(matchDictDO.getRegistrationDeadline()))) {
throw new HttpException(10031);
}
finalMatchMemberDAO.updateById(finalMatchMemberDO);
}
public void deleteObservations(FinalMatchMemberDO finalMatchMemberDO) throws Exception {
MatchDictDO matchDictDO = matchDictDAO.selectById(finalMatchMemberDO.getMatchId());
if (StringUtils.isEmpty(matchDictDO.getRegistrationDeadline()) || StringUtils.isEmpty(matchDictDO.getRegistrationStart())){
throw new HttpException(10031);
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (new Date().before(simpleDateFormat.parse(matchDictDO.getRegistrationStart()))||new Date().after(simpleDateFormat.parse(matchDictDO.getRegistrationDeadline()))) {
throw new HttpException(10031);
}
finalMatchMemberDAO.deleteById(finalMatchMemberDO.getId());
}
public List<RegisterMembersVO> registerMembers(RegisterMembersDTO registerMembersDTO) {
CollegesDictDO collegesDict = collegesDictDAO.selectById(registerMembersDTO.getCollegeId());
return finalMatchMemberDAO.registerMembers(collegesDict.getId(),registerMembersDTO.getMatchId());
}
public List<RegisterMembersVO> otherMembers(RegisterMembersDTO registerMembersDTO) {
CollegesDictDO collegesDict = collegesDictDAO.selectById(registerMembersDTO.getCollegeId());
return finalMatchMemberDAO.otherMembers(collegesDict.getId(),registerMembersDTO.getMatchId());
}
public List<RegisterMembersVO> cars(RegisterMembersDTO registerMembersDTO){
CollegesDictDO collegesDict = collegesDictDAO.selectById(registerMembersDTO.getCollegeId());
return finalMatchMemberDAO.cars(collegesDict.getId(),registerMembersDTO.getMatchId());
}
public DetailVO detail(RegisterMembersDTO registerMembersDTO) {
CollegesDictDO collegesDict = collegesDictDAO.selectById(registerMembersDTO.getId());
DetailVO detailVO = new DetailVO();
MatchDictDO matchDictDO = matchDictDAO.selectById(registerMembersDTO.getMatchId());
detailVO.setRegistrationDeadline(matchDictDO.getRegistrationDeadline());
//最近一次更新时间
String latestUpdateTime = finalMatchMemberDAO.latestUpdateTime(collegesDict.getId());
detailVO.setLatestUpdateTime(latestUpdateTime);
return detailVO;
}
public List<SchoolsVO> schools(RegisterMembersDTO registerMembersDTO) {
return finalMatchMemberDAO.schools(registerMembersDTO.getMatchId(), registerMembersDTO.getName());
}
public void exportList(FinalMatchMemberDO finalMatchMemberDO){
MatchDictDO matchDictDO1 = matchDictDAO.selectById(finalMatchMemberDO.getId());
//导出所有名单
List<ExportListVO> exportListVOS = finalMatchMemberDAO.exportList(matchDictDO1.getId(),finalMatchMemberDO.getCollegeId());
List<ExcelFieldVO> field = ExcelUtil.getField(ExportListVO.class);
List<Map> data = new ArrayList<>();
if (exportListVOS != null && exportListVOS.size() > 0) {
for (ExportListVO exportListVO : exportListVOS) {
data.add(JSON.parseObject(JSON.toJSONString(exportListVO), Map.class));
}
}
ExcelUtil.writeExcel(field, data);
}
@Override
public void addContact(CollegesDictDO collegesDictDO) {
CollegesDictDO collegesDict = (CollegesDictDO) Localstorage.getUser();
if (collegesDict == null) {
throw new HttpException(10060);
}
collegesDictDO.setId(collegesDict.getId());
this.baseMapper.updateById(collegesDictDO);
}
@Override
public void updateAllLoginStatus(LoginStatusDTO loginStatusDTO) {
List<CollegesDictDO> list = this.baseMapper.selectList(new QueryWrapper());
if (list != null && list.size() > 0) {
for (CollegesDictDO collegesDictDO : list) {
CollegesDictDO collegesDict = new CollegesDictDO();
collegesDict.setId(collegesDictDO.getId());
collegesDict.setLoginStatus(loginStatusDTO.getLoginStatus());
this.baseMapper.updateById(collegesDict);
}
}
}
@Override
public void batchUpdateLoginStatus(LoginStatusDTO loginStatusDTO) {
if (loginStatusDTO.getIds().length > 0) {
for (Long id : loginStatusDTO.getIds()) {
CollegesDictDO collegesDict = new CollegesDictDO();
collegesDict.setId(id);
collegesDict.setLoginStatus(loginStatusDTO.getLoginStatus());
this.baseMapper.updateById(collegesDict);
}
}
}
@Override
public void updateLoginStatus(LoginStatusDTO loginStatusDTO) {
CollegesDictDO collegesDict = new CollegesDictDO();
collegesDict.setId(loginStatusDTO.getId());
collegesDict.setLoginStatus(loginStatusDTO.getLoginStatus());
this.baseMapper.updateById(collegesDict);
}
}
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);
}
}
}
package com.zhongzhi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.ProjectReview;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.constant.SMSTemplate;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.AliyunSmsUtil;
import com.zhongzhi.common.utils.DateFormatUtil;
import com.zhongzhi.dao.ProjectDAO;
import com.zhongzhi.dto.review.CancelReviewDTO;
import com.zhongzhi.dto.review.ProjectReviewDTO;
import com.zhongzhi.dto.review.SetReviewDTO;
import com.zhongzhi.model.*;
import com.zhongzhi.dao.ProjectReviewDAO;
import com.zhongzhi.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhongzhi.vo.judge.ProjectReviewVO;
import com.zhongzhi.vo.review.SendNoticeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 项目评审 服务实现类
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@Service
public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewDAO, ProjectReviewDO> implements ProjectReviewService {
@Autowired
private ProjectService projectService;
@Autowired
private ProjectJudgeService projectJudgeService;
@Autowired
private MatchDictService matchDictService;
@Autowired
private ProjectReviewPeriodService projectReviewPeriodService;
@Autowired
private AliyunSmsUtil aliyunSmsUtil;
@Override
@Transactional(rollbackFor = Exception.class)
public void setReview(SetReviewDTO setReviewDTO) {
if (setReviewDTO.getProjectId().size() == 0) {
throw new HttpException(10047);
}
if (setReviewDTO.getJudgeId().size() == 0) {
throw new HttpException(10048);
}
// Date startTime = null;
// Date endTime = null;
for (Long judgeId : setReviewDTO.getJudgeId()) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(judgeId);
if (projectJudgeDO != null) {
for (Long projectId : setReviewDTO.getProjectId()) {
ProjectDO projectDO = projectService.getById(projectId);
if (projectDO != null) {
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId()));
if (projectReviewPeriodDO == null) {
throw new HttpException(10076);
}
if (projectDO.getProjectAssigned().equals(ProjectReview.UNASSIGNED)) {
ProjectDO project = new ProjectDO();
project.setId(projectId);
project.setProjectAssigned(ProjectReview.ASSIGNED);
if (projectDO.getProjectReview().equals(ProjectReview.SUBMITTED)) {
project.setProjectReview(ProjectReview.TO_REVIEWED);
}
projectService.updateById(project);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectId)
.eq(ProjectReviewDO::getJudgeId, judgeId));
if (projectReview != null) {
throw new HttpException(10053);
}
ProjectReviewDO projectReviewDO = new ProjectReviewDO();
projectReviewDO.setProjectId(projectId);
projectReviewDO.setJudgeId(judgeId);
// projectReviewDO.setProjectSchedule(projectDO.getProjectSchedule());
projectReviewDO.setReviewStatus(ProjectReview.ASSIGNED);
this.baseMapper.insert(projectReviewDO);
}
}
}
}
}
@Override
public void sendNotice(SendNoticeVO sendNoticeVO) {
MatchDictDO matchDictDO = matchDictService.getById(sendNoticeVO.getMatchId());
if (matchDictDO != null) {
for (Long id : sendNoticeVO.getId()) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(id);
if (projectJudgeDO != null) {
int count = this.baseMapper.selectCount(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.ASSIGNED)
.eq(ProjectReviewDO::getJudgeId, id));
List<ProjectReviewPeriodDO> list = projectReviewPeriodService.list(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, matchDictDO.getId()));
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
stringBuffer.append(list.get(i).getProjectGroup() + ":" + DateFormatUtil.format(list.get(i).getStartTime(), DateFormatUtil.FMT_sdf14_L) + "~" + DateFormatUtil.format(list.get(i).getEndTime(), DateFormatUtil.FMT_sdf14_L));
if (i != list.size()) {
stringBuffer.append(";");
}
}
String msg = matchDictDO.getMatchName() + "," + count + "," + stringBuffer.toString();
aliyunSmsUtil.sendTemplateMsgP(msg, projectJudgeDO.getTelephone(), SMSTemplate.REVIEW_INVITATION_NEW);
}
}
}
}
@Override
public Integer selectCount(Long judgeId, Long matchId) {
return this.baseMapper.selectCountByMatchId(judgeId, matchId);
}
@Override
public Integer selectNotReviewCount(Long judgeId, Long matchId) {
return this.baseMapper.selectNotReviewCount(judgeId, matchId);
}
@Override
public List<ProjectReviewVO> getList(String projectSchedule, Long projectId) {
return this.baseMapper.getList(projectSchedule, projectId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelReview(CancelReviewDTO cancelReviewDTO) {
if (cancelReviewDTO.getProjectId() == null) {
throw new HttpException(10047);
}
if (cancelReviewDTO.getJudgeId().size() == 0) {
throw new HttpException(10048);
}
for (Long judgeId : cancelReviewDTO.getJudgeId()) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(judgeId);
if (projectJudgeDO == null) {
throw new HttpException(10070);
}
ProjectDO projectDO = projectService.getById(cancelReviewDTO.getProjectId());
if (projectDO != null) {
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId()));
if (projectReviewPeriodDO.getStartTime().before(new Date())) {
throw new HttpException(10075);
}
if (projectDO != null) {
Integer count = this.baseMapper.selectCount(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectDO.getId()));
/*
只有最后一个评委是撤销修改项目分配状态
*/
if (count == 1) {
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
project.setProjectAssigned(ProjectReview.UNASSIGNED);
projectService.updateById(project);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectDO.getId())
.eq(ProjectReviewDO::getJudgeId, judgeId));
if (projectReview == null) {
throw new HttpException(10071);
}
if (projectReview.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
throw new HttpException(10059);
}
this.baseMapper.deleteById(projectReview.getId());
}
// aliyunSmsUtil.sendTemplateMsg(projectDO.getProjectName(), projectJudgeDO.getTelephone(), SMSTemplate.CANCEL_REVIEW);
}
}
}
@Override
public List<ProjectJudgeDO> getProjectReview(ProjectReviewDTO projectReviewDTO) {
List<ProjectJudgeDO> data = new ArrayList<>();
ProjectDO projectDO = projectService.getById(projectReviewDTO.getProjectId());
if (projectDO != null) {
List<ProjectReviewDO> list = this.baseMapper.selectList(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectReviewDTO.getProjectId()));
for (ProjectReviewDO projectReviewDO : list) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(projectReviewDO.getJudgeId());
if (projectJudgeDO != null) {
data.add(projectJudgeDO);
}
}
}
return data;
}
}
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;
}
package com.zhongzhi.vo.project;
import com.zhongzhi.model.ProjectMaterialsDO;
import lombok.Data;
import java.util.List;
@Data
public class SeedTrackProjectPageVO {
private Long id;
private String projectName;
private String projectGroup;
private String college;
private String name;
private String major;
private String grade;
private String className;
private String studyNo;
private String projectTrack;
private String unitTrack;
private String telephone;
private String projectStatus;
private String applicationTime;
private String projectSchedule;
private String projectProgress;
/**
* 上传加盖公章的附件
*/
/**
* 附件地址
*/
private String projectAttachment;
/**
* 附件文件名
*/
private String projectAttachmentName;
private String projectAttachmentType;
/**
* 项目材料
*/
private List<ProjectMaterialsDO> materials;
/**
* 项目是否获得投资
*/
private String investment;
/**
* 项目PPT
*/
private String projectPptUrl;
/**
* 项目PPT类型
*/
private String projectPptType;
/**
* 项目PPT名称
*/
private String projectPptName;
private Integer editStatus;
}
package com.zhongzhi.vo.project;
import lombok.Data;
@Data
public class VocationalNumVO {
/**
* 校内赛
*/
private Integer schoolProjectNum;
/**
* noPass
*/
private Integer noPassNum;
/**
* pass
*/
private Integer passNum;
/**
* total
*/
private Integer totalNum;
/**
* 待评审
*/
private Integer toReviewNum;
}
package com.zhongzhi.vo.project;
import com.zhongzhi.model.*;
import lombok.Data;
import java.util.List;
@Data
public class VocationalProjectInfoVO extends ProjectDO {
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;
}
package com.zhongzhi.vo.project;
import lombok.Data;
@Data
public class VocationalProjectNum {
/**
* 初赛项目数量
*/
private Long secPreliminaryNUm;
/**
* 复赛项目数量
*/
private Long secRematchNum;
/**
* 决赛项目数量
*/
private Long secFinalNum;
/**
* 已评审项目数量
*/
private Long reviewedNum;
/**
* 待评审项目数量
*/
private Long notReviewedNum;
}
package com.zhongzhi.vo.project;
import lombok.Data;
@Data
public class VocationalReviewNumVO {
// /**
// * 中职复赛项目数量
// */
// private Long vocRematchNum;
// /**
// * 中职决赛项目数量
// */
// private Long vocFinalNum;
/**
* 初赛项目数量
*/
private Integer secPreliminaryNUm;
/**
* 复赛项目数量
*/
private Long secRematchNum;
/**
* 决赛项目数量
*/
private Long secFinalNum;
private Long review;
private Long notReview;
}
package com.zhongzhi.vo.review;
import lombok.Data;
@Data
public class SchoolReviewVO {
private Long id;
/**
* 评审分数
*/
private Double schoolScore;
/**
* 评审意见
*/
private String schoolOpinion;
/**
* 评审结果
*/
private String schoolResult;
/**
* 评审时间
*/
private String schoolTime;
private String schoolJudgeName;
}
package com.zhongzhi.vo.student;
import com.zhongzhi.model.StudentDO;
import lombok.Data;
@Data
public class StudentInfoVO extends StudentDO {
private String token;
private String name;
private String avatar;
}
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
server.port=23507 server.port=23507
# 数据源配置 # 数据源配置
# 数据源配置 # 数据源配置
spring.datasource.url=jdbc:mysql://139.224.253.21:3306/lida?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.url=jdbc:mysql://116.62.57.92:3306/lida?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root spring.datasource.username=devloper
spring.datasource.password=ykhladmin302 spring.datasource.password=dev@1553$
spring.datasource.druid.initialSize=5 spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5 spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=20 spring.datasource.druid.maxActive=20
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
server.port=23507 server.port=23507
server.tomcat.connection-timeout=600000 server.tomcat.connection-timeout=600000
# 数据源配置 # 数据源配置
spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/lida?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai #spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/lida?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://rm-uf62202s176hufw8x0o.mysql.rds.aliyuncs.com:3306/lida?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=ykadmin_new spring.datasource.username=ykadmin_new
......
...@@ -25,8 +25,8 @@ logging.config=classpath:logback-spring.xml ...@@ -25,8 +25,8 @@ logging.config=classpath:logback-spring.xml
# 阿里云短信 # 阿里云短信
sms.product=Dysmsapi sms.product=Dysmsapi
sms.domain=dysmsapi.aliyuncs.com sms.domain=dysmsapi.aliyuncs.com
sms.accessKeyId=LTAI5tPAH7P7WQVeowo517BE sms.accessKeyId=LTAI5tLUBG4B6QxhHrhddc7p
sms.accessKeySecret=0ueqhIfdAZyw5lWlBVSLpAxTtx37RY sms.accessKeySecret=eber38QGHZixTQ6bFfrd80kbg67jIP
sms.rcsapi=http://rcsapi.wo.cn:8000/umcinterface/sendtempletmsg sms.rcsapi=http://rcsapi.wo.cn:8000/umcinterface/sendtempletmsg
sms.cpcode=AABNUV sms.cpcode=AABNUV
sms.excode=210120 sms.excode=210120
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.AdministerDAO">
<select id="getAdministerPage" resultType="com.zhongzhi.vo.administer.GetAdministerPageVO">
SELECT
*
FROM
administer t
WHERE
t.delete_time IS NULL
AND t.role = #{listItem}
<if test="username != null and username != ''">
AND t.username LIKE concat('%', #{username}, '%')
</if>
</select>
<update id="updateAdminister">
update administer t
set t.telephone = #{telephone},
t.username = #{username},
t.avatar = #{avatar},
t.role = #{role},
t.college = #{college}
where id = #{id}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.AdministerTrackMappingDAO">
<select id="administerTracks" parameterType="long" resultType="com.zhongzhi.model.ProjectTrackDO">
SELECT
t2.*
FROM
administer_track_mapping t
left join project_track t2 on t.track_id = t2.id
WHERE
t.delete_time IS NULL
and t2.delete_time is null
AND t.administer_id = #{userId}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.CollegesDictDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.CollegesDictDO">
<id column="id" property="id"/>
<result column="code" property="code"/>
<result column="education" property="education"/>
<result column="name" property="name"/>
<result column="account" property="account"/>
<result column="password" property="password"/>
<result column="address" property="address"/>
<result column="leader_name" property="leaderName"/>
<result column="leader_post" property="leaderPost"/>
<result column="leader_phone" property="leaderPhone"/>
<result column="contact_name" property="contactName"/>
<result column="contact_post" property="contactPost"/>
<result column="contact_phone" property="contactPhone"/>
<result column="login_time" property="loginTime"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
<result column="login_status" property="loginStatus"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, code, name, education, account, password, address, login_time, create_time, update_time, delete_time,loginStatus
</sql>
<select id="listPage" resultType="com.zhongzhi.vo.college.CollegePageVO">
select
*
from colleges_dict
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
and delete_time is null
</where>
</select>
<select id="getAwardedList" resultType="com.zhongzhi.vo.college.AwardedListVO">
select
*
from colleges_dict
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name} ,'%')
</if>
and delete_time is null
</where>
</select>
<select id="getAwardedListAll" resultType="com.zhongzhi.vo.college.AwardedListVO">
select
*
from colleges_dict
where delete_time is null
</select>
<select id="getCollegeInfo" resultType="com.zhongzhi.vo.college.GetCollegeInfoVO">
SELECT
t.id,
t.NAME,
t.CODE
FROM
colleges_dict t
WHERE
t.delete_time IS NULL
<if test="name != null and name != ''">
AND t.`name` LIKE concat('%',#{name} ,'%')
</if>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.FinalMatchMemberDAO">
<select id="registerMembers" parameterType="long" resultType="com.zhongzhi.vo.college.RegisterMembersVO">
SELECT
t.id,
t.project_id,
t3.college,
t2.`name` as userName,
t2.type,
t2.telephone,
t.id_card,
t3.project_name,
t.member_type
FROM
final_match_member t
LEFT JOIN project_member t2 ON t.member_id = t2.id
LEFT JOIN project t3 ON t.project_id = t3.id
WHERE
t.delete_time IS NULL
AND t2.delete_time IS NULL
AND t3.delete_time IS NULL
and t.project_id is not null
AND t.college_id =#{collegeId}
and t3.match_id = #{matchId}
</select>
<select id="otherMembers" resultType="com.zhongzhi.vo.college.RegisterMembersVO">
SELECT
t.id,
t4.`name` as college,
t.user_name,
t.member_type,
t.telephone,
t.id_card,
t3.project_name
FROM
final_match_member t
LEFT JOIN project t3 ON t.project_id = t3.id
left join colleges_dict t4 on t.college_id = t4.id
WHERE
t.delete_time IS NULL
AND t3.delete_time IS NULL
and t.project_id is null
AND t.college_id =#{collegeId}
and t.match_id = #{matchId}
and t.member_type != '车'
</select>
<select id="cars" resultType="com.zhongzhi.vo.college.RegisterMembersVO">
SELECT
t.id,
t4.`name` as college,
t.user_name,
t.member_type,
t.telephone,
t.id_card,
t3.project_name
FROM
final_match_member t
LEFT JOIN project t3 ON t.project_id = t3.id
left join colleges_dict t4 on t.college_id = t4.id
WHERE
t.delete_time IS NULL
AND t3.delete_time IS NULL
and t.project_id is null
AND t.college_id =#{collegeId}
and t.match_id = #{matchId}
and t.member_type = '车'
</select>
<select id="latestUpdateTime" parameterType="long" resultType="string">
SELECT
max( ddd )
FROM
(
SELECT
max( t.update_time ) ddd
FROM
final_match_member t
WHERE
t.college_id = #{collegeId} UNION
SELECT
max( t1.create_time ) ddd
FROM
final_match_member t1
WHERE
t1.college_id = #{collegeId} UNION
SELECT
max( t2.delete_time ) ddd
FROM
final_match_member t2
WHERE
t2.college_id = #{collegeId}
) t4
</select>
<select id="schools" resultType="com.zhongzhi.vo.college.SchoolsVO">
SELECT
t.college_id,
t3.NAME,
count( 1 ) AS cnt
FROM
final_match_member t
LEFT JOIN colleges_dict t3 ON t.college_id = t3.id
WHERE
t.delete_time IS NULL
AND t.match_id = #{matchId}
<if test="name != null and name != ''">
and t3.`name` like concat('%', #{name}, '%')
</if>
and t.member_type != '车'
GROUP BY
t.college_id,t3.NAME
</select>
<select id="exportList" resultType="com.zhongzhi.vo.college.ExportListVO">
SELECT
t2.`name` collegeName,
t.user_name,
t.member_type,
t.telephone,
t.id_card,
t4.project_name
FROM
final_match_member t
LEFT JOIN colleges_dict t2 ON t.college_id = t2.id
LEFT JOIN project t4 ON t.project_id = t4.id
WHERE
t.delete_time IS NULL
AND t2.delete_time IS NULL
AND t4.delete_time IS NULL
AND t.match_id =#{matchId}
<if test="collegeId != null and collegeId != ''">
and t.college_id = #{collegeId}
</if>
ORDER BY
t2.`name`,
t4.project_name DESC,
t.order_no
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.MatchDictDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.MatchDictDO">
<id column="id" property="id"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
<result column="match_name" property="matchName"/>
<result column="match_date" property="matchDate"/>
<result column="status" property="status"/>
<result column="match_type" property="matchType"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_time,
update_time,
delete_time,
id, match_name, match_date, status, match_type
</sql>
<select id="getSeedTrackMatchPage" resultType="com.zhongzhi.vo.match.MatchDictVO">
select
*
from match_dict t
where delete_time is null
order by t.match_date desc,t.month desc
</select>
<select id="getList" resultType="com.zhongzhi.model.MatchDictDO">
SELECT
c.id,
count(1)
FROM project p
LEFT JOIN student s ON s.id = p.proposer_id
LEFT JOIN colleges_dict c ON c.`name` = s.college
<where>
AND p.project_status != '填写中'
<if test="projectType != null and projectType != ''">
AND p.project_type = #{projectType}
</if>
<if test="projectGroup != null and projectGroup != ''">
AND p.project_group = #{projectGroup}
</if>
AND p.delete_time IS NULL
AND s.delete_time IS NULL
AND c.delete_time IS NULL
</where>
GROUP BY
c.id
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.PermissionsDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.PermissionsDO">
<id column="id" property="id"/>
<result column="parent_id" property="parentId"/>
<result column="name" property="name"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, parent_id, name, create_time, update_time, delete_time
</sql>
<select id="getPermissionById" resultType="com.zhongzhi.vo.permission.PermissionVO">
SELECT distinct
t2.*
FROM
administer_permission t
left join permissions t2 on t.permission_id = t2.id
WHERE
t.delete_time IS NULL
and t2.delete_time is null
<if test="id != null and id != ''">
and t.administer_id = #{id}
</if>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectDAO">
<select id="getListPage" resultType="com.zhongzhi.vo.project.ProjectPageVO">
select
p.id,
p.match_id,
p.project_name,
p.project_group,
p.project_schedule,
p.project_status,
p.project_progress,
p.edit_status,
s.name,
p.project_group,
s.college,
p.project_track,
p.unit_track,
s.grade,
s.class_name
from project p
left join student s on s.id = p.proposer_id
<where>
<if test="matchId != null and matchId != ''">
and match_id = #{matchId}
</if>
and proposer_id = #{proposerId}
and s.delete_time is null
and p.delete_time is null
</where>
</select>
<select id="getMainTrackProjectPage" resultType="com.zhongzhi.vo.project.MainTrackProjectPageVO">
select
p.*,
DATE_FORMAT(p.create_time, '%Y-%m-%d') as applicationTime
from project p
left join project_member pm on pm.project_id = p.id
<where>
and p.match_id = #{matchId}
and pm.type = #{type}
and p.project_type = #{projectType}
<if test="projectSchedule != null and projectSchedule != ''">
and p.project_schedule = #{projectSchedule}
</if>
<if test="projectStatus != null and projectStatus != ''">
and p.project_status = #{projectStatus}
</if>
<if test="itemField != null and itemField != ''">
and p.item_field = #{itemField}
</if>
<if test="name != null and name != ''">
and (p.project_name = #{name} or pm.school = #{name})
</if>
and (p.project_status != '填写中' and p.project_status != '已撤回')
and p.delete_time is null
and pm.delete_time is null
</where>
</select>
<select id="getSeedTrackProjectPage" resultType="com.zhongzhi.vo.project.SeedTrackProjectPageVO">
select
p.*,
s.college,
s.name,
s.major,
s.telephone,
DATE_FORMAT(p.create_time, '%Y-%m-%d') as applicationTime,
p.unit_track,
p.project_track,
s.grade,
s.study_no,
s.class_name
from project p
left join student s ON s.id = p.proposer_id
<where>
and p.match_id = #{matchId}
and p.project_status != '填写中'
<if test="school != null and school != ''">
and s.college = #{school}
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
<if test="projectTrack != null and projectTrack != ''">
and p.project_track = #{projectTrack}
</if>
<if test="projectStatus != null and projectStatus != ''">
and p.project_status = #{projectStatus}
</if>
<if test="itemField != null and itemField != ''">
and p.item_field = #{itemField}
</if>
<if test="name != null and name != ''">
and (p.project_name like concat('%',#{name},'%') or s.college like concat('%',#{name},'%'))
</if>
and p.delete_time is null
and s.delete_time is null
</where>
</select>
<select id="getReviewList" resultType="com.zhongzhi.vo.project.ReviewListVO">
select
t1.*,
t2.college,
t2.major,
t2.telephone,
t2.grade,
t2.class_name
from project t1
left join student t2 on t1.proposer_id = t2.id
<where>
<if test="matchId != null and matchId != ''">
and t1.match_id = #{matchId}
</if>
<if test="projectReview != null and projectReview != ''">
and t1.project_review = #{projectReview}
</if>
<if test="projectName != null and projectName != ''">
and (t1.project_name like concat('%', #{projectName}, '%') or t2.college like concat('%', #{projectName}, '%'))
</if>
<if test="projectGroup != null and projectGroup != ''">
and t1.project_group = #{projectGroup}
</if>
<if test="projectAssigned != null and projectAssigned != ''">
and t1.project_assigned = #{projectAssigned}
</if>
and t1.delete_time is null
<if test="college!= null and college != ''">
and t2.college = #{college}
</if>
and t1.project_status != '填写中'
</where>
</select>
<select id="getProjectReviewPage" resultType="com.zhongzhi.vo.project.ProjectPageVO">
select
p.*,
pr.review_status as reviewStatus,
pr.review_score as reviewScore,
pr.score as score,
pr.review_opinion,
t.college,
t.major,
t.telephone,
t.class_name,
t.grade
from project p
left join project_review pr on pr.project_id = p.id
left join student t on p.proposer_id = t.id
<where>
<if test="judgeId != null and judgeId != ''">
and pr.judge_id = #{judgeId}
</if>
<if test="matchId != null and matchId != ''">
and p.match_id = #{matchId}
</if>
<if test="projectReview != null and projectReview != ''">
and pr.review_status = #{projectReview}
</if>
<if test="projectName != null and projectName != ''">
and p.project_name like concat('%', #{projectName}, '%')
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
and p.delete_time is null
and pr.delete_time is null
</where>
</select>
<select id="getProjectReviewList" resultType="com.zhongzhi.model.ProjectDO">
select
p.*,
pr.project_schedule as projectSchedule,
pr.review_status as projectReview
from project p
left join project_review pr on p.id = pr.project_id
where
p.match_id = #{matchId}
and pr.judge_id = #{id}
and p.delete_time is null
and pr.delete_time is null
<if test="projectProgress != null and projectProgress != '' ">
and p.project_progress = #{projectProgress}
</if>
</select>
<select id="getProjectByCollege" resultType="com.zhongzhi.model.ProjectDO">
select
p.*
from project p
left join student s on s.id = p.proposer_id
<where>
and p.match_id = #{matchId}
and s.college = #{name}
<if test="projectProgress != null and projectProgress != ''">
and p.project_progress = #{projectProgress}
</if>
and (p.project_status != '填写中' or p.project_status != '不予提交市级复赛')
and p.delete_time is null
and s.delete_time is null
</where>
</select>
<select id="getSeedTrackProjectList" resultType="com.zhongzhi.model.ProjectDO">
select
p.*
from project p
left join student s on s.id = p.proposer_id
<where>
<if test="matchId != null and matchId !=''">
and p.match_id = #{matchId}
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
<if test="name != null and name != ''">
and s.college = #{name}
</if>
<if test="projectProgress!= null and projectProgress != ''">
and p.project_progress = #{projectProgress}
</if>
and p.project_status != '填写中'
and p.delete_time is null
and s.delete_time is null
<if test=" userId != null and userId != ''">
and p.project_track in (
SELECT
t2.project_track
FROM
administer_track_mapping t
LEFT JOIN project_track t2 ON t.track_id = t2.id
WHERE
t.delete_time IS NULL
AND t.administer_id = #{userId}
)
</if>
<if test="college!= null and college != ''">
and s.college = #{college}
</if>
</where>
</select>
<select id="selectListByCollege" resultType="com.zhongzhi.model.ProjectDO">
select
p.*
from project p
left join student s on s.id = p.proposer_id
<where>
<if test="name != null and name != ''">
and s.college = #{name}
</if>
<if test="projectType != null and projectType != ''">
and p.project_type = #{projectType}
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
and p.project_status != '填写中'
and s.delete_time is null
and p.delete_time is null
</where>
</select>
<select id="getList" resultType="com.zhongzhi.model.ProjectDO">
select
p.*
from project p
left join student s on s.id = p.proposer_id
<where>
and p.match_id = #{matchId}
and s.college = #{name}
<if test="projectGroup != null and projectGroup != ''">
and p.project_group like concat('%', #{projectGroup}, '%')
</if>
and p.project_status != '填写中'
and p.delete_time is null
and s.delete_time is null
</where>
</select>
<select id="getProjectList" resultType="com.zhongzhi.vo.project.SeedTrackProjectPageVO">
select
p.*,
s.college,
s.name,
s.major,
s.telephone,
DATE_FORMAT(p.create_time, '%Y-%m-%d') as applicationTime
from project p
left join student s ON s.id = p.proposer_id
<where>
and p.match_id = #{matchId}
and p.project_group = #{projectGroup}
and p.project_status != '填写中'
<if test="projectSchedule != null and projectSchedule != ''">
and p.project_schedule = #{projectSchedule}
</if>
<if test="projectStatus != null and projectStatus != ''">
<if test="projectStatus == '已评审'">
and p.project_status != '待评审'
</if>
<if test="projectStatus != '已评审'">
and p.project_status = #{projectStatus}
</if>
</if>
<if test="name != null and name != ''">
and (p.project_name like concat('%',#{name},'%') or s.college like concat('%',#{name},'%'))
</if>
and p.delete_time is null
and s.delete_time is null
</where>
</select>
<select id="getListByJudgeId" resultType="com.zhongzhi.model.ProjectDO">
select
p.*
from project p
left join project_review pr on pr.project_id = p.id
<where>
<if test="matchId != null and matchId !=''">
and p.match_id = #{matchId}
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
<if test="judgeId != null and judgeId != ''">
and pr.judge_id = #{judgeId}
</if>
and p.project_status != '填写中'
and p.delete_time is null
and pr.delete_time is null
</where>
</select>
<select id="getProjectById" resultType="com.zhongzhi.model.ProjectDO">
select
*
from project
<where>
<choose>
<when test="ids.length != 0">
AND ( id in
<foreach collection="ids" open="(" separator="," close=")" item="item">
#{item}
</foreach>
)
</when>
</choose>
AND delete_time is null
</where>
</select>
<select id="projects" resultType="com.zhongzhi.model.ProjectDO">
SELECT
*
FROM
project t
WHERE
t.delete_time IS NULL
AND t.match_id = #{matchId}
AND t.college = #{college}
and t.project_schedule='市级决赛项目'
AND t.id NOT IN (
SELECT
t2.project_id
FROM
final_match_member t2
WHERE
t2.delete_time IS NULL
AND t2.college_id = #{collegeId}
AND t2.match_id = #{matchId}
and t2.project_id is not null
)
</select>
<select id="collegeNum" resultType="integer">
SELECT
count( DISTINCT t2.college )
FROM
project t
LEFT JOIN student t2 ON t.proposer_id = t2.id
WHERE
t.delete_time IS NULL
AND t2.delete_time IS NULL
</select>
<select id="getVocationalReviewNum" resultType="com.zhongzhi.model.ProjectDO">
SELECT
p.*
FROM
project p
left join student s on p.proposer_id = s.id
WHERE
p.delete_time is null
and p.match_id = #{matchId}
AND p.project_review IN ("待评审","已评审")
and p.project_status != '填写中'
<if test="college!= null and college != ''">
and s.college = #{college}
</if>
</select>
<select id="getVocationalAssignNum" resultType="com.zhongzhi.model.ProjectDO">
SELECT
*
FROM
project p
left join student s on p.proposer_id = s.id
WHERE
p.delete_time is null
and p.match_id = #{matchId}
AND p.project_assigned is not null
and p.project_status != '填写中'
<if test="college!= null and college != ''">
and s.college = #{college}
</if>
</select>
<select id="exportProjectReview" resultType="com.zhongzhi.model.ProjectDO">
SELECT
p.*
FROM
project p
left join student s on p.proposer_id = s.id
WHERE
p.delete_time is null
and p.match_id = #{matchId}
<if test="college!= null and college != ''">
and s.college = #{college}
</if>
and p.project_status != '填写中'
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectJudgeDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.ProjectJudgeDO">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="telephone" property="telephone"/>
<result column="position" property="position"/>
<result column="unit" property="unit"/>
<result column="id_card" property="idCard"/>
<result column="bank_name" property="bankName"/>
<result column="bank_card" property="bankCard"/>
<result column="status" property="status"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, username, telephone, position, unit, status, create_time, update_time, delete_time
</sql>
<select id="getProjectJudgePage" resultType="com.zhongzhi.vo.judge.ProjectJudgePageVO">
select
*
from project_judge
<where>
<if test="username != null and username != ''">
and username like concat('%', #{username}, '%')
</if>
<if test="status != null and status != ''">
and status = #{status}
</if>
and delete_time is null
</where>
</select>
<select id="projectJudgesAssigned" resultType="com.zhongzhi.vo.judge.ProjectJudgePageVO">
select
distinct pj.*
from project_judge pj
left join project_review pr on pr.judge_id = pj.id
left join project p on p.id = pr.project_id
<where>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
<if test="projectSchedule != null and projectSchedule != ''">
and p.project_schedule = #{projectSchedule}
</if>
and p.match_id = #{matchId}
and pj.status = 1
and p.delete_time is null
and pj.delete_time is null
and pr.delete_time is null
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectReviewDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.ProjectReviewDO">
<id column="id" property="id"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
<result column="project_id" property="projectId"/>
<result column="judge_id" property="judgeId"/>
<result column="review_score" property="reviewScore"/>
<result column="score" property="score"/>
<result column="review_opinion" property="reviewOpinion"/>
<result column="project_schedule" property="projectSchedule"/>
<result column="review_time" property="reviewTime"/>
<result column="review_status" property="reviewStatus"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_time,
update_time,
delete_time,
id, project_id, judge_id, review_score, score, review_opinion, project_schedule, review_time, review_status
</sql>
<select id="getList" resultType="com.zhongzhi.vo.judge.ProjectReviewVO">
select
pj.id,
pj.username as judgesName,
pr.score as score,
pr.review_opinion
from project_review pr
left join project_judge pj on pj.id = pr.judge_id
where pr.project_id = #{projectId}
and pr.delete_time is null
and pj.delete_time is null
</select>
<select id="selectCountByMatchId" resultType="java.lang.Integer">
select
count(*)
from project_review pr
left join project p on pr.project_id = p.id
where p.match_id = #{matchId}
and pr.judge_id = #{judgeId}
and pr.delete_time is null
and p.delete_time is null
</select>
<select id="selectNotReviewCount" resultType="java.lang.Integer">
select
count(*)
from project_review pr
left join project p on pr.project_id = p.id
where p.match_id = #{matchId}
and pr.judge_id = #{judgeId}
and pr.review_status = '已分配'
and pr.delete_time is null
and p.delete_time is null
</select>
<update id="updateProjectReview">
UPDATE project_review t
set
review_score = #{reviewScore},
score = #{score},
review_opinion = #{reviewOpinion}
where t.id = #{id}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectScheduleRecordDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.ProjectScheduleRecordDO">
<id column="id" property="id"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
<result column="proposer_id" property="proposerId"/>
<result column="project_id" property="projectId"/>
<result column="match_id" property="matchId"/>
<result column="college" property="college"/>
<result column="project_type" property="projectType"/>
<result column="project_schedule" property="projectSchedule"/>
<result column="project_status" property="projectStatus"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_time,
update_time,
delete_time,
id, proposer_id, project_id, match_id, project_type, project_schedule, college, project_status
</sql>
<select id="getProjectScheduleRecord" resultType="com.zhongzhi.vo.scheduleRecord.ProjectScheduleRecordVO">
select
min(p.id) id,
s.college as collegeName
from project p
left join student s on s.id = p.proposer_id
<where>
<if test="name != null and name != ''">
and p.project_name like concat('%', #{name}, '%')
</if>
and p.match_id = #{matchId}
and p.delete_time is null
and s.delete_time is null
</where>
group by s.college
</select>
<select id="getList" resultType="com.zhongzhi.model.ProjectScheduleRecordDO">
select
ps.*
from project_schedule_record ps
left join project p on p.id = ps.project_id
<where>
<if test="matchId != null and matchId != ''">
and ps.match_id = #{matchId}
</if>
<if test="college != null and college != ''">
and ps.college = #{college}
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
and ps.delete_time is null
and p.delete_time is null
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhongzhi.dao.ProjectTrackDAO">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.zhongzhi.model.ProjectTrackDO">
<id column="id" property="id"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="delete_time" property="deleteTime"/>
<result column="project_track" property="projectTrack"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_time,
update_time,
delete_time,
id, project_track
</sql>
</mapper>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!