From 06c35f82b4e7ef63b978fb298b41a5ac0152f5cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Tue, 25 Jul 2023 09:59:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ReportController.java | 15 ++++++++++++--- .../trading_trading/dto/GradeWeightDetailBO.java | 3 +++ .../forex/trading_trading/entity/Report.java | 4 ++++ .../trading_trading/service/ReportService.java | 11 +++++++++++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java index d4c37d9..f5c1976 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java @@ -2,6 +2,7 @@ package com.sztzjy.forex.trading_trading.controller; import com.sztzjy.forex.trading_trading.annotation.Permission; import com.sztzjy.forex.trading_trading.annotation.aspect.PermissionType; +import com.sztzjy.forex.trading_trading.entity.Report; import com.sztzjy.forex.trading_trading.entity.ReportWithBLOBs; import com.sztzjy.forex.trading_trading.service.ReportService; import com.sztzjy.forex.trading_trading.util.ResultEntity; @@ -23,11 +24,11 @@ public class ReportController { private ReportService reportService; @PostMapping("/uploadReport") - public ResultEntity uploadReport(@RequestParam("file") MultipartFile file, + public ResultEntity uploadReport(@RequestParam("file") MultipartFile file, @RequestParam String memberId, @RequestParam String fileName, @RequestParam String tariningId) throws IOException { - return new ResultEntity<>(reportService.uploadReport(file.getInputStream(),fileName,memberId,tariningId)); + return new ResultEntity<>(reportService.uploadReport(file.getInputStream(), fileName, memberId, tariningId)); } @PostMapping("/submitReport") @@ -48,6 +49,14 @@ public class ReportController { @ApiOperation("教师端--实训报告下载") @GetMapping("download") public void download(@RequestParam String id, HttpServletResponse response) { - reportService.download(id,response); + reportService.download(id, response); + } + + + @ApiOperation("教师端--获取学生上传的报告") + @GetMapping("getReportByMemberId") + public ResultEntity getReportByMemberId(@RequestParam String memberId + ) { + return new ResultEntity<>(reportService.findByMemberId(memberId)); } } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/dto/GradeWeightDetailBO.java b/src/main/java/com/sztzjy/forex/trading_trading/dto/GradeWeightDetailBO.java index 0321bde..4ca4569 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/dto/GradeWeightDetailBO.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/dto/GradeWeightDetailBO.java @@ -35,4 +35,7 @@ public class GradeWeightDetailBO { this.score = score; this.level = level; } + + public GradeWeightDetailBO() { + } } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/Report.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/Report.java index 4175338..1186a08 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/entity/Report.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/Report.java @@ -1,6 +1,7 @@ package com.sztzjy.forex.trading_trading.entity; import cn.hutool.core.util.IdUtil; +import io.swagger.annotations.ApiModelProperty; import javax.persistence.Column; @@ -30,6 +31,7 @@ public class Report { * * @mbg.generated Thu Jul 20 13:28:37 CST 2023 */ + private String memberId; /** @@ -39,6 +41,7 @@ public class Report { * * @mbg.generated Thu Jul 20 13:28:37 CST 2023 */ + @ApiModelProperty("实验报告文件路径") private String filePath; /** @@ -48,6 +51,7 @@ public class Report { * * @mbg.generated Thu Jul 20 13:28:37 CST 2023 */ + @ApiModelProperty("实验报告文件名") private String fileName; /** diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java index 31bfe70..75554aa 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java @@ -146,4 +146,15 @@ public class ReportService { Assert.isTrue(report!=null&&report.getFilePath()!=null,"报告不存在"); fileUtil.download(response,report.getFileName(),report.getFilePath()); } + + public Report findByMemberId(String memberId){ + ReportExample reportExample = new ReportExample(); + ReportExample.Criteria criteria = reportExample.createCriteria(); + criteria.andMemberIdEqualTo(memberId); + List reports = reportsMapper.selectByExample(reportExample); + if(reports!=null&&reports.size()>0){ + return reports.get(0); + } + return null; + } } From 88889b23abcf81d4cdfc11586e4fba6265508f0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Tue, 25 Jul 2023 10:06:11 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forex/trading_trading/service/MemberService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java index f7d335f..0765f9d 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java @@ -114,7 +114,7 @@ public class MemberService { MemberExample example = new MemberExample(); MemberExample.Criteria criteria = example.createCriteria(); criteria.andTrainingIdEqualTo(trainingId); - example.setOrderByClause("stuRank ASC"); + example.setOrderByClause("stu_rank ASC"); PageHelper.startPage(index, size); return new PageInfo<>(memberMapper.selectByExample(example)); } @@ -134,7 +134,13 @@ public class MemberService { criteria.andTrainingNameEqualTo(trainingName); } if (markStatus != null) { - //TODO 待确定评分状态 + //未评分 + if (markStatus == 0) { + criteria.andReportScoreIsNull(); + } else { + //已评分 + criteria.andReportScoreIsNotNull(); + } } if (StringUtils.hasText(keyword)) { criteria.andNameLike("%" + keyword + "%"); From 8b95942c5d5311093e5d515e2c1c887756aecaf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Tue, 25 Jul 2023 15:22:18 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ReportController.java | 23 +++-- .../service/ReportService.java | 83 ++++++++++++------- .../util/file/LocalFileUtil.java | 2 +- 3 files changed, 72 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java index f5c1976..468aaab 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/ReportController.java @@ -1,9 +1,14 @@ package com.sztzjy.forex.trading_trading.controller; +import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess; import com.sztzjy.forex.trading_trading.annotation.Permission; import com.sztzjy.forex.trading_trading.annotation.aspect.PermissionType; +import com.sztzjy.forex.trading_trading.config.security.JwtUser; +import com.sztzjy.forex.trading_trading.config.security.TokenProvider; +import com.sztzjy.forex.trading_trading.entity.Member; import com.sztzjy.forex.trading_trading.entity.Report; import com.sztzjy.forex.trading_trading.entity.ReportWithBLOBs; +import com.sztzjy.forex.trading_trading.service.MemberService; import com.sztzjy.forex.trading_trading.service.ReportService; import com.sztzjy.forex.trading_trading.util.ResultEntity; import io.swagger.annotations.Api; @@ -22,15 +27,19 @@ import java.io.IOException; public class ReportController { @Autowired private ReportService reportService; + @Autowired + private MemberService memberService; + @ApiOperation("学生端--上传实训报告") @PostMapping("/uploadReport") - public ResultEntity uploadReport(@RequestParam("file") MultipartFile file, + public ResultEntity uploadReport(@RequestParam("file")@RequestPart(name = "file") MultipartFile file, @RequestParam String memberId, - @RequestParam String fileName, - @RequestParam String tariningId) throws IOException { - return new ResultEntity<>(reportService.uploadReport(file.getInputStream(), fileName, memberId, tariningId)); + @RequestParam String fileName) { + Member member = memberService.selectByPrimaryKey(memberId); + reportService.uploadReport(file, fileName, member); + return new ResultEntity(HttpStatus.OK); } - + @ApiOperation("学生端--提交实训报告") @PostMapping("/submitReport") public ResultEntity submitReport(@RequestBody ReportWithBLOBs report) { return new ResultEntity<>(reportService.submitReport(report)); @@ -46,9 +55,11 @@ public class ReportController { return new ResultEntity(HttpStatus.OK); } + @AnonymousAccess @ApiOperation("教师端--实训报告下载") @GetMapping("download") - public void download(@RequestParam String id, HttpServletResponse response) { + public void download(@RequestParam String id, String TOKEN,HttpServletResponse response) { + TokenProvider.getJWTUser(TOKEN); reportService.download(id, response); } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java index 75554aa..6eadb73 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/ReportService.java @@ -1,5 +1,6 @@ package com.sztzjy.forex.trading_trading.service; +import com.sztzjy.forex.trading_trading.config.security.JwtUser; import com.sztzjy.forex.trading_trading.entity.*; import com.sztzjy.forex.trading_trading.mappers.MemberMapper; import com.sztzjy.forex.trading_trading.mappers.ReportMapper; @@ -7,6 +8,8 @@ import com.sztzjy.forex.trading_trading.util.file.IFileUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; @@ -52,7 +55,7 @@ public class ReportService { } // 指定服务器目录 - public String uploadReport(InputStream fileInputStream, String fileName, String memberId,String trainingId) { + public String uploadReport(InputStream fileInputStream, String fileName, String memberId, String trainingId) { MemberExample memberExample = new MemberExample(); memberExample.createCriteria().andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId); List members = memberMapper.selectByExample(memberExample); @@ -61,28 +64,51 @@ public class ReportService { reportExample.createCriteria().andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId); Double reportScore = member.getReportScore(); List reportWithBLOBs = reportsMapper.selectByExampleWithBLOBs(reportExample); - if (reportScore == null) { - String filePath = fileUtil.upload(fileName, fileInputStream); - if (!reportWithBLOBs.isEmpty()) { - ReportWithBLOBs resultReport = reportWithBLOBs.get(0); - resultReport.setFilePath(filePath); - resultReport.setFileName(fileName); - resultReport.setTrainingId(trainingId); - reportsMapper.updateByExampleSelective(resultReport, reportExample); - } else { - ReportWithBLOBs report = new ReportWithBLOBs(); - report.setFileName(filePath); - report.setFilePath(fileName); - report.setMemberId(memberId); - report.setTrainingId(trainingId); - reportsMapper.insert(report); - } - return "上传成功"; + if (reportScore == null) { + String filePath = fileUtil.upload(fileName, fileInputStream); + if (!reportWithBLOBs.isEmpty()) { + ReportWithBLOBs resultReport = reportWithBLOBs.get(0); + resultReport.setFilePath(filePath); + resultReport.setFileName(fileName); + resultReport.setTrainingId(trainingId); + reportsMapper.updateByExampleSelective(resultReport, reportExample); + } else { + ReportWithBLOBs report = new ReportWithBLOBs(); + report.setFileName(filePath); + report.setFilePath(fileName); + report.setMemberId(memberId); + report.setTrainingId(trainingId); + reportsMapper.insert(report); } + return "上传成功"; + } return "老师已评分,禁止上传"; } + public void uploadReport(MultipartFile file, String fileName, Member member) { + String filePath = fileUtil.upload(file); + ReportExample reportExample = new ReportExample(); + reportExample.createCriteria().andMemberIdEqualTo(member.getMemberId()); + List reports = reportsMapper.selectByExampleWithBLOBs(reportExample); + if(reports!=null&&reports.size()>0){ + ReportWithBLOBs report = reports.get(0); + if(StringUtils.hasText(report.getFilePath())){ + fileUtil.remove(report.getFilePath()); + } + report.setFilePath(filePath); + report.setFileName(fileName); + reportsMapper.updateByExample(report,reportExample); + }else{ + ReportWithBLOBs report = new ReportWithBLOBs(); + report.setFileName(fileName); + report.setFilePath(filePath); + report.setMemberId(member.getMemberId()); + report.setTrainingId(member.getTrainingId()); + reportsMapper.insert(report); + } + } + // // 指定服务器目录 // public String uploadReport(InputStream fileInputStream, String fileName, String memberId,String trainingId) { @@ -128,31 +154,30 @@ public class ReportService { // } - - public void review(String reportId,Double score){ + public void review(String reportId, Double score) { Report report = reportsMapper.selectByPrimaryKey(reportId); - Assert.isTrue(report!=null&&report.getMemberId()!=null,"报告不存在"); + Assert.isTrue(report != null && report.getMemberId() != null, "报告不存在"); Member member = memberMapper.selectByPrimaryKey(report.getMemberId()); - Assert.isTrue(member!=null&&member.getTrainingId()!=null,"数据异常"); + Assert.isTrue(member != null && member.getTrainingId() != null, "数据异常"); Training training = trainingService.findById(member.getTrainingId()); - Assert.isTrue(training!=null&&training.getWeightId()!=null,"数据异常"); - member.setReportScore(gradeWeightService.findReportScore(training.getWeightId(),score)); + Assert.isTrue(training != null && training.getWeightId() != null, "数据异常"); + member.setReportScore(gradeWeightService.findReportScore(training.getWeightId(), score)); memberMapper.updateByPrimaryKey(member); } - public void download(String id, HttpServletResponse response){ + public void download(String id, HttpServletResponse response) { Report report = reportsMapper.selectByPrimaryKey(id); - Assert.isTrue(report!=null&&report.getFilePath()!=null,"报告不存在"); - fileUtil.download(response,report.getFileName(),report.getFilePath()); + Assert.isTrue(report != null && report.getFilePath() != null, "报告不存在"); + fileUtil.download(response, report.getFileName(), report.getFilePath()); } - public Report findByMemberId(String memberId){ + public Report findByMemberId(String memberId) { ReportExample reportExample = new ReportExample(); ReportExample.Criteria criteria = reportExample.createCriteria(); criteria.andMemberIdEqualTo(memberId); List reports = reportsMapper.selectByExample(reportExample); - if(reports!=null&&reports.size()>0){ + if (reports != null && reports.size() > 0) { return reports.get(0); } return null; diff --git a/src/main/java/com/sztzjy/forex/trading_trading/util/file/LocalFileUtil.java b/src/main/java/com/sztzjy/forex/trading_trading/util/file/LocalFileUtil.java index 2bab7fa..68b06ab 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/util/file/LocalFileUtil.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/util/file/LocalFileUtil.java @@ -65,7 +65,7 @@ public class LocalFileUtil implements IFileUtil{ public boolean remove(String path) { if (!StringUtils.hasText(path)) return false; File file = new File(getFullPath(path)); - Assert.isTrue(file.exists(), "文件已被删除或不存在该文件"); + if (!file.exists()) return false; return file.delete(); } From 40482821017d424112fb10ba6123759d9c023ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Tue, 25 Jul 2023 16:47:42 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TrainingController.java | 9 ++++++--- .../forex/trading_trading/mappers/MemberMapper.java | 12 ++++++++---- .../forex/trading_trading/service/MemberService.java | 7 ++++++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java index 665aeb8..2633f75 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java @@ -269,8 +269,11 @@ public class TrainingController { @Permission(codes = PermissionType.TRAINING_MANAGEMENT_SEARCH) @ApiOperation("根据班级id获取实训列表") @GetMapping("/findTrainingListByClassId") - public ResultEntity>> findTrainingListByClassId(@ApiParam("实训记录id") @RequestParam String classId) { - Assert.hasText(classId,"班级id不能为空"); - return new ResultEntity>>(HttpStatus.OK, memberService.selectTrainingListByClassId(classId)); + public ResultEntity>> findTrainingListByClassId(@ApiParam("实训记录id") String classId) { + if(!StringUtils.hasText(classId)){ + JwtUser user = TokenProvider.getJWTUser(request); + return new ResultEntity<>(HttpStatus.OK, memberService.selectAllTrainingList(user.getSchoolId())); + } + return new ResultEntity<>(HttpStatus.OK, memberService.selectTrainingListByClassId(classId)); } } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java b/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java index 31cad77..aa1f983 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java @@ -139,8 +139,12 @@ public interface MemberMapper { List> selectClassListByTrainingId(@Param("trainingId") String trainingId); - @Select("SELECT class_id,class_grade FROM sys_member where " + - "classId =#{classId} " + - "GROUP BY class_grade,class_id") - List> selectTrainingListByClassId(@Param("classId") String classId); + @Select("SELECT training_id,training_name FROM sys_member where " + + "class_id =#{classId} " + + "GROUP BY training_id,training_name") + List> selectTrainingListByClassId(@Param("classId") Integer classId); + + @Select("select training_id,training_name from sys_member where school_id=#{schoolId} " + + "group by training_id,training_name") + List> selectAllTrainingList(int schoolId); } \ No newline at end of file diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java index 0765f9d..5b35a93 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java @@ -2,6 +2,7 @@ package com.sztzjy.forex.trading_trading.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.sztzjy.forex.trading_trading.config.security.JwtUser; import com.sztzjy.forex.trading_trading.dto.MemberVO; import com.sztzjy.forex.trading_trading.entity.Member; import com.sztzjy.forex.trading_trading.entity.MemberExample; @@ -191,6 +192,10 @@ public class MemberService { } public List> selectTrainingListByClassId(String trainingId) { - return memberMapper.selectTrainingListByClassId(trainingId); + return memberMapper.selectTrainingListByClassId(Integer.valueOf(trainingId)); + } + + public List> selectAllTrainingList(int schoolId){ + return memberMapper.selectAllTrainingList(schoolId); } }