diff --git a/pom.xml b/pom.xml index d300372..c2f6040 100644 --- a/pom.xml +++ b/pom.xml @@ -183,6 +183,12 @@ 4.5.13 + + + org.apache.commons + commons-compress + 1.24.0 + diff --git a/src/main/java/com/zhongzhi/common/configure/SwaggerConfig.java b/src/main/java/com/zhongzhi/common/configure/SwaggerConfig.java index 6cd020d..b9dbdb1 100644 --- a/src/main/java/com/zhongzhi/common/configure/SwaggerConfig.java +++ b/src/main/java/com/zhongzhi/common/configure/SwaggerConfig.java @@ -1,5 +1,6 @@ package com.zhongzhi.common.configure; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; @@ -21,9 +22,17 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @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.zhongzhi.controller")) diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectAssigned.java b/src/main/java/com/zhongzhi/common/constant/ProjectAssigned.java new file mode 100644 index 0000000..7b8943d --- /dev/null +++ b/src/main/java/com/zhongzhi/common/constant/ProjectAssigned.java @@ -0,0 +1,12 @@ +package com.zhongzhi.common.constant; + +import lombok.Data; + +@Data +public class ProjectAssigned { + + public static final String ASSIGN_ED = "已分配"; + + public static final String UN_ASSIGN = "未分配"; + +} diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java b/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java index 58e2ada..007fe7f 100644 --- a/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java +++ b/src/main/java/com/zhongzhi/common/constant/ProjectSchedule.java @@ -16,8 +16,6 @@ public class ProjectSchedule { // 校内赛 public static final String SCHOOL_REVIEW = "市级初赛项目"; -// public static final String PRELIMINARY_REVIEW = "市级初赛项目"; - public static final String SEMI_FINAL_REVIEW = "市级复赛项目"; public static final String FINAL_REVIEW = "市级决赛项目"; diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java b/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java index b3cd979..d515cf8 100644 --- a/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java +++ b/src/main/java/com/zhongzhi/common/constant/ProjectStatus.java @@ -10,10 +10,10 @@ package com.zhongzhi.common.constant; */ public class ProjectStatus { -// public static final String TO_REVIEW = ""; - public static final String UN_SUBMITTED = "填写中"; + public static final String TO_CHECK = "待评审"; + public static final String WITHDRAWN = "已撤回"; public static final String SCHOOL_NOT_PASSED = "不予提交市级复赛"; diff --git a/src/main/java/com/zhongzhi/common/utils/AliyunSmsUtil.java b/src/main/java/com/zhongzhi/common/utils/AliyunSmsUtil.java index 1d02343..6c7c5da 100644 --- a/src/main/java/com/zhongzhi/common/utils/AliyunSmsUtil.java +++ b/src/main/java/com/zhongzhi/common/utils/AliyunSmsUtil.java @@ -63,9 +63,9 @@ public class AliyunSmsUtil { //必填:待发送手机号 request.setPhoneNumbers(phone); //必填:短信签名-可在短信控制台中找到 - request.setSignName("双创平台"); + request.setSignName("有课互联"); //必填:短信模板-可在短信控制台中找到 - request.setTemplateCode("SMS_229640297"); + request.setTemplateCode("SMS_190945394"); //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 request.setTemplateParam("{\"code\":\"" + code + "\"}"); @@ -82,11 +82,49 @@ public class AliyunSmsUtil { } } - public static void main(String[] args) { -// AliyunSmsUtil.sendNew("15201936167",000123); + /** + * 阿里云短信 -- 验证码 + * @param phone + * @param code + * @return + */ + public SendSmsResponse sendNotice(String phone) { + 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_504780294"); +// //可选:模板中的变量替换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); + } } + + /** * 三网平台短信 * @param msg diff --git a/src/main/java/com/zhongzhi/common/utils/ZipUtils.java b/src/main/java/com/zhongzhi/common/utils/ZipUtils.java new file mode 100644 index 0000000..ce8c991 --- /dev/null +++ b/src/main/java/com/zhongzhi/common/utils/ZipUtils.java @@ -0,0 +1,170 @@ +package com.zhongzhi.common.utils; + +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.model.OSSObject; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; +import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.nio.file.Files; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ZipUtils { + + // ====================== 工具方法:打包ZIP ====================== + private static void zipPackage(String sourceDir, String zipPath) throws Exception { + try (FileOutputStream fos = new FileOutputStream(zipPath); + ZipArchiveOutputStream zos = new ZipArchiveOutputStream(fos)) { + + File root = new File(sourceDir); + compressFile(root, root.getName(), zos); + zos.finish(); + } + } + + private static void compressFile(File file, String basePath, ZipArchiveOutputStream zos) throws Exception { + if (file.isDirectory()) { + File[] files = file.listFiles(); + if (files != null) { + for (File f : files) { + compressFile(f, basePath + "/" + f.getName(), zos); + } + } + } else { + try (FileInputStream fis = new FileInputStream(file)) { + zos.putArchiveEntry(new ZipArchiveEntry(basePath)); + byte[] buffer = new byte[1024 * 1024]; + int len; + while ((len = fis.read(buffer)) != -1) { + zos.write(buffer, 0, len); + } + zos.closeArchiveEntry(); + } + } + } + + /** + * 你只需要调用这一个方法! + * + * @param studentImageMap 你本地查询好的数据: key=学生名, value=图片URL列表 + */ + public static void downloadAndZip(HashMap>> studentImageMap) { + OSS ossClient = new OSSClientBuilder().build("http://oss-cn-beijing.aliyuncs.com", "LTAI5tLUBG4B6QxhHrhddc7p", "eber38QGHZixTQ6bFfrd80kbg67jIP"); + + try { + // 1. 创建根目录 + Files.createDirectories(new File("D:/student_images_temp/").toPath()); + + // 2. 遍历学生 → 创建文件夹 → 下载所有图片 + for (Map.Entry>> entry : studentImageMap.entrySet()) { + String studentName = entry.getKey(); // 学生名 + System.out.println("学生姓名===============>" + entry); + HashMap> imageUrls = entry.getValue(); // 该学生所有图片 + + // 创建学生文件夹 + String studentFolder = "D:/student_images_temp/" + studentName + "/"; + Files.createDirectories(new File(studentFolder).toPath()); + + // 下载该学生所有图片 + List projectAttachment = imageUrls.get("projectAttachment"); + if (projectAttachment.size() > 0){ + downloadImage(studentName, ossClient, projectAttachment.get(0), studentFolder, "项目计划书"); + } + + List projectPptUrl = imageUrls.get("projectPptUrl"); + if (projectPptUrl.size() > 0){ + downloadImage(studentName, ossClient, projectPptUrl.get(0), studentFolder, "项目PPT"); + } + + List identityCertificate = imageUrls.get("identityCertificate"); + if (identityCertificate.size() > 0){ + downloadImage(studentName, ossClient, identityCertificate.get(0), studentFolder, "身份证明书"); + } + + List commitmentLetter = imageUrls.get("commitmentLetter"); + if (commitmentLetter.size() > 0){ + downloadImage(studentName, ossClient, commitmentLetter.get(0), studentFolder, "承诺书"); + } + + List participationCertificate = imageUrls.get("participationCertificate"); + if (participationCertificate.size() > 0){ + downloadImage(studentName, ossClient, participationCertificate.get(0), studentFolder, "参赛证明书"); + } + + System.out.println("✅ 学生:" + studentName + " 图片下载完成"); + } + + // 3. 打包成ZIP +// zipPackage("D:/student_images_temp/", "D:/student_images_temp/学生图片打包.zip"); +// System.out.println("\n🎉 全部完成!ZIP路径:" + new File("D:/student_images_temp/学生图片打包.zip").getAbsolutePath()); + + } catch (Exception e) { + e.printStackTrace(); + } finally { + ossClient.shutdown(); + } + } + + // ====================== 工具方法:下载单张图片 ====================== + private static void downloadImage(String studentName, OSS ossClient, String imageUrl, String studentFolder, String name) throws Exception { + // 从URL截取OSS文件路径 + String ossPath = extractOssPath(imageUrl); + // 文件名 + String fileName = studentName + "_" + name + "." + getFormat(ossPath); + // 本地保存路径 + String localPath = studentFolder + fileName; + + // 下载OSS文件 + try { + + } catch (Exception e) { + + } + try (OSSObject ossObject = ossClient.getObject("mass-entrepreneurship", ossPath); + InputStream in = ossObject.getObjectContent(); + FileOutputStream out = new FileOutputStream(localPath)) { + + byte[] buffer = new byte[1024 * 1024]; + int len; + while ((len = in.read(buffer)) != -1) { + out.write(buffer, 0, len); + } + } + } + + /** + * 【终极修复】自动清理URL,只保留OSS文件路径 + */ + private static String extractOssPath(String imageUrl) throws Exception { + // 1. 移除 ? 参数 + if (imageUrl.contains("?")) { + imageUrl = imageUrl.substring(0, imageUrl.indexOf("?")); + } + // 2. 移除协议头 + imageUrl = imageUrl.replace("https://", "").replace("http://", ""); + // 3. 移除域名部分 + String removeDomain = "mass-entrepreneurship" + "." + "oss-cn-beijing.aliyuncs.com" + "/"; + if (imageUrl.startsWith(removeDomain)) { + imageUrl = imageUrl.substring(removeDomain.length()); + } + imageUrl = java.net.URLDecoder.decode(imageUrl, "UTF-8"); + return imageUrl; + } + + + public static String getFormat(String imageUrl) { + // 获取文件后缀(不带点,直接返回 png / jpg) + String suffix = imageUrl.substring(imageUrl.lastIndexOf(".") + 1); + // 如果有?参数,再截一次 + if (suffix.contains("?")) { + suffix = suffix.substring(0, suffix.indexOf("?")); + } + return suffix; + } +} diff --git a/src/main/java/com/zhongzhi/controller/AdministerController.java b/src/main/java/com/zhongzhi/controller/AdministerController.java index d11731e..a02bcc1 100644 --- a/src/main/java/com/zhongzhi/controller/AdministerController.java +++ b/src/main/java/com/zhongzhi/controller/AdministerController.java @@ -1,12 +1,18 @@ package com.zhongzhi.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zhongzhi.common.constant.Platform; import com.zhongzhi.common.utils.LoginRequired; import com.zhongzhi.common.utils.ResponseData; import com.zhongzhi.dto.administer.AdministerPageDTO; +import com.zhongzhi.dto.administer.CreateAdministerDTO; import com.zhongzhi.dto.administer.LoginDTO; import com.zhongzhi.model.AdministerDO; +import com.zhongzhi.model.AdministerPermissionDO; +import com.zhongzhi.model.AdministerTrackMappingDO; +import com.zhongzhi.service.AdministerPermissionService; import com.zhongzhi.service.AdministerService; +import com.zhongzhi.service.AdministerTrackMappingService; import com.zhongzhi.vo.ResponseVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -16,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** *

* 中心管理账户表 前端控制器 @@ -32,6 +40,12 @@ public class AdministerController { @Autowired private AdministerService administerService; + @Autowired + private AdministerTrackMappingService administerTrackMappingService; + + @Autowired + private AdministerPermissionService administerPermissionService; + @PostMapping(value = "/login") @ApiOperation("中心端 --- 登录:手机号/telephone, code/验证码") public ResponseVO login(@RequestBody LoginDTO loginDTO) { @@ -39,33 +53,80 @@ public class AdministerController { } @PostMapping(value = "/getAdministerPage") - @LoginRequired({Platform.center}) @ApiOperation("####中心端 --- 成员管理分页查询:listItem/角色、 username/搜索名称、pageNo/当前页数、pageSize/每页显示条数") public ResponseVO getAdministerPage(@RequestBody AdministerPageDTO administerPageDTO) { return ResponseData.generateCreatedResponse(0, administerService.getAdministerPage(administerPageDTO)); } @PostMapping(value = "/createAdminister") - @LoginRequired({Platform.center}) - @ApiOperation("####中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色") - public ResponseVO createAdminister(@RequestBody AdministerDO administerDO) { - administerService.save(administerDO); + @ApiOperation("####中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids") + public ResponseVO createAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) { + administerService.save(createAdministerDTO); + List trackIds = createAdministerDTO.getTrackIds(); + + if (null != trackIds){ + for (Long id : trackIds){ + AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO(); + administerTrackMappingDO.setAdministerId(createAdministerDTO.getId()); + administerTrackMappingDO.setTrackId(id); + administerTrackMappingService.save(administerTrackMappingDO); + } + } + + List permissionIds = createAdministerDTO.getPermissionIds(); + if (null != permissionIds){ + for (Long id : permissionIds){ + AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO(); + administerPermissionDO.setAdministerId(createAdministerDTO.getId()); + administerPermissionDO.setPermissionId(id); + administerPermissionService.save(administerPermissionDO); + } + } return ResponseData.generateCreatedResponse(0); } @PostMapping(value = "/updateAdminister") - @LoginRequired({Platform.center}) - @ApiOperation("####中心端 --- 编辑成员:id/成员ID、username/名称、telephone/手机号、avatar/头像、role/角色") - public ResponseVO updateAdminister(@RequestBody AdministerDO administerDO) { - administerService.updateById(administerDO); + @ApiOperation("####中心端 --- 编辑成员:id/成员ID、username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids") + public ResponseVO updateAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) { + + administerService.updateAdminister(createAdministerDTO); + + List trackIds = createAdministerDTO.getTrackIds(); + if (null != trackIds){ + administerTrackMappingService.remove(new QueryWrapper() + .lambda() + .eq(AdministerTrackMappingDO::getAdministerId,createAdministerDTO.getId())); + for (Long id : trackIds){ + AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO(); + administerTrackMappingDO.setAdministerId(createAdministerDTO.getId()); + administerTrackMappingDO.setTrackId(id); + administerTrackMappingService.save(administerTrackMappingDO); + } + } + + List permissionIds = createAdministerDTO.getPermissionIds(); + if (null != permissionIds) { + administerPermissionService.remove(new QueryWrapper() + .lambda() + .eq(AdministerPermissionDO::getAdministerId,createAdministerDTO.getId())); + for (Long id : permissionIds){ + AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO(); + administerPermissionDO.setAdministerId(createAdministerDTO.getId()); + administerPermissionDO.setPermissionId(id); + administerPermissionService.save(administerPermissionDO); + } + } + return ResponseData.generateCreatedResponse(0); } @PostMapping(value = "/deleteById") - @LoginRequired({Platform.center}) @ApiOperation("####中心端 --- 删除成员:id/成员ID") public ResponseVO delete(@RequestBody AdministerDO administerDO) { administerService.removeById(administerDO.getId()); + administerTrackMappingService.remove(new QueryWrapper() + .lambda() + .eq(AdministerTrackMappingDO::getAdministerId,administerDO.getId())); return ResponseData.generateCreatedResponse(0); } } diff --git a/src/main/java/com/zhongzhi/controller/AdministerPermissionController.java b/src/main/java/com/zhongzhi/controller/AdministerPermissionController.java index 36ce519..cd66663 100644 --- a/src/main/java/com/zhongzhi/controller/AdministerPermissionController.java +++ b/src/main/java/com/zhongzhi/controller/AdministerPermissionController.java @@ -1,6 +1,7 @@ package com.zhongzhi.controller; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/src/main/java/com/zhongzhi/controller/AdministerTrackMappingController.java b/src/main/java/com/zhongzhi/controller/AdministerTrackMappingController.java new file mode 100644 index 0000000..32ec8c6 --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/AdministerTrackMappingController.java @@ -0,0 +1,42 @@ +package com.zhongzhi.controller; + + +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.dto.administer.AdministerTracksDTO; +import com.zhongzhi.service.AdministerTrackMappingService; +import com.zhongzhi.vo.ResponseVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + + import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** +*

+ * 赛道管理员映射表 前端控制器 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ +@RestController +@RequestMapping("/administerTrackMapping") +@Api("管理员赛道") +public class AdministerTrackMappingController { + + @Autowired + private AdministerTrackMappingService administerTrackMappingService; + + @PostMapping("administerTracks") + @ApiOperation("管理员的赛道 userId") + public ResponseVO administerTracks(@RequestBody AdministerTracksDTO administerTracksDTO){ + return ResponseData.generateCreatedResponse(0,administerTrackMappingService.administerTracks(administerTracksDTO)); + } + + +} diff --git a/src/main/java/com/zhongzhi/controller/CollegesDictController.java b/src/main/java/com/zhongzhi/controller/CollegesDictController.java index 0c6874a..62b4984 100644 --- a/src/main/java/com/zhongzhi/controller/CollegesDictController.java +++ b/src/main/java/com/zhongzhi/controller/CollegesDictController.java @@ -39,7 +39,7 @@ public class CollegesDictController { @Autowired public CollegesDictService collegesDictService; - @PostMapping(value = "/getCollegesList") + @PostMapping(value = "/getCollegesListNew") @ApiOperation("####查询所有就读院校: name/院校名称, education/学历") public ResponseVO getCollegesList(@RequestBody CollegesDictDTO collegesDictDTO) { QueryWrapper queryWrapper = new QueryWrapper(); @@ -58,6 +58,12 @@ public class CollegesDictController { return ResponseData.generateCreatedResponse(0, collegesDictService.list(queryWrapper)); } + @PostMapping("getCollegeInfo") + @ApiOperation("返回院校基本信息 name") + public ResponseVO getCollegeInfo(@RequestBody GetCollegesListDTO getCollegesListDTO){ + return ResponseData.generateCreatedResponse(0,collegesDictService.getCollegeInfo(getCollegesListDTO)); + } + @PostMapping(value = "/login") @ApiOperation("院校端 --- 登录: account/账户, password/密码") public ResponseVO login(@RequestBody LoginDTO loginDTO) { diff --git a/src/main/java/com/zhongzhi/controller/OssController.java b/src/main/java/com/zhongzhi/controller/OssController.java index bae1213..7f2bfed 100644 --- a/src/main/java/com/zhongzhi/controller/OssController.java +++ b/src/main/java/com/zhongzhi/controller/OssController.java @@ -30,10 +30,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}") @@ -48,41 +48,6 @@ public class OssController { return ResponseData.generateCreatedResponse(0, getSecretVO); } -// @PostMapping("uploadFile") -// @ApiOperation("上传文件 file") -// public ResponseVO uploadFile(@RequestParam("file") MultipartFile file) { -// // 创建OSSClient实例。 -// OSS ossClient = new OSSClientBuilder().build("http://oss-cn-shanghai.aliyuncs.com", keyId, secret); -// UploadFileVO uploadFileVO = new UploadFileVO(); -// try { -//// -//// if (env.equals("test")) { -//// env = "ykhl-bigger-test"; -//// } -//// if (env.equals("prod")) { -//// env = "ykhl-bigger"; -//// } -// -// -// // 创建PutObjectRequest对象。 -// PutObjectRequest putObjectRequest = new PutObjectRequest("zhongzhi-cms", System.currentTimeMillis() + "_" + file.getOriginalFilename(), file.getInputStream()); -// // 设置该属性可以返回response。如果不设置,则返回的response为空。 -// putObjectRequest.setProcess("true"); -// // 创建PutObject请求。 -// PutObjectResult result = ossClient.putObject(putObjectRequest); -// // 如果上传成功,则返回200。 -//// System.out.println(result.getResponse().getUri()); -// uploadFileVO.setUrl(result.getResponse().getUri()); -// } catch (Exception oe) { -// oe.printStackTrace(); -// } finally { -// if (ossClient != null) { -// ossClient.shutdown(); -// } -// } -// return ResponseData.generateCreatedResponse(0, uploadFileVO); -// } - @PostMapping("uploadFile") @ApiOperation("分片上传") public ResponseVO fenpian(@RequestParam("file") MultipartFile file) { @@ -181,6 +146,7 @@ public class OssController { // 完成分片上传。 CompleteMultipartUploadResult completeMultipartUploadResult = ossClient.completeMultipartUpload(completeMultipartUploadRequest); uploadFileVO.setUrl(completeMultipartUploadResult.getLocation().replace("http","https")); + uploadFileVO.setRequestId(completeMultipartUploadResult.getRequestId()); System.out.println(completeMultipartUploadResult.getLocation()); } catch (OSSException oe) { System.out.println("Caught an OSSException, which means your request made it to OSS, " @@ -189,11 +155,13 @@ public class OssController { System.out.println("Error Code:" + oe.getErrorCode()); System.out.println("Request ID:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); + oe.printStackTrace(); } catch (ClientException ce) { System.out.println("Caught an ClientException, which means the client encountered " + "a serious internal problem while trying to communicate with OSS, " + "such as not being able to access the network."); System.out.println("Error Message:" + ce.getMessage()); + ce.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { diff --git a/src/main/java/com/zhongzhi/controller/PermissionsController.java b/src/main/java/com/zhongzhi/controller/PermissionsController.java index 59b2ec4..bce1b9b 100644 --- a/src/main/java/com/zhongzhi/controller/PermissionsController.java +++ b/src/main/java/com/zhongzhi/controller/PermissionsController.java @@ -1,6 +1,12 @@ package com.zhongzhi.controller; +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.service.PermissionsService; +import com.zhongzhi.vo.ResponseVO; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,4 +23,14 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/permissions") public class PermissionsController { + @Autowired + private PermissionsService permissionsService; + + @PostMapping("allPermissions") + @ApiOperation("所有权限") + public ResponseVO allPermissions(){ + return ResponseData.generateCreatedResponse(0,permissionsService.allPermissions()); + } + + } diff --git a/src/main/java/com/zhongzhi/controller/ProjectController.java b/src/main/java/com/zhongzhi/controller/ProjectController.java index d5c0bda..0a11bde 100644 --- a/src/main/java/com/zhongzhi/controller/ProjectController.java +++ b/src/main/java/com/zhongzhi/controller/ProjectController.java @@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; + /** *

* 项目表 前端控制器 @@ -350,7 +352,6 @@ public class ProjectController { projectService.exportProjectAllProgress(projectCollegeListDTO); } - @PostMapping(value = "/getExportProjectField") @LoginRequired({Platform.center}) @ApiOperation("中心端 --- 评审项目字段") @@ -360,7 +361,7 @@ public class ProjectController { @PostMapping(value = "/exportProject") @LoginRequired({Platform.center}) - @ApiOperation("####中心端 --- 评审项目导出:matchId/赛事ID") + @ApiOperation("####中心端 --- 评审项目导出:matchId/赛事ID userId") public ResponseVO exportProject(@RequestBody ReviewListDTO reviewListDTO) { projectService.exportProjectReview(reviewListDTO); return ResponseData.generateCreatedResponse(0); @@ -422,8 +423,8 @@ public class ProjectController { // } @PostMapping(value = "getDataOverview") - @LoginRequired({Platform.center}) - @ApiOperation("####中心端 --- 数据概览 matchId") +// @LoginRequired({Platform.center}) + @ApiOperation("[立信]中心端 --- 数据概览 matchId") public ResponseVO getDataOverview(@RequestBody DataOverviewDTO dataOverviewDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalDataOverview(dataOverviewDTO)); } @@ -537,7 +538,6 @@ public class ProjectController { /* -- 管理端 -- */ @PostMapping(value = "/getVocationalProjectPage") - @LoginRequired(Platform.center) @ApiOperation("####中心端 --- 分页查询职教赛道项目管理:matchId/赛事ID,projectGroup/项目组别、赛道 projectTrack、projectSchedule/项目进度(全部项目传空字符串、校内赛、市级初赛、市级复赛、市级决赛), " + "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") public ResponseVO getVocationalProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) { @@ -545,7 +545,6 @@ public class ProjectController { } @PostMapping(value = "updateAllEditStatus") - @LoginRequired(Platform.center) @ApiOperation("中心端 --- 更新所有编辑状态:matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、editStatus/状态(0:关闭,1:开启)") public ResponseVO updateAllEditStatus(@RequestBody EditStatusDTO editStatusDTO) { projectService.updateAllEditStatus(editStatusDTO); @@ -553,7 +552,6 @@ public class ProjectController { } @PostMapping(value = "batchUpdateEditStatus") - @LoginRequired(Platform.center) @ApiOperation("中心端 --- 批量更新编辑状态:ids/项目ID(数组)、editStatus/状态(0:关闭,1:开启)") public ResponseVO batchUpdateEditStatus(@RequestBody EditStatusDTO editStatusDTO) { projectService.batchUpdateEditStatus(editStatusDTO); @@ -561,7 +559,6 @@ public class ProjectController { } @PostMapping(value = "updateEditStatus") - @LoginRequired(Platform.center) @ApiOperation("中心端 --- 更新编辑状态:id/项目ID、editStatus/状态(0:关闭,1:开启)") public ResponseVO updateEditStatus(@RequestBody EditStatusDTO editStatusDTO) { projectService.updateEditStatus(editStatusDTO); @@ -569,31 +566,29 @@ public class ProjectController { } @PostMapping(value = "/getVocationalReviewList") - @LoginRequired({Platform.center}) - @ApiOperation("####中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectStatus/项目状态(市级初赛、市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" + + @ApiOperation("####中心端 --- 职教评审列表:projectGroup/组别、projectName/搜索项目或院校、 projectSchedule/项目状态(市级初赛、市级复赛、市级决赛)、projectReview/评审分配状态(已分配/未分配)、" + "pageNo/当前页数、pageSize/每页显示条数") public ResponseVO getVocationalReviewList(@RequestBody ReviewListDTO reviewListDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewList(reviewListDTO)); } @PostMapping(value = "/getVocationalProjectDetail") - @LoginRequired({Platform.center, Platform.school, Platform.review}) @ApiOperation("####中心端/院校端 --- 职教赛道项目详情:id/项目ID") + @LoginRequired({Platform.center,Platform.school,Platform.review}) public ResponseVO getVocationalProjectDetail(@RequestBody ProjectDO projectDO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectDetail(projectDO.getId())); } /* -- 院校端 -- */ @PostMapping(value = "/getVocationalProjectList") - @LoginRequired(Platform.school) @ApiOperation("院校端 --- 分页查询职教赛道项目:matchId/赛事ID,projectGroup/项目组别、projectSchedule/项目进度(全部项目传空字符串、校内赛、初赛、复赛、决赛), " + "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") + @LoginRequired({Platform.center,Platform.school}) public ResponseVO getVocationalProjectList(@RequestBody ProjectListPageDTO projectListPageDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectList(projectListPageDTO)); } @PostMapping(value = "getReviewVocationalNum") - @LoginRequired(Platform.review) @ApiOperation("评审端 --- (职教)项目数量: matchId/赛事ID、projectGroup/项目组别、 projectSchedule/赛事状态 projectJudgeId") public ResponseVO getReviewVocationalNum(@RequestBody ReviewVocationalNumDTO reviewVocationalNumDTO) { return ResponseData.generateCreatedResponse(0, projectService.getReviewVocationalNum(reviewVocationalNumDTO)); @@ -601,28 +596,26 @@ public class ProjectController { /* -- 评审端 -- */ @PostMapping(value = "/getVocationalProjectReviewPage") - @LoginRequired({Platform.review}) @ApiOperation("评审端 ---职教评审项目分页查询:matchId/赛事年份ID、projectSchedule/项目进度(初赛、复赛、决赛)、status/状态(待评审, 已评审)、projectGroup/项目组别、projectName/搜索名称、pageNo/当前页数、pageSize/每页显示条数") + @LoginRequired({Platform.center,Platform.school,Platform.review}) public ResponseVO getVocationalProjectReviewPage(@RequestBody ProjectReviewPageDTO projectReviewPageDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectReviewPage(projectReviewPageDTO)); } @PostMapping(value = "getVocationalProjectNum") - @LoginRequired({Platform.center, Platform.school, Platform.review}) + @LoginRequired({Platform.school, Platform.center, Platform.student}) @ApiOperation("####中心端/院校端 --- (职教)项目管理数量: matchId/赛事ID、projectGroup/项目组别") public ResponseVO getVocationalProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalProjectNum(seedTrackProjectNumDTO)); } @PostMapping(value = "/getVocationalReviewNum") - @LoginRequired({Platform.center}) - @ApiOperation("####中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)") + @ApiOperation("####中心端 --- 职教评审列表(已评审 + 待评审)项目数量统计:matchId/赛事年份ID、, projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)") public ResponseVO getVocationalReviewNum(@RequestBody ReviewListDTO reviewListDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalReviewNum(reviewListDTO)); } @PostMapping(value = "/getVocationalAssignNum") - @LoginRequired({Platform.center}) @ApiOperation("中心端 --- 职教评审分配(已分配 + 未分配)项目数量统计:matchId/赛事年份ID、projectGroup/组别(高职、中职), projectStatus/项目进度(校级申请项目、市级初赛项目、市级复赛项目、市级 决赛项目)") public ResponseVO getVocationalAssignNum(@RequestBody ReviewListDTO reviewListDTO) { return ResponseData.generateCreatedResponse(0, projectService.getVocationalAssignNum(reviewListDTO)); @@ -637,20 +630,21 @@ public class ProjectController { @PostMapping(value = "importProjectByGroup") @ApiOperation("中心端/院校端 ---excel 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别") - @LoginRequired({ Platform.center, Platform.school }) public void importProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) { projectService.importProjectByGroup(importVocationalProjectDTO); } @PostMapping("exportProjectByGroup") @ApiOperation("中心端/院校端 ---pdf 数据预览导出市级初赛/市级复赛项目: projectGroup/项目组别 matchId") -// @LoginRequired({ Platform.center, Platform.school }) public void exportProjectByGroup(@RequestBody ImportVocationalProjectDTO importVocationalProjectDTO) { projectService.exportProjectByGroup(importVocationalProjectDTO); } - - + @PostMapping("exportPlanMemberImages") + @ApiOperation("导出这个计划学生的所有图片 ") + public void exportPlanMemberImages(@RequestBody ProjectDO projectDO, HttpServletResponse response){ + projectService.exportFiles(projectDO,response); + } } \ No newline at end of file diff --git a/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java b/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java index 08dc845..9faad33 100644 --- a/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java +++ b/src/main/java/com/zhongzhi/controller/ProjectReviewPeriodController.java @@ -32,14 +32,12 @@ public class ProjectReviewPeriodController { private ProjectReviewPeriodService projectReviewPeriodService; @PostMapping(value = "/getProjectReviewPeriod") - @LoginRequired({Platform.center, Platform.school, Platform.review}) @ApiOperation("####中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)") public ResponseVO getProjectReviewPeriod(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) { return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriod(projectReviewPeriodDTO)); } @PostMapping(value = "/updateProjectReviewPeriod") - @LoginRequired(Platform.center) @ApiOperation("中心端 --- 修改评审时间:id/ID、matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、startTime/开始时间、endTime/结束时间") public ResponseVO updateProjectReviewPeriod(@RequestBody ProjectReviewPeriodDO projectReviewPeriodDO) { projectReviewPeriodService.updateProjectReviewPeriod(projectReviewPeriodDO); diff --git a/src/main/java/com/zhongzhi/controller/ProjectTrackController.java b/src/main/java/com/zhongzhi/controller/ProjectTrackController.java new file mode 100644 index 0000000..698cd12 --- /dev/null +++ b/src/main/java/com/zhongzhi/controller/ProjectTrackController.java @@ -0,0 +1,36 @@ +package com.zhongzhi.controller; + + +import com.zhongzhi.common.utils.ResponseData; +import com.zhongzhi.service.ProjectTrackService; +import com.zhongzhi.vo.ResponseVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + + import org.springframework.web.bind.annotation.RestController; + +/** +*

+ * 赛道字典表 前端控制器 + *

+* @author DengMin +* @since 2025-03-28 +*/ +@RestController +@RequestMapping("/projectTrack") +@Api(tags = "赛道") +public class ProjectTrackController { + + @Autowired + private ProjectTrackService projectTrackService; + + @PostMapping("allTracks") + @ApiOperation("查询所有赛道 ") + public ResponseVO allTracks(){ + return ResponseData.generateCreatedResponse(0,projectTrackService.list()); + } + +} diff --git a/src/main/java/com/zhongzhi/dao/AdministerDAO.java b/src/main/java/com/zhongzhi/dao/AdministerDAO.java index 0d51a5f..f07974f 100644 --- a/src/main/java/com/zhongzhi/dao/AdministerDAO.java +++ b/src/main/java/com/zhongzhi/dao/AdministerDAO.java @@ -1,7 +1,9 @@ package com.zhongzhi.dao; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhongzhi.model.AdministerDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhongzhi.vo.administer.GetAdministerPageVO; import org.springframework.stereotype.Repository; /** @@ -15,4 +17,8 @@ import org.springframework.stereotype.Repository; @Repository public interface AdministerDAO extends BaseMapper { + IPage getAdministerPage(IPage iPage, String listItem, String username); + + void updateAdminister(AdministerDO administerDO); + } diff --git a/src/main/java/com/zhongzhi/dao/AdministerTrackMappingDAO.java b/src/main/java/com/zhongzhi/dao/AdministerTrackMappingDAO.java new file mode 100644 index 0000000..088a8bc --- /dev/null +++ b/src/main/java/com/zhongzhi/dao/AdministerTrackMappingDAO.java @@ -0,0 +1,23 @@ +package com.zhongzhi.dao; + +import com.zhongzhi.model.AdministerTrackMappingDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhongzhi.model.ProjectTrackDO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** +*

+ * 赛道管理员映射表 Mapper 接口 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ +@Repository + public interface AdministerTrackMappingDAO extends BaseMapper { + + List administerTracks(Long userId); + + } diff --git a/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java b/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java index 50ca542..99ff21a 100644 --- a/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java +++ b/src/main/java/com/zhongzhi/dao/CollegesDictDAO.java @@ -7,6 +7,7 @@ import com.zhongzhi.model.CollegesDictDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zhongzhi.vo.college.AwardedListVO; import com.zhongzhi.vo.college.CollegePageVO; +import com.zhongzhi.vo.college.GetCollegeInfoVO; import org.springframework.stereotype.Repository; import java.util.List; @@ -27,4 +28,7 @@ public interface CollegesDictDAO extends BaseMapper { IPage getAwardedList(Page page, String name); List getAwardedListAll(); + + List getCollegeInfo(String name); + } diff --git a/src/main/java/com/zhongzhi/dao/MatchDictDAO.java b/src/main/java/com/zhongzhi/dao/MatchDictDAO.java index 174293d..a7fc2f6 100644 --- a/src/main/java/com/zhongzhi/dao/MatchDictDAO.java +++ b/src/main/java/com/zhongzhi/dao/MatchDictDAO.java @@ -23,5 +23,5 @@ public interface MatchDictDAO extends BaseMapper { IPage getSeedTrackMatchPage(Page page); - List getList(@Param("projectType") String projectType, @Param("projectGroup") String projectGroup); +// List getList(@Param("projectType") String projectType, @Param("projectGroup") String projectGroup); } diff --git a/src/main/java/com/zhongzhi/dao/ProjectDAO.java b/src/main/java/com/zhongzhi/dao/ProjectDAO.java index 2bda3e0..1556cb6 100644 --- a/src/main/java/com/zhongzhi/dao/ProjectDAO.java +++ b/src/main/java/com/zhongzhi/dao/ProjectDAO.java @@ -29,9 +29,9 @@ public interface ProjectDAO extends BaseMapper { IPage getSeedTrackProjectPage(Page page, Long matchId, String projectGroup,String projectTrack, @Param("type") String type, @Param("school") String school, String projectSchedule, - String projectStatus, String itemField, @Param("name") String name,@Param("projectProgress") String projectProgress); + String projectStatus, String itemField, @Param("name") String name,@Param("projectProgress") String projectProgress,Long userId,String college); - IPage getReviewList(Page page, String projectName, String projectGroup, String projectReview, Long matchId, String projectStatus, String projectAssigned,String projectProgress); + IPage getReviewList(Page page, String projectName, String projectGroup, String projectReview, Long matchId, String projectSchedule, String projectAssigned,String projectProgress,String projectTrack,Long userId,String college); IPage getProjectReviewPage(Page page, Long judgeId, Long matchId, String projectName, String projectSchedule, String projectReview, String projectGroup,String projectProgress); @@ -39,7 +39,7 @@ public interface ProjectDAO extends BaseMapper { List getProjectByCollege(Long matchId, @Param("name") String name, String projectProgress); - List getSeedTrackProjectList(Long matchId, String projectGroup, @Param("name") String name,@Param("projectProgress")String projectProgress); + List getSeedTrackProjectList(Long matchId, String projectGroup, @Param("name") String name,@Param("projectProgress")String projectProgress,Long userId,String college); List selectListByCollege(String projectType, String projectGroup, @Param("name") String name); @@ -54,4 +54,10 @@ public interface ProjectDAO extends BaseMapper { List projects(Long matchId,Long collegeId,String college); Integer collegeNum(); + + List getVocationalReviewNum(Long userId,Long matchId,String college); + + List getVocationalAssignNum(Long userId,Long matchId,String college); + + List exportProjectReview(Long userId,Long matchId,String projectSchedule,String college); } diff --git a/src/main/java/com/zhongzhi/dao/ProjectJudgeDAO.java b/src/main/java/com/zhongzhi/dao/ProjectJudgeDAO.java index 79dd8b7..1789d95 100644 --- a/src/main/java/com/zhongzhi/dao/ProjectJudgeDAO.java +++ b/src/main/java/com/zhongzhi/dao/ProjectJudgeDAO.java @@ -19,7 +19,7 @@ import org.springframework.stereotype.Repository; @Repository public interface ProjectJudgeDAO extends BaseMapper { - IPage getProjectJudgePage(Page page, String username, Integer status); + IPage getProjectJudgePage(Page page, String username, Integer status,String projectTrack); IPage projectJudgesAssigned(Page page, @Param("matchId") Long matchId, @Param("projectGroup") String projectGroup, @Param("projectSchedule") String projectSchedule); } diff --git a/src/main/java/com/zhongzhi/dao/ProjectTrackDAO.java b/src/main/java/com/zhongzhi/dao/ProjectTrackDAO.java new file mode 100644 index 0000000..031ad16 --- /dev/null +++ b/src/main/java/com/zhongzhi/dao/ProjectTrackDAO.java @@ -0,0 +1,16 @@ +package com.zhongzhi.dao; + +import com.zhongzhi.model.ProjectTrackDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +*

+ * 赛道字典表 Mapper 接口 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ + public interface ProjectTrackDAO extends BaseMapper { + + } diff --git a/src/main/java/com/zhongzhi/dto/administer/AdministerTracksDTO.java b/src/main/java/com/zhongzhi/dto/administer/AdministerTracksDTO.java new file mode 100644 index 0000000..9d3421b --- /dev/null +++ b/src/main/java/com/zhongzhi/dto/administer/AdministerTracksDTO.java @@ -0,0 +1,10 @@ +package com.zhongzhi.dto.administer; + +import lombok.Data; + +@Data +public class AdministerTracksDTO { + + private Long userId; + +} diff --git a/src/main/java/com/zhongzhi/dto/administer/CreateAdministerDTO.java b/src/main/java/com/zhongzhi/dto/administer/CreateAdministerDTO.java new file mode 100644 index 0000000..49ffad0 --- /dev/null +++ b/src/main/java/com/zhongzhi/dto/administer/CreateAdministerDTO.java @@ -0,0 +1,15 @@ +package com.zhongzhi.dto.administer; + +import com.zhongzhi.model.AdministerDO; +import lombok.Data; + +import java.util.List; + +@Data +public class CreateAdministerDTO extends AdministerDO { + + private List trackIds; + + private List permissionIds; + +} diff --git a/src/main/java/com/zhongzhi/dto/college/GetCollegesListDTO.java b/src/main/java/com/zhongzhi/dto/college/GetCollegesListDTO.java new file mode 100644 index 0000000..f03300f --- /dev/null +++ b/src/main/java/com/zhongzhi/dto/college/GetCollegesListDTO.java @@ -0,0 +1,14 @@ +package com.zhongzhi.dto.college; + +import lombok.Data; + +@Data +public class GetCollegesListDTO { + + private Integer pageSize; + + private Integer pageNum; + + private String name; + +} diff --git a/src/main/java/com/zhongzhi/dto/judge/ProjectJudgePageDTO.java b/src/main/java/com/zhongzhi/dto/judge/ProjectJudgePageDTO.java index b2927fc..bb283e4 100644 --- a/src/main/java/com/zhongzhi/dto/judge/ProjectJudgePageDTO.java +++ b/src/main/java/com/zhongzhi/dto/judge/ProjectJudgePageDTO.java @@ -9,6 +9,8 @@ public class ProjectJudgePageDTO { private String projectGroup; + private String projectTrack; + private String projectSchedule; private String username; diff --git a/src/main/java/com/zhongzhi/dto/project/ExportProjectDTO.java b/src/main/java/com/zhongzhi/dto/project/ExportProjectDTO.java index d157aa6..7bcb209 100644 --- a/src/main/java/com/zhongzhi/dto/project/ExportProjectDTO.java +++ b/src/main/java/com/zhongzhi/dto/project/ExportProjectDTO.java @@ -13,32 +13,35 @@ public class ExportProjectDTO { private String projectName; @ExcelColumn(col = 3, value = "组别") - private String projectProgress; + private String projectGroup; - @ExcelColumn(col = 4, value = "负责人") + @ExcelColumn(col = 4, value = "赛道") + private String projectTrack; + + @ExcelColumn(col = 5, value = "单元赛道") + private String unitTrack; + + @ExcelColumn(col = 6, value = "负责人") private String name; - @ExcelColumn(col = 5, value = "院校") + @ExcelColumn(col = 7, value = "院校") private String college; - @ExcelColumn(col = 6, value = "学籍号") - private String studentNo; - - @ExcelColumn(col = 7, value = "专业") + @ExcelColumn(col = 8, value = "专业") private String major; - @ExcelColumn(col = 8, value = "手机号") + @ExcelColumn(col = 9, value = "手机号") private String telephone; - @ExcelColumn(col = 9, value = "团队成员") + @ExcelColumn(col = 10, value = "团队成员") private String teamMembers; - @ExcelColumn(col = 10, value = "指导老师") + @ExcelColumn(col = 11, value = "指导老师") private String teachers; - @ExcelColumn(col = 11, value = "项目阶段") + @ExcelColumn(col = 12, value = "项目阶段") private String projectSchedule; - @ExcelColumn(col = 12, value = "项目状态") + @ExcelColumn(col = 13, value = "项目状态") private String projectStatus; } diff --git a/src/main/java/com/zhongzhi/dto/project/ProjectCollegeListDTO.java b/src/main/java/com/zhongzhi/dto/project/ProjectCollegeListDTO.java index 1e757d8..70f3fc7 100644 --- a/src/main/java/com/zhongzhi/dto/project/ProjectCollegeListDTO.java +++ b/src/main/java/com/zhongzhi/dto/project/ProjectCollegeListDTO.java @@ -15,5 +15,7 @@ public class ProjectCollegeListDTO { private Long matchId; + private Long userId; + private String projectProgress; } diff --git a/src/main/java/com/zhongzhi/dto/project/ProjectListPageDTO.java b/src/main/java/com/zhongzhi/dto/project/ProjectListPageDTO.java index 52e8956..915b843 100644 --- a/src/main/java/com/zhongzhi/dto/project/ProjectListPageDTO.java +++ b/src/main/java/com/zhongzhi/dto/project/ProjectListPageDTO.java @@ -24,4 +24,6 @@ public class ProjectListPageDTO { private Integer pageNo; private Integer pageSize; + + private Long userId; } diff --git a/src/main/java/com/zhongzhi/dto/project/ReviewListDTO.java b/src/main/java/com/zhongzhi/dto/project/ReviewListDTO.java index ef350a8..ef96bfd 100644 --- a/src/main/java/com/zhongzhi/dto/project/ReviewListDTO.java +++ b/src/main/java/com/zhongzhi/dto/project/ReviewListDTO.java @@ -30,7 +30,11 @@ public class ReviewListDTO { private String projectAssigned; + private String projectTrack; + private String projectSchedule; private String projectProgress; + + private Long userId; } diff --git a/src/main/java/com/zhongzhi/dto/project/ReviewVocationalNumDTO.java b/src/main/java/com/zhongzhi/dto/project/ReviewVocationalNumDTO.java index 9f8714c..5b17dc9 100644 --- a/src/main/java/com/zhongzhi/dto/project/ReviewVocationalNumDTO.java +++ b/src/main/java/com/zhongzhi/dto/project/ReviewVocationalNumDTO.java @@ -12,4 +12,6 @@ public class ReviewVocationalNumDTO { private String projectStatus; private Long projectJudgeId; + + private String projectSchedule; } diff --git a/src/main/java/com/zhongzhi/dto/project/SeedTrackProjectNumDTO.java b/src/main/java/com/zhongzhi/dto/project/SeedTrackProjectNumDTO.java index 088eb0c..c569ee8 100644 --- a/src/main/java/com/zhongzhi/dto/project/SeedTrackProjectNumDTO.java +++ b/src/main/java/com/zhongzhi/dto/project/SeedTrackProjectNumDTO.java @@ -10,4 +10,6 @@ public class SeedTrackProjectNumDTO { private String projectGroup; private String projectProgress; + + private Long userId; } diff --git a/src/main/java/com/zhongzhi/model/AdministerDO.java b/src/main/java/com/zhongzhi/model/AdministerDO.java index b36b0e4..f1bd03a 100644 --- a/src/main/java/com/zhongzhi/model/AdministerDO.java +++ b/src/main/java/com/zhongzhi/model/AdministerDO.java @@ -50,4 +50,6 @@ public class AdministerDO extends BaseModel { * 角色 */ private String role; + + private String college; } diff --git a/src/main/java/com/zhongzhi/model/AdministerTrackMappingDO.java b/src/main/java/com/zhongzhi/model/AdministerTrackMappingDO.java new file mode 100644 index 0000000..ce29712 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/AdministerTrackMappingDO.java @@ -0,0 +1,33 @@ +package com.zhongzhi.model; + + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import com.zhongzhi.model.base.BaseModel; + import com.baomidou.mybatisplus.annotation.TableName; + import lombok.Data; + import lombok.EqualsAndHashCode; + +/** +*

+ * 赛道管理员映射表 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ + @Data + @EqualsAndHashCode(callSuper = true) + @TableName("administer_track_mapping") + public class AdministerTrackMappingDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long administerId; + + private Long trackId; + + +} diff --git a/src/main/java/com/zhongzhi/model/ProjectDO.java b/src/main/java/com/zhongzhi/model/ProjectDO.java index ae57ff6..c4c02a1 100644 --- a/src/main/java/com/zhongzhi/model/ProjectDO.java +++ b/src/main/java/com/zhongzhi/model/ProjectDO.java @@ -158,5 +158,8 @@ public class ProjectDO extends BaseModel { private Integer editStatus; + private String aboveProvinceReward; + + private String rewardUrl; } diff --git a/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java b/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java index 0444693..86be43a 100644 --- a/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java +++ b/src/main/java/com/zhongzhi/model/ProjectJudgeDO.java @@ -70,4 +70,6 @@ public class ProjectJudgeDO extends BaseModel { private Integer passwordFree; + private String projectTrack; + } diff --git a/src/main/java/com/zhongzhi/model/ProjectTrackDO.java b/src/main/java/com/zhongzhi/model/ProjectTrackDO.java new file mode 100644 index 0000000..eb2cbc9 --- /dev/null +++ b/src/main/java/com/zhongzhi/model/ProjectTrackDO.java @@ -0,0 +1,31 @@ +package com.zhongzhi.model; + + import com.zhongzhi.model.base.BaseModel; + import com.baomidou.mybatisplus.annotation.TableName; + import com.baomidou.mybatisplus.annotation.IdType; + import com.baomidou.mybatisplus.annotation.TableId; + import lombok.Data; + import lombok.EqualsAndHashCode; + +/** +*

+ * 赛道字典表 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ + @Data + @EqualsAndHashCode(callSuper = true) + @TableName("project_track") + public class ProjectTrackDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String projectTrack; + + +} diff --git a/src/main/java/com/zhongzhi/service/AdministerService.java b/src/main/java/com/zhongzhi/service/AdministerService.java index f1b6d04..31c0200 100644 --- a/src/main/java/com/zhongzhi/service/AdministerService.java +++ b/src/main/java/com/zhongzhi/service/AdministerService.java @@ -20,4 +20,6 @@ public interface AdministerService extends IService { AdministerVO login(LoginDTO loginDTO); IPage getAdministerPage(AdministerPageDTO administerPageDTO); + + void updateAdminister(AdministerDO administerDO); } diff --git a/src/main/java/com/zhongzhi/service/AdministerTrackMappingService.java b/src/main/java/com/zhongzhi/service/AdministerTrackMappingService.java new file mode 100644 index 0000000..6ce83b9 --- /dev/null +++ b/src/main/java/com/zhongzhi/service/AdministerTrackMappingService.java @@ -0,0 +1,23 @@ +package com.zhongzhi.service; + +import com.zhongzhi.dto.administer.AdministerTracksDTO; +import com.zhongzhi.model.AdministerTrackMappingDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhongzhi.model.ProjectTrackDO; + +import java.util.List; + +/** +*

+ * 赛道管理员映射表 服务类 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ +public interface AdministerTrackMappingService extends IService { + + List administerTracks(AdministerTracksDTO administerTracksDTO); + + +} diff --git a/src/main/java/com/zhongzhi/service/CollegesDictService.java b/src/main/java/com/zhongzhi/service/CollegesDictService.java index 36232ff..46d2937 100644 --- a/src/main/java/com/zhongzhi/service/CollegesDictService.java +++ b/src/main/java/com/zhongzhi/service/CollegesDictService.java @@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhongzhi.dto.college.*; import com.zhongzhi.model.*; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhongzhi.vo.college.CollegesVO; -import com.zhongzhi.vo.college.DetailVO; -import com.zhongzhi.vo.college.RegisterMembersVO; -import com.zhongzhi.vo.college.SchoolsVO; +import com.zhongzhi.vo.college.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -23,6 +20,8 @@ import java.util.Map; */ public interface CollegesDictService extends IService { + List getCollegeInfo(GetCollegesListDTO getCollegesListDTO); + CollegesVO login(LoginDTO loginDTO); IPage getCollegesPage(CollegesPageDTO collegesPageDTO); diff --git a/src/main/java/com/zhongzhi/service/MatchDictService.java b/src/main/java/com/zhongzhi/service/MatchDictService.java index c24b22a..f26bb50 100644 --- a/src/main/java/com/zhongzhi/service/MatchDictService.java +++ b/src/main/java/com/zhongzhi/service/MatchDictService.java @@ -30,7 +30,7 @@ public interface MatchDictService extends IService { List getMatch(); - List getList(String projectType, String projectGroup); +// List getList(String projectType, String projectGroup); IPage getVocationalPage(SelectListPageDTO selectListPageDTO); diff --git a/src/main/java/com/zhongzhi/service/PermissionsService.java b/src/main/java/com/zhongzhi/service/PermissionsService.java index 0dc40af..2eba5c5 100644 --- a/src/main/java/com/zhongzhi/service/PermissionsService.java +++ b/src/main/java/com/zhongzhi/service/PermissionsService.java @@ -17,4 +17,7 @@ import java.util.List; public interface PermissionsService extends IService { List getPermissionById(Long id); + + List allPermissions(); + } diff --git a/src/main/java/com/zhongzhi/service/ProjectService.java b/src/main/java/com/zhongzhi/service/ProjectService.java index 6e1cc12..817fe93 100644 --- a/src/main/java/com/zhongzhi/service/ProjectService.java +++ b/src/main/java/com/zhongzhi/service/ProjectService.java @@ -13,6 +13,7 @@ import com.zhongzhi.vo.ExcelFieldVO; import com.zhongzhi.vo.member.ProjectMemberVO; import com.zhongzhi.vo.project.*; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -165,5 +166,7 @@ public interface ProjectService extends IService { void exportProjectByGroup(ImportVocationalProjectDTO importVocationalProjectDTO); + void exportFiles(ProjectDO projectDO, HttpServletResponse response); + // ProjectDataOverview getCollegeVocationalDataOverview(); } diff --git a/src/main/java/com/zhongzhi/service/ProjectTrackService.java b/src/main/java/com/zhongzhi/service/ProjectTrackService.java new file mode 100644 index 0000000..bff9a64 --- /dev/null +++ b/src/main/java/com/zhongzhi/service/ProjectTrackService.java @@ -0,0 +1,16 @@ +package com.zhongzhi.service; + +import com.zhongzhi.model.ProjectTrackDO; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +*

+ * 赛道字典表 服务类 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ + public interface ProjectTrackService extends IService { + + } diff --git a/src/main/java/com/zhongzhi/service/impl/AdministerServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/AdministerServiceImpl.java index a72b7ce..1200e20 100644 --- a/src/main/java/com/zhongzhi/service/impl/AdministerServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/AdministerServiceImpl.java @@ -7,16 +7,18 @@ import com.zhongzhi.common.constant.Platform; import com.zhongzhi.common.constant.SmsCode; import com.zhongzhi.common.exception.HttpException; import com.zhongzhi.common.utils.JwtUtil; +import com.zhongzhi.dao.AdministerPermissionDAO; +import com.zhongzhi.dao.AdministerTrackMappingDAO; import com.zhongzhi.dto.administer.AdministerPageDTO; import com.zhongzhi.dto.administer.LoginDTO; -import com.zhongzhi.model.AdministerDO; +import com.zhongzhi.model.*; import com.zhongzhi.dao.AdministerDAO; -import com.zhongzhi.model.SmsCodeDO; import com.zhongzhi.service.AdministerService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhongzhi.service.PermissionsService; import com.zhongzhi.service.SmsCodeService; import com.zhongzhi.vo.administer.AdministerVO; +import com.zhongzhi.vo.administer.GetAdministerPageVO; import com.zhongzhi.vo.permission.PermissionVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +44,12 @@ public class AdministerServiceImpl extends ServiceImpl list = permissionsService.getPermissionById(administerDO.getId()); List treeList = new ArrayList(); @@ -92,9 +101,41 @@ public class AdministerServiceImpl extends ServiceImpl() - .lambda() - .eq(AdministerDO::getRole, administerPageDTO.getListItem()) - .like(AdministerDO::getUsername, administerPageDTO.getUsername())); + + IPage page1 = this.baseMapper.getAdministerPage(page,administerPageDTO.getListItem(),administerPageDTO.getUsername()); + List records = page1.getRecords(); + for (GetAdministerPageVO getAdministerPageVO : records){ + + List administerTrackMappingDOS = administerTrackMappingDAO.selectList(new QueryWrapper() + .lambda() + .eq(AdministerTrackMappingDO::getAdministerId,getAdministerPageVO.getId())); + getAdministerPageVO.setAdministerTrackMappingDOS(administerTrackMappingDOS); + + List list = permissionsService.getPermissionById(getAdministerPageVO.getId()); + List treeList = new ArrayList(); + list.forEach(permissions -> { + if (permissions.getParentId() == null) { + treeList.add(permissions); + } + + list.forEach(p -> { + if (p.getParentId() != null) { + if (p.getParentId().equals(permissions.getId())) { + if (permissions.getChildNodeList() == null) { + permissions.setChildNodeList(new ArrayList<>()); + } + permissions.getChildNodeList().add(p); + } + } + }); + }); + getAdministerPageVO.setAdministerPermissionDOS(treeList); + } + return page1; + } + + @Override + public void updateAdminister(AdministerDO administerDO){ + this.baseMapper.updateAdminister(administerDO); } } diff --git a/src/main/java/com/zhongzhi/service/impl/AdministerTrackMappingServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/AdministerTrackMappingServiceImpl.java new file mode 100644 index 0000000..31f341f --- /dev/null +++ b/src/main/java/com/zhongzhi/service/impl/AdministerTrackMappingServiceImpl.java @@ -0,0 +1,29 @@ +package com.zhongzhi.service.impl; + +import com.zhongzhi.dto.administer.AdministerTracksDTO; +import com.zhongzhi.model.AdministerTrackMappingDO; +import com.zhongzhi.dao.AdministerTrackMappingDAO; +import com.zhongzhi.model.ProjectTrackDO; +import com.zhongzhi.service.AdministerTrackMappingService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** +*

+ * 赛道管理员映射表 服务实现类 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ +@Service +public class AdministerTrackMappingServiceImpl extends ServiceImpl implements AdministerTrackMappingService { + + @Override + public List administerTracks(AdministerTracksDTO administerTracksDTO){ + return this.baseMapper.administerTracks(administerTracksDTO.getUserId()); + } + +} diff --git a/src/main/java/com/zhongzhi/service/impl/CollegesDictServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/CollegesDictServiceImpl.java index b2d6b1f..391f691 100644 --- a/src/main/java/com/zhongzhi/service/impl/CollegesDictServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/CollegesDictServiceImpl.java @@ -65,6 +65,10 @@ public class CollegesDictServiceImpl extends ServiceImpl getCollegeInfo(GetCollegesListDTO getCollegesListDTO){ + return this.baseMapper.getCollegeInfo(getCollegesListDTO.getName()); + } + @Override @Transactional(rollbackFor = Exception.class) public CollegesVO login(LoginDTO loginDTO) { diff --git a/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java index d9bc5f8..33bc9fc 100644 --- a/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java @@ -156,10 +156,10 @@ public class MatchDictServiceImpl extends ServiceImpl return this.baseMapper.selectById(matchDictDO.getId()); } - @Override - public List getList(String projectType, String projectGroup) { - return this.baseMapper.getList(projectType, projectGroup); - } +// @Override +// public List getList(String projectType, String projectGroup) { +// return this.baseMapper.getList(projectType, projectGroup); +// } @Override public IPage getVocationalPage(SelectListPageDTO selectListPageDTO) { diff --git a/src/main/java/com/zhongzhi/service/impl/PermissionsServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/PermissionsServiceImpl.java index 0e078a8..b831afb 100644 --- a/src/main/java/com/zhongzhi/service/impl/PermissionsServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/PermissionsServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhongzhi.vo.permission.PermissionVO; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -24,4 +25,28 @@ public class PermissionsServiceImpl extends ServiceImpl getPermissionById(Long id) { return this.baseMapper.getPermissionById(id); } + + @Override + public List allPermissions(){ + List list = this.getPermissionById(null); + List treeList = new ArrayList(); + list.forEach(permissions -> { + if (permissions.getParentId() == null) { + treeList.add(permissions); + } + + list.forEach(p -> { + if (p.getParentId() != null) { + if (p.getParentId().equals(permissions.getId())) { + if (permissions.getChildNodeList() == null) { + permissions.setChildNodeList(new ArrayList<>()); + } + permissions.getChildNodeList().add(p); + } + } + }); + }); + return treeList; + } + } diff --git a/src/main/java/com/zhongzhi/service/impl/ProjectJudgeServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/ProjectJudgeServiceImpl.java index fb01909..47c7d18 100644 --- a/src/main/java/com/zhongzhi/service/impl/ProjectJudgeServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/ProjectJudgeServiceImpl.java @@ -50,7 +50,7 @@ public class ProjectJudgeServiceImpl extends ServiceImpl getProjectJudgePage(ProjectJudgePageDTO projectJudgePageDTO) { - IPage iPage = this.baseMapper.getProjectJudgePage(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()), projectJudgePageDTO.getUsername(), projectJudgePageDTO.getStatus()); + IPage iPage = this.baseMapper.getProjectJudgePage(new Page(projectJudgePageDTO.getPageNo(), projectJudgePageDTO.getPageSize()), projectJudgePageDTO.getUsername(), projectJudgePageDTO.getStatus(),projectJudgePageDTO.getProjectTrack()); for (ProjectJudgePageVO record : iPage.getRecords()) { Integer count = projectReviewService.count(new QueryWrapper() .lambda() @@ -179,4 +179,5 @@ public class ProjectJudgeServiceImpl extends ServiceImpl() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, projectReviewPeriodDTO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, projectReviewPeriodDTO.getProjectGroup()) .eq(ProjectReviewPeriodDO::getProjectSchedule, projectReviewPeriodDTO.getProjectSchedule())); if (projectReviewPeriodDO != null) { projectReviewPeriodVO.setId(projectReviewPeriodDO.getId()); @@ -43,8 +42,7 @@ public class ProjectReviewPeriodServiceImpl extends ServiceImpl() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, projectReviewPeriodDO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectSchedule, projectReviewPeriodDO.getProjectSchedule()) - .eq(ProjectReviewPeriodDO::getProjectGroup, projectReviewPeriodDO.getProjectGroup())); + .eq(ProjectReviewPeriodDO::getProjectSchedule, projectReviewPeriodDO.getProjectSchedule())); if (projectReviewPeriod != null) { projectReviewPeriodDO.setId(projectReviewPeriod.getId()); this.baseMapper.updateById(projectReviewPeriodDO); diff --git a/src/main/java/com/zhongzhi/service/impl/ProjectReviewServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/ProjectReviewServiceImpl.java index e443355..42954fb 100644 --- a/src/main/java/com/zhongzhi/service/impl/ProjectReviewServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/ProjectReviewServiceImpl.java @@ -76,7 +76,6 @@ public class ProjectReviewServiceImpl extends ServiceImpl() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, projectDO.getProjectProgress()) .eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule())); // startTime = projectReviewPeriodDO.getStartTime(); // endTime = projectReviewPeriodDO.getEndTime(); @@ -116,7 +115,6 @@ public class ProjectReviewServiceImpl extends ServiceImpl() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, projectDO.getProjectGroup()) .eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule())); // startTime = projectReviewPeriodDO.getStartTime(); // endTime = projectReviewPeriodDO.getEndTime(); @@ -239,7 +237,6 @@ public class ProjectReviewServiceImpl extends ServiceImpl() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, projectDO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, projectDO.getProjectGroup()) .eq(ProjectReviewPeriodDO::getProjectSchedule, projectDO.getProjectSchedule())); if (projectReviewPeriodDO.getStartTime().before(new Date())) { throw new HttpException(10075); diff --git a/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java index fe86f86..a19a190 100644 --- a/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java @@ -24,6 +24,7 @@ import com.zhongzhi.vo.member.ProjectMemberVO; import com.zhongzhi.vo.project.*; import com.zhongzhi.vo.review.FinalsReviewVO; import com.zhongzhi.vo.review.ReMatchReviewVO; +import com.zhongzhi.vo.review.SchoolReviewVO; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.BeanUtils; @@ -31,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -97,6 +99,9 @@ public class ProjectServiceImpl extends ServiceImpl imple @Autowired private CollegesDictDAO collegesDictDAO; + @Autowired + private AdministerDAO administerDAO; + // @Override // public IPage getMainTrackProject(ProjectListPageDTO projectListPageDTO) { // StudentDO studentDO = (StudentDO) Localstorage.getUser(); @@ -142,6 +147,8 @@ public class ProjectServiceImpl extends ServiceImpl imple @Override public IPage getVocationalReviewList(ReviewListDTO reviewListDTO) { + + AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId()); if (reviewListDTO.getProjectReview() != null) { if (reviewListDTO.getProjectReview().equals(ProjectReview.TO_REVIEWED) || reviewListDTO.getProjectReview().equals(ProjectReview.SUBMITTED)) { @@ -158,12 +165,15 @@ public class ProjectServiceImpl extends ServiceImpl imple reviewListDTO.getProjectGroup(), reviewListDTO.getProjectReview(), reviewListDTO.getMatchId(), - reviewListDTO.getProjectStatus(), - reviewListDTO.getProjectAssigned(), null); + reviewListDTO.getProjectSchedule(), + reviewListDTO.getProjectAssigned(), null, + reviewListDTO.getProjectTrack(), + reviewListDTO.getUserId(), administerDO.getCollege()); for (ReviewListVO record : iPage.getRecords()) { StudentDO studentDO = studentService.getById(record.getProposerId()); if (studentDO != null) { + record.setCollege(studentDO.getCollege()); record.setSchool(studentDO.getCollege()); record.setName(studentDO.getName()); } @@ -261,11 +271,24 @@ public class ProjectServiceImpl extends ServiceImpl imple queryWrapper.lambda().eq(ProjectReviewDO::getProjectId, id); List review = projectReviewService.list(queryWrapper); if (review.size() > 0) { + + List school = new ArrayList<>(); List rematch = new ArrayList<>(); List finals = new ArrayList<>(); for (ProjectReviewDO pr : review) { ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(pr.getJudgeId()); - if (pr.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) { + if (pr.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)) { + SchoolReviewVO schoolReviewVO = new SchoolReviewVO(); + schoolReviewVO.setId(pr.getId()); + if (projectJudgeDO != null) { + schoolReviewVO.setSchoolJudgeName(projectJudgeDO.getUsername()); + } + if (collegesDict.getId() == null) { + schoolReviewVO.setSchoolScore(pr.getScore()); + } + schoolReviewVO.setSchoolTime(DateFormatUtil.format(pr.getReviewTime(), DateFormatUtil.FMT_sdf_yMd)); + school.add(schoolReviewVO); + } else if (pr.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) { ReMatchReviewVO reMatchReviewVO = new ReMatchReviewVO(); reMatchReviewVO.setId(pr.getId()); if (projectJudgeDO != null) { @@ -291,6 +314,7 @@ public class ProjectServiceImpl extends ServiceImpl imple finals.add(finalsReviewVO); } } + seedTrackProjectDetailVO.setSchools(school); seedTrackProjectDetailVO.setRematch(rematch); seedTrackProjectDetailVO.setFinals(finals); } @@ -316,6 +340,7 @@ public class ProjectServiceImpl extends ServiceImpl imple @Override public IPage getVocationalProjectPage(ProjectListPageDTO projectListPageDTO) { Page page = new Page(projectListPageDTO.getPageNo(), projectListPageDTO.getPageSize()); + AdministerDO administerDO = administerDAO.selectById(projectListPageDTO.getUserId()); Long matchId = null; if (projectListPageDTO.getMatchId() == null) { MatchDictDO matchDictDO = matchDictService.getOne(new QueryWrapper() @@ -329,7 +354,7 @@ public class ProjectServiceImpl extends ServiceImpl imple } IPage iPage = this.baseMapper.getSeedTrackProjectPage(page, matchId, projectListPageDTO.getProjectGroup(), projectListPageDTO.getProjectTrack(), MemberType.PRINCIPAL, null, - projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(), projectListPageDTO.getName(), projectListPageDTO.getProjectProgress()); + projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(), projectListPageDTO.getName(), projectListPageDTO.getProjectProgress(), projectListPageDTO.getUserId(), administerDO.getCollege()); for (SeedTrackProjectPageVO record : iPage.getRecords()) { List list = projectMaterialsService.list(new QueryWrapper() .lambda() @@ -348,7 +373,7 @@ public class ProjectServiceImpl extends ServiceImpl imple Page page = new Page(projectListPageDTO.getPageNo(), projectListPageDTO.getPageSize()); IPage iPage = this.baseMapper.getSeedTrackProjectPage(page, projectListPageDTO.getMatchId(), projectListPageDTO.getProjectGroup(), null, MemberType.PRINCIPAL, collegesDictDO.getName(), - projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(), projectListPageDTO.getName(), projectListPageDTO.getProjectProgress()); + projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(), projectListPageDTO.getName(), projectListPageDTO.getProjectProgress(), projectListPageDTO.getUserId(), null); for (SeedTrackProjectPageVO record : iPage.getRecords()) { List list = projectMaterialsService.list(new QueryWrapper() .lambda() @@ -368,7 +393,6 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, projectReviewPageDTO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, projectReviewPageDTO.getProjectGroup()) .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))) @@ -385,7 +409,7 @@ public class ProjectServiceImpl extends ServiceImpl imple projectJudgeDO.getId(), projectReviewPageDTO.getMatchId(), projectReviewPageDTO.getProjectName(), - projectReviewPageDTO.getProjectStatus(), + projectReviewPageDTO.getProjectSchedule(), projectReview, projectReviewPageDTO.getProjectGroup(), null); @@ -596,7 +620,68 @@ public class ProjectServiceImpl extends ServiceImpl imple } @Override + public void exportFiles(ProjectDO projectDO, HttpServletResponse response) { + + //导出这个计划所有学生三方协议的图片,按照文件夹分类 学号_姓名 + List projectDOS = this.baseMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectDO::getMatchId, projectDO.getMatchId()) + .eq(ProjectDO::getProjectSchedule, ProjectSchedule.SCHOOL_REVIEW)); + + System.out.println(projectDOS.size()); + + LinkedHashMap>> studentImageMap = new LinkedHashMap<>(); + + for (ProjectDO projectDO1 : projectDOS) { + + HashMap> imageMaps = new HashMap<>(); + + //查询学生信息 ---> 学号 姓名 + StudentDO memberDO = studentService.getById(projectDO1.getProposerId()); + + //这个人本次实习的所有图片 + //项目计划书 + if (null != projectDO1.getProjectAttachment()){ + List projectAttachment = new ArrayList<>(); + projectAttachment.add(projectDO1.getProjectAttachment()); + imageMaps.put("projectAttachment",projectAttachment); + } + + if (null != projectDO1.getProjectPptUrl()){ + List projectPptUrl = new ArrayList<>(); + projectPptUrl.add(projectDO1.getProjectPptUrl()); + imageMaps.put("projectPptUrl",projectPptUrl); + } + + if (null != projectDO1.getIdentityCertificate()){ + List identityCertificate = new ArrayList<>(); + identityCertificate.add(projectDO1.getIdentityCertificate()); + imageMaps.put("identityCertificate",identityCertificate); + } + + if (null != projectDO1.getCommitmentLetter()){ + List commitmentLetter = new ArrayList<>(); + commitmentLetter.add(projectDO1.getCommitmentLetter()); + imageMaps.put("commitmentLetter",commitmentLetter); + } + + if (null != projectDO1.getParticipationCertificate()){ + List participationCertificate = new ArrayList<>(); + participationCertificate.add(projectDO1.getParticipationCertificate()); + imageMaps.put("participationCertificate",participationCertificate); + } + + //导出 按照名字学号做文件夹做导出 + studentImageMap.put(memberDO.getName()+"_"+memberDO.getTelephone(), imageMaps); + } + + System.out.println(studentImageMap); + ZipUtils.downloadAndZip(studentImageMap); + } + + @Override public VocationalNumVO getVocationalProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO) { + AdministerDO administerDO = administerDAO.selectById(seedTrackProjectNumDTO.getUserId()); Map map = Localstorage.getMap(); CollegesDictDO collegesDictDO = new CollegesDictDO(); if (map.get("type").equals(Platform.school)) { @@ -608,7 +693,7 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectJudgeDO projectJudgeDO = (ProjectJudgeDO) map.get("user"); list = this.baseMapper.getListByJudgeId(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), projectJudgeDO.getId()); } else { - list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), null); + list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), null, seedTrackProjectNumDTO.getUserId(), administerDO.getCollege()); } VocationalNumVO vocationalNumVO = new VocationalNumVO(); @@ -638,34 +723,23 @@ public class ProjectServiceImpl extends ServiceImpl imple @Override public VocationalReviewNumVO getVocationalReviewNum(ReviewListDTO reviewListDTO) { - VocationalReviewNumVO vo = new VocationalReviewNumVO(); - List list = this.baseMapper.selectList(new QueryWrapper() - .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.getProjectStatus()) && projectDO.getProjectGroup().equals(reviewListDTO.getProjectGroup())).count(); + AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId()); + VocationalReviewNumVO vo = new VocationalReviewNumVO(); + List list = this.baseMapper.getVocationalReviewNum(reviewListDTO.getUserId(), reviewListDTO.getMatchId(), administerDO.getCollege()); - Long notReview = list.stream().filter(projectDO -> projectDO.getProjectReview().equals(ProjectReview.TO_REVIEWED) && - projectDO.getProjectSchedule().equals(reviewListDTO.getProjectStatus()) && projectDO.getProjectGroup().equals(reviewListDTO.getProjectGroup())).count(); + 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 vocRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.SECONDARY_GROUP)).count(); - Long vocFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.SECONDARY_GROUP)).count(); - Long secRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); - Long secFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); -// Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.PRELIMINARY_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); + Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)).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.setVocRematchNum(vocRematchNum); - vo.setVocFinalNum(vocFinalNum); vo.setSecRematchNum(secRematchNum); vo.setSecFinalNum(secFinalNum); -// vo.setSecPreliminaryNUm(secPreliminaryNUm); + vo.setSecPreliminaryNUm(secPreliminaryNUm); return vo; } @@ -678,7 +752,7 @@ public class ProjectServiceImpl extends ServiceImpl imple for (ProjectDO projectDO : projectList) { if (projectDO != null) { projectJudgeVO.setProjectName(projectDO.getProjectName()); - projectJudgeVO.setProjectProgress(projectDO.getProjectProgress()); +// projectJudgeVO.setProjectProgress(projectDO.getProjectProgress()); projectJudgeVO.setProjectSchedule(projectDO.getProjectSchedule()); MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId()); @@ -730,8 +804,7 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, reviewVocationalNumDTO.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, reviewVocationalNumDTO.getProjectGroup()) - .eq(ProjectReviewPeriodDO::getProjectSchedule, reviewVocationalNumDTO.getProjectStatus())); + .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))) @@ -739,21 +812,16 @@ public class ProjectServiceImpl extends ServiceImpl imple (new Date().before(projectReviewPeriodDO.getEndTime()) || DateFormatUtil.format(new Date(), DateFormatUtil.FMT_sdf14_L).equals(DateFormatUtil.format(projectReviewPeriodDO.getEndTime(), DateFormatUtil.FMT_sdf14_L)))) { List list = this.baseMapper.getProjectReviewList(projectJudgeDO.getId(), reviewVocationalNumDTO.getMatchId(), null); - Long vocRematchNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW) && p.getProjectGroup().equals(ProjectType.SECONDARY_GROUP)).count(); - Long vocFinalNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW) && p.getProjectGroup().equals(ProjectType.SECONDARY_GROUP)).count(); - Long secRematchNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW) && p.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); - Long secFinalNum = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW) && p.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); -// Long secPreliminaryNUm = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.PRELIMINARY_REVIEW) && p.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); - Long reviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectStatus()) - && p.getProjectGroup().equals(reviewVocationalNumDTO.getProjectGroup()) && p.getProjectReview().equals(ProjectReview.REVIEW)).count(); - - Long notReviewedNum = list.stream().filter(p -> p.getProjectSchedule().equals(reviewVocationalNumDTO.getProjectStatus()) - && p.getProjectGroup().equals(reviewVocationalNumDTO.getProjectGroup()) && p.getProjectReview().equals(ProjectReview.ASSIGNED)).count(); - vocationalProjectNum.setVocRematchNum(vocRematchNum); - vocationalProjectNum.setVocFinalNum(vocFinalNum); + Long secPreliminaryNUm = list.stream().filter(p -> p.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)).count(); + 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 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.setSecRematchNum(secRematchNum); vocationalProjectNum.setSecFinalNum(secFinalNum); -// vocationalProjectNum.setSecPreliminaryNUm(secPreliminaryNUm); + vocationalProjectNum.setSecPreliminaryNUm(secPreliminaryNUm); vocationalProjectNum.setReviewedNum(reviewedNum); vocationalProjectNum.setNotReviewedNum(notReviewedNum); } @@ -803,31 +871,24 @@ public class ProjectServiceImpl extends ServiceImpl imple public ProjectAssignNumVO getVocationalAssignNum(ReviewListDTO reviewListDTO) { ProjectAssignNumVO projectAssignNumVO = new ProjectAssignNumVO(); - List list = this.baseMapper.selectList(new QueryWrapper() - .lambda() - .eq(ProjectDO::getMatchId, reviewListDTO.getMatchId()) - .isNotNull(ProjectDO::getProjectAssigned) - ); + AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId()); + List list = this.baseMapper.getVocationalAssignNum(reviewListDTO.getUserId(), reviewListDTO.getMatchId(), administerDO.getCollege()); Long assignNum = list.stream().filter(projectDO -> projectDO.getProjectAssigned().equals(ProjectReview.ASSIGNED) && - projectDO.getProjectSchedule().equals(reviewListDTO.getProjectStatus()) && projectDO.getProjectGroup().equals(reviewListDTO.getProjectGroup())).count(); + projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count(); Long unassignedNum = list.stream().filter(projectDO -> projectDO.getProjectAssigned().equals(ProjectReview.UNASSIGNED) && - projectDO.getProjectSchedule().equals(reviewListDTO.getProjectStatus()) && projectDO.getProjectGroup().equals(reviewListDTO.getProjectGroup())).count(); + projectDO.getProjectSchedule().equals(reviewListDTO.getProjectSchedule())).count(); - Long vocRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.SECONDARY_GROUP)).count(); - Long vocFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.SECONDARY_GROUP)).count(); - Long secRematchNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); - Long secFinalNum = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); -// Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.PRELIMINARY_REVIEW) && projectDO.getProjectGroup().equals(ProjectType.VOCATIONAL_GROUP)).count(); + Long secPreliminaryNUm = list.stream().filter(projectDO -> projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)).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.setVocRematchNum(vocRematchNum); - projectAssignNumVO.setVocFinalNum(vocFinalNum); projectAssignNumVO.setSecRematchNum(secRematchNum); projectAssignNumVO.setSecFinalNum(secFinalNum); -// projectAssignNumVO.setSecPreliminaryNUm(secPreliminaryNUm); + projectAssignNumVO.setSecPreliminaryNUm(secPreliminaryNUm); return projectAssignNumVO; } @@ -960,6 +1021,8 @@ public class ProjectServiceImpl extends ServiceImpl imple projectDO.setProjectStatus(ProjectStatus.UN_SUBMITTED); projectDO.setProjectType(ProjectType.MAIN_TRACK); projectDO.setProjectGroup(ProjectType.MAIN_TRACK); + projectDO.setProjectAssigned(ProjectReview.UNASSIGNED); + projectDO.setProjectReview(ProjectReview.TO_REVIEWED); if (matchDictDO != null) { projectDO.setMatchId(matchDictDO.getId()); } @@ -1313,10 +1376,17 @@ public class ProjectServiceImpl extends ServiceImpl imple } } + @Override public void confirm(ProjectDO projectDO) { ProjectDO projectDO1 = this.baseMapper.selectById(projectDO.getId()); projectDO1.setProjectStatus(ProjectReview.TO_REVIEWED); + + StudentDO studentDO = studentService.getById(projectDO1.getProposerId()); + + //发送短信 + aliyunSmsUtil.sendNotice(studentDO.getTelephone()); + this.baseMapper.updateById(projectDO1); } @@ -1497,7 +1567,7 @@ public class ProjectServiceImpl extends ServiceImpl imple pd.setProjectStatus(ProjectStatus.UN_SUBMITTED); this.baseMapper.updateById(pd); } -// + // @Override // public IPage getSeedTrackProject(ProjectListPageDTO projectListPageDTO) { // StudentDO studentDO = (StudentDO) Localstorage.getUser(); @@ -1732,6 +1802,8 @@ public class ProjectServiceImpl extends ServiceImpl imple } projectDO.setProjectStatus(ProjectStatus.UN_SUBMITTED); projectDO.setProjectSchedule(ProjectSchedule.REGISTER); + projectDO.setProjectReview(ProjectReview.TO_REVIEWED); + projectDO.setProjectAssigned(ProjectReview.UNASSIGNED); projectDO.setProjectGroup(createVocationalProjectDTO.getProjectGroup()); } @@ -2267,23 +2339,26 @@ public class ProjectServiceImpl extends ServiceImpl imple project.setId(projectDO.getId()); - if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule()) ){ - if ( approveDTO.getProjectStatus() == 7) { + if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule())) { + if (approveDTO.getProjectStatus() == 7) { project.setProjectStatus(ProjectStatus.ABANDON); } else { project.setProjectSchedule(ProjectSchedule.SCHOOL_REVIEW); project.setProjectStatus(ProjectReview.TO_REVIEWED); } - + project.setProjectAssigned(ProjectReview.UNASSIGNED); + project.setProjectReview(ProjectReview.TO_REVIEWED); } - if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())){ + if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())) { if (approveDTO.getProjectStatus() == 7) { project.setProjectStatus(ProjectStatus.ABANDON); } else { project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW); project.setProjectStatus(ProjectReview.TO_REVIEWED); } + project.setProjectAssigned(ProjectReview.UNASSIGNED); + project.setProjectReview(ProjectReview.TO_REVIEWED); } if (ProjectSchedule.SEMI_FINAL_REVIEW.equals(projectDO.getProjectSchedule())) { @@ -2303,12 +2378,12 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (approveDTO.getProjectStatus() == 4) { project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_BRONZE_AWARD); - }else if (approveDTO.getProjectStatus() == 7){ + } else if (approveDTO.getProjectStatus() == 7) { project.setProjectStatus(ProjectStatus.ABANDON); } } - if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())){ + if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())) { /** * 决赛通过 ---> 决赛通过 */ @@ -2318,10 +2393,10 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (approveDTO.getProjectStatus() == 6) { project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_SILVER_AWARD); - }else if (approveDTO.getProjectStatus() == 2){ + } else if (approveDTO.getProjectStatus() == 2) { project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_WINNING_AWARD); - }else if (approveDTO.getProjectStatus() == 4){ + } else if (approveDTO.getProjectStatus() == 4) { project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_BRONZE_AWARD); } @@ -2396,14 +2471,10 @@ public class ProjectServiceImpl extends ServiceImpl imple @Override public void exportProjectAll(ProjectCollegeListDTO projectCollegeListDTO) { List data = new ArrayList<>(); + AdministerDO administerDO = administerDAO.selectById(projectCollegeListDTO.getUserId()); ExportProjectDTO project = new ExportProjectDTO(); - List list = this.baseMapper.selectList(new QueryWrapper() - .lambda() - .ne(ProjectDO::getProjectStatus, ProjectStatus.UN_SUBMITTED) - .eq(ProjectDO::getProjectGroup, projectCollegeListDTO.getProjectGroup()) - .eq(ProjectDO::getProjectSchedule, projectCollegeListDTO.getProjectSchedule()) - .eq(ProjectDO::getMatchId, projectCollegeListDTO.getMatchId())); + List list = this.baseMapper.exportProjectReview(projectCollegeListDTO.getUserId(), projectCollegeListDTO.getMatchId(), projectCollegeListDTO.getProjectSchedule(), administerDO.getCollege()); if (list != null && list.size() > 0) { for (ProjectDO projectDO : list) { if (projectDO != null) { @@ -2414,6 +2485,7 @@ public class ProjectServiceImpl extends ServiceImpl imple project.setName(studentDO.getName()); project.setMajor(studentDO.getMajor()); project.setTelephone(studentDO.getTelephone()); + project.setCollege(studentDO.getCollege()); } MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId()); @@ -2432,7 +2504,7 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (memberDO.getType().equals(MemberType.MENTOR)) { teacher += memberDO.getName() + ","; } else if (memberDO.getType().equals(MemberType.PRINCIPAL)) { - project.setStudentNo(memberDO.getStudentNo()); +// project.setEducation(memberDO.getDeleteTime()); } } if (StringUtils.isNotBlank(teamMember)) { @@ -2491,7 +2563,7 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (memberDO.getType().equals(MemberType.MENTOR)) { teacher += memberDO.getName() + ","; } else if (memberDO.getType().equals(MemberType.PRINCIPAL)) { - project.setStudentNo(memberDO.getStudentNo()); +// project.setStudentNo(memberDO.getStudentNo()); } } if (StringUtils.isNotBlank(teamMember)) { @@ -2524,23 +2596,27 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectDO project = new ProjectDO(); project.setId(projectDO.getId()); - if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule()) ){ - if ( approveDTO.getProjectStatus() == 7) { + if (ProjectSchedule.REGISTER.equals(projectDO.getProjectSchedule())) { + if (approveDTO.getProjectStatus() == 7) { project.setProjectStatus(ProjectStatus.ABANDON); } else { project.setProjectSchedule(ProjectSchedule.SCHOOL_REVIEW); project.setProjectStatus(ProjectReview.TO_REVIEWED); } - + project.setProjectAssigned(ProjectReview.UNASSIGNED); + project.setProjectReview(ProjectReview.TO_REVIEWED); } - if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())){ + + if (ProjectSchedule.SCHOOL_REVIEW.equals(projectDO.getProjectSchedule())) { if (approveDTO.getProjectStatus() == 7) { project.setProjectStatus(ProjectStatus.ABANDON); } else { project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW); project.setProjectStatus(ProjectReview.TO_REVIEWED); } + project.setProjectAssigned(ProjectReview.UNASSIGNED); + project.setProjectReview(ProjectReview.TO_REVIEWED); } if (ProjectSchedule.SEMI_FINAL_REVIEW.equals(projectDO.getProjectSchedule())) { @@ -2560,16 +2636,16 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (approveDTO.getProjectStatus() == 4) { project.setProjectSchedule(ProjectSchedule.SEMI_FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_BRONZE_AWARD); - }else if (approveDTO.getProjectStatus() == 7){ + } else if (approveDTO.getProjectStatus() == 7) { project.setProjectStatus(ProjectStatus.ABANDON); } } - if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())){ + if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())) { /** * 决赛通过 ---> 决赛通过 */ - if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())){ + if (ProjectSchedule.FINAL_REVIEW.equals(projectDO.getProjectSchedule())) { /** * 决赛通过 ---> 决赛通过 */ @@ -2579,10 +2655,10 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (approveDTO.getProjectStatus() == 6) { project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_SILVER_AWARD); - }else if (approveDTO.getProjectStatus() == 2){ + } else if (approveDTO.getProjectStatus() == 2) { project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_WINNING_AWARD); - }else if (approveDTO.getProjectStatus() == 4){ + } else if (approveDTO.getProjectStatus() == 4) { project.setProjectSchedule(ProjectSchedule.FINAL_REVIEW); project.setProjectStatus(ProjectStatus.REMATCH_BRONZE_AWARD); } @@ -2703,6 +2779,7 @@ public class ProjectServiceImpl extends ServiceImpl imple project.setName(studentDO.getName()); project.setMajor(studentDO.getMajor()); project.setTelephone(studentDO.getTelephone()); + project.setCollege(studentDO.getCollege()); } MatchDictDO matchDictDO = matchDictService.getById(projectDO.getMatchId()); @@ -2721,7 +2798,7 @@ public class ProjectServiceImpl extends ServiceImpl imple } else if (memberDO.getType().equals(MemberType.MENTOR)) { teacher += memberDO.getName() + ","; } else if (memberDO.getType().equals(MemberType.PRINCIPAL)) { - project.setStudentNo(memberDO.getStudentNo()); +// project.setStudentNo(memberDO.getStudentNo()); } } if (StringUtils.isNotBlank(teamMember)) { @@ -2801,6 +2878,7 @@ public class ProjectServiceImpl extends ServiceImpl imple @Override public IPage getReviewList(ReviewListDTO reviewListDTO) { + AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId()); if (reviewListDTO.getProjectReview() != null) { if (reviewListDTO.getProjectReview().equals(ProjectReview.TO_REVIEWED) || reviewListDTO.getProjectReview().equals(ProjectReview.SUBMITTED)) { @@ -2819,7 +2897,9 @@ public class ProjectServiceImpl extends ServiceImpl imple reviewListDTO.getMatchId(), reviewListDTO.getProjectStatus(), reviewListDTO.getProjectAssigned(), - reviewListDTO.getProjectProgress()); + reviewListDTO.getProjectProgress(), + reviewListDTO.getProjectTrack(), + reviewListDTO.getUserId(), administerDO.getCollege()); for (ReviewListVO record : iPage.getRecords()) { StudentDO studentDO = studentService.getById(record.getProposerId()); @@ -3207,7 +3287,6 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, project.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, project.getProjectGroup()) .eq(ProjectReviewPeriodDO::getProjectSchedule, project.getProjectSchedule())); if (projectReviewPeriodDO != null) { if (projectReviewPeriodDO.getStartTime().after(new Date())) { @@ -3234,7 +3313,8 @@ public class ProjectServiceImpl extends ServiceImpl imple Integer num = projectReviewService.count(new QueryWrapper() .lambda() - .eq(ProjectReviewDO::getProjectId, project.getId())); + .eq(ProjectReviewDO::getProjectId, project.getId()) + .eq(ProjectReviewDO::getProjectSchedule, projectReviewDO.getProjectSchedule())); Integer submitNum = projectReviewService.count(new QueryWrapper() .lambda() @@ -3264,7 +3344,6 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectReviewPeriodDO projectReviewPeriodDO = projectReviewPeriodService.getOne(new QueryWrapper() .lambda() .eq(ProjectReviewPeriodDO::getMatchId, project.getMatchId()) - .eq(ProjectReviewPeriodDO::getProjectGroup, project.getProjectGroup()) .eq(ProjectReviewPeriodDO::getProjectSchedule, project.getProjectSchedule())); if (projectReviewPeriodDO != null) { if (projectReviewPeriodDO.getStartTime().after(new Date())) { @@ -3291,7 +3370,8 @@ public class ProjectServiceImpl extends ServiceImpl imple Integer num = projectReviewService.count(new QueryWrapper() .lambda() - .eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId())); + .eq(ProjectReviewDO::getProjectId, projectReviewScoreDTO.getId()) + .eq(ProjectReviewDO::getProjectSchedule, projectReviewDO.getProjectSchedule())); Integer submitNum = projectReviewService.count(new QueryWrapper() .lambda() @@ -3306,7 +3386,7 @@ public class ProjectServiceImpl extends ServiceImpl imple ProjectReviewDO projectReview = new ProjectReviewDO(); projectReview.setId(projectReviewDO.getId()); - projectReview.setScore(projectReviewScoreDTO.getScore()); + projectReview.setScore(projectReviewDO.getReviewScore()); projectReview.setReviewStatus(ProjectReview.SUBMITTED); projectReview.setReviewTime(new Date()); projectReview.setReviewOpinion(projectReviewDO.getReviewOpinion()); @@ -3617,7 +3697,7 @@ public class ProjectServiceImpl extends ServiceImpl imple projectDataOverview.setFinalsSilverAwardNum(finalsSilverAwardNum); projectDataOverview.setFinalsGoldAwardNum(finalsGoldAwardNum); projectDataOverview.setSchoolProjectNum(schoolProjectNum + preliminaryProjectNum + rematchProjectNum + finalProjectNum); - projectDataOverview.setRematchProjectNum(rematchProjectNum + finalProjectNum); + projectDataOverview.setRematchProjectNum(rematchProjectNum); projectDataOverview.setPreliminaryProjectNum(preliminaryProjectNum); projectDataOverview.setRegisteringNum(registeringNum++); @@ -3625,7 +3705,7 @@ public class ProjectServiceImpl extends ServiceImpl imple 初赛比例 */ if (preliminaryProjectNum > 0) { - Double preliminaryProportion = new BigDecimal(preliminaryProjectNum).divide(new BigDecimal(preliminaryProjectNum + rematchProjectNum + finalProjectNum), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue(); + Double preliminaryProportion = new BigDecimal(preliminaryProjectNum).divide(new BigDecimal(projectDataOverview.getProjectNum()), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue(); projectDataOverview.setPreliminaryProportion(preliminaryProportion); } else { projectDataOverview.setRematchProportion(0.0); @@ -3634,8 +3714,8 @@ public class ProjectServiceImpl extends ServiceImpl imple /* 复赛比例 */ - if (rematchProjectNum > 0 && schoolProjectNum > 0) { - Double rematchProportion = new BigDecimal(rematchProjectNum + finalProjectNum).divide(new BigDecimal(preliminaryProjectNum + rematchProjectNum + finalProjectNum), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue(); + if (rematchProjectNum > 0) { + Double rematchProportion = new BigDecimal(rematchProjectNum).divide(new BigDecimal(projectDataOverview.getProjectNum()), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue(); projectDataOverview.setRematchProportion(rematchProportion); } else { projectDataOverview.setRematchProportion(0.0); @@ -3645,8 +3725,8 @@ public class ProjectServiceImpl extends ServiceImpl imple /* 决赛比例 */ - if (finalProjectNum > 0 && rematchProjectNum > 0) { - Double finalProportion = new BigDecimal(finalProjectNum).divide(new BigDecimal(rematchProjectNum + finalProjectNum), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue(); + if (finalProjectNum > 0) { + Double finalProportion = new BigDecimal(finalProjectNum).divide(new BigDecimal(projectDataOverview.getProjectNum()), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue(); projectDataOverview.setFinalProportion(finalProportion); } else { projectDataOverview.setFinalProportion(0.0); @@ -3702,16 +3782,14 @@ public class ProjectServiceImpl extends ServiceImpl imple List data = new ArrayList<>(); List fieldList = ExcelUtil.getField(ProjectJudgeVO.class); ProjectJudgeVO projectJudgeVO = new ProjectJudgeVO(); - List projectList = this.baseMapper.selectList(new QueryWrapper() - .lambda() - .ne(ProjectDO::getProjectSchedule, ProjectSchedule.SCHOOL_REVIEW) - .eq(StringUtils.isNotBlank(reviewListDTO.getProjectGroup()), ProjectDO::getProjectGroup, reviewListDTO.getProjectGroup()) - .eq(StringUtils.isNotBlank(reviewListDTO.getProjectSchedule()), ProjectDO::getProjectSchedule, reviewListDTO.getProjectSchedule()) - .eq(ProjectDO::getMatchId, reviewListDTO.getMatchId())); + AdministerDO administerDO = administerDAO.selectById(reviewListDTO.getUserId()); + List projectList = this.baseMapper.exportProjectReview(reviewListDTO.getUserId(), reviewListDTO.getMatchId(), reviewListDTO.getProjectSchedule(), administerDO.getCollege()); for (ProjectDO projectDO : projectList) { if (projectDO != null) { projectJudgeVO.setProjectName(projectDO.getProjectName()); - projectJudgeVO.setProjectProgress(projectDO.getProjectProgress()); + projectJudgeVO.setProjectGroup(projectDO.getProjectGroup()); + projectJudgeVO.setProjectTrack(projectDO.getProjectTrack()); + projectJudgeVO.setUnitTrack(projectDO.getUnitTrack()); projectJudgeVO.setProjectSchedule(projectDO.getProjectSchedule()); // projectJudgeVO.setCollege(projectDO.getCollege()); @@ -3723,6 +3801,7 @@ public class ProjectServiceImpl extends ServiceImpl imple StudentDO studentDO = studentService.getById(projectDO.getProposerId()); if (studentDO != null) { projectJudgeVO.setLeader(studentDO.getName()); + projectJudgeVO.setCollege(studentDO.getCollege()); } Map map = JSON.parseObject(JSON.toJSONString(projectJudgeVO), Map.class); @@ -3767,7 +3846,7 @@ public class ProjectServiceImpl extends ServiceImpl imple for (ProjectDO projectDO : projectList) { if (projectDO != null) { projectJudgeVO.setProjectName(projectDO.getProjectName()); - projectJudgeVO.setProjectProgress(projectDO.getProjectProgress()); +// projectJudgeVO.setProjectProgress(projectDO.getProjectProgress()); projectJudgeVO.setProjectSchedule(projectDO.getProjectSchedule()); // projectJudgeVO.setCollege(projectDO.getCollege()); @@ -4032,6 +4111,7 @@ public class ProjectServiceImpl extends ServiceImpl imple @Override public SeedTrackProjectNumVO getSeedTrackProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO) { + AdministerDO administerDO = administerDAO.selectById(seedTrackProjectNumDTO.getUserId()); Map map = Localstorage.getMap(); CollegesDictDO collegesDictDO = new CollegesDictDO(); if (map.get("type").equals(Platform.school)) { @@ -4039,7 +4119,7 @@ public class ProjectServiceImpl extends ServiceImpl imple } SeedTrackProjectNumVO seedTrackProjectNumVO = new SeedTrackProjectNumVO(); - List list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), seedTrackProjectNumDTO.getProjectProgress()); + List list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), seedTrackProjectNumDTO.getProjectProgress(), seedTrackProjectNumDTO.getUserId(), administerDO.getCollege()); Integer schoolProjectNum = 0; Integer rematchProjectNum = 0; Integer finalProjectNum = 0; @@ -4095,7 +4175,7 @@ public class ProjectServiceImpl extends ServiceImpl imple } else { project.setTelephone(memberDO.getTelephone()); } - project.setStudentNo(memberDO.getStudentNo()); +// project.setStudentNo(memberDO.getStudentNo()); } else if (memberDO.getType().equals(MemberType.TEAM_MEMBER)) { teamMember += memberDO.getName() + ","; } else if (memberDO.getType().equals(MemberType.MENTOR)) { diff --git a/src/main/java/com/zhongzhi/service/impl/ProjectTrackServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/ProjectTrackServiceImpl.java new file mode 100644 index 0000000..23e0803 --- /dev/null +++ b/src/main/java/com/zhongzhi/service/impl/ProjectTrackServiceImpl.java @@ -0,0 +1,20 @@ +package com.zhongzhi.service.impl; + +import com.zhongzhi.model.ProjectTrackDO; +import com.zhongzhi.dao.ProjectTrackDAO; +import com.zhongzhi.service.ProjectTrackService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** +*

+ * 赛道字典表 服务实现类 + *

+* +* @author DengMin +* @since 2025-03-28 +*/ +@Service + public class ProjectTrackServiceImpl extends ServiceImpl implements ProjectTrackService { + + } diff --git a/src/main/java/com/zhongzhi/service/impl/StudentServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/StudentServiceImpl.java index 7799377..58d2521 100644 --- a/src/main/java/com/zhongzhi/service/impl/StudentServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/StudentServiceImpl.java @@ -103,12 +103,12 @@ public class StudentServiceImpl extends ServiceImpl imple throw new HttpException(10024); } - CollegesDictDO collegesDictDO = collegesDictService.getOne(new QueryWrapper() - .lambda() - .eq(CollegesDictDO::getName, studentDO.getCollege())); - if(collegesDictDO.getLoginStatus() == 0) { - throw new HttpException(10067); - } +// CollegesDictDO collegesDictDO = collegesDictService.getOne(new QueryWrapper() +// .lambda() +// .eq(CollegesDictDO::getName, studentDO.getCollege())); +// if(collegesDictDO.getLoginStatus() == 0) { +// throw new HttpException(10067); +// } String token = JwtUtil.generateToken(studentDO.getId(), SmsCode.student); BeanUtils.copyProperties(studentDO, studentInfoVO); diff --git a/src/main/java/com/zhongzhi/vo/administer/AdministerVO.java b/src/main/java/com/zhongzhi/vo/administer/AdministerVO.java index 4627d04..cfbe23a 100644 --- a/src/main/java/com/zhongzhi/vo/administer/AdministerVO.java +++ b/src/main/java/com/zhongzhi/vo/administer/AdministerVO.java @@ -8,6 +8,8 @@ import java.util.List; @Data public class AdministerVO { + private Long id; + private String token; private String username; diff --git a/src/main/java/com/zhongzhi/vo/administer/GetAdministerPageVO.java b/src/main/java/com/zhongzhi/vo/administer/GetAdministerPageVO.java new file mode 100644 index 0000000..f519375 --- /dev/null +++ b/src/main/java/com/zhongzhi/vo/administer/GetAdministerPageVO.java @@ -0,0 +1,17 @@ +package com.zhongzhi.vo.administer; + +import com.zhongzhi.model.AdministerDO; +import com.zhongzhi.model.AdministerPermissionDO; +import com.zhongzhi.model.AdministerTrackMappingDO; +import com.zhongzhi.vo.permission.PermissionVO; +import lombok.Data; + +import java.util.List; + +@Data +public class GetAdministerPageVO extends AdministerDO { + + private List administerTrackMappingDOS; + + private List administerPermissionDOS; +} diff --git a/src/main/java/com/zhongzhi/vo/college/GetCollegeInfoVO.java b/src/main/java/com/zhongzhi/vo/college/GetCollegeInfoVO.java new file mode 100644 index 0000000..6338a0a --- /dev/null +++ b/src/main/java/com/zhongzhi/vo/college/GetCollegeInfoVO.java @@ -0,0 +1,14 @@ +package com.zhongzhi.vo.college; + +import lombok.Data; + +@Data +public class GetCollegeInfoVO { + + private Long id; + + private String name; + + private String code; + +} diff --git a/src/main/java/com/zhongzhi/vo/judge/ProjectJudgePageVO.java b/src/main/java/com/zhongzhi/vo/judge/ProjectJudgePageVO.java index 9f0c41f..c9076cc 100644 --- a/src/main/java/com/zhongzhi/vo/judge/ProjectJudgePageVO.java +++ b/src/main/java/com/zhongzhi/vo/judge/ProjectJudgePageVO.java @@ -56,4 +56,6 @@ public class ProjectJudgePageVO { * 待评审数量 */ private Integer notReviewedNum; + + private String projectTrack; } diff --git a/src/main/java/com/zhongzhi/vo/oss/UploadFileVO.java b/src/main/java/com/zhongzhi/vo/oss/UploadFileVO.java index fd0ecd5..92715f1 100644 --- a/src/main/java/com/zhongzhi/vo/oss/UploadFileVO.java +++ b/src/main/java/com/zhongzhi/vo/oss/UploadFileVO.java @@ -7,4 +7,6 @@ public class UploadFileVO { private String url; + private String requestId; + } diff --git a/src/main/java/com/zhongzhi/vo/project/ProjectAssignNumVO.java b/src/main/java/com/zhongzhi/vo/project/ProjectAssignNumVO.java index 7db3089..1ab511d 100644 --- a/src/main/java/com/zhongzhi/vo/project/ProjectAssignNumVO.java +++ b/src/main/java/com/zhongzhi/vo/project/ProjectAssignNumVO.java @@ -5,27 +5,27 @@ import lombok.Data; @Data public class ProjectAssignNumVO { +// /** +// * 中职复赛项目数量 +// */ +// private Long vocRematchNum; +// /** +// * 中职决赛项目数量 +// */ +// private Long vocFinalNum; /** - * 中职复赛项目数量 - */ - private Long vocRematchNum; - /** - * 中职决赛项目数量 - */ - private Long vocFinalNum; - /** - * 高职复赛项目数量 + * 复赛项目数量 */ private Long secRematchNum; /** - * 高职决赛项目数量 + * 决赛项目数量 */ private Long secFinalNum; /** - * 高职初赛项目数量 + * 初赛项目数量 */ -// private Long secPreliminaryNUm; + private Long secPreliminaryNUm; /** * 已分配 diff --git a/src/main/java/com/zhongzhi/vo/project/ProjectJudgeVO.java b/src/main/java/com/zhongzhi/vo/project/ProjectJudgeVO.java index 1cbfbcb..88e2d67 100644 --- a/src/main/java/com/zhongzhi/vo/project/ProjectJudgeVO.java +++ b/src/main/java/com/zhongzhi/vo/project/ProjectJudgeVO.java @@ -16,11 +16,17 @@ public class ProjectJudgeVO { private String leader; @ExcelColumn(col = 4, value = "组别") - private String projectProgress; + private String projectGroup; - @ExcelColumn(col = 5, value = "院校") + @ExcelColumn(col = 5, value = "赛道") + private String projectTrack; + + @ExcelColumn(col = 6, value = "单元赛道") + private String unitTrack; + + @ExcelColumn(col = 7, value = "院校") private String college; - @ExcelColumn(col = 6, value = "阶段") + @ExcelColumn(col = 8, value = "阶段") private String projectSchedule; } diff --git a/src/main/java/com/zhongzhi/vo/project/ProjectPageVO.java b/src/main/java/com/zhongzhi/vo/project/ProjectPageVO.java index 51e7607..df6b9c3 100644 --- a/src/main/java/com/zhongzhi/vo/project/ProjectPageVO.java +++ b/src/main/java/com/zhongzhi/vo/project/ProjectPageVO.java @@ -26,8 +26,14 @@ public class ProjectPageVO { private String projectTrack; + private String school; + private String college; + private String major; + + private String telephone; + private String name; private Double score; diff --git a/src/main/java/com/zhongzhi/vo/project/ReviewListVO.java b/src/main/java/com/zhongzhi/vo/project/ReviewListVO.java index 02e7fd2..8e09858 100644 --- a/src/main/java/com/zhongzhi/vo/project/ReviewListVO.java +++ b/src/main/java/com/zhongzhi/vo/project/ReviewListVO.java @@ -15,8 +15,18 @@ public class ReviewListVO { private String projectGroup; + private String college; + private String school; + private String major; + + private String telephone; + + private String projectTrack; + + private String unitTrack; + private String projectSchedule; private String reviewResult; diff --git a/src/main/java/com/zhongzhi/vo/project/SeedTrackProjectDetailVO.java b/src/main/java/com/zhongzhi/vo/project/SeedTrackProjectDetailVO.java index 5bcf8ac..2f8c35c 100644 --- a/src/main/java/com/zhongzhi/vo/project/SeedTrackProjectDetailVO.java +++ b/src/main/java/com/zhongzhi/vo/project/SeedTrackProjectDetailVO.java @@ -11,6 +11,7 @@ import com.zhongzhi.model.ProjectWorksDO; import com.zhongzhi.vo.member.ProjectMemberVO; import com.zhongzhi.vo.review.FinalsReviewVO; import com.zhongzhi.vo.review.ReMatchReviewVO; +import com.zhongzhi.vo.review.SchoolReviewVO; import lombok.Data; import java.util.List; @@ -284,6 +285,11 @@ public class SeedTrackProjectDetailVO extends ProjectMemberVO { /** * 复赛评分 */ + private List schools; + + /** + * 复赛评分 + */ private List rematch; /** @@ -329,4 +335,8 @@ public class SeedTrackProjectDetailVO extends ProjectMemberVO { private Integer editStatus; private String vodUrl; + + private String aboveProvinceReward; + + private String rewardUrl; } diff --git a/src/main/java/com/zhongzhi/vo/project/VocationalProjectNum.java b/src/main/java/com/zhongzhi/vo/project/VocationalProjectNum.java index b643557..b697add 100644 --- a/src/main/java/com/zhongzhi/vo/project/VocationalProjectNum.java +++ b/src/main/java/com/zhongzhi/vo/project/VocationalProjectNum.java @@ -6,32 +6,21 @@ import lombok.Data; public class VocationalProjectNum { /** - * 中职复赛项目数量 + * 初赛项目数量 */ - private Long vocRematchNum; + private Long secPreliminaryNUm; /** - * 中职决赛项目数量 - */ - private Long vocFinalNum; - /** - * 高职复赛项目数量 + * 复赛项目数量 */ private Long secRematchNum; /** - * 高职决赛项目数量 + * 决赛项目数量 */ private Long secFinalNum; - - /** - * 高职初赛项目数量 - */ -// private Long secPreliminaryNUm; - /** * 已评审项目数量 */ private Long reviewedNum; - /** * 待评审项目数量 */ diff --git a/src/main/java/com/zhongzhi/vo/project/VocationalReviewNumVO.java b/src/main/java/com/zhongzhi/vo/project/VocationalReviewNumVO.java index 7f5322e..5942a48 100644 --- a/src/main/java/com/zhongzhi/vo/project/VocationalReviewNumVO.java +++ b/src/main/java/com/zhongzhi/vo/project/VocationalReviewNumVO.java @@ -5,28 +5,29 @@ import lombok.Data; @Data public class VocationalReviewNumVO { +// /** +// * 中职复赛项目数量 +// */ +// private Long vocRematchNum; +// /** +// * 中职决赛项目数量 +// */ +// private Long vocFinalNum; + /** - * 中职复赛项目数量 - */ - private Long vocRematchNum; - /** - * 中职决赛项目数量 + * 初赛项目数量 */ - private Long vocFinalNum; + private Long secPreliminaryNUm; + /** - * 高职复赛项目数量 + * 复赛项目数量 */ private Long secRematchNum; /** - * 高职决赛项目数量 + * 决赛项目数量 */ private Long secFinalNum; - /** - * 高职初赛项目数量 - */ - private Long secPreliminaryNUm; - private Long review; private Long notReview; diff --git a/src/main/java/com/zhongzhi/vo/review/SchoolReviewVO.java b/src/main/java/com/zhongzhi/vo/review/SchoolReviewVO.java index 2d4cbfb..5ffba30 100644 --- a/src/main/java/com/zhongzhi/vo/review/SchoolReviewVO.java +++ b/src/main/java/com/zhongzhi/vo/review/SchoolReviewVO.java @@ -26,4 +26,6 @@ public class SchoolReviewVO { * 评审时间 */ private String schoolTime; + + private String schoolJudgeName; } diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index b380fb7..380c65f 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -3,11 +3,11 @@ server.port=23503 # 数据源配置 # 数据源配置 -spring.datasource.url=jdbc:mysql://139.224.253.21:3306/gtja?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.url=jdbc:mysql://116.62.57.92:3306/gtja?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=devloper +spring.datasource.password=dev@1553$ spring.datasource.druid.initialSize=5 spring.datasource.druid.minIdle=5 spring.datasource.druid.maxActive=20 diff --git a/src/main/resources/application-pre.properties b/src/main/resources/application-pre.properties deleted file mode 100644 index 29105f0..0000000 --- a/src/main/resources/application-pre.properties +++ /dev/null @@ -1,24 +0,0 @@ -# 预生产环境配置 -# 端口号 -server.port=11210 -# 数据源配置 -spring.datasource.url=jdbc:mysql://116.62.57.92:3306/zhongzhi?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai -spring.datasource.type=com.alibaba.druid.pool.DruidDataSource -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -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.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 \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 076e9c4..d17911d 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,8 +1,10 @@ # 生产环境配置 # 端口号 server.port=23503 +server.tomcat.connection-timeout=600000 # 数据源配置 -spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/gtja?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai +#spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/gtja?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai +spring.datasource.url=jdbc:mysql://rm-uf62202s176hufw8x0o.mysql.rds.aliyuncs.com:3306/gtja?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=ykadmin_new @@ -10,8 +12,8 @@ spring.datasource.password=youkedb608@good spring.datasource.druid.initialSize=5 spring.datasource.druid.minIdle=5 spring.datasource.druid.maxActive=20 -spring.datasource.druid.maxWait=60000 -spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.maxWait=600000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=600000 spring.datasource.druid.minEvictableIdleTimeMillis=300000 spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL spring.datasource.druid.testWhileIdle=true diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 65a1c08..a507699 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,5 @@ # 环境配置 -spring.profiles.active=dev +spring.profiles.active=prod # 文件编码 UTF8 spring.mandatory-file-encoding=UTF-8 spring.jackson.time-zone=GMT+8 @@ -25,8 +25,8 @@ logging.config=classpath:logback-spring.xml # 阿里云短信 sms.product=Dysmsapi sms.domain=dysmsapi.aliyuncs.com -sms.accessKeyId=LTAI5tPAH7P7WQVeowo517BE -sms.accessKeySecret=0ueqhIfdAZyw5lWlBVSLpAxTtx37RY +sms.accessKeyId=LTAI5tLUBG4B6QxhHrhddc7p +sms.accessKeySecret=eber38QGHZixTQ6bFfrd80kbg67jIP sms.rcsapi=http://rcsapi.wo.cn:8000/umcinterface/sendtempletmsg sms.cpcode=AABNUV sms.excode=210120 diff --git a/src/main/resources/mapper/AdministerDAO.xml b/src/main/resources/mapper/AdministerDAO.xml index 84b27ed..da99f28 100644 --- a/src/main/resources/mapper/AdministerDAO.xml +++ b/src/main/resources/mapper/AdministerDAO.xml @@ -2,21 +2,26 @@ - - - - - - - - - - - - - - - id, telephone, username, avatar, role, create_time, update_time, delete_time - + + + update administer t + set t.telephone = #{telephone}, + t.username = #{username}, + t.avatar = #{avatar}, + t.role = #{role}, + t.college = #{college} + where id = #{id} + diff --git a/src/main/resources/mapper/AdministerTrackMappingMapper.xml b/src/main/resources/mapper/AdministerTrackMappingMapper.xml new file mode 100644 index 0000000..a75dfc2 --- /dev/null +++ b/src/main/resources/mapper/AdministerTrackMappingMapper.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/src/main/resources/mapper/CollegesDictDAO.xml b/src/main/resources/mapper/CollegesDictDAO.xml index 389fa09..f2796b7 100644 --- a/src/main/resources/mapper/CollegesDictDAO.xml +++ b/src/main/resources/mapper/CollegesDictDAO.xml @@ -60,4 +60,17 @@ where delete_time is null + diff --git a/src/main/resources/mapper/FinalMatchMemberMapper.xml b/src/main/resources/mapper/FinalMatchMemberMapper.xml index ad0c356..058520e 100644 --- a/src/main/resources/mapper/FinalMatchMemberMapper.xml +++ b/src/main/resources/mapper/FinalMatchMemberMapper.xml @@ -113,7 +113,7 @@ FROM and t.member_type != '车' GROUP BY - t.college_id + t3.NAME,t.college_id - + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/mapper/PermissionsDAO.xml b/src/main/resources/mapper/PermissionsDAO.xml index dc39742..fbb2be5 100644 --- a/src/main/resources/mapper/PermissionsDAO.xml +++ b/src/main/resources/mapper/PermissionsDAO.xml @@ -18,13 +18,17 @@ diff --git a/src/main/resources/mapper/ProjectDAO.xml b/src/main/resources/mapper/ProjectDAO.xml index d3a7af7..0d085bb 100644 --- a/src/main/resources/mapper/ProjectDAO.xml +++ b/src/main/resources/mapper/ProjectDAO.xml @@ -2,68 +2,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - create_time, - update_time, - id, proposer_id, item_field, logo_uri, project_name, project_group, match_id,college ,classification, address, - project_intro, project_creativity, scientific_principle, application_prospect, road_show_form, restriction, - project_transform, result_transfer, competition_owner, competition_first, both_invention, project_progress, - company_name, legal_person_status, legal_person_name, position, register_fund, register_date, register_province, - register_address, unify_code, privacy_setting, project_status, project_schedule, project_type, delelte_time - ,print_attachment, print_attachment_type, print_attachment_name, project_review, project_assigned,edit_status - - @@ -205,9 +179,13 @@ pr.review_status as reviewStatus, pr.review_score as reviewScore, pr.score as score, - pr.review_opinion + pr.review_opinion, + t.college school, + t.major, + t.telephone from project p left join project_review pr on pr.project_id = p.id + left join student t on p.proposer_id = t.id and pr.judge_id = #{judgeId} @@ -233,7 +211,6 @@ and p.delete_time is null and pr.delete_time is null - order by p.order_no @@ -438,4 +430,84 @@ AND t2.delete_time IS NULL + + + + + diff --git a/src/main/resources/mapper/ProjectJudgeDAO.xml b/src/main/resources/mapper/ProjectJudgeDAO.xml index 73f2d7c..33dcdb1 100644 --- a/src/main/resources/mapper/ProjectJudgeDAO.xml +++ b/src/main/resources/mapper/ProjectJudgeDAO.xml @@ -35,12 +35,15 @@ and status = #{status} and delete_time is null + + and project_track like concat('%', #{projectTrack}, '%') + diff --git a/src/main/resources/mapper/ProjectScheduleRecordDAO.xml b/src/main/resources/mapper/ProjectScheduleRecordDAO.xml index a902614..330990c 100644 --- a/src/main/resources/mapper/ProjectScheduleRecordDAO.xml +++ b/src/main/resources/mapper/ProjectScheduleRecordDAO.xml @@ -27,7 +27,7 @@