Commit 7411d8e5 by 涂亚平

20260717

1 parent e5dc9d86
Showing with 8369 additions and 595 deletions
......@@ -2,49 +2,189 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="638a5aae-1fdf-4d8e-b485-bccb20a55a3c" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/error/2024-08-26-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/error/2025-01-07-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/error/2025-01-08-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/error/2025-01-13-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/error/2025-01-14-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2024-08-26-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-01-15-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-01-16-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-02-06-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-02-07-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-02-08-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-02-10-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-02-11-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/logs/springboot-logback/info/2025-02-13-0.log.gz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectTrack.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/OpenStatus.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/RoleType.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/SMSTemplate.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/SubmitStatus.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/DrawLotGroupDictController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/DrawLotsGroupItemsController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/DrawLotsGroupJudgesController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/DrawLotsScenesController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/DrawLotsScoresController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/ProjectConsultController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/ProjectJudgeController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/ProjectReviewController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/ProjectReviewPeriodController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/TimeTableController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/group/AddProjectToSceneDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/group/AllGroupItemsDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/group/CollegeProjectsDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/group/GroupScoresDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/group/JudgeScoreScreenDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/group/MatchJudgesDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/judge/AddJudgeDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/judge/ProjectJudgePageDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/match/SelectListPageDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/period/ProjectReviewPeriodDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/EditStatusDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ExportConsultListVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ExportTeachListVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/GetVocationalProjectDetailDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/MentorDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ReviewListDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ReviewVocationalNumDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/TeamMemberDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/VocationalProjectNum.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/projectJudge/ImportJudge.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/CancelReviewDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/ProjectReviewDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/ProjectReviewPageDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/ProjectReviewScoreDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/ReviewScoreDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/SetReviewDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/review/SubmittedDTO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/DrawLotGroupDictMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/DrawLotsGroupItemsMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/DrawLotsGroupJudgesMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/DrawLotsJudgeNumMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/DrawLotsScenesMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/DrawLotsScoresMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/ProjectConsultMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/ProjectJudgeMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/ProjectReviewMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/ProjectReviewPeriodMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/TimeTableMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/DrawLotGroupDictDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/DrawLotsGroupItemsDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/DrawLotsGroupJudgesDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/DrawLotsJudgeNumDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/DrawLotsScenesDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/DrawLotsScoresDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectConsultDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectJudgeDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectReviewDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectReviewPeriodDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/TimeTableDO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/DrawLotGroupDictService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/DrawLotsGroupItemsService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/DrawLotsGroupJudgesService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/DrawLotsJudgeNumService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/DrawLotsScenesService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/DrawLotsScoresService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/ProjectConsultService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/ProjectJudgeService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/ProjectReviewPeriodService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/ProjectReviewService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/TimeTableService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/DrawLotGroupDictServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/DrawLotsGroupItemsServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/DrawLotsGroupJudgesServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/DrawLotsJudgeNumServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/DrawLotsScenesServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/DrawLotsScoresServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectConsultServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectJudgeServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectReviewPeriodServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectReviewServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/TimeTableServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/AliyunSmsUtil.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/EncryptString.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/ExcelFieldVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/college/GetCollegeInfoVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/AllGroupItemsVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/AllGroupsVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/AllMatchScenesVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/CollegeProjectsVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/GroupJudgeScoresVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/GroupJudgesVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/GroupNumsVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/GroupRankVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/GroupScoresVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/JudgeScoreScreenVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/MatchJudgesVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/QueryItemsVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/SceneGroupsVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/ScoreScreenVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/group/SelectJudgesVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/judge/JudgeInfoVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/judge/ProjectJudgePageVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/judge/ProjectReviewVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/match/MatchDictVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/ProjectAssignNumVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/ProjectJudgeVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/ProjectMemberVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/ProjectPageVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/ReviewListVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/SeedTrackProjectDetailVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/VocationalReviewNumVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/projectReviewPeriod/ProjectReviewPeriodVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/review/FinalsReviewVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/review/ReMatchReviewVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/review/SchoolReviewVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/review/SendNoticeVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/timetable/QueryTablesDetailVO.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/application-test.properties" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DrawLotGroupDictMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DrawLotsGroupItemsMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DrawLotsGroupJudgesMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DrawLotsJudgeNumMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DrawLotsScenesMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/DrawLotsScoresMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/ProjectConsultMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/ProjectJudgeMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/ProjectMaterialsDAO.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/ProjectReviewDAO.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/ProjectReviewPeriodMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/TimeTableMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/logs/springboot-logback-error.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/springboot-logback-error.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/logs/springboot-logback-info.log" beforeDir="false" afterPath="$PROJECT_DIR$/logs/springboot-logback-info.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/logs/springboot-logback/error/2024-08-02-0.log.gz" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/logs/springboot-logback/error/2024-08-05-0.log.gz" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/logs/springboot-logback/error/2024-08-07-0.log.gz" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/logs/springboot-logback/error/2024-08-09-0.log.gz" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectReview.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectReview.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectStatus.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectStatus.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/configure/AliyunSmsProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/configure/AliyunSmsProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/configure/JobFactory.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/configure/QuartzConfig.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/configure/SwaggerConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/configure/SwaggerConfig.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectTrack.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/common/constant/ProjectTrack.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/CollegesDictController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/CollegesDictController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/MatchDictController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/MatchDictController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/OssController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/OssController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/ProjectController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/ProjectController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/TeacherController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/TeacherController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ProjectListPageDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ProjectListPageDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/SeedTrackProjectNumDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/SeedTrackProjectNumDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/SmsVerifyCodeController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/controller/SmsVerifyCodeController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ExportProjectDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/ExportProjectDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/UpdateProjectDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/UpdateProjectDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/UploadVodsDTO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/dto/project/UploadVodsDTO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/CollegesDictMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/CollegesDictMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/MatchDictMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/MatchDictMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/ProjectMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/mapper/ProjectMapper.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/model/CollegesDictDO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/CollegesDictDO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectDO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectDO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectMembersDO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/ProjectMembersDO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/model/TeacherDO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/model/TeacherDO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/CollegesDictService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/CollegesDictService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/MatchDictService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/MatchDictService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/ProjectService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/ProjectService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/SmsVerifyCodeService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/SmsVerifyCodeService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/CollegesDictServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/CollegesDictServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/MatchDictServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/MatchDictServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/TeacherServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/TeacherServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/SmsVerifyCodeServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/SmsVerifyCodeServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/ConstantUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/ConstantUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/ImageCheckUtil.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/OSSUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/OSSUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/PDFUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/PDFUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/college/CollegesVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/college/CollegesVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/SeedTrackProjectPageVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/SeedTrackProjectPageVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/QuartzUtil.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/SMSUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/SMSUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/VodUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/VodUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/util/excel/ExcelUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/util/excel/ExcelUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/OneProjectVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/subsidy/vo/project/OneProjectVO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application-dev.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-dev.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application-prod.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-prod.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application-quartz.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/code.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/code.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/mapper/AdministerMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/AdministerMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/mapper/CollegesDictMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/CollegesDictMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/mapper/MatchDictMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/MatchDictMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/mapper/ProjectMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/ProjectMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/mybatis-plus.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mybatis-plus.properties" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -52,7 +192,7 @@
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CoverageViewManager">
<option name="myElementSize" value="232" />
<option name="myElementSize" value="245" />
</component>
<component name="DatabaseView">
<option name="SHOW_INTERMEDIATE" value="true" />
......@@ -122,9 +262,10 @@
<property name="RequestMappingsPanelWidth0" value="75" />
<property name="RequestMappingsPanelWidth1" value="75" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/target/ecnutracks.jar" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/templates" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
......@@ -136,19 +277,22 @@
<option name="notificationShown" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\code\ecutrack\src\main\resources\templates" />
<recent name="D:\code\ecutrack\src\main\java\com\subsidy\dto\project" />
<recent name="D:\code\ecutrack\src\main\resources\mapper" />
<recent name="D:\code\ecutrack\src\main\java\com\subsidy\vo" />
<recent name="D:\code\ecutrack\src\main\java\com\subsidy\dto" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.subsidy.vo.group" />
<recent name="com.subsidy.dto.group" />
<recent name="com.subsidy.common.constant" />
<recent name="com.subsidy.controller" />
<recent name="com.subsidy.dto.administer" />
<recent name="com.subsidy.vo.wechat" />
<recent name="com.subsidy.dto.wewchat" />
<recent name="com.subsidy.dto.judge" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\code\subsidy-mate\src\main\resources\mapper" />
<recent name="D:\code\subsidy-mate\src\main\java\com\subsidy\dto\labor" />
<recent name="D:\code\subsidy-mate\src\main\java\com\subsidy\vo\labor" />
<recent name="D:\code\subsidy-app\src\main\java\com\subsidy\vo" />
<recent name="D:\code\subsidy-app\src\main\java\com\subsidy\util" />
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\code\ecutrack\src\main\resources" />
</key>
</component>
<component name="RunManager" selected="Spring Boot.MeishuApplication">
......@@ -226,8 +370,8 @@
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.ProjectServiceImpl" />
<item itemvalue="Application.CodeGenerator" />
<item itemvalue="Application.ProjectServiceImpl" />
<item itemvalue="Application.WechatController" />
<item itemvalue="Application.AdministerServiceImpl" />
<item itemvalue="Application.VodPlayHistoryServiceImpl" />
......@@ -945,13 +1089,55 @@
<workItem from="1739433106642" duration="13750000" />
<workItem from="1739775361968" duration="647000" />
<workItem from="1740994892903" duration="353000" />
</task>
<task id="LOCAL-00028" summary="92-online版本">
<created>1665655155929</created>
<option name="number" value="00028" />
<option name="presentableId" value="LOCAL-00028" />
<option name="project" value="LOCAL" />
<updated>1665655155929</updated>
<workItem from="1741149099391" duration="720000" />
<workItem from="1741172283699" duration="8037000" />
<workItem from="1741251542811" duration="13493000" />
<workItem from="1741777101713" duration="1808000" />
<workItem from="1741852698963" duration="2810000" />
<workItem from="1742100562264" duration="745000" />
<workItem from="1742137031684" duration="2812000" />
<workItem from="1742193579472" duration="44000" />
<workItem from="1742203591721" duration="153000" />
<workItem from="1742296005452" duration="1730000" />
<workItem from="1743151784473" duration="668000" />
<workItem from="1743153501982" duration="398000" />
<workItem from="1743388203386" duration="48592000" />
<workItem from="1743643959200" duration="2406000" />
<workItem from="1743666676357" duration="2152000" />
<workItem from="1743673942915" duration="28000" />
<workItem from="1743747432822" duration="30000" />
<workItem from="1743991849712" duration="1198000" />
<workItem from="1744096948395" duration="1208000" />
<workItem from="1744164204914" duration="6476000" />
<workItem from="1744882456773" duration="1018000" />
<workItem from="1745304309389" duration="329000" />
<workItem from="1745307613908" duration="39000" />
<workItem from="1745976618160" duration="12611000" />
<workItem from="1746001017545" duration="3726000" />
<workItem from="1746513260123" duration="1223000" />
<workItem from="1746514764265" duration="5172000" />
<workItem from="1746521466457" duration="10587000" />
<workItem from="1746589765483" duration="1243000" />
<workItem from="1746603279162" duration="1232000" />
<workItem from="1746694070167" duration="22000" />
<workItem from="1746694131235" duration="1515000" />
<workItem from="1746696805507" duration="595000" />
<workItem from="1747188180203" duration="606000" />
<workItem from="1750815621930" duration="1102000" />
<workItem from="1761182841091" duration="4426000" />
<workItem from="1761543183146" duration="628000" />
<workItem from="1761544098451" duration="1190000" />
<workItem from="1761622771443" duration="33060000" />
<workItem from="1761810448472" duration="28162000" />
<workItem from="1762226059220" duration="199000" />
<workItem from="1762227286024" duration="553000" />
<workItem from="1762335806502" duration="5034000" />
<workItem from="1762843269152" duration="683000" />
<workItem from="1763348321398" duration="8707000" />
<workItem from="1763947059603" duration="594000" />
<workItem from="1764039049890" duration="23000" />
<workItem from="1765353518783" duration="40787000" />
<workItem from="1765507783588" duration="1125000" />
</task>
<task id="LOCAL-00029" summary="插入视频逻辑修改">
<created>1665656532107</created>
......@@ -1289,7 +1475,14 @@
<option name="project" value="LOCAL" />
<updated>1737644324164</updated>
</task>
<option name="localTasksCounter" value="77" />
<task id="LOCAL-00077" summary="瑞金医院">
<created>1741149144346</created>
<option name="number" value="00077" />
<option name="presentableId" value="LOCAL-00077" />
<option name="project" value="LOCAL" />
<updated>1741149144346</updated>
</task>
<option name="localTasksCounter" value="78" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
......@@ -1320,7 +1513,6 @@
</component>
<component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<MESSAGE value="人社局测试" />
<MESSAGE value="15天数据全部推送备份" />
<MESSAGE value="社会化学徒制数据推送" />
<MESSAGE value="oss" />
......@@ -1345,113 +1537,110 @@
<MESSAGE value="2024.1 企业服务中心 开发前备份" />
<MESSAGE value="2024.1 多客户端上线,过年备份" />
<MESSAGE value="居家办公前版本" />
<option name="LAST_COMMIT_MESSAGE" value="居家办公前版本" />
<MESSAGE value="瑞金医院" />
<option name="LAST_COMMIT_MESSAGE" value="瑞金医院" />
</component>
<component name="WindowStateProjectService">
<state x="701" y="182" key="#Project_Structure" timestamp="1736317793507">
<state x="552" y="178" key="#Project_Structure" timestamp="1763363463051">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="701" y="182" key="#Project_Structure/0.0.1920.1040@0.0.1920.1040" timestamp="1736317793507" />
<state x="414" y="175" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1736217008865">
<state x="552" y="178" key="#Project_Structure/0.0.1920.1040@0.0.1920.1040" timestamp="1763363463051" />
<state x="739" y="404" width="441" height="240" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes" timestamp="1765458625542">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="414" y="175" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1736217008865" />
<state x="765" y="229" key="#com.intellij.ide.util.MemberChooser" timestamp="1736824888617">
<state x="739" y="404" width="441" height="240" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes/0.0.1920.1040@0.0.1920.1040" timestamp="1765458625542" />
<state x="690" y="266" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1765458409684">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="765" y="229" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040@0.0.1920.1040" timestamp="1736824888617" />
<state x="689" y="303" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1736217006222">
<state x="690" y="266" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1765458409684" />
<state x="703" y="384" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1" timestamp="1762336508849">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="689" y="303" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1736217006222" />
<state x="680" y="0" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog" timestamp="1736305927954">
<state x="703" y="384" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1/0.0.1920.1040@0.0.1920.1040" timestamp="1762336508849" />
<state width="954" height="466" key="DebuggerActiveHint" timestamp="1765462362064">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="680" y="0" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1736305927954" />
<state x="690" y="266" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1736317757627">
<state width="954" height="466" key="DebuggerActiveHint/0.0.1920.1040@0.0.1920.1040" timestamp="1765462362064" />
<state width="1877" height="291" key="GridCell.Tab.0.bottom" timestamp="1765521017972">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="690" y="266" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1736317757627" />
<state x="468" y="112" key="CommitChangelistDialog2" timestamp="1737644323018">
<state width="1877" height="291" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1765521017972" />
<state width="1877" height="291" key="GridCell.Tab.0.center" timestamp="1765521017971">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="468" y="112" key="CommitChangelistDialog2/0.0.1920.1040@0.0.1920.1040" timestamp="1737644323018" />
<state width="1045" height="466" key="DebuggerActiveHint" timestamp="1739444227247">
<state width="1877" height="291" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1765521017971" />
<state width="1877" height="291" key="GridCell.Tab.0.left" timestamp="1765521017970">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1045" height="466" key="DebuggerActiveHint/0.0.1920.1040@0.0.1920.1040" timestamp="1739444227247" />
<state x="165" y="157" width="1115" height="780" key="DiffContextDialog" timestamp="1738895076181">
<state width="1877" height="291" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1765521017970" />
<state width="1877" height="291" key="GridCell.Tab.0.right" timestamp="1765521017971">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="165" y="157" width="1115" height="780" key="DiffContextDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1738895076181" />
<state x="740" y="275" key="FileChooserDialogImpl" timestamp="1739434553990">
<state width="1877" height="291" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1765521017971" />
<state width="1877" height="184" key="GridCell.Tab.1.bottom" timestamp="1765464237517">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="740" y="275" key="FileChooserDialogImpl/0.0.1920.1040@0.0.1920.1040" timestamp="1739434553990" />
<state width="1754" height="247" key="GridCell.Tab.0.bottom" timestamp="1739523793434">
<state width="1877" height="184" key="GridCell.Tab.1.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237517" />
<state width="1877" height="184" key="GridCell.Tab.1.center" timestamp="1765464237517">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.0.center" timestamp="1739523793433">
<state width="1877" height="184" key="GridCell.Tab.1.center/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237517" />
<state width="1877" height="184" key="GridCell.Tab.1.left" timestamp="1765464237517">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793433" />
<state width="1754" height="247" key="GridCell.Tab.0.left" timestamp="1739523793433">
<state width="1877" height="184" key="GridCell.Tab.1.left/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237517" />
<state width="1877" height="184" key="GridCell.Tab.1.right" timestamp="1765464237517">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793433" />
<state width="1754" height="247" key="GridCell.Tab.0.right" timestamp="1739523793433">
<state width="1877" height="184" key="GridCell.Tab.1.right/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237517" />
<state width="1877" height="184" key="GridCell.Tab.2.bottom" timestamp="1765464237518">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793433" />
<state width="1754" height="247" key="GridCell.Tab.1.bottom" timestamp="1739523793434">
<state width="1877" height="184" key="GridCell.Tab.2.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237518" />
<state width="1877" height="184" key="GridCell.Tab.2.center" timestamp="1765464237517">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.1.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.1.center" timestamp="1739523793434">
<state width="1877" height="184" key="GridCell.Tab.2.center/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237517" />
<state width="1877" height="184" key="GridCell.Tab.2.left" timestamp="1765464237517">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.1.center/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.1.left" timestamp="1739523793434">
<state width="1877" height="184" key="GridCell.Tab.2.left/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237517" />
<state width="1877" height="184" key="GridCell.Tab.2.right" timestamp="1765464237518">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.1.left/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.1.right" timestamp="1739523793434">
<state width="1877" height="184" key="GridCell.Tab.2.right/0.0.1920.1040@0.0.1920.1040" timestamp="1765464237518" />
<state x="360" y="258" key="IDE.errors.dialog" timestamp="1765421787796">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.1.right/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.2.bottom" timestamp="1739523793434">
<state x="360" y="258" key="IDE.errors.dialog/0.0.1920.1040@0.0.1920.1040" timestamp="1765421787796" />
<state x="775" y="230" key="RollbackChangesDialog" timestamp="1762336684000">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.2.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.2.center" timestamp="1739523793434">
<state x="775" y="230" key="RollbackChangesDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1762336684000" />
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1763371083043">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.2.center/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.2.left" timestamp="1739523793434">
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1763371083043" />
<state x="565" y="122" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1761791503853">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.2.left/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state width="1754" height="247" key="GridCell.Tab.2.right" timestamp="1739523793434">
<state x="565" y="122" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.1920.1040@0.0.1920.1040" timestamp="1761791503853" />
<state x="461" y="300" width="786" height="600" key="find.popup" timestamp="1765507838803">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1754" height="247" key="GridCell.Tab.2.right/0.0.1920.1040@0.0.1920.1040" timestamp="1739523793434" />
<state x="552" y="253" key="Vcs.Push.Dialog.v2" timestamp="1737644330014">
<state x="461" y="300" width="786" height="600" key="find.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1765507838803" />
<state x="611" y="244" key="run.anything.popup" timestamp="1765423931301">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="552" y="253" key="Vcs.Push.Dialog.v2/0.0.1920.1040@0.0.1920.1040" timestamp="1737644330014" />
<state x="211" y="100" width="1614" height="847" maximized="true" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1739442045631">
<state x="611" y="244" key="run.anything.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1765423931301" />
<state x="623" y="225" width="672" height="678" key="search.everywhere.popup" timestamp="1765458290539">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="211" y="100" width="1614" height="847" maximized="true" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1739442045631" />
<state x="283" y="122" width="647" height="694" key="find.popup" timestamp="1739444010083">
<state x="623" y="225" width="672" height="678" key="search.everywhere.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1765458290539" />
<state x="682" y="431" key="vcs.readOnlyHandler.ReadOnlyStatusDialog" timestamp="1765454966484">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="283" y="122" width="647" height="694" key="find.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1739444010083" />
<state x="926" y="230" width="672" height="678" key="search.everywhere.popup" timestamp="1738909155534">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="926" y="230" width="672" height="678" key="search.everywhere.popup/0.0.1920.1040@0.0.1920.1040" timestamp="1738909155534" />
<state x="682" y="431" key="vcs.readOnlyHandler.ReadOnlyStatusDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1765454966484" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
......@@ -1472,23 +1661,8 @@
<option name="timeStamp" value="150" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/subsidy/util/QuartzUtil.java</url>
<line>101</line>
<option name="timeStamp" value="213" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/subsidy/util/QuartzUtil.java</url>
<line>103</line>
<option name="timeStamp" value="215" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectServiceImpl.java</url>
<line>353</line>
<option name="timeStamp" value="247" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/subsidy/service/impl/ProjectServiceImpl.java</url>
<line>779</line>
<line>859</line>
<option name="timeStamp" value="293" />
</line-breakpoint>
</breakpoints>
......@@ -1513,7 +1687,7 @@
</watches-manager>
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
<SUITE FILE_PATH="coverage/ecutrack$MeishuApplication.ic" NAME="MeishuApplication Coverage Results" MODIFIED="1736328960602" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
<SUITE FILE_PATH="coverage/ecutrack$MeishuApplication.ic" NAME="MeishuApplication Coverage Results" MODIFIED="1743586546166" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
<SUITE FILE_PATH="coverage/subsidy_app$MeishuApplication.ic" NAME="MeishuApplication Coverage Results" MODIFIED="1704969314365" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
<SUITE FILE_PATH="coverage/subsidy$MeishuApplication.ic" NAME="MeishuApplication Coverage Results" MODIFIED="1695608404401" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
<SUITE FILE_PATH="coverage/subsidy_intership$MeishuApplication.ic" NAME="MeishuApplication Coverage Results" MODIFIED="1709017591561" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
......
2025-01-14 15:30:45,054 [main] ERROR com.baomidou.mybatisplus.core.MybatisConfiguration:84 - mapper[com.subsidy.mapper.ProjectMapper.getSeedTrackProjectPage] is ignored, because it exists, maybe from xml file
2025-01-14 16:49:48,685 [http-nio-23504-exec-9] ERROR com.subsidy.common.exception.GlobalExceptionHandler:89 - JSON parse error: Cannot deserialize instance of `java.lang.Integer` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.Integer` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 40] (through reference chain: com.subsidy.dto.project.ApproveDTO["projectStatus"])
2025-01-14 16:57:17,633 [http-nio-23504-exec-5] ERROR com.subsidy.common.exception.GlobalExceptionHandler:89 - JSON parse error: Cannot deserialize instance of `java.lang.Integer` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.Integer` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 40] (through reference chain: com.subsidy.dto.project.ApproveDTO["projectStatus"])
2025-11-17 15:13:26,926 [main] ERROR com.alibaba.druid.pool.DruidDataSource:927 - init datasource error, url: jdbc:mysql://172.20.4.227:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:897)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1904)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1846)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1500)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1395)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:392)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:211)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:174)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:169)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAdaptableBeans(ServletContextInitializerBeans.java:154)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:86)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:253)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:227)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5132)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:456)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:105)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:86)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:416)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:743)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:390)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1214)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1203)
at com.subsidy.MeishuApplication.main(MeishuApplication.java:22)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91)
at com.mysql.cj.NativeSession.connect(NativeSession.java:150)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:841)
... 127 common frames omitted
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 129 common frames omitted
2025-11-17 15:13:26,938 [main] ERROR com.alibaba.druid.pool.DruidDataSource:969 - {dataSource-1} init error
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:897)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1904)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1846)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1500)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1395)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:392)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:211)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:174)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:169)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAdaptableBeans(ServletContextInitializerBeans.java:154)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:86)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:253)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:227)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5132)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:456)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:105)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:86)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:416)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:743)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:390)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1214)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1203)
at com.subsidy.MeishuApplication.main(MeishuApplication.java:22)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91)
at com.mysql.cj.NativeSession.connect(NativeSession.java:150)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:841)
... 127 common frames omitted
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 129 common frames omitted
2025-11-17 15:13:26,940 [main] ERROR org.springframework.boot.web.embedded.tomcat.TomcatStarter:61 - Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webConfig': Unsatisfied dependency expressed through field 'authenticationInterceptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'teacherMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'teacherMapper' defined in file [D:\code\ecutrack\target\classes\com\subsidy\mapper\TeacherMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
2025-11-17 15:13:26,996 [main] ERROR org.springframework.boot.SpringApplication:822 - Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:156)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:743)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:390)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1214)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1203)
at com.subsidy.MeishuApplication.main(MeishuApplication.java:22)
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:124)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:86)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:416)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153)
... 8 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webConfig': Unsatisfied dependency expressed through field 'authenticationInterceptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'teacherMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'teacherMapper' defined in file [D:\code\ecutrack\target\classes\com\subsidy\mapper\TeacherMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:392)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:211)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:174)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:169)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAdaptableBeans(ServletContextInitializerBeans.java:154)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:86)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:253)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:227)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5132)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:456)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:105)
... 13 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'teacherMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'teacherMapper' defined in file [D:\code\ecutrack\target\classes\com\subsidy\mapper\TeacherMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
... 65 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'teacherMapper' defined in file [D:\code\ecutrack\target\classes\com\subsidy\mapper\TeacherMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1515)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1395)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
... 78 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1500)
... 89 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
... 102 common frames omitted
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:897)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1904)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1846)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774)
... 113 common frames omitted
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91)
at com.mysql.cj.NativeSession.connect(NativeSession.java:150)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:841)
... 127 common frames omitted
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 129 common frames omitted
This diff could not be displayed because it is too large.
......@@ -16,4 +16,13 @@ public class AliyunSmsProperties {
private String accessKeyId;
private String accessKeySecret;
private String cpcode;
private String excode;
private String key;
private String rcsapi;
}
package com.subsidy.common.configure;
import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.AdaptableJobFactory;
import org.springframework.stereotype.Component;
/**
* <p>
* JobFactory实例
* </p>
*
* @author DengMin
* @since 2020/12/9
*/
@Component
public class JobFactory extends AdaptableJobFactory {
private AutowireCapableBeanFactory factory;
public JobFactory(AutowireCapableBeanFactory factory) {
this.factory = factory;
}
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
Object job = super.createJobInstance(bundle);
factory.autowireBean(job);
return job;
}
}
package com.subsidy.common.configure;
import org.quartz.Scheduler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import javax.sql.DataSource;
/**
* <p>
* Quartz配置
* </p>
*
* @author DengMin
* @since 2020/12/8
*/
@Configuration
public class QuartzConfig {
@Autowired
private JobFactory jobFactory;
@Autowired
private DataSource dataSource;
@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setOverwriteExistingJobs(true);
schedulerFactoryBean.setStartupDelay(60);
schedulerFactoryBean.setJobFactory(jobFactory);
schedulerFactoryBean.setOverwriteExistingJobs(true);
schedulerFactoryBean.setStartupDelay(1);
schedulerFactoryBean.setDataSource(dataSource);
schedulerFactoryBean.setConfigLocation(new ClassPathResource("/application-quartz.properties"));
return schedulerFactoryBean;
}
@Bean
public Scheduler scheduler() {
return schedulerFactoryBean().getScheduler();
}
}
package com.subsidy.common.configure;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
......@@ -12,15 +14,25 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Value("${spring.profiles.active:}")
private String activeProfile;
@Bean
public Docket createRestApi() {
// 判断是否为生产环境
boolean isProd = "prod".equals(activeProfile);
return new Docket(DocumentationType.SWAGGER_2)
.enable(!isProd)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com.subsidy"))
.paths(PathSelectors.any())
.build().apiInfo(new ApiInfoBuilder()
.title("顶岗实习端")
.title("ecnu")
.description("接口文档规范")
.version("1.0")
// .contact(new Contact("啊啊啊啊","www.youkehulian.com","tcp@meishu.com"))
......
package com.subsidy.common.constant;
public class OpenStatus {
public static final String DOING = "进行中";
public static final String DONE = "已结束";
public static final String TODO = "待开始";
}
......@@ -5,8 +5,10 @@ import lombok.Data;
@Data
public class ProjectTrack {
public static final String COURSE_TRACK = "课程赛道";
public static final String COURSE_TRACK = "课程风采展示";
public static final String TEACH_TRACK = "教学赛道";
public static final String TEACH_TRACK = "教学技能赛道";
public static final String CONSULT_TRACK = "咨询辅导赛道";
}
package com.subsidy.common.constant;
import lombok.Data;
@Data
public class RoleType {
public static final String TEAMLEADER = "组长";
public static final String TEAMMEMBER = "组员";
}
package com.subsidy.common.constant;
public class SMSTemplate {
/*
项目进度通知
*/
public static final String PROJECT_PROGRESS = "2760175";
/*
项目提交通知
*/
public static final String PROJECT_SUBMIT = "270159";
/*
评审邀请通知 old
*/
public static final String REVIEW_INVITATION_OLD = "2765806";
/**
*
*/
public static final String REVIEW_INVITATION_NEW = "2939771";
/*
撤销评审项目通知
*/
public static final String CANCEL_REVIEW = "229303";
}
package com.subsidy.common.constant;
import lombok.Data;
@Data
public class SubmitStatus {
public static final String DONE = "已提交";
public static final String TEMP = "暂存";
public static final String GIVEUP = "弃权";
}
......@@ -38,7 +38,7 @@ public class CollegesDictController {
@Autowired
public CollegesDictService collegesDictService;
@PostMapping(value = "/getCollegesList")
@PostMapping(value = "/getCollegesListNew")
@ApiOperation("查询所有就读院校: name/院校名称 pageSize pageNum")
public ResponseVO getCollegesList(@RequestBody GetCollegesListDTO getCollegesListDTO) {
Page page = new Page(getCollegesListDTO.getPageNum(), getCollegesListDTO.getPageSize());
......@@ -48,10 +48,15 @@ public class CollegesDictController {
if (StringUtils.isNotBlank(getCollegesListDTO.getName())) {
queryWrapper.lambda().like(CollegesDictDO::getName, getCollegesListDTO.getName());
}
// queryWrapper.lambda().eq(CollegesDictDO::getLoginStatus,1);
return ResponseData.generateCreatedResponse(0, collegesDictService.page(page, queryWrapper));
}
@PostMapping("getCollegeInfo")
@ApiOperation("返回院校基本信息 pageSize pageNum name")
public ResponseVO getCollegeInfo(@RequestBody GetCollegesListDTO getCollegesListDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.getCollegeInfo(getCollegesListDTO));
}
@PostMapping(value = "/login")
@ApiOperation("院校端 --- 登录: account/账户, password/密码")
public ResponseVO login(@RequestBody CollegesDictDO collegesDictDO) {
......@@ -73,39 +78,28 @@ public class CollegesDictController {
return ResponseData.generateCreatedResponse(0);
}
// @PostMapping(value = "/createColleges")
// @ApiOperation("中心端 --- 新建院校: name/搜索名称, code/院校代码、 phone/手机号")
// public ResponseVO createColleges(@RequestBody CollegesDictDO collegesDictDO) {
// collegesDictService.createColleges(collegesDictDO);
// return ResponseData.generateCreatedResponse(0);
// }
//
// @PostMapping(value = "/delete")
// @ApiOperation("中心端 --- 删除院校: id/院校ID")
// public ResponseVO delete(@RequestBody CollegesDictDO collegesDictDO) {
// collegesDictService.removeById(collegesDictDO.getId());
// return ResponseData.generateCreatedResponse(0);
// }
// @PostMapping(value = "/exportCollege")
// @ApiOperation("导出院校名录")
// public ResponseVO exportCollege() {
// collegesDictService.exportCollege();
// return ResponseData.generateCreatedResponse(0);
// }
@PostMapping(value = "/exportProjectCollegeList")
@ApiOperation("院校端 --- 批量导出院校项目: ids[]")
@PostMapping(value = "/exportCourseList")
@ApiOperation("院校端 --- 批量导出院校项目(课程风采): ids[]")
public void exportProjectCollegeList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
collegesDictService.exportProjectCollegeList(projectCollegeListDTO);
}
@PostMapping(value = "/exportTeachList")
@ApiOperation("院校端 --- 批量导出院校项目(课程风采): ids[]")
public void exportTeachList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
collegesDictService.exportTeachList(projectCollegeListDTO);
}
@PostMapping(value = "/exportConsultList")
@ApiOperation("院校端 --- 批量导出院校项目(课程风采): ids[]")
public void exportConsultList(@RequestBody ProjectCollegeListDTO projectCollegeListDTO) {
collegesDictService.exportConsultList(projectCollegeListDTO);
}
@PostMapping(value = "/exportSchoolProjectSummary")
@ApiOperation("院校端 --- 批量导出院校项目汇总表 collegeId")
public void exportSchoolProjectSummary(@RequestBody ProjectDO projectDO) {
collegesDictService.exportSchoolProjectSummary(projectDO);
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.model.DrawLotGroupDictDO;
import com.subsidy.service.DrawLotGroupDictService;
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 io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@RestController
@Api(tags = "组别")
@RequestMapping("/drawLotGroupDict")
public class DrawLotGroupDictController {
@Autowired
private DrawLotGroupDictService drawLotGroupDictService;
@PostMapping("allGroups")
@ApiOperation("所有组别 sceneId ")
public ResponseVO allGroups(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO) {
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.allGroups(drawLotGroupDictDO));
}
@PostMapping("addGroup")
@ApiOperation("新建组别 sceneId projectCnt fieldCnt teachCnt")
public ResponseVO addGroup(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.addGroup(drawLotGroupDictDO));
}
@PostMapping("updateGroup")
@ApiOperation("修改组别 id sceneId projectCnt fieldCnt teachCnt")
public ResponseVO updateGroup(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.updateGroup(drawLotGroupDictDO));
}
@PostMapping("deleteGroup")
@ApiOperation("移除组别 id")
public ResponseVO deleteGroup(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.deleteGroup(drawLotGroupDictDO));
}
@PostMapping("sceneGroups")
@ApiOperation("查看某现场的组别 sceneId")
public ResponseVO sceneGroups(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.sceneGroups(drawLotGroupDictDO));
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.dto.group.AddProjectToSceneDTO;
import com.subsidy.dto.group.AllGroupItemsDTO;
import com.subsidy.dto.group.CollegeProjectsDTO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.service.DrawLotsGroupItemsService;
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 io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@RestController
@Api(tags = "小组项目")
@RequestMapping("/drawLotsGroupItems")
public class DrawLotsGroupItemsController {
@Autowired
private DrawLotsGroupItemsService drawLotsGroupItemsService;
@PostMapping("allGroupItems")
@ApiOperation("查看所有小组项目 pageSize pageNum sceneId projectName college groupId")
public ResponseVO allGroupItems(@RequestBody AllGroupItemsDTO allGroupItemsDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.allGroupItems(allGroupItemsDTO));
}
@PostMapping("addProjectToScene")
@ApiOperation("添加项目到现场 sceneId groupId projectIds")
public ResponseVO addProjectToScene(@RequestBody AddProjectToSceneDTO addProjectToSceneDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.addProjectToScene(addProjectToSceneDTO));
}
@PostMapping("deleteGroupItem")
@ApiOperation("删除小组项目 id")
public ResponseVO deleteGroupItem(@RequestBody DrawLotsGroupItemsDO drawLotsGroupItemsDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.deleteGroupItem(drawLotsGroupItemsDO));
}
@PostMapping("collegeProjects")
@ApiOperation("选择院校下这一届的项目(除去已经分配的) college matchId sceneId groupId")
public ResponseVO collegeProjects(@RequestBody CollegeProjectsDTO collegeProjectsDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.collegeProjects(collegeProjectsDTO));
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.dto.group.JudgeScoreScreenDTO;
import com.subsidy.dto.group.MatchJudgesDTO;
import com.subsidy.dto.judge.AddJudgeDTO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.service.DrawLotsGroupJudgesService;
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 io.swagger.annotations.Api;
/**
* <p>
* 赛组评委表 前端控制器
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@RestController
@RequestMapping("/drawLotsGroupJudges")
@Api(tags = "评委表")
public class DrawLotsGroupJudgesController {
@Autowired
private DrawLotsGroupJudgesService drawLotsGroupJudgesService;
@PostMapping("matchJudges")
@ApiOperation("某赛道的所有评委 pageSize pageNum sceneId userName expectorType roleType ")
public ResponseVO matchJudges(@RequestBody MatchJudgesDTO matchJudgesDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.matchJudges(matchJudgesDTO));
}
@PostMapping("selectJudges")
@ApiOperation("选择没有被选择过的评委 pageSize pageNum sceneId userName ")
public ResponseVO selectJudges(@RequestBody MatchJudgesDTO matchJudgesDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.selectJudges(matchJudgesDTO));
}
@PostMapping("removeJudge")
@ApiOperation("移除评委 matchJudges返回的id")
public ResponseVO removeJudge(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.removeJudge(drawLotsGroupJudgesDO));
}
@PostMapping("updateJudge")
@ApiOperation("编辑评委 id sceneId expectorType roleType groupId")
public ResponseVO updateJudge(@RequestBody AddJudgeDTO addJudgeDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.updateJudge(addJudgeDTO));
}
@PostMapping("addJudge")
@ApiOperation("新加评委 judgeIds sceneId groupId")
public ResponseVO addJudge(@RequestBody AddJudgeDTO addJudgeDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.addJudge(addJudgeDTO));
}
@PostMapping("assignJudge")
@ApiOperation("批量分配评委 ids[] sceneId expectorType roleType groupIds[]")
public ResponseVO assignJudge(@RequestBody AddJudgeDTO addJudgeDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.assignJudge(addJudgeDTO));
}
@PostMapping("judgeScoreScreen")
@ApiOperation("评委分数大屏 groupId groupNums[] ")
public ResponseVO judgeScoreScreen(@RequestBody JudgeScoreScreenDTO judgeScoreScreenDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.judgeScoreScreen(judgeScoreScreenDTO));
}
@PostMapping("judgeScenes")
@ApiOperation("查看老师的现场 judgeId ")
public ResponseVO judgeScenes(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.judgeScenes(drawLotsGroupJudgesDO));
}
@PostMapping("judgeGroups")
@ApiOperation("查看老师的组别 sceneId judgeId ")
public ResponseVO judgeGroups(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.judgeGroups(drawLotsGroupJudgesDO));
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.model.DrawLotsScenesDO;
import com.subsidy.service.DrawLotsScenesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@RestController
@RequestMapping("/drawLotsScenes")
@Api("现场赛事")
public class DrawLotsScenesController {
@Autowired
private DrawLotsScenesService drawLotsScenesService;
@PostMapping("allMatchScenes")
@ApiOperation("查看某一赛道的所有现场 matchId")
public ResponseVO allMatchScenes(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.allMatchScenes(drawLotsScenesDO));
}
@PostMapping("addMatchScene")
@ApiOperation("添加某一赛道的所有现场 matchId sceneName openStatus ")
public ResponseVO addMatchScene(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.addMatchScene(drawLotsScenesDO));
}
@PostMapping("updateMatchScene")
@ApiOperation("修改某一个赛道现场 id matchId sceneName openStatus ")
public ResponseVO updateMatchScene(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.updateMatchScene(drawLotsScenesDO));
}
@PostMapping("deleteMatchScene")
@ApiOperation("删除某一个赛道现场 id matchId sceneName projectCnt groupCnt judgeCnt rankCnt openStatus ")
public ResponseVO deleteMatchScene(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.deleteMatchScene(drawLotsScenesDO));
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.dto.group.GroupScoresDTO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.model.DrawLotsScoresDO;
import com.subsidy.service.DrawLotsScoresService;
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 io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@RestController
@RequestMapping("/drawLotsScores")
@Api(tags = "评分")
public class DrawLotsScoresController {
@Autowired
private DrawLotsScoresService drawLotsScoresService;
@PostMapping("groupScores")
@ApiOperation("小组评分 sceneId ")
public ResponseVO groupScores(@RequestBody GroupScoresDTO groupScoresDTO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.groupScores(groupScoresDTO));
}
@PostMapping("exportGroupScores")
@ApiOperation("导出小组评分 sceneId ")
public void exportGroupScores(@RequestBody GroupScoresDTO groupScoresDTO){
drawLotsScoresService.exportGroupScores(groupScoresDTO);
}
@PostMapping("queryItems")
@ApiOperation("查询某评委可以看到的项目 groupId judgeId")
public ResponseVO queryItems(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.queryItems(drawLotsGroupJudgesDO));
}
@PostMapping("submit")
@ApiOperation("暂存/提交 sceneId groupId judgeId projectId submitStatus :暂存/已提交 score")
public ResponseVO submit(@RequestBody DrawLotsScoresDO drawLotsScoresDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.submit(drawLotsScoresDO));
}
@PostMapping("groupRank")
@ApiOperation("某个组别的排行 groupId")
public ResponseVO groupRank(@RequestBody DrawLotsGroupItemsDO drawLotsGroupItemsDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.groupRank(drawLotsGroupItemsDO));
}
}
......@@ -3,6 +3,9 @@ package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.common.constant.Platform;
import com.subsidy.common.interceptor.LoginRequired;
import com.subsidy.dto.match.SelectListPageDTO;
import com.subsidy.model.MatchDictDO;
import com.subsidy.service.MatchDictService;
import io.swagger.annotations.ApiOperation;
......@@ -72,6 +75,11 @@ public class MatchDictController {
return ResponseData.generateCreatedResponse(0,matchDictService.openOneMatch(matchDictDO));
}
@PostMapping(value = "/getVocationalPage")
@ApiOperation("中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getVocationalPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalPage(selectListPageDTO));
}
......
......@@ -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}")
......
package com.subsidy.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author Tuyp
* @since 2025-04-30
*/
@RestController
@Api(tags = "")
@RequestMapping("/project-consult-do")
public class ProjectConsultController {
}
......@@ -3,21 +3,18 @@ package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.common.constant.Platform;
import com.subsidy.common.interceptor.LoginRequired;
import com.subsidy.dto.project.*;
import com.subsidy.model.CollegesDictDO;
import com.subsidy.dto.review.ProjectReviewPageDTO;
import com.subsidy.dto.review.ProjectReviewScoreDTO;
import com.subsidy.model.ProjectDO;
import com.subsidy.service.ProjectService;
import com.subsidy.util.ConstantUtils;
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 io.swagger.annotations.Api;
/**
* <p>
......@@ -36,7 +33,7 @@ public class ProjectController {
private ProjectService projectService;
@PostMapping("createProject")
@ApiOperation("基本信息--保存并继续 id matchId teacherId projectTrack 赛道:课程赛道/教学赛道 courseName courseNameEn 课程英文名称 courseCode courseType grade courseHour " +
@ApiOperation("基本信息--保存并继续 id matchId teacherId projectTrack 赛道:课程展示/教学技能赛道 courseName courseNameEn 课程英文名称 courseCode courseType grade courseHour " +
" courseObject 开课对象:0:专业不限 1:限制专业 courseObjectMajor 开课对象专业 theoryHour practiseHour" +
"score years startDate1 endDate1 startDate2 endDate2 studentTotalNum1 studentTotalNum2 vodUrl " +
" 开课单位 companyName courseUrl 课程网址" +
......@@ -84,6 +81,12 @@ public class ProjectController {
projectService.downloadPdf(projectDO);
}
@PostMapping("downloadConsultPdf")
@ApiOperation("生成案例报告pdf")
public void downloadConsultPdf(@RequestBody ProjectDO projectDO){
projectService.downloadConsultPdf(projectDO);
}
@PostMapping(value = "/getSeedTrackProjectPage")
@ApiOperation("中心端 --- 分页查询种子赛道全部项目:matchId/赛事ID,projectGroup/职教、高教、projectSchedule/项目进度(全部项目传空字符串、校内报名、市级复赛、市级决赛), " +
"projectStatus/项目状态, itemField/领域, name/搜名称, pageNum/当前页数 、pageSize/每页显示条数 ")
......@@ -187,9 +190,9 @@ public class ProjectController {
}
@PostMapping("uploadVods")
@ApiOperation("上传某个视频 id vodUrl")
public ResponseVO uploadVods(@RequestBody ProjectDO projectDO)throws Exception{
return ResponseData.generateCreatedResponse(0,projectService.uploadVods(projectDO));
@ApiOperation("上传某个视频 id vodUrl vodCode")
public ResponseVO uploadVods(@RequestBody UploadVodsDTO uploadVodsDTO)throws Exception{
return ResponseData.generateCreatedResponse(0,projectService.uploadVods(uploadVodsDTO));
}
@PostMapping("uploadVodsTimeLimit")
......@@ -197,6 +200,95 @@ public class ProjectController {
public ResponseVO uploadVodsTimeLimit(@RequestBody ProjectDO projectDO)throws Exception{
return ResponseData.generateCreatedResponse(0,projectService.uploadVodsTimeLimit(projectDO));
}
@PostMapping(value = "/getVocationalReviewNum")
@ApiOperation("中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
public ResponseVO getVocationalReviewNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewNum(reviewListDTO));
}
@PostMapping(value = "/getVocationalReviewList")
@ApiOperation("中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectStatus/项目状态(市级初赛、市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" +
"pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getVocationalReviewList(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewList(reviewListDTO));
}
@PostMapping(value = "/getVocationalAssignNum")
@ApiOperation("中心端 --- 职教评审分配(已分配 + 未分配)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)")
public ResponseVO getVocationalAssignNum(@RequestBody ReviewListDTO reviewListDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalAssignNum(reviewListDTO));
}
@PostMapping(value = "/exportProject")
@ApiOperation("中心端 --- 评审项目导出:matchId/赛事ID")
public ResponseVO exportProject(@RequestBody ReviewListDTO reviewListDTO) {
projectService.exportProjectReview(reviewListDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "getReviewVocationalNum")
@ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId")
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/每页显示条数")
public ResponseVO getVocationalProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectReviewPage(projectReviewPageDTO));
}
@PostMapping(value = "/setScore")
@ApiOperation("评审端 ---批量预评分:reviewScore[{ id/项目ID、score/分数 }] +" +
" --- 单个预评分:id/项目ID、score/分数")
public ResponseVO setScore(@RequestBody ProjectReviewScoreDTO projectReviewScoreDTO) {
projectService.setScore(projectReviewScoreDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/getVocationalProjectDetail")
@ApiOperation("中心端/院校端 --- 职教赛道项目详情:id/项目ID")
public ResponseVO getVocationalProjectDetail(@RequestBody GetVocationalProjectDetailDTO getVocationalProjectDetailDTO) {
return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectDetail(getVocationalProjectDetailDTO));
}
@PostMapping(value = "/submitted")
@ApiOperation("评审端 ---批量提交:ids:[项目ID]" +
" --- 提交评分:id/项目ID ")
public ResponseVO submitted(@RequestBody ProjectReviewScoreDTO projectReviewScoreDTO) {
projectService.submitted(projectReviewScoreDTO);
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("createTimeProject")
@ApiOperation("【时间】创建项目 timeId ")
public ResponseVO createTimeProject(@RequestBody UpdateProjectDTO updateProjectDTO)throws Exception{
return ResponseData.generateCreatedResponse(0, projectService.createTimeProject(updateProjectDTO));
}
@PostMapping("downloadTimePdf")
@ApiOperation("下载pdf id 项目id")
public void downloadTimePdf(@RequestBody ProjectDO projectDO){
projectService.downloadTimePdf(projectDO);
}
}
......
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.common.constant.Platform;
import com.subsidy.common.interceptor.LoginRequired;
import com.subsidy.dto.administer.LoginDTO;
import com.subsidy.dto.judge.ProjectJudgePageDTO;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.service.ProjectJudgeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 项目评审员 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@RestController
@Api(tags = "评委")
@RequestMapping("/projectJudge")
public class ProjectJudgeController {
@Autowired
private ProjectJudgeService projectJudgeService;
@PostMapping(value = "/login")
@ApiOperation("评审端 --- 登录:telephone/手机号、code/验证码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.login(loginDTO));
}
@PostMapping(value = "/passwordLogin")
@ApiOperation("评审端 --- 登录:accountName、password")
public ResponseVO passwordLogin(@RequestBody ProjectJudgeDO projectJudgeDO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.passwordLogin(projectJudgeDO));
}
@PostMapping(value = "/getProjectJudgePage")
@ApiOperation("中心端 ---评委列表:username/姓名、status/状态、pageNo/当前页数、 pageSize/每页显示条数")
public ResponseVO getProjectJudgePage(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.getProjectJudgePage(projectJudgePageDTO));
}
@PostMapping(value = "/createProjectJudge")
@ApiOperation("中心端 ---添加评委:username/姓名、accountName,password,telephone/手机号、 position/职位、unit/单位")
public ResponseVO createProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.createProjectJudge(projectJudgeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateProjectJudge")
@ApiOperation("中心端 ---编辑评委:id/ID、username/姓名、accountName,password,telephone/手机号、 position/职位、unit/单位, status/状态(1:启用,0:禁用)")
public ResponseVO updateProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.updateProjectJudge(projectJudgeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@ApiOperation("中心端 ---删除评委:id/ID")
public ResponseVO delete(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.removeById(projectJudgeDO.getId());
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/projectJudgesAssigned")
@ApiOperation("中心端 ---已分配项目评委列表: matchId/赛事ID、projectGroup/组别、projectSchedule/进度")
public ResponseVO projectJudgesAssigned(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.projectJudgesAssigned(projectJudgePageDTO));
}
@PostMapping(value = "/downloadJudgeTemplate")
@ApiOperation("中心端 ---下载导入评委模板")
public ResponseVO downloadJudgeTemplate() {
projectJudgeService.downloadTemplate();
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/importJudge")
@ApiOperation("中心端 ---导入评委:file/文件(数据格式:Form-Data)")
public ResponseVO importJudge(MultipartFile file) {
projectJudgeService.importJudge(file);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/exportProjectJudge")
@ApiOperation("中心端 ---导出评委")
public void exportProjectJudge() {
projectJudgeService.exportProjectJudge();
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.common.constant.Platform;
import com.subsidy.common.interceptor.LoginRequired;
import com.subsidy.dto.review.CancelReviewDTO;
import com.subsidy.dto.review.ProjectReviewDTO;
import com.subsidy.dto.review.SetReviewDTO;
import com.subsidy.service.ProjectReviewService;
import com.subsidy.vo.review.SendNoticeVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 项目评审 前端控制器
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@RestController
@Api(tags = "项目评审")
@RequestMapping("/projectReview")
public class ProjectReviewController {
@Autowired
private ProjectReviewService projectReviewService;
@PostMapping(value = "/setReview")
@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));
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.common.constant.Platform;
import com.subsidy.common.interceptor.LoginRequired;
import com.subsidy.dto.period.ProjectReviewPeriodDTO;
import com.subsidy.model.ProjectReviewPeriodDO;
import com.subsidy.service.ProjectReviewPeriodService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 评审时段 前端控制器
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
@RestController
@Api(tags = "评审时段")
@RequestMapping("/projectReviewPeriod")
public class ProjectReviewPeriodController {
@Autowired
private ProjectReviewPeriodService projectReviewPeriodService;
@PostMapping(value = "/getProjectReviewPeriod")
@ApiOperation("中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)")
public ResponseVO getProjectReviewPeriod(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) {
return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriod(projectReviewPeriodDTO));
}
@PostMapping(value = "/updateProjectReviewPeriod")
@ApiOperation("中心端 --- 修改评审时间:id/ID、matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、startTime/开始时间、endTime/结束时间")
public ResponseVO updateProjectReviewPeriod(@RequestBody ProjectReviewPeriodDO projectReviewPeriodDO) {
projectReviewPeriodService.updateProjectReviewPeriod(projectReviewPeriodDO);
return ResponseData.generateCreatedResponse(0);
}
}
......@@ -4,6 +4,7 @@ package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.model.AdministerDO;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.service.SmsVerifyCodeService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -36,4 +37,11 @@ public class SmsVerifyCodeController {
smsVerifyCodeService.sendAdministerLoginCode(administerDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendJudgeLoginCode")
@ApiOperation("评审端 ---登陆验证码:telephone/手机号")
public ResponseVO sendJudgeLoginCode(@RequestBody SmsVerifyCodeDO smsVerifyCodeDO) {
smsVerifyCodeService.sendJudgeLoginCode(smsVerifyCodeDO);
return ResponseData.generateCreatedResponse(0);
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.model.TimeTableDO;
import com.subsidy.service.TimeTableService;
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 io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author Tuyp
* @since 2025-10-28
*/
@RestController
@Api(tags = "时间表")
@RequestMapping("/timeTable")
public class TimeTableController {
@Autowired
TimeTableService timeTableService;
@PostMapping("queryTimeTables")
@ApiOperation("查询时间表 matchId projectId 有值的话说明已经被预约过了 ")
public ResponseVO queryTimeTables(@RequestBody TimeTableDO timeTableDO){
return ResponseData.generateCreatedResponse(0,timeTableService.queryTimeTables(timeTableDO));
}
@PostMapping("updateTimeByProjectId")
@ApiOperation("修改某项目的预约时间 projectId id:选择的时间表的id ")
public ResponseVO updateTimeByProjectId(@RequestBody TimeTableDO timeTableDO){
return ResponseData.generateCreatedResponse(0,timeTableService.updateTimeByProjectId(timeTableDO));
}
@PostMapping("queryTablesDetail")
@ApiOperation("中心端查看每个时间段预约详情 matchId ")
public ResponseVO queryTablesDetail(@RequestBody TimeTableDO timeTableDO){
return ResponseData.generateCreatedResponse(0,timeTableService.queryTablesDetail(timeTableDO));
}
@PostMapping("exportQueryTablesDetail")
@ApiOperation("中心端查看每个时间段预约详情 matchId ")
public void exportQueryTablesDetail(@RequestBody TimeTableDO timeTableDO){
timeTableService.exportQueryTablesDetail(timeTableDO);
}
@PostMapping("addTimeTable")
@ApiOperation("添加时间表 matchId selectTime")
public ResponseVO addTimeTable(@RequestBody TimeTableDO timeTableDO){
return ResponseData.generateCreatedResponse(0,timeTableService.addTimeTable(timeTableDO));
}
@PostMapping("deleteTimeTableById")
@ApiOperation("删除时间 id")
public ResponseVO deleteTimeTableById(@RequestBody TimeTableDO timeTableDO){
return ResponseData.generateCreatedResponse(0,timeTableService.deleteTimeTableById(timeTableDO));
}
@PostMapping("rollbackTime")
@ApiOperation("撤销时间id ")
public ResponseVO rollbackTime(@RequestBody TimeTableDO timeTableDO){
return ResponseData.generateCreatedResponse(0,timeTableService.rollbackTime(timeTableDO));
}
}
package com.subsidy.dto.group;
import lombok.Data;
import java.util.List;
@Data
public class AddProjectToSceneDTO {
private List<Long> projectIds;
private Long groupId;
private Long sceneId;
}
package com.subsidy.dto.group;
import lombok.Data;
@Data
public class AllGroupItemsDTO {
private Long sceneId;
private String projectName;
private String college;
private Long groupId;
private Integer pageSize;
private Integer pageNum;
}
package com.subsidy.dto.group;
import lombok.Data;
@Data
public class CollegeProjectsDTO {
private Long matchId;
private Long sceneId;
private String college;
private Long groupId;
private Integer pageSize;
private Integer pageNum;
private String projectProgress;
private String projectSchedule;
}
package com.subsidy.dto.group;
import lombok.Data;
@Data
public class GroupScoresDTO {
private Long sceneId;
private String projectName;
private Long groupId;
}
package com.subsidy.dto.group;
import lombok.Data;
import java.util.List;
@Data
public class JudgeScoreScreenDTO {
private Long groupId;
private List<Integer> groupNums;
}
package com.subsidy.dto.group;
import lombok.Data;
@Data
public class MatchJudgesDTO {
private Long sceneId;
private Long matchId;
private String userName;
private String expectorType;
private String roleType;
private Integer pageSize;
private Integer pageNum;
}
package com.subsidy.dto.judge;
import lombok.Data;
import java.util.List;
@Data
public class AddJudgeDTO {
private List<Long> judgeIds;
private Long sceneId;
/**
* 专家类型
*/
private String expectorType;
/**
* 角色类型
*/
private String roleType;
/**
* 评委id
*/
private List<Long> ids;
private List<Long> groupIds;
private Long id;
}
package com.subsidy.dto.judge;
import lombok.Data;
@Data
public class ProjectJudgePageDTO {
private Long matchId;
private String projectGroup;
private String projectSchedule;
private String username;
private Integer status;
private Integer pageNo;
private Integer pageSize;
}
package com.subsidy.dto.match;
import lombok.Data;
@Data
public class SelectListPageDTO {
private Integer pageNo;
private Integer pageSize;
}
package com.subsidy.dto.period;
import lombok.Data;
@Data
public class ProjectReviewPeriodDTO {
private Long matchId;
private String projectGroup;
private String projectSchedule;
private String projectProgress;
}
package com.subsidy.dto.project;
import lombok.Data;
@Data
public class EditStatusDTO {
private Long id;
private Long[] ids;
private Integer editStatus;
private Long matchId;
private String projectGroup;
private String projectSchedule;
}
package com.subsidy.dto.project;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
@Data
public class ExportConsultListVO {
@ExcelColumn(col = 1, value = "届数")
private String matchName;
@ExcelColumn(col = 2, value = "课程名称")
private String projectName;
@ExcelColumn(col = 3, value = "组别")
private String projectProgress;
@ExcelColumn(col = 4, value = "参赛教师")
private String name;
@ExcelColumn(col = 5, value = "院校")
private String collegeName;
@ExcelColumn(col = 6, value = "职位")
private String position;
@ExcelColumn(col = 7, value = "职称")
private String title;
@ExcelColumn(col = 8, value = "学历")
private String education;
@ExcelColumn(col = 9, value = "专业/专长")
private String major;
@ExcelColumn(col = 10, value = "手机号")
private String telephone;
@ExcelColumn(col = 11, value = "邮箱")
private String email;
// @ExcelColumn(col = 11, value = "课程团队")
// private String teamMembers;
@ExcelColumn(col = 12, value = "项目阶段")
private String projectSchedule;
@ExcelColumn(col = 13, value = "近两年从事咨询辅导情况")
private String twoYearsConsult;
@ExcelColumn(col = 14, value = "个人所获奖励成果")
private String relateResult;
@ExcelColumn(col = 14, value = "来询者问题主诉与背景")
private String backgrouds;
@ExcelColumn(col = 15, value = "对来询者问题的分析")
private String analysis;
@ExcelColumn(col = 16, value = "咨询的过程")
private String consultProcess;
@ExcelColumn(col = 17, value = "案例反思")
private String caseReflect;
}
......@@ -36,41 +36,44 @@ public class ExportProjectDTO {
@ExcelColumn(col = 10, value = "手机号")
private String telephone;
@ExcelColumn(col = 11, value = "课程团队")
@ExcelColumn(col = 11, value = "邮箱")
private String email;
@ExcelColumn(col = 12, value = "课程团队")
private String teamMembers;
@ExcelColumn(col = 12, value = "项目阶段")
@ExcelColumn(col = 13, value = "项目阶段")
private String projectSchedule;
@ExcelColumn(col = 13, value = "课程编码(教务系统中的编码)")
@ExcelColumn(col = 14, value = "课程编码(教务系统中的编码)")
private String courseCode;
@ExcelColumn(col = 14, value = "课程性质")
@ExcelColumn(col = 15, value = "课程性质")
private String courseType;
@ExcelColumn(col = 15, value = "开课年级")
@ExcelColumn(col = 16, value = "开课年级")
private String grade;
@ExcelColumn(col = 16, value = "课程总学时")
private Integer courseHour;
@ExcelColumn(col = 17, value = "课程总学时")
private String courseHour;
@ExcelColumn(col = 17, value = "理论课学时")
private Integer theoryHour;
// @ExcelColumn(col = 17, value = "理论课学时")
// private Integer theoryHour;
@ExcelColumn(col = 18, value = "实践学时")
private Integer practiseHour;
private String practiseHour;
@ExcelColumn(col = 19, value = "学分")
private Integer score;
private String score;
@ExcelColumn(col = 20, value = "授课年数")
private String years;
private String teachHours;
@ExcelColumn(col = 21, value = "最近两轮开课时间")
private String dates;
@ExcelColumn(col = 22, value = "最近两轮学生总人数")
private Integer studentTotalNum;
private String studentTotalNum;
@ExcelColumn(col = 23, value = "课程概述")
private String courseDesc;
......
package com.subsidy.dto.project;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
@Data
public class ExportTeachListVO {
@ExcelColumn(col = 1, value = "届数")
private String matchName;
@ExcelColumn(col = 2, value = "课程名称")
private String projectName;
@ExcelColumn(col = 3, value = "组别")
private String projectProgress;
@ExcelColumn(col = 4, value = "参赛教师")
private String name;
@ExcelColumn(col = 5, value = "院校")
private String collegeName;
@ExcelColumn(col = 6, value = "职位")
private String position;
@ExcelColumn(col = 7, value = "职称")
private String title;
@ExcelColumn(col = 8, value = "学历")
private String education;
@ExcelColumn(col = 9, value = "专业/专长")
private String major;
@ExcelColumn(col = 10, value = "手机号")
private String telephone;
@ExcelColumn(col = 11, value = "邮箱")
private String email;
// @ExcelColumn(col = 11, value = "课程团队")
// private String teamMembers;
@ExcelColumn(col = 12, value = "项目阶段")
private String projectSchedule;
@ExcelColumn(col = 13, value = "课程编码(教务系统中的编码)")
private String courseCode;
@ExcelColumn(col = 14, value = "课程性质")
private String courseType;
@ExcelColumn(col = 15, value = "开课年级")
private String grade;
@ExcelColumn(col = 16, value = "课程总学时")
private String courseHour;
// @ExcelColumn(col = 17, value = "理论课学时")
// private Integer theoryHour;
@ExcelColumn(col = 17, value = "实践学时")
private String practiseHour;
@ExcelColumn(col = 18, value = "学分")
private String score;
@ExcelColumn(col = 19, value = "授课年数")
private String teachHours;
@ExcelColumn(col = 20, value = "最近两轮开课时间")
private String dates;
@ExcelColumn(col = 21, value = "最近两轮学生总人数")
private String studentTotalNum;
@ExcelColumn(col = 22, value = "课程概述")
private String courseDesc;
@ExcelColumn(col = 23, value = "参赛教学设计")
private String teachComment;
}
package com.subsidy.dto.project;
import lombok.Data;
@Data
public class GetVocationalProjectDetailDTO {
private Long userId;
private Long id;
}
package com.subsidy.dto.project;
import lombok.Data;
@Data
public class MentorDTO {
private Long id;
/**
* 姓名
*/
private String teacherName;
/**
* 工作单位
*/
private String company;
/**
* 职称
*/
private String positionTitle;
/**
* 职务
*/
private String position;
/**
* 手机号
*/
private String telephone;
/**
* 身份证号
*/
private String idCard;
}
package com.subsidy.dto.project;
import com.subsidy.vo.ExcelFieldVO;
import lombok.Data;
import java.util.List;
@Data
public class ReviewListDTO {
private List<Long> id;
private List<ExcelFieldVO> fields;
private Long matchId;
private String projectGroup;
private String projectName;
private String projectReview;
private String projectStatus;
private Integer pageNo;
private Integer pageSize;
private Integer type;
private String projectAssigned;
private String projectSchedule;
private String projectProgress;
private String projectTrack;
}
package com.subsidy.dto.project;
import lombok.Data;
@Data
public class ReviewVocationalNumDTO {
private Long userId;
private Long matchId;
private String projectGroup;
private String projectStatus;
private Long projectJudgeId;
private String projectSchedule;
}
package com.subsidy.dto.project;
import lombok.Data;
@Data
public class TeamMemberDTO {
private Long id;
/**
* 姓名
*/
private String teamName;
/**
* 就读学校
*/
private String school;
/**
* 年级
*/
private String grade;
/**
* 就读专业
*/
private String major;
/**
* 性别
*/
private String sex;
/**
* 身份证号
*/
private String idCard;
/**
* 学籍号
*/
private String studentNo;
/**
* 手机号
*/
private String teamTelephone;
}
......@@ -15,6 +15,14 @@ public class UpdateProjectDTO extends ProjectDO {
*/
private List<ProjectMembersDO> projectMembersDOS;
private String backgrouds;
private String analysis;
private String consultProcess;
private String caseReflect;
private String innovativePoint;
}
package com.subsidy.dto.project;
import com.baomidou.mybatisplus.annotation.TableField;
import com.subsidy.model.ProjectDO;
import lombok.Data;
@Data
public class UploadVodsDTO {
private Long id;
/**
* 科目id
*/
@TableField("subject")
private String subjectId;
/**
* 视频名称
*/
private String vodName;
/**
* 视频地址
*/
private String vodUrl;
/**
* 课型
*/
private String vodType;
/**
* 视频介绍
*/
private String vodIntro;
/**
* 视频时长
*/
private Integer vodLength;
public class UploadVodsDTO extends ProjectDO {
/**
* 视频在腾讯云上的code
*/
private String vodCode;
private String code;
/**
* 视频提供者
*/
@TableField("teacher_id")
private Long administerId;
/**
* 封面
*/
private String coverPage;
/**
* 0:待审核 1:已审核
*/
private String status;
/**
* 审核人
*/
private Integer checkId;
/**
* 分享状态
*/
private String shareStatus;
/**
* 审核状态 1:审核通过 3:未通过 2: 审核中
*/
private String checkStatus;
/**
* 通过/不通过原因
*/
private String reason;
}
package com.subsidy.dto.project;
import lombok.Data;
@Data
public class VocationalProjectNum {
// /**
// * 中职复赛项目数量
// */
// private Long vocRematchNum;
// /**
// * 中职决赛项目数量
// */
// private Long vocFinalNum;
/**
* 高职复赛项目数量
*/
private Long secRematchNum;
/**
* 高职决赛项目数量
*/
private Long secFinalNum;
/**
* 高职初赛项目数量
*/
private Long secPreliminaryNUm;
/**
* 已评审项目数量
*/
private Long reviewedNum;
/**
* 待评审项目数量
*/
private Long notReviewedNum;
}
package com.subsidy.dto.projectJudge;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
@Data
public class ImportJudge {
@ExcelColumn(col = 1, value = "评审姓名")
private String username;
// @ExcelColumn(col = 4, value = "手机号")
private String telephone;
// @ExcelColumn(col = 5, value = "身份证号")
private String idCard;
// @ExcelColumn(col = 6, value = "开户银行名称")
private String bankName;
// @ExcelColumn(col = 7, value = "银行卡号")
private String bankCard;
@ExcelColumn(col = 2, value = "账号")
private String accountName;
@ExcelColumn(col = 3, value = "密码")
private String password;
@ExcelColumn(col = 4, value = "单位")
private String unit;
@ExcelColumn(col = 5, value = "职位/职称")
private String position;
}
package com.subsidy.dto.review;
import lombok.Data;
import java.util.List;
@Data
public class CancelReviewDTO {
private Long projectId;
private List<Long> judgeId;
private Integer smsMessage;
}
package com.subsidy.dto.review;
import lombok.Data;
@Data
public class ProjectReviewDTO {
private Long projectId;
}
package com.subsidy.dto.review;
import lombok.Data;
@Data
public class ProjectReviewPageDTO {
private Long userId;
private Long matchId;
private String projectName;
private String projectGroup;
private String projectStatus;
private String projectSchedule;
private String projectProgress;
private String status;
private Integer pageNo;
private Integer pageSize;
}
package com.subsidy.dto.review;
import lombok.Data;
import java.util.List;
@Data
public class ProjectReviewScoreDTO {
private Long userId;
private List<Long> ids;
private List<ReviewScoreDTO> reviewScore;
private Long id;
private Double score;
private String reviewOpinion;
}
package com.subsidy.dto.review;
import lombok.Data;
@Data
public class ReviewScoreDTO {
private Long id;
private Double score;
private String reviewOpinion;
}
package com.subsidy.dto.review;
import lombok.Data;
import java.util.List;
@Data
public class SetReviewDTO {
private List<Long> projectId;
private List<Long> judgeId;
private Integer smsMessage;
private Long matchId;
}
package com.subsidy.dto.review;
import lombok.Data;
import java.util.List;
@Data
public class SubmittedDTO {
private List<Long> id;
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.model.CollegesDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.model.ProjectDO;
import com.subsidy.vo.college.GetCollegeInfoVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -21,5 +23,6 @@ public interface CollegesDictMapper extends BaseMapper<CollegesDictDO> {
List<ProjectDO> getPreliminaryProjectList(Long matchId, String projectSchedule,Long collegeId);
IPage<GetCollegeInfoVO> getCollegeInfo(IPage iPage,String name);
}
package com.subsidy.mapper;
import com.subsidy.model.DrawLotGroupDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.group.GroupJudgesVO;
import com.subsidy.vo.group.GroupNumsVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Repository
public interface DrawLotGroupDictMapper extends BaseMapper<DrawLotGroupDictDO> {
/**
* 组别下的成员
*/
List<GroupJudgesVO> groupJudges(Long groupId, String roleType);
/**
* 查看组别下的编号
*/
List<GroupNumsVO> groupNums(Long groupId);
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.group.AllGroupItemsVO;
import com.subsidy.vo.group.CollegeProjectsVO;
import org.springframework.stereotype.Repository;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Repository
public interface DrawLotsGroupItemsMapper extends BaseMapper<DrawLotsGroupItemsDO> {
IPage<AllGroupItemsVO> allGroupItems(IPage page, Long sceneId, String projectName, String college,Long groupId);
/**
* 还没有坑位的项目
*/
IPage<CollegeProjectsVO> collegeProjects(IPage iPage, Long matchId,Long groupId, String college, String projectSchedule, String projectProgress);
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.model.DrawLotGroupDictDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.model.DrawLotsScenesDO;
import com.subsidy.vo.group.MatchJudgesVO;
import com.subsidy.vo.group.ScoreScreenVO;
import com.subsidy.vo.group.SelectJudgesVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 赛组评委表 Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Repository
public interface DrawLotsGroupJudgesMapper extends BaseMapper<DrawLotsGroupJudgesDO> {
IPage<MatchJudgesVO> matchJudges(IPage page, Long sceneId, String userName, String expectorType, String roleType);
/**
* 选择评委
*/
IPage<SelectJudgesVO> selectJudges(IPage page, Long sceneId, String userName);
List<ScoreScreenVO> judgeScoreScreen(Long groupId, Integer groupNum);
/**
* 查看老师所在的组别
*/
List<DrawLotsScenesDO> judgeScenes(Long judgeId);
/**
* 查看老师所在的组别
*/
List<DrawLotGroupDictDO> judgeGroups(Long judgeId,Long sceneId);
void clearGroup(Long judgeId);
void setGroup(Long judgeId,Long groupId);
Integer judgeCnt(Long sceneId);
}
package com.subsidy.mapper;
import com.subsidy.model.DrawLotsJudgeNumDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Repository
public interface DrawLotsJudgeNumMapper extends BaseMapper<DrawLotsJudgeNumDO> {
}
package com.subsidy.mapper;
import com.subsidy.model.DrawLotsScenesDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.group.AllMatchScenesVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Repository
public interface DrawLotsScenesMapper extends BaseMapper<DrawLotsScenesDO> {
/**
* 某赛道所有现场
*/
List<AllMatchScenesVO> allMatchScenes(Long matchId, String openStatus);
}
package com.subsidy.mapper;
import com.subsidy.model.DrawLotsScoresDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.group.GroupJudgeScoresVO;
import com.subsidy.vo.group.GroupRankVO;
import com.subsidy.vo.group.GroupScoresVO;
import com.subsidy.vo.group.QueryItemsVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Repository
public interface DrawLotsScoresMapper extends BaseMapper<DrawLotsScoresDO> {
/**
* 评分--项目列表
*/
List<GroupScoresVO> groupScores(Long sceneId, String projectName, Long groupId);
/**
* 评分--列表里每个角色的评分详情
*/
List<GroupJudgeScoresVO> groupJudgeScores(Long groupId, Long projectId);
/**
* 某评委的评分列表
*/
List<QueryItemsVO> queryItems(Long judgeId,Long groupId);
/**
* 排序
*/
List<GroupRankVO> groupRank(Long groupId);
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.model.MatchDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.match.MatchDictVO;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -28,4 +31,7 @@ public interface MatchDictMapper extends BaseMapper<MatchDictDO> {
* 开启赛事
*/
void openMatch(Long matchId);
IPage<MatchDictVO> getSeedTrackMatchPage(Page page, String matchType);
}
package com.subsidy.mapper;
import com.subsidy.model.ProjectConsultDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-04-30
*/
@Repository
public interface ProjectConsultMapper extends BaseMapper<ProjectConsultDO> {
void updateConsult(Long projectId,String backgrouds,String analysis,String consultProcess,String caseReflect);
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.vo.judge.ProjectJudgePageVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* <p>
* 项目评审员 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@Repository
public interface ProjectJudgeMapper extends BaseMapper<ProjectJudgeDO> {
IPage<ProjectJudgePageVO> getProjectJudgePage(Page page, String username, Integer status);
IPage<ProjectJudgePageVO> projectJudgesAssigned(Page page, @Param("matchId") Long matchId, @Param("projectGroup") String projectGroup, @Param("projectSchedule") String projectSchedule);
Integer projectCount(Long judgeId);
}
......@@ -6,7 +6,9 @@ import com.subsidy.model.MatchDictDO;
import com.subsidy.model.ProjectDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.college.MatchCollegeVodsVO;
import com.subsidy.vo.project.ProjectPageVO;
import com.subsidy.vo.project.RecentVodVO;
import com.subsidy.vo.project.ReviewListVO;
import com.subsidy.vo.project.SeedTrackProjectPageVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -39,4 +41,15 @@ public interface ProjectMapper extends BaseMapper<ProjectDO> {
List<ProjectDO> getSeedTrackProjectList(Long collegeId,Long matchId, String projectGroup, @Param("projectProgress")String projectProgress,String projectTrack);
List<RecentVodVO> recentVod(Long matchId,Long collegeId);
IPage<ReviewListVO> getReviewList(Page page, String projectName, String projectGroup, String projectReview, Long matchId, String projectStatus, String projectAssigned, String projectProgress,String projectTrack,String projectSchedule);
List<ProjectDO> getProjectReviewList(Long id, Long matchId,String projectProgress);
IPage<ProjectPageVO> getProjectReviewPage(Page page, Long judgeId, Long matchId, String projectName, String projectStatus, String projectReview, String projectGroup, String projectProgress,String projectSchedule);
void clearTimeId(Long id);
String projectUserName(Long projectId);
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.model.ProjectReviewDO;
import com.subsidy.vo.judge.ProjectReviewVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 项目评审 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@Repository
public interface ProjectReviewMapper extends BaseMapper<ProjectReviewDO> {
List<ProjectReviewVO> getList(String projectSchedule, Long projectId);
Integer selectCountByMatchId(Long judgeId, Long matchId);
Integer selectNotReviewCount(Long judgeId);
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.model.ProjectReviewPeriodDO;
import org.springframework.stereotype.Repository;
/**
* <p>
* 评审时段 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
@Repository
public interface ProjectReviewPeriodMapper extends BaseMapper<ProjectReviewPeriodDO> {
}
package com.subsidy.mapper;
import com.subsidy.model.TimeTableDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.timetable.QueryTablesDetailVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Tuyp
* @since 2025-10-28
*/
@Repository
public interface TimeTableMapper extends BaseMapper<TimeTableDO> {
void clearProjectId(Long id);
List<QueryTablesDetailVO> queryTablesDetail(Long matchId);
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("draw_lot_group_dict")
public class DrawLotGroupDictDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 现场id
*/
private Long sceneId;
/**
* 赛组名称
*/
private String groupName;
/**
* 赛位数量
*/
private String projectCnt;
/**
* 行业专家数量
*/
private Integer fieldCnt;
/**
* 教学专家数量
*/
private Integer teachCnt;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("draw_lots_group_items")
public class DrawLotsGroupItemsDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 现场id
*/
private Long sceneId;
/**
* 项目id
*/
private Long projectId;
/**
* 赛组id
*/
private Long groupId;
/**
* 编号
*/
private Integer groupNum;
/**
* 决赛顺序
*/
private Integer orderNo;
/**
* 总分
*/
private String totalScore;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 赛组评委表
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("draw_lots_group_judges")
public class DrawLotsGroupJudgesDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛事id
*/
private Long matchId;
/**
* 赛事年份
*/
private String matchDate;
/**
* 现场id
*/
private Long sceneId;
/**
* 组别id
*/
private Long groupId;
/**
* 编号
*/
private String groupNum;
/**
* 专家类型
*/
private String expectorType;
/**
* 评委id
*/
private Long judgeId;
/**
* 角色类型
*/
private String roleType;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("draw_lots_judge_num")
public class DrawLotsJudgeNumDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long groupId;
private Integer groupNum;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("draw_lots_scenes")
public class DrawLotsScenesDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛事id
*/
private Long matchId;
private String sceneName;
/**
* 现场时间
*/
private String sceneDate;
private String openStatus;
/**
* 已刷新
*/
private String rankStatus;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("draw_lots_scores")
public class DrawLotsScoresDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long sceneId;
private Long groupId;
private Long judgeId;
private Long projectId;
private String score;
/**
* 1提交 0 暂存
*/
private String submitStatus;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-04-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_consult")
public class ProjectConsultDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long projectId;
private String backgrouds;
private String analysis;
private String consultProcess;
private String caseReflect;
}
......@@ -31,6 +31,8 @@ public class ProjectDO extends BaseModel {
private Long teacherId;
private Long timeId;
private String projectTrack;
private Long collegeId;
......@@ -78,7 +80,7 @@ public class ProjectDO extends BaseModel {
private BigDecimal courseHour;
/**
* 理论学时【弃用】
* 理论学时
*/
private String theoryHour;
......@@ -103,6 +105,11 @@ public class ProjectDO extends BaseModel {
/**
* 最近学生总人数1
*/
private Integer studentTotalNum;
/**
* 最近学生总人数1
*/
private Integer studentTotalNum1;
/**
......@@ -220,6 +227,8 @@ public class ProjectDO extends BaseModel {
*/
private String supportFile;
private String twoYearsConsult;
/**
* 相关成果
*/
......@@ -240,4 +249,6 @@ public class ProjectDO extends BaseModel {
*/
private String courseUrl;
private Integer editStatus;
}
package com.subsidy.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.subsidy.util.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 项目评审员
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_judge")
public class ProjectJudgeDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 姓名
*/
private String username;
private String accountName;
private String password;
/**
* 手机号
*/
private String telephone;
/**
* 职务
*/
private String position;
/**
* 单位
*/
private String unit;
/**
* 身份证号
*/
private String idCard;
/**
* 开户行
*/
private String bankName;
/**
* 银行卡号
*/
private String bankCard;
/**
* 状态
*/
private Integer status;
private Integer passwordFree;
}
......@@ -93,5 +93,6 @@ public class ProjectMembersDO extends BaseModel {
private String role;
private String innovativePoint;
}
package com.subsidy.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.subsidy.util.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* <p>
* 项目评审
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_review")
public class ProjectReviewDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 评委ID
*/
private Long judgeId;
/**
* 评审分数
*/
private Double reviewScore;
/**
* 评分
*/
private Double score;
/**
* 评审意见
*/
private String reviewOpinion;
/**
* 进度
*/
private String projectSchedule;
/**
* 评审时间
*/
private Date reviewTime;
/**
* 评审状态
*/
private String reviewStatus;
}
package com.subsidy.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.subsidy.util.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* <p>
* 评审时段
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_review_period")
public class ProjectReviewPeriodDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛事年份ID
*/
private Long matchId;
/**
* 项目组别
*/
private String projectGroup;
/**
* 项目进度
*/
private String projectSchedule;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author Tuyp
* @since 2025-10-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("time_table")
public class TimeTableDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 赛事id
*/
private Long matchId;
/**
* 所选时间
*/
private String selectTime;
/**
* 项目id
*/
private Long projectId;
}
package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.dto.college.GetCollegesListDTO;
import com.subsidy.dto.project.ProjectCollegeListDTO;
import com.subsidy.model.CollegesDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.model.ProjectDO;
import com.subsidy.vo.college.CollegesVO;
import com.subsidy.vo.college.GetCollegeInfoVO;
/**
* <p>
......@@ -16,6 +19,8 @@ import com.subsidy.vo.college.CollegesVO;
*/
public interface CollegesDictService extends IService<CollegesDictDO> {
IPage<GetCollegeInfoVO> getCollegeInfo(GetCollegesListDTO getCollegesListDTO);
CollegesVO login(CollegesDictDO collegesDictDO);
void addContact(CollegesDictDO collegesDictDO);
......@@ -26,6 +31,10 @@ public interface CollegesDictService extends IService<CollegesDictDO> {
void exportProjectCollegeList(ProjectCollegeListDTO projectCollegeListDTO);
void exportTeachList(ProjectCollegeListDTO projectCollegeListDTO);
void exportConsultList(ProjectCollegeListDTO projectCollegeListDTO);
void exportSchoolProjectSummary(ProjectDO projectDO);
}
package com.subsidy.service;
import com.subsidy.model.DrawLotGroupDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.vo.group.AllGroupsVO;
import com.subsidy.vo.group.SceneGroupsVO;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
public interface DrawLotGroupDictService extends IService<DrawLotGroupDictDO> {
List<AllGroupsVO> allGroups(DrawLotGroupDictDO drawLotGroupDictDO);
String addGroup(DrawLotGroupDictDO drawLotGroupDictDO);
String updateGroup(DrawLotGroupDictDO drawLotGroupDictDO);
String deleteGroup(DrawLotGroupDictDO drawLotGroupDictDO);
List<SceneGroupsVO> sceneGroups(DrawLotGroupDictDO drawLotGroupDictDO);
}
package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.dto.group.AddProjectToSceneDTO;
import com.subsidy.dto.group.AllGroupItemsDTO;
import com.subsidy.dto.group.CollegeProjectsDTO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.vo.group.AllGroupItemsVO;
import com.subsidy.vo.group.CollegeProjectsVO;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
public interface DrawLotsGroupItemsService extends IService<DrawLotsGroupItemsDO> {
IPage<AllGroupItemsVO> allGroupItems(AllGroupItemsDTO allGroupItemsDTO);
String addProjectToScene(AddProjectToSceneDTO addProjectToSceneDTO);
String deleteGroupItem(DrawLotsGroupItemsDO drawLotsGroupItemsDO);
IPage<CollegeProjectsVO> collegeProjects(CollegeProjectsDTO collegeProjectsDTO);
}
package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.dto.group.JudgeScoreScreenDTO;
import com.subsidy.dto.group.MatchJudgesDTO;
import com.subsidy.dto.judge.AddJudgeDTO;
import com.subsidy.model.DrawLotGroupDictDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.model.DrawLotsScenesDO;
import com.subsidy.vo.group.JudgeScoreScreenVO;
import com.subsidy.vo.group.MatchJudgesVO;
import com.subsidy.vo.group.SelectJudgesVO;
import java.util.List;
/**
* <p>
* 赛组评委表 服务类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
public interface DrawLotsGroupJudgesService extends IService<DrawLotsGroupJudgesDO> {
IPage<MatchJudgesVO> matchJudges(MatchJudgesDTO matchJudgesDTO);
IPage<SelectJudgesVO> selectJudges(MatchJudgesDTO matchJudgesDTO);
String removeJudge(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO);
String updateJudge(AddJudgeDTO addJudgeDTO);
String addJudge(AddJudgeDTO addJudgeDTO);
String assignJudge(AddJudgeDTO addJudgeDTO);
List<JudgeScoreScreenVO> judgeScoreScreen(JudgeScoreScreenDTO judgeScoreScreenDTO);
List<DrawLotsScenesDO> judgeScenes(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO);
List<DrawLotGroupDictDO> judgeGroups(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO);
}
package com.subsidy.service;
import com.subsidy.model.DrawLotsJudgeNumDO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
public interface DrawLotsJudgeNumService extends IService<DrawLotsJudgeNumDO> {
}
package com.subsidy.service;
import com.subsidy.model.DrawLotsScenesDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.vo.group.AllMatchScenesVO;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
public interface DrawLotsScenesService extends IService<DrawLotsScenesDO> {
List<AllMatchScenesVO> allMatchScenes(DrawLotsScenesDO drawLotsScenesDO);
String addMatchScene(DrawLotsScenesDO drawLotsScenesDO);
String updateMatchScene(DrawLotsScenesDO drawLotsScenesDO);
String deleteMatchScene(DrawLotsScenesDO drawLotsScenesDO);
}
package com.subsidy.service;
import com.subsidy.dto.group.GroupScoresDTO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.model.DrawLotsScoresDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.vo.group.GroupRankVO;
import com.subsidy.vo.group.GroupScoresVO;
import com.subsidy.vo.group.QueryItemsVO;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
public interface DrawLotsScoresService extends IService<DrawLotsScoresDO> {
List<GroupScoresVO> groupScores(GroupScoresDTO groupScoresDTO);
String submit(DrawLotsScoresDO drawLotsScoresDO);
List<QueryItemsVO> queryItems(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO);
List<GroupRankVO> groupRank(DrawLotsGroupItemsDO drawLotsGroupItemsDO);
void exportGroupScores(GroupScoresDTO groupScoresDTO);
}
package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.dto.match.SelectListPageDTO;
import com.subsidy.model.MatchDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -28,4 +30,7 @@ public interface MatchDictService extends IService<MatchDictDO> {
MatchDictDO openedMatch();
MatchDictDO openOneMatch(MatchDictDO matchDictDO);
IPage getVocationalPage(SelectListPageDTO selectListPageDTO);
}
package com.subsidy.service;
import com.subsidy.model.ProjectConsultDO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-04-30
*/
public interface ProjectConsultService extends IService<ProjectConsultDO> {
}
package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.dto.administer.LoginDTO;
import com.subsidy.dto.judge.ProjectJudgePageDTO;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.vo.judge.JudgeInfoVO;
import com.subsidy.vo.judge.ProjectJudgePageVO;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 项目评审员 服务类
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
public interface ProjectJudgeService extends IService<ProjectJudgeDO> {
IPage<ProjectJudgePageVO> getProjectJudgePage(ProjectJudgePageDTO projectJudgePageDTO);
void createProjectJudge(ProjectJudgeDO projectJudgeDO);
void updateProjectJudge(ProjectJudgeDO projectJudgeDO);
JudgeInfoVO login(LoginDTO loginDTO);
JudgeInfoVO passwordLogin(ProjectJudgeDO projectJudgeDO);
IPage<ProjectJudgePageVO> projectJudgesAssigned(ProjectJudgePageDTO projectJudgePageDTO);
void importJudge(MultipartFile file);
void downloadTemplate();
void exportProjectJudge();
}
package com.subsidy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.dto.period.ProjectReviewPeriodDTO;
import com.subsidy.model.ProjectReviewPeriodDO;
import com.subsidy.vo.projectReviewPeriod.ProjectReviewPeriodVO;
/**
* <p>
* 评审时段 服务类
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
public interface ProjectReviewPeriodService extends IService<ProjectReviewPeriodDO> {
ProjectReviewPeriodVO getProjectReviewPeriod(ProjectReviewPeriodDTO projectReviewPeriodDTO);
void updateProjectReviewPeriod(ProjectReviewPeriodDO projectReviewPeriodDO);
}
package com.subsidy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.dto.review.CancelReviewDTO;
import com.subsidy.dto.review.ProjectReviewDTO;
import com.subsidy.dto.review.SetReviewDTO;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.model.ProjectReviewDO;
import com.subsidy.vo.judge.ProjectReviewVO;
import com.subsidy.vo.review.SendNoticeVO;
import java.util.List;
/**
* <p>
* 项目评审 服务类
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
public interface ProjectReviewService extends IService<ProjectReviewDO> {
void setReview(SetReviewDTO setReviewDTO);
List<ProjectReviewVO> getList(String projectSchedule, Long projectId);
void cancelReview(CancelReviewDTO cancelReviewVO);
List<ProjectJudgeDO> getProjectReview(ProjectReviewDTO projectReviewDTO);
void sendNotice(SendNoticeVO sendNoticeVO);
Integer selectCount(Long judgeId, Long matchId);
Integer selectNotReviewCount(Long judgeId);
}
......@@ -2,6 +2,8 @@ package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.dto.project.*;
import com.subsidy.dto.review.ProjectReviewPageDTO;
import com.subsidy.dto.review.ProjectReviewScoreDTO;
import com.subsidy.model.CollegesDictDO;
import com.subsidy.model.ProjectDO;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -34,6 +36,8 @@ public interface ProjectService extends IService<ProjectDO> {
void downloadPdf(ProjectDO projectDO);
void downloadConsultPdf(ProjectDO projectDO);
IPage getSeedTrackProjectPage(ProjectListPageDTO projectListPageDTO);
void pass(ApproveDTO approveDTO);
......@@ -64,9 +68,33 @@ public interface ProjectService extends IService<ProjectDO> {
SignatureVO signature()throws Exception;
String uploadVods(ProjectDO projectDO)throws Exception;
String uploadVods(UploadVodsDTO uploadVodsDTO)throws Exception;
String uploadVodsTimeLimit(ProjectDO projectDO)throws Exception;
VocationalReviewNumVO getVocationalReviewNum(ReviewListDTO reviewListDTO);
IPage getVocationalReviewList(ReviewListDTO reviewListDTO);
ProjectAssignNumVO getVocationalAssignNum(ReviewListDTO reviewListDTO);
void exportProjectReview(ReviewListDTO reviewListDTO);
VocationalProjectNum getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO);
IPage getVocationalProjectReviewPage(ProjectReviewPageDTO projectReviewPageDTO);
void setScore(ProjectReviewScoreDTO projectReviewScoreDTO);
SeedTrackProjectDetailVO getVocationalProjectDetail(GetVocationalProjectDetailDTO getVocationalProjectDetailDTO);
void submitted(ProjectReviewScoreDTO projectReviewScoreDTO);
void batchUpdateEditStatus(EditStatusDTO editStatusDTO);
void updateEditStatus(EditStatusDTO editStatusDTO);
ProjectDO createTimeProject(UpdateProjectDTO updateProjectDTO)throws Exception;
void downloadTimePdf(ProjectDO projectDO);
}
......@@ -16,5 +16,6 @@ public interface SmsVerifyCodeService extends IService<SmsVerifyCodeDO> {
void sendAdministerLoginCode(AdministerDO administerDO);
void sendJudgeLoginCode(SmsVerifyCodeDO smsCodeDO);
}
package com.subsidy.service;
import com.subsidy.model.TimeTableDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.vo.timetable.QueryTablesDetailVO;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author Tuyp
* @since 2025-10-28
*/
public interface TimeTableService extends IService<TimeTableDO> {
List<TimeTableDO> queryTimeTables(TimeTableDO timeTableDO);
String updateTimeByProjectId(TimeTableDO timeTableDO);
List<QueryTablesDetailVO> queryTablesDetail(TimeTableDO timeTableDO);
void exportQueryTablesDetail(TimeTableDO timeTableDO);
String addTimeTable(TimeTableDO timeTableDO);
String deleteTimeTableById(TimeTableDO timeTableDO);
String rollbackTime(TimeTableDO timeTableDO);
}
......@@ -15,7 +15,6 @@ import com.subsidy.mapper.AdministerMapper;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.service.AdministerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.service.PermissionsService;
import com.subsidy.util.JwtUtil;
import com.subsidy.vo.administer.AdministerVO;
import com.subsidy.vo.administer.PermissionVO;
......
......@@ -2,24 +2,27 @@ package com.subsidy.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.common.constant.*;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.college.ExportCollegeDTO;
import com.subsidy.dto.college.GetCollegesListDTO;
import com.subsidy.dto.project.ExportConsultListVO;
import com.subsidy.dto.project.ExportProjectDTO;
import com.subsidy.dto.project.ExportTeachListVO;
import com.subsidy.dto.project.ProjectCollegeListDTO;
import com.subsidy.mapper.*;
import com.subsidy.model.*;
import com.subsidy.service.CollegesDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.JwtUtil;
import com.subsidy.util.Localstorage;
import com.subsidy.util.PDFUtil;
import com.subsidy.util.RandomUtil;
import com.subsidy.util.*;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.college.CollegesVO;
import com.subsidy.vo.college.ExcelFieldVO;
import com.subsidy.vo.college.ExportSchoolProjectSummaryVO;
import com.subsidy.vo.college.GetCollegeInfoVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -54,6 +57,14 @@ public class CollegesDictServiceImpl extends ServiceImpl<CollegesDictMapper, Col
@Autowired
private TeacherMapper teacherMapper;
@Autowired
private ProjectConsultMapper projectConsultMapper;
public IPage<GetCollegeInfoVO> getCollegeInfo(GetCollegesListDTO getCollegesListDTO){
Page page = new Page(getCollegesListDTO.getPageNum(), getCollegesListDTO.getPageSize());
return this.baseMapper.getCollegeInfo(page,getCollegesListDTO.getName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public CollegesVO login(CollegesDictDO collegesDictDO) {
......@@ -64,10 +75,10 @@ public class CollegesDictServiceImpl extends ServiceImpl<CollegesDictMapper, Col
throw new HttpException(10060);
}
if (!collegesDict.getPassword().equals(collegesDictDO.getPassword())) {
throw new HttpException(10061);
//加密后跟前端的做对比
if (!EncryptString.encrypt(collegesDict.getPassword()+"2O9S8Z").equals(collegesDictDO.getPassword())) {
throw new HttpException(10027);
}
if (collegesDict.getLoginStatus() == 0) {
throw new HttpException(10067);
}
......@@ -130,10 +141,14 @@ public class CollegesDictServiceImpl extends ServiceImpl<CollegesDictMapper, Col
List<Map> data = new ArrayList<>();
for (Long id : projectCollegeListDTO.getIds()) {
ProjectDO projectDO = projectMapper.selectById(id);
TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
if (projectDO != null) {
ExportProjectDTO project = new ExportProjectDTO();
BeanUtils.copyProperties(projectDO, project);
project.setPractiseHour(projectDO.getPractiseHour()+"");
project.setScore(projectDO.getScore()+"");
project.setCourseHour(projectDO.getCourseHour()+"");
project.setTeachHours(teacherDO.getYears()+"");
MatchDictDO matchDictDO = matchDictMapper.selectById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
......@@ -149,16 +164,18 @@ public class CollegesDictServiceImpl extends ServiceImpl<CollegesDictMapper, Col
if (Role.LEADER.equals(memberDO.getRole())) {
project.setName(memberDO.getUserName());
project.setMajor(memberDO.getMajor());
TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
// TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
CollegesDictDO collegesDictDO = this.baseMapper.selectById(projectDO.getCollegeId());
project.setCollegeName(collegesDictDO.getName());
project.setTelephone(teacherDO.getTelephone());
project.setEducation(teacherDO.getEducation());
project.setPosition(teacherDO.getPosition());
project.setTitle(teacherDO.getTitle());
project.setEmail(teacherDO.getEmail());
project.setProjectName(projectDO.getCourseName());
project.setProjectProgress(projectDO.getProjectGroup());
project.setDates(projectDO.getStartDate() + "~" + projectDO.getEndDate());
project.setDates(projectDO.getStartDate1() + "~" + projectDO.getEndDate1()+";"+projectDO.getStartDate2()+"~"+projectDO.getStartDate2());
project.setStudentTotalNum(projectDO.getStudentTotalNum()+"");
BeanUtils.copyProperties(projectDO, project);
} else {
teamMember += memberDO.getUserName() + ",";
......@@ -178,6 +195,133 @@ public class CollegesDictServiceImpl extends ServiceImpl<CollegesDictMapper, Col
ExcelUtil.writeExcel(ExcelUtil.getField(ExportProjectDTO.class), data);
}
@Override
public void exportTeachList(ProjectCollegeListDTO projectCollegeListDTO) {
List<Map> data = new ArrayList<>();
for (Long id : projectCollegeListDTO.getIds()) {
ProjectDO projectDO = projectMapper.selectById(id);
TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
if (projectDO != null) {
ExportTeachListVO project = new ExportTeachListVO();
BeanUtils.copyProperties(projectDO, project);
project.setPractiseHour(projectDO.getPractiseHour()+"");
project.setScore(projectDO.getScore()+"");
project.setCourseHour(projectDO.getCourseHour()+"");
project.setTeachHours(teacherDO.getYears()+"");
MatchDictDO matchDictDO = matchDictMapper.selectById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
}
List<ProjectMembersDO> memberDOS = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO.getId()));
String teamMember = "";
for (ProjectMembersDO memberDO : memberDOS) {
if (Role.LEADER.equals(memberDO.getRole())) {
project.setName(memberDO.getUserName());
project.setMajor(memberDO.getMajor());
// TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
CollegesDictDO collegesDictDO = this.baseMapper.selectById(projectDO.getCollegeId());
project.setCollegeName(collegesDictDO.getName());
project.setTelephone(teacherDO.getTelephone());
project.setEducation(teacherDO.getEducation());
project.setPosition(teacherDO.getPosition());
project.setTitle(teacherDO.getTitle());
project.setEmail(teacherDO.getEmail());
project.setProjectName(projectDO.getCourseName());
project.setProjectProgress(projectDO.getProjectGroup());
project.setDates(projectDO.getStartDate1() + "~" + projectDO.getEndDate1()+";"+projectDO.getStartDate2()+"~"+projectDO.getStartDate2());
project.setStudentTotalNum(projectDO.getStudentTotalNum1()+";"+projectDO.getStudentTotalNum2());
BeanUtils.copyProperties(projectDO, project);
} else {
teamMember += memberDO.getUserName() + ",";
}
}
// if (StringUtils.isNotBlank(teamMember)) {
// project.setTeamMembers(teamMember.substring(0, teamMember.length() - 1));
// } else {
// project.setTeamMembers("");
// }
data.add(JSON.parseObject(JSON.toJSONString(project), Map.class));
}
}
ExcelUtil.writeExcel(ExcelUtil.getField(ExportTeachListVO.class), data);
}
@Override
public void exportConsultList(ProjectCollegeListDTO projectCollegeListDTO) {
List<Map> data = new ArrayList<>();
for (Long id : projectCollegeListDTO.getIds()) {
ProjectDO projectDO = projectMapper.selectById(id);
ProjectConsultDO projectConsultDO = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId,id));
TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
if (projectDO != null) {
ExportConsultListVO project = new ExportConsultListVO();
BeanUtils.copyProperties(projectDO, project);
project.setTwoYearsConsult(projectDO.getTwoYearsConsult()+"");
if (null != projectConsultDO){
project.setBackgrouds(projectConsultDO.getBackgrouds());
project.setAnalysis(projectConsultDO.getAnalysis());
project.setConsultProcess(projectConsultDO.getConsultProcess());
project.setCaseReflect(projectConsultDO.getCaseReflect());
}
project.setRelateResult(projectDO.getRelateResult()+"");
MatchDictDO matchDictDO = matchDictMapper.selectById(projectDO.getMatchId());
if (matchDictDO != null) {
project.setMatchName(matchDictDO.getMatchName());
}
List<ProjectMembersDO> memberDOS = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO.getId()));
String teamMember = "";
for (ProjectMembersDO memberDO : memberDOS) {
if (Role.LEADER.equals(memberDO.getRole())) {
project.setName(memberDO.getUserName());
project.setMajor(memberDO.getMajor());
// TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
CollegesDictDO collegesDictDO = this.baseMapper.selectById(projectDO.getCollegeId());
project.setCollegeName(collegesDictDO.getName());
project.setTelephone(teacherDO.getTelephone());
project.setEducation(teacherDO.getEducation());
project.setPosition(teacherDO.getPosition());
project.setTitle(teacherDO.getTitle());
project.setProjectName(projectDO.getCourseName());
project.setProjectProgress(projectDO.getProjectGroup());
project.setEmail(teacherDO.getEmail());
// project.setDates(projectDO.getStartDate1() + "~" + projectDO.getEndDate1()+";"+projectDO.getStartDate2()+"~"+projectDO.getStartDate2());
// project.setStudentTotalNum(projectDO.getStudentTotalNum1()+";"+projectDO.getStudentTotalNum2());
BeanUtils.copyProperties(projectDO, project);
} else {
teamMember += memberDO.getUserName() + ",";
}
}
// if (StringUtils.isNotBlank(teamMember)) {
// project.setTeamMembers(teamMember.substring(0, teamMember.length() - 1));
// } else {
// project.setTeamMembers("");
// }
data.add(JSON.parseObject(JSON.toJSONString(project), Map.class));
}
}
ExcelUtil.writeExcel(ExcelUtil.getField(ExportConsultListVO.class), data);
}
@Override
public void exportSchoolProjectSummary(ProjectDO projectDO1) {
......
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.constant.RoleType;
import com.subsidy.common.exception.HttpException;
import com.subsidy.mapper.DrawLotsGroupItemsMapper;
import com.subsidy.mapper.DrawLotsGroupJudgesMapper;
import com.subsidy.model.DrawLotGroupDictDO;
import com.subsidy.mapper.DrawLotGroupDictMapper;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.service.DrawLotGroupDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.vo.group.AllGroupsVO;
import com.subsidy.vo.group.GroupJudgesVO;
import com.subsidy.vo.group.GroupNumsVO;
import com.subsidy.vo.group.SceneGroupsVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Service
public class DrawLotGroupDictServiceImpl extends ServiceImpl<DrawLotGroupDictMapper, DrawLotGroupDictDO> implements DrawLotGroupDictService {
@Autowired
private DrawLotsGroupJudgesMapper drawLotsGroupJudgesMapper;
@Autowired
private DrawLotsGroupItemsMapper drawLotsGroupItemsMapper;
@Override
public List<AllGroupsVO> allGroups(DrawLotGroupDictDO drawLotGroupDictDO) {
List<AllGroupsVO> result = new ArrayList<>();
List<DrawLotGroupDictDO> drawLotGroupDictDOS = this.baseMapper.selectList(new QueryWrapper<DrawLotGroupDictDO>()
.lambda()
.eq(DrawLotGroupDictDO::getSceneId, drawLotGroupDictDO.getSceneId()));
for (DrawLotGroupDictDO dlgd : drawLotGroupDictDOS){
AllGroupsVO allGroupsVO = new AllGroupsVO();
BeanUtils.copyProperties(dlgd,allGroupsVO);
//组长
List<GroupJudgesVO> leader = this.baseMapper.groupJudges(dlgd.getId(), RoleType.TEAMLEADER);
allGroupsVO.setLeader(leader);
//成员
List<GroupJudgesVO> member = this.baseMapper.groupJudges(dlgd.getId(), RoleType.TEAMMEMBER);
allGroupsVO.setMember(member);
Integer count = drawLotsGroupItemsMapper.selectCount(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getGroupId, dlgd.getId()));
allGroupsVO.setProjectCnt(count+"");
result.add(allGroupsVO);
}
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String addGroup(DrawLotGroupDictDO drawLotGroupDictDO) {
int count = this.baseMapper.selectCount(new QueryWrapper<DrawLotGroupDictDO>()
.lambda()
.eq(DrawLotGroupDictDO::getSceneId, drawLotGroupDictDO.getSceneId())
.eq(DrawLotGroupDictDO::getGroupName, drawLotGroupDictDO.getGroupName()));
if (count > 0) {
throw new HttpException(10035);
}
this.baseMapper.insert(drawLotGroupDictDO);
return ConstantUtils.ADD_SUCCESS;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String updateGroup(DrawLotGroupDictDO drawLotGroupDictDO) {
int count = this.baseMapper.selectCount(new QueryWrapper<DrawLotGroupDictDO>()
.lambda()
.eq(DrawLotGroupDictDO::getSceneId, drawLotGroupDictDO.getSceneId())
.eq(DrawLotGroupDictDO::getGroupName, drawLotGroupDictDO.getGroupName())
.ne(DrawLotGroupDictDO::getId, drawLotGroupDictDO.getId()));
if (count > 0) {
throw new HttpException(10035);
}
this.baseMapper.updateById(drawLotGroupDictDO);
return ConstantUtils.SUCCESS_UPDATE;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String deleteGroup(DrawLotGroupDictDO drawLotGroupDictDO) {
//删除专家
drawLotsGroupJudgesMapper.delete(new QueryWrapper<DrawLotsGroupJudgesDO>()
.lambda()
.eq(DrawLotsGroupJudgesDO::getGroupId,drawLotGroupDictDO.getId()));
//删除组别
drawLotsGroupItemsMapper.delete(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getGroupId,drawLotGroupDictDO.getId()));
this.baseMapper.deleteById(drawLotGroupDictDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
@Override
public List<SceneGroupsVO> sceneGroups(DrawLotGroupDictDO drawLotGroupDictDO) {
List<SceneGroupsVO> result = new ArrayList<>();
List<DrawLotGroupDictDO> drawLotGroupDictDOS = this.baseMapper.selectList(new QueryWrapper<DrawLotGroupDictDO>()
.lambda()
.eq(DrawLotGroupDictDO::getSceneId,drawLotGroupDictDO.getSceneId())
.orderByAsc(DrawLotGroupDictDO::getId));
for (DrawLotGroupDictDO drawLotGroupDictDO1 : drawLotGroupDictDOS){
SceneGroupsVO sceneGroupsVO = new SceneGroupsVO();
sceneGroupsVO.setGroupId(drawLotGroupDictDO1.getId());
sceneGroupsVO.setGroupName(drawLotGroupDictDO1.getGroupName());
//编号
List<GroupNumsVO> integer = this.baseMapper.groupNums(drawLotGroupDictDO1.getId());
sceneGroupsVO.setGroupNums(integer);
result.add(sceneGroupsVO);
}
return result;
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.dto.group.AddProjectToSceneDTO;
import com.subsidy.dto.group.AllGroupItemsDTO;
import com.subsidy.dto.group.CollegeProjectsDTO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.mapper.DrawLotsGroupItemsMapper;
import com.subsidy.service.DrawLotsGroupItemsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.vo.group.AllGroupItemsVO;
import com.subsidy.vo.group.CollegeProjectsVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Service
public class DrawLotsGroupItemsServiceImpl extends ServiceImpl<DrawLotsGroupItemsMapper, DrawLotsGroupItemsDO> implements DrawLotsGroupItemsService {
@Override
public IPage<AllGroupItemsVO> allGroupItems(AllGroupItemsDTO allGroupItemsDTO) {
Page page = new Page(allGroupItemsDTO.getPageNum(), allGroupItemsDTO.getPageSize());
return this.baseMapper.allGroupItems(page,allGroupItemsDTO.getSceneId(), allGroupItemsDTO.getProjectName(), allGroupItemsDTO.getCollege(),allGroupItemsDTO.getGroupId());
}
@Override
public String addProjectToScene(AddProjectToSceneDTO addProjectToSceneDTO) {
this.baseMapper.delete(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getGroupId,addProjectToSceneDTO.getGroupId()));
List<Long> ids = addProjectToSceneDTO.getProjectIds();
int i = 1 ;
for (Long id : ids) {
DrawLotsGroupItemsDO drawLotsGroupItemsDO = new DrawLotsGroupItemsDO();
drawLotsGroupItemsDO.setProjectId(id);
drawLotsGroupItemsDO.setSceneId(addProjectToSceneDTO.getSceneId());
drawLotsGroupItemsDO.setGroupId(addProjectToSceneDTO.getGroupId());
drawLotsGroupItemsDO.setOrderNo(i++);
this.baseMapper.insert(drawLotsGroupItemsDO);
}
return ConstantUtils.ADD_SUCCESS;
}
@Override
public String deleteGroupItem(DrawLotsGroupItemsDO drawLotsGroupItemsDO) {
this.baseMapper.deleteById(drawLotsGroupItemsDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
@Override
public IPage<CollegeProjectsVO> collegeProjects(CollegeProjectsDTO collegeProjectsDTO) {
Page page = new Page(collegeProjectsDTO.getPageNum(), collegeProjectsDTO.getPageSize());
return this.baseMapper.collegeProjects(page,collegeProjectsDTO.getMatchId(), collegeProjectsDTO.getGroupId(), collegeProjectsDTO.getCollege(), collegeProjectsDTO.getProjectSchedule(), collegeProjectsDTO.getProjectProgress());
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.dto.group.JudgeScoreScreenDTO;
import com.subsidy.dto.group.MatchJudgesDTO;
import com.subsidy.dto.judge.AddJudgeDTO;
import com.subsidy.mapper.DrawLotGroupDictMapper;
import com.subsidy.mapper.DrawLotsGroupItemsMapper;
import com.subsidy.mapper.ProjectMapper;
import com.subsidy.model.DrawLotGroupDictDO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.mapper.DrawLotsGroupJudgesMapper;
import com.subsidy.model.DrawLotsScenesDO;
import com.subsidy.service.DrawLotsGroupJudgesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.vo.group.JudgeScoreScreenVO;
import com.subsidy.vo.group.MatchJudgesVO;
import com.subsidy.vo.group.ScoreScreenVO;
import com.subsidy.vo.group.SelectJudgesVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 赛组评委表 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Service
public class DrawLotsGroupJudgesServiceImpl extends ServiceImpl<DrawLotsGroupJudgesMapper, DrawLotsGroupJudgesDO> implements DrawLotsGroupJudgesService {
@Autowired
private DrawLotGroupDictMapper drawLotGroupDictMapper;
@Autowired
private DrawLotsGroupItemsMapper drawLotsGroupItemsMapper;
@Autowired
private DrawLotsGroupJudgesMapper drawLotsGroupJudgesMapper;
@Autowired
private ProjectMapper projectMapper;
@Override
public IPage<MatchJudgesVO> matchJudges(MatchJudgesDTO matchJudgesDTO) {
Page page = new Page(matchJudgesDTO.getPageNum(), matchJudgesDTO.getPageSize());
IPage<MatchJudgesVO> matchJudgesVOIPage = this.baseMapper.matchJudges(page, matchJudgesDTO.getSceneId(), matchJudgesDTO.getUserName(), matchJudgesDTO.getExpectorType(), matchJudgesDTO.getRoleType());
List<MatchJudgesVO> matchJudgesVOS = matchJudgesVOIPage.getRecords();
for (MatchJudgesVO matchJudgesVO : matchJudgesVOS){
List<DrawLotGroupDictDO> drawLotGroupDictDOS = drawLotsGroupJudgesMapper.judgeGroups(matchJudgesVO.getId(),matchJudgesDTO.getSceneId());
matchJudgesVO.setGroupDictDOS(drawLotGroupDictDOS);
}
return matchJudgesVOIPage;
}
@Override
public IPage<SelectJudgesVO> selectJudges(MatchJudgesDTO matchJudgesDTO) {
Page page = new Page(matchJudgesDTO.getPageNum(), matchJudgesDTO.getPageSize());
return this.baseMapper.selectJudges(page, matchJudgesDTO.getSceneId(), matchJudgesDTO.getUserName());
}
@Override
public String removeJudge(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO) {
this.baseMapper.deleteById(drawLotsGroupJudgesDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
@Override
public String updateJudge(AddJudgeDTO addJudgeDTO) {
//将之前的清掉
this.baseMapper.delete(new QueryWrapper<DrawLotsGroupJudgesDO>()
.lambda()
.eq(DrawLotsGroupJudgesDO::getJudgeId,addJudgeDTO.getId()));
List<Long> groupIds = addJudgeDTO.getGroupIds();
for (Long id : groupIds){
DrawLotsGroupJudgesDO drawLotsGroupJudgesDO = new DrawLotsGroupJudgesDO();
drawLotsGroupJudgesDO.setJudgeId(addJudgeDTO.getId());
drawLotsGroupJudgesDO.setGroupId(id);
drawLotsGroupJudgesDO.setSceneId(addJudgeDTO.getSceneId());
this.baseMapper.insert(drawLotsGroupJudgesDO);
}
return ConstantUtils.SUCCESS_UPDATE;
}
@Override
public String addJudge(AddJudgeDTO addJudgeDTO) {
List<Long> judgeIds = addJudgeDTO.getJudgeIds();
for (Long judgeId : judgeIds) {
DrawLotsGroupJudgesDO drawLotsGroupJudgesDO = new DrawLotsGroupJudgesDO();
drawLotsGroupJudgesDO.setJudgeId(judgeId);
drawLotsGroupJudgesDO.setSceneId(addJudgeDTO.getSceneId());
this.baseMapper.insert(drawLotsGroupJudgesDO);
}
return ConstantUtils.ADD_SUCCESS;
}
@Override
public String assignJudge(AddJudgeDTO addJudgeDTO) {
List<Long> judgeIds = addJudgeDTO.getIds();
List<Long> groupIds = addJudgeDTO.getGroupIds();
for (Long id : judgeIds) {
//将之前的清掉
this.baseMapper.delete(new QueryWrapper<DrawLotsGroupJudgesDO>()
.lambda()
.eq(DrawLotsGroupJudgesDO::getJudgeId,id));
for (Long groupId : groupIds){
DrawLotsGroupJudgesDO drawLotsGroupJudgesDO = new DrawLotsGroupJudgesDO();
drawLotsGroupJudgesDO.setJudgeId(id);
drawLotsGroupJudgesDO.setGroupId(groupId);
drawLotsGroupJudgesDO.setSceneId(addJudgeDTO.getSceneId());
this.baseMapper.insert(drawLotsGroupJudgesDO);
}
}
return ConstantUtils.SUCCESS_UPDATE;
}
@Override
public List<JudgeScoreScreenVO> judgeScoreScreen(JudgeScoreScreenDTO judgeScoreScreenDTO) {
List<JudgeScoreScreenVO> result = new ArrayList<>();
//项目编号
List<Integer> integers = judgeScoreScreenDTO.getGroupNums();
DrawLotGroupDictDO drawLotGroupDictDO = drawLotGroupDictMapper.selectById(judgeScoreScreenDTO.getGroupId());
for (Integer integer : integers) {
JudgeScoreScreenVO judgeScoreScreenVO = new JudgeScoreScreenVO();
String userName = projectMapper.projectUserName(Long.valueOf(integer));
judgeScoreScreenVO.setUserName(userName);
judgeScoreScreenVO.setGroupName(drawLotGroupDictDO.getGroupName());
judgeScoreScreenVO.setGroupNum(integer);
List<ScoreScreenVO> scoreScreenVOS = this.baseMapper.judgeScoreScreen(judgeScoreScreenDTO.getGroupId(), integer);
judgeScoreScreenVO.setScoreScreenVOS(scoreScreenVOS);
DrawLotsGroupItemsDO drawLotsGroupItemsDO = drawLotsGroupItemsMapper.selectOne(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getGroupId, judgeScoreScreenDTO.getGroupId())
.eq(DrawLotsGroupItemsDO::getProjectId, integer));
judgeScoreScreenVO.setTotalScore(drawLotsGroupItemsDO.getTotalScore());
result.add(judgeScoreScreenVO);
}
return result;
}
@Override
public List<DrawLotsScenesDO> judgeScenes(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO) {
return this.baseMapper.judgeScenes(drawLotsGroupJudgesDO.getJudgeId());
}
@Override
public List<DrawLotGroupDictDO> judgeGroups(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO) {
return this.baseMapper.judgeGroups(drawLotsGroupJudgesDO.getJudgeId(),drawLotsGroupJudgesDO.getSceneId());
}
}
package com.subsidy.service.impl;
import com.subsidy.model.DrawLotsJudgeNumDO;
import com.subsidy.mapper.DrawLotsJudgeNumMapper;
import com.subsidy.service.DrawLotsJudgeNumService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Service
public class DrawLotsJudgeNumServiceImpl extends ServiceImpl<DrawLotsJudgeNumMapper, DrawLotsJudgeNumDO> implements DrawLotsJudgeNumService {
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.constant.OpenStatus;
import com.subsidy.common.exception.HttpException;
import com.subsidy.mapper.DrawLotGroupDictMapper;
import com.subsidy.mapper.DrawLotsGroupItemsMapper;
import com.subsidy.mapper.DrawLotsGroupJudgesMapper;
import com.subsidy.model.DrawLotGroupDictDO;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.model.DrawLotsScenesDO;
import com.subsidy.mapper.DrawLotsScenesMapper;
import com.subsidy.service.DrawLotsScenesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.vo.group.AllMatchScenesVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Service
public class DrawLotsScenesServiceImpl extends ServiceImpl<DrawLotsScenesMapper, DrawLotsScenesDO> implements DrawLotsScenesService {
@Autowired
private DrawLotGroupDictMapper drawLotGroupDictMapper;
@Autowired
private DrawLotsGroupItemsMapper drawLotsGroupItemsMapper;
@Autowired
private DrawLotsGroupJudgesMapper drawLotsGroupJudgesMapper;
@Override
public List<AllMatchScenesVO> allMatchScenes(DrawLotsScenesDO drawLotsScenesDO) {
List<AllMatchScenesVO> allMatchScenesVOS = this.baseMapper.allMatchScenes(drawLotsScenesDO.getMatchId(), drawLotsScenesDO.getOpenStatus());
for (AllMatchScenesVO allMatchScenesVO : allMatchScenesVOS){
//小组项目数量
int projectCnt = drawLotsGroupItemsMapper.selectCount(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getSceneId,allMatchScenesVO.getId()));
allMatchScenesVO.setProjectCnt(projectCnt);
//赛组数量
int groupCnt = drawLotGroupDictMapper.selectCount(new QueryWrapper<DrawLotGroupDictDO>()
.lambda()
.eq(DrawLotGroupDictDO::getSceneId,allMatchScenesVO.getId()));
allMatchScenesVO.setGroupCnt(groupCnt);
//评委数量
Integer integer = drawLotsGroupJudgesMapper.judgeCnt(allMatchScenesVO.getId());
allMatchScenesVO.setJudgeCnt(integer);
//排位项目数量
allMatchScenesVO.setRankCnt(0);
}
return allMatchScenesVOS;
}
@Override
public String addMatchScene(DrawLotsScenesDO drawLotsScenesDO) {
int count = this.baseMapper.selectCount(new QueryWrapper<DrawLotsScenesDO>()
.lambda()
.eq(DrawLotsScenesDO::getSceneName,drawLotsScenesDO.getSceneName())
.eq(DrawLotsScenesDO::getMatchId, drawLotsScenesDO.getMatchId()));
if (count > 0) {
throw new HttpException(10034);
}
drawLotsScenesDO.setOpenStatus(OpenStatus.TODO);
drawLotsScenesDO.setRankStatus("未排位");
this.baseMapper.insert(drawLotsScenesDO);
return ConstantUtils.ADD_SUCCESS;
}
@Override
public String updateMatchScene(DrawLotsScenesDO drawLotsScenesDO) {
int count = this.baseMapper.selectCount(new QueryWrapper<DrawLotsScenesDO>()
.lambda()
.ne(DrawLotsScenesDO::getMatchId, drawLotsScenesDO.getMatchId())
.ne(DrawLotsScenesDO::getId, drawLotsScenesDO.getId()));
if (count > 0) {
throw new HttpException(10034);
}
this.baseMapper.updateById(drawLotsScenesDO);
return ConstantUtils.SUCCESS_UPDATE;
}
@Override
public String deleteMatchScene(DrawLotsScenesDO drawLotsScenesDO) {
this.baseMapper.deleteById(drawLotsScenesDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.generator.config.IFileCreate;
import com.subsidy.common.constant.RoleType;
import com.subsidy.common.constant.SubmitStatus;
import com.subsidy.dto.group.GroupScoresDTO;
import com.subsidy.mapper.DrawLotsGroupItemsMapper;
import com.subsidy.mapper.ProjectMapper;
import com.subsidy.model.DrawLotsGroupItemsDO;
import com.subsidy.model.DrawLotsGroupJudgesDO;
import com.subsidy.model.DrawLotsScoresDO;
import com.subsidy.mapper.DrawLotsScoresMapper;
import com.subsidy.service.DrawLotsScoresService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.group.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-12-10
*/
@Service
public class DrawLotsScoresServiceImpl extends ServiceImpl<DrawLotsScoresMapper, DrawLotsScoresDO> implements DrawLotsScoresService {
@Autowired
private DrawLotsGroupItemsMapper drawLotsGroupItemsMapper;
@Autowired
private ProjectMapper projectMapper;
@Override
public List<GroupScoresVO> groupScores(GroupScoresDTO groupScoresDTO) {
List<GroupScoresVO> groupScoresVOS = this.baseMapper.groupScores(groupScoresDTO.getSceneId(), groupScoresDTO.getProjectName(), groupScoresDTO.getGroupId());
for (GroupScoresVO groupScoresVO : groupScoresVOS) {
List<GroupJudgeScoresVO> groupJudgeScoresVOS = this.baseMapper.groupJudgeScores( groupScoresVO.getGroupId(), groupScoresVO.getId());
String userName = projectMapper.projectUserName(groupScoresVO.getId());
//负责人
groupScoresVO.setLeader(userName);
//评分明细
groupScoresVO.setGroupJudgeScoresVOS(groupJudgeScoresVOS);
DrawLotsGroupItemsDO drawLotsGroupItemsDO = drawLotsGroupItemsMapper.selectOne(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getGroupId, groupScoresVO.getGroupId())
.eq(DrawLotsGroupItemsDO::getProjectId, groupScoresVO.getId()));
//总分==平均分 小数保留两位
if (null != drawLotsGroupItemsDO){
groupScoresVO.setTotalScore(drawLotsGroupItemsDO.getTotalScore());
}
}
return groupScoresVOS;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String submit(DrawLotsScoresDO drawLotsScoresDO) {
//判断之前有没有存过,有的话更新,没的话新增
DrawLotsScoresDO dlsd = this.baseMapper.selectOne(new QueryWrapper<DrawLotsScoresDO>()
.lambda()
.eq(DrawLotsScoresDO::getGroupId, drawLotsScoresDO.getGroupId())
.eq(DrawLotsScoresDO::getJudgeId, drawLotsScoresDO.getJudgeId())
.eq(DrawLotsScoresDO::getProjectId, drawLotsScoresDO.getProjectId()));
if (null == dlsd) {
//之前没有评过
this.baseMapper.insert(drawLotsScoresDO);
} else {
dlsd.setSubmitStatus(drawLotsScoresDO.getSubmitStatus());
dlsd.setScore(drawLotsScoresDO.getScore());
this.baseMapper.updateById(dlsd);
}
if (SubmitStatus.DONE.equals(drawLotsScoresDO.getSubmitStatus())) {
//已提交的话,算平均分
//个数
int count = 0;
//总分
BigDecimal total = BigDecimal.ZERO;
List<GroupJudgeScoresVO> groupJudgeScoresVOS = this.baseMapper.groupJudgeScores(drawLotsScoresDO.getGroupId(), drawLotsScoresDO.getProjectId());
for (GroupJudgeScoresVO groupJudgeScoresVO : groupJudgeScoresVOS) {
if (null != groupJudgeScoresVO.getScore()) {
count++;
total = total.add(new BigDecimal(groupJudgeScoresVO.getScore()));
}
}
DrawLotsGroupItemsDO drawLotsGroupItemsDO = drawLotsGroupItemsMapper.selectOne(new QueryWrapper<DrawLotsGroupItemsDO>()
.lambda()
.eq(DrawLotsGroupItemsDO::getGroupId, drawLotsScoresDO.getGroupId())
.eq(DrawLotsGroupItemsDO::getProjectId, drawLotsScoresDO.getProjectId()));
//总分==平均分 小数保留两位
drawLotsGroupItemsDO.setTotalScore(total.divide(new BigDecimal(count), 2, RoundingMode.HALF_UP).toString());
drawLotsGroupItemsMapper.updateById(drawLotsGroupItemsDO);
}
return ConstantUtils.ADD_SUCCESS;
}
@Override
public List<QueryItemsVO> queryItems(DrawLotsGroupJudgesDO drawLotsGroupJudgesDO) {
return this.baseMapper.queryItems(drawLotsGroupJudgesDO.getJudgeId(),drawLotsGroupJudgesDO.getGroupId());
}
@Override
public List<GroupRankVO> groupRank(DrawLotsGroupItemsDO drawLotsGroupItemsDO) {
return this.baseMapper.groupRank(drawLotsGroupItemsDO.getGroupId());
}
@Override
public void exportGroupScores(GroupScoresDTO groupScoresDTO) {
List<GroupScoresVO> groupScoresVOS = groupScores(groupScoresDTO);
groupScoresVOS.stream().forEach(x->{
StringBuilder stringBuilder = new StringBuilder();
//明细
List<GroupJudgeScoresVO> groupJudgeScoresVOS = x.getGroupJudgeScoresVOS();
if (groupJudgeScoresVOS.size() > 0){
for (int i = 0 ; i < groupJudgeScoresVOS.size() ; i++){
stringBuilder.append(groupJudgeScoresVOS.get(i).getUsername()).append("(").append(groupJudgeScoresVOS.get(i).getScore()).append(")");
}
}
x.setDetail(stringBuilder.toString());
});
ExcelUtil.writeExcel(groupScoresVOS,GroupScoresVO.class);
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.common.constant.ProjectType;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.match.SelectListPageDTO;
import com.subsidy.model.MatchDictDO;
import com.subsidy.mapper.MatchDictMapper;
import com.subsidy.service.MatchDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.vo.match.MatchDictVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -68,4 +74,18 @@ public class MatchDictServiceImpl extends ServiceImpl<MatchDictMapper, MatchDict
public MatchDictDO openOneMatch(MatchDictDO matchDictDO) {
return this.baseMapper.selectById(matchDictDO.getId());
}
@Override
public IPage getVocationalPage(SelectListPageDTO selectListPageDTO) {
Page page = new Page(selectListPageDTO.getPageNo(), selectListPageDTO.getPageSize());
IPage<MatchDictVO> iPage = this.baseMapper.getSeedTrackMatchPage(page, ProjectType.VOCATIONAL);
// for (MatchDictVO record : iPage.getRecords()) {
// List<MatchScheduleDO> list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
// .lambda()
// .eq(MatchScheduleDO::getMatchId, record.getId()));
// record.setSchedule(list);
// }
return iPage;
}
}
package com.subsidy.service.impl;
import com.subsidy.model.ProjectConsultDO;
import com.subsidy.mapper.ProjectConsultMapper;
import com.subsidy.service.ProjectConsultService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-04-30
*/
@Service
public class ProjectConsultServiceImpl extends ServiceImpl<ProjectConsultMapper, ProjectConsultDO> implements ProjectConsultService {
}
package com.subsidy.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.common.constant.SmsCode;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.administer.LoginDTO;
import com.subsidy.dto.judge.ProjectJudgePageDTO;
import com.subsidy.dto.projectJudge.ImportJudge;
import com.subsidy.mapper.ProjectJudgeMapper;
import com.subsidy.mapper.SmsVerifyCodeMapper;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.model.ProjectReviewDO;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.service.ProjectJudgeService;
import com.subsidy.service.ProjectReviewService;
import com.subsidy.util.EncryptString;
import com.subsidy.util.JwtUtil;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.college.ExcelFieldVO;
import com.subsidy.vo.judge.JudgeInfoVO;
import com.subsidy.vo.judge.ProjectJudgePageVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* <p>
* 项目评审员 服务实现类
* </p>
*
* @author DengMin
* @since 2021-05-28
*/
@Service
public class ProjectJudgeServiceImpl extends ServiceImpl<ProjectJudgeMapper, ProjectJudgeDO> implements ProjectJudgeService {
@Autowired
private ProjectReviewService projectReviewService;
@Autowired
private SmsVerifyCodeMapper smsVerifyCodeMapper;
@Override
public IPage<ProjectJudgePageVO> getProjectJudgePage(ProjectJudgePageDTO projectJudgePageDTO) {
IPage<ProjectJudgePageVO> iPage = this.baseMapper.getProjectJudgePage(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()), projectJudgePageDTO.getUsername(), projectJudgePageDTO.getStatus());
for (ProjectJudgePageVO record : iPage.getRecords()) {
Integer integer = this.baseMapper.projectCount(record.getId());
record.setAssignedQuantity(integer);
Integer notReviewNum = projectReviewService.selectNotReviewCount(record.getId());
record.setNotReviewedNum(notReviewNum);
}
return iPage;
}
@Override
public void createProjectJudge(ProjectJudgeDO projectJudgeDO) {
// ProjectJudgeDO projectJudge = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
// .lambda()
// .eq(ProjectJudgeDO::getTelephone, projectJudgeDO.getTelephone()));
// if (projectJudge != null) {
// throw new HttpException(10020);
// }
ProjectJudgeDO projectJudge = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO.getAccountName()));
if (projectJudge != null) {
throw new HttpException(10002);
}
this.baseMapper.insert(projectJudgeDO);
}
@Override
public void updateProjectJudge(ProjectJudgeDO projectJudgeDO) {
ProjectJudgeDO projectJudge = this.baseMapper.selectById(projectJudgeDO.getId());
if (projectJudge != null) {
if (projectJudge.getAccountName().equals(projectJudgeDO.getAccountName())) {
this.baseMapper.updateById(projectJudgeDO);
} else {
ProjectJudgeDO p = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO.getAccountName()));
if (p != null) {
throw new HttpException(10020);
} else {
this.baseMapper.updateById(projectJudgeDO);
}
}
}
}
@Override
public JudgeInfoVO login(LoginDTO loginDTO) {
JudgeInfoVO judgeInfoVO = new JudgeInfoVO();
// smsVerifyCodeMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
// .lambda()
// .eq(SmsVerifyCodeDO::getTelephone,loginDTO.getTelephone()));
ProjectJudgeDO projectJudgeDO = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getTelephone, loginDTO.getTelephone()));
if (null != projectJudgeDO){
if (null != projectJudgeDO.getPasswordFree() && projectJudgeDO.getPasswordFree() != 1){
SmsVerifyCodeDO smsCodeDO = smsVerifyCodeMapper.getOneByTelePhone(loginDTO.getTelephone(), SmsCode.login, SmsCode.review);
if (smsCodeDO == null) {
throw new HttpException(10025);
}
if (!smsCodeDO.getVerifyCode().equals(loginDTO.getCode())) {
throw new HttpException(10021);
}
if (projectJudgeDO == null) {
throw new HttpException(10024);
}
if (projectJudgeDO.getStatus() == 0) {
throw new HttpException(10024);
}
}
}
String token = JwtUtil.generateToken(projectJudgeDO.getId(), SmsCode.review);
// judgeInfoVO.setTelephone(projectJudgeDO.getTelephone());
judgeInfoVO.setPosition(projectJudgeDO.getPosition());
judgeInfoVO.setUnit(projectJudgeDO.getUnit());
judgeInfoVO.setUsername(projectJudgeDO.getUsername());
judgeInfoVO.setToken(token);
judgeInfoVO.setId(projectJudgeDO.getId());
return judgeInfoVO;
}
@Override
public JudgeInfoVO passwordLogin(ProjectJudgeDO projectJudgeDO1) {
JudgeInfoVO judgeInfoVO = new JudgeInfoVO();
// smsVerifyCodeMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
// .lambda()
// .eq(SmsVerifyCodeDO::getTelephone,loginDTO.getTelephone()));
ProjectJudgeDO projectJudgeDO = this.baseMapper.selectOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getAccountName, projectJudgeDO1.getAccountName()));
if (null != projectJudgeDO){
if (projectJudgeDO.getStatus() == 0) {
throw new HttpException(10026);
}
//加密后跟前端的做对比
if (!EncryptString.encrypt(projectJudgeDO.getPassword()+"2O9S8Z").equals(projectJudgeDO1.getPassword())) {
throw new HttpException(10027);
}
// if (!projectJudgeDO1.getPassword() .equals(projectJudgeDO.getPassword())){
// throw new HttpException(10027);
// }
}else {
throw new HttpException(10028);
}
String token = JwtUtil.generateToken(projectJudgeDO.getId(), SmsCode.review);
judgeInfoVO.setAccountName(projectJudgeDO.getAccountName());
judgeInfoVO.setPosition(projectJudgeDO.getPosition());
judgeInfoVO.setUnit(projectJudgeDO.getUnit());
judgeInfoVO.setUsername(projectJudgeDO.getUsername());
judgeInfoVO.setToken(token);
judgeInfoVO.setId(projectJudgeDO.getId());
return judgeInfoVO;
}
@Override
public IPage<ProjectJudgePageVO> projectJudgesAssigned(ProjectJudgePageDTO projectJudgePageDTO) {
IPage<ProjectJudgePageVO> iPage = this.baseMapper.projectJudgesAssigned(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()),
projectJudgePageDTO.getMatchId(), projectJudgePageDTO.getProjectGroup(), projectJudgePageDTO.getProjectSchedule());
if (iPage.getRecords() != null && iPage.getRecords().size() > 0) {
for (ProjectJudgePageVO record : iPage.getRecords()) {
Integer count = projectReviewService.selectCount(record.getId(), projectJudgePageDTO.getMatchId());
record.setAssignedQuantity(count);
Integer notReviewNum = projectReviewService.selectNotReviewCount(record.getId());
record.setNotReviewedNum(notReviewNum);
}
}
return iPage;
}
@Override
public void importJudge(MultipartFile file) {
List<ImportJudge> list = ExcelUtil.readExcel(ImportJudge.class, file);
if (list != null) {
for (ImportJudge importJudge : list) {
ProjectJudgeDO projectJudgeDO = new ProjectJudgeDO();
BeanUtils.copyProperties(importJudge, projectJudgeDO);
this.baseMapper.insert(projectJudgeDO);
}
}
}
@Override
public void downloadTemplate() {
List<ExcelFieldVO> list = ExcelUtil.getField(ImportJudge.class);
ExcelUtil.writeExcel(list, new ArrayList<>());
}
@Override
public void exportProjectJudge() {
List<ExcelFieldVO> field = ExcelUtil.getField(ImportJudge.class);
List<ProjectJudgeDO> list = this.baseMapper.selectList(new QueryWrapper<>());
List<Map> data = new ArrayList<>();
if (list != null && list.size() > 0) {
for (ProjectJudgeDO projectJudgeDO : list) {
data.add(JSON.parseObject(JSON.toJSONString(projectJudgeDO), Map.class));
}
}
ExcelUtil.writeExcel(field, data);
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.dto.period.ProjectReviewPeriodDTO;
import com.subsidy.mapper.ProjectReviewPeriodMapper;
import com.subsidy.model.ProjectReviewPeriodDO;
import com.subsidy.service.ProjectReviewPeriodService;
import com.subsidy.util.DateFormatUtil;
import com.subsidy.vo.projectReviewPeriod.ProjectReviewPeriodVO;
import org.springframework.stereotype.Service;
/**
* <p>
* 评审时段 服务实现类
* </p>
*
* @author DengMin
* @since 2021-06-10
*/
@Service
public class ProjectReviewPeriodServiceImpl extends ServiceImpl<ProjectReviewPeriodMapper, ProjectReviewPeriodDO> implements ProjectReviewPeriodService {
@Override
public ProjectReviewPeriodVO getProjectReviewPeriod(ProjectReviewPeriodDTO projectReviewPeriodDTO) {
ProjectReviewPeriodVO projectReviewPeriodVO = new ProjectReviewPeriodVO();
ProjectReviewPeriodDO projectReviewPeriodDO = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectReviewPeriodDTO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectReviewPeriodDTO.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
projectReviewPeriodVO.setId(projectReviewPeriodDO.getId());
projectReviewPeriodVO.setStartTime(DateFormatUtil.format(projectReviewPeriodDO.getStartTime(), DateFormatUtil.FMT_sdf14_L));
projectReviewPeriodVO.setEndTime(DateFormatUtil.format(projectReviewPeriodDO.getEndTime(), DateFormatUtil.FMT_sdf14_L));
}
return projectReviewPeriodVO;
}
@Override
public void updateProjectReviewPeriod(ProjectReviewPeriodDO projectReviewPeriodDO) {
ProjectReviewPeriodDO projectReviewPeriod = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectReviewPeriodDO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectReviewPeriodDO.getProjectSchedule()));
if (projectReviewPeriod != null) {
projectReviewPeriodDO.setId(projectReviewPeriod.getId());
this.baseMapper.updateById(projectReviewPeriodDO);
} else {
this.baseMapper.insert(projectReviewPeriodDO);
}
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.common.constant.ProjectReview;
import com.subsidy.common.constant.SMSTemplate;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.review.CancelReviewDTO;
import com.subsidy.dto.review.ProjectReviewDTO;
import com.subsidy.dto.review.SetReviewDTO;
import com.subsidy.mapper.ProjectReviewMapper;
import com.subsidy.model.*;
import com.subsidy.service.*;
import com.subsidy.util.AliyunSmsUtil;
import com.subsidy.util.DateFormatUtil;
import com.subsidy.vo.judge.ProjectReviewVO;
import com.subsidy.vo.review.SendNoticeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 项目评审 服务实现类
* </p>
*
* @author DengMin
* @since 2021-05-18
*/
@Service
public class ProjectReviewServiceImpl extends ServiceImpl<ProjectReviewMapper, ProjectReviewDO> implements ProjectReviewService {
@Autowired
private ProjectService projectService;
@Autowired
private ProjectJudgeService projectJudgeService;
@Autowired
private MatchDictService matchDictService;
@Autowired
private ProjectReviewPeriodService projectReviewPeriodService;
@Autowired
private AliyunSmsUtil aliyunSmsUtil;
@Override
@Transactional(rollbackFor = Exception.class)
public void setReview(SetReviewDTO setReviewDTO) {
if (setReviewDTO.getProjectId().size() == 0) {
throw new HttpException(10047);
}
if (setReviewDTO.getJudgeId().size() == 0) {
throw new HttpException(10048);
}
for (Long judgeId : setReviewDTO.getJudgeId()) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(judgeId);
if (projectJudgeDO != null) {
for (Long projectId : setReviewDTO.getProjectId()) {
ProjectDO projectDO = projectService.getById(projectId);
MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId());
if (projectDO != null) {
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule()));
// startTime = projectReviewPeriodDO.getStartTime();
// endTime = projectReviewPeriodDO.getEndTime();
if (projectReviewPeriodDO == null) {
throw new HttpException(10076);
}
if (projectDO.getProjectAssigned().equals(ProjectReview.UNASSIGNED)) {
ProjectDO project = new ProjectDO();
project.setId(projectId);
project.setProjectAssigned(ProjectReview.ASSIGNED);
if (projectDO.getProjectReview().equals(ProjectReview.SUBMITTED)) {
project.setProjectReview(ProjectReview.TO_REVIEWED);
}
projectService.updateById(project);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectId)
.eq(ProjectReviewDO::getJudgeId, judgeId)
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule()));
if (projectReview != null) {
throw new HttpException(10053);
}
ProjectReviewDO projectReviewDO = new ProjectReviewDO();
projectReviewDO.setProjectId(projectId);
projectReviewDO.setJudgeId(judgeId);
projectReviewDO.setProjectSchedule(projectDO.getProjectSchedule());
projectReviewDO.setReviewStatus(ProjectReview.ASSIGNED);
this.baseMapper.insert(projectReviewDO);
}
}
if (setReviewDTO.getSmsMessage() == 1) {
MatchDictDO matchDictDO = matchDictService.getById(setReviewDTO.getMatchId());
int count = this.baseMapper.selectCount(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.ASSIGNED)
.eq(ProjectReviewDO::getJudgeId, judgeId));
String msg = "";
if (matchDictDO != null) {
// msg = matchDictDO.getMatchName() +","+count+","+ DateFormatUtil.format(startTime,DateFormatUtil.FMT_sdf14_L)+"~"+DateFormatUtil.format(endTime,DateFormatUtil.FMT_sdf14_L);
msg = matchDictDO.getMatchName() + "," + count;
}
aliyunSmsUtil.sendTemplateMsg(msg, projectJudgeDO.getTelephone(), SMSTemplate.REVIEW_INVITATION_OLD);
}
}
}
}
@Override
public void sendNotice(SendNoticeVO sendNoticeVO) {
MatchDictDO matchDictDO = matchDictService.getById(sendNoticeVO.getMatchId());
if (matchDictDO != null) {
for (Long id : sendNoticeVO.getId()) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(id);
if (projectJudgeDO != null) {
int count = this.baseMapper.selectCount(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.ASSIGNED)
.eq(ProjectReviewDO::getJudgeId, id));
List<ProjectReviewPeriodDO> list = projectReviewPeriodService.list(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, matchDictDO.getId()));
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
stringBuffer.append(list.get(i).getProjectGroup() + ":" + DateFormatUtil.format(list.get(i).getStartTime(), DateFormatUtil.FMT_sdf14_L) + "~" + DateFormatUtil.format(list.get(i).getEndTime(), DateFormatUtil.FMT_sdf14_L));
if (i != list.size()) {
stringBuffer.append(";");
}
}
String msg = matchDictDO.getMatchName() + "," + count + "," + stringBuffer.toString();
aliyunSmsUtil.sendTemplateMsgP(msg, projectJudgeDO.getTelephone(), SMSTemplate.REVIEW_INVITATION_NEW);
}
}
}
}
@Override
public Integer selectCount(Long judgeId, Long matchId) {
return this.baseMapper.selectCountByMatchId(judgeId, matchId);
}
@Override
public Integer selectNotReviewCount(Long judgeId) {
return this.baseMapper.selectNotReviewCount(judgeId);
}
@Override
public List<ProjectReviewVO> getList(String projectSchedule, Long projectId) {
return this.baseMapper.getList(projectSchedule, projectId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelReview(CancelReviewDTO cancelReviewDTO) {
if (cancelReviewDTO.getProjectId() == null) {
throw new HttpException(10047);
}
if (cancelReviewDTO.getJudgeId().size() == 0) {
throw new HttpException(10048);
}
for (Long judgeId : cancelReviewDTO.getJudgeId()) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(judgeId);
if (projectJudgeDO == null) {
throw new HttpException(10070);
}
ProjectDO projectDO = projectService.getById(cancelReviewDTO.getProjectId());
if (projectDO != null) {
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule()));
if (projectReviewPeriodDO.getStartTime().before(new Date())) {
throw new HttpException(10075);
}
if (projectDO != null) {
Integer count = this.baseMapper.selectCount(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectDO.getId())
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule()));
/*
只有最后一个评委是撤销修改项目分配状态
*/
if (count == 1) {
ProjectDO project = new ProjectDO();
project.setId(projectDO.getId());
project.setProjectAssigned(ProjectReview.UNASSIGNED);
projectService.updateById(project);
}
ProjectReviewDO projectReview = this.baseMapper.selectOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectDO.getId())
.eq(ProjectReviewDO::getJudgeId, judgeId)
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule()));
if (projectReview == null) {
throw new HttpException(10071);
}
if (projectReview.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
throw new HttpException(10059);
}
this.baseMapper.deleteById(projectReview.getId());
}
aliyunSmsUtil.sendTemplateMsg(projectDO.getCourseName(), projectJudgeDO.getTelephone(), SMSTemplate.CANCEL_REVIEW);
}
}
}
@Override
public List<ProjectJudgeDO> getProjectReview(ProjectReviewDTO projectReviewDTO) {
List<ProjectJudgeDO> data = new ArrayList<>();
ProjectDO projectDO = projectService.getById(projectReviewDTO.getProjectId());
if (projectDO != null) {
List<ProjectReviewDO> list = this.baseMapper.selectList(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule())
.eq(ProjectReviewDO::getProjectId, projectReviewDTO.getProjectId()));
for (ProjectReviewDO projectReviewDO : list) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(projectReviewDO.getJudgeId());
if (projectJudgeDO != null) {
data.add(projectJudgeDO);
}
}
}
return data;
}
}
......@@ -4,32 +4,29 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.common.configure.VODConfig;
import com.subsidy.common.constant.*;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.project.*;
import com.subsidy.dto.review.ProjectReviewPageDTO;
import com.subsidy.dto.review.ProjectReviewScoreDTO;
import com.subsidy.dto.review.ReviewScoreDTO;
import com.subsidy.mapper.*;
import com.subsidy.model.*;
import com.subsidy.service.ProjectService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.Localstorage;
import com.subsidy.util.PDFUtil;
import com.subsidy.util.Signature;
import com.subsidy.service.*;
import com.subsidy.util.*;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.college.ExcelFieldVO;
import com.subsidy.vo.college.MatchCollegeVodsVO;
import com.subsidy.vo.judge.ProjectReviewVO;
import com.subsidy.vo.project.*;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.vod.v20180717.VodClient;
import com.tencentcloudapi.vod.v20180717.models.MediaProcessTaskInput;
import com.tencentcloudapi.vod.v20180717.models.ProcessMediaRequest;
import com.tencentcloudapi.vod.v20180717.models.ProcessMediaResponse;
import com.tencentcloudapi.vod.v20180717.models.TranscodeTaskInput;
import com.subsidy.vo.review.FinalsReviewVO;
import com.subsidy.vo.review.ReMatchReviewVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -64,6 +61,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
@Autowired
private VODConfig vodConfig;
@Autowired
private ProjectReviewService projectReviewService;
@Autowired
private ProjectJudgeMapper projectJudgeMapper;
@Autowired
private ProjectReviewPeriodService projectReviewPeriodService;
@Autowired
private ProjectConsultMapper projectConsultMapper;
@Autowired
private TimeTableMapper timeTableMapper;
@Value("${spring.profiles.active}")
private String env;
public ProjectDO createProject(UpdateProjectDTO projectDO) throws Exception {
//高教 职教
CollegesDictDO collegesDictDO = teacherMapper.teacherCollege(projectDO.getTeacherId());
......@@ -84,6 +99,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
.eq(ProjectDO::getProjectTrack, projectDO.getProjectTrack()));
if (null == projectDO1) {
projectDO.setProjectSchedule(ProjectSchedule.REGISTER);
projectDO.setProjectAssigned(ProjectReview.UNASSIGNED);
projectDO.setProjectReview(ProjectReview.TO_REVIEWED);
projectDO.setProjectStatus(ProjectStatus.UN_SUBMITTED);
this.baseMapper.insert(projectDO);
......@@ -105,6 +122,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
projectMembersDO.setTeachGrade(projectDO.getTeachGrade());
projectMembersDO.setClassTotalNum(projectDO.getClassTotalNum());
projectMembersMapper.insert(projectMembersDO);
} else {
if (!"填写中".equals(ProjectStatus.UN_SUBMITTED)) {
throw new HttpException(10008);
......@@ -159,10 +177,26 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
projectMembersMapper.insert(pmd);
}
}
if (null != projectDO.getCourseObject() && 0 == projectDO.getCourseObject()){
if (null != projectDO.getCourseObject() && 0 == projectDO.getCourseObject()) {
this.baseMapper.updateMajor(projectDO1.getId());
}
this.baseMapper.updateById(projectDO1);
ProjectConsultDO projectConsultDO1 = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId, projectDO1.getId()));
if (null == projectConsultDO1) {
ProjectConsultDO projectConsultDO = new ProjectConsultDO();
projectConsultDO.setProjectId(projectDO1.getId());
projectConsultDO.setAnalysis(projectDO.getAnalysis());
projectConsultDO.setBackgrouds(projectDO.getBackgrouds());
projectConsultDO.setConsultProcess(projectDO.getConsultProcess());
projectConsultDO.setCaseReflect(projectDO.getCaseReflect());
projectConsultMapper.insert(projectConsultDO);
} else {
projectConsultMapper.updateConsult(projectDO1.getId(), projectDO.getBackgrouds(), projectDO.getAnalysis(), projectDO.getConsultProcess(), projectDO.getCaseReflect());
}
}
return projectDO;
......@@ -174,13 +208,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
.lambda()
.eq(ProjectDO::getMatchId, projectDO.getMatchId())
.eq(ProjectDO::getTeacherId, projectDO.getTeacherId())
.ne(ProjectDO::getProjectTrack, projectDO.getProjectTrack()));
.ne(ProjectDO::getProjectTrack, projectDO.getProjectTrack())
.ne(ProjectDO::getProjectTrack, ProjectTrack.CONSULT_TRACK));
if (null != projectDO1) {
List<ProjectMembersDO> projectMembersDOS = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId,projectDO1.getId()));
.eq(ProjectMembersDO::getProjectId, projectDO1.getId())
.eq(ProjectMembersDO::getRole, Role.LEADER));
projectDO1.setProjectTrack(projectDO.getProjectTrack());
projectDO1.setId(null);
......@@ -189,7 +225,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
projectDO1.setProjectSchedule(ProjectSchedule.REGISTER);
this.baseMapper.insert(projectDO1);
projectMembersDOS.stream().forEach(x->{
projectMembersDOS.stream().forEach(x -> {
x.setProjectId(projectDO1.getId());
projectMembersMapper.insert(x);
});
......@@ -234,7 +270,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
OneProjectVO oneProjectVO = new OneProjectVO();
ProjectDO projectDO1 = this.baseMapper.selectById(projectDO.getId());
BeanUtils.copyProperties(projectDO1, oneProjectVO);
CollegesDictDO collegesDictDO = collegesDictMapper.selectById(projectDO1.getCollegeId());
ProjectConsultDO projectConsultDO = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId, projectDO1.getId()));
if (null != projectConsultDO) {
oneProjectVO.setBackgrouds(projectConsultDO.getBackgrouds());
oneProjectVO.setAnalysis(projectConsultDO.getAnalysis());
oneProjectVO.setConsultProcess(projectConsultDO.getConsultProcess());
oneProjectVO.setCaseReflect(projectConsultDO.getCaseReflect());
}
TimeTableDO timeTableDO = timeTableMapper.selectOne(new QueryWrapper<TimeTableDO>()
.lambda()
.eq(TimeTableDO::getProjectId,projectDO.getId()));
if (null != timeTableDO){
oneProjectVO.setSelectTime(timeTableDO.getSelectTime());
}
List<ProjectMembersDO> projectMembersDOS = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
......@@ -242,6 +295,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
oneProjectVO.setProjectMembersDOS(projectMembersDOS);
TeacherDO teacherDO = teacherMapper.selectById(projectDO1.getTeacherId());
BeanUtils.copyProperties(teacherDO, oneProjectVO);
BeanUtils.copyProperties(projectDO1, oneProjectVO);
oneProjectVO.setCollege(collegesDictDO.getName());
return oneProjectVO;
}
......@@ -253,16 +308,38 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
.eq(ProjectDO::getTeacherId, projectDO.getTeacherId())
.eq(ProjectDO::getMatchId, projectDO.getMatchId())
.eq(ProjectDO::getProjectTrack, projectDO.getProjectTrack()));
if (null != projectDO1){
TimeTableDO timeTableDO = timeTableMapper.selectOne(new QueryWrapper<TimeTableDO>()
.lambda()
.eq(TimeTableDO::getProjectId,projectDO1.getId()));
if (null != timeTableDO){
oneProjectVO.setSelectTime(timeTableDO.getSelectTime());
}
if (null != projectDO1) {
List<ProjectMembersDO> projectMembersDOS = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO1.getId())
.eq(ProjectMembersDO::getRole, Role.MEMBER));
.eq(ProjectMembersDO::getRole,Role.MEMBER));
oneProjectVO.setProjectMembersDOS(projectMembersDOS);
TeacherDO teacherDO = teacherMapper.selectById(projectDO1.getTeacherId());
BeanUtils.copyProperties(teacherDO, oneProjectVO);
BeanUtils.copyProperties(projectDO1, oneProjectVO);
ProjectConsultDO projectConsultDO = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId, projectDO1.getId()));
if (null != projectConsultDO) {
oneProjectVO.setCaseReflect(projectConsultDO.getCaseReflect());
oneProjectVO.setAnalysis(projectConsultDO.getAnalysis());
oneProjectVO.setBackgrouds(projectConsultDO.getBackgrouds());
oneProjectVO.setConsultProcess(projectConsultDO.getConsultProcess());
}
}
}
return oneProjectVO;
}
......@@ -307,12 +384,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
//判断项目类型 课程赛道和教学赛道
if (ProjectTrack.COURSE_TRACK.equals(projectDO1.getProjectTrack())) {
PDFUtil.createCourse(projectDO1, matchDictDO, teacherDO, projectMembersDOS, collegesDictDO);
} else {
} else if (ProjectTrack.TEACH_TRACK.equals(projectDO1.getProjectTrack())) {
PDFUtil.createTeach(projectDO1, matchDictDO, teacherDO, projectMembersDOS, collegesDictDO);
} else {
PDFUtil.createConsult(projectDO1, matchDictDO, teacherDO, projectMembersDOS, collegesDictDO);
}
}
public void downloadConsultPdf(ProjectDO projectDO) {
ProjectConsultDO projectConsultDO = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId, projectDO.getId()));
ProjectDO projectDO1 = this.baseMapper.selectById(projectDO.getId());
MatchDictDO matchDictDO = matchDictMapper.selectById(projectDO1.getMatchId());
PDFUtil.createConsult1(projectConsultDO, matchDictDO);
}
@Override
public IPage getSeedTrackProjectPage(ProjectListPageDTO projectListPageDTO) {
Page page = new Page(projectListPageDTO.getPageNum(), projectListPageDTO.getPageSize());
......@@ -346,6 +436,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.SECOND_REVIEW);
project.setProjectReview(ProjectReview.TO_SCORE);
project.setProjectAssigned(ProjectReview.UNASSIGNED);
} else if (ProjectReview.TO_REVIEWED.equals(projectDO.getProjectStatus())
&& ProjectSchedule.SEMI_FINAL_REVIEW.equals(projectDO.getProjectSchedule())) {
/**
......@@ -401,19 +492,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
&& ProjectSchedule.SEMI_FINAL_REVIEW.equals(projectDO.getProjectSchedule())) {
project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
project.setProjectStatus(ProjectStatus.THIRD_REVIEW);
project.setProjectReview(ProjectReview.TO_SCORE);
// }
// else if (ProjectStatus.THIRD_REVIEW.equals(projectDO.getProjectStatus())
// && ProjectSchedule.SEMI_FINAL_REVIEW.equals(projectDO.getProjectSchedule())) {
// /**
// * 复赛通过 ---> 决赛审核
// */
// if (approveDTO.getProjectStatus() == 1) {
// project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW);
// project.setProjectStatus(ProjectStatus.THIRD_REVIEW);
// project.setProjectReview(ProjectReview.TO_SCORE);
// project.setProjectAssigned(ProjectReview.UNASSIGNED);
// }
project.setProjectAssigned(ProjectReview.UNASSIGNED);
project.setProjectReview(ProjectReview.TO_REVIEWED);
} else {
/**
* 决赛通过 ---> 决赛通过
......@@ -797,7 +877,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
signature.setCurrentTime(System.currentTimeMillis());
signature.setRandom(new Random().nextInt(Integer.MAX_VALUE));
signature.setSignValidDuration(3600 * 24 * 2);
signature.setClassId(vodConfig.getClassId());
signature.setClassId(1308459);
String sign = "";
try {
sign = signature.getUploadSignature();
......@@ -810,11 +890,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
}
@Transactional(rollbackFor = Exception.class)
public String uploadVods(ProjectDO projectDO) throws Exception {
public String uploadVods(UploadVodsDTO projectDO) throws Exception {
ProjectDO projectDO1 = this.baseMapper.selectById(projectDO.getId());
projectDO1.setVodUrl(projectDO.getVodUrl());
projectDO1.setUploadDate(LocalDateTime.now().toString().replace(("T"), " ").substring(0, 19));
this.baseMapper.updateById(projectDO1);
// //测试环境就不转码了
//// if (env.equals("prod")){
VodUtil.processMedia(vodConfig, projectDO.getCode());
//// }
return ConstantUtils.SUCCESS_UPDATE;
}
......@@ -836,4 +922,790 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectDO> im
return ConstantUtils.SUCCESS_UPDATE;
}
@Override
public VocationalReviewNumVO getVocationalReviewNum(ReviewListDTO reviewListDTO) {
VocationalReviewNumVO vo = new VocationalReviewNumVO();
List<ProjectDO> list = this.baseMapper.selectList(new QueryWrapper<ProjectDO>()
.lambda()
.eq(ProjectDO::getMatchId, reviewListDTO.getMatchId())
.and(w -> w.eq(ProjectDO::getProjectReview, ProjectReview.TO_SCORE)
.or()
.eq(ProjectDO::getProjectReview, ProjectReview.SUBMITTED))
);
Long review = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.REVIEW) &&
projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long notReview = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.TO_REVIEWED) &&
projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.REGISTER)).count();
Long secRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)).count();
Long secFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)).count();
vo.setReview(review);
vo.setNotReview(notReview);
vo.setSecPreliminaryNUm(secPreliminaryNUm);
vo.setSecRematchNum(secRematchNum);
vo.setSecFinalNum(secFinalNum);
return vo;
}
@Override
public IPage getVocationalReviewList(ReviewListDTO reviewListDTO) {
if (reviewListDTO.getProjectReview() != null) {
if (reviewListDTO.getProjectReview().equals(ProjectReview.TO_REVIEWED) ||
reviewListDTO.getProjectReview().equals(ProjectReview.SUBMITTED)) {
reviewListDTO.setProjectReview(reviewListDTO.getProjectReview());
} else if (reviewListDTO.getProjectReview().equals(ProjectReview.UNASSIGNED) ||
reviewListDTO.getProjectReview().equals(ProjectReview.ASSIGNED)) {
reviewListDTO.setProjectAssigned(reviewListDTO.getProjectReview());
reviewListDTO.setProjectReview("");
}
}
IPage<ReviewListVO> iPage = this.baseMapper.getReviewList(new Page(reviewListDTO.getPageNo(), reviewListDTO.getPageSize()),
reviewListDTO.getProjectName(),
reviewListDTO.getProjectGroup(),
reviewListDTO.getProjectReview(),
reviewListDTO.getMatchId(),
reviewListDTO.getProjectStatus(),
reviewListDTO.getProjectAssigned(),
null,
reviewListDTO.getProjectTrack(),
reviewListDTO.getProjectSchedule());
for (ReviewListVO record : iPage.getRecords()) {
TeacherDO studentDO = teacherMapper.selectById(record.getTeacherId());
if (null != studentDO) {
record.setUserName(studentDO.getUserName());
record.setEducation(studentDO.getEducation());
record.setYears(studentDO.getYears() + "");
record.setTitle(studentDO.getTitle());
record.setTelephone(studentDO.getTelephone());
record.setMajor(studentDO.getMajor());
record.setPosition(studentDO.getPosition());
CollegesDictDO collegesDictDO = collegesDictMapper.selectById(studentDO.getCollegeId());
if (null != collegesDictDO) {
record.setCollege(collegesDictDO.getName());
}
}
List<ProjectReviewVO> list = projectReviewService.getList(record.getProjectSchedule(), record.getId());
if (list.size() > 0) {
String review = "";
for (ProjectReviewVO projectReviewVO : list) {
if (projectReviewVO.getScore() != null) {
review += projectReviewVO.getJudgesName() + "(" + projectReviewVO.getScore() + "); ";
} else {
review += projectReviewVO.getJudgesName() + "(-); ";
}
}
record.setReviewResult(review.substring(0, review.length() - 2));
}
}
return iPage;
}
@Override
public ProjectAssignNumVO getVocationalAssignNum(ReviewListDTO reviewListDTO) {
ProjectAssignNumVO projectAssignNumVO = new ProjectAssignNumVO();
List<ProjectDO> list = this.baseMapper.selectList(new QueryWrapper<ProjectDO>()
.lambda()
.eq(ProjectDO::getMatchId, reviewListDTO.getMatchId())
.isNotNull(ProjectDO::getProjectAssigned)
);
Long assignNum = list.stream().filter(projectDO -> projectDO.getProjectAssigned().equals(ProjectReview.ASSIGNED) && projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long unassignedNum = list.stream().filter(projectDO -> projectDO.getProjectAssigned().equals(ProjectReview.UNASSIGNED) && projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count();
Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.REGISTER)).count();
Long secRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)).count();
Long secFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)).count();
projectAssignNumVO.setAssignNum(assignNum);
projectAssignNumVO.setUnassignedNum(unassignedNum);
projectAssignNumVO.setSecPreliminaryNUm(secPreliminaryNUm);
projectAssignNumVO.setSecRematchNum(secRematchNum);
projectAssignNumVO.setSecFinalNum(secFinalNum);
return projectAssignNumVO;
}
@Override
public void exportProjectReview(ReviewListDTO reviewListDTO) {
List<Map> data = new ArrayList<>();
List<ExcelFieldVO> fieldList = ExcelUtil.getField(ProjectJudgeVO.class);
ProjectJudgeVO projectJudgeVO = new ProjectJudgeVO();
List<ProjectDO> projectList = this.baseMapper.selectList(new QueryWrapper<ProjectDO>()
.lambda()
.ne(ProjectDO::getProjectSchedule, ProjectSchedule.REGISTER)
.eq(StringUtils.isNotBlank(reviewListDTO.getProjectSchedule()), ProjectDO::getProjectSchedule, reviewListDTO.getProjectSchedule())
.eq(ProjectDO::getMatchId, reviewListDTO.getMatchId()));
for (ProjectDO projectDO : projectList) {
if (projectDO != null) {
projectJudgeVO.setProjectName(projectDO.getCourseName());
projectJudgeVO.setProjectSchedule(projectDO.getProjectSchedule());
projectJudgeVO.setProjectTrack(projectDO.getProjectTrack());
projectJudgeVO.setProjectGroup(projectDO.getProjectGroup());
MatchDictDO matchDictDO = matchDictMapper.selectById(projectDO.getMatchId());
if (matchDictDO != null) {
projectJudgeVO.setMatchName(matchDictDO.getMatchName());
}
TeacherDO studentDO = teacherMapper.selectById(projectDO.getTeacherId());
if (studentDO != null) {
projectJudgeVO.setLeader(studentDO.getUserName());
CollegesDictDO collegesDictDO = collegesDictMapper.selectById(studentDO.getCollegeId());
projectJudgeVO.setCollege(collegesDictDO.getName());
}
Map<String, Object> map = JSON.parseObject(JSON.toJSONString(projectJudgeVO), Map.class);
List<ProjectReviewDO> list = projectReviewService.list(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule())
.eq(ProjectReviewDO::getProjectId, projectDO.getId()));
for (ProjectReviewDO projectReviewDO : list) {
ProjectJudgeDO projectJudgeDO = projectJudgeMapper.selectById(projectReviewDO.getJudgeId());
ExcelFieldVO excelFieldVO = new ExcelFieldVO();
if (projectJudgeDO != null) {
if (!fieldList.stream().filter(e -> e.getName().equals(projectJudgeDO.getUsername())).findAny().isPresent()) {
excelFieldVO.setName(projectJudgeDO.getUsername());
excelFieldVO.setField(projectJudgeDO.getUsername());
fieldList.add(excelFieldVO);
}
if (projectReviewDO.getScore() != null) {
map.put(projectJudgeDO.getUsername(), projectReviewDO.getScore().toString());
} else {
map.put(projectJudgeDO.getUsername(), "-");
}
}
}
data.add(map);
}
}
ExcelUtil.writeExcel(fieldList, data);
}
@Override
public VocationalProjectNum getReviewVocationalNum(ReviewVocationalNumDTO reviewVocationalNumDTO) {
ProjectJudgeDO projectJudgeDO = projectJudgeMapper.selectById(reviewVocationalNumDTO.getUserId());
if (projectJudgeDO == null) {
throw new HttpException(Code.TOKEN_EXPIRED.getCode(), Code.TOKEN_EXPIRED.getMessage());
}
VocationalProjectNum vocationalProjectNum = new VocationalProjectNum();
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, reviewVocationalNumDTO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, reviewVocationalNumDTO.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
if ((new Date().after(projectReviewPeriodDO.getStartTime()) ||
DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO.getStartTime(), DateFormatUtil.FMT_sdf14_L)))
&&
(new Date().before(projectReviewPeriodDO.getEndTime()) ||
DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO.getEndTime(), DateFormatUtil.FMT_sdf14_L)))) {
List<ProjectDO> list = this.baseMapper.getProjectReviewList(projectJudgeDO.getId(), reviewVocationalNumDTO.getMatchId(), null);
Long secRematchNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)).count();
Long secFinalNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)).count();
Long secPreliminaryNUm = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.REGISTER)).count();
Long reviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectSchedule())
&& p.getProjectReview().equals(ProjectReview.REVIEW)).count();
Long notReviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectSchedule()) && p.getProjectReview().equals(ProjectReview.ASSIGNED)).count();
vocationalProjectNum.setSecPreliminaryNUm(secPreliminaryNUm);
vocationalProjectNum.setSecRematchNum(secRematchNum);
vocationalProjectNum.setSecFinalNum(secFinalNum);
vocationalProjectNum.setReviewedNum(reviewedNum);
vocationalProjectNum.setNotReviewedNum(notReviewedNum);
}
}
return vocationalProjectNum;
}
@Override
public IPage getVocationalProjectReviewPage(ProjectReviewPageDTO projectReviewPageDTO) {
ProjectJudgeDO projectJudgeDO = projectJudgeMapper.selectById(projectReviewPageDTO.getUserId());
if (projectJudgeDO == null) {
throw new HttpException(Code.TOKEN_EXPIRED.getCode(), Code.TOKEN_EXPIRED.getMessage());
}
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectReviewPageDTO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectReviewPageDTO.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
if ((new Date().after(projectReviewPeriodDO.getStartTime()) || DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO.getStartTime(), DateFormatUtil.FMT_sdf14_L)))
&&
(new Date().before(projectReviewPeriodDO.getEndTime()) || DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO.getEndTime(), DateFormatUtil.FMT_sdf14_L)))) {
String projectReview = "";
if (projectReviewPageDTO.getStatus().equals(ProjectReview.TO_REVIEWED)) {
projectReview = ProjectReview.ASSIGNED;
} else {
projectReview = projectReviewPageDTO.getStatus();
}
IPage<ProjectPageVO> iPage = this.baseMapper.getProjectReviewPage(new Page(projectReviewPageDTO.getPageNo(), projectReviewPageDTO.getPageSize()),
projectJudgeDO.getId(),
projectReviewPageDTO.getMatchId(),
projectReviewPageDTO.getProjectName(),
projectReviewPageDTO.getProjectStatus(),
projectReview,
projectReviewPageDTO.getProjectGroup(),
null,
projectReviewPageDTO.getProjectSchedule());
for (ProjectPageVO record : iPage.getRecords()) {
/**
* 项目负责人
*/
TeacherDO studentDO = teacherMapper.selectById(record.getTeacherId());
if (studentDO != null) {
record.setUserName(studentDO.getUserName());
record.setEducation(studentDO.getEducation());
record.setYears(studentDO.getYears() + "");
record.setTitle(studentDO.getTitle());
record.setTelephone(studentDO.getTelephone());
record.setMajor(studentDO.getMajor());
record.setPosition(studentDO.getPosition());
CollegesDictDO collegesDictDO = collegesDictMapper.selectById(studentDO.getCollegeId());
if (null != collegesDictDO) {
record.setCollege(collegesDictDO.getName());
}
}
if (record.getReviewStatus().equals(ProjectReview.ASSIGNED)) {
record.setProjectStatus(ProjectReview.TO_REVIEWED);
} else if (record.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
record.setProjectStatus(ProjectReview.SUBMITTED);
}
}
return iPage;
}
}
return null;
}
@Override
public void setScore(ProjectReviewScoreDTO projectReviewScoreDTO) {
ProjectJudgeDO projectJudgeDO = projectJudgeMapper.selectById(projectReviewScoreDTO.getUserId());
if (projectJudgeDO == null) {
throw new HttpException(Code.TOKEN_EXPIRED.getCode(), Code.TOKEN_EXPIRED.getMessage());
}
// 批量
if (projectReviewScoreDTO.getReviewScore() != null && projectReviewScoreDTO.getReviewScore().size() > 0) {
for (ReviewScoreDTO reviewScoreDTO : projectReviewScoreDTO.getReviewScore()) {
ProjectDO projectDO = this.baseMapper.selectById(reviewScoreDTO.getId());
if (projectDO == null) {
throw new HttpException(10049);
}
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
if (projectReviewPeriodDO.getStartTime().after(new Date())) {
throw new HttpException(10074);
}
if (projectReviewPeriodDO.getEndTime().before(new Date())) {
throw new HttpException(10074);
}
}
ProjectReviewDO projectReviewDO = projectReviewService.getOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, reviewScoreDTO.getId())
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule())
.eq(ProjectReviewDO::getJudgeId, projectJudgeDO.getId()));
if (projectReviewDO == null) {
throw new HttpException(10050);
}
if (projectReviewDO.getReviewStatus() != null &&
projectReviewDO.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
throw new HttpException(10051);
}
ProjectReviewDO projectReview = new ProjectReviewDO();
projectReview.setId(projectReviewDO.getId());
projectReview.setReviewScore(reviewScoreDTO.getScore());
projectReview.setReviewOpinion(reviewScoreDTO.getReviewOpinion());
projectReviewService.updateById(projectReview);
}
} else if (projectReviewScoreDTO.getId() != null) {
ProjectDO projectDO = this.baseMapper.selectById(projectReviewScoreDTO.getId());
if (projectDO == null) {
throw new HttpException(10049);
}
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
if (projectReviewPeriodDO.getStartTime().after(new Date())) {
throw new HttpException(10074);
}
if (projectReviewPeriodDO.getEndTime().before(new Date())) {
throw new HttpException(10074);
}
}
ProjectReviewDO projectReviewDO = projectReviewService.getOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule())
.eq(ProjectReviewDO::getJudgeId, projectJudgeDO.getId()));
if (projectReviewDO == null) {
throw new HttpException(10050);
}
if (projectReviewDO.getReviewStatus() != null &&
projectReviewDO.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
throw new HttpException(10051);
}
ProjectReviewDO projectReview = new ProjectReviewDO();
projectReview.setId(projectReviewDO.getId());
projectReview.setReviewScore(projectReviewScoreDTO.getScore());
projectReview.setReviewOpinion(projectReviewScoreDTO.getReviewOpinion());
projectReviewService.updateById(projectReview);
}
}
@Override
public SeedTrackProjectDetailVO getVocationalProjectDetail(GetVocationalProjectDetailDTO getVocationalProjectDetailDTO) {
ProjectJudgeDO projectJudge = projectJudgeMapper.selectById(getVocationalProjectDetailDTO.getUserId());
SeedTrackProjectDetailVO seedTrackProjectDetailVO = new SeedTrackProjectDetailVO();
ProjectDO projectDO = this.baseMapper.selectById(getVocationalProjectDetailDTO.getId());
TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
seedTrackProjectDetailVO.setUserName(teacherDO.getUserName());
seedTrackProjectDetailVO.setEducation(teacherDO.getEducation());
seedTrackProjectDetailVO.setYears(teacherDO.getYears() + "");
seedTrackProjectDetailVO.setTitle(teacherDO.getTitle());
seedTrackProjectDetailVO.setTelephone(teacherDO.getTelephone());
seedTrackProjectDetailVO.setMajor(teacherDO.getMajor());
seedTrackProjectDetailVO.setPosition(teacherDO.getPosition());
ProjectConsultDO projectConsultDO = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId, getVocationalProjectDetailDTO.getId()));
if (null != projectConsultDO) {
seedTrackProjectDetailVO.setBackgrouds(projectConsultDO.getBackgrouds());
seedTrackProjectDetailVO.setAnalysis(projectConsultDO.getAnalysis());
seedTrackProjectDetailVO.setConsultProcess(projectConsultDO.getConsultProcess());
seedTrackProjectDetailVO.setCaseReflect(projectConsultDO.getCaseReflect());
}
if (projectDO != null) {
BeanUtils.copyProperties(projectDO, seedTrackProjectDetailVO);
List<ProjectMembersDO> list = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO.getId()));
List<TeamMemberDTO> teamMember = new ArrayList<>();
List<MentorDTO> mentor = new ArrayList<>();
for (ProjectMembersDO projectMemberDO : list) {
if (projectMemberDO.getRole().equals(MemberType.PRINCIPAL)) {
seedTrackProjectDetailVO.setUserName(projectMemberDO.getUserName());
seedTrackProjectDetailVO.setMajor(projectMemberDO.getMajor());
} else if (projectMemberDO.getRole().equals(MemberType.TEAM_MEMBER)) {
TeamMemberDTO teamMemberDTO = new TeamMemberDTO();
teamMemberDTO.setId(projectMemberDO.getId());
teamMemberDTO.setMajor(projectMemberDO.getMajor());
teamMember.add(teamMemberDTO);
} else if (projectMemberDO.getRole().equals(MemberType.MENTOR)) {
MentorDTO mentorDTO = new MentorDTO();
mentorDTO.setId(projectMemberDO.getId());
mentorDTO.setPosition(projectMemberDO.getPosition());
mentor.add(mentorDTO);
}
}
QueryWrapper<ProjectReviewDO> queryWrapper = new QueryWrapper();
if (projectJudge.getId() != null) {
queryWrapper.lambda().eq(ProjectReviewDO::getJudgeId, projectJudge.getId());
}
queryWrapper.lambda().eq(ProjectReviewDO::getProjectId, getVocationalProjectDetailDTO.getId());
List<ProjectReviewDO> review = projectReviewService.list(queryWrapper);
if (review.size() > 0) {
List<ReMatchReviewVO> rematch = new ArrayList<>();
List<FinalsReviewVO> finals = new ArrayList<>();
for (ProjectReviewDO pr : review) {
ProjectJudgeDO projectJudgeDO = projectJudgeMapper.selectById(pr.getJudgeId());
if (pr.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) {
ReMatchReviewVO reMatchReviewVO = new ReMatchReviewVO();
reMatchReviewVO.setId(pr.getId());
if (projectJudgeDO != null) {
reMatchReviewVO.setRematchJudgeName(projectJudgeDO.getUsername());
}
// if (collegesDict.getId() == null) {
reMatchReviewVO.setRematchScore(pr.getScore());
// }
if (null != pr.getReviewTime()) {
reMatchReviewVO.setRematchTime(DateFormatUtil.format(pr.getReviewTime(), DateFormatUtil.FMT_sdf_yMd));
}
rematch.add(reMatchReviewVO);
} else {
FinalsReviewVO finalsReviewVO = new FinalsReviewVO();
finalsReviewVO.setId(pr.getId());
if (projectJudgeDO != null) {
finalsReviewVO.setFinalsJudgeName(projectJudgeDO.getUsername());
}
// if (collegesDict.getId() == null) {
finalsReviewVO.setFinalsScore(pr.getScore());
// }
if (null != pr.getReviewTime()) {
finalsReviewVO.setFinalsTime(DateFormatUtil.format(pr.getReviewTime(), DateFormatUtil.FMT_sdf_yMd));
}
finals.add(finalsReviewVO);
}
}
seedTrackProjectDetailVO.setRematch(rematch);
seedTrackProjectDetailVO.setFinals(finals);
}
if (projectJudge.getId() != null) {
ProjectReviewDO projectReviewDO = projectReviewService.getOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, getVocationalProjectDetailDTO.getId())
.eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule())
.eq(ProjectReviewDO::getJudgeId, projectJudge.getId()));
if (projectReviewDO != null) {
if (projectReviewDO.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
seedTrackProjectDetailVO.setReviewStatus(ProjectReview.SUBMITTED);
}
seedTrackProjectDetailVO.setReviewScore(projectReviewDO.getReviewScore());
seedTrackProjectDetailVO.setReviewOpinion(projectReviewDO.getReviewOpinion());
}
}
}
return seedTrackProjectDetailVO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void submitted(ProjectReviewScoreDTO projectReviewScoreDTO) {
ProjectJudgeDO projectJudgeDO = projectJudgeMapper.selectById(projectReviewScoreDTO.getUserId());
if (projectJudgeDO == null) {
throw new HttpException(Code.TOKEN_EXPIRED.getCode(), Code.TOKEN_EXPIRED.getMessage());
}
if (projectReviewScoreDTO.getIds() != null && projectReviewScoreDTO.getIds().size() > 0) {
for (Long id : projectReviewScoreDTO.getIds()) {
ProjectDO project = this.baseMapper.selectById(id);
if (project == null) {
throw new HttpException(10049);
}
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, project.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, project.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
if (projectReviewPeriodDO.getStartTime().after(new Date())) {
throw new HttpException(10074);
}
if (projectReviewPeriodDO.getEndTime().before(new Date())) {
throw new HttpException(10074);
}
}
ProjectReviewDO projectReviewDO = projectReviewService.getOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, project.getId())
.eq(ProjectReviewDO::getProjectSchedule, project.getProjectSchedule())
.eq(ProjectReviewDO::getJudgeId, projectJudgeDO.getId()));
if (projectReviewDO.getReviewScore() == null) {
throw new HttpException(10077);
}
if (projectReviewDO.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
throw new HttpException(10051);
}
Integer num = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, project.getId()));
Integer submitNum = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, project.getId())
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.SUBMITTED));
if (submitNum == num - 1) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(id);
projectDO.setProjectReview(ProjectReview.SUBMITTED);
this.baseMapper.updateById(projectDO);
}
ProjectReviewDO projectReview = new ProjectReviewDO();
projectReview.setId(projectReviewDO.getId());
projectReview.setScore(projectReviewDO.getReviewScore());
projectReview.setReviewStatus(ProjectReview.SUBMITTED);
projectReview.setReviewTime(new Date());
projectReview.setReviewOpinion(projectReviewDO.getReviewOpinion());
projectReviewService.updateById(projectReview);
}
} else if (projectReviewScoreDTO.getId() != null) {
ProjectDO project = this.baseMapper.selectById(projectReviewScoreDTO.getId());
if (project == null) {
throw new HttpException(10049);
}
ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper<ProjectReviewPeriodDO>()
.lambda()
.eq(ProjectReviewPeriodDO::getMatchId, project.getMatchId())
.eq(ProjectReviewPeriodDO::getProjectSchedule, project.getProjectSchedule()));
if (projectReviewPeriodDO != null) {
if (projectReviewPeriodDO.getStartTime().after(new Date())) {
throw new HttpException(10074);
}
if (projectReviewPeriodDO.getEndTime().before(new Date())) {
throw new HttpException(10074);
}
}
ProjectReviewDO projectReviewDO = projectReviewService.getOne(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectSchedule, project.getProjectSchedule())
.eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())
.eq(ProjectReviewDO::getJudgeId, projectJudgeDO.getId()));
if (projectReviewDO.getReviewScore() == null) {
throw new HttpException(10077);
}
if (projectReviewDO.getReviewStatus().equals(ProjectReview.SUBMITTED)) {
throw new HttpException(10051);
}
Integer num = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())
.eq(ProjectReviewDO::getProjectSchedule, projectReviewDO.getProjectSchedule()));
Integer submitNum = projectReviewService.count(new QueryWrapper<ProjectReviewDO>()
.lambda()
.eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())
.eq(ProjectReviewDO::getReviewStatus, ProjectReview.SUBMITTED));
if (submitNum == num - 1) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(projectReviewScoreDTO.getId());
projectDO.setProjectReview(ProjectReview.SUBMITTED);
this.baseMapper.updateById(projectDO);
}
ProjectReviewDO projectReview = new ProjectReviewDO();
projectReview.setId(projectReviewDO.getId());
projectReview.setScore(projectReviewDO.getReviewScore());
projectReview.setReviewStatus(ProjectReview.SUBMITTED);
projectReview.setReviewTime(new Date());
projectReview.setReviewOpinion(projectReviewDO.getReviewOpinion());
projectReviewService.updateById(projectReview);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void batchUpdateEditStatus(EditStatusDTO editStatusDTO) {
if (editStatusDTO.getIds().length > 0) {
for (Long id : editStatusDTO.getIds()) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(id);
projectDO.setEditStatus(editStatusDTO.getEditStatus());
this.baseMapper.updateById(projectDO);
}
}
}
@Override
public void updateEditStatus(EditStatusDTO editStatusDTO) {
ProjectDO projectDO = new ProjectDO();
projectDO.setId(editStatusDTO.getId());
projectDO.setEditStatus(editStatusDTO.getEditStatus());
this.baseMapper.updateById(projectDO);
}
public ProjectDO createTimeProject(UpdateProjectDTO projectDO) throws Exception {
//高教 职教
CollegesDictDO collegesDictDO = teacherMapper.teacherCollege(projectDO.getTeacherId());
if ("大学专科".equals(collegesDictDO.getEducation())) {
projectDO.setProjectGroup("职教组");
} else {
projectDO.setProjectGroup("高教组");
}
projectDO.setCollegeId(collegesDictDO.getId());
/**
* 查看这一届有没有填写过
*/
ProjectDO projectDO1 = this.baseMapper.selectOne(new QueryWrapper<ProjectDO>()
.lambda()
.eq(ProjectDO::getMatchId, projectDO.getMatchId())
.eq(ProjectDO::getTeacherId, projectDO.getTeacherId())
.eq(ProjectDO::getProjectTrack, projectDO.getProjectTrack()));
if (null == projectDO1) {
projectDO.setProjectSchedule(ProjectSchedule.REGISTER);
projectDO.setProjectAssigned(ProjectReview.UNASSIGNED);
projectDO.setProjectReview(ProjectReview.TO_REVIEWED);
projectDO.setProjectStatus(ProjectStatus.UN_SUBMITTED);
this.baseMapper.insert(projectDO);
TeacherDO teacherDO = teacherMapper.selectById(projectDO.getTeacherId());
ProjectMembersDO projectMembersDO = new ProjectMembersDO();
projectMembersDO.setProjectId(projectDO.getId());
projectMembersDO.setRole(Role.LEADER);
projectMembersDO.setUserName(teacherDO.getUserName());
projectMembersDO.setBirthDate(PDFUtil.idCard2BirthDate(teacherDO.getIdCard()));
projectMembersDO.setPosition(teacherDO.getPosition());
projectMembersDO.setEducation(teacherDO.getEducation());
projectMembersDO.setTitle(teacherDO.getTitle());
projectMembersDO.setMajor(teacherDO.getMajor());
projectMembersDO.setCourseTarget(projectDO.getCourseTarget());
projectMembersDO.setSemester(projectDO.getSemester());
projectMembersDO.setStartDate(projectDO.getStartDate());
projectMembersDO.setEndDate(projectDO.getEndDate());
projectMembersDO.setTeachHours(projectDO.getTeachHours());
projectMembersDO.setTeachGrade(projectDO.getTeachGrade());
projectMembersDO.setClassTotalNum(projectDO.getClassTotalNum());
projectMembersMapper.insert(projectMembersDO);
} else {
if (!"填写中".equals(ProjectStatus.UN_SUBMITTED)) {
throw new HttpException(10008);
}
BeanUtils.copyProperties(projectDO, projectDO1);
if (StringUtils.isNotEmpty(projectDO.getAttachment())) {
projectDO1.setProjectReview(ProjectReview.TO_REVIEWED);
projectDO1.setProjectAssigned(ProjectReview.UNASSIGNED);
projectDO1.setProjectStatus(ProjectStatus.FIRST_REVIEW);
}
//判断当前时间有没有被占掉
TimeTableDO timeTableDO = timeTableMapper.selectOne(new QueryWrapper<TimeTableDO>()
.lambda()
.eq(TimeTableDO::getId, projectDO.getTimeId())
.eq(TimeTableDO::getMatchId, projectDO.getMatchId())
.isNotNull(TimeTableDO::getProjectId)
.ne(TimeTableDO::getProjectId, projectDO.getId()));
if (null != timeTableDO) {
throw new HttpException(10034);
}
ProjectMembersDO projectMembersDO = projectMembersMapper.selectOne(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO1.getId())
.eq(ProjectMembersDO::getRole, Role.LEADER));
if (StringUtils.isNotEmpty(projectDO.getSemester())) {
projectMembersDO.setSemester(projectDO.getSemester());
}
if (StringUtils.isNotEmpty(projectDO.getStartDate())) {
projectMembersDO.setStartDate(projectDO.getStartDate());
}
if (StringUtils.isNotEmpty(projectDO.getEndDate())) {
projectMembersDO.setEndDate(projectDO.getEndDate());
}
if (null != projectDO.getTeachHours()) {
projectMembersDO.setTeachHours(projectDO.getTeachHours());
}
if (StringUtils.isNotEmpty(projectDO.getTeachGrade())) {
projectMembersDO.setTeachGrade(projectDO.getTeachGrade());
}
if (null != projectDO.getClassTotalNum()) {
projectMembersDO.setClassTotalNum(projectDO.getClassTotalNum());
}
if (null != projectDO.getCourseTarget()) {
projectMembersDO.setCourseTarget(projectDO.getCourseTarget());
}
projectMembersMapper.updateById(projectMembersDO);
if (null != projectDO.getProjectMembersDOS()) {
projectMembersMapper.delete(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO.getId())
.eq(ProjectMembersDO::getRole, Role.MEMBER));
List<ProjectMembersDO> projectMembersDOS = projectDO.getProjectMembersDOS();
for (ProjectMembersDO pmd : projectMembersDOS) {
pmd.setProjectId(projectDO1.getId());
pmd.setRole(Role.MEMBER);
projectMembersMapper.insert(pmd);
}
}
if (null != projectDO.getCourseObject() && 0 == projectDO.getCourseObject()) {
this.baseMapper.updateMajor(projectDO1.getId());
}
if (null != projectDO.getTimeId()) {
projectDO1.setTimeId(projectDO.getTimeId());
}
this.baseMapper.updateById(projectDO1);
TimeTableDO timeTableDO1 = timeTableMapper.selectById(projectDO.getTimeId());
if (null != timeTableDO1) {
timeTableDO1.setProjectId(projectDO.getId());
timeTableMapper.updateById(timeTableDO1);
}
ProjectConsultDO projectConsultDO1 = projectConsultMapper.selectOne(new QueryWrapper<ProjectConsultDO>()
.lambda()
.eq(ProjectConsultDO::getProjectId, projectDO1.getId()));
if (null == projectConsultDO1) {
ProjectConsultDO projectConsultDO = new ProjectConsultDO();
projectConsultDO.setProjectId(projectDO1.getId());
projectConsultDO.setAnalysis(projectDO.getAnalysis());
projectConsultDO.setBackgrouds(projectDO.getBackgrouds());
projectConsultDO.setConsultProcess(projectDO.getConsultProcess());
projectConsultDO.setCaseReflect(projectDO.getCaseReflect());
projectConsultMapper.insert(projectConsultDO);
} else {
projectConsultMapper.updateConsult(projectDO1.getId(), projectDO.getBackgrouds(), projectDO.getAnalysis(), projectDO.getConsultProcess(), projectDO.getCaseReflect());
}
}
return projectDO;
}
@Override
public void downloadTimePdf(ProjectDO projectDO) {
ProjectDO projectDO1 = this.baseMapper.selectById(projectDO.getId());
MatchDictDO matchDictDO = matchDictMapper.selectById(projectDO1.getMatchId());
TeacherDO teacherDO = teacherMapper.selectById(projectDO1.getTeacherId());
CollegesDictDO collegesDictDO = collegesDictMapper.selectById(teacherDO.getCollegeId());
List<ProjectMembersDO> projectMembersDOS = projectMembersMapper.selectList(new QueryWrapper<ProjectMembersDO>()
.lambda()
.eq(ProjectMembersDO::getProjectId, projectDO.getId())
.eq(ProjectMembersDO::getRole,Role.MEMBER));
//判断项目类型 课程赛道和教学赛道
PDFUtil.createTimeCourse(projectDO1, matchDictDO, teacherDO, projectMembersDOS, collegesDictDO);
}
}
......@@ -6,15 +6,20 @@ import com.subsidy.common.constant.SmsCode;
import com.subsidy.common.exception.HttpException;
import com.subsidy.mapper.AdministerMapper;
import com.subsidy.model.AdministerDO;
import com.subsidy.model.ProjectJudgeDO;
import com.subsidy.model.SmsVerifyCodeDO;
import com.subsidy.mapper.SmsVerifyCodeMapper;
import com.subsidy.service.ProjectJudgeService;
import com.subsidy.service.SmsVerifyCodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.RandomUtil;
import com.subsidy.util.SMSUtils;
import com.subsidy.util.*;
import com.subsidy.util.excel.ExcelUtil;
import org.apache.http.HttpResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.LinkedList;
/**
* <p>
......@@ -30,8 +35,17 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
@Autowired
private AdministerMapper administerMapper;
@Autowired
private ProjectJudgeService projectJudgeService;
@Autowired
private AliyunSmsUtil aliyunSmsUtil;
@Autowired
private SmsVerifyCodeMapper smsVerifyCodeMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void sendAdministerLoginCode(AdministerDO administerDO) {
AdministerDO administer = administerMapper.selectOne(new QueryWrapper<AdministerDO>()
.lambda()
......@@ -40,7 +54,13 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
throw new HttpException(10009);
}
smsVerifyCodeMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, administerDO.getTelephone()));
String verifyCode = RandomUtil.getRandomCode(6);
String param = "{ \"code\":\"" + verifyCode + "\"}";
SMSUtils.sendVerifySMS(ConstantUtils.TEMPLATE_CODE, administerDO.getTelephone(), param);
......@@ -56,4 +76,39 @@ public class SmsVerifyCodeServiceImpl extends ServiceImpl<SmsVerifyCodeMapper, S
}
@Override
@Transactional(rollbackFor = Exception.class)
public void sendJudgeLoginCode(SmsVerifyCodeDO smsCodeDO) {
ProjectJudgeDO projectJudgeDO = projectJudgeService.getOne(new QueryWrapper<ProjectJudgeDO>()
.lambda()
.eq(ProjectJudgeDO::getTelephone, smsCodeDO.getTelephone()));
if (projectJudgeDO == null) {
throw new HttpException(10060);
}
smsVerifyCodeMapper.delete(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (projectJudgeDO.getPasswordFree() == null || projectJudgeDO.getPasswordFree() != 1) {
int code = RandomUtil.getCode();
SendSmsResponse sendSmsResponse = aliyunSmsUtil.send(smsCodeDO.getTelephone(), code);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
SmsVerifyCodeDO smsCode = this.baseMapper.selectOne(new QueryWrapper<SmsVerifyCodeDO>()
.lambda()
.eq(SmsVerifyCodeDO::getTelephone, smsCodeDO.getTelephone()));
if (smsCode != null) {
this.baseMapper.deleteById(smsCode.getId());
}
SmsVerifyCodeDO sc = new SmsVerifyCodeDO();
sc.setTelephone(smsCodeDO.getTelephone());
sc.setVerifyCode(String.valueOf(code));
this.baseMapper.insert(sc);
} else {
throw new HttpException(10011);
}
}
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.exception.HttpException;
import com.subsidy.mapper.ProjectMapper;
import com.subsidy.model.ProjectDO;
import com.subsidy.model.TimeTableDO;
import com.subsidy.mapper.TimeTableMapper;
import com.subsidy.service.TimeTableService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.timetable.QueryTablesDetailVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Tuyp
* @since 2025-10-28
*/
@Service
public class TimeTableServiceImpl extends ServiceImpl<TimeTableMapper, TimeTableDO> implements TimeTableService {
@Autowired
private ProjectMapper projectMapper;
@Override
public List<TimeTableDO> queryTimeTables(TimeTableDO timeTableDO) {
return this.baseMapper.selectList(new QueryWrapper<TimeTableDO>()
.lambda()
.eq(TimeTableDO::getMatchId,timeTableDO.getMatchId()));
}
@Override
@Transactional(rollbackFor = Exception.class)
public String updateTimeByProjectId(TimeTableDO timeTableDO) {
TimeTableDO timeTableDO1 = this.baseMapper.selectOne(new QueryWrapper<TimeTableDO>()
.lambda()
.eq(TimeTableDO::getProjectId,timeTableDO.getProjectId()));
if (null == timeTableDO1){
throw new HttpException(10033);
}
//将之前时间表的projectId置为空
this.baseMapper.clearProjectId(timeTableDO1.getId());
//将project的timeId置为空
projectMapper.clearTimeId(timeTableDO1.getProjectId());
TimeTableDO finalTable = this.baseMapper.selectById(timeTableDO.getId());
finalTable.setProjectId(timeTableDO.getProjectId());
this.baseMapper.updateById(finalTable);
return ConstantUtils.SUCCESS_UPDATE;
}
@Override
public List<QueryTablesDetailVO> queryTablesDetail(TimeTableDO timeTableDO) {
return this.baseMapper.queryTablesDetail(timeTableDO.getMatchId());
}
@Override
public void exportQueryTablesDetail(TimeTableDO timeTableDO) {
List<QueryTablesDetailVO> queryTablesDetailVOS = this.baseMapper.queryTablesDetail(timeTableDO.getMatchId());
ExcelUtil.writeExcel(queryTablesDetailVOS,QueryTablesDetailVO.class);
}
@Override
public String addTimeTable(TimeTableDO timeTableDO) {
int count = this.baseMapper.selectCount(new QueryWrapper<TimeTableDO>()
.lambda()
.eq(TimeTableDO::getMatchId,timeTableDO.getMatchId())
.eq(TimeTableDO::getSelectTime,timeTableDO.getSelectTime()));
if (count > 0){
throw new HttpException(10034);
}
this.baseMapper.insert(timeTableDO);
return ConstantUtils.ADD_SUCCESS;
}
@Override
public String deleteTimeTableById(TimeTableDO timeTableDO) {
TimeTableDO timeTableDO1 = this.baseMapper.selectById(timeTableDO.getId());
if (null != timeTableDO1.getProjectId()){
throw new HttpException(10035);
}
this.baseMapper.deleteById(timeTableDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
@Override
public String rollbackTime(TimeTableDO timeTableDO) {
TimeTableDO timeTableDO1 = this.baseMapper.selectById(timeTableDO.getId());
//将之前时间表的projectId置为空
this.baseMapper.clearProjectId(timeTableDO.getId());
//将project的timeId置为空
projectMapper.clearTimeId(timeTableDO1.getProjectId());
return ConstantUtils.SUCCESS_UPDATE;
}
}
package com.subsidy.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.subsidy.common.configure.AliyunSmsProperties;
import com.subsidy.common.exception.HttpException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
* 阿里云短信
* </p>
*
* @author DengMin
* @since 2021/1/27
*/
@Slf4j
@Component
public class AliyunSmsUtil {
@Autowired
private AliyunSmsProperties aliyunSmsProperties;
/**
* 阿里云短信 -- 验证码
* @param phone
* @param code
* @return
*/
public SendSmsResponse send(String phone, int code) {
try {
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化acsClient,暂不支持region化
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunSmsProperties.getAccessKeyId(), aliyunSmsProperties.getAccessKeySecret());
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", aliyunSmsProperties.getProduct(), aliyunSmsProperties.getDomain());
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象-具体描述见控制台-文档部分内容
SendSmsRequest request = new SendSmsRequest();
//必填:待发送手机号
request.setPhoneNumbers(phone);
//必填:短信签名-可在短信控制台中找到
request.setSignName("有课互联");
//必填:短信模板-可在短信控制台中找到
request.setTemplateCode("SMS_190945393");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
request.setTemplateParam("{\"code\":\"" + code + "\"}");
//hint 此处可能会抛出异常,注意catch
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if (sendSmsResponse != null && sendSmsResponse.getCode().equals("OK")) {
return sendSmsResponse;
}
throw new Exception(sendSmsResponse.getMessage());
} catch (Exception e) {
log.error("---短信发送失败:" + e);
throw new HttpException(10011);
}
}
public static void main(String[] args) {
// AliyunSmsUtil.sendNew("15201936167",000123);
}
/**
* 三网平台短信
* @param msg
* @param phone
* @param templateId
*/
public void sendTemplateMsg(String msg, String phone, String templateId) {
Map<String, Object> map = new HashMap<>();
try {
map.put("cpcode", aliyunSmsProperties.getCpcode());
map.put("msg", msg);
map.put("mobiles", phone);
map.put("excode", aliyunSmsProperties.getExcode());
map.put("templetid", templateId);
String md5source = aliyunSmsProperties.getCpcode() + msg + phone + aliyunSmsProperties.getExcode() + templateId + aliyunSmsProperties.getKey();
map.put("sign", makeMD5(new String(md5source.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)).toLowerCase());
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.postForEntity(aliyunSmsProperties.getRcsapi(), map, String.class);
String body = responseEntity.getBody();
JSONObject object = JSON.parseObject(body);
if (Integer.valueOf(object.get("resultcode").toString()) != 0) {
log.error(object.get("resultmsg").toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// /**
// * 三网平台短信 新版本 https://flaginfo-cloud.yuque.com/staff-rozzgq/ofcpak
// * @param msg
// * @param phone
// * @param templateId
// */
// public static void sendTemplateMsgNew(String msg, String phone, String templateId) {
// String info = null;
// try{
// HttpClient httpclient = new HttpClient();
// PostMethod post = new PostMethod("https://opassapi.infocloud.cc/sms/Api/SendGBK.do");//
// post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"gb2312");
// post.addParameter("SpCode", templateId);
// post.addParameter("LoginName", "7db124d0baf189d1e485350xxx");
// post.addParameter("Password", "3df50b24fb8288b9da99d16bf527e9dbf13659748534dca6e0820xxx");
// post.addParameter("MessageContent", msg);
// post.addParameter("UserNumber", phone);
// post.addParameter("SerialNumber", "");
// post.addParameter("f", "1");
// httpclient.executeMethod(post);
// info = new String(post.getResponseBody(),"gbk");
// System.out.println(info);
// }catch (Exception e) {
// e.printStackTrace();
// }
// }
public void sendTemplateMsgP(String msg, String phone, String templateId) {
Map<String, Object> map = new HashMap<>();
try {
map.put("cpcode", aliyunSmsProperties.getCpcode());
map.put("msg", msg);
map.put("mobiles", phone);
map.put("excode", aliyunSmsProperties.getExcode());
map.put("templetid", templateId);
String md5source = aliyunSmsProperties.getCpcode() + msg + phone + aliyunSmsProperties.getExcode() + templateId + aliyunSmsProperties.getKey();
map.put("sign", makeMD5(new String(md5source.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)).toLowerCase());
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.postForEntity(aliyunSmsProperties.getRcsapi(), map, String.class);
String body = responseEntity.getBody();
JSONObject object = JSON.parseObject(body);
if (Integer.valueOf(object.get("resultcode").toString()) != 0) {
log.error(object.get("resultmsg").toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String makeMD5(String plainText) {
String re_md5 = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes(StandardCharsets.UTF_8));
byte[] b = md.digest();
int i;
StringBuffer buf = new StringBuffer();
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0) {
i += 256;
}
if (i < 16) {
buf.append("0");
}
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString().toLowerCase();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
// public static String getByteString( byte[] buff_out )
// {
// StringBuffer strBuf = new StringBuffer(buff_out.length * 3);
// strBuf.append("Length[");
// strBuf.append(buff_out.length);
// strBuf.append("];Content[");
// for ( int i = 0 ; i < buff_out.length ; ++i ) {
// int l = buff_out[i] & 0x0F;
// int h = (buff_out[i] & 0xF0) >> 4;
//
// char ll = (char) (l > 9 ? 'a' + l - 10 : '0' + l);
// char hh = (char) (h > 9 ? 'a' + h - 10 : '0' + h);
//
// strBuf.append(hh);
// strBuf.append(ll);
// strBuf.append(" ");
// }
// strBuf.append("]");
// return strBuf.toString().toUpperCase();
// }
}
\ No newline at end of file
......@@ -44,7 +44,7 @@ public class ConstantUtils {
public static final String ALREADY_RECOMMEND = "已推荐";
public static final String VERIFY_NAME = "双创平台";
public static final String VERIFY_NAME = "有课互联";
public static final String NOTICE_NAME = "有课进度通知";
......@@ -59,7 +59,7 @@ public class ConstantUtils {
/**
* 短信模板---验证模板
*/
public static final String TEMPLATE_CODE = "SMS_229640297";
public static final String TEMPLATE_CODE = "SMS_190945393";
/**
* 短信 地域ID
......@@ -69,17 +69,17 @@ public class ConstantUtils {
/**
* 短信 RAM账号AccessKey ID
*/
public static final String ACCESS_KEY_ID = "LTAI5tPAH7P7WQVeowo517BE";
public static final String ACCESS_KEY_ID = "LTAI5tLUBG4B6QxhHrhddc7p";
/**
* 短信 RAM账号AccessKey Secret
*/
public static final String SECRET = "0ueqhIfdAZyw5lWlBVSLpAxTtx37RY";
public static final String SECRET = "eber38QGHZixTQ6bFfrd80kbg67jIP";
/**
* 腾讯云点播视频转码模板
*/
public static final Long TEMPLATE_VOD = 100030L;
public static final Long TEMPLATE_VOD = 100840L;
/**
* 手机端token
......
package com.subsidy.util;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.crypto.digests.SM3Digest;
import org.bouncycastle.util.encoders.Hex;
import java.nio.charset.StandardCharsets;
/**
* 密码加密
*
* @author Date: 2019/08/28 20:59
*/
@Slf4j
public class EncryptString {
/**
* 对字符串进行SM3哈希计算
* @param input 待加密的字符串
* @return 哈希结果(十六进制字符串,64位)
*/
public static String encrypt(String input) {
// 1. 创建SM3摘要计算器
SM3Digest digest = new SM3Digest();
// 2. 将输入字符串转为UTF-8字节数组,更新摘要
byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
digest.update(inputBytes, 0, inputBytes.length);
// 3. 计算哈希结果(32字节)
byte[] hashBytes = new byte[digest.getDigestSize()];
digest.doFinal(hashBytes, 0);
// 4. 将字节数组转为十六进制字符串
return Hex.toHexString(hashBytes);
}
public static void main(String[] args) {
System.out.println(encrypt("catschina00002O9S8Z"));
}
}
package com.subsidy.util;
import com.google.common.hash.Hashing;
import org.apache.commons.codec.Charsets;
import java.util.Collections;
import java.util.List;
/**
* 人脸识别工具类
*/
public class ImageCheckUtil {
/**
* 签名方法
* @param values
* @param ticket
* @return
*/
public static String sign(List<String> values, String ticket) { //values传ticket外的其他参数
if (values == null) {
throw new NullPointerException("values is null");
}
values.removeAll(Collections.singleton(null));// remove null
values.add(ticket); java.util.Collections.sort(values);
StringBuilder sb = new StringBuilder();
for (String s : values) { sb.append(s);
}
return Hashing.sha1().hashString(sb,
Charsets.UTF_8).toString().toUpperCase();
}
}
......@@ -17,10 +17,10 @@ import java.util.UUID;
public class OSSUtils {
// @Value("${aliyun.oss.accessKeyId}")
private static String accessKeyId = "LTAI5tPAH7P7WQVeowo517BE";
private static String accessKeyId = "LTAI5tLUBG4B6QxhHrhddc7p";
// @Value("${aliyun.oss.accessKeySecret}")
private static String secretAccessKey = "0ueqhIfdAZyw5lWlBVSLpAxTtx37RY";
private static String secretAccessKey = "eber38QGHZixTQ6bFfrd80kbg67jIP";
// @Value("${aliyun.oss.endpoint}")
private static String endPoint = "oss-cn-beijing.aliyuncs.com";
......
This diff could not be displayed because it is too large.
package com.subsidy.util;
import com.subsidy.common.exception.HttpException;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static org.quartz.DateBuilder.futureDate;
@Component
public class QuartzUtil {
@Autowired
private Scheduler scheduler;
public static void main(String[] args) {
System.out.println(DateFormatUtil.parse("2022-06-28 11:30:47", "yyyy-MM-dd HH:mm:ss").getTime() -System.currentTimeMillis());
}
/**
* 添加定时任务,只执行一次的定时任务
*
* @param cls 执行类
* @param date 时间
* @param params 参数
* @param name 定时器名称
* @param group 定时器组名
*/
public void addSimpleJob(Class cls, Date date, Map<String, Object> params, String name, String group) {
try {
JobKey key = new JobKey(name, group);
List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(key);
if (triggers.size() == 0) {
Long time = (date.getTime() - System.currentTimeMillis()) / 1000;
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("params", params);
JobDetail jobDetail = JobBuilder.newJob(cls)
.withIdentity(name, group)
.usingJobData(jobDataMap)
.build();
SimpleTrigger trigger = (SimpleTrigger) TriggerBuilder.newTrigger()
.withIdentity(name, group)
.startAt(futureDate(Math.toIntExact(time), DateBuilder.IntervalUnit.SECOND))
.build();
scheduler.scheduleJob(jobDetail, trigger);
if (!scheduler.isShutdown()) {
scheduler.start();
}
}
} catch (Exception e) {
e.printStackTrace();
throw new HttpException(70002);
}
}
/**
* 添加定时任务,循环不断执行的定时任务
*
* @param cls 执行类
* @param cron cron 表达式
* @param params 参数
* @param name 定时器名称
* @param group 定时器组名
*/
public void addCronJob(Class cls, String cron, Map<String, Object> params, String name, String group) {
try {
JobKey key = new JobKey(name, group);
List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(key);
if (triggers.size() == 0) {
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("params", params);
JobDetail jobDetail = JobBuilder.newJob(cls)
.withIdentity(name, group)
.usingJobData(jobDataMap)
.build();
CronTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity(name, group)
.withSchedule(CronScheduleBuilder.cronSchedule(cron))
.build();
scheduler.scheduleJob(jobDetail, trigger);
if (!scheduler.isShutdown()) {
scheduler.start();
}
}
} catch (Exception e) {
throw new HttpException(70002);
}
}
/**
* 删除定时器
*
* @param name 定时器名称
* @param group 定时器组名
*/
public void deleteJob(String name, String group) {
try {
JobKey key = new JobKey(name, group);
List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(key);
if (triggers.size() > 0) {
TriggerKey triggerKey = TriggerKey.triggerKey(name, group);
scheduler.pauseTrigger(triggerKey);
scheduler.unscheduleJob(triggerKey);
scheduler.deleteJob(JobKey.jobKey(name, group));
}
} catch (Exception e) {
throw new HttpException(70003);
}
}
}
\ No newline at end of file
......@@ -197,4 +197,5 @@ public class SMSUtils {
}
}
......@@ -58,6 +58,7 @@ public class VodUtil {
processMediaRequest.setFileId(vodCode);
return client.ProcessMedia(processMediaRequest);
} catch (Exception ex) {
ex.printStackTrace();
throw new HttpException(50001);
}
}
......
......@@ -56,7 +56,7 @@ public class ExcelUtil {
* @param <T>
* @return
*/
public static <T> List<T> readExcel(String path, Class<T> cls, MultipartFile file) {
public static <T> List<T> readExcel(Class<T> cls, MultipartFile file) {
String fileName = file.getOriginalFilename();
if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
log.info("上传文件格式不正确");
......
package com.subsidy.vo;
import lombok.Data;
@Data
public class ExcelFieldVO {
private String field;
private String name;
}
package com.subsidy.vo.college;
import lombok.Data;
@Data
public class GetCollegeInfoVO {
private Long id;
private String name;
private String code;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class AllGroupItemsVO {
private Long id;
private String projectName;
private String college;
private String groupName;
private String name;
}
package com.subsidy.vo.group;
import com.subsidy.model.DrawLotGroupDictDO;
import lombok.Data;
import java.util.List;
@Data
public class AllGroupsVO extends DrawLotGroupDictDO {
private List<GroupJudgesVO> leader;
private List<GroupJudgesVO> member;
}
package com.subsidy.vo.group;
import com.subsidy.model.DrawLotsScenesDO;
import lombok.Data;
@Data
public class AllMatchScenesVO extends DrawLotsScenesDO {
/**
* 小组项目数量
*/
private Integer projectCnt;
private Integer groupCnt;
private Integer judgeCnt;
private Integer rankCnt;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class CollegeProjectsVO {
private Long id;
private String projectName;
private String college;
private String userName;
// private String projectProgress;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class GroupJudgeScoresVO {
private Long id;
private String username;
private String expectorType;
private String roleType;
private String score;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class GroupJudgesVO {
private Long id;
private String expectorType;
private String username;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class GroupNumsVO {
private Long id;
private String userName;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class GroupRankVO {
private Long id;
private String projectName;
private String college;
private String groupName;
private Integer groupNum;
private String totalScore;
private String userName;
}
package com.subsidy.vo.group;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
import java.util.List;
@Data
public class GroupScoresVO {
private Long id;
@ExcelColumn(value = "课程名称", col = 1)
private String projectName;
@ExcelColumn(value = "所属院校", col = 2)
private String college;
private Long groupId;
private String groupNum;
@ExcelColumn(value = "负责人", col = 3)
private String leader;
@ExcelColumn(value = "赛组", col = 4)
private String groupName;
private String projectTrack;
@ExcelColumn(value = "平均分", col = 5)
private String totalScore;
@ExcelColumn(value = "评分明细", col = 6)
private String detail;
private List<GroupJudgeScoresVO> groupJudgeScoresVOS;
}
package com.subsidy.vo.group;
import lombok.Data;
import java.util.List;
@Data
public class JudgeScoreScreenVO {
private String userName;
private String groupName;
private Integer groupNum;
private String totalScore;
private List<ScoreScreenVO> scoreScreenVOS;
}
package com.subsidy.vo.group;
import com.subsidy.model.DrawLotGroupDictDO;
import lombok.Data;
import java.util.List;
@Data
public class MatchJudgesVO {
private Long id;
private String username;
private String telephone;
private String unit;
private String position;
private String accountName;
private String password;
private List<DrawLotGroupDictDO> groupDictDOS;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class QueryItemsVO {
private Long id;
private String groupName;
private Integer groupNum;
private String projectName;
private String submitStatus;
private String score;
private String college;
private String userName;
private String vodUrl;
private String supportFile;
private String attachment;
private String projectTrack;
}
package com.subsidy.vo.group;
import lombok.Data;
import java.util.List;
@Data
public class SceneGroupsVO {
private Long groupId;
private String groupName;
private List<GroupNumsVO > groupNums;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class ScoreScreenVO {
private Long judgeId;
private String score;
private String submitStatus;
}
package com.subsidy.vo.group;
import lombok.Data;
@Data
public class SelectJudgesVO {
private Long id;
private String username;
private String unit;
private String position;
private String telephone;
}
package com.subsidy.vo.judge;
import lombok.Data;
@Data
public class JudgeInfoVO {
private Long id;
private String username;
// private String telephone;
private String accountName;
private String position;
private String unit;
private String token;
}
package com.subsidy.vo.judge;
import com.subsidy.model.ProjectJudgeDO;
import lombok.Data;
@Data
public class ProjectJudgePageVO extends ProjectJudgeDO {
private Long id;
/**
* 分配数量
*/
private Integer assignedQuantity;
/**
* 待评审数量
*/
private Integer notReviewedNum;
}
package com.subsidy.vo.judge;
import lombok.Data;
@Data
public class ProjectReviewVO {
private String judgesName;
private Double score;
}
package com.subsidy.vo.match;
import lombok.Data;
@Data
public class MatchDictVO {
private Long id;
private String matchName;
private String matchDate;
private String startTime;
private String endTime;
private Integer status;
// private List<MatchScheduleDO> schedule;
}
......@@ -25,6 +25,8 @@ public class OneProjectVO extends ProjectDO {
*/
private String nationality;
private String selectTime;
/**
* 学历
*/
......@@ -35,6 +37,8 @@ public class OneProjectVO extends ProjectDO {
*/
private Long collegeId;
private String college;
/**
* 专业
*/
......@@ -60,4 +64,12 @@ public class OneProjectVO extends ProjectDO {
*/
private String telephone;
private String backgrouds;
private String analysis;
private String consultProcess;
private String caseReflect;
}
package com.subsidy.vo.project;
import lombok.Data;
@Data
public class ProjectAssignNumVO {
/**
* 中职复赛项目数量
*/
private Long vocRematchNum;
/**
* 中职决赛项目数量
*/
private Long vocFinalNum;
/**
* 高职复赛项目数量
*/
private Long secRematchNum;
/**
* 高职决赛项目数量
*/
private Long secFinalNum;
/**
* 高职初赛项目数量
*/
private Long secPreliminaryNUm;
/**
* 已分配
*/
private Long assignNum;
/**
* 未分配
*/
private Long unassignedNum;
}
package com.subsidy.vo.project;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
@Data
public class ProjectJudgeVO {
@ExcelColumn(col = 1, value = "届数")
private String matchName;
@ExcelColumn(col = 2, value = "负责人")
private String leader;
@ExcelColumn(col = 3, value = "课程名称")
private String projectName;
@ExcelColumn(col = 4, value = "赛道")
private String projectTrack;
@ExcelColumn(col = 5, value = "组别")
private String projectGroup;
@ExcelColumn(col = 6, value = "院校")
private String college;
@ExcelColumn(col = 7, value = "阶段")
private String projectSchedule;
}
package com.subsidy.vo.project;
import com.subsidy.dto.project.MentorDTO;
import com.subsidy.dto.project.TeamMemberDTO;
import lombok.Data;
import java.util.List;
@Data
public class ProjectMemberVO {
private Long id;
/**
* 姓名
*/
private String name;
/**
* 就读学校
*/
private String school;
/**
* 年级
*/
private String grade;
/**
* 就读专业
*/
private String major;
private String idCard;
/**
* 性别
*/
private String sex;
/**
* 学籍号
*/
private String studentNo;
private String telephone;
private String email;
/**
* 团队成员
*/
private List<TeamMemberDTO> teamMember;
/**
* 指导老师
*/
private List<MentorDTO> mentor;
private Integer editStatus;
private String fiveYears;
}
package com.subsidy.vo.project;
import com.subsidy.model.ProjectDO;
import lombok.Data;
@Data
public class ProjectPageVO extends ProjectDO {
private String matchName;
private String itemField;
private String projectGroup;
private String college;
private String userName;
private String education;
private String years;
private String title;
private String major;
private String position;
private String telephone;
private String reviewOpinion;
private Double reviewScore;
private String projectProgress;
private String projectSchedule;
private String projectStatus;
private Integer status;
private String reviewStatus;
private String reviewResult;
}
package com.subsidy.vo.project;
import com.subsidy.model.ProjectDO;
import lombok.Data;
@Data
public class ReviewListVO extends ProjectDO {
private Long id;
private Long teacherId;
private String courseName;
private String college;
private String telephone;
private String education;
private String userName;
private String years;
private String major;
private String title;
private String position;
private String reviewResult;
private String applicationTime;
}
package com.subsidy.vo.project;
import com.subsidy.model.ProjectDO;
import com.subsidy.vo.review.FinalsReviewVO;
import com.subsidy.vo.review.ReMatchReviewVO;
import lombok.Data;
import java.util.List;
@Data
public class SeedTrackProjectDetailVO extends ProjectDO {
private Long id;
/**
* 申请人ID
*/
private Long proposerId;
/**
* 所属领域
*/
private String itemField;
/**
* 项目LOGO
*/
private String logoUri;
/**
* 项目名称
*/
private String projectName;
/**
* 组别
*/
private String projectGroup;
/**
* 赛事年份
*/
private Long matchId;
/**
* 申报项目时所在院校
*/
private String college;
private Long teacherId;
private String courseName;
private String telephone;
private String education;
private String userName;
private String years;
private String major;
private String title;
private String position;
/**
* 类别
*/
private String classification;
/**
* 所在地址
*/
private String address;
/**
* 项目概述
*/
private String projectIntro;
/**
* 设计背景
*/
private String projectCreativity;
/**
* 科学设计
*/
private String scientificPrinciple;
/**
* 应用前景
*/
private String applicationProspect;
/**
* 路演形式
*/
private String roadShowForm;
/**
* 创意实施或实验所受条件的限制
*/
private String restriction;
/**
* 国家级重大、重点科研项目的科研成果转化项目
*/
private String projectTransform;
/**
* 学校科技成果转化
*/
private String resultTransfer;
/**
* 参赛申报人为科技成果的完成人或所有人
*/
private String competitionOwner;
/**
* 参赛申报人为科技成果的第一完成人或所有人
*/
private String competitionFirst;
/**
* 师生共创
*/
private String bothInvention;
/**
* 项目进展
*/
private String projectProgress;
/**
* 项目阶段
*/
private String projectStage;
/**
* 公司名称
*/
private String companyName;
/**
* 法人身份
*/
private String legalPersonStatus;
/**
* 法人姓名
*/
private String legalPersonName;
/**
* 注册资金
*/
private String registerFund;
/**
* 注册时间
*/
private String registerDate;
/**
* 注册省份
*/
private String registerProvince;
/**
* 注册地址
*/
private String registerAddress;
/**
* 统一社会信用代码
*/
private String unifyCode;
/**
* 财务报表
*/
private String financialStatement;
/**
* 隐私设置
*/
private String privacySetting;
/**
* 项目状态
*/
private String projectStatus;
/**
* 项目进度
*/
private String projectSchedule;
/**
* 项目类型
*/
private String projectType;
/**
* 上传加盖公章的附件
*/
private String printAttachment;
/**
* 上传加盖公章的附件类型
*/
private String printAttachmentType;
/**
* 上传加盖公章的附件名称
*/
private String printAttachmentName;
/**
* 项目是否获得投资
*/
private String investment;
/**
* 项目PPT
*/
private String projectPptUrl;
/**
* 项目PPT类型
*/
private String projectPptType;
/**
* 项目PPT名称
*/
private String projectPptName;
private String email;
private String reviewStatus;
private Double reviewScore;
private String reviewOpinion;
// /**
// * 项目材料
// */
// private List<ProjectMaterialsDO> materials;
/**
* 复赛评分
*/
private List<ReMatchReviewVO> rematch;
/**
* 决赛评分
*/
private List<FinalsReviewVO> finals;
// /**
// * 股权结构
// */
// private List<ProjectOwnershipStructureDO> ownership;
//
// /**
// * 专利
// */
// private List<ProjectPatentDO> patent;
//
// /**
// * 论文
// */
// private List<ProjectPaperDO> paper;
//
// /**
// * 奖项
// */
// private List<ProjectAwardDO> award;
//
// /**
// * 软件著作权
// */
// private List<ProjectCopyrightDO> copyright;
//
// /**
// * 作品著作
// */
// private List<ProjectWorksDO> works;
//
// /**
// * 商标
// */
// private List<ProjectTrademarkDO> trademark;
private String vodUrl;
private String backgrouds;
private String analysis;
private String consultProcess;
private String caseReflect;
}
package com.subsidy.vo.project;
import lombok.Data;
@Data
public class VocationalReviewNumVO {
/**
* 高职复赛项目数量
*/
private Long secRematchNum;
/**
* 高职决赛项目数量
*/
private Long secFinalNum;
/**
* 高职初赛项目数量
*/
private Long secPreliminaryNUm;
private Long review;
private Long notReview;
}
package com.subsidy.vo.projectReviewPeriod;
import lombok.Data;
@Data
public class ProjectReviewPeriodVO {
private Long id;
private String startTime;
private String endTime;
}
package com.subsidy.vo.review;
import lombok.Data;
@Data
public class FinalsReviewVO {
private Long id;
/**
* 评审分数
*/
private Double finalsScore;
/**
* 评委名字
*/
private String finalsJudgeName;
/**
* 评审时间
*/
private String finalsTime;
}
package com.subsidy.vo.review;
import lombok.Data;
@Data
public class ReMatchReviewVO {
private Long id;
/**
* 评审分数
*/
private Double rematchScore;
/**
* 评委名字
*/
private String rematchJudgeName;
/**
* 评审时间
*/
private String rematchTime;
}
package com.subsidy.vo.review;
import lombok.Data;
@Data
public class SchoolReviewVO {
private Long id;
/**
* 评审分数
*/
private Double schoolScore;
/**
* 评审意见
*/
private String schoolOpinion;
/**
* 评审结果
*/
private String schoolResult;
/**
* 评审时间
*/
private String schoolTime;
}
package com.subsidy.vo.review;
import lombok.Data;
import java.util.List;
@Data
public class SendNoticeVO {
private List<Long> id;
private Long matchId;
}
package com.subsidy.vo.timetable;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
@Data
public class QueryTablesDetailVO {
private Long id;
@ExcelColumn(value = "预约时间", col = 1)
private String selectTime;
@ExcelColumn(value = "课程名称", col = 2)
private String courseName;
@ExcelColumn(value = "院校名称", col = 3)
private String name;
@ExcelColumn(value = "申报教师", col = 4)
private String userName;
@ExcelColumn(value = "手机号", col = 5)
private String telephone;
@ExcelColumn(value = "申报时间", col = 6)
private String createDate;
}
......@@ -2,21 +2,21 @@
spring.server.port=23504
# 数据源配置
#spring.datasource.url=jdbc:mysql://116.62.57.92:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
##spring.datasource.url=jdbc:mysql://rm-uf6rab73w0qg843opxo.mysql.rds.aliyuncs.com:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
##spring.datasource.username=ykadmin_new
##spring.datasource.password=youkedb608@good
#spring.datasource.username=devloper
#spring.datasource.password=dev@1553$
# 数据源配置
spring.datasource.url=jdbc:mysql://139.224.253.21:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.url=jdbc:mysql://116.62.57.92:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#spring.datasource.url=jdbc:mysql://rm-uf6rab73w0qg843opxo.mysql.rds.aliyuncs.com:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=ykhladmin302
#spring.datasource.username=ykadmin_new
#spring.datasource.password=youkedb608@good
spring.datasource.username=devloper
spring.datasource.password=dev@1553$
## 数据源配置
#spring.datasource.url=jdbc:mysql://139.224.253.21:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.username=root
#spring.datasource.password=ykhladmin302
spring.datasource.druid.initialSize=10
spring.datasource.druid.minIdle=10
......
......@@ -8,6 +8,15 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=ecnutrack10269!&
#spring.datasource.url=jdbc:mysql://116.62.57.92:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
##spring.datasource.url=jdbc:mysql://rm-uf6rab73w0qg843opxo.mysql.rds.aliyuncs.com:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
##spring.datasource.username=ykadmin_new
##spring.datasource.password=youkedb608@good
#spring.datasource.username=devloper
#spring.datasource.password=dev@1553$
spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=20
......
spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_
spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.org.quartz.threadPool.threadCount=100
spring.quartz.properties.org.quartz.threadPool.threadPriority=5
spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
spring.quartz.properties.org.quartz.dataSource.myDS.discardIdleConnectionsSeconds=60
spring.quartz.properties.org.quartz.dataSource.myDS.validationQuery=SELECT 1 FROM DUAL
# 本地环境配置
spring.server.port=23504
# 数据源配置
spring.datasource.url=jdbc:mysql://116.62.57.92:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#spring.datasource.url=jdbc:mysql://rm-uf6rab73w0qg843opxo.mysql.rds.aliyuncs.com:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.username=ykadmin_new
#spring.datasource.password=youkedb608@good
spring.datasource.username=devloper
spring.datasource.password=dev@1553$
## 数据源配置
#spring.datasource.url=jdbc:mysql://139.224.253.21:3306/ecnutrack?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.username=root
#spring.datasource.password=ykhladmin302
spring.datasource.druid.initialSize=10
spring.datasource.druid.minIdle=10
spring.datasource.druid.maxActive=200
spring.datasource.druid.maxWait=60000
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.poolPreparedStatements=true
spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.druid.useGlobalDataSourceStat=true
# 控制台日志打印
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#spring.redis.host=r-uf6meywj6ysuehg148pd.redis.rds.aliyuncs.com
#spring.redis.password=r-uf6meywj6ysuehg148:Ykhl@208
#spring.redis.port=6379
#spring.redis.lettuce.pool.max-idle=16
#spring.redis.lettuce.pool.max-active=32
#spring.redis.lettuce.pool.min-idle=8
#spring.application.name=spring-boot-mongodb
## mongodb
##spring.data.mongodb.uri=mongodb://47.97.19.66:27017/subsidy
#spring.data.mongodb.username=root
#spring.data.mongodb.password=123456
##spring.data.mongodb.authentication-database=subsidy
#spring.data.mongodb.database=subsidy
#spring.data.mongodb.host=47.97.19.66
#spring.data.mongodb.port=27017
spring.redis.host=47.97.19.66
spring.redis.password=Ykhl@208
spring.redis.port=6389
spring.redis.lettuce.pool.max-idle=16
spring.redis.lettuce.pool.max-active=32
spring.redis.lettuce.pool.min-idle=8
qxueyou.appId=qxywz5nnWMI77CM3Tx
qxueyou.securityKey=626737T1-65K0-5xC2-0Y0V-2Aq95qxy
qxueyou.url=https://dev.qxueyou.com/auth/user/token
renshe.url = https://test.shzypxy.com
renshe.secretKey = ad927f0b-6a39-43a7-bac7-163baef1fff7
renshe.putuo = http://180.167.195.117:18015/ddproject
#微信公众号
wechat.appId=wx9e107b8f68c91a0c
wechat.appSecret=d772631f098ef7b597293c22899671e0
wechat.msgUrl=t.youkehulian.cn
wechat.templateId=GzQw2jCqpDMviTRR4vpqBSQXti2GtO0LHeWiLCvxN9U
\ No newline at end of file
# 环境配置 顶岗实习
spring.profiles.active=dev
# 环境配置
spring.profiles.active=prod
#和CPU数
spring.server.acceptorThreadCount=600
spring.server.minSpareThreads=100
......@@ -42,8 +42,8 @@ spring.cache.ehcache.config=classpath:ehcache.xml
# 阿里云短信
sms.product=Dysmsapi
sms.domain=dysmsapi.aliyuncs.com
sms.accessKeyId=LTAI5tPAH7P7WQVeowo517BE
sms.accessKeySecret=0ueqhIfdAZyw5lWlBVSLpAxTtx37RY
sms.accessKeyId=LTAI5tLUBG4B6QxhHrhddc7p
sms.accessKeySecret=eber38QGHZixTQ6bFfrd80kbg67jIP
#wechat.app-id=wx7785293ff5e31f14
#wechat.app-secret=25d57cad61fc1b45b3afa46d4c35e8f6
#wechat.agentId=1000008
......@@ -53,28 +53,6 @@ vod.secretKey=vjHYRmrfDbw0rWxA7oFcj7F8lDPKCm8E
vod.api=vod.tencentcloudapi.com
vod.region=ap-shanghai
vod.classId=848920
# quartz
# 数据持久化方式
spring.quartz.job-store-type=jdbc
# 初始化后是否自动启动计划程序
spring.quartz.auto-startup=true
# 初始化完成后启动计划程序的延迟时间
spring.quartz.startup-delay=10s
# 配置的作业是否应覆盖现有的作业定义
spring.quartz.overwrite-existing-jobs=false
# 自动建表,如果已经存在表请勿使用,会覆盖数据表
#spring.quartz.jdbc.initialize-schema=always
#spring.datasource.initialization-mode=embedded
#spring.redis.host=r-uf6m4cpkjrgpzywjm3pd.redis.rds.aliyuncs.com
#spring.redis.port=6379
#spring.redis.password=r-uf6m4cpkjrgpzywjm3:Ykhl@208
#保利威视
polyv.userId=b8f2d3bfdc
polyv.appId=g3lrxnzd75
polyv.appSecret=ef9cdcbbb9184b61aca301ba8114d570
polyv.secretKey=03sqxr97fo
subsidy.appId=qxywz5nnWMI7ABCS
subsidy.securityKey=626737T1-65K0-5xC2-0Y0V-2Aq9QUAJ
......
......@@ -4,6 +4,7 @@ meishu.code-message[1010]=无效的令牌
meishu.code-message[1011]=当前账户已在其他设备登录
meishu.code-message[1012]=你已掉线,请重新登录
meishu.code-message[10002]=该用户已存在
meishu.code-message[10003]=该用户已存在,请直接登录
meishu.code-message[10004]=验证码输入错误
meishu.code-message[10005]=该用户未注册,请先注册
......@@ -21,6 +22,9 @@ meishu.code-message[10021]=验证码不正确
meishu.code-message[10022]=输入的手机号和接收验证码手机号不一致
meishu.code-message[10023]=该身份证号已注册
meishu.code-message[10024]=手机号未注册
meishu.code-message[10026]=该账户已冻结
meishu.code-message[10027]=密码不正确
meishu.code-message[10028]=账号不存在
# 项目
meishu.code-message[10040]=项目已申请
meishu.code-message[10041]=项目负责人已存在
......@@ -69,3 +73,6 @@ meishu.code-message[10029]=最多只能添加9位观摩人员
meishu.code-message[10030]=车牌号已存在
meishu.code-message[10031]=不在申报时间范围内
meishu.code-message[10032]=项目已淘汰
meishu.code-message[10033]=该项目没预约时间,无法修改
meishu.code-message[10034]=该时间段已被占用,请选择其他时间
meishu.code-message[10035]=该时间内已有项目,无法删除
\ No newline at end of file
......@@ -11,12 +11,12 @@
<result column="role" property="role" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="delete_time" property="deleteTime" />
<result column="delete_date" property="deleteTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, telephone, username, avatar, role, create_time, update_time, delete_time
id, telephone, username, avatar, role, create_time, update_time, delete_date
</sql>
</mapper>
......@@ -16,4 +16,18 @@
order by p.id
</select>
<select id="getCollegeInfo" resultType="com.subsidy.vo.college.GetCollegeInfoVO">
SELECT
t.id,
t.NAME,
t.CODE
FROM
colleges_dict t
WHERE
t.delete_date IS NULL
<if test="name != null and name != ''">
AND t.`name` LIKE concat('%',#{name} ,'%')
</if>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DrawLotGroupDictMapper">
<select id="groupJudges" resultType="com.subsidy.vo.group.GroupJudgesVO">
SELECT
t2.id,
t.expector_type,
t2.username
FROM
draw_lots_group_judges t
LEFT JOIN project_judge t2 ON t.judge_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
<if test="roleType != null and roleType != ''">
AND t.role_type = #{roleType}
</if>
and t.group_id = #{groupId}
</select>
<select id="groupNums" resultType="com.subsidy.vo.group.GroupNumsVO">
SELECT
t2.id,
t3.user_name
FROM
draw_lots_group_items t
left join project t2 on t.project_id = t2.id
left join teacher t3 on t2.teacher_id = t3.id
WHERE
t.delete_date IS NULL
AND t.group_id = #{groupId}
order by t.order_no
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DrawLotsGroupItemsMapper">
<select id="allGroupItems" resultType="com.subsidy.vo.group.AllGroupItemsVO">
SELECT
t2.id,
t2.course_name project_name,
t5.name college,
t4.group_name,
t3.user_name `name`
FROM
draw_lots_group_items t
LEFT JOIN project t2 ON t.project_id = t2.id
LEFT JOIN teacher t3 ON t2.teacher_id = t3.id
left join draw_lot_group_dict t4 on t.group_id = t4.id
left join colleges_dict t5 on t2.college_id = t5.id
WHERE
t.delete_date IS NULL
<if test="projectName != null and projectName != ''">
AND (t2.course_name LIKE concat('%', #{projectName}, '%')
OR t5.name LIKE concat('%', #{projectName}, '%'))
</if>
<if test="college != null and college != ''">
and t5.name = #{college}
</if>
<if test="groupId != null">
and t.group_id =#{groupId}
</if>
order by t.order_no
</select>
<select id="collegeProjects" resultType="com.subsidy.vo.group.CollegeProjectsVO">
SELECT
t2.id,
t2.course_name project_name,
t4.name college,
t5.user_name
FROM
project t2
left join colleges_dict t4 on t2.college_id = t4.id
left join teacher t5 on t2.teacher_id = t5.id
WHERE
t2.delete_date IS NULL
and t2.match_id = #{matchId}
<if test="college != null and college != ''">
AND (t4.name LIKE concat('%', #{college}, '%') or t2.course_name LIKE concat('%', #{college}, '%') )
</if>
and t2.project_schedule not in ('报名阶段','校内报名')
<if test="projectSchedule != null and projectSchedule != ''">
and t2.project_schedule = #{projectSchedule}
</if>
AND t2.id not in (select project_id from draw_lots_group_items t where t.delete_date is null and t.group_id != #{groupId})
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DrawLotsGroupJudgesMapper">
<update id="clearGroup">
update draw_lots_group_judges set group_id = null where judge_id = #{judgeId}
</update>
<update id="setGroup">
update draw_lots_group_judges set group_id = #{groupId} where judge_id = #{judgeId}
</update>
<select id="matchJudges" resultType="com.subsidy.vo.group.MatchJudgesVO">
SELECT
t2.id,
t2.username,
t2.account_name,
t2.`password`,
t2.unit,
t2.position
FROM
project_judge t2
WHERE
t2.delete_date IS NULL
<if test="userName != null and userName != ''">
and (t2.username like concat('%', #{userName}, '%') or t2.telephone like concat('%', #{userName}, '%') )
</if>
</select>
<select id="selectJudges" resultType="com.subsidy.vo.group.SelectJudgesVO">
SELECT
t2.id,
t2.username,
t2.unit,
t2.position,
t2.telephone
FROM
project_judge t2
WHERE
t2.delete_date IS NULL
<if test="userName != null and userName != ''">
and (t2.username like concat('%', #{userName}, '%') or t2.telephone like concat('%', #{userName}, '%') )
</if>
and t2.id not in (
select judge_id from
draw_lots_group_judges t
where t.delete_date is null
AND t.scene_id = #{sceneId}
)
</select>
<select id="judgeScoreScreen" resultType="com.subsidy.vo.group.ScoreScreenVO">
SELECT
t.judge_id,
t2.score,
t2.submit_status
FROM
draw_lots_group_judges t
LEFT JOIN (
SELECT
t.judge_id,
t.score,
t.submit_status
FROM
draw_lots_scores t
LEFT JOIN draw_lots_group_items t2 ON t.group_id = t2.group_id
AND t.project_id = t2.project_id
LEFT JOIN draw_lot_group_dict t3 ON t.group_id = t3.id
WHERE
t.delete_date IS NULL
and t2.delete_date is null
AND t.group_id = #{groupId}
AND t2.project_id = #{groupNum}
and t.submit_status in ('已提交','弃权')
ORDER BY
t2.group_num
) t2 ON t.judge_id = t2.judge_id
WHERE
t.delete_date IS NULL
AND t.group_id = #{groupId}
</select>
<select id="judgeScenes" resultType="com.subsidy.model.DrawLotsScenesDO">
SELECT
distinct t2.*
FROM
draw_lots_group_judges t
LEFT JOIN draw_lots_scenes t2 ON t.scene_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
and t2.id is not null
AND t.judge_id = #{judgeId}
</select>
<select id="judgeGroups" resultType="com.subsidy.model.DrawLotGroupDictDO">
SELECT
t2.*
FROM
draw_lots_group_judges t
LEFT JOIN draw_lot_group_dict t2 ON t.group_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
and t2.id is not null
AND t.judge_id = #{judgeId}
and t.scene_id = #{sceneId}
</select>
<select id="judgeCnt" resultType="java.lang.Integer">
SELECT
count(
DISTINCT ( t.judge_id ))
FROM
draw_lots_group_judges t
WHERE
t.scene_id = #{sceneId}
AND t.delete_date IS NULL
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DrawLotsJudgeNumMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.DrawLotsJudgeNumDO">
<id column="id" property="id" />
<result column="group_id" property="groupId" />
<result column="group_num" property="groupNum" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="delete_date" property="deleteTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, group_id, group_num, create_time, update_time, delete_date
</sql>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DrawLotsScenesMapper">
<select id="allMatchScenes" resultType="com.subsidy.vo.group.AllMatchScenesVO">
SELECT
*
FROM
draw_lots_scenes t
WHERE
t.delete_date IS NULL
AND t.match_id = #{matchId}
<if test="openStatus != null and openStatus != ''">
AND t.open_status = #{openStatus}
</if>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DrawLotsScoresMapper">
<select id="groupScores" resultType="com.subsidy.vo.group.GroupScoresVO">
SELECT
t2.id,
t2.course_name project_name,
t4.name college,
t3.id as groupId,
t.group_num,
t3.group_name,
t2.project_track
FROM
draw_lots_group_items t
LEFT JOIN project t2 ON t.project_id = t2.id
left join draw_lot_group_dict t3 on t.group_id = t3.id
left join colleges_dict t4 on t2.college_id = t4.id
WHERE
t.delete_date IS NULL
<if test="projectName != null and projectName != ''">
AND t2.course_name like concat('%', #{projectName}, '%')
</if>
and t3.scene_id = #{sceneId}
<if test="groupId != null and groupId != ''">
and t.group_id = #{groupId}
</if>
order by t3.id,t.order_no
</select>
<select id="groupJudgeScores" resultType="com.subsidy.vo.group.GroupJudgeScoresVO">
SELECT
t2.id,
t2.username,
t3.expector_type,
t3.role_type,
t.score
FROM
draw_lots_scores t
LEFT JOIN project_judge t2 ON t.judge_id = t2.id
LEFT JOIN draw_lots_group_judges t3 ON t.scene_id = t3.scene_id
AND t.judge_id = t3.judge_id and t.group_id = t3.group_id
WHERE
t.delete_date IS NULL
and t2.delete_date is null
and t3.delete_date is null
and t.submit_status in ('已提交','弃权')
and t.group_id = #{groupId}
and t.project_id = #{projectId}
</select>
<select id="queryItems" resultType="com.subsidy.vo.group.QueryItemsVO">
SELECT
t4.id,
t2.group_name,
t3.group_num,
t4.course_name project_name,
t5.submit_status,
t5.score,
t6.name college,
t7.user_name,
t4.vod_url,
t4.support_file,
t4.project_track,
t4.attachment
FROM
draw_lots_group_judges t
LEFT JOIN draw_lot_group_dict t2 ON t.group_id = t2.id
LEFT JOIN draw_lots_group_items t3 ON t.group_id = t3.group_id
LEFT JOIN project t4 ON t3.project_id = t4.id
LEFT JOIN draw_lots_scores t5 ON t.judge_id = t5.judge_id
AND t.group_id = t5.group_id and t3.project_id = t5.project_id
left join colleges_dict t6 on t4.college_id = t6.id
left join teacher t7 on t4.teacher_id = t7.id
WHERE
t.delete_date IS NULL
and t2.delete_date is null
and t3.delete_date is null
and t4.delete_date is null
and t.group_id = #{groupId}
and t.judge_id = #{judgeId}
order by t3.order_no
</select>
<select id="groupRank" resultType="com.subsidy.vo.group.GroupRankVO">
SELECT
t.id,
t2.course_name project_name,
t4.name college,
t3.group_name,
t.group_num,
t.total_score,
t5.user_name
FROM
draw_lots_group_items t
LEFT JOIN project t2 ON t.project_id = t2.id
LEFT JOIN draw_lot_group_dict t3 ON t.group_id = t3.id
left join colleges_dict t4 on t2.college_id = t4.id
left join teacher t5 on t2.teacher_id = t5.id
WHERE
t.delete_date IS NULL
AND t.group_id = #{groupId}
ORDER BY
t.total_score desc
</select>
</mapper>
......@@ -22,4 +22,11 @@
update match_dict t set t.status = '1' where t.id = #{id}
</update>
<select id="getSeedTrackMatchPage" resultType="com.subsidy.vo.match.MatchDictVO">
select
*
from match_dict
where delete_date is null
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ProjectConsultMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.ProjectConsultDO">
<id column="id" property="id" />
<result column="create_date" property="createDate" />
<result column="update_date" property="updateDate" />
<result column="delete_date" property="deleteDate" />
<result column="project_id" property="projectId" />
<result column="backgrouds" property="backgrouds" />
<result column="analysis" property="analysis" />
<result column="consult_process" property="consultProcess" />
<result column="case_reflect" property="caseReflect" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_date,
update_date,
delete_date,
id, project_id, backgrouds, analysis, consult_process, case_reflect
</sql>
<update id="updateConsult">
update project_consult t set t.backgrouds = #{backgrouds},t.analysis = #{analysis},t.consult_process= #{consultProcess},t.case_reflect = #{caseReflect}
where t.project_id = #{projectId}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ProjectJudgeMapper">
<select id="getProjectJudgePage" resultType="com.subsidy.vo.judge.ProjectJudgePageVO">
select
*
from project_judge
<where>
<if test="username != null and username != ''">
and username like concat('%', #{username}, '%')
</if>
<if test="status != null and status != ''">
and status = #{status}
</if>
and delete_date is null
</where>
</select>
<select id="projectJudgesAssigned" resultType="com.subsidy.vo.judge.ProjectJudgePageVO">
select
pj.*
from project_judge pj
left join project_review pr on pr.judge_id = pj.id
left join project p on p.id = pr.project_id
<where>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
<if test="projectSchedule != null and projectSchedule != ''">
and p.project_schedule = #{projectSchedule}
</if>
and p.match_id = #{matchId}
and pj.status = 1
and p.delete_date is null
and pj.delete_date is null
and pr.delete_date is null
</where>
group by pj.id
</select>
<select id="projectCount" resultType="java.lang.Integer">
SELECT
count(0)
from project_review t1
LEFT JOIN project t2 on t1.project_id = t2.id
LEFT JOIN match_dict t3 on t2.match_id = t3.id
where t1.delete_date is NULL
and t2.delete_date is NULL
and t3.delete_date is NULL
and t3.`status` = 1
and t1.judge_id = #{judgeId}
</select>
</mapper>
......@@ -60,7 +60,7 @@
AND t2.delete_date IS NULL
AND t.match_id = #{matchId}
AND t.college_id = #{collegeId}
and t.project_schedule != '校内报名'
and t.project_status != '填写中'
</select>
<select id="getList" resultType="com.subsidy.model.MatchDictDO">
......@@ -77,9 +77,9 @@
<if test="projectGroup != null and projectGroup != ''">
AND p.project_group = #{projectGroup}
</if>
AND p.delete_time IS NULL
AND s.delete_time IS NULL
AND c.delete_time IS NULL
AND p.delete_date IS NULL
AND s.delete_date IS NULL
AND c.delete_date IS NULL
</where>
GROUP BY
c.id
......@@ -175,4 +175,115 @@
and s.delete_date is null
</where>
</select>
<select id="getReviewList" resultType="com.subsidy.vo.project.ReviewListVO">
select
t.*,
DATE_FORMAT(t.create_date, '%Y-%m-%d') as applicationTime
from project t
left join teacher t2 on t.teacher_id = t2.id
left join colleges_dict t3 on t2.college_id = t3.id
<where>
<if test="matchId != null and matchId != ''">
and match_id = #{matchId}
</if>
<if test="projectStatus != null and projectStatus != ''">
and project_schedule = #{projectStatus}
</if>
<if test="projectReview != null and projectReview != ''">
and project_review = #{projectReview}
</if>
<if test="projectName != null and projectName != ''">
and (t2.user_name like concat('%', #{projectName}, '%') or t3.name like concat('%', #{projectName}, '%'))
</if>
<if test="projectGroup != null and projectGroup != ''">
and project_group = #{projectGroup}
</if>
<if test="projectAssigned != null and projectAssigned != ''">
and project_assigned = #{projectAssigned}
</if>
<if test="projectProgress != null and projectProgress != ''">
and project_progress = #{projectProgress}
</if>
<if test="projectSchedule != null and projectSchedule != ''">
and project_schedule = #{projectSchedule}
</if>
<if test="projectTrack != null and projectTrack != ''">
and project_track = #{projectTrack}
</if>
and project_schedule != '校内报名'
and t.delete_date is null
</where>
</select>
<select id="getProjectReviewList" resultType="com.subsidy.model.ProjectDO">
select
p.*,
pr.project_schedule as projectSchedule,
pr.review_status as projectReview
from project p
left join project_review pr on p.id = pr.project_id
where
p.match_id = #{matchId}
and pr.judge_id = #{id}
and p.delete_date is null
and pr.delete_date is null
<if test="projectProgress != null and projectProgress != '' ">
and p.project_progress = #{projectProgress}
</if>
</select>
<select id="getProjectReviewPage" resultType="com.subsidy.vo.project.ProjectPageVO">
select
p.*,
pr.review_status as reviewStatus,
pr.review_score as reviewScore,
pr.score as score,
pr.review_opinion
from project p
left join project_review pr on pr.project_id = p.id
left join teacher t on p.teacher_id = t.id
<where>
<if test="judgeId != null and judgeId != ''">
and pr.judge_id = #{judgeId}
</if>
<if test="matchId != null and matchId != ''">
and p.match_id = #{matchId}
</if>
<if test="projectSchedule != null and projectSchedule != ''">
and pr.project_schedule = #{projectSchedule}
</if>
<if test="projectReview != null and projectReview != ''">
and pr.review_status = #{projectReview}
</if>
<if test="projectName != null and projectName != ''">
and ( p.course_name like concat('%', #{projectName}, '%') or t.user_name like concat('%', #{projectName}, '%') )
</if>
<if test="projectGroup != null and projectGroup != ''">
and p.project_group = #{projectGroup}
</if>
<if test="projectProgress != null and projectProgress != ''">
and p.project_progress = #{projectProgress}
</if>
and p.delete_date is null
and pr.delete_date is null
</where>
</select>
<select id="clearTimeId" parameterType="long">
update project t set t.time_id = null where t.id = #{id}
</select>
<select id="projectUserName" resultType="java.lang.String">
SELECT
t2.user_name
FROM
project t
LEFT JOIN teacher t2 ON t.teacher_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t.id = #{projectId}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ProjectMaterialsMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ProjectReviewMapper">
<select id="getList" resultType="com.subsidy.vo.judge.ProjectReviewVO">
select
pj.username as judgesName,
pr.score as score
from project_review pr
left join project_judge pj on pj.id = pr.judge_id
where pr.project_id = #{projectId}
and pr.project_schedule = #{projectSchedule}
and pr.delete_date is null
and pj.delete_date is null
</select>
<select id="selectCountByMatchId" resultType="java.lang.Integer">
select
count(*)
from project_review pr
left join project p on pr.project_id = p.id
where p.match_id = #{matchId}
and pr.judge_id = #{judgeId}
and pr.delete_date is null
and p.delete_date is null
</select>
<select id="selectNotReviewCount" resultType="java.lang.Integer">
select
count(*)
from project_review pr
left join project p on pr.project_id = p.id
left join match_dict m on p.match_id = m.id
where
pr.judge_id = #{judgeId}
and pr.review_status = '已分配'
and pr.delete_date is null
and p.delete_date is null
and m.status = 1
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ProjectReviewPeriodMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.TimeTableMapper">
<select id="clearProjectId" parameterType="long">
update time_table t set t.project_id = null where t.id = #{id}
</select>
<select id="queryTablesDetail" parameterType="long" resultType="com.subsidy.vo.timetable.QueryTablesDetailVO">
SELECT
t.id,
t.select_time,
t2.course_name,
t4.`name`,
t3.user_name,
t3.telephone,
t2.create_date
FROM
time_table t
LEFT JOIN project t2 ON t.project_id = t2.id
LEFT JOIN teacher t3 ON t2.teacher_id = t3.id
LEFT JOIN colleges_dict t4 ON t2.college_id = t4.id
WHERE
t.delete_date IS NULL
and t.match_id = #{matchId}
</select>
</mapper>
......@@ -6,7 +6,7 @@ setParent=com.subsidy
# mapper.xml文件生成路径
mapperPath=/src/main/resources/mapper/
# 数据库地址
url=jdbc:mysql://139.224.253.21:3306/ecnutrack?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url=jdbc:mysql://116.62.57.92:3306/ecnutrack?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
driverName=com.mysql.cj.jdbc.Driver
userName=root
password=ykhladmin302
\ No newline at end of file
userName=devloper
password=dev@1553$
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!