作业考试接口对接修改

main
@t2652009480 3 months ago
parent 20913b3955
commit 2e61db913f

@ -24,11 +24,11 @@ import javax.annotation.Resource;
public class StuAcademicRecordController { public class StuAcademicRecordController {
@Resource @Resource
StuAcademicRecordService recordService; StuAcademicRecordService recordService;
@ApiOperation("分享营销展示(包含排序)") @ApiOperation("学习成绩展示")
@PostMapping("/getAcademicRecord") @PostMapping("/getAcademicRecord")
@AnonymousAccess @AnonymousAccess
public ResultEntity getAcademicRecord(String userId) { public ResultEntity getAcademicRecord(String userId) {
return new ResultEntity(HttpStatus.OK, "分享营销展示", recordService.getAcademicRecord(userId)); return new ResultEntity(HttpStatus.OK, "学习成绩展示", recordService.getAcademicRecord(userId));
} }
} }

@ -75,35 +75,32 @@ public class StuTaskPracticeController {
TchEconomicTradeDTO tchEconomicTradeDTO=new TchEconomicTradeDTO(); TchEconomicTradeDTO tchEconomicTradeDTO=new TchEconomicTradeDTO();
tchEconomicTradeDTO.setTarget(String.valueOf(list.get(0))); tchEconomicTradeDTO.setTarget(String.valueOf(list.get(0)));
tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(1))); tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(10)));
tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(2))); tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(9)));
tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(3))); tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(8)));
tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(4))); tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(7)));
tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(5))); tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(6)));
tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(6))); tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(5)));
tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(7))); tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(4)));
tchEconomicTradeDTO.setTwoThousandAndTwentyOne(String.valueOf(list.get(8)));
tchEconomicTradeDTO.setTwoThousandAndTwentyTwo(String.valueOf(list.get(9)));
tchEconomicTradeDTO.setTwoThousandAndTwentyThree(String.valueOf(list.get(10)));
economicTradeDTOS.add(tchEconomicTradeDTO); economicTradeDTOS.add(tchEconomicTradeDTO);
// //添加默认数据 //添加默认数据
// TchEconomicTradeData tchEconomicTradeDTO=new TchEconomicTradeData(); // TchEconomicTradeData tchEconomicTradeDTO=new TchEconomicTradeData();
// tchEconomicTradeDTO.setId(UUID.randomUUID().toString()); // tchEconomicTradeDTO.setId(UUID.randomUUID().toString());
// tchEconomicTradeDTO.setTarget(String.valueOf(list.get(0))); // tchEconomicTradeDTO.setTarget(String.valueOf(list.get(0)));
// tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(1))); // tchEconomicTradeDTO.setTwoThousandAndFourteen(String.valueOf(list.get(10)));
// tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(2))); // tchEconomicTradeDTO.setTwoThousandAndFifteen(String.valueOf(list.get(9)));
// tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(3))); // tchEconomicTradeDTO.setTwoThousandAndSixteen(String.valueOf(list.get(8)));
// tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(4))); // tchEconomicTradeDTO.setTwoThousandAndSeventeen(String.valueOf(list.get(7)));
// tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(5))); // tchEconomicTradeDTO.setTwoThousandAndEighteen(String.valueOf(list.get(6)));
// tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(6))); // tchEconomicTradeDTO.setTwoThousandAndNineteen(String.valueOf(list.get(5)));
// tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(7))); // tchEconomicTradeDTO.setTwoThousandAndTwenty(String.valueOf(list.get(4)));
// tchEconomicTradeDTO.setTwoThousandAndTwentyOne(String.valueOf(list.get(8))); // tchEconomicTradeDTO.setTwoThousandAndTwentyOne(String.valueOf(list.get(3)));
// tchEconomicTradeDTO.setTwoThousandAndTwentyTwo(String.valueOf(list.get(9))); // tchEconomicTradeDTO.setTwoThousandAndTwentyTwo(String.valueOf(list.get(2)));
// tchEconomicTradeDTO.setTwoThousandAndTwentyThree(String.valueOf(list.get(10))); // tchEconomicTradeDTO.setTwoThousandAndTwentyThree(String.valueOf(list.get(1)));
// //
// //
// economicTradeDataMapper.insert(tchEconomicTradeDTO); // economicTradeDataMapper.insert(tchEconomicTradeDTO);
@ -113,7 +110,7 @@ public class StuTaskPracticeController {
Set<TchEconomicTradeDTO> economicTradeDTOSet=new HashSet<>(economicTradeDTOS); Set<TchEconomicTradeDTO> economicTradeDTOSet=new HashSet<>(economicTradeDTOS);
if(sets.equals(economicTradeDTOSet)){ if(sets.equals(economicTradeDTOSet)){
return new ResultEntity<>(HttpStatus.OK,"导入成功",economicTradeDTOS); return new ResultEntity<>(HttpStatus.OK,"导入成功",tchEconomicTradeData);
}else { }else {
return new ResultEntity<>(HttpStatus.ACCEPTED,"导入失败,表格数据不正确"); return new ResultEntity<>(HttpStatus.ACCEPTED,"导入失败,表格数据不正确");
} }

@ -1,6 +1,9 @@
package com.sztzjy.trade.controller.tch; package com.sztzjy.trade.controller.tch;
import cn.hutool.core.util.IdUtil; 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.google.gson.Gson;
import com.sztzjy.trade.annotation.AnonymousAccess; import com.sztzjy.trade.annotation.AnonymousAccess;
import com.sztzjy.trade.config.Constant; 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.StuHomeworkDetailsDTO;
import com.sztzjy.trade.entity.dto.StuHomeworkGradesDTO; import com.sztzjy.trade.entity.dto.StuHomeworkGradesDTO;
import com.sztzjy.trade.entity.dto.StuScoreDetailsInfoDTO; import com.sztzjy.trade.entity.dto.StuScoreDetailsInfoDTO;
import com.sztzjy.trade.entity.dto.tch.ExamExportDTO; import com.sztzjy.trade.entity.dto.tch.*;
import com.sztzjy.trade.entity.dto.tch.HomeworkExportDTO; import com.sztzjy.trade.mapper.*;
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.service.TchHomeworkExamService; import com.sztzjy.trade.service.TchHomeworkExamService;
import com.sztzjy.trade.util.ConvertUtil; import com.sztzjy.trade.util.ConvertUtil;
import com.sztzjy.trade.util.ResultEntity; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -63,6 +61,9 @@ public class TchHomeworkExamController {
StuAchievementInfoMapper achievementInfoMapper; StuAchievementInfoMapper achievementInfoMapper;
@Resource @Resource
StuScoreDetailsInfoMapper scoreDetailsInfoMapper; StuScoreDetailsInfoMapper scoreDetailsInfoMapper;
@Resource
StuUploadExpermentMapper uploadExpermentMapper;
@ApiOperation("题库作业/附件作业/考试展示") @ApiOperation("题库作业/附件作业/考试展示")
@PostMapping("/getHomework") @PostMapping("/getHomework")
@ -80,12 +81,9 @@ public class TchHomeworkExamController {
@ApiOperation("新增(作业/考试)") @ApiOperation("新增(作业/考试)")
@PostMapping("/add") @PostMapping("/add")
@AnonymousAccess @AnonymousAccess
public ResultEntity add(@RequestParam(required = false)String jsonObject, @RequestParam(required = false)MultipartFile file) { public ResultEntity add(@RequestBody TchHomeworkExamDTO homeworkExamDTO) {
Gson gson=new Gson();
TchHomeworkExamDTO homeworkExamDTO = gson.fromJson(jsonObject, TchHomeworkExamDTO.class);
Integer result=tchHomeworkExamService.add(homeworkExamDTO,file); Integer result=tchHomeworkExamService.add(homeworkExamDTO);
if(result>0){ if(result>0){
return new ResultEntity<>(HttpStatus.OK,"新增成功"); 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("编辑(作业/考试)") @ApiOperation("编辑(作业/考试)")
@PostMapping("/update") @PostMapping("/update")
@AnonymousAccess @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);
Integer result=tchHomeworkExamService.update(homeworkExamDTO,file);
if(result>0){ if(result>0){
return new ResultEntity<>(HttpStatus.OK,"编辑成功"); return new ResultEntity<>(HttpStatus.OK,"编辑成功");
@ -147,13 +156,34 @@ public class TchHomeworkExamController {
@AnonymousAccess @AnonymousAccess
public ResultEntity getTopic(@ApiParam("题干名称")@RequestParam(required = false) String topicName, public ResultEntity getTopic(@ApiParam("题干名称")@RequestParam(required = false) String topicName,
@ApiParam("归属课程")@RequestParam(required = false) String attCourses, @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<TchTopicDetailsDTO> 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<TchTopicDetailsDTO> dtoList) {
return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getTopicDetails(dtoList));
}
@ApiOperation("删除(作业/考试)") @ApiOperation("删除(作业/考试)")
@PostMapping("/delete") @PostMapping("/delete")
@AnonymousAccess @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("作业/考试导出") @ApiOperation("作业/考试导出")
@PostMapping("/export") @PostMapping("/export")
@AnonymousAccess @AnonymousAccess
@ -245,12 +292,16 @@ public class TchHomeworkExamController {
@ApiOperation("附件作业下载") @ApiOperation("附件作业下载")
@PostMapping("/download") @GetMapping("/attDownload")
@AnonymousAccess @AnonymousAccess
public void download(HttpServletResponse response,String id) { public void attDownload(HttpServletResponse response,Integer id) {
TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(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(); e.printStackTrace();
} }
} }
@ApiOperation("课程下拉框")
@PostMapping("/getCourseList")
@AnonymousAccess
public ResultEntity getCourseList(String schoolId) {
return tchHomeworkExamService.getCourseList(schoolId);
}
} }

@ -3,7 +3,10 @@ package com.sztzjy.trade.entity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
/** /**
* *
* @author whb * @author whb
@ -23,9 +26,13 @@ public class TchExamManage {
private String examClass; private String examClass;
@ApiModelProperty("考试开始时间") @ApiModelProperty("考试开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date examStartingTime; private Date examStartingTime;
@ApiModelProperty("考试结束时间") @ApiModelProperty("考试结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date examEndTime; private Date examEndTime;
@ApiModelProperty("平均答对数量") @ApiModelProperty("平均答对数量")
@ -46,8 +53,12 @@ public class TchExamManage {
@ApiModelProperty("用户ID") @ApiModelProperty("用户ID")
private String userId; 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; 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; private Date updateTime;
@ApiModelProperty("作答次数") @ApiModelProperty("作答次数")

@ -3,7 +3,10 @@ package com.sztzjy.trade.entity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
/** /**
* *
* @author whb * @author whb
@ -32,9 +35,13 @@ public class TchHomeworkManage {
private BigDecimal passRate; private BigDecimal passRate;
@ApiModelProperty("作业起始时间") @ApiModelProperty("作业起始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date startingTime; private Date startingTime;
@ApiModelProperty("作业终止时间") @ApiModelProperty("作业终止时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date endTime; private Date endTime;
@ApiModelProperty("1、发布 0、未发布") @ApiModelProperty("1、发布 0、未发布")
@ -49,8 +56,12 @@ public class TchHomeworkManage {
@ApiModelProperty("用户ID") @ApiModelProperty("用户ID")
private String userId; 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; 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; private Date updateTime;
@ApiModelProperty("作答次数") @ApiModelProperty("作答次数")

@ -32,15 +32,6 @@ public class TchEconomicTradeDTO {
@ApiModelProperty("2020") @ApiModelProperty("2020")
private String twoThousandAndTwenty; private String twoThousandAndTwenty;
@ApiModelProperty("2021")
private String twoThousandAndTwentyOne;
@ApiModelProperty("2022")
private String twoThousandAndTwentyTwo;
@ApiModelProperty("2023")
private String twoThousandAndTwentyThree;
@ApiModelProperty("指标") @ApiModelProperty("指标")
private String target; private String target;
} }

@ -1,7 +1,11 @@
package com.sztzjy.trade.entity.dto.tch; package com.sztzjy.trade.entity.dto.tch;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; 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.Date;
import java.util.List; import java.util.List;
@ -28,14 +32,21 @@ public class TchHomeworkExamDTO {
private List<String> classNameList; private List<String> classNameList;
@ApiModelProperty("起始时间") @ApiModelProperty("起始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date startingTime; private Date startingTime;
@ApiModelProperty("终止时间") @ApiModelProperty("终止时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date endTime; private Date endTime;
@ApiModelProperty("作业要求") @ApiModelProperty("作业要求")
private String homeworkAsk; private String homeworkAsk;
@ApiModelProperty("附件作业信息")
private String url;
@ApiModelProperty("作答次数") @ApiModelProperty("作答次数")
private Integer answersFrequency; private Integer answersFrequency;
@ -56,4 +67,5 @@ public class TchHomeworkExamDTO {
@ApiModelProperty("选题详情") @ApiModelProperty("选题详情")
private List<TchTopicDetailsDTO> topicDetailsDTOS; private List<TchTopicDetailsDTO> topicDetailsDTOS;
} }

@ -35,4 +35,6 @@ public interface StuLearningAssessmentMapper {
List<TchTopicTypeDTO> getTopicType(); List<TchTopicTypeDTO> getTopicType();
List<StuLearningAssessment> selectTopicsById(@Param("list") List<String> list); List<StuLearningAssessment> selectTopicsById(@Param("list") List<String> list);
List<String> getCourseList(String schoolId);
} }

@ -3,6 +3,7 @@ package com.sztzjy.trade.service;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.sztzjy.trade.entity.StuLearningAssessment; import com.sztzjy.trade.entity.StuLearningAssessment;
import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO; 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.entity.dto.tch.TchTopicTypeDTO;
import com.sztzjy.trade.util.ResultEntity; import com.sztzjy.trade.util.ResultEntity;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -17,9 +18,9 @@ import java.util.List;
public interface TchHomeworkExamService { public interface TchHomeworkExamService {
PageInfo getHomework(String userId, String type, Integer index, Integer size); 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<String> getSelect(String userId); List<String> getSelect(String userId);
@ -29,7 +30,7 @@ public interface TchHomeworkExamService {
Integer delete(String id, String type); Integer delete(String id, String type);
List<StuLearningAssessment> getTopic(String topicName, String attCourses, String topicType); PageInfo<StuLearningAssessment> getTopic(String topicName, String attCourses, String topicType,String schoolId,Integer index,Integer size);
void download(String id, HttpServletResponse response); void download(String id, HttpServletResponse response);
@ -40,4 +41,14 @@ public interface TchHomeworkExamService {
ResultEntity getHomeworkGrades(String id, Integer index, Integer size,String type); ResultEntity getHomeworkGrades(String id, Integer index, Integer size,String type);
ResultEntity getHomeworkDetails(String id,String studentId, Integer index, Integer size); ResultEntity getHomeworkDetails(String id,String studentId, Integer index, Integer size);
ResultEntity getCourseList(String schoolId);
List<TchTopicDetailsDTO> getTopicDetails(List<TchTopicDetailsDTO> dtoList);
TchHomeworkExamDTO getRandomTopic(List<TchTopicDetailsDTO> dtoList);
Integer release(String id, String type,Integer state);
String upload(MultipartFile file, String userId,String jsonString);
} }

@ -50,9 +50,11 @@ public class StuCommonModuleServiceImpl implements StuCommonModuleService {
detailsExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module); detailsExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module);
List<StuAssessmentQuestionDetails> stuAssessmentQuestionDetails = stuAssessmentQuestionDetailsMapper.selectByExample(detailsExample); List<StuAssessmentQuestionDetails> stuAssessmentQuestionDetails = stuAssessmentQuestionDetailsMapper.selectByExample(detailsExample);
StuUser stuUser = stuUserMapper.selectByPrimaryKey(userId);
StuLearningAssessmentExample example = new StuLearningAssessmentExample(); StuLearningAssessmentExample example = new StuLearningAssessmentExample();
StuLearningAssessmentExample.Criteria criteria = example.createCriteria(); StuLearningAssessmentExample.Criteria criteria = example.createCriteria();
criteria.andAttributionChapterEqualTo(module).andLogicEqualTo(1); criteria.andAttributionChapterEqualTo(module).andLogicEqualTo(1).andSchoolIdEqualTo(stuUser.getSchoolId());
List<StuLearningAssessment> stuLearningAssessments = stuLearningAssessmentMapper.selectByExample(example); List<StuLearningAssessment> stuLearningAssessments = stuLearningAssessmentMapper.selectByExample(example);
List<StuAssessmentQuestionDetailsDTO> stuAssessmentQuestionDetailsDTOS = convertUtil.entityToDTOList(stuLearningAssessments, StuAssessmentQuestionDetailsDTO.class); List<StuAssessmentQuestionDetailsDTO> stuAssessmentQuestionDetailsDTOS = convertUtil.entityToDTOList(stuLearningAssessments, StuAssessmentQuestionDetailsDTO.class);
if(stuAssessmentQuestionDetails.size()!=0){ if(stuAssessmentQuestionDetails.size()!=0){

@ -1,6 +1,11 @@
package com.sztzjy.trade.service.impl; 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.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.config.exception.handler.ServiceException;
import com.sztzjy.trade.entity.*; import com.sztzjy.trade.entity.*;
import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO; 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.PageUtil;
import com.sztzjy.trade.util.ResultEntity; import com.sztzjy.trade.util.ResultEntity;
import com.sztzjy.trade.util.file.IFileUtil; import com.sztzjy.trade.util.file.IFileUtil;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -56,10 +63,15 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
StuScoreDetailsInfoMapper stuScoreDetailsInfoMapper; StuScoreDetailsInfoMapper stuScoreDetailsInfoMapper;
@Autowired @Autowired
private IFileUtil fileUtil; private IFileUtil fileUtil;
@Resource
StuUploadExpermentMapper stuUploadExpermentMapper;
@Value("${file.path}")
private String filePath;
@Override @Override
public PageInfo getHomework(String userId, String type, Integer index, Integer size) { public PageInfo getHomework(String userId, String type, Integer index, Integer size) {
if(!type.equals("考试")){ if(!type.equals("考试")){
TchHomeworkManageExample homeworkManageExample=new TchHomeworkManageExample(); TchHomeworkManageExample homeworkManageExample=new TchHomeworkManageExample();
homeworkManageExample.setOrderByClause("create_time desc");
homeworkManageExample.createCriteria().andUserIdEqualTo(userId).andHomeworkTypeEqualTo(type); homeworkManageExample.createCriteria().andUserIdEqualTo(userId).andHomeworkTypeEqualTo(type);
List<TchHomeworkManage> tchHomeworkManages = homeworkManageMapper.selectByExample(homeworkManageExample); List<TchHomeworkManage> tchHomeworkManages = homeworkManageMapper.selectByExample(homeworkManageExample);
@ -67,6 +79,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
return PageUtil.pageHelper(tchHomeworkManages, index, size); return PageUtil.pageHelper(tchHomeworkManages, index, size);
}else { }else {
TchExamManageExample examManageExample=new TchExamManageExample(); TchExamManageExample examManageExample=new TchExamManageExample();
examManageExample.setOrderByClause("create_time desc");
examManageExample.createCriteria().andUserIdEqualTo(userId); examManageExample.createCriteria().andUserIdEqualTo(userId);
List<TchExamManage> tchExamManages = examManageMapper.selectByExample(examManageExample); List<TchExamManage> tchExamManages = examManageMapper.selectByExample(examManageExample);
@ -76,49 +89,20 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
} }
@Override @Override
public Integer add(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file) { public Integer add(TchHomeworkExamDTO homeworkExamDTO) {
//将班级集合集合转为字符串 //将班级集合集合转为字符串
String className=""; String className="";
for (int i = 0; i < homeworkExamDTO.getClassNameList().size(); i++) { for (int i = 0; i < homeworkExamDTO.getClassNameList().size(); i++) {
if(homeworkExamDTO.getClassNameList().size()-1==i){ if(homeworkExamDTO.getClassNameList().size()-1==i){
className=className+homeworkExamDTO.getClassNameList().get(0); className=className+homeworkExamDTO.getClassNameList().get(i);
}else { }else {
className=className+homeworkExamDTO.getClassNameList().get(0)+","; className=className+homeworkExamDTO.getClassNameList().get(i)+",";
} }
} }
// TODO: 2024/8/6 取出所选题的数量在题库中随机抽取将题目ID拼接成字符串存到数据库中
//取出所选题的总数量
List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
int quantity=0;
for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
quantity=quantity+topicDetailsDTO.getQuantity();
}
//查询题库所有题
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
if(quantity>stuLearningAssessments.size()){
throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
}
// 打乱集合
Collections.shuffle(stuLearningAssessments);
// 获取前quantity个元素
List<StuLearningAssessment> 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、考试 // TODO: 2024/8/6 1、题库作业2、附件作业3、考试
@ -143,7 +127,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
homeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); homeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
homeworkManage.setParsingState(homeworkExamDTO.getParsingState()); homeworkManage.setParsingState(homeworkExamDTO.getParsingState());
homeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); homeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
homeworkManage.setTopicId(topicId); //将题目ID转成String逗号隔开
String join = String.join(",", homeworkExamDTO.getTopicId());
homeworkManage.setTopicId(join);
homeworkManage.setTotalPeople(0); homeworkManage.setTotalPeople(0);
homeworkManage.setTatalScore(new BigDecimal(0)); homeworkManage.setTatalScore(new BigDecimal(0));
homeworkManage.setNumberPassers(0); homeworkManage.setNumberPassers(0);
@ -167,9 +154,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
homeworkManage.setState(0); homeworkManage.setState(0);
homeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk()); homeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk());
String upload = localFileUtil.upload(file); homeworkManage.setUserId(homeworkExamDTO.getUserId());
homeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl());
homeworkManage.setHomeworkAnnex(upload);
homeworkManage.setCreateTime(new Date()); homeworkManage.setCreateTime(new Date());
return homeworkManageMapper.insert(homeworkManage); return homeworkManageMapper.insert(homeworkManage);
@ -194,7 +180,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
examManage.setParsingState(homeworkExamDTO.getParsingState()); examManage.setParsingState(homeworkExamDTO.getParsingState());
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
examManage.setTopicId(topicId); //将题目ID转成String逗号隔开
String join = String.join(",", homeworkExamDTO.getTopicId());
examManage.setTopicId(join);
examManage.setRespondentsPeoples(0); examManage.setRespondentsPeoples(0);
examManage.setAnswerTotal(0); examManage.setAnswerTotal(0);
examManage.setAnswerIncorrectlyTotal(0); examManage.setAnswerIncorrectlyTotal(0);
@ -204,24 +193,58 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
//作业或考试添加成功,则继续添加选题详情 //作业或考试添加成功,则继续添加选题详情
if(insert>1){
// // TODO: 2024/8/6 取出所选题的数量在题库中随机抽取将题目ID拼接成字符串存到数据库中
// //取出所选题的总数量
// List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
// int quantity=0;
// for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
// quantity=quantity+topicDetailsDTO.getQuantity();
// }
//
// //查询题库所有题
// List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
//
// if(quantity>stuLearningAssessments.size()){
// throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
// }
//
// // 打乱集合
// Collections.shuffle(stuLearningAssessments);
//
// // 获取前quantity个元素
// List<StuLearningAssessment> 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> tchTopicDetails = convertUtil.DTOListToEntity(topicDetailsDTOS, TchTopicDetails.class); List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(homeworkExamDTO.getTopicDetailsDTOS(), TchTopicDetails.class);
for (TchTopicDetails tchTopicDetail: tchTopicDetails) { for (TchTopicDetails tchTopicDetail: tchTopicDetails) {
tchTopicDetail.setId(UUID.randomUUID().toString()); tchTopicDetail.setId(UUID.randomUUID().toString());
tchTopicDetail.setTaskName(homeworkExamDTO.getType()); tchTopicDetail.setTaskName(homeworkExamDTO.getType());
tchTopicDetail.setTaskId(string); tchTopicDetail.setTaskId(string);
return topicDetailsMapper.insert(tchTopicDetail); topicDetailsMapper.insert(tchTopicDetail);
} }
return 1;
} }
return 0; return 0;
} }
@Override @Override
public Integer update(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file) { public Integer update(TchHomeworkExamDTO homeworkExamDTO) {
//将班级集合和题目id集合转为字符串 //将班级集合和题目id集合转为字符串
String className=""; String className="";
@ -234,36 +257,36 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
} }
} }
// TODO: 2024/8/6 取出所选题的数量在题库中随机抽取将题目ID拼接成字符串存到数据库中 // // TODO: 2024/8/6 取出所选题的数量在题库中随机抽取将题目ID拼接成字符串存到数据库中
//取出所选题的总数量 // //取出所选题的总数量
List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS(); // List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
int quantity=0; // int quantity=0;
for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) { // for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
quantity=quantity+topicDetailsDTO.getQuantity(); // quantity=quantity+topicDetailsDTO.getQuantity();
} // }
//
//查询题库所有题 // //查询题库所有题
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null); // List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
//
if(quantity>stuLearningAssessments.size()){ // if(quantity>stuLearningAssessments.size()){
throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量"); // throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
} // }
//
// 打乱集合 // // 打乱集合
Collections.shuffle(stuLearningAssessments); // Collections.shuffle(stuLearningAssessments);
//
// 获取前quantity个元素 // // 获取前quantity个元素
List<StuLearningAssessment> subList = stuLearningAssessments.subList(0, quantity); // List<StuLearningAssessment> subList = stuLearningAssessments.subList(0, quantity);
//
//遍历集合取出id拼接成字符串 // //遍历集合取出id拼接成字符串
String topicId=""; // String topicId="";
for (int i = 0; i < subList.size(); i++) { // for (int i = 0; i < subList.size(); i++) {
if(subList.size()-1==i){ // if(subList.size()-1==i){
topicId=topicId+subList.get(0).getTopicId(); // topicId=topicId+subList.get(0).getTopicId();
}else { // }else {
topicId=topicId+subList.get(0).getTopicId()+","; // topicId=topicId+subList.get(0).getTopicId()+",";
} // }
} // }
// TODO: 2024/8/6 1、题库作业2、附件作业3、考试 // TODO: 2024/8/6 1、题库作业2、附件作业3、考试
int update=0; //用于判断作业或考试是否更新成功 int update=0; //用于判断作业或考试是否更新成功
@ -285,7 +308,11 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
tchHomeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); tchHomeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
tchHomeworkManage.setParsingState(homeworkExamDTO.getParsingState()); tchHomeworkManage.setParsingState(homeworkExamDTO.getParsingState());
tchHomeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); tchHomeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
tchHomeworkManage.setTopicId(topicId);
//将题目ID转成String逗号隔开
String join = String.join(",", homeworkExamDTO.getTopicId());
tchHomeworkManage.setTopicId(join);
tchHomeworkManage.setTotalPeople(0); tchHomeworkManage.setTotalPeople(0);
tchHomeworkManage.setTatalScore(new BigDecimal(0)); tchHomeworkManage.setTatalScore(new BigDecimal(0));
tchHomeworkManage.setNumberPassers(0); tchHomeworkManage.setNumberPassers(0);
@ -308,9 +335,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime()); tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime());
tchHomeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk()); tchHomeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk());
String upload = localFileUtil.upload(file);
tchHomeworkManage.setHomeworkAnnex(upload); tchHomeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl());
tchHomeworkManage.setUpdateTime(new Date()); tchHomeworkManage.setUpdateTime(new Date());
tchHomeworkManage.setTotalPeople(0); tchHomeworkManage.setTotalPeople(0);
tchHomeworkManage.setTatalScore(new BigDecimal(0)); tchHomeworkManage.setTatalScore(new BigDecimal(0));
@ -339,7 +365,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState()); examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
examManage.setParsingState(homeworkExamDTO.getParsingState()); examManage.setParsingState(homeworkExamDTO.getParsingState());
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate()); examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
examManage.setTopicId(topicId); //将题目ID转成String逗号隔开
String join = String.join(",", homeworkExamDTO.getTopicId());
examManage.setTopicId(join);
examManage.setRespondentsPeoples(0); examManage.setRespondentsPeoples(0);
examManage.setAnswerTotal(0); examManage.setAnswerTotal(0);
examManage.setAnswerIncorrectlyTotal(0); examManage.setAnswerIncorrectlyTotal(0);
@ -353,7 +382,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
if(update>0){ if(update>0){
//取出选题详情集合 //取出选题详情集合
List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(topicDetailsDTOS, TchTopicDetails.class); List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(homeworkExamDTO.getTopicDetailsDTOS(), TchTopicDetails.class);
//根据考试或作业ID查询选题详情信息 //根据考试或作业ID查询选题详情信息
TchTopicDetailsExample topicDetailsExample=new TchTopicDetailsExample(); TchTopicDetailsExample topicDetailsExample=new TchTopicDetailsExample();
@ -549,7 +578,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
} }
@Override @Override
public List<StuLearningAssessment> 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 assessmentExample=new StuLearningAssessmentExample();
StuLearningAssessmentExample.Criteria criteria=assessmentExample.createCriteria(); StuLearningAssessmentExample.Criteria criteria=assessmentExample.createCriteria();
@ -558,14 +587,17 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
} }
if(!attCourses.isEmpty()){ if(!attCourses.isEmpty()){
criteria.andAttributionCoursesEqualTo(attCourses); criteria.andAttributionChapterEqualTo(attCourses);
} }
if(!topicType.isEmpty()){ if(!topicType.isEmpty()){
criteria.andTopicTypeEqualTo(topicType); criteria.andTopicTypeEqualTo(topicType);
} }
criteria.andSchoolIdEqualTo(schoolId);
List<StuLearningAssessment> 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)); return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuHomeworkDetailsDTOS,index,size));
} }
@Override
public ResultEntity getCourseList(String schoolId) {
List<String> list=learningAssessmentMapper.getCourseList(schoolId);
return new ResultEntity(HttpStatus.OK,"课程列表展示",list);
}
@Override
public List<TchTopicDetailsDTO> getTopicDetails(List<TchTopicDetailsDTO> dtoList) {
//查询题目类型分别的总数量
List<TchTopicTypeDTO> 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<TchTopicDetailsDTO> dtoList) {
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
//分离每种题的类型
Map<String, List<StuLearningAssessment>> map = new HashMap<>();
for (StuLearningAssessment assessment : stuLearningAssessments) {
String type = assessment.getTopicType();
// 如果Map中没有此题型则初始化一个新的列表
map.putIfAbsent(type, new ArrayList<>());
// 将题目添加到对应的题型列表中
map.get(type).add(assessment);
}
//用于存储题目id
List<String> list=new ArrayList<>();
for (TchTopicDetailsDTO dto:dtoList) {
List<String> 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<String> getRandomElements(List<StuLearningAssessment> list, int n) {
if (n > list.size()) {
throw new IllegalArgumentException("请求的元素数量大于列表大小");
}
Collections.shuffle(list); // 打乱列表顺序
//返回题目ID
List<StuLearningAssessment> stuLearningAssessments = list.subList(0, n);
List<String> ids=new ArrayList<>();
for (StuLearningAssessment stuLearningAssessment:stuLearningAssessments) {
ids.add(stuLearningAssessment.getTopicId());
}
return ids; // 返回前 n 个元素的题目ID
}
} }

@ -109,6 +109,7 @@ public class TchInteractionImpl implements TchInteractionService {
public List<String> getSelect(String schoolId) { public List<String> getSelect(String schoolId) {
//直接返回所有班级名称 //直接返回所有班级名称
List<String> list = stuUserMapper.selectByClassName(schoolId);
return stuUserMapper.selectByClassName(schoolId); return stuUserMapper.selectByClassName(schoolId);
} }

@ -188,6 +188,7 @@ public class TchTeachingManagementServiceImpl implements TchTeachingManagementSe
if(startCourseManages.isEmpty()){ if(startCourseManages.isEmpty()){
//直接返回所有班级名称 //直接返回所有班级名称
List<String> list = stuUserMapper.selectByClassName(schoolId);
return stuUserMapper.selectByClassName(schoolId); return stuUserMapper.selectByClassName(schoolId);
}else { }else {

@ -558,7 +558,13 @@
where topic_id = #{topicId,jdbcType=VARCHAR} where topic_id = #{topicId,jdbcType=VARCHAR}
</update> </update>
<select id="getTopicType" resultType="com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO">
<resultMap id="TchTopicTypeResultMap" type="com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO">
<result property="type" column="topic_type"/>
<result property="quantity" column="COUNT(*)"/>
</resultMap>
<select id="getTopicType" resultType="com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO" resultMap="TchTopicTypeResultMap">
SELECT topic_type,COUNT(*) FROM `stu_learning_assessment` GROUP BY topic_type SELECT topic_type,COUNT(*) FROM `stu_learning_assessment` GROUP BY topic_type
</select> </select>
<select id="selectTopicsById" resultType="com.sztzjy.trade.entity.StuLearningAssessment" resultMap="BaseResultMap"> <select id="selectTopicsById" resultType="com.sztzjy.trade.entity.StuLearningAssessment" resultMap="BaseResultMap">
@ -568,4 +574,7 @@
#{id} #{id}
</foreach> </foreach>
</select> </select>
<select id="getCourseList" resultType="java.lang.String">
select DISTINCT attribution_chapter from stu_learning_assessment where school_id=#{schoolId}
</select>
</mapper> </mapper>

@ -429,8 +429,8 @@
SELECT * FROM `stu_user` WHERE class_name=#{startCourseName} SELECT * FROM `stu_user` WHERE class_name=#{startCourseName}
</select> </select>
<select id="selectByClassName" resultMap="BaseResultMap" resultType="java.lang.String"> <select id="selectByClassName" resultType="java.lang.String">
select DISTINCT(class_name) from stu_user where school_id=#{schoolId} and class_name!=null select DISTINCT(class_name) from stu_user where school_id=#{schoolId} and class_name!=''
</select> </select>
<select id="selectByNoClassName" resultType="java.lang.String"> <select id="selectByNoClassName" resultType="java.lang.String">
select DISTINCT(class_name) from stu_user select DISTINCT(class_name) from stu_user

Loading…
Cancel
Save