+ * 赛道管理员映射表 前端控制器 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ +@RestController +@RequestMapping("/administerTrackMapping") +@Api("管理员赛道") +public class AdministerTrackMappingController { + + @Autowired + private AdministerTrackMappingService administerTrackMappingService; + + @PostMapping("administerTracks") + @ApiOperation("管理员的赛道 userId") + public ResponseVO administerTracks(@RequestBody AdministerTracksDTO administerTracksDTO){ + return ResponseData.generateCreatedResponse(0,administerTrackMappingService.administerTracks(administerTracksDTO)); + } + + +} diff --git a/src/main/java/com/template/controller/OssController.java b/src/main/java/com/template/controller/OssController.java index fea25a9..d567800 100644 --- a/src/main/java/com/template/controller/OssController.java +++ b/src/main/java/com/template/controller/OssController.java @@ -29,10 +29,10 @@ import java.util.List; @RequestMapping("/oss") public class OssController { - public static final String keyId = "LTAI5tPAH7P7WQVeowo517BE"; + public static final String keyId = "LTAI5tLUBG4B6QxhHrhddc7p"; - public static final String secret = "0ueqhIfdAZyw5lWlBVSLpAxTtx37RY"; + public static final String secret = "eber38QGHZixTQ6bFfrd80kbg67jIP"; // @Value("${spring.profiles.active}") diff --git a/src/main/java/com/template/controller/ProjectTrackController.java b/src/main/java/com/template/controller/ProjectTrackController.java new file mode 100644 index 0000000..698cd12 --- /dev/null +++ b/src/main/java/com/template/controller/ProjectTrackController.java @@ -0,0 +1,36 @@ +package com.zhongzhi.controller; + + +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.service.ProjectTrackService; +import com.zhongzhi.vo.ResponseVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + + import org.springframework.web.bind.annotation.RestController; + +/** +*+ * 赛道字典表 前端控制器 + *
+* @author DengMin +* @since 2025-03-28 +*/ +@RestController +@RequestMapping("/projectTrack") +@Api(tags = "赛道") +public class ProjectTrackController { + + @Autowired + private ProjectTrackService projectTrackService; + + @PostMapping("allTracks") + @ApiOperation("查询所有赛道 ") + public ResponseVO allTracks(){ + return ResponseData.generateCreatedResponse(0,projectTrackService.list()); + } + +} diff --git a/src/main/java/com/template/model/AdministerTrackMappingDO.java b/src/main/java/com/template/model/AdministerTrackMappingDO.java new file mode 100644 index 0000000..ce29712 --- /dev/null +++ b/src/main/java/com/template/model/AdministerTrackMappingDO.java @@ -0,0 +1,33 @@ +package com.zhongzhi.model; + + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import com.zhongzhi.model.base.BaseModel; + import com.baomidou.mybatisplus.annotation.TableName; + import lombok.Data; + import lombok.EqualsAndHashCode; + +/** +*+ * 赛道管理员映射表 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ + @Data + @EqualsAndHashCode(callSuper = true) + @TableName("administer_track_mapping") + public class AdministerTrackMappingDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long administerId; + + private Long trackId; + + +} diff --git a/src/main/java/com/template/model/ProjectTrackDO.java b/src/main/java/com/template/model/ProjectTrackDO.java new file mode 100644 index 0000000..eb2cbc9 --- /dev/null +++ b/src/main/java/com/template/model/ProjectTrackDO.java @@ -0,0 +1,31 @@ +package com.zhongzhi.model; + + import com.zhongzhi.model.base.BaseModel; + import com.baomidou.mybatisplus.annotation.TableName; + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import lombok.Data; + import lombok.EqualsAndHashCode; + +/** +*+ * 赛道字典表 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ + @Data + @EqualsAndHashCode(callSuper = true) + @TableName("project_track") + public class ProjectTrackDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String projectTrack; + + +} diff --git a/src/main/java/com/template/utils/AliyunSmsUtil.java b/src/main/java/com/template/utils/AliyunSmsUtil.java index db2003f..2ed7d7c 100644 --- a/src/main/java/com/template/utils/AliyunSmsUtil.java +++ b/src/main/java/com/template/utils/AliyunSmsUtil.java @@ -58,7 +58,7 @@ public class AliyunSmsUtil { //必填:待发送手机号 request.setPhoneNumbers(phone); //必填:短信签名-可在短信控制台中找到 - request.setSignName("双创平台"); + request.setSignName("有课互联"); //必填:短信模板-可在短信控制台中找到 request.setTemplateCode("SMS_229640297"); //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java b/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java new file mode 100644 index 0000000..008d8cf --- /dev/null +++ b/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java @@ -0,0 +1,28 @@ +package com.zhongzhi.common.constant; + +/** + *+ * 项目进度 + *
+ * + * @author DengMin + * @since 2021/6/9 + */ +public class ProjectSchedule { + + //报名阶段 + public static final String TO_REVIEW = "待评审"; + + public static final String REVIEW_ED = "待评审"; + + // 校内赛 + public static final String SCHOOL_REVIEW = "市级初赛项目"; + + public static final String SEMI_FINAL_REVIEW = "市级复赛项目"; + + public static final String FINAL_REVIEW = "市级决赛项目"; + + public static final String PASS = "通过"; + + public static final String NO_PASS = "不通过"; +} diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java b/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java new file mode 100644 index 0000000..e0622bd --- /dev/null +++ b/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java @@ -0,0 +1,36 @@ +package com.zhongzhi.common.constant; + +/** + *+ * 项目状态 + *
+ * + * @author DengMin + * @since 2021/6/9 + */ +public class ProjectStatus { + + public static final String UN_SUBMITTED = "填写中"; + + public static final String TO_CHECK = "待评审"; + + public static final String WITHDRAWN = "已撤回"; + + public static final String SCHOOL_NOT_PASSED = "不予提交市级复赛"; + + public static final String REGISTER_NOT_PASSED = "报名不通过"; + + public static final String PRELIMINARY_NOT_PASSED = "不予提交市级初赛"; + + public static final String REMATCH_WINNING_AWARD = "优胜奖"; + + public static final String REMATCH_SILVER_AWARD = "二等奖"; + + public static final String REMATCH_BRONZE_AWARD = "三等奖"; + + public static final String REMATCH_FINALS_GOLD_AWARD = "一等奖"; + + public static final String ABANDON = "未通过"; + + public static final String PASS = "已通过"; +} diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectType.java b/src/main/java/com/zhongzhi/common/constant/ProjectType.java new file mode 100644 index 0000000..8bd158b --- /dev/null +++ b/src/main/java/com/zhongzhi/common/constant/ProjectType.java @@ -0,0 +1,32 @@ +package com.zhongzhi.common.constant; + +/** + *+ * 项目组别 + *
+ * + * @author DengMin + * @since 2021/6/9 + */ +public class ProjectType { + + /** + * 赛道 + */ + public static final String MAIN_TRACK = "主赛道"; + + public static final String SEED_TRACK = "种子赛道"; + +// public static final String VOCATIONAL = "职教赛道"; + + /** + * 组别 + */ + public static final String TECHNOLOGY_INNOVATION_GROUP = "科技创新"; + + public static final String CULTURAL_CREATIVE_GROUP = "文化创意"; + + public static final String VOCATIONAL_GROUP = "高职"; + + public static final String SECONDARY_GROUP = "中职"; +} diff --git a/src/main/java/com/zhongzhi/controller/AdministerController.java b/src/main/java/com/zhongzhi/controller/AdministerController.java new file mode 100644 index 0000000..a02bcc1 --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/AdministerController.java @@ -0,0 +1,132 @@ +package com.zhongzhi.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.zhongzhi.common.constant.Platform; +import com.zhongzhi.common.utils.LoginRequired; +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.dto.administer.AdministerPageDTO; +import com.zhongzhi.dto.administer.CreateAdministerDTO; +import com.zhongzhi.dto.administer.LoginDTO; +import com.zhongzhi.model.AdministerDO; +import com.zhongzhi.model.AdministerPermissionDO; +import com.zhongzhi.model.AdministerTrackMappingDO; +import com.zhongzhi.service.AdministerPermissionService; +import com.zhongzhi.service.AdministerService; +import com.zhongzhi.service.AdministerTrackMappingService; +import com.zhongzhi.vo.ResponseVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *+ * 中心管理账户表 前端控制器 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@RestController +@Api(tags = "中心管理账户") +@RequestMapping("/administer") +public class AdministerController { + + @Autowired + private AdministerService administerService; + + @Autowired + private AdministerTrackMappingService administerTrackMappingService; + + @Autowired + private AdministerPermissionService administerPermissionService; + + @PostMapping(value = "/login") + @ApiOperation("中心端 --- 登录:手机号/telephone, code/验证码") + public ResponseVO login(@RequestBody LoginDTO loginDTO) { + return ResponseData.generateCreatedResponse(0, administerService.login(loginDTO)); + } + + @PostMapping(value = "/getAdministerPage") + @ApiOperation("####中心端 --- 成员管理分页查询:listItem/角色、 username/搜索名称、pageNo/当前页数、pageSize/每页显示条数") + public ResponseVO getAdministerPage(@RequestBody AdministerPageDTO administerPageDTO) { + return ResponseData.generateCreatedResponse(0, administerService.getAdministerPage(administerPageDTO)); + } + + @PostMapping(value = "/createAdminister") + @ApiOperation("####中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids") + public ResponseVO createAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) { + administerService.save(createAdministerDTO); + List+ * 系统用户权限表 前端控制器 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@RestController +@Api(tags = "用户权限") +@RequestMapping("/administerPermission") +public class AdministerPermissionController { + +} diff --git a/src/main/java/com/zhongzhi/controller/CollegesDictController.java b/src/main/java/com/zhongzhi/controller/CollegesDictController.java new file mode 100644 index 0000000..30536e4 --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/CollegesDictController.java @@ -0,0 +1,284 @@ +package com.zhongzhi.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhongzhi.common.constant.Platform; +import com.zhongzhi.common.utils.LoginRequired; +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.dto.college.*; +import com.zhongzhi.dto.project.EditStatusDTO; +import com.zhongzhi.model.*; +import com.zhongzhi.service.CollegesDictService; +import com.zhongzhi.vo.ResponseVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.net.ResponseCache; + +/** + *+ * 院校字典表 前端控制器 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@RestController +@Api(tags = "就读院校") +@RequestMapping("/collegesDict") +public class CollegesDictController { + + @Autowired + public CollegesDictService collegesDictService; + + @PostMapping(value = "/getCollegesListNew") + @ApiOperation("####查询所有就读院校: name/院校名称, education/学历") + public ResponseVO getCollegesList(@RequestBody CollegesDictDTO collegesDictDTO) { + QueryWrapper+ * 专业字典表 前端控制器 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@RestController +@Api(tags = "就读专业") +@RequestMapping("/majorDict") +public class MajorDictController { + + @Autowired + private MajorDictService majorDictService; + + @PostMapping(value = "/getMajorList") + @ApiOperation("####查询全部就读专业: major/专业名称、education/学历、code/院校代码") + public ResponseVO getMajorList(@RequestBody MajorDictDO majorDictDO) { + return ResponseData.generateCreatedResponse(0, majorDictService.list(new QueryWrapper+ * 前端控制器 + *
+ * + * @author DengMin + * @since 2024-06-25 + */ +@RestController +@RequestMapping("/matchCollegePdf") +@Api(tags = "pdf") +public class MatchCollegePdfController { + + @Autowired + private MatchCollegePdfService matchCollegePdfService; + + @PostMapping("uploadPdf") + @ApiOperation("上传盖章pdf attachment matchId fileName") + @LoginRequired(Platform.school) + public ResponseVO uploadPdf(@RequestBody MatchCollegePdfDO matchCollegePdfDO) throws Exception{ + matchCollegePdfService.uploadPdf(matchCollegePdfDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping("dropPdf") + @ApiOperation("删除盖章pdf matchId") + @LoginRequired(Platform.school) + public ResponseVO dropPdf(@RequestBody MatchCollegePdfDO matchCollegePdfDO) throws Exception{ + matchCollegePdfService.dropPdf (matchCollegePdfDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping("queryPdfStatus") + @ApiOperation("查看pdf matchId") + @LoginRequired(Platform.school) + public ResponseVO queryPdfStatus(@RequestBody MatchCollegePdfDO matchCollegePdfDO) { + return ResponseData.generateCreatedResponse(0, matchCollegePdfService.queryPdfStatus (matchCollegePdfDO)); + } + + + + +} diff --git a/src/main/java/com/zhongzhi/controller/MatchDictController.java b/src/main/java/com/zhongzhi/controller/MatchDictController.java new file mode 100644 index 0000000..d254df4 --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/MatchDictController.java @@ -0,0 +1,179 @@ +package com.zhongzhi.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhongzhi.common.constant.Platform; +import com.zhongzhi.common.constant.ProjectType; +import com.zhongzhi.common.utils.LoginRequired; +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.dto.match.MatchDictDTO; +import com.zhongzhi.dto.match.SelectListPageDTO; +import com.zhongzhi.model.MatchDictDO; +import com.zhongzhi.service.MatchDictService; +import com.zhongzhi.vo.ResponseVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *+ * 赛事年份管理 前端控制器 + *
+ * + * @author DengMin + * @since 2021-05-17 + */ +@RestController +@Api(tags = "赛事年份管理") +@RequestMapping("/match") +public class MatchDictController { + + @Autowired + private MatchDictService matchDictService; + + @PostMapping(value = "/getMainTrackMatch") + @LoginRequired({Platform.school, Platform.center, Platform.student}) + @ApiOperation("查询主赛道启用赛事年份") + public ResponseVO getMainTrackMatch() { + return ResponseData.generateCreatedResponse(0, matchDictService.getMainTrackMatch()); + } + + @PostMapping(value = "/getSeedTrackMatch") + @LoginRequired({Platform.school, Platform.center, Platform.student}) + @ApiOperation("查询种子赛道启用赛事年份") + public ResponseVO getSeedTrackMatch() { + return ResponseData.generateCreatedResponse(0, matchDictService.getSeedTrackMatch()); + } + + @PostMapping(value = "/getMatch") + @ApiOperation("查询启用种子赛事年份") + public ResponseVO getMatch() { + return ResponseData.generateCreatedResponse(0, matchDictService.getMatch()); + } + + @PostMapping(value = "/getVocationalMatch") + @ApiOperation("查询启用职教赛事年份") + public ResponseVO getVocationalMatch() { + return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalMatch()); + } + + @PostMapping("updateMatchDate") + @ApiOperation("修改届数 id registrationStart registrationDeadline") + public ResponseVO updateMatch(@RequestBody MatchDictDO matchDictDO){ + matchDictService.updateMatchDate(matchDictDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping("getMatchInfo") + @ApiOperation("查看某届数详情 id") + public ResponseVO getMatch(@RequestBody MatchDictDO matchDictDO){ + return ResponseData.generateCreatedResponse(0,matchDictService.getMatch(matchDictDO)); + } + + + @PostMapping(value = "/getMainTrackMatchPage") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("中心端/院校端 ---分页查询主赛道赛事年份:pageNo、pageSize") + public ResponseVO getMainTrackMatchPage(@RequestBody SelectListPageDTO selectListPageDTO) { + Page page = new Page(selectListPageDTO.getPageNo(), selectListPageDTO.getPageSize()); + return ResponseData.generateCreatedResponse(0, matchDictService.page(page, new QueryWrapper+ * 时间安排 前端控制器 + *
+ * + * @author DengMin + * @since 2021-05-27 + */ +@RestController +@RequestMapping("/matchSchedule") +@Api(tags = "时间安排") +public class MatchScheduleController { + + @Autowired + private MatchScheduleService matchScheduleService; + + @Autowired + private MatchDictService matchDictService; + + @PostMapping(value = "/getMatchSchedule") + @LoginRequired({Platform.student}) + @ApiOperation("学生端 ---种子赛道查看时间安排:matchId/赛事年份ID") + public ResponseVO getMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) { + MatchDictDO matchDictDO = matchDictService.getOne(new QueryWrapper+ * 通知消息表 前端控制器 + *
+ * + * @author DengMin + * @since 2021-05-17 + */ +@RestController +@Api(tags = "通知消息") +@RequestMapping("/message") +public class MessageController { + + @Autowired + private MessageService messageService; + + @PostMapping(value = "/getMessage") + @ApiOperation("####查询通知") + public ResponseVO getMessage() { + List+ * 权限表 前端控制器 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@RestController +@Api(tags = "权限") +@RequestMapping("/permissions") +public class PermissionsController { + + @Autowired + private PermissionsService permissionsService; + + @PostMapping("allPermissions") + @ApiOperation("所有权限") + public ResponseVO allPermissions(){ + return ResponseData.generateCreatedResponse(0,permissionsService.allPermissions()); + } + + +} diff --git a/src/main/java/com/zhongzhi/controller/ProjectController.java b/src/main/java/com/zhongzhi/controller/ProjectController.java new file mode 100644 index 0000000..70383bd --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/ProjectController.java @@ -0,0 +1,643 @@ +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") + @ApiOperation("####学生端(高职赛道、种子赛道通用) ---项目详情: id/项目ID") + public ResponseVO getProjectDetail(@RequestBody ProjectDO projectDO) { + return ResponseData.generateCreatedResponse(0, projectService.getProjectById(projectDO.getId())); + } + +// @PostMapping(value = "/getMainTrackProject") +// @LoginRequired(Platform.student) +// @ApiOperation("学生端 ---主赛道项目分页查询: matchId/赛事年份ID, pageNo/当前页数, pageSize/每页显示条数") +// public ResponseVO getMainTrackProject(@RequestBody ProjectListPageDTO projectListPageDTO) { +// return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProject(projectListPageDTO)); +// } + + @PostMapping(value = "/getMainTrackProjectById") + @LoginRequired(Platform.student) + @ApiOperation("学生端---根据ID查询主赛道项目信息") + public ResponseVO getMainTrackProjectById() { + return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProjectById()); + } + + @PostMapping(value = "/createMainTrackProject") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---保存主赛道项目信息: 项目logo/logoUri、项目名称/projectName、所在地/address、itemField/所属领域、项目概述/projectIntro、projectTransform/国家级重大、重点科研项目的科研成果转化项目" + + "学校科技成果转化/resultTransfer、参赛申报人为科技成果的完成人或所有人/competitionOwner、参赛申报人为科技成果的第一完成人或所有人/competitionFirst" + + "师生共创/bothInvention、项目进展/projectProgress(创意设计阶段,已注册公司)、公司名称/companyName、法人身份/legalPersonStatus、法人姓名/legalPersonName、职务/position、注册资金/registerFund" + + "注册时间/registerDate、注册省份/registerProvince、注册地址/registerAddress、统一社会信用代码/unifyCode" + + "股权结构/pos:[{ shareholderStatus/股东身份、shareholderName/股东名称、shareholdingRatio/持股比例 }]" + + "隐私设置/privacySetting(保密,公开)、materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址" + + "vodUrl 视频地址") + public ResponseVO createMainTrackProject(@RequestBody CreateMainTrackProjectDTO createMainTrackProjectDTO) { + projectService.createMainTrackProject(createMainTrackProjectDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/getProjectMemberById") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---根据项目ID查询主赛道团队成员") + public ResponseVO getProjectMemberById() { + return ResponseData.generateCreatedResponse(0, projectService.getProjectMemberById()); + } + + @PostMapping(value = "/createProjectMember") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---保存主赛道团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号" + + "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" + + "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]") + public ResponseVO createProjectMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) { + createProjectMemberDTO.setProjectGroup(ProjectType.MAIN_TRACK); + createProjectMemberDTO.setProjectType(ProjectType.MAIN_TRACK); + projectService.createProjectMember(createProjectMemberDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/withdrawn") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---撤回申请:id/项目ID") + public ResponseVO withdrawn(@RequestBody ProjectDO projectDO) throws Exception{ + projectService.withdrawn(projectDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/rollback") +// @LoginRequired(Platform.school) + @ApiOperation("院校端 ---上报撤回:id/项目ID") + public ResponseVO rollback(@RequestBody ProjectDO projectDO) { + projectService.rollback(projectDO); + return ResponseData.generateCreatedResponse(0); + } + +// @PostMapping(value = "/getSeedTrackProject") +// @LoginRequired(Platform.student) +// @ApiOperation("学生端 ---种子赛道项目分页查询: matchId/年份ID, pageNo/当前页数, pageSize/每页显示条数") +// public ResponseVO getSeedTrackProject(@RequestBody ProjectListPageDTO projectListPageDTO) { +// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProject(projectListPageDTO)); +// } + + @PostMapping(value = "/createSeedTrackProject") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---保存种子赛道项目信息: projectProgress:红色文创/科技创新 projectName/项目名称、projectGroup/组别、projectIntro/介绍及创新点、projectCreativity/设计背景、" + + "scientificPrinciple/科学设计、applicationProspect/应用前景、roadShowForm/路演形式、restriction/创意实施或实验所受条件的限制" + + "、materials/项目材料:[{ materialsType/项目计划书类型、materialsSize/项目计划书大小、materialsName/项目计划书名称、materialsUrl/项目计划书地址 }]") + public ResponseVO createSeedTrackProject(@RequestBody CreateSeedTrackProjectDTO createSeedTrackProjectDTO) { + projectService.createSeedTrackProject(createSeedTrackProjectDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/getTechnologyProjectById") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---根据ID查询科技创新项目") + public ResponseVO getTechnologyProjectById() { + return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectById()); + } + + @PostMapping(value = "/getCulturalProjectById") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---根据ID查询红色文创项目") + public ResponseVO getCulturalProjectById() { + return ResponseData.generateCreatedResponse(0, projectService.getCulturalProjectById()); + } + + @PostMapping(value = "/uploadTechnologyProjectAttachment") + @LoginRequired(Platform.student) + @ApiOperation("学生端 --- 上传科技创新项目加盖公章的附件: printAttachment/附件地址, printAttachmentType/附件类型, printAttachmentName/附件名称") + public ResponseVO uploadTechnologyProjectAttachment(@RequestBody PrintAttachmentDTO printAttachmentDTO)throws Exception { + printAttachmentDTO.setProjectGroup(ProjectType.TECHNOLOGY_INNOVATION_GROUP); + projectService.uploadPrintAttachment(printAttachmentDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/createTechnologyProjectMember") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---保存科技创新项目团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、idCard身份证 studentNo/学籍号 fiveYears" + + "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" + + "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]") + public ResponseVO createTechnologyProjectMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) { + createProjectMemberDTO.setProjectGroup(ProjectType.TECHNOLOGY_INNOVATION_GROUP); + createProjectMemberDTO.setProjectType(ProjectType.SEED_TRACK); + projectService.createProjectMember(createProjectMemberDTO); + return ResponseData.generateCreatedResponse(0); + } + +// @PostMapping(value = "/getTechnologyProjectMember") +// @LoginRequired(Platform.student) +// @ApiOperation("学生端 ---查询科技创新项目团队信息") +// public ResponseVO getTechnologyProjectMember() { +// return ResponseData.generateCreatedResponse(0, projectService.getProjectMember(ProjectType.TECHNOLOGY_INNOVATION_GROUP)); +// } + + @PostMapping(value = "/uploadCulturalProjectAttachment") + @LoginRequired(Platform.student) + @ApiOperation("学生端 --- 上传红色文创项目加盖公章的附件: printAttachment/附件地址, printAttachmentType/附件类型, printAttachmentName/附件名称") + public ResponseVO uploadCulturalProjectAttachment(@RequestBody PrintAttachmentDTO printAttachmentDTO) throws Exception{ + printAttachmentDTO.setProjectGroup(ProjectType.CULTURAL_CREATIVE_GROUP); + projectService.uploadPrintAttachment(printAttachmentDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/createCulturalProjectMember") + @LoginRequired(Platform.student) + @ApiOperation("学生端 ---保存红色文创项目团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、idCard 身份证 studentNo/学籍号 fiveYears" + + "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" + + "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]") + public ResponseVO createCulturalProjectMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) { + createProjectMemberDTO.setProjectGroup(ProjectType.CULTURAL_CREATIVE_GROUP); + createProjectMemberDTO.setProjectType(ProjectType.SEED_TRACK); + projectService.createProjectMember(createProjectMemberDTO); + return ResponseData.generateCreatedResponse(0); + } + +// @PostMapping(value = "/getCulturalProjectMember") +// @LoginRequired(Platform.student) +// @ApiOperation("学生端 ---查询红色文创项目团队信息") +// public ResponseVO getCulturalProjectMember() { +// return ResponseData.generateCreatedResponse(0, projectService.getProjectMember(ProjectType.CULTURAL_CREATIVE_GROUP)); +// } + + @PostMapping(value = "/getMainTrackProjectPage") + @LoginRequired(Platform.school) + @ApiOperation("院校端 --- 分页查询主赛道全部项目:matchId/赛事ID, projectSchedule/项目进度(全部项目传空字符串、校内赛、复赛、决赛), " + + "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") + public ResponseVO getMainTrackProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProjectPage(projectListPageDTO)); + } + + @PostMapping(value = "/getMainTrackProjectDetail") + @LoginRequired({Platform.center, Platform.school, Platform.review}) + @ApiOperation("学生端/中心端 ---查询主赛道项目详情:id/项目ID") + public ResponseVO getMainTrackProjectDetail(@RequestBody ProjectDO projectDO) { + return ResponseData.generateCreatedResponse(0, projectService.getMainTrackProjectDetail(projectDO.getId())); + } + + @PostMapping(value = "/delete") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("中心端/院校端 --- 删除项目:id/项目ID") + public ResponseVO delete(@RequestBody ProjectDO projectDO) { + projectService.removeById(projectDO.getId()); + return ResponseData.generateCreatedResponse(0); + } + +// @PostMapping(value = "/getSeedTrackProjectList") +// @LoginRequired(Platform.school) +// @ApiOperation("院校端 --- 分页查询种子赛道全部项目:matchId/赛事ID,projectGroup/项目组别(科技创新、红色文创)、projectSchedule/项目进度(全部项目传空字符串、校内赛、复赛、决赛), " + +// "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") +// public ResponseVO getSeedTrackProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) { +// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectList(projectListPageDTO)); +// } + +// @PostMapping(value = "/getSeedTrackProjectPage") +// @LoginRequired(Platform.center) +// @ApiOperation("中心端 --- 分页查询种子赛道全部项目:matchId/赛事ID,projectGroup/项目组别(科技创新、红色文创)、projectSchedule/项目进度(全部项目传空字符串、校内赛、复赛、决赛), " + +// "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数 projectProgress") +// public ResponseVO getSeedTrackProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) { +// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectPage(projectListPageDTO)); +// } + + @PostMapping(value = "/downloadTechnologyPDF") + @LoginRequired({Platform.student}) + @ApiOperation("学生端 --- 种子赛道科技创新申请表下载") + public void downloadTechnologyPDF() { + projectService.downloadPDF(ProjectType.TECHNOLOGY_INNOVATION_GROUP); + } + + @PostMapping(value = "/downloadCulturalPDF") + @LoginRequired({Platform.student}) + @ApiOperation("学生端 --- 种子赛道红色文创申请表下载") + public void downloadCulturalPDF() { + projectService.downloadPDF(ProjectType.CULTURAL_CREATIVE_GROUP); + } + + @PostMapping(value = "/getSeedTrackProjectDetail") + @LoginRequired({Platform.center, Platform.school, Platform.review}) + @ApiOperation("中心端/院校端 --- 种子赛道项目详情:id/项目ID") + public ResponseVO getSeedTrackProjectDetail(@RequestBody ProjectDO projectDO) { + return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectDetail(projectDO.getId())); + } + + @PostMapping(value = "/weedOut") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("院校端 --- 不予提交:id/项目ID") + public ResponseVO weedOut(@RequestBody ApproveDTO approveDTO) { + projectService.weedOut(approveDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/batchWeedOut") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("院校端 --- 批量不予提交:ids/项目ID") + public ResponseVO batchWeedOut(@RequestBody ApproveDTO approveDTO) { + projectService.batchWeedOut(approveDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/pass") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("中心端/院校端 --- (校内赛/初赛/复赛/决赛)通过:id/项目ID、" + + "projectStatus projectSchedule ") + public ResponseVO pass(@RequestBody ApproveDTO approveDTO) { + projectService.pass(approveDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/batchPass") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("中心端/院校端 --- 批量(校内赛/初赛/复赛/决赛)通过:ids/项目ID、" + + "projectStatus/1:市级复赛通过, 2:市级优胜奖,3/6:市级银奖,4:市级铜奖,5:市级金奖 7 未通过") + public ResponseVO batchPass(@RequestBody ApproveDTO approveDTO) { + projectService.batchPass(approveDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/getReviewList") + @LoginRequired({Platform.center}) + @ApiOperation("中心端 --- 评审列表:projectGroup/组别(科技创新、红色文创、主赛道)、projectName/搜索项目或院校、 projectStatus/项目状态(市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" + + "pageNo/当前页数、pageSize/每页显示条数") + public ResponseVO getReviewList(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getReviewList(reviewListDTO)); + } + + @PostMapping(value = "/getProjectReviewNum") + @LoginRequired({Platform.center}) + @ApiOperation("中心端 --- 评审列表项目数量统计:matchId/赛事年份ID、projectProgress/组别(科技创新、文化创意), projectStatus/项目进度(市级复赛、市级决赛)") + public ResponseVO getProjectReviewNum(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getProjectReviewNum(reviewListDTO)); + } + + @PostMapping(value = "/getProjectReviewAssignNum") + @LoginRequired({Platform.center}) + @ApiOperation("中心端 --- 评审分配项目数量统计:matchId/赛事年份ID、projectGroup/组别(科技创新、红色文创), projectStatus/项目进度(市级复赛、市级决赛)") + public ResponseVO getProjectReviewAssignNum(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getProjectReviewAssignNum(reviewListDTO)); + } + + @PostMapping(value = "/getReviewProjectNum") + @LoginRequired({Platform.review}) + @ApiOperation("评审端 --- 评审项目数量统计:matchId/赛事年份ID、projectGroup/组别(科技创新、红色文创), projectStatus/项目状态(市级复赛、市级决赛)") + public ResponseVO getReviewProjectNum(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getReviewProjectNum(reviewListDTO)); + } + + @PostMapping(value = "/getExportProjectListField") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("中心端 --- 种子赛道项目字段") + public ResponseVO getExportProjectListField() { + return ResponseData.generateCreatedResponse(0, projectService.getExportProjectField()); + } + + @PostMapping(value = "/exportProjectCollegeList") + @LoginRequired({Platform.school}) + @ApiOperation("院校端 --- 批量导出院校项目:matchId/赛事ID") + public void exportProjectCollegeList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) { + projectService.exportProjectCollegeList(projectCollegeListDTO); + } + + @PostMapping(value = "/exportProjectList") + @ApiOperation("####中心端 --- 批量导出种子赛道项目:matchId/赛事ID") + public void exportProjectList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) { + projectService.exportProjectList(projectCollegeListDTO); + } + + @PostMapping(value = "/exportProjectAll") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 --- 导出全部种子赛道项目:matchId/赛事ID, projectSchedule/项目进度,projectGroup/项目组别") + public void exportProjectAll(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) { + projectService.exportProjectAll(projectCollegeListDTO); + } + + @PostMapping(value = "/exportProjectAllProgress") +// @LoginRequired({Platform.center}) + @ApiOperation("中心端 --- 导出全部种子赛道项目:matchId/赛事ID, projectSchedule/项目进度,projectGroup/项目组别 projectProgress 组别") + public void exportProjectAllProgress(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) { + projectService.exportProjectAllProgress(projectCollegeListDTO); + } + + @PostMapping(value = "/getExportProjectField") + @LoginRequired({Platform.center}) + @ApiOperation("中心端 --- 评审项目字段") + public ResponseVO getExportProjectField() { + return ResponseData.generateCreatedResponse(0, projectService.getExportProjectReviewField()); + } + + @PostMapping(value = "/exportProject") +// @LoginRequired({Platform.center}) + @ApiOperation("####中心端 --- 评审项目导出:matchId/赛事ID userId") + public ResponseVO exportProject(@RequestBody ReviewListDTO reviewListDTO) { + projectService.exportProjectReview(reviewListDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/exportProjectNew") + @LoginRequired({Platform.center}) + @ApiOperation("中心端 --- 评审项目导出:matchId/赛事ID") + public ResponseVO exportProjectNew(@RequestBody ReviewListDTO reviewListDTO) { + projectService.exportProjectNew(reviewListDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/exportProjectById") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 --- 评审项目根据ID导出:id/ID") + public ResponseVO exportProjectById(@RequestBody ReviewListDTO reviewListDTO) { + projectService.exportProjectById(reviewListDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/getProjectReviewPage") + @LoginRequired({Platform.review}) + @ApiOperation("评审端 ---评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数") + public ResponseVO getProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getProjectReviewPage(projectReviewPageDTO)); + } + + @PostMapping(value = "/setScore") + @LoginRequired({Platform.review}) + @ApiOperation("评审端 ---批量预评分:reviewScore[{ id/项目ID、score/分数 }] +" + + " --- 单个预评分:id/项目ID、score/分数") + public ResponseVO setScore(@RequestBody ProjectReviewScoreDTO projectReviewScoreDTO) { + projectService.setScore(projectReviewScoreDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/submitted") + @LoginRequired({Platform.review}) + @ApiOperation("评审端 ---批量提交:ids:[项目ID]" + + " --- 提交评分:id/项目ID ") + public ResponseVO submitted(@RequestBody ProjectReviewScoreDTO projectReviewScoreDTO) { + projectService.submitted(projectReviewScoreDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "getCollegeDataOverview") + @LoginRequired({Platform.school}) + @ApiOperation("院校端 --- 种子赛道数据概览") + public ResponseVO getCollegeDataOverview(@RequestBody DataOverviewDTO dataOverviewDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getCollegeDataOverview(dataOverviewDTO)); + } + +// @PostMapping(value = "getCollegeVocationalDataOverview") +// @LoginRequired({Platform.school}) +// @ApiOperation("院校端 --- 职教赛道数据概览") +// public ResponseVO getCollegeVocationalDataOverview() { +// return ResponseData.generateCreatedResponse(0, projectService.getCollegeVocationalDataOverview()); +// } + + @PostMapping(value = "getDataOverview") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 --- 数据概览 matchId") + public ResponseVO getDataOverview(@RequestBody DataOverviewDTO dataOverviewDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalDataOverview(dataOverviewDTO)); + } + +// @PostMapping(value = "getSeedTrackDataOverview") +// @LoginRequired({Platform.center}) +// @ApiOperation("中心端 --- 种子赛道数据概览") +// public ResponseVO getSeedTrackDataOverview() { +// return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackDataOverview()); +// } +// +// @PostMapping(value = "getMainTrackDataOverview") +// @LoginRequired({Platform.center}) +// @ApiOperation("中心端 --- 主赛道数据概览") +// public ResponseVO getMainTrackDataOverview() { +// return ResponseData.generateCreatedResponse(0, projectService.getMainTrackDataOverview()); +// } + + @PostMapping(value = "exportCollegeProject") + @LoginRequired({Platform.school}) + @ApiOperation("院校端 --- 批量导出项目") + public ResponseVO exportCollegeProject(@RequestBody CollegeProjectDTO collegeProjectDTO) { + projectService.exportCollegeProject(collegeProjectDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "getProjectByStudentId") + @LoginRequired({Platform.student}) + @ApiOperation("学生端 --- 项目查重:matchId/赛事ID, projectGroup/组别") + public ResponseVO getProjectByStudentId(@RequestBody StudentProjectDTO studentProjectDTO) { + projectService.getProjectByStudentId(studentProjectDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "getSeedTrackProjectNum") + @LoginRequired({Platform.center, Platform.school}) + @ApiOperation("中心端/院校端 --- 项目数量: matchId/赛事ID、projectGroup/项目组别") + public ResponseVO getSeedTrackProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getSeedTrackProjectNum(seedTrackProjectNumDTO)); + } + + /* -- 职教接口(学生端) -- */ + @PostMapping(value = "createVocationalProject") + @LoginRequired({ Platform.student }) + @ApiOperation("####学生端--创建项目:项目名称/projectName、项目概述/projectIntro、参赛赛道/projectTrack、单元赛道/unitTrack、组别/projectGroup" + + "公司名称/companyName、注册资金/registerFund、注册时间/registerDate、注册地址/registerAddress、营业执照/businessLicense" + + "项目计划书 projectAttachment projectAttachmentName projectAttachmentType" + + "答辩PPT projectPptUrl projectPptType projectPptName"+ + "身份证明书/identityCertificate 承诺书 commitmentLetter participationCertificate 参赛证明书") + public ResponseVO createVocationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO)throws Exception { + projectService.createVocationalProject(createVocationalProjectDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "updateVocationalProject") + @LoginRequired({ Platform.student }) + @ApiOperation("学生端(职教)--修改职教项目:id/项目ID、 createVocationalProject的字段, projectSchedule 项目阶段 ") + public ResponseVO updateVocationalProject(@RequestBody CreateVocationalProjectDTO createVocationalProjectDTO) { + projectService.updateVocationalProject(createVocationalProjectDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "getVocationalProject") + @LoginRequired(Platform.student) + @ApiOperation("####学生端 ---职教赛道项目分页查询: matchId/赛事届数ID ,pageNo/当前页数, pageSize/每页显示条数") + public ResponseVO getVocationalProject(@RequestBody ProjectListPageDTO projectListPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProject(projectListPageDTO)); + } + + @PostMapping(value = "getVocationalProjectById") + @LoginRequired(Platform.student) + @ApiOperation("####学生端(职教)--根据ID查询高职赛道项目信息") + public ResponseVO getVocationalProjectById() { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectById()); + } + + @PostMapping(value = "createVocationalMember") + @LoginRequired(Platform.student) + @ApiOperation("####学生端(职教) ---保存职教赛道团队信息:name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号、email/邮箱 " + + "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号}]" + + "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号 idCard}]") + public ResponseVO createVocationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) { + projectService.createVocationalMember(createProjectMemberDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping("confirm") + @LoginRequired(Platform.student) + @ApiOperation("id 项目id") + public ResponseVO confirm(@RequestBody ProjectDO projectDO){ + projectService.confirm(projectDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "updateVocationalMember") + @LoginRequired(Platform.student) + @ApiOperation("####学生端(职教) ---保存职教赛道团队信息:id/项目ID、name/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号、email/邮箱" + + "teamMember/团队成员:[{ teamName/姓名、school/就读学校、grade/年级、major/就读专业、sex/性别、studentNo/学籍号 }]" + + "mentor/指导老师:[{ teacherName/姓名、 company/工作单位、positionTitle/职称、position/职务、telephone/手机号}]") + public ResponseVO updateVocationalMember(@RequestBody CreateProjectMemberDTO createProjectMemberDTO) { + projectService.updateVocationalMember(createProjectMemberDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "getVocationalProjectMember") + @LoginRequired(Platform.student) + @ApiOperation("####学生端(职教) ---查询职教项目团队信息") + public ResponseVO getVocationalProjectMember() { + return ResponseData.generateCreatedResponse(0, projectService.getProjectMember()); + } + + /* -- 管理端 -- */ + @PostMapping(value = "/getVocationalProjectPage") + @ApiOperation("####中心端 --- 分页查询职教赛道项目管理:matchId/赛事ID,projectStatus/项目进度, " + + "name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") + public ResponseVO getVocationalProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectPage(projectListPageDTO)); + } + + @PostMapping(value = "updateAllEditStatus") + @ApiOperation("中心端 --- 更新所有编辑状态:matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、editStatus/状态(0:关闭,1:开启)") + public ResponseVO updateAllEditStatus(@RequestBody EditStatusDTO editStatusDTO) { + projectService.updateAllEditStatus(editStatusDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "batchUpdateEditStatus") + @ApiOperation("中心端 --- 批量更新编辑状态:ids/项目ID(数组)、editStatus/状态(0:关闭,1:开启)") + public ResponseVO batchUpdateEditStatus(@RequestBody EditStatusDTO editStatusDTO) { + projectService.batchUpdateEditStatus(editStatusDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "updateEditStatus") + @ApiOperation("中心端 --- 更新编辑状态:id/项目ID、editStatus/状态(0:关闭,1:开启)") + public ResponseVO updateEditStatus(@RequestBody EditStatusDTO editStatusDTO) { + projectService.updateEditStatus(editStatusDTO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/getVocationalReviewList") + @ApiOperation("####中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectSchedule/、projectReview/评审分配状态(已分配/未分配)、" + + "pageNo/当前页数、pageSize/每页显示条数") + public ResponseVO getVocationalReviewList(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewList(reviewListDTO)); + } + + @PostMapping(value = "/getVocationalProjectDetail") + @ApiOperation("####中心端/院校端 --- 职教赛道项目详情:id/项目ID") + @LoginRequired({Platform.center,Platform.school,Platform.review}) + public ResponseVO getVocationalProjectDetail(@RequestBody ProjectDO projectDO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectDetail(projectDO.getId())); + } + + /* -- 院校端 -- */ + @PostMapping(value = "/getVocationalProjectList") + @ApiOperation("院校端 --- 分页查询职教赛道项目:matchId/赛事ID,projectGroup/项目组别、projectSchedule/项目进度(全部项目传空字符串、校内赛、初赛、复赛、决赛), " + + "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") + @LoginRequired({Platform.center,Platform.school}) + public ResponseVO getVocationalProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectList(projectListPageDTO)); + } + + @PostMapping(value = "getReviewVocationalNum") + @ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId") + @LoginRequired({Platform.center,Platform.review}) + public ResponseVO getReviewVocationalNum(@RequestBody ReviewVocationalNumDTO reviewVocationalNumDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getReviewVocationalNum(reviewVocationalNumDTO)); + } + + /* -- 评审端 -- */ + @PostMapping(value = "/getVocationalProjectReviewPage") + @ApiOperation("评审端 ---职教评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(初赛、复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数") + @LoginRequired({Platform.center,Platform.school,Platform.review}) + public ResponseVO getVocationalProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectReviewPage(projectReviewPageDTO)); + } + + @PostMapping(value = "getVocationalProjectNum") + @ApiOperation("####中心端/院校端 --- (职教)项目管理数量: matchId/赛事ID、projectGroup/项目组别") + public ResponseVO getVocationalProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectNum(seedTrackProjectNumDTO)); + } + + @PostMapping(value = "/getVocationalReviewNum") + @ApiOperation("####中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、, projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)") + public ResponseVO getVocationalReviewNum(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewNum(reviewListDTO)); + } + + @PostMapping(value = "/getVocationalAssignNum") + @ApiOperation("中心端 --- 职教评审分配(已分配 + 未分配)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)") + public ResponseVO getVocationalAssignNum(@RequestBody ReviewListDTO reviewListDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getVocationalAssignNum(reviewListDTO)); + } + +// @PostMapping(value = "importVocationalProject") +// @ApiOperation("中心端/院校端 --- 导出高职项目赛事: projectGroup/项目组别") +// @LoginRequired({ Platform.center, Platform.school }) +// public void importVocationalProject(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) { +// projectService.importVocationalProject(importVocationalProjectDTO); +// } + + @PostMapping(value = "importProjectByGroup") + @ApiOperation("中心端/院校端 ---excel 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别") + public void importProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) { + projectService.importProjectByGroup(importVocationalProjectDTO); + } + + @PostMapping("exportProjectByGroup") + @ApiOperation("中心端/院校端 ---pdf 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别 matchId") + public void exportProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) { + projectService.exportProjectByGroup(importVocationalProjectDTO); + } + + + + + +} \ No newline at end of file diff --git a/src/main/java/com/zhongzhi/controller/ProjectJudgeController.java b/src/main/java/com/zhongzhi/controller/ProjectJudgeController.java new file mode 100644 index 0000000..63d1b61 --- /dev/null +++ b/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("评审端 --- 登录:accountName/账号、password/密码") + public ResponseVO login(@RequestBody LoginDTO loginDTO) { + return ResponseData.generateCreatedResponse(0, projectJudgeService.login(loginDTO)); + } + + @PostMapping(value = "/getProjectJudgePage") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---评委列表:username/姓名、status/状态、pageNo/当前页数、 pageSize/每页显示条数") + public ResponseVO getProjectJudgePage(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) { + return ResponseData.generateCreatedResponse(0, projectJudgeService.getProjectJudgePage(projectJudgePageDTO)); + } + + @PostMapping(value = "/createProjectJudge") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---添加评委:username/姓名、telephone/手机号、 position/职位、unit/单位") + public ResponseVO createProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) { + projectJudgeService.createProjectJudge(projectJudgeDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/updateProjectJudge") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---编辑评委:id/ID、username/姓名、telephone/手机号、 position/职位、unit/单位, status/状态(1:启用,0:禁用)") + public ResponseVO updateProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) { + projectJudgeService.updateProjectJudge(projectJudgeDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/delete") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---删除评委:id/ID") + public ResponseVO delete(@RequestBody ProjectJudgeDO projectJudgeDO) { + projectJudgeService.removeById(projectJudgeDO.getId()); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/projectJudgesAssigned") + @LoginRequired({Platform.center}) + @ApiOperation("中心端 ---已分配项目评委列表: matchId/赛事ID、projectGroup/组别、projectSchedule/进度") + public ResponseVO projectJudgesAssigned(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) { + return ResponseData.generateCreatedResponse(0, projectJudgeService.projectJudgesAssigned(projectJudgePageDTO)); + } + + @PostMapping(value = "/downloadJudgeTemplate") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---下载导入评委模板") + public ResponseVO downloadJudgeTemplate() { + projectJudgeService.downloadTemplate(); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/importJudge") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---导入评委:file/文件(数据格式:Form-Data)") + public ResponseVO importJudge(MultipartFile file) { + projectJudgeService.importJudge(file); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/exportProjectJudge") + @LoginRequired({Platform.center}) + @ApiOperation("####中心端 ---导出评委") + public void exportProjectJudge() { + projectJudgeService.exportProjectJudge(); + } + +} diff --git a/src/main/java/com/zhongzhi/controller/ProjectReviewController.java b/src/main/java/com/zhongzhi/controller/ProjectReviewController.java new file mode 100644 index 0000000..3b589ce --- /dev/null +++ b/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、") + 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 a/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java b/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java new file mode 100644 index 0000000..9faad33 --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java @@ -0,0 +1,47 @@ +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") + @ApiOperation("####中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)") + public ResponseVO getProjectReviewPeriod(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) { + return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriod(projectReviewPeriodDTO)); + } + + @PostMapping(value = "/updateProjectReviewPeriod") + @ApiOperation("中心端 --- 修改评审时间:id/ID、matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、startTime/开始时间、endTime/结束时间") + public ResponseVO updateProjectReviewPeriod(@RequestBody ProjectReviewPeriodDO projectReviewPeriodDO) { + projectReviewPeriodService.updateProjectReviewPeriod(projectReviewPeriodDO); + return ResponseData.generateCreatedResponse(0); + } + +} diff --git a/src/main/java/com/zhongzhi/controller/SmsCodeController.java b/src/main/java/com/zhongzhi/controller/SmsCodeController.java new file mode 100644 index 0000000..e4a5223 --- /dev/null +++ b/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) { + smsCodeService.sendRegisterCode(smsCodeDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/sendStudentLoginCode") + @ApiOperation("####学生端 ---登陆验证码:telephone/手机号") + public ResponseVO sendStudentLoginCode(@RequestBody SmsCodeDO smsCodeDO) { + smsCodeService.sendStudentLoginCode(smsCodeDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/sendAdministerLoginCode") + @ApiOperation("中心端 --- 中心端登陆验证码:telephone/手机号") + public ResponseVO sendAdministerLoginCode(@RequestBody AdministerDO administerDO) { + smsCodeService.sendAdministerLoginCode(administerDO); + return ResponseData.generateCreatedResponse(0); + } + + @PostMapping(value = "/sendJudgeLoginCode") + @ApiOperation("评审端 ---登陆验证码:telephone/手机号") + public ResponseVO sendJudgeLoginCode(@RequestBody SmsCodeDO smsCodeDO) { + smsCodeService.sendJudgeLoginCode(smsCodeDO); + return ResponseData.generateCreatedResponse(0); + } + +} diff --git a/src/main/java/com/zhongzhi/controller/SmsNoticeController.java b/src/main/java/com/zhongzhi/controller/SmsNoticeController.java new file mode 100644 index 0000000..0135843 --- /dev/null +++ b/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 a/src/main/java/com/zhongzhi/controller/StudentController.java b/src/main/java/com/zhongzhi/controller/StudentController.java new file mode 100644 index 0000000..00c7492 --- /dev/null +++ b/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/就读专业,grade,className,studyNo,enrollmentDate/入学年份, graduateDate/毕业年份") + public ResponseVO register(@RequestBody RegisterDTO registerDTO) { + return ResponseData.generateCreatedResponse(0, studentService.register(registerDTO)); + } + + @PostMapping(value = "/login") + @ApiOperation("####登陆:telephone/手机号, code/验证码") + public ResponseVO login(@RequestBody LoginDTO loginDTO) { + return ResponseData.generateCreatedResponse(0, studentService.login(loginDTO)); + } + + @PostMapping(value = "updateStudentInfo") + @LoginRequired({ Platform.student }) + @ApiOperation("登陆:id/ID, education/学历, college/就读院校, major/专业, enrollmentDate/入学年份, graduateDate/毕业年份") + public ResponseVO updateStudentInfo(@RequestBody StudentDO studentDO) { + studentService.updateStudentInfo(studentDO); + return ResponseData.generateCreatedResponse(0); + } +} diff --git a/src/main/java/com/zhongzhi/controller/YearDictController.java b/src/main/java/com/zhongzhi/controller/YearDictController.java new file mode 100644 index 0000000..ce4b79f --- /dev/null +++ b/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 a/src/main/java/com/zhongzhi/dao/AdministerDAO.java b/src/main/java/com/zhongzhi/dao/AdministerDAO.java new file mode 100644 index 0000000..f07974f --- /dev/null +++ b/src/main/java/com/zhongzhi/dao/AdministerDAO.java @@ -0,0 +1,24 @@ +package com.zhongzhi.dao; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhongzhi.model.AdministerDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhongzhi.vo.administer.GetAdministerPageVO; +import org.springframework.stereotype.Repository; + +/** + *+ * 中心管理账户表 Mapper 接口 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@Repository +public interface AdministerDAO extends BaseMapper+ * 赛道管理员映射表 Mapper 接口 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ +@Repository + public interface AdministerTrackMappingDAO extends BaseMapper+ * 院校字典表 Mapper 接口 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@Repository +public interface CollegesDictDAO extends BaseMapper+ * 赛事年份管理 Mapper 接口 + *
+ * + * @author DengMin + * @since 2021-05-17 + */ +@Repository +public interface MatchDictDAO extends BaseMapper+ * 项目表 Mapper 接口 + *
+ * + * @author DengMin + * @since 2021-05-11 + */ +@Repository +public interface ProjectDAO extends BaseMapper+ * 项目评审 Mapper 接口 + *
+ * + * @author DengMin + * @since 2021-05-18 + */ +@Repository +public interface ProjectReviewDAO extends BaseMapper+ * 赛道字典表 Mapper 接口 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ + public interface ProjectTrackDAO extends BaseMapper+ * 中心管理账户表 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("administer") +public class AdministerDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 手机号 + */ + private String telephone; + + /** + * 成员名称 + */ + private String username; + + /** + * 头像 + */ + private String avatar; + + /** + * 角色 + */ + private String role; + + private String college; +} diff --git a/src/main/java/com/zhongzhi/model/MatchDictDO.java b/src/main/java/com/zhongzhi/model/MatchDictDO.java new file mode 100644 index 0000000..d8b6d96 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/MatchDictDO.java @@ -0,0 +1,75 @@ +package com.zhongzhi.model; + +import com.zhongzhi.model.base.BaseModel; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.Date; + +/** + *+ * 赛事年份管理 + *
+ * + * @author DengMin + * @since 2021-05-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("match_dict") +public class MatchDictDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 赛事名称 + */ + private String matchName; + + /** + * 赛事年份 + */ + private String matchDate; + + /** + * 月份 + */ + private String month; + + /** + * 报名开始时间 + */ + private String startTime; + + /** + * 报名结束时间 + */ + private String endTime; + + /** + * 状态(1:启动,0:暂停) + */ + private Integer status; + + /** + * 赛事类型 + */ + private String matchType; + + /*** + * 截止时间 + */ + private String deadline; + + private String registrationStart; + + private String registrationDeadline; + +} diff --git a/src/main/java/com/zhongzhi/model/MatchScheduleDO.java b/src/main/java/com/zhongzhi/model/MatchScheduleDO.java new file mode 100644 index 0000000..8cf43d0 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/MatchScheduleDO.java @@ -0,0 +1,47 @@ +package com.zhongzhi.model; + +import com.zhongzhi.model.base.BaseModel; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.util.Date; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *+ * 时间安排 + *
+ * + * @author DengMin + * @since 2021-05-27 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("match_schedule") +public class MatchScheduleDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 赛事年份ID + */ + private Long matchId; + + /** + * 时间安排 + */ + private String scheduleTime; + + /** + * 说明 + */ + private String explains; + + +} diff --git a/src/main/java/com/zhongzhi/model/ProjectDO.java b/src/main/java/com/zhongzhi/model/ProjectDO.java new file mode 100644 index 0000000..4053a64 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/ProjectDO.java @@ -0,0 +1,168 @@ +package com.zhongzhi.model; + +import com.zhongzhi.model.base.BaseModel; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.time.LocalDateTime; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *+ * 项目表 + *
+ * + * @author DengMin + * @since 2021-05-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("project") +public class ProjectDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 申请人ID + */ + private Long proposerId; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 项目概述 + */ + private String projectIntro; + + /** + * 参赛赛道 + */ + private String projectTrack; + + /** + * 单元赛道 + */ + private String unitTrack; + + /** + * 组别 + */ + private String projectGroup; + + /** + * 赛事年份 + */ + private Long matchId; + + /** + * 公司名称 + */ + private String companyName; + + /** + * 注册时间 + */ + private String registerDate; + + /** + * 注册地址 + */ + private String registerAddress; + + /** + * 注册资金 + */ + private String registerFund; + + /** + * 营业执照 + */ + private String businessLicense; + + /** + * 附件地址 + */ + private String projectAttachment; + + /** + * 附件文件名 + */ + private String projectAttachmentName; + + private String projectAttachmentType; + + /** + * 项目PPT + */ + private String projectPptUrl; + + /** + * 项目PPT类型 + */ + private String projectPptType; + + /** + * 项目PPT名称 + */ + private String projectPptName; + + private String identityCertificate; + + /** + * 承诺书 + */ + private String commitmentLetter; + + /** + * 参赛证明书 + */ + private String participationCertificate; + + /** + * 项目进展 + */ + private String projectProgress; + + /** + * 项目阶段 + */ + private String projectStage; + + /** + * 项目状态 + */ + private String projectStatus; + + /** + * 项目进度 + */ + private String projectSchedule; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 评审状态 + */ + private String projectReview; + + /** + * 分配状态 + */ + private String projectAssigned; + + private Integer editStatus; + + +} diff --git a/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java b/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java new file mode 100644 index 0000000..a827de3 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java @@ -0,0 +1,80 @@ +package com.zhongzhi.model; + +import com.zhongzhi.model.base.BaseModel; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.time.LocalDateTime; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *+ * 项目评审员 + *
+ * + * @author DengMin + * @since 2021-05-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("project_judge") +public class ProjectJudgeDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 姓名 + */ + private String username; + + private String accountName; + + /** + * 密码 + */ + private String password; + + /** + * 手机号 + */ + private String telephone; + + /** + * 职务 + */ + private String position; + + /** + * 单位 + */ + private String unit; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 开户行 + */ + private String bankName; + + /** + * 银行卡号 + */ + private String bankCard; + + /** + * 状态 + */ + private Integer status; + + private Integer passwordFree; + +} diff --git a/src/main/java/com/zhongzhi/model/ProjectMemberDO.java b/src/main/java/com/zhongzhi/model/ProjectMemberDO.java new file mode 100644 index 0000000..a6794f2 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/ProjectMemberDO.java @@ -0,0 +1,104 @@ +package com.zhongzhi.model; + +import com.zhongzhi.model.base.BaseModel; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *+ * 项目团队信息表 + *
+ * + * @author DengMin + * @since 2021-05-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("project_member") +public class ProjectMemberDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 姓名 + */ + private String name; + + /** + * 就读学校 + */ + private String school; + + /** + * 年级 + */ + private String grade; + + private String className; + + /** + * 身份证 + */ + private String idCard; + + + /** + * 就读专业 + */ + private String major; + + /** + * 性别 + */ + private String sex; + + /** + * 学籍号 + */ + private String studentNo; + + /** + * 工作单位 + */ + private String company; + + /** + * 职称 + */ + private String positionTitle; + + /** + * 职务 + */ + private String position; + + /** + * 手机号 + */ + private String telephone; + + /** + * 邮箱 + */ + private String email; + + /** + * 类型(1:团队负责人,2:团队成员,3:指导老师) + */ + private String type; + + private String fiveYears; + + +} diff --git a/src/main/java/com/zhongzhi/model/StudentDO.java b/src/main/java/com/zhongzhi/model/StudentDO.java new file mode 100644 index 0000000..5d88344 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/StudentDO.java @@ -0,0 +1,82 @@ +package com.zhongzhi.model; + +import com.zhongzhi.model.base.BaseModel; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.time.LocalDateTime; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *+ * + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("student") +public class StudentDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 姓名 + */ + private String name; + + /** + * 头像 + */ + private String avatar; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 手机号 + */ + private String telephone; + + /** + * 学历 + */ + private String education; + + /** + * 就读院校 + */ + private String college; + + /** + * 就读专业 + */ + private String major; + + /** + * 入学年份 + */ + private String enrollmentDate; + + /** + * 毕业年份 + */ + private String graduateDate; + + private String className; + + private String grade; + + private String studyNo; + +} diff --git a/src/main/java/com/zhongzhi/service/AdministerService.java b/src/main/java/com/zhongzhi/service/AdministerService.java new file mode 100644 index 0000000..31c0200 --- /dev/null +++ b/src/main/java/com/zhongzhi/service/AdministerService.java @@ -0,0 +1,25 @@ +package com.zhongzhi.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhongzhi.dto.administer.AdministerPageDTO; +import com.zhongzhi.dto.administer.LoginDTO; +import com.zhongzhi.model.AdministerDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhongzhi.vo.administer.AdministerVO; + +/** + *+ * 中心管理账户表 服务类 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +public interface AdministerService extends IService+ * 赛道管理员映射表 服务类 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ +public interface AdministerTrackMappingService extends IService+ * 院校字典表 服务类 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +public interface CollegesDictService extends IService+ * 服务类 + *
+ * + * @author DengMin + * @since 2024-06-25 + */ +public interface MatchCollegePdfService extends IService+ * 赛事年份管理 服务类 + *
+ * + * @author DengMin + * @since 2021-05-17 + */ +public interface MatchDictService extends IService+ * 权限表 服务类 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +public interface PermissionsService extends IService+ * 项目表 服务类 + *
+ * + * @author DengMin + * @since 2021-05-11 + */ +public interface ProjectService extends IService+ * 赛道字典表 服务类 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ + public interface ProjectTrackService extends IService+ * 中心管理账户表 服务实现类 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@Service +public class AdministerServiceImpl extends ServiceImpl+ * 赛道管理员映射表 服务实现类 + *
+* +* @author DengMin +* @since 2025-03-28 +*/ +@Service +public class AdministerTrackMappingServiceImpl extends ServiceImpl+ * 院校字典表 服务实现类 + *
+ * + * @author DengMin + * @since 2021-04-28 + */ +@Service +public class CollegesDictServiceImpl extends ServiceImpl