diff --git a/src/main/java/com/sztzjy/trade/controller/stu/StuAcademicRecordController.java b/src/main/java/com/sztzjy/trade/controller/stu/StuAcademicRecordController.java index 92da9ca..a6b3f2c 100644 --- a/src/main/java/com/sztzjy/trade/controller/stu/StuAcademicRecordController.java +++ b/src/main/java/com/sztzjy/trade/controller/stu/StuAcademicRecordController.java @@ -24,11 +24,11 @@ import javax.annotation.Resource; public class StuAcademicRecordController { @Resource StuAcademicRecordService recordService; - @ApiOperation("分享营销展示(包含排序)") + @ApiOperation("学习成绩展示") @PostMapping("/getAcademicRecord") @AnonymousAccess public ResultEntity getAcademicRecord(String userId) { - return new ResultEntity(HttpStatus.OK, "分享营销展示", recordService.getAcademicRecord(userId)); + return new ResultEntity(HttpStatus.OK, "学习成绩展示", recordService.getAcademicRecord(userId)); } } diff --git a/src/main/java/com/sztzjy/trade/controller/stu/StuTaskPracticeController.java b/src/main/java/com/sztzjy/trade/controller/stu/StuTaskPracticeController.java index 953f4f2..0b7b445 100644 --- a/src/main/java/com/sztzjy/trade/controller/stu/StuTaskPracticeController.java +++ b/src/main/java/com/sztzjy/trade/controller/stu/StuTaskPracticeController.java @@ -75,35 +75,32 @@ public class StuTaskPracticeController { TchEconomicTradeDTO tchEconomicTradeDTO=new TchEconomicTradeDTO(); tchEconomicTradeDTO.setTarget(String.valueOf(list.get(0))); - tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(1))); - tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(2))); - tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(3))); - tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(4))); - tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(5))); - tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(6))); - tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(7))); - tchEconomicTradeDTO.setTwoThousandAndTwentyOne(String.valueOf(list.get(8))); - tchEconomicTradeDTO.setTwoThousandAndTwentyTwo(String.valueOf(list.get(9))); - tchEconomicTradeDTO.setTwoThousandAndTwentyThree(String.valueOf(list.get(10))); + tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(10))); + tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(9))); + tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(8))); + tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(7))); + tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(6))); + tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(5))); + tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(4))); economicTradeDTOS.add(tchEconomicTradeDTO); -// //添加默认数据 + //添加默认数据 // TchEconomicTradeData tchEconomicTradeDTO=new TchEconomicTradeData(); // tchEconomicTradeDTO.setId(UUID.randomUUID().toString()); // tchEconomicTradeDTO.setTarget(String.valueOf(list.get(0))); -// tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(1))); -// tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(2))); -// tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(3))); -// tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(4))); -// tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(5))); -// tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(6))); -// tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(7))); -// tchEconomicTradeDTO.setTwoThousandAndTwentyOne(String.valueOf(list.get(8))); -// tchEconomicTradeDTO.setTwoThousandAndTwentyTwo(String.valueOf(list.get(9))); -// tchEconomicTradeDTO.setTwoThousandAndTwentyThree(String.valueOf(list.get(10))); +// tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(10))); +// tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(9))); +// tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(8))); +// tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(7))); +// tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(6))); +// tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(5))); +// tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(4))); +// tchEconomicTradeDTO.setTwoThousandAndTwentyOne(String.valueOf(list.get(3))); +// tchEconomicTradeDTO.setTwoThousandAndTwentyTwo(String.valueOf(list.get(2))); +// tchEconomicTradeDTO.setTwoThousandAndTwentyThree(String.valueOf(list.get(1))); // // // economicTradeDataMapper.insert(tchEconomicTradeDTO); @@ -113,7 +110,7 @@ public class StuTaskPracticeController { Set economicTradeDTOSet=new HashSet<>(economicTradeDTOS); if(sets.equals(economicTradeDTOSet)){ - return new ResultEntity<>(HttpStatus.OK,"导入成功",economicTradeDTOS); + return new ResultEntity<>(HttpStatus.OK,"导入成功",tchEconomicTradeData); }else { return new ResultEntity<>(HttpStatus.ACCEPTED,"导入失败,表格数据不正确"); } diff --git a/src/main/java/com/sztzjy/trade/controller/tch/TchHomeworkExamController.java b/src/main/java/com/sztzjy/trade/controller/tch/TchHomeworkExamController.java index 5528563..503d2bc 100644 --- a/src/main/java/com/sztzjy/trade/controller/tch/TchHomeworkExamController.java +++ b/src/main/java/com/sztzjy/trade/controller/tch/TchHomeworkExamController.java @@ -1,6 +1,9 @@ package com.sztzjy.trade.controller.tch; import cn.hutool.core.util.IdUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.google.gson.Gson; import com.sztzjy.trade.annotation.AnonymousAccess; import com.sztzjy.trade.config.Constant; @@ -10,14 +13,8 @@ import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO; import com.sztzjy.trade.entity.dto.StuHomeworkDetailsDTO; import com.sztzjy.trade.entity.dto.StuHomeworkGradesDTO; import com.sztzjy.trade.entity.dto.StuScoreDetailsInfoDTO; -import com.sztzjy.trade.entity.dto.tch.ExamExportDTO; -import com.sztzjy.trade.entity.dto.tch.HomeworkExportDTO; -import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO; -import com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO; -import com.sztzjy.trade.mapper.StuAchievementInfoMapper; -import com.sztzjy.trade.mapper.StuScoreDetailsInfoMapper; -import com.sztzjy.trade.mapper.TchExamManageMapper; -import com.sztzjy.trade.mapper.TchHomeworkManageMapper; +import com.sztzjy.trade.entity.dto.tch.*; +import com.sztzjy.trade.mapper.*; import com.sztzjy.trade.service.TchHomeworkExamService; import com.sztzjy.trade.util.ConvertUtil; import com.sztzjy.trade.util.ResultEntity; @@ -26,6 +23,7 @@ import com.sztzjy.trade.util.file.IFileUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.models.auth.In; import org.checkerframework.checker.units.qual.A; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; @@ -63,6 +61,9 @@ public class TchHomeworkExamController { StuAchievementInfoMapper achievementInfoMapper; @Resource StuScoreDetailsInfoMapper scoreDetailsInfoMapper; + @Resource + StuUploadExpermentMapper uploadExpermentMapper; + @ApiOperation("题库作业/附件作业/考试展示") @PostMapping("/getHomework") @@ -80,12 +81,9 @@ public class TchHomeworkExamController { @ApiOperation("新增(作业/考试)") @PostMapping("/add") @AnonymousAccess - public ResultEntity add(@RequestParam(required = false)String jsonObject, @RequestParam(required = false)MultipartFile file) { - Gson gson=new Gson(); - - TchHomeworkExamDTO homeworkExamDTO = gson.fromJson(jsonObject, TchHomeworkExamDTO.class); + public ResultEntity add(@RequestBody TchHomeworkExamDTO homeworkExamDTO) { - Integer result=tchHomeworkExamService.add(homeworkExamDTO,file); + Integer result=tchHomeworkExamService.add(homeworkExamDTO); if(result>0){ return new ResultEntity<>(HttpStatus.OK,"新增成功"); @@ -94,17 +92,28 @@ public class TchHomeworkExamController { } } + @ApiOperation("附件作业上传") + @PostMapping("/upload") + @AnonymousAccess + public ResultEntity upload(@RequestPart MultipartFile file, + @ApiParam@RequestParam("userId") String userId, + @ApiParam("文件信息(第一次上传不用传)")@RequestParam(required = false) String jsonString) { + + String url=tchHomeworkExamService.upload(file,userId,jsonString); + + + return new ResultEntity<>(HttpStatus.OK,"上传成功",url); + + } + @ApiOperation("编辑(作业/考试)") @PostMapping("/update") @AnonymousAccess - public ResultEntity update(@RequestParam(required = false) String jsonObject, @RequestParam(required = false)MultipartFile file) { + public ResultEntity update(@RequestBody TchHomeworkExamDTO homeworkExamDTO) { - Gson gson=new Gson(); - TchHomeworkExamDTO homeworkExamDTO = gson.fromJson(jsonObject, TchHomeworkExamDTO.class); - - Integer result=tchHomeworkExamService.update(homeworkExamDTO,file); + Integer result=tchHomeworkExamService.update(homeworkExamDTO); if(result>0){ return new ResultEntity<>(HttpStatus.OK,"编辑成功"); @@ -147,13 +156,34 @@ public class TchHomeworkExamController { @AnonymousAccess public ResultEntity getTopic(@ApiParam("题干名称")@RequestParam(required = false) String topicName, @ApiParam("归属课程")@RequestParam(required = false) String attCourses, - @ApiParam("题型")@RequestParam(required = false) String topicType) { + @ApiParam("题型")@RequestParam(required = false) String topicType, + @ApiParam("学校ID") String schoolId, + @ApiParam("当前页") Integer index, + @ApiParam("每页条数") Integer size) { + + + return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getTopic(topicName,attCourses,topicType,schoolId,index,size)); + } + + @ApiOperation("随机抽题--返回题目ID集合") + @PostMapping("/getRandomTopic") + @AnonymousAccess + public ResultEntity getRandomTopic(@RequestBody List dtoList) { - return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getTopic(topicName,attCourses,topicType)); + return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getRandomTopic(dtoList)); } + @ApiOperation("手动抽题--选题详情") + @PostMapping("/getTopicDetails") + @AnonymousAccess + public ResultEntity getTopicDetails(@RequestBody List dtoList) { + + + return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getTopicDetails(dtoList)); + } + @ApiOperation("删除(作业/考试)") @PostMapping("/delete") @AnonymousAccess @@ -169,6 +199,23 @@ public class TchHomeworkExamController { } } + + @ApiOperation("作业/考试发布") + @PostMapping("/release") + @AnonymousAccess + public ResultEntity release(@ApiParam("作业/考试ID")String id, + @ApiParam("作业类型(题库作业/附件作业/考试)")String type, + @ApiParam("状态(0下架 1发布)") Integer state) { + + Integer result=tchHomeworkExamService.release(id,type,state); + + if(result>0){ + return new ResultEntity<>(HttpStatus.OK,"发布成功"); + }else { + return new ResultEntity<>(HttpStatus.OK,"发布失败"); + } + } + @ApiOperation("作业/考试导出") @PostMapping("/export") @AnonymousAccess @@ -245,12 +292,16 @@ public class TchHomeworkExamController { @ApiOperation("附件作业下载") - @PostMapping("/download") + @GetMapping("/attDownload") @AnonymousAccess - public void download(HttpServletResponse response,String id) { - TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(id); + public void attDownload(HttpServletResponse response,Integer id) { + + + StuUploadExperment stuUploadExperment = uploadExpermentMapper.selectByPrimaryKey(id); + iFileUtil.download(response,stuUploadExperment.getFilePath()); + + - iFileUtil.download(response,tchHomeworkManage.getHomeworkAnnex()); } @@ -413,4 +464,14 @@ public class TchHomeworkExamController { e.printStackTrace(); } } + + @ApiOperation("课程下拉框") + @PostMapping("/getCourseList") + @AnonymousAccess + public ResultEntity getCourseList(String schoolId) { + + + return tchHomeworkExamService.getCourseList(schoolId); + } + } diff --git a/src/main/java/com/sztzjy/trade/entity/TchExamManage.java b/src/main/java/com/sztzjy/trade/entity/TchExamManage.java index a56ce35..402aa9e 100644 --- a/src/main/java/com/sztzjy/trade/entity/TchExamManage.java +++ b/src/main/java/com/sztzjy/trade/entity/TchExamManage.java @@ -3,7 +3,10 @@ package com.sztzjy.trade.entity; import java.math.BigDecimal; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; +import org.springframework.format.annotation.DateTimeFormat; + /** * * @author whb @@ -23,9 +26,13 @@ public class TchExamManage { private String examClass; @ApiModelProperty("考试开始时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date examStartingTime; @ApiModelProperty("考试结束时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date examEndTime; @ApiModelProperty("平均答对数量") @@ -46,8 +53,12 @@ public class TchExamManage { @ApiModelProperty("用户ID") private String userId; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date updateTime; @ApiModelProperty("作答次数") diff --git a/src/main/java/com/sztzjy/trade/entity/TchHomeworkManage.java b/src/main/java/com/sztzjy/trade/entity/TchHomeworkManage.java index 834b5e7..b557d51 100644 --- a/src/main/java/com/sztzjy/trade/entity/TchHomeworkManage.java +++ b/src/main/java/com/sztzjy/trade/entity/TchHomeworkManage.java @@ -3,7 +3,10 @@ package com.sztzjy.trade.entity; import java.math.BigDecimal; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; +import org.springframework.format.annotation.DateTimeFormat; + /** * * @author whb @@ -32,9 +35,13 @@ public class TchHomeworkManage { private BigDecimal passRate; @ApiModelProperty("作业起始时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date startingTime; @ApiModelProperty("作业终止时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date endTime; @ApiModelProperty("1、发布 0、未发布") @@ -49,8 +56,12 @@ public class TchHomeworkManage { @ApiModelProperty("用户ID") private String userId; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date updateTime; @ApiModelProperty("作答次数") diff --git a/src/main/java/com/sztzjy/trade/entity/dto/tch/TchEconomicTradeDTO.java b/src/main/java/com/sztzjy/trade/entity/dto/tch/TchEconomicTradeDTO.java index 1cf3dc0..1cd564a 100644 --- a/src/main/java/com/sztzjy/trade/entity/dto/tch/TchEconomicTradeDTO.java +++ b/src/main/java/com/sztzjy/trade/entity/dto/tch/TchEconomicTradeDTO.java @@ -32,15 +32,6 @@ public class TchEconomicTradeDTO { @ApiModelProperty("2020") private String twoThousandAndTwenty; - @ApiModelProperty("2021") - private String twoThousandAndTwentyOne; - - @ApiModelProperty("2022") - private String twoThousandAndTwentyTwo; - - @ApiModelProperty("2023") - private String twoThousandAndTwentyThree; - @ApiModelProperty("指标") private String target; } diff --git a/src/main/java/com/sztzjy/trade/entity/dto/tch/TchHomeworkExamDTO.java b/src/main/java/com/sztzjy/trade/entity/dto/tch/TchHomeworkExamDTO.java index 27f7aa0..f20e05e 100644 --- a/src/main/java/com/sztzjy/trade/entity/dto/tch/TchHomeworkExamDTO.java +++ b/src/main/java/com/sztzjy/trade/entity/dto/tch/TchHomeworkExamDTO.java @@ -1,7 +1,11 @@ package com.sztzjy.trade.entity.dto.tch; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; import java.util.Date; import java.util.List; @@ -28,14 +32,21 @@ public class TchHomeworkExamDTO { private List classNameList; @ApiModelProperty("起始时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date startingTime; @ApiModelProperty("终止时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date endTime; @ApiModelProperty("作业要求") private String homeworkAsk; + @ApiModelProperty("附件作业信息") + private String url; + @ApiModelProperty("作答次数") private Integer answersFrequency; @@ -56,4 +67,5 @@ public class TchHomeworkExamDTO { @ApiModelProperty("选题详情") private List topicDetailsDTOS; + } diff --git a/src/main/java/com/sztzjy/trade/mapper/StuLearningAssessmentMapper.java b/src/main/java/com/sztzjy/trade/mapper/StuLearningAssessmentMapper.java index 0e3138b..bd85e3a 100644 --- a/src/main/java/com/sztzjy/trade/mapper/StuLearningAssessmentMapper.java +++ b/src/main/java/com/sztzjy/trade/mapper/StuLearningAssessmentMapper.java @@ -35,4 +35,6 @@ public interface StuLearningAssessmentMapper { List getTopicType(); List selectTopicsById(@Param("list") List list); + + List getCourseList(String schoolId); } \ No newline at end of file diff --git a/src/main/java/com/sztzjy/trade/service/TchHomeworkExamService.java b/src/main/java/com/sztzjy/trade/service/TchHomeworkExamService.java index f243ccf..41ead44 100644 --- a/src/main/java/com/sztzjy/trade/service/TchHomeworkExamService.java +++ b/src/main/java/com/sztzjy/trade/service/TchHomeworkExamService.java @@ -3,6 +3,7 @@ package com.sztzjy.trade.service; import com.github.pagehelper.PageInfo; import com.sztzjy.trade.entity.StuLearningAssessment; import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO; +import com.sztzjy.trade.entity.dto.tch.TchTopicDetailsDTO; import com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO; import com.sztzjy.trade.util.ResultEntity; import org.springframework.web.multipart.MultipartFile; @@ -17,9 +18,9 @@ import java.util.List; public interface TchHomeworkExamService { PageInfo getHomework(String userId, String type, Integer index, Integer size); - Integer add(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file); + Integer add(TchHomeworkExamDTO homeworkExamDTO); - Integer update(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file); + Integer update(TchHomeworkExamDTO homeworkExamDTO); List getSelect(String userId); @@ -29,7 +30,7 @@ public interface TchHomeworkExamService { Integer delete(String id, String type); - List getTopic(String topicName, String attCourses, String topicType); + PageInfo getTopic(String topicName, String attCourses, String topicType,String schoolId,Integer index,Integer size); void download(String id, HttpServletResponse response); @@ -40,4 +41,14 @@ public interface TchHomeworkExamService { ResultEntity getHomeworkGrades(String id, Integer index, Integer size,String type); ResultEntity getHomeworkDetails(String id,String studentId, Integer index, Integer size); + + ResultEntity getCourseList(String schoolId); + + List getTopicDetails(List dtoList); + + TchHomeworkExamDTO getRandomTopic(List dtoList); + + Integer release(String id, String type,Integer state); + + String upload(MultipartFile file, String userId,String jsonString); } diff --git a/src/main/java/com/sztzjy/trade/service/impl/StuCommonModuleServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/StuCommonModuleServiceImpl.java index da82b32..bb85568 100644 --- a/src/main/java/com/sztzjy/trade/service/impl/StuCommonModuleServiceImpl.java +++ b/src/main/java/com/sztzjy/trade/service/impl/StuCommonModuleServiceImpl.java @@ -50,9 +50,11 @@ public class StuCommonModuleServiceImpl implements StuCommonModuleService { detailsExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module); List stuAssessmentQuestionDetails = stuAssessmentQuestionDetailsMapper.selectByExample(detailsExample); + StuUser stuUser = stuUserMapper.selectByPrimaryKey(userId); + StuLearningAssessmentExample example = new StuLearningAssessmentExample(); StuLearningAssessmentExample.Criteria criteria = example.createCriteria(); - criteria.andAttributionChapterEqualTo(module).andLogicEqualTo(1); + criteria.andAttributionChapterEqualTo(module).andLogicEqualTo(1).andSchoolIdEqualTo(stuUser.getSchoolId()); List stuLearningAssessments = stuLearningAssessmentMapper.selectByExample(example); List stuAssessmentQuestionDetailsDTOS = convertUtil.entityToDTOList(stuLearningAssessments, StuAssessmentQuestionDetailsDTO.class); if(stuAssessmentQuestionDetails.size()!=0){ diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java index 83217c8..1004e26 100644 --- a/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java +++ b/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java @@ -1,6 +1,11 @@ package com.sztzjy.trade.service.impl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.github.pagehelper.PageInfo; +import com.nimbusds.jose.shaded.gson.JsonObject; +import com.nimbusds.jose.shaded.gson.JsonParser; import com.sztzjy.trade.config.exception.handler.ServiceException; import com.sztzjy.trade.entity.*; import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO; @@ -16,7 +21,9 @@ import com.sztzjy.trade.util.ConvertUtil; import com.sztzjy.trade.util.PageUtil; import com.sztzjy.trade.util.ResultEntity; import com.sztzjy.trade.util.file.IFileUtil; +import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.util.Assert; @@ -56,10 +63,15 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { StuScoreDetailsInfoMapper stuScoreDetailsInfoMapper; @Autowired private IFileUtil fileUtil; + @Resource + StuUploadExpermentMapper stuUploadExpermentMapper; + @Value("${file.path}") + private String filePath; @Override public PageInfo getHomework(String userId, String type, Integer index, Integer size) { if(!type.equals("考试")){ TchHomeworkManageExample homeworkManageExample=new TchHomeworkManageExample(); + homeworkManageExample.setOrderByClause("create_time desc"); homeworkManageExample.createCriteria().andUserIdEqualTo(userId).andHomeworkTypeEqualTo(type); List tchHomeworkManages = homeworkManageMapper.selectByExample(homeworkManageExample); @@ -67,6 +79,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { return PageUtil.pageHelper(tchHomeworkManages, index, size); }else { TchExamManageExample examManageExample=new TchExamManageExample(); + examManageExample.setOrderByClause("create_time desc"); examManageExample.createCriteria().andUserIdEqualTo(userId); List tchExamManages = examManageMapper.selectByExample(examManageExample); @@ -76,49 +89,20 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { } @Override - public Integer add(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file) { + public Integer add(TchHomeworkExamDTO homeworkExamDTO) { //将班级集合集合转为字符串 String className=""; for (int i = 0; i < homeworkExamDTO.getClassNameList().size(); i++) { if(homeworkExamDTO.getClassNameList().size()-1==i){ - className=className+homeworkExamDTO.getClassNameList().get(0); + className=className+homeworkExamDTO.getClassNameList().get(i); }else { - className=className+homeworkExamDTO.getClassNameList().get(0)+","; + className=className+homeworkExamDTO.getClassNameList().get(i)+","; } } - // TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中 - //取出所选题的总数量 - List topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS(); - int quantity=0; - for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) { - quantity=quantity+topicDetailsDTO.getQuantity(); - } - //查询题库所有题 - List stuLearningAssessments = learningAssessmentMapper.selectByExample(null); - - if(quantity>stuLearningAssessments.size()){ - throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量"); - } - - // 打乱集合 - Collections.shuffle(stuLearningAssessments); - - // 获取前quantity个元素 - List subList = stuLearningAssessments.subList(0, quantity); - - //遍历集合,取出id拼接成字符串 - String topicId=""; - for (int i = 0; i < subList.size(); i++) { - if(subList.size()-1==i){ - topicId=topicId+subList.get(0).getTopicId(); - }else { - topicId=topicId+subList.get(0).getTopicId()+","; - } - } // TODO: 2024/8/6 1、题库作业,2、附件作业,3、考试 @@ -143,7 +127,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { homeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); homeworkManage.setParsingState(homeworkExamDTO.getParsingState()); homeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); - homeworkManage.setTopicId(topicId); + //将题目ID转成String逗号隔开 + String join = String.join(",", homeworkExamDTO.getTopicId()); + + homeworkManage.setTopicId(join); homeworkManage.setTotalPeople(0); homeworkManage.setTatalScore(new BigDecimal(0)); homeworkManage.setNumberPassers(0); @@ -167,9 +154,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { homeworkManage.setState(0); homeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk()); - String upload = localFileUtil.upload(file); - - homeworkManage.setHomeworkAnnex(upload); + homeworkManage.setUserId(homeworkExamDTO.getUserId()); + homeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl()); homeworkManage.setCreateTime(new Date()); return homeworkManageMapper.insert(homeworkManage); @@ -194,7 +180,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); examManage.setParsingState(homeworkExamDTO.getParsingState()); examManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); - examManage.setTopicId(topicId); + //将题目ID转成String逗号隔开 + String join = String.join(",", homeworkExamDTO.getTopicId()); + + examManage.setTopicId(join); examManage.setRespondentsPeoples(0); examManage.setAnswerTotal(0); examManage.setAnswerIncorrectlyTotal(0); @@ -204,24 +193,58 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { //作业或考试添加成功,则继续添加选题详情 - if(insert>1){ + +// // TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中 +// //取出所选题的总数量 +// List topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS(); +// int quantity=0; +// for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) { +// quantity=quantity+topicDetailsDTO.getQuantity(); +// } +// +// //查询题库所有题 +// List stuLearningAssessments = learningAssessmentMapper.selectByExample(null); +// +// if(quantity>stuLearningAssessments.size()){ +// throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量"); +// } +// +// // 打乱集合 +// Collections.shuffle(stuLearningAssessments); +// +// // 获取前quantity个元素 +// List subList = stuLearningAssessments.subList(0, quantity); +// +// //遍历集合,取出id拼接成字符串 +// String topicId=""; +// for (int i = 0; i < subList.size(); i++) { +// if(subList.size()-1==i){ +// topicId=topicId+subList.get(0).getTopicId(); +// }else { +// topicId=topicId+subList.get(0).getTopicId()+","; +// } +// } + + + if(insert>0){ //选题详情赋值,取出选题详情集合 - List tchTopicDetails = convertUtil.DTOListToEntity(topicDetailsDTOS, TchTopicDetails.class); + List tchTopicDetails = convertUtil.DTOListToEntity(homeworkExamDTO.getTopicDetailsDTOS(), TchTopicDetails.class); for (TchTopicDetails tchTopicDetail: tchTopicDetails) { tchTopicDetail.setId(UUID.randomUUID().toString()); tchTopicDetail.setTaskName(homeworkExamDTO.getType()); tchTopicDetail.setTaskId(string); - return topicDetailsMapper.insert(tchTopicDetail); + topicDetailsMapper.insert(tchTopicDetail); } + return 1; } return 0; } @Override - public Integer update(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file) { + public Integer update(TchHomeworkExamDTO homeworkExamDTO) { //将班级集合和题目id集合转为字符串 String className=""; @@ -234,36 +257,36 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { } } - // TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中 - //取出所选题的总数量 - List topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS(); - int quantity=0; - for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) { - quantity=quantity+topicDetailsDTO.getQuantity(); - } - - //查询题库所有题 - List stuLearningAssessments = learningAssessmentMapper.selectByExample(null); - - if(quantity>stuLearningAssessments.size()){ - throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量"); - } - - // 打乱集合 - Collections.shuffle(stuLearningAssessments); - - // 获取前quantity个元素 - List subList = stuLearningAssessments.subList(0, quantity); - - //遍历集合,取出id拼接成字符串 - String topicId=""; - for (int i = 0; i < subList.size(); i++) { - if(subList.size()-1==i){ - topicId=topicId+subList.get(0).getTopicId(); - }else { - topicId=topicId+subList.get(0).getTopicId()+","; - } - } +// // TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中 +// //取出所选题的总数量 +// List topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS(); +// int quantity=0; +// for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) { +// quantity=quantity+topicDetailsDTO.getQuantity(); +// } +// +// //查询题库所有题 +// List stuLearningAssessments = learningAssessmentMapper.selectByExample(null); +// +// if(quantity>stuLearningAssessments.size()){ +// throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量"); +// } +// +// // 打乱集合 +// Collections.shuffle(stuLearningAssessments); +// +// // 获取前quantity个元素 +// List subList = stuLearningAssessments.subList(0, quantity); +// +// //遍历集合,取出id拼接成字符串 +// String topicId=""; +// for (int i = 0; i < subList.size(); i++) { +// if(subList.size()-1==i){ +// topicId=topicId+subList.get(0).getTopicId(); +// }else { +// topicId=topicId+subList.get(0).getTopicId()+","; +// } +// } // TODO: 2024/8/6 1、题库作业,2、附件作业,3、考试 int update=0; //用于判断作业或考试是否更新成功 @@ -285,7 +308,11 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { tchHomeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); tchHomeworkManage.setParsingState(homeworkExamDTO.getParsingState()); tchHomeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); - tchHomeworkManage.setTopicId(topicId); + + //将题目ID转成String逗号隔开 + String join = String.join(",", homeworkExamDTO.getTopicId()); + + tchHomeworkManage.setTopicId(join); tchHomeworkManage.setTotalPeople(0); tchHomeworkManage.setTatalScore(new BigDecimal(0)); tchHomeworkManage.setNumberPassers(0); @@ -308,9 +335,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime()); tchHomeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk()); - String upload = localFileUtil.upload(file); - tchHomeworkManage.setHomeworkAnnex(upload); + tchHomeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl()); tchHomeworkManage.setUpdateTime(new Date()); tchHomeworkManage.setTotalPeople(0); tchHomeworkManage.setTatalScore(new BigDecimal(0)); @@ -339,7 +365,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); examManage.setParsingState(homeworkExamDTO.getParsingState()); examManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); - examManage.setTopicId(topicId); + //将题目ID转成String逗号隔开 + String join = String.join(",", homeworkExamDTO.getTopicId()); + + examManage.setTopicId(join); examManage.setRespondentsPeoples(0); examManage.setAnswerTotal(0); examManage.setAnswerIncorrectlyTotal(0); @@ -353,7 +382,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { if(update>0){ //取出选题详情集合 - List tchTopicDetails = convertUtil.DTOListToEntity(topicDetailsDTOS, TchTopicDetails.class); + List tchTopicDetails = convertUtil.DTOListToEntity(homeworkExamDTO.getTopicDetailsDTOS(), TchTopicDetails.class); //根据考试或作业ID查询选题详情信息 TchTopicDetailsExample topicDetailsExample=new TchTopicDetailsExample(); @@ -549,7 +578,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { } @Override - public List getTopic(String topicName, String attCourses, String topicType) { + public PageInfo getTopic(String topicName, String attCourses, String topicType,String schoolId,Integer index,Integer size) { StuLearningAssessmentExample assessmentExample=new StuLearningAssessmentExample(); StuLearningAssessmentExample.Criteria criteria=assessmentExample.createCriteria(); @@ -558,14 +587,17 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { } if(!attCourses.isEmpty()){ - criteria.andAttributionCoursesEqualTo(attCourses); + criteria.andAttributionChapterEqualTo(attCourses); } if(!topicType.isEmpty()){ criteria.andTopicTypeEqualTo(topicType); } + criteria.andSchoolIdEqualTo(schoolId); + + List stuLearningAssessments = learningAssessmentMapper.selectByExample(assessmentExample); - return learningAssessmentMapper.selectByExample(assessmentExample); + return PageUtil.pageHelper(stuLearningAssessments,index,size); } @@ -651,4 +683,176 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService { return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuHomeworkDetailsDTOS,index,size)); } + + @Override + public ResultEntity getCourseList(String schoolId) { + List list=learningAssessmentMapper.getCourseList(schoolId); + + return new ResultEntity(HttpStatus.OK,"课程列表展示",list); + } + + @Override + public List getTopicDetails(List dtoList) { + + //查询题目类型分别的总数量 + List topicType = learningAssessmentMapper.getTopicType(); + + for (TchTopicDetailsDTO dto:dtoList) { + for (TchTopicTypeDTO tchTopicTypeDTO:topicType) { + if(dto.getTopicType().equals(tchTopicTypeDTO.getType())){ + dto.setQuantity(tchTopicTypeDTO.getQuantity()); + } + } + } + return dtoList; + } + + @Override + public TchHomeworkExamDTO getRandomTopic(List dtoList) { + List stuLearningAssessments = learningAssessmentMapper.selectByExample(null); + + //分离每种题的类型 + Map> map = new HashMap<>(); + + for (StuLearningAssessment assessment : stuLearningAssessments) { + String type = assessment.getTopicType(); + // 如果Map中没有此题型,则初始化一个新的列表 + map.putIfAbsent(type, new ArrayList<>()); + // 将题目添加到对应的题型列表中 + map.get(type).add(assessment); + } + + + //用于存储题目id + List list=new ArrayList<>(); + for (TchTopicDetailsDTO dto:dtoList) { + + List randomElements = getRandomElements(map.get(dto.getTopicType()), dto.getTopicsSelected()); + list.addAll(randomElements); + } + TchHomeworkExamDTO tchHomeworkExamDTO=new TchHomeworkExamDTO(); + + tchHomeworkExamDTO.setTopicId(list); + tchHomeworkExamDTO.setTopicDetailsDTOS(dtoList); + return tchHomeworkExamDTO; + } + + @Override + public Integer release(String id, String type,Integer state) { + if(type.equals("考试")){ + TchExamManage examManage = examManageMapper.selectByPrimaryKey(id); + + examManage.setState(state); + + return examManageMapper.updateByPrimaryKey(examManage); + }else { + TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(id); + tchHomeworkManage.setState(state); + + return homeworkManageMapper.updateByPrimaryKey(tchHomeworkManage); + } + } + + @Override + public String upload(MultipartFile file, String userId,String jsonString) { + String upload = fileUtil.upload(file); + + if(jsonString==null){ //第一次上传 + + StuUploadExperment stuUploadExperment=new StuUploadExperment(); + Integer uuid= UUID.randomUUID().toString().replaceAll("-","").hashCode(); + uuid = uuid < 0 ? -uuid : uuid;//String.hashCode() 值会为空 + stuUploadExperment.setId(uuid); + stuUploadExperment.setUserId(userId); + stuUploadExperment.setFilePath(upload); + stuUploadExperment.setCreateTime(new Date()); + stuUploadExperment.setFileSize((double) file.getSize()); + stuUploadExperment.setFileName(file.getOriginalFilename()); + stuUploadExperment.setSufxx(getFileExtension(file.getOriginalFilename())); + + stuUploadExpermentMapper.insert(stuUploadExperment); + + // 创建 ObjectMapper 实例 + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); // 使用 ISO 8601 日期格式 + + // 将对象转换为 JSON 字符串 + try { + return objectMapper.writeValueAsString(stuUploadExperment); + + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + + }else { //非第一次上传,修改文件信息 + + try { + //将jsonString转为StuUploadExperment对象 + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); // 日期格式 + StuUploadExperment experiment = objectMapper.readValue(jsonString, StuUploadExperment.class); + + //服务器上删除上一次上传的文件 + boolean remove = fileUtil.remove(experiment.getFilePath()); + + //修改文件上传信息 + experiment.setUserId(userId); + experiment.setFilePath(upload); + experiment.setFileSize((double) file.getSize()); + experiment.setFileName(file.getOriginalFilename()); + experiment.setUpdateTime(new Date()); + experiment.setSufxx(getFileExtension(file.getOriginalFilename())); + + stuUploadExpermentMapper.updateByPrimaryKey(experiment); + + // 将对象转换为 JSON 字符串 + try { + return objectMapper.writeValueAsString(experiment); + + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + } + + + /** + * 获取文件后缀 + * @param fileName + * @return + */ + private String getFileExtension(String fileName) { + if (fileName != null && fileName.contains(".")) { + return fileName.substring(fileName.lastIndexOf('.') + 1); + } + return ""; // 没有后缀的情况 + } + + + /** + * 随机抽取题目ID + * @param list + * @param n + * @return + */ + public static List getRandomElements(List list, int n) { + if (n > list.size()) { + throw new IllegalArgumentException("请求的元素数量大于列表大小"); + } + + Collections.shuffle(list); // 打乱列表顺序 + + //返回题目ID + List stuLearningAssessments = list.subList(0, n); + List ids=new ArrayList<>(); + + for (StuLearningAssessment stuLearningAssessment:stuLearningAssessments) { + ids.add(stuLearningAssessment.getTopicId()); + } + return ids; // 返回前 n 个元素的题目ID + } } diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java index 789ae3f..51f963b 100644 --- a/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java +++ b/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java @@ -109,6 +109,7 @@ public class TchInteractionImpl implements TchInteractionService { public List getSelect(String schoolId) { //直接返回所有班级名称 + List list = stuUserMapper.selectByClassName(schoolId); return stuUserMapper.selectByClassName(schoolId); } diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchTeachingManagementServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchTeachingManagementServiceImpl.java index c85edbc..9be6129 100644 --- a/src/main/java/com/sztzjy/trade/service/impl/TchTeachingManagementServiceImpl.java +++ b/src/main/java/com/sztzjy/trade/service/impl/TchTeachingManagementServiceImpl.java @@ -188,6 +188,7 @@ public class TchTeachingManagementServiceImpl implements TchTeachingManagementSe if(startCourseManages.isEmpty()){ //直接返回所有班级名称 + List list = stuUserMapper.selectByClassName(schoolId); return stuUserMapper.selectByClassName(schoolId); }else { diff --git a/src/main/resources/mappers/StuLearningAssessmentMapper.xml b/src/main/resources/mappers/StuLearningAssessmentMapper.xml index fe931d1..9a984d2 100644 --- a/src/main/resources/mappers/StuLearningAssessmentMapper.xml +++ b/src/main/resources/mappers/StuLearningAssessmentMapper.xml @@ -558,7 +558,13 @@ where topic_id = #{topicId,jdbcType=VARCHAR} - SELECT topic_type,COUNT(*) FROM `stu_learning_assessment` GROUP BY topic_type + \ No newline at end of file diff --git a/src/main/resources/mappers/StuUserMapper.xml b/src/main/resources/mappers/StuUserMapper.xml index 8af5ead..d83af5b 100644 --- a/src/main/resources/mappers/StuUserMapper.xml +++ b/src/main/resources/mappers/StuUserMapper.xml @@ -429,8 +429,8 @@ SELECT * FROM `stu_user` WHERE class_name=#{startCourseName} - + select DISTINCT(class_name) from stu_user where school_id=#{schoolId} and class_name!=''