();
+ // 如果指定了x-oss-complete-all:yes,则OSS会列举当前UploadId已上传的所有Part,然后按照PartNumber的序号排序并执行CompleteMultipartUpload操作。
+ // 如果指定了x-oss-complete-all:yes,则不允许继续指定body,否则报错。
+ // headers.put("x-oss-complete-all","yes");
+ // completeMultipartUploadRequest.setHeaders(headers);
+
+ // 完成分片上传。
+ CompleteMultipartUploadResult completeMultipartUploadResult = ossClient.completeMultipartUpload(completeMultipartUploadRequest);
+ uploadFileVO.setUrl(completeMultipartUploadResult.getLocation().replace("http","https"));
+ System.out.println(completeMultipartUploadResult.getLocation());
+ } catch (OSSException oe) {
+ System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ + "but was rejected with an error response for some reason.");
+ System.out.println("Error Message:" + oe.getErrorMessage());
+ System.out.println("Error Code:" + oe.getErrorCode());
+ System.out.println("Request ID:" + oe.getRequestId());
+ System.out.println("Host ID:" + oe.getHostId());
+ } catch (ClientException ce) {
+ System.out.println("Caught an ClientException, which means the client encountered "
+ + "a serious internal problem while trying to communicate with OSS, "
+ + "such as not being able to access the network.");
+ System.out.println("Error Message:" + ce.getMessage());
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (ossClient != null) {
+ ossClient.shutdown();
+ }
+ }
+
+ return ResponseData.generateCreatedResponse(0, uploadFileVO);
+ }
+
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/PermissionsController.java a/src/main/java/com/zhongzhi/controller/PermissionsController.java
new file mode 100644
index 0000000..59b2ec4
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/PermissionsController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 权限表 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@RestController
+@Api(tags = "权限")
+@RequestMapping("/permissions")
+public class PermissionsController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectAwardController.java a/src/main/java/com/zhongzhi/controller/ProjectAwardController.java
new file mode 100644
index 0000000..8cab4a1
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectAwardController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目奖项 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@RestController
+@RequestMapping("/project-award-do")
+public class ProjectAwardController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectController.java a/src/main/java/com/zhongzhi/controller/ProjectController.java
new file mode 100644
index 0000000..1cb2a15
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectController.java
@@ -0,0 +1,828 @@
+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;
+
+/**
+ *
+ * 项目表 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-11
+ */
+@RestController
+@Api(tags = "项目")
+@RequestMapping("/project")
+public class ProjectController {
+
+ @Autowired
+ private ProjectService projectService;
+
+ @PostMapping(value = "/getProjectDetail")
+ @LoginRequired({Platform.student})
+ @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,null);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/withdrawn")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端 ---撤回申请:id/项目ID")
+ public ResponseVO withdrawn(@RequestBody ProjectDO projectDO) {
+ 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) {
+ return ResponseData.generateCreatedResponse(0,projectService.createSeedTrackProject(createSeedTrackProjectDTO));
+ }
+
+ @PostMapping("judgeThemeDone")
+ @LoginRequired((Platform.student))
+ @ApiOperation("学生端 学生报过了哪些主题")
+ public ResponseVO judgeThemeDone(@RequestBody CreateSeedTrackProjectDTO createSeedTrackProjectDTO){
+ return ResponseData.generateCreatedResponse(0,projectService.judgeThemeDone(createSeedTrackProjectDTO));
+ }
+
+ @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(@RequestBody ProjectDO projectDO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getCulturalProjectById(projectDO));
+ }
+
+ @PostMapping(value = "/uploadTechnologyProjectAttachment")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端 --- 上传科技创新项目加盖公章的附件: printAttachment/附件地址, printAttachmentType/附件类型, printAttachmentName/附件名称")
+ public ResponseVO uploadTechnologyProjectAttachment(@RequestBody PrintAttachmentDTO printAttachmentDTO) {
+ printAttachmentDTO.setProjectGroup(ProjectType.TECHNOLOGY_INNOVATION_GROUP);
+ projectService.uploadPrintAttachment(printAttachmentDTO,ProjectType.TECHNOLOGY_INNOVATION_GROUP);
+ 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,ProjectType.TECHNOLOGY_INNOVATION_GROUP);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/getTechnologyProjectMember")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端 ---查询科技创新项目团队信息")
+ public ResponseVO getTechnologyProjectMember() {
+ return ResponseData.generateCreatedResponse(0, projectService.getProjectMember(ProjectType.TECHNOLOGY_INNOVATION_GROUP,null,ProjectType.TECHNOLOGY_INNOVATION_GROUP));
+ }
+
+ @PostMapping(value = "/uploadCulturalProjectAttachment")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端 --- 上传红色文创项目加盖公章的附件: printAttachment/附件地址, printAttachmentType/附件类型, printAttachmentName/附件名称")
+ public ResponseVO uploadCulturalProjectAttachment(@RequestBody PrintAttachmentDTO printAttachmentDTO) {
+ printAttachmentDTO.setProjectGroup(ProjectType.CULTURAL_CREATIVE_GROUP);
+ projectService.uploadPrintAttachment(printAttachmentDTO,ProjectType.CULTURAL_CREATIVE_GROUP);
+ 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,ProjectType.CULTURAL_CREATIVE_GROUP);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/getCulturalProjectMember")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端 ---查询红色文创项目团队信息")
+ public ResponseVO getCulturalProjectMember(@RequestBody ProjectDO projectDO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getProjectMember(ProjectType.CULTURAL_CREATIVE_GROUP,projectDO.getThemeName(),"文化创意"));
+ }
+
+ @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,null,ProjectType.TECHNOLOGY_INNOVATION_GROUP);
+ }
+
+ @PostMapping(value = "/downloadCulturalPDF")
+ @LoginRequired({Platform.student})
+ @ApiOperation("学生端 --- 种子赛道红色文创申请表下载 themeName")
+ public void downloadCulturalPDF(@RequestBody DownloadCulturalPDFDTO downloadCulturalPDFDTO) {
+ projectService.downloadPDF(ProjectType.CULTURAL_CREATIVE_GROUP,downloadCulturalPDFDTO.getThemeName(),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/1:市级复赛通过, 2:市级优胜奖,3/6:市级银奖,4:市级铜奖,5:市级金奖")
+ 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:市级金奖")
+ 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")
+ @LoginRequired({Platform.center})
+ @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")
+ 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("中心端 --- 数据概览")
+ 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("学生端(职教)--创建职教项目:项目logo/logoUri、项目名称/projectName、所属领域/itemField、项目概述/projectIntro、国家级重大、重点科研项目的科研成果转化项目/projectTransform、" +
+ "学校科技成果转化/resultTransfer、参赛申报人为科技成果的完成人或所有人/competitionOwner、参赛申报人为科技成果的第一完成人或所有人/competitionFirst、师生共创/bothInvention、组别/projectProgress、项目进展/projectStage" +
+ "公司名称/companyName、法人姓名/legalPersonName、法人职务/position、注册资金/registerFund、注册时间/registerDate、注册省份/registerProvince、注册地址/registerAddress、统一社会信用代码/unifyCode、财务报表地址/financialStatement、是否获得投资/investment、" +
+ "ownership(股权结构): [{ shareholderStatus/股东身份、shareholderName/股东名称、shareholdingRatio/持股比例 }]" +
+ "隐私设置/privacySetting(保密,公开)、materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址、项目PPT地址/projectPptUrl、项目TTP类型/projectPptType、项目PPT名称/projectPptName" +
+ "patent(获得专利): [{专利国别/country、公开号/publicationNumber、专利标题/patentTitle、专利类型/patentType、专利号/patentNumber、专利申请人/patentApplicants、获得时间/issuedTime、到期时间/expirationTime、发明人/inventor、其他发明人/otherInventors}]"+
+ "paper(论文发表): [{论文名称/paperTitle、发表期刊/publishedJournals、DOI号/doi、是否有共同/common、第一作者/firstAuthor、其他作者/otherAuthor}]"+
+ "award(奖项): [{奖项名称/awardTitle、获奖项目名称/awardProjectTitle、level/级别、获奖人/prizewinner、获奖时间/winningTime}]"+
+ "copyright(软件著作): [{软件名称/dynacomm、著作权人/copyrightOwner、权利获取方式/rightAcquisitionMethod、开发完成日期/developmentDate、开发发表日期/publishedDate、权利范围/interestField、登记号/registerNumber}]"+
+ "works(作品著作): [{作品名称/worksName、作者/author、创作完成日期/completionDate、首次发表日期/firstPublicationDate、作品类别/worksType、登记号/registerNumber}]" +
+ "trademark(商标): [{国际分类号/classificationNumber、商标名称/tradeName、注册人/registeredPerson、注册时间/registeredDate、有效日期/effectiveDate、商标编号/trademarkNumber}]" +
+ "vodUrl")
+ public ResponseVO createVocationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO) {
+ projectService.createVocationalProject(createVocationalProjectDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ /* -- 国际合作(学生端) -- */
+ @PostMapping(value = "createInternationalProject")
+ @LoginRequired({ Platform.student })
+ @ApiOperation("学生端(职教)--创建职教项目:项目logo/logoUri、项目名称/projectName、所属领域/itemField、项目概述/projectIntro、国家级重大、重点科研项目的科研成果转化项目/projectTransform、" +
+ "学校科技成果转化/resultTransfer、参赛申报人为科技成果的完成人或所有人/competitionOwner、参赛申报人为科技成果的第一完成人或所有人/competitionFirst、师生共创/bothInvention、组别/projectProgress、项目进展/projectStage" +
+ "公司名称/companyName、法人姓名/legalPersonName、法人职务/position、注册资金/registerFund、注册时间/registerDate、注册省份/registerProvince、注册地址/registerAddress、统一社会信用代码/unifyCode、财务报表地址/financialStatement、是否获得投资/investment、" +
+ "ownership(股权结构): [{ shareholderStatus/股东身份、shareholderName/股东名称、shareholdingRatio/持股比例 }]" +
+ "隐私设置/privacySetting(保密,公开)、materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址、项目PPT地址/projectPptUrl、项目TTP类型/projectPptType、项目PPT名称/projectPptName" +
+ "patent(获得专利): [{专利国别/country、公开号/publicationNumber、专利标题/patentTitle、专利类型/patentType、专利号/patentNumber、专利申请人/patentApplicants、获得时间/issuedTime、到期时间/expirationTime、发明人/inventor、其他发明人/otherInventors}]"+
+ "paper(论文发表): [{论文名称/paperTitle、发表期刊/publishedJournals、DOI号/doi、是否有共同/common、第一作者/firstAuthor、其他作者/otherAuthor}]"+
+ "award(奖项): [{奖项名称/awardTitle、获奖项目名称/awardProjectTitle、level/级别、获奖人/prizewinner、获奖时间/winningTime}]"+
+ "copyright(软件著作): [{软件名称/dynacomm、著作权人/copyrightOwner、权利获取方式/rightAcquisitionMethod、开发完成日期/developmentDate、开发发表日期/publishedDate、权利范围/interestField、登记号/registerNumber}]"+
+ "works(作品著作): [{作品名称/worksName、作者/author、创作完成日期/completionDate、首次发表日期/firstPublicationDate、作品类别/worksType、登记号/registerNumber}]" +
+ "trademark(商标): [{国际分类号/classificationNumber、商标名称/tradeName、注册人/registeredPerson、注册时间/registeredDate、有效日期/effectiveDate、商标编号/trademarkNumber}]" +
+ "vodUrl")
+ public ResponseVO createInternationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO) {
+ projectService.createInternationalProject(createVocationalProjectDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "updateVocationalProject")
+ @LoginRequired({ Platform.student })
+ @ApiOperation("学生端(职教)--修改职教项目:id/项目ID、项目logo/logoUri、所属领域/itemField、项目概述/projectIntro、国家级重大、重点科研项目的科研成果转化项目/projectTransform、" +
+ "学校科技成果转化/resultTransfer、参赛申报人为科技成果的完成人或所有人/competitionOwner、参赛申报人为科技成果的第一完成人或所有人/competitionFirst、师生共创/bothInvention、组别/projectProgress、项目进展/projectStage" +
+ "公司名称/companyName、法人姓名/legalPersonName、法人职务/position、注册资金/registerFund、注册时间/registerDate、注册省份/registerProvince、注册地址/registerAddress、统一社会信用代码/unifyCode、财务报表地址/financialStatement、是否获得投资/investment、" +
+ "ownership(股权结构): [{ shareholderStatus/股东身份、shareholderName/股东名称、shareholdingRatio/持股比例 }]" +
+ "隐私设置/privacySetting(保密,公开)、materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址、项目PPT地址/projectPptUrl、项目TTP类型/projectPptType、项目PPT名称/projectPptName" +
+ "patent(获得专利): [{专利国别/country、公开号/publicationNumber、专利标题/patentTitle、专利类型/patentType、专利号/patentNumber、专利申请人/patentApplicants、获得时间/issuedTime、到期时间/expirationTime、发明人/inventor、其他发明人/otherInventors}]"+
+ "paper(论文发表): [{论文名称/paperTitle、发表期刊/publishedJournals、DOI号/doi、是否有共同/common、第一作者/firstAuthor、其他作者/otherAuthor}]"+
+ "award(奖项): [{奖项名称/awardTitle、获奖项目名称/awardProjectTitle、level/级别、获奖人/prizewinner、获奖时间/winningTime}]"+
+ "copyright(软件著作): [{软件名称/dynacomm、著作权人/copyrightOwner、权利获取方式/rightAcquisitionMethod、开发完成日期/developmentDate、开发发表日期/publishedDate、权利范围/interestField、登记号/registerNumber}]"+
+ "works(作品著作): [{作品名称/worksName、作者/author、创作完成日期/completionDate、首次发表日期/firstPublicationDate、作品类别/worksType、登记号/registerNumber}]" +
+ "trademark(商标): [{国际分类号/classificationNumber、商标名称/tradeName、注册人/registeredPerson、注册时间/registeredDate、有效日期/effectiveDate、商标编号/trademarkNumber}]")
+ public ResponseVO updateVocationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO) {
+ projectService.updateVocationalProject(createVocationalProjectDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "updateInternationalProject")
+ @LoginRequired({ Platform.student })
+ @ApiOperation("学生端(职教)--修改职教项目:id/项目ID、项目logo/logoUri、所属领域/itemField、项目概述/projectIntro、国家级重大、重点科研项目的科研成果转化项目/projectTransform、" +
+ "学校科技成果转化/resultTransfer、参赛申报人为科技成果的完成人或所有人/competitionOwner、参赛申报人为科技成果的第一完成人或所有人/competitionFirst、师生共创/bothInvention、组别/projectProgress、项目进展/projectStage" +
+ "公司名称/companyName、法人姓名/legalPersonName、法人职务/position、注册资金/registerFund、注册时间/registerDate、注册省份/registerProvince、注册地址/registerAddress、统一社会信用代码/unifyCode、财务报表地址/financialStatement、是否获得投资/investment、" +
+ "ownership(股权结构): [{ shareholderStatus/股东身份、shareholderName/股东名称、shareholdingRatio/持股比例 }]" +
+ "隐私设置/privacySetting(保密,公开)、materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址、项目PPT地址/projectPptUrl、项目TTP类型/projectPptType、项目PPT名称/projectPptName" +
+ "patent(获得专利): [{专利国别/country、公开号/publicationNumber、专利标题/patentTitle、专利类型/patentType、专利号/patentNumber、专利申请人/patentApplicants、获得时间/issuedTime、到期时间/expirationTime、发明人/inventor、其他发明人/otherInventors}]"+
+ "paper(论文发表): [{论文名称/paperTitle、发表期刊/publishedJournals、DOI号/doi、是否有共同/common、第一作者/firstAuthor、其他作者/otherAuthor}]"+
+ "award(奖项): [{奖项名称/awardTitle、获奖项目名称/awardProjectTitle、level/级别、获奖人/prizewinner、获奖时间/winningTime}]"+
+ "copyright(软件著作): [{软件名称/dynacomm、著作权人/copyrightOwner、权利获取方式/rightAcquisitionMethod、开发完成日期/developmentDate、开发发表日期/publishedDate、权利范围/interestField、登记号/registerNumber}]"+
+ "works(作品著作): [{作品名称/worksName、作者/author、创作完成日期/completionDate、首次发表日期/firstPublicationDate、作品类别/worksType、登记号/registerNumber}]" +
+ "trademark(商标): [{国际分类号/classificationNumber、商标名称/tradeName、注册人/registeredPerson、注册时间/registeredDate、有效日期/effectiveDate、商标编号/trademarkNumber}]")
+ public ResponseVO updateInternationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO) {
+ projectService.updateInternationalProject(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 = "getInternationalProject")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端 ---职教赛道项目分页查询: matchId/赛事届数ID ,pageNo/当前页数, pageSize/每页显示条数")
+ public ResponseVO getInternationalProject(@RequestBody ProjectListPageDTO projectListPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProject(projectListPageDTO));
+ }
+
+ @PostMapping(value = "getVocationalProjectById")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端(职教)--根据ID查询高职赛道项目信息")
+ public ResponseVO getVocationalProjectById() {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectById());
+ }
+
+ @PostMapping(value = "getInternationalProjectById")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端(国际合作)--根据ID查询高职赛道项目信息")
+ public ResponseVO getInternationalProjectById() {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProjectById());
+ }
+
+ @PostMapping(value = "createVocationalMember")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端(职教) ---保存职教赛道团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号、email/邮箱 fiveYears" +
+ "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 teamTelephone 手机号 }]" +
+ "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号 idCard}]")
+ public ResponseVO createVocationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
+ projectService.createVocationalMember(createProjectMemberDTO);
+ 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 = "createInternationalMember")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端(职教) ---保存职教赛道团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号、email/邮箱 fiveYears" +
+ "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 teamTelephone 手机号 }]" +
+ "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号 idCard}]")
+ public ResponseVO createInternationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
+ projectService.createInternationalMember(createProjectMemberDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "updateInternationalMember")
+ @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 updateInternationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) {
+ projectService.updateInternationalMember(createProjectMemberDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "getVocationalProjectMember")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端(职教) ---查询职教项目团队信息")
+ public ResponseVO getVocationalProjectMember() {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectMember(ProjectType.VOCATIONAL,null));
+ }
+
+ @PostMapping(value = "getInternationalProjectMember")
+ @LoginRequired(Platform.student)
+ @ApiOperation("学生端(国际合作) ---查询国际合作项目团队信息")
+ public ResponseVO getInternationalProjectMember() {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectMember(ProjectType.INTERNATIONAL,null));
+ }
+
+ /* -- 管理端 -- */
+ @PostMapping(value = "/getVocationalProjectPage")
+ @LoginRequired(Platform.center)
+ @ApiOperation("中心端 --- 分页查询职教赛道项目管理:matchId/赛事ID,projectGroup/项目组别(高职、中职)、projectSchedule/项目进度(全部项目传空字符串、校内赛、市级初赛、市级复赛、市级决赛), " +
+ "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
+ public ResponseVO getVocationalProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectPage(projectListPageDTO));
+ }
+
+ /* -- 管理端 -- */
+ @PostMapping(value = "/getInternationalProjectPage")
+ @LoginRequired(Platform.center)
+ @ApiOperation("中心端 --- 分页查询职教赛道项目管理:matchId/赛事ID,projectGroup/项目组别(高职、中职)、projectSchedule/项目进度(全部项目传空字符串、校内赛、市级初赛、市级复赛、市级决赛), " +
+ "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
+ public ResponseVO getInternationalProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProjectPage(projectListPageDTO));
+ }
+
+ @PostMapping(value = "updateAllEditStatus")
+ @LoginRequired(Platform.center)
+ @ApiOperation("中心端 --- 更新所有编辑状态:matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、editStatus/状态(0:关闭,1:开启)")
+ public ResponseVO updateAllEditStatus(@RequestBody EditStatusDTO editStatusDTO) {
+ projectService.updateAllEditStatus(editStatusDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "batchUpdateEditStatus")
+ @LoginRequired(Platform.center)
+ @ApiOperation("中心端 --- 批量更新编辑状态:ids/项目ID(数组)、editStatus/状态(0:关闭,1:开启)")
+ public ResponseVO batchUpdateEditStatus(@RequestBody EditStatusDTO editStatusDTO) {
+ projectService.batchUpdateEditStatus(editStatusDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "updateEditStatus")
+ @LoginRequired(Platform.center)
+ @ApiOperation("中心端 --- 更新编辑状态:id/项目ID、editStatus/状态(0:关闭,1:开启)")
+ public ResponseVO updateEditStatus(@RequestBody EditStatusDTO editStatusDTO) {
+ projectService.updateEditStatus(editStatusDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/getVocationalReviewList")
+ @LoginRequired({Platform.center})
+ @ApiOperation("中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectStatus/项目状态(市级初赛、市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" +
+ "pageNo/当前页数、pageSize/每页显示条数")
+ public ResponseVO getVocationalReviewList(@RequestBody ReviewListDTO reviewListDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewList(reviewListDTO));
+ }
+
+ @PostMapping(value = "/getInternationalReviewList")
+ @LoginRequired({Platform.center})
+ @ApiOperation("中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectStatus/项目状态(市级初赛、市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" +
+ "pageNo/当前页数、pageSize/每页显示条数")
+ public ResponseVO getInternationalReviewList(@RequestBody ReviewListDTO reviewListDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewList(reviewListDTO));
+ }
+
+ @PostMapping(value = "/getVocationalProjectDetail")
+ @LoginRequired({Platform.center, Platform.school, Platform.review})
+ @ApiOperation("中心端/院校端 --- 职教赛道项目详情:id/项目ID")
+ public ResponseVO getVocationalProjectDetail(@RequestBody ProjectDO projectDO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectDetail(projectDO.getId()));
+ }
+
+ @PostMapping(value = "/getInternationalProjectDetail")
+ @LoginRequired({Platform.center, Platform.school, Platform.review})
+ @ApiOperation("中心端/院校端 --- 职教赛道项目详情:id/项目ID")
+ public ResponseVO getInternationalProjectDetail(@RequestBody ProjectDO projectDO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProjectDetail(projectDO.getId()));
+ }
+
+ /* -- 院校端 -- */
+ @PostMapping(value = "/getVocationalProjectList")
+ @LoginRequired(Platform.school)
+ @ApiOperation("院校端 --- 分页查询职教赛道项目:matchId/赛事ID,projectGroup/项目组别、projectSchedule/项目进度(全部项目传空字符串、校内赛、初赛、复赛、决赛), " +
+ "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
+ public ResponseVO getVocationalProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectList(projectListPageDTO));
+ }
+
+ /* -- 院校端 -- */
+ @PostMapping(value = "/getInternationalProjectList")
+ @LoginRequired(Platform.school)
+ @ApiOperation("院校端 --- 分页查询职教赛道项目:matchId/赛事ID,projectGroup/项目组别、projectSchedule/项目进度(全部项目传空字符串、校内赛、初赛、复赛、决赛), " +
+ "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数")
+ public ResponseVO getInternationalProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProjectList(projectListPageDTO));
+ }
+
+ @PostMapping(value = "getReviewVocationalNum")
+ @LoginRequired(Platform.review)
+ @ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId")
+ public ResponseVO getReviewVocationalNum(@RequestBody ReviewVocationalNumDTO reviewVocationalNumDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getReviewVocationalNum(reviewVocationalNumDTO));
+ }
+
+ @PostMapping(value = "getReviewInternationalNum")
+ @LoginRequired(Platform.review)
+ @ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId")
+ public ResponseVO getReviewInternationalNum(@RequestBody ReviewVocationalNumDTO reviewVocationalNumDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getReviewInternationalNum(reviewVocationalNumDTO));
+ }
+
+ /* -- 评审端 -- */
+ @PostMapping(value = "/getVocationalProjectReviewPage")
+ @LoginRequired({Platform.review})
+ @ApiOperation("评审端 ---职教评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(初赛、复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
+ public ResponseVO getVocationalProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectReviewPage(projectReviewPageDTO));
+ }
+
+ /* -- 评审端 -- */
+ @PostMapping(value = "/getInternationalProjectReviewPage")
+ @LoginRequired({Platform.review})
+ @ApiOperation("评审端 ---职教评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(初赛、复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
+ public ResponseVO getInternationalProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProjectReviewPage(projectReviewPageDTO));
+ }
+
+ @PostMapping(value = "getVocationalProjectNum")
+ @LoginRequired({Platform.center, Platform.school, Platform.review})
+ @ApiOperation("中心端/院校端 --- (职教)项目管理数量: matchId/赛事ID、projectGroup/项目组别")
+ public ResponseVO getVocationalProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectNum(seedTrackProjectNumDTO));
+ }
+
+ @PostMapping(value = "getInternationalProjectNum")
+ @LoginRequired({Platform.center, Platform.school, Platform.review})
+ @ApiOperation("中心端/院校端 --- (职教)项目管理数量: matchId/赛事ID、projectGroup/项目组别")
+ public ResponseVO getInternationalProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalProjectNum(seedTrackProjectNumDTO));
+ }
+
+ @PostMapping(value = "/getVocationalReviewNum")
+ @LoginRequired({Platform.center})
+ @ApiOperation("中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
+ public ResponseVO getVocationalReviewNum(@RequestBody ReviewListDTO reviewListDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewNum(reviewListDTO));
+ }
+
+ @PostMapping(value = "/getInternationalReviewNum")
+ @LoginRequired({Platform.center})
+ @ApiOperation("中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
+ public ResponseVO getInternationalReviewNum(@RequestBody ReviewListDTO reviewListDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalReviewNum(reviewListDTO));
+ }
+
+ @PostMapping(value = "/getVocationalAssignNum")
+ @LoginRequired({Platform.center})
+ @ApiOperation("中心端 --- 职教评审分配(已分配 + 未分配)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
+ public ResponseVO getVocationalAssignNum(@RequestBody ReviewListDTO reviewListDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getVocationalAssignNum(reviewListDTO));
+ }
+
+ @PostMapping(value = "/getInternationalAssignNum")
+ @LoginRequired({Platform.center})
+ @ApiOperation("中心端 --- 职教评审分配(已分配 + 未分配)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
+ public ResponseVO getInternationalAssignNum(@RequestBody ReviewListDTO reviewListDTO) {
+ return ResponseData.generateCreatedResponse(0, projectService.getInternationalAssignNum(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/项目组别")
+ @LoginRequired({ Platform.center, Platform.school })
+ public void importProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) {
+ projectService.importProjectByGroup(importVocationalProjectDTO);
+ }
+
+ @PostMapping("exportProjectByGroup")
+ @ApiOperation("中心端/院校端 ---pdf 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别 matchId")
+// @LoginRequired({ Platform.center, Platform.school })
+ public void exportProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) {
+ projectService.exportProjectByGroup(importVocationalProjectDTO);
+ }
+ @PostMapping("exportInternationalByGroup")
+ @ApiOperation("中心端/院校端 ---pdf 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别 matchId")
+// @LoginRequired({ Platform.center, Platform.school })
+ public void exportInternationalByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) {
+ projectService.exportInternationalByGroup(importVocationalProjectDTO);
+ }
+
+ @PostMapping("attendCount")
+ @ApiOperation("这一届参加的个数 matchId ")
+ @LoginRequired({ Platform.student})
+ public ResponseVO attendCount(@RequestBody AttendCountDTO attendCountDTO){
+ return ResponseData.generateCreatedResponse(0, projectService.attendCount(attendCountDTO));
+ }
+
+}
\ No newline at end of file
diff --git b/src/main/java/com/zhongzhi/controller/ProjectCopyrightController.java a/src/main/java/com/zhongzhi/controller/ProjectCopyrightController.java
new file mode 100644
index 0000000..62c2696
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectCopyrightController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目软件著作权 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@RestController
+@RequestMapping("/project-copyright-do")
+public class ProjectCopyrightController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectJudgeController.java a/src/main/java/com/zhongzhi/controller/ProjectJudgeController.java
new file mode 100644
index 0000000..5d825cc
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectJudgeController.java
@@ -0,0 +1,103 @@
+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;
+
+/**
+ *
+ * 项目评审员 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-28
+ */
+@RestController
+@Api(tags = "评委")
+@RequestMapping("/projectJudge")
+public class ProjectJudgeController {
+
+ @Autowired
+ private ProjectJudgeService projectJudgeService;
+
+ @PostMapping(value = "/login")
+ @ApiOperation("评审端 --- 登录:telephone/手机号、code/验证码")
+ 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();
+ }
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectMaterialsController.java a/src/main/java/com/zhongzhi/controller/ProjectMaterialsController.java
new file mode 100644
index 0000000..b59c15e
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectMaterialsController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目材料 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-11
+ */
+@RestController
+@RequestMapping("/projectMaterials")
+public class ProjectMaterialsController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectMemberController.java a/src/main/java/com/zhongzhi/controller/ProjectMemberController.java
new file mode 100644
index 0000000..6b7a2dc
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectMemberController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目团队信息表 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-11
+ */
+@RestController
+@RequestMapping("/projectMember")
+public class ProjectMemberController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectOwnershipStructureController.java a/src/main/java/com/zhongzhi/controller/ProjectOwnershipStructureController.java
new file mode 100644
index 0000000..f3f2a29
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectOwnershipStructureController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 股权结构表 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-11
+ */
+@RestController
+@RequestMapping("/projectOwnershipStructure")
+public class ProjectOwnershipStructureController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectPaperController.java a/src/main/java/com/zhongzhi/controller/ProjectPaperController.java
new file mode 100644
index 0000000..9aea4fe
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectPaperController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目论文 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@RestController
+@RequestMapping("/project-paper-do")
+public class ProjectPaperController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectPatentController.java a/src/main/java/com/zhongzhi/controller/ProjectPatentController.java
new file mode 100644
index 0000000..62251fd
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectPatentController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目专利 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@RestController
+@RequestMapping("/project-patent-do")
+public class ProjectPatentController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectReviewController.java a/src/main/java/com/zhongzhi/controller/ProjectReviewController.java
new file mode 100644
index 0000000..8bbaafd
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectReviewController.java
@@ -0,0 +1,68 @@
+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;
+
+/**
+ *
+ * 项目评审 前端控制器
+ *
+ *
+ * @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、smsMessage/是否发送短信通知(0:不发送,1:发送)")
+ 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));
+ }
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java a/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java
new file mode 100644
index 0000000..b647614
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java
@@ -0,0 +1,49 @@
+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;
+
+/**
+ *
+ * 评审时段 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-06-10
+ */
+@RestController
+@Api(tags = "评审时段")
+@RequestMapping("/projectReviewPeriod")
+public class ProjectReviewPeriodController {
+
+ @Autowired
+ private ProjectReviewPeriodService projectReviewPeriodService;
+
+ @PostMapping(value = "/getProjectReviewPeriod")
+ @LoginRequired({Platform.center, Platform.school, Platform.review})
+ @ApiOperation("中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)")
+ public ResponseVO getProjectReviewPeriod(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) {
+ return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriod(projectReviewPeriodDTO));
+ }
+
+ @PostMapping(value = "/updateProjectReviewPeriod")
+ @LoginRequired(Platform.center)
+ @ApiOperation("中心端 --- 修改评审时间:id/ID、matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、startTime/开始时间、endTime/结束时间")
+ public ResponseVO updateProjectReviewPeriod(@RequestBody ProjectReviewPeriodDO projectReviewPeriodDO) {
+ projectReviewPeriodService.updateProjectReviewPeriod(projectReviewPeriodDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectScheduleRecordController.java a/src/main/java/com/zhongzhi/controller/ProjectScheduleRecordController.java
new file mode 100644
index 0000000..30df3b4
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectScheduleRecordController.java
@@ -0,0 +1,41 @@
+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.scheduleRecord.ProjectScheduleRecordDTO;
+import com.zhongzhi.service.ProjectScheduleRecordService;
+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;
+
+/**
+ *
+ * 项目进度记录 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2021-06-02
+ */
+@RestController
+@Api(tags = "项目进度记录")
+@RequestMapping("/projectScheduleRecord")
+public class ProjectScheduleRecordController {
+
+ @Autowired
+ private ProjectScheduleRecordService projectScheduleRecordService;
+
+ @PostMapping(value = "/getProjectScheduleRecord")
+ @ApiOperation("中心端 ---获奖情况")
+ @LoginRequired({Platform.center})
+ public ResponseVO getProjectScheduleRecord(@RequestBody ProjectScheduleRecordDTO projectScheduleRecordDTO) {
+ return ResponseData.generateCreatedResponse(0, projectScheduleRecordService.getProjectScheduleRecord(projectScheduleRecordDTO));
+ }
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectSchoolJudgeController.java a/src/main/java/com/zhongzhi/controller/ProjectSchoolJudgeController.java
new file mode 100644
index 0000000..1bf2290
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectSchoolJudgeController.java
@@ -0,0 +1,22 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+ import org.springframework.web.bind.annotation.RestController;
+
+/**
+*
+ * 项目评审员 前端控制器
+ *
+*
+* @author DengMin
+* @since 2025-09-29
+*/
+@RestController
+@RequestMapping("/project-school-judge-do")
+public class ProjectSchoolJudgeController {
+
+
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectSchoolReviewController.java a/src/main/java/com/zhongzhi/controller/ProjectSchoolReviewController.java
new file mode 100644
index 0000000..90ab01d
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectSchoolReviewController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+ import org.springframework.web.bind.annotation.RestController;
+
+/**
+*
+ * 项目评审 前端控制器
+ *
+*
+* @author DengMin
+* @since 2025-09-29
+*/
+ @RestController
+@RequestMapping("/project-school-review-do")
+ public class ProjectSchoolReviewController {
+
+ }
diff --git b/src/main/java/com/zhongzhi/controller/ProjectTrademarkController.java a/src/main/java/com/zhongzhi/controller/ProjectTrademarkController.java
new file mode 100644
index 0000000..727eeff
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectTrademarkController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目作品 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@RestController
+@RequestMapping("/project-trademark-do")
+public class ProjectTrademarkController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/ProjectWorksController.java a/src/main/java/com/zhongzhi/controller/ProjectWorksController.java
new file mode 100644
index 0000000..29141dc
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/ProjectWorksController.java
@@ -0,0 +1,20 @@
+package com.zhongzhi.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 项目作品 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@RestController
+@RequestMapping("/project-works-do")
+public class ProjectWorksController {
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/SmsCodeController.java a/src/main/java/com/zhongzhi/controller/SmsCodeController.java
new file mode 100644
index 0000000..ba53d12
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/SmsCodeController.java
@@ -0,0 +1,62 @@
+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;
+
+/**
+ *
+ * 短信验证码 前端控制器
+ *
+ *
+ * @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)throws Exception {
+ smsCodeService.sendRegisterCode(smsCodeDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/sendStudentLoginCode")
+ @ApiOperation("学生端 ---登陆验证码:telephone/手机号")
+ public ResponseVO sendStudentLoginCode(@RequestBody SmsCodeDO smsCodeDO)throws Exception {
+ smsCodeService.sendStudentLoginCode(smsCodeDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/sendAdministerLoginCode")
+ @ApiOperation("中心端 --- 中心端登陆验证码:telephone/手机号")
+ public ResponseVO sendAdministerLoginCode(@RequestBody AdministerDO administerDO) throws Exception{
+ smsCodeService.sendAdministerLoginCode(administerDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping(value = "/sendJudgeLoginCode")
+ @ApiOperation("评审端 ---登陆验证码:telephone/手机号")
+ public ResponseVO sendJudgeLoginCode(@RequestBody SmsCodeDO smsCodeDO) throws Exception{
+ smsCodeService.sendJudgeLoginCode(smsCodeDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/SmsNoticeController.java a/src/main/java/com/zhongzhi/controller/SmsNoticeController.java
new file mode 100644
index 0000000..f143fda
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/SmsNoticeController.java
@@ -0,0 +1,59 @@
+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;
+
+/**
+ *
+ * 短信通知记录 前端控制器
+ *
+ *
+ * @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
diff --git b/src/main/java/com/zhongzhi/controller/StudentController.java a/src/main/java/com/zhongzhi/controller/StudentController.java
new file mode 100644
index 0000000..0199e28
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/StudentController.java
@@ -0,0 +1,55 @@
+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;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @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/就读专业, enrollmentDate/入学年份, graduateDate/毕业年份 sex")
+ 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);
+ }
+}
diff --git b/src/main/java/com/zhongzhi/controller/VodDictController.java a/src/main/java/com/zhongzhi/controller/VodDictController.java
new file mode 100644
index 0000000..ba1d62b
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/VodDictController.java
@@ -0,0 +1,84 @@
+package com.zhongzhi.controller;
+
+
+import com.zhongzhi.common.utils.ResponseData;
+import com.zhongzhi.dto.course.ChangeOrdersDTO;
+import com.zhongzhi.dto.course.VodsDTO;
+import com.zhongzhi.model.CourseDictDO;
+import com.zhongzhi.model.VodDictDO;
+import com.zhongzhi.service.VodDictService;
+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;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @author DengMin
+ * @since 2022-11-14
+ */
+@RestController
+@RequestMapping("/vodDict")
+@Api(tags = "视频字典表")
+public class VodDictController {
+
+ @Autowired
+ private VodDictService vodDictService;
+
+ @PostMapping("/signature")
+ @ApiOperation("获取签名")
+ public ResponseVO signature()throws Exception{
+ return ResponseData.generateCreatedResponse(0,vodDictService.signature());
+ }
+
+
+ @PostMapping("deleteVod")
+ @ApiOperation("删除视频 id")
+ public ResponseVO deleteVod(@RequestBody VodDictDO vodDictDO){
+ vodDictService.deleteVod(vodDictDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping("addVod")
+ @ApiOperation("新增视频 courseId vodName vodUrl vodCode vodLength vodSize vodFormat coverPage")
+ public ResponseVO orderNo(@RequestBody VodDictDO vodDictDO){
+ vodDictService.addVod(vodDictDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping("updateVod")
+ @ApiOperation("修改视频 id vodName vodName vodUrl vodCode vodLength vodSize vodFormat coverPage ")
+ public ResponseVO updateVod(@RequestBody VodDictDO vodDictDO){
+ vodDictService.updateVod(vodDictDO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping("changeOrders")
+ @ApiOperation("排序 ids[]")
+ public ResponseVO changeOrders(@RequestBody ChangeOrdersDTO changeOrdersDTO){
+ vodDictService.changeOrders(changeOrdersDTO);
+ return ResponseData.generateCreatedResponse(0);
+ }
+
+ @PostMapping("vods")
+ @ApiOperation("查询课程下的视频 courseId vodName")
+ public ResponseVO vods(@RequestBody VodsDTO vodsDTO){
+ return ResponseData.generateCreatedResponse(0, vodDictService.vods(vodsDTO));
+ }
+
+ @PostMapping("fourVods")
+ @ApiOperation("首页只查询4个视频 yearId ")
+ public ResponseVO fourVods(@RequestBody CourseDictDO courseDictDO){
+ return ResponseData.generateCreatedResponse(0,vodDictService.fourVods(courseDictDO));
+ }
+
+
+}
diff --git b/src/main/java/com/zhongzhi/controller/YearDictController.java a/src/main/java/com/zhongzhi/controller/YearDictController.java
new file mode 100644
index 0000000..ac1c090
--- /dev/null
+++ a/src/main/java/com/zhongzhi/controller/YearDictController.java
@@ -0,0 +1,53 @@
+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;
+
+/**
+ *
+ * 年份字典表 前端控制器
+ *
+ *
+ * @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);
+ }
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/AdministerDAO.java a/src/main/java/com/zhongzhi/dao/AdministerDAO.java
new file mode 100644
index 0000000..0d51a5f
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/AdministerDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.AdministerDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 中心管理账户表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface AdministerDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/AdministerPermissionDAO.java a/src/main/java/com/zhongzhi/dao/AdministerPermissionDAO.java
new file mode 100644
index 0000000..feb2306
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/AdministerPermissionDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.AdministerPermissionDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 系统用户权限表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface AdministerPermissionDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java a/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java
new file mode 100644
index 0000000..fa71b89
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java
@@ -0,0 +1,36 @@
+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;
+
+/**
+ *
+ * 院校字典表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface CollegesDictDAO extends BaseMapper {
+
+ IPage listPage(Page page, String name);
+
+ IPage getAwardedList(Page page, String name);
+
+ List getAwardedListAll();
+
+ List getCollegeInfo(String name,String education,Long sceneId);
+
+ List getSceneCollegeInfo(String name,String education,Long sceneId);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/CourseDictDAO.java a/src/main/java/com/zhongzhi/dao/CourseDictDAO.java
new file mode 100644
index 0000000..e441c9a
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/CourseDictDAO.java
@@ -0,0 +1,22 @@
+package com.zhongzhi.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zhongzhi.model.CourseDictDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.course.CoursesVO;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2022-11-14
+ */
+@Repository
+public interface CourseDictDAO extends BaseMapper {
+
+ IPage courses(IPage page, String courseName,Long yearId);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/DrawLotGroupDictMapper.java a/src/main/java/com/zhongzhi/dao/DrawLotGroupDictMapper.java
new file mode 100644
index 0000000..3b2a095
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/DrawLotGroupDictMapper.java
@@ -0,0 +1,32 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.DrawLotGroupDictDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.drawlots.GroupJudgesVO;
+import org.springframework.stereotype.Repository;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-06-19
+ */
+@Repository
+public interface DrawLotGroupDictMapper extends BaseMapper {
+
+ /**
+ * 组别下的成员
+ */
+ List groupJudges(Long groupId, String roleType);
+
+ /**
+ * 查看组别下的编号
+ */
+ List groupNums(Long groupId);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/DrawLotsGroupItemsMapper.java a/src/main/java/com/zhongzhi/dao/DrawLotsGroupItemsMapper.java
new file mode 100644
index 0000000..472a13c
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/DrawLotsGroupItemsMapper.java
@@ -0,0 +1,58 @@
+package com.zhongzhi.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zhongzhi.dto.drawlots.CollegeProjectsDTO;
+import com.zhongzhi.model.DrawLotGroupDictDO;
+import com.zhongzhi.model.DrawLotsGroupItemsDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.drawlots.AllGroupItemsVO;
+import com.zhongzhi.vo.drawlots.CollegeProjectsVO;
+import com.zhongzhi.vo.drawlots.GroupProjectInfoVO;
+import com.zhongzhi.vo.drawlots.MatchProjectsVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-06-19
+ */
+@Repository
+public interface DrawLotsGroupItemsMapper extends BaseMapper {
+
+ IPage allGroupItems(IPage page,Long sceneId, String projectName,String college);
+
+ /**
+ * 某赛道 没有被选的项目
+ */
+ List matchProjects(Long matchId, String projectSchedule);
+
+ /**
+ * 还没有坑位的项目
+ */
+ IPage collegeProjects(IPage iPage,Long sceneId, String college, String projectSchedule, String projectProgress);
+
+ /**
+ * 还没有满的坑位
+ */
+ List noFullGroup(Long sceneId,String college,Integer count);
+
+ /**
+ * 查看该组别下的项目
+ */
+ List groupProjectInfo(Long groupId);
+
+ /**
+ * 某组别已经存在的编码
+ */
+ List existNum(Long groupId);
+
+ /**
+ * 某现场某院校组别最小的数量
+ */
+ Integer sceneCollege(Long sceneId,String college);
+}
diff --git b/src/main/java/com/zhongzhi/dao/DrawLotsGroupJudgesMapper.java a/src/main/java/com/zhongzhi/dao/DrawLotsGroupJudgesMapper.java
new file mode 100644
index 0000000..8cd6e56
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/DrawLotsGroupJudgesMapper.java
@@ -0,0 +1,66 @@
+package com.zhongzhi.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zhongzhi.model.DrawLotGroupDictDO;
+import com.zhongzhi.model.DrawLotsGroupJudgesDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.drawlots.*;
+import com.zhongzhi.vo.judge.JudgeInfoVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * 赛组评委表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-06-19
+ */
+@Repository
+public interface DrawLotsGroupJudgesMapper extends BaseMapper {
+
+ IPage matchJudges(IPage page,Long sceneId, String userName, String expectorType, String roleType);
+
+ /**
+ * 选择评委
+ */
+ IPage selectJudges(IPage page,Long sceneId,String userName);
+
+ /**
+ * 某组别已经存在的编码
+ */
+ List allNum(Long groupId);
+
+ /**
+ * 某组别已经随机到的编码
+ */
+ List existNum(Long groupId);
+
+ /**
+ * 当前组的组长
+ */
+ Integer currentGroupLeaderCnt(Long groupId);
+
+ /**
+ * 评委信息
+ */
+ List drawJudgeInfo(Long groupId);
+
+ /**
+ * 没有组长的组
+ */
+ List noLeaderGroup(Long sceneId);
+
+ /**
+ * 某个类别(行业专家,教育专家)没有满的组员
+ */
+ List noMemberGroup(Long sceneId,String teachType);
+
+ LoginVO login(String name);
+
+ List judgeScoreScreen(Long groupId, Integer groupNum);
+
+ JudgeFullInfoVO judgeInfo(Long groupId,Integer groupNum);
+}
diff --git b/src/main/java/com/zhongzhi/dao/DrawLotsJudgeNumMapper.java a/src/main/java/com/zhongzhi/dao/DrawLotsJudgeNumMapper.java
new file mode 100644
index 0000000..7e671ed
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/DrawLotsJudgeNumMapper.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.DrawLotsJudgeNumDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-07-10
+ */
+@Repository
+public interface DrawLotsJudgeNumMapper extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/DrawLotsScenesMapper.java a/src/main/java/com/zhongzhi/dao/DrawLotsScenesMapper.java
new file mode 100644
index 0000000..a0f97a9
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/DrawLotsScenesMapper.java
@@ -0,0 +1,26 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.DrawLotsScenesDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.project.AllMatchScenesVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-06-19
+ */
+@Repository
+public interface DrawLotsScenesMapper extends BaseMapper {
+
+ /**
+ * 某赛道所有现场
+ */
+ List allMatchScenes(Long matchId, String openStatus);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/DrawLotsScoresMapper.java a/src/main/java/com/zhongzhi/dao/DrawLotsScoresMapper.java
new file mode 100644
index 0000000..0e153d5
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/DrawLotsScoresMapper.java
@@ -0,0 +1,63 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.dto.drawlots.GroupScoresDTO;
+import com.zhongzhi.model.DrawLotsGroupItemsDO;
+import com.zhongzhi.model.DrawLotsScoresDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.drawlots.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-07-04
+ */
+@Repository
+public interface DrawLotsScoresMapper extends BaseMapper {
+
+ /**
+ * 评分--项目列表
+ */
+ List groupScores(Long sceneId,String projectName,Long groupId);
+
+ /**
+ * 评分--列表里每个角色的评分详情
+ */
+ List groupJudgeScores(Long groupId, Long projectId);
+
+ /**
+ * 某评委的评分列表
+ */
+ List queryItems(Long judgeId);
+
+ /**
+ * 排序
+ */
+ List groupRank(Long groupId);
+
+ /**
+ * 最初前4
+ */
+ List beforeHand4Project(Long groupId);
+
+ /**
+ * 前4
+ */
+ List hand4Project(Long groupId);
+
+ /**
+ * 负责人
+ */
+ String groupLeader(Long groupId);
+
+ /**
+ * 最终排位结果
+ */
+ List rank(Long sceneId,Long groupId,String projectName);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/FinalMatchMemberDAO.java a/src/main/java/com/zhongzhi/dao/FinalMatchMemberDAO.java
new file mode 100644
index 0000000..af5ca99
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/FinalMatchMemberDAO.java
@@ -0,0 +1,38 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.FinalMatchMemberDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.college.ExportListVO;
+import com.zhongzhi.vo.college.RegisterMembersVO;
+import com.zhongzhi.vo.college.SchoolsVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2024-07-12
+ */
+@Repository
+public interface FinalMatchMemberDAO extends BaseMapper {
+
+ List registerMembers(Long collegeId,Long matchId);
+
+ List otherMembers(Long collegeId,Long matchId);
+
+ List cars(Long collegeId,Long matchId);
+
+ String latestUpdateTime(Long collegeId);
+
+ List schools(Long matchId,String name);
+
+ /**
+ * 导出名单
+ */
+ List exportList(Long matchId,Long collegeId);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/FundDictDAO.java a/src/main/java/com/zhongzhi/dao/FundDictDAO.java
new file mode 100644
index 0000000..5446e6c
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/FundDictDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.FundDictDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 届数表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface FundDictDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/ItemFieldDictDAO.java a/src/main/java/com/zhongzhi/dao/ItemFieldDictDAO.java
new file mode 100644
index 0000000..086537b
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/ItemFieldDictDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.ItemFieldDictDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 行业领域字典表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface ItemFieldDictDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/MajorDictDAO.java a/src/main/java/com/zhongzhi/dao/MajorDictDAO.java
new file mode 100644
index 0000000..6f43c8d
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/MajorDictDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.MajorDictDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 专业字典表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface MajorDictDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/MatchCollegeCountDAO.java a/src/main/java/com/zhongzhi/dao/MatchCollegeCountDAO.java
new file mode 100644
index 0000000..d13a8c0
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/MatchCollegeCountDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.MatchCollegeCountDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2025-06-10
+ */
+@Repository
+public interface MatchCollegeCountDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/MatchCollegePdfMapper.java a/src/main/java/com/zhongzhi/dao/MatchCollegePdfMapper.java
new file mode 100644
index 0000000..52d23b7
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/MatchCollegePdfMapper.java
@@ -0,0 +1,9 @@
+package com.zhongzhi.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.model.MatchCollegePdfDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface MatchCollegePdfMapper extends BaseMapper {
+}
diff --git b/src/main/java/com/zhongzhi/dao/MatchDictDAO.java a/src/main/java/com/zhongzhi/dao/MatchDictDAO.java
new file mode 100644
index 0000000..f43d824
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/MatchDictDAO.java
@@ -0,0 +1,30 @@
+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;
+
+/**
+ *
+ * 赛事年份管理 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-17
+ */
+@Repository
+public interface MatchDictDAO extends BaseMapper {
+
+ IPage getSeedTrackMatchPage(Page page, String matchType);
+
+ List getList(@Param("projectType") String projectType, @Param("projectGroup") String projectGroup);
+
+ MatchDictDO getCurrentMatch(Long memberId,String progress);
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/MatchScheduleDAO.java a/src/main/java/com/zhongzhi/dao/MatchScheduleDAO.java
new file mode 100644
index 0000000..514bd19
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/MatchScheduleDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.MatchScheduleDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 时间安排 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-27
+ */
+@Repository
+public interface MatchScheduleDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/MessageDAO.java a/src/main/java/com/zhongzhi/dao/MessageDAO.java
new file mode 100644
index 0000000..cdf7134
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/MessageDAO.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.MessageDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 通知消息表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-05-17
+ */
+@Repository
+public interface MessageDAO extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/PermissionsDAO.java a/src/main/java/com/zhongzhi/dao/PermissionsDAO.java
new file mode 100644
index 0000000..b9b2e3f
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/PermissionsDAO.java
@@ -0,0 +1,22 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.PermissionsDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzhi.vo.permission.PermissionVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * 权限表 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2021-04-28
+ */
+@Repository
+public interface PermissionsDAO extends BaseMapper {
+
+ List getPermissionById(Long id);
+}
diff --git b/src/main/java/com/zhongzhi/dao/ProjectAwardMapper.java a/src/main/java/com/zhongzhi/dao/ProjectAwardMapper.java
new file mode 100644
index 0000000..92a0d33
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/ProjectAwardMapper.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.ProjectAwardDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * 项目奖项 Mapper 接口
+ *
+ *
+ * @author DengMin
+ * @since 2022-04-25
+ */
+@Repository
+public interface ProjectAwardMapper extends BaseMapper {
+
+}
diff --git b/src/main/java/com/zhongzhi/dao/ProjectCopyrightMapper.java a/src/main/java/com/zhongzhi/dao/ProjectCopyrightMapper.java
new file mode 100644
index 0000000..117fbec
--- /dev/null
+++ a/src/main/java/com/zhongzhi/dao/ProjectCopyrightMapper.java
@@ -0,0 +1,18 @@
+package com.zhongzhi.dao;
+
+import com.zhongzhi.model.ProjectCopyrightDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *