互动讨论、考试bug修改

main
@t2652009480 2 months ago
parent d2b64c8244
commit 7c73b66d46

@ -56,7 +56,7 @@ public class StuAcademicRecordController {
//导出的表名
String title = IdUtil.simpleUUID();
String title = userId+"项目成绩";
String[] headers = {"序号", "理实项目名称", "得分", "权重", "加权后得分"};

@ -7,6 +7,8 @@ import com.sztzjy.trade.entity.TchHomeworkManage;
import com.sztzjy.trade.entity.dto.StuAchievementInfoDTO;
import com.sztzjy.trade.entity.dto.SubmitExamPapersDTO;
import com.sztzjy.trade.mapper.StuAchievementInfoMapper;
import com.sztzjy.trade.mapper.TchHomeworkManageMapper;
import com.sztzjy.trade.mapper.TchHomeworkSetMapper;
import com.sztzjy.trade.service.StuHomeworkExamService;
import com.sztzjy.trade.util.ResultEntity;
import com.sztzjy.trade.util.file.IFileUtil;
@ -36,6 +38,8 @@ public class StuHomeworkExamController {
@Resource
StuAchievementInfoMapper achievementInfoMapper;
@Resource
TchHomeworkManageMapper homeworkManageMapper;
@Resource
IFileUtil iFileUtil;
@ApiOperation("查询作业列表")
@ -51,9 +55,10 @@ public class StuHomeworkExamController {
@ApiOperation("开始作业/展示题目")
@PostMapping("/getTopics")
@AnonymousAccess
public ResultEntity getTopics(String id) {
public ResultEntity getTopics(@ApiParam("作业/考试ID") String id,
@ApiParam("作业/考试") String type) {
return new ResultEntity<>(HttpStatus.OK,"成功",homeworkExamService.getTopics(id));
return new ResultEntity<>(HttpStatus.OK,"成功",homeworkExamService.getTopics(id,type));
}
@ -99,25 +104,28 @@ public class StuHomeworkExamController {
}
@ApiOperation("附件作业提交回显")
@PostMapping("/getEcho")
@AnonymousAccess
public ResultEntity getEcho(String id) {
return new ResultEntity<>(HttpStatus.OK,"成功",homeworkExamService.getEcho(id));
}
// @ApiOperation("附件作业提交回显")
// @PostMapping("/getEcho")
// @AnonymousAccess
// public ResultEntity getEcho(String id) {
//
// return new ResultEntity<>(HttpStatus.OK,"成功",homeworkExamService.getEcho(id));
//
// }
@ApiOperation("附件作业提交上传")
@ApiOperation("附件作业提交")
@PostMapping("/upload")
@AnonymousAccess
public ResultEntity upload(String id, MultipartFile file) {
String upload = iFileUtil.upload(file);
public ResultEntity upload(@RequestBody StuAchievementInfo stuAchievementInfo) {
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
achievementInfo.setStuHomeworkAnnex(upload);
achievementInfoMapper.updateByPrimaryKey(achievementInfo);
achievementInfoMapper.updateByPrimaryKey(stuAchievementInfo);
//修改本次附件作业的已提交人数
TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(stuAchievementInfo.getTaskId());
tchHomeworkManage.setTotalPeople(tchHomeworkManage.getTotalPeople()+1);
homeworkManageMapper.updateByPrimaryKey(tchHomeworkManage);
return new ResultEntity<>(HttpStatus.OK,"提交成功");

@ -1,6 +1,7 @@
package com.sztzjy.trade.controller.stu;
import com.sztzjy.trade.annotation.AnonymousAccess;
import com.sztzjy.trade.entity.dto.StuInitiateQuestionDTO;
import com.sztzjy.trade.entity.dto.StuReleaseDTO;
import com.sztzjy.trade.entity.dto.tch.TchReleaseDTO;
import com.sztzjy.trade.service.StuInteractionService;
@ -54,16 +55,16 @@ public class StuInteractionController {
@ApiOperation("查看历史讨论")
@PostMapping("/getAllDiscussions")
@AnonymousAccess
public ResultEntity getAllDiscussions(String userId,Integer index,Integer size) {
public ResultEntity getAllDiscussions(String userId,Integer roleId,Integer index,Integer size) {
return new ResultEntity<>(HttpStatus.OK,"成功",tchInteractionService.getAllDiscussions(userId,index,size));
return new ResultEntity<>(HttpStatus.OK,"成功",tchInteractionService.getAllDiscussions(userId,roleId,index,size));
}
@ApiOperation("我要提问列表展示")
@PostMapping("/getStuQuestioning")
@AnonymousAccess
public ResultEntity getStuQuestioning(@ApiParam("问题")@RequestParam(required = false) String problem,
public ResultEntity getStuQuestioning(@ApiParam("学生问题")@RequestParam(required = false) String problem,
@ApiParam("状态")@RequestParam(required = false) String status,
@ApiParam("关键字")@RequestParam(required = false) String keywords,
@ApiParam("userId") String userId,
@ -109,4 +110,31 @@ public class StuInteractionController {
return new ResultEntity<>(HttpStatus.ACCEPTED,"回答失败,请联系管理员");
}
}
@ApiOperation("发起提问")
@PostMapping("/initiateQuestion")
@AnonymousAccess
public ResultEntity initiateQuestion(@RequestBody StuInitiateQuestionDTO questionDTO) {
Integer publish = stuInteractionService.initiateQuestion(questionDTO);
if(publish>0){
return new ResultEntity<>(HttpStatus.OK,"提问成功");
}else {
return new ResultEntity<>(HttpStatus.ACCEPTED,"提问失败,请联系管理员");
}
}
@ApiOperation("关键词搜索")
@PostMapping("/keywordSearch")
@AnonymousAccess
public ResultEntity keywordSearch(@ApiParam("userId") String userId,
@ApiParam("关键字")@RequestParam(required = false) String keywords,
@ApiParam("当前页") Integer index,
@ApiParam("每页条数") Integer size) {
return new ResultEntity<>(HttpStatus.OK,"成功",stuInteractionService.keywordSearch(userId,keywords,index,size));
}
}

@ -4,6 +4,7 @@ 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.github.pagehelper.PageInfo;
import com.google.gson.Gson;
import com.sztzjy.trade.annotation.AnonymousAccess;
import com.sztzjy.trade.config.Constant;
@ -16,6 +17,7 @@ import com.sztzjy.trade.entity.dto.StuScoreDetailsInfoDTO;
import com.sztzjy.trade.entity.dto.tch.*;
import com.sztzjy.trade.mapper.*;
import com.sztzjy.trade.service.TchHomeworkExamService;
import com.sztzjy.trade.util.BigDecimalUtils;
import com.sztzjy.trade.util.ConvertUtil;
import com.sztzjy.trade.util.ResultEntity;
import com.sztzjy.trade.util.excel.FilePortUtil;
@ -31,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@ -63,6 +66,8 @@ public class TchHomeworkExamController {
StuScoreDetailsInfoMapper scoreDetailsInfoMapper;
@Resource
StuUploadExpermentMapper uploadExpermentMapper;
@Resource
BigDecimalUtils bigDecimalUtils;
@ApiOperation("题库作业/附件作业/考试展示")
@ -78,6 +83,18 @@ public class TchHomeworkExamController {
}
// @ApiOperation("题库作业/附件作业/考试展示")
// @GetMapping("/getInformations")
// @AnonymousAccess
// public ResultEntity getInformations(@ApiParam("用户ID") String userId,
// @ApiParam("作业类型(作业/考试)") String type) {
//
// return new ResultEntity<>(HttpStatus.OK,"成功",tchHomeworkExamService.getInformations(userId,type));
//
// }
@ApiOperation("新增(作业/考试)")
@PostMapping("/add")
@AnonymousAccess
@ -227,7 +244,7 @@ public class TchHomeworkExamController {
String title = IdUtil.simpleUUID();
if(type.equals("题库作业") || type.equals("附件作业")){
String[] headers={"题库作业名称", "作业班级", "平均得分", "及格率", "作业时间","状态"};
String[] headers={"作业名称", "作业班级", "平均得分", "及格率", "作业时间","状态"};
title=type+title;
@ -307,6 +324,8 @@ public class TchHomeworkExamController {
/*
* @Date 2023/10/11
* *
@ -319,6 +338,77 @@ public class TchHomeworkExamController {
}
@GetMapping("/getCurrencyScoreHomework")
@ApiOperation("评阅界面")
@AnonymousAccess
public ResultEntity<PageInfo<StuAchievementInfo>> getCurrencyScoreHomework(@RequestParam String schoolId,
@RequestParam Integer page,
@RequestParam Integer size,
@RequestParam String id,
@ApiParam("姓名或者学号") @RequestParam(required = false) String name,
@RequestParam(required = false) String className) {
return new ResultEntity<>(tchHomeworkExamService.getCurrencyScoreHomework(schoolId, page, size, id, name, className));
}
@PostMapping("/ratingAndComment")
@ApiOperation("老师输入评语和打分")
@AnonymousAccess
public void ratingAndComment(@RequestBody StuAchievementInfo stuAchievementInfo) {
achievementInfoMapper.updateByPrimaryKeySelective(stuAchievementInfo);
//修改本次附件作业的平均得分和及格率
TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(stuAchievementInfo.getTaskId());
//取出总得分/提交人数=平均得分
BigDecimal tatalScore = tchHomeworkManage.getTatalScore();
//平均得分
Double div = bigDecimalUtils.div(Double.parseDouble(tatalScore.toString()), tchHomeworkManage.getTotalPeople(),2);
//判断此次分数是否及格,及格则及格人数+1再用及格人数/提交人数=及格率
if(stuAchievementInfo.getScore().compareTo(BigDecimal.valueOf(60)) >= 0){
tchHomeworkManage.setNumberPassers(tchHomeworkManage.getNumberPassers()+1);
}
//及格率
Double mul = bigDecimalUtils.mul(tchHomeworkManage.getNumberPassers(), tchHomeworkManage.getTotalPeople());
tchHomeworkManage.setAverageScore(new BigDecimal(div));
tchHomeworkManage.setPassRate(new BigDecimal(mul));
homeworkManageMapper.updateByPrimaryKey(tchHomeworkManage);
}
@GetMapping("/getReportFileURLByUserIdAndModule")
@ApiOperation("获取获取单个学生的附件作业")
@AnonymousAccess
public ResultEntity getReportFileURLByUserIdAndModule(String id){
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
return new ResultEntity<>(HttpStatus.OK,"获取成功",achievementInfo.getHomeworkAnnex());
}
// @GetMapping("/getAttachmentHomeworkDetails")
// @ApiOperation("附件作业详情")
// @AnonymousAccess
// public ResultEntity<PageInfo<StuAchievementInfo>> getAttachmentHomeworkDetails(@RequestParam String schoolId,
// @RequestParam Integer page,
// @RequestParam Integer size,
// @RequestParam String id,
// @ApiParam("姓名或者学号") @RequestParam(required = false) String name,
// @RequestParam(required = false) String className) {
// return new ResultEntity<>(tchHomeworkExamService.getAttachmentHomeworkDetails(schoolId, page, size, id, name, className));
// }
@ApiOperation("作业/考试成绩-侧边展示")
@PostMapping("/getBroHomeworkGrades")
@AnonymousAccess

@ -67,9 +67,9 @@ public class TchInteractionController {
@ApiOperation("查看历史讨论")
@PostMapping("/getAllDiscussions")
@AnonymousAccess
public ResultEntity getAllDiscussions(String userId,Integer index,Integer size) {
public ResultEntity getAllDiscussions(String userId,Integer roleId,Integer index,Integer size) {
return new ResultEntity<>(HttpStatus.OK,"成功",interactionService.getAllDiscussions(userId,index,size));
return new ResultEntity<>(HttpStatus.OK,"成功",interactionService.getAllDiscussions(userId,roleId,index,size));
}
@ -124,9 +124,10 @@ public class TchInteractionController {
@ApiParam("状态")@RequestParam(required = false) String status,
@ApiParam("关键字")@RequestParam(required = false) String keywords,
@ApiParam("当前页") Integer index,
@ApiParam("每页条数") Integer size) {
@ApiParam("每页条数") Integer size,
String schoolId) {
return new ResultEntity<>(HttpStatus.OK,"成功",interactionService.getStuQuestioning(problem,status,keywords,index,size));
return new ResultEntity<>(HttpStatus.OK,"成功",interactionService.getStuQuestioning(problem,status,keywords,index,size,schoolId));
}

@ -3,10 +3,7 @@ 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;
/**
*
*
@ -63,13 +60,9 @@ public class StuAchievementInfo {
private String homeworkAnnex;
@ApiModelProperty(notes = "作业起始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date startingTime;
@ApiModelProperty(notes = "作业终止时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date endTime;
@ApiModelProperty(notes = "教师评语")
@ -84,6 +77,12 @@ public class StuAchievementInfo {
@ApiModelProperty(notes = "学生提交作业附件URL")
private String stuHomeworkAnnex;
@ApiModelProperty(notes = "学校ID")
private String schoolId;
@ApiModelProperty(notes = "作业类型(考试为空)")
private String homeworkType;
public String getId() {
return id;
}
@ -259,4 +258,20 @@ public class StuAchievementInfo {
public void setStuHomeworkAnnex(String stuHomeworkAnnex) {
this.stuHomeworkAnnex = stuHomeworkAnnex == null ? null : stuHomeworkAnnex.trim();
}
public String getSchoolId() {
return schoolId;
}
public void setSchoolId(String schoolId) {
this.schoolId = schoolId == null ? null : schoolId.trim();
}
public String getHomeworkType() {
return homeworkType;
}
public void setHomeworkType(String homeworkType) {
this.homeworkType = homeworkType == null ? null : homeworkType.trim();
}
}

@ -1555,6 +1555,146 @@ public class StuAchievementInfoExample {
addCriterion("stu_homework_annex not between", value1, value2, "stuHomeworkAnnex");
return (Criteria) this;
}
public Criteria andSchoolIdIsNull() {
addCriterion("school_id is null");
return (Criteria) this;
}
public Criteria andSchoolIdIsNotNull() {
addCriterion("school_id is not null");
return (Criteria) this;
}
public Criteria andSchoolIdEqualTo(String value) {
addCriterion("school_id =", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdNotEqualTo(String value) {
addCriterion("school_id <>", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdGreaterThan(String value) {
addCriterion("school_id >", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdGreaterThanOrEqualTo(String value) {
addCriterion("school_id >=", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdLessThan(String value) {
addCriterion("school_id <", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdLessThanOrEqualTo(String value) {
addCriterion("school_id <=", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdLike(String value) {
addCriterion("school_id like", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdNotLike(String value) {
addCriterion("school_id not like", value, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdIn(List<String> values) {
addCriterion("school_id in", values, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdNotIn(List<String> values) {
addCriterion("school_id not in", values, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdBetween(String value1, String value2) {
addCriterion("school_id between", value1, value2, "schoolId");
return (Criteria) this;
}
public Criteria andSchoolIdNotBetween(String value1, String value2) {
addCriterion("school_id not between", value1, value2, "schoolId");
return (Criteria) this;
}
public Criteria andHomeworkTypeIsNull() {
addCriterion("homework_type is null");
return (Criteria) this;
}
public Criteria andHomeworkTypeIsNotNull() {
addCriterion("homework_type is not null");
return (Criteria) this;
}
public Criteria andHomeworkTypeEqualTo(String value) {
addCriterion("homework_type =", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeNotEqualTo(String value) {
addCriterion("homework_type <>", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeGreaterThan(String value) {
addCriterion("homework_type >", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeGreaterThanOrEqualTo(String value) {
addCriterion("homework_type >=", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeLessThan(String value) {
addCriterion("homework_type <", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeLessThanOrEqualTo(String value) {
addCriterion("homework_type <=", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeLike(String value) {
addCriterion("homework_type like", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeNotLike(String value) {
addCriterion("homework_type not like", value, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeIn(List<String> values) {
addCriterion("homework_type in", values, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeNotIn(List<String> values) {
addCriterion("homework_type not in", values, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeBetween(String value1, String value2) {
addCriterion("homework_type between", value1, value2, "homeworkType");
return (Criteria) this;
}
public Criteria andHomeworkTypeNotBetween(String value1, String value2) {
addCriterion("homework_type not between", value1, value2, "homeworkType");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

@ -1,7 +1,10 @@
package com.sztzjy.trade.entity;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
@ -110,6 +113,54 @@ public class StuLearningAssessment {
@ApiModelProperty(notes = "上架状态1上架0下架默认为上架")
private Integer listingStatus;
public void shuffleOptions() {
List<String> options = new ArrayList<>();
// 只添加非空的选项
if (optionA != null && !optionA.isEmpty()) options.add(optionA);
if (optionB != null && !optionB.isEmpty()) options.add(optionB);
if (optionC != null && !optionC.isEmpty()) options.add(optionC);
if (optionD != null && !optionD.isEmpty()) options.add(optionD);
if (optionE != null && !optionE.isEmpty()) options.add(optionE);
if (optionF != null && !optionF.isEmpty()) options.add(optionF);
if (optionG != null && !optionG.isEmpty()) options.add(optionG);
// 打乱非空选项
Collections.shuffle(options);
// 将打乱后的选项重新赋值
// 清空原有选项
optionA = optionB = optionC = optionD = optionE =optionF=optionG= "";
for (int i = 0; i < options.size(); i++) {
switch (i) {
case 0:
optionA = options.get(i);
break;
case 1:
optionB = options.get(i);
break;
case 2:
optionC = options.get(i);
break;
case 3:
optionD = options.get(i);
break;
case 4:
optionE = options.get(i);
break;
case 5:
optionF = options.get(i);
break;
case 6:
optionG = options.get(i);
break;
}
}
}
public String getTopicId() {
return topicId;
}

@ -14,30 +14,34 @@ import lombok.Data;
*/
@Data
public class StuProblemInfo {
@ApiModelProperty("学生提问ID")
@ApiModelProperty(notes = "学生提问ID")
private String id;
@ApiModelProperty("学生姓名")
@ApiModelProperty(notes = "学生姓名")
private String name;
@ApiModelProperty("关键字(多个关键字逗号隔开)")
@ApiModelProperty(notes = "关键字(多个关键字逗号隔开)")
private String keywords;
@ApiModelProperty("提问时间")
@ApiModelProperty(notes = "提问时间")
private Date questionTime;
@ApiModelProperty("用户ID")
@ApiModelProperty(notes = "用户ID")
private String userId;
@ApiModelProperty("回答状态0、待回答 1、已回答")
@ApiModelProperty(notes = "回答状态0、待回答 1、已回答")
private Integer answerStatus;
@ApiModelProperty("问题")
@ApiModelProperty(notes = "学校ID")
private String shcoolId;
@ApiModelProperty(notes = "问题")
private String content;
@ApiModelProperty("回复内容")
private List<String> replyList;
public String getId() {
return id;
}
@ -86,6 +90,14 @@ public class StuProblemInfo {
this.answerStatus = answerStatus;
}
public String getShcoolId() {
return shcoolId;
}
public void setShcoolId(String shcoolId) {
this.shcoolId = shcoolId == null ? null : shcoolId.trim();
}
public String getContent() {
return content;
}

@ -91,7 +91,6 @@ public class StuProblemInfoExample {
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
@ -510,6 +509,76 @@ public class StuProblemInfoExample {
addCriterion("answer_status not between", value1, value2, "answerStatus");
return (Criteria) this;
}
public Criteria andShcoolIdIsNull() {
addCriterion("shcool_id is null");
return (Criteria) this;
}
public Criteria andShcoolIdIsNotNull() {
addCriterion("shcool_id is not null");
return (Criteria) this;
}
public Criteria andShcoolIdEqualTo(String value) {
addCriterion("shcool_id =", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdNotEqualTo(String value) {
addCriterion("shcool_id <>", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdGreaterThan(String value) {
addCriterion("shcool_id >", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdGreaterThanOrEqualTo(String value) {
addCriterion("shcool_id >=", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdLessThan(String value) {
addCriterion("shcool_id <", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdLessThanOrEqualTo(String value) {
addCriterion("shcool_id <=", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdLike(String value) {
addCriterion("shcool_id like", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdNotLike(String value) {
addCriterion("shcool_id not like", value, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdIn(List<String> values) {
addCriterion("shcool_id in", values, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdNotIn(List<String> values) {
addCriterion("shcool_id not in", values, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdBetween(String value1, String value2) {
addCriterion("shcool_id between", value1, value2, "shcoolId");
return (Criteria) this;
}
public Criteria andShcoolIdNotBetween(String value1, String value2) {
addCriterion("shcool_id not between", value1, value2, "shcoolId");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

@ -0,0 +1,20 @@
package com.sztzjy.trade.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author tz
* @date 2025/1/4 16:05
*/
@Data
public class StuInitiateQuestionDTO {
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("问题")
private String content;
@ApiModelProperty("关键字")
private List<String> keywords;
}

@ -0,0 +1,18 @@
package com.sztzjy.trade.entity.dto;
import com.sztzjy.trade.entity.StuProblemInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author tz
* @date 2025/1/4 16:32
*/
@Data
public class StuProblemInfoDTO {
private List<StuProblemInfo> stuProblemInfos;
@ApiModelProperty("关键词集合")
private List<String> keywordList;
}

@ -1,5 +1,6 @@
package com.sztzjy.trade.entity.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -17,7 +18,6 @@ public class StuTopicDTO {
private String topicName;
private Integer optionsOrder;
private String optionA;
@ -27,6 +27,16 @@ public class StuTopicDTO {
private String optionD;
@ApiModelProperty(notes = "备用选项E")
@ExcelProperty("选项E")
private String optionE;
@ApiModelProperty(notes = "备用选项F")
private String optionF;
@ApiModelProperty(notes = "备用选项G")
private String optionG;
@ApiModelProperty("选择的答案")
private String studentAnswer;
}

@ -0,0 +1,16 @@
package com.sztzjy.trade.entity.dto;
import lombok.Data;
import java.util.List;
/**
* @author tz
* @date 2025/1/6 15:16
*/
@Data
public class StuTopicDetailsDTO {
private String type;
private Integer number;
private List<StuTopicDTO> stuTopicDTOS;
}

@ -3,10 +3,8 @@ package com.sztzjy.trade.mapper;
import com.sztzjy.trade.entity.StuProblemInfo;
import com.sztzjy.trade.entity.StuProblemInfoExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface StuProblemInfoMapper {
long countByExample(StuProblemInfoExample example);
@ -35,7 +33,4 @@ public interface StuProblemInfoMapper {
int updateByPrimaryKeyWithBLOBs(StuProblemInfo record);
int updateByPrimaryKey(StuProblemInfo record);
List<StuProblemInfo> fuzzyQuery(String keywords, Integer answerStatus, String content);
}

@ -6,6 +6,7 @@ import com.sztzjy.trade.entity.StuScoreDetailsInfo;
import com.sztzjy.trade.entity.dto.*;
import java.util.List;
import java.util.Map;
/**
* @author tz
@ -14,7 +15,7 @@ import java.util.List;
public interface StuHomeworkExamService {
PageInfo<StuAchievementInfoDTO> getHomeworks(String userId, String homeworkType, Integer index, Integer size);
List<StuTopicDTO> getTopics(String id);
List<StuTopicDTO> getTopics(String id, String type);
StuScoreDetailsInfoDTO getHomeworkScoreDetails(String id);
@ -23,4 +24,6 @@ public interface StuHomeworkExamService {
void submitExamPapers(SubmitExamPapersDTO dto);
AttachmentHomeworkDTO getEcho(String id);
}

@ -1,6 +1,7 @@
package com.sztzjy.trade.service;
import com.github.pagehelper.PageInfo;
import com.sztzjy.trade.entity.dto.StuInitiateQuestionDTO;
import com.sztzjy.trade.entity.dto.StuReleaseDTO;
/**
@ -16,4 +17,7 @@ public interface StuInteractionService {
Integer getAnswer(StuReleaseDTO releaseDTO);
Integer initiateQuestion(StuInitiateQuestionDTO questionDTO);
PageInfo keywordSearch(String userId, String keywords, Integer index, Integer size);
}

@ -1,7 +1,10 @@
package com.sztzjy.trade.service;
import com.github.pagehelper.PageInfo;
import com.sztzjy.trade.entity.StuAchievementInfo;
import com.sztzjy.trade.entity.StuAchievementInfoExample;
import com.sztzjy.trade.entity.StuLearningAssessment;
import com.sztzjy.trade.entity.StuPracticalTrainingReport;
import com.sztzjy.trade.entity.dto.tch.TchHomeworkExamDTO;
import com.sztzjy.trade.entity.dto.tch.TchTopicDetailsDTO;
import com.sztzjy.trade.entity.dto.tch.TchTopicTypeDTO;
@ -51,4 +54,7 @@ public interface TchHomeworkExamService {
Integer release(String id, String type,Integer state);
String upload(MultipartFile file, String userId,String jsonString);
PageInfo<StuAchievementInfo> getCurrencyScoreHomework(String schoolId, Integer page, Integer size, String id, String name, String className);
}

@ -22,7 +22,7 @@ public interface TchInteractionService {
List<String> getSelect(String schoolId);
PageInfo<TchDiscussInfoDTO> getAllDiscussions(String userId,Integer index,Integer size);
PageInfo<TchDiscussInfoDTO> getAllDiscussions(String userId,Integer roleId,Integer index,Integer size);
Integer deleteDiscussions(String id);
@ -30,7 +30,7 @@ public interface TchInteractionService {
Integer disTchReply(TchReplyDTO tchReplyDTO);
PageInfo getStuQuestioning(String problem, String status, String keywords,Integer index,Integer size);
PageInfo getStuQuestioning(String problem, String status, String keywords,Integer index,Integer size,String schoolId);
// List<String> getReply(String id);
@ -40,4 +40,6 @@ public interface TchInteractionService {
Integer initiatePut(TchProblemInfo tchProblemInfo);
List<String> getReply(String id);
}

@ -317,7 +317,12 @@ public class StuDTFServiceImpl implements StuDTFService {
if(type.equals("注销数字泰铢")){
stuMultilateralBridge.setCancellationState(1);
//注销时将信息添加到发行业务(上桥)
}
if(type.equals("反馈信息")){
stuMultilateralBridge.setFeedbackState(1);
//反馈时将信息添加到发行业务(上桥)
StuIssuanceBusinessUpperBridge upperBridge=new StuIssuanceBusinessUpperBridge();
upperBridge.setId(UUID.randomUUID().toString());
upperBridge.setApplyCentralBank("泰国央行(BOT)");
@ -326,6 +331,7 @@ public class StuDTFServiceImpl implements StuDTFService {
upperBridge.setReceivingBank(stuMultilateralBridge.getReceivingBank());
upperBridge.setExchangeAmount(stuMultilateralBridge.getTransferAmount());
upperBridge.setCurrencyConversion(stuMultilateralBridge.getCurrencyConversion());
upperBridge.setIssueState(2);
upperBridge.setReceiveState(2);
upperBridge.setFeedbackState(2);
upperBridge.setApplyState(2);
@ -333,9 +339,6 @@ public class StuDTFServiceImpl implements StuDTFService {
upperBridgeMapper.insert(upperBridge);
}
if(type.equals("反馈信息")){
stuMultilateralBridge.setFeedbackState(1);
}
multilateralBridgeMapper.updateByPrimaryKey(stuMultilateralBridge);
}

@ -27,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile;
import ws.schild.jave.MultimediaInfo;
import ws.schild.jave.MultimediaObject;
import javax.annotation.Resource;
import java.io.File;
import java.util.*;

@ -9,6 +9,7 @@ import com.sztzjy.trade.service.StuHomeworkExamService;
import com.sztzjy.trade.util.BigDecimalUtils;
import com.sztzjy.trade.util.ConvertUtil;
import com.sztzjy.trade.util.PageUtil;
import com.sztzjy.trade.util.compute.ScoringUtil;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@ -43,6 +44,8 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
TchTopicDetailsMapper topicDetailsMapper;
@Resource
BigDecimalUtils bigDecimalUtils;
@Resource
ScoringUtil scoringUtil;
@Override
public PageInfo getHomeworks(String userId, String homeworkType, Integer index, Integer size) {
@ -50,9 +53,9 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
StuUser stuUser = stuUserMapper.selectByPrimaryKey(userId);
String className = stuUser.getClassName();
//根据班级查询该班级作业
//根据班级查询该班级已发布的作业
TchHomeworkManageExample homeworkManageExample=new TchHomeworkManageExample();
homeworkManageExample.createCriteria().andHomeworkClassLike("%"+className+"%");
homeworkManageExample.createCriteria().andHomeworkClassLike("%"+className+"%").andStateEqualTo(1).andHomeworkTypeEqualTo(homeworkType);
List<TchHomeworkManage> tchHomeworkManages = homeworkManageMapper.selectByExample(homeworkManageExample);
@ -82,6 +85,7 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
achievementInfo.setStartingTime(tchHomeworkManage.getStartingTime());
achievementInfo.setEndTime(tchHomeworkManage.getEndTime());
achievementInfo.setNumberOfAnswer(0);
achievementInfo.setHomeworkType(homeworkType);
//取到本次作业的题目总量
if (!tchHomeworkManage.getHomeworkType().equals("附件作业")){
@ -103,11 +107,9 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
}
@Override
public List<StuTopicDTO> getTopics(String id) {
public List<StuTopicDTO> getTopics(String id,String type) {
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
//根据作业ID查询作业详情
TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(achievementInfo.getTaskId());
//取到作业开始时间和结束时间
Date startingTime = achievementInfo.getStartingTime();
Date endTime = achievementInfo.getEndTime();
@ -116,15 +118,25 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
LocalDateTime startLocalDateTime = LocalDateTime.ofInstant(startingTime.toInstant(), ZoneId.systemDefault());
LocalDateTime endLocalDateTime = LocalDateTime.ofInstant(endTime.toInstant(), ZoneId.systemDefault());
// 判断本次作业是否已过期
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 判断本次作业是否已过期
// 检查当前时间是否在作业时间段内
if (now.isBefore(startLocalDateTime) || now.isAfter(endLocalDateTime)) {
throw new ServiceException(HttpStatus.ACCEPTED, "当前时间不在题目操作的时间段!");
}
//设置题目归类返回map
Map<String,List<StuTopicDTO>> map=new HashMap<>();
if(type.equals("作业")){
//根据作业ID查询作业详情
TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(achievementInfo.getTaskId());
//判断是否已达到最大做题次数
if(achievementInfo.getNumberOfAnswer()>=tchHomeworkManage.getAnswersFrequency()){
throw new ServiceException(HttpStatus.ACCEPTED,"已超过最大作答次数");
@ -135,18 +147,87 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
// 转换数组为List
List<String> list = Arrays.asList(split);
List<StuLearningAssessment> learningAssessments= learningAssessmentMapper.selectTopicsById(list);
List<StuTopicDTO> stuTopicDTOS = convertUtil.entityToDTOList(learningAssessments, StuTopicDTO.class);
if(tchHomeworkManage.getTopicNumberState()==1){ //题目乱序
Collections.shuffle(stuTopicDTOS);
Collections.shuffle(learningAssessments);
}
if(tchHomeworkManage.getOptionNumberState()==1){ //选项乱序
for (StuLearningAssessment learningAssessment:learningAssessments) {
//只有单选或者多选乱序
if(learningAssessment.getTopicType().equals("单选题") || learningAssessment.getTopicType().equals("多选题")){
//打乱顺序
learningAssessment.shuffleOptions();
}
}
}
List<StuTopicDTO> stuTopicDTOS = convertUtil.entityToDTOList(learningAssessments, StuTopicDTO.class);
//
// for (StuTopicDTO assessment : stuTopicDTOS) {
// String topicType = assessment.getTopicType();
// // 检查Map中是否已经存在该题型的列表
// map.putIfAbsent(topicType, new ArrayList<>());
// // 将当前的StuLearningAssessment添加到对应题型的列表中
// map.get(topicType).add(assessment);
// }
return stuTopicDTOS;
}else {
//根据考试ID查询考试详情
TchExamManage examManage = examManageMapper.selectByPrimaryKey(achievementInfo.getTaskId());
//判断是否已达到最大做题次数
if(achievementInfo.getNumberOfAnswer()>=examManage.getAnswersFrequency()){
throw new ServiceException(HttpStatus.ACCEPTED,"已超过最大作答次数");
}
//取到本次作业的题目id转为集合查询出题目信息
String[] split = examManage.getTopicId().split(",");
// 转换数组为List
List<String> list = Arrays.asList(split);
List<StuLearningAssessment> learningAssessments= learningAssessmentMapper.selectTopicsById(list);
if(examManage.getTopicNumberState()==1){ //题目乱序
Collections.shuffle(learningAssessments);
}
if(examManage.getOptionNumberState()==1){ //选项乱序
for (StuLearningAssessment learningAssessment:learningAssessments) {
//只有单选或者多选乱序
if(learningAssessment.getTopicType().equals("单选题") || learningAssessment.getTopicType().equals("多选题")){
//打乱顺序
learningAssessment.shuffleOptions();
}
for (int i = 0; i < stuTopicDTOS.size(); i++) {
stuTopicDTOS.get(i).setNumber(i);
stuTopicDTOS.get(i).setOptionsOrder(tchHomeworkManage.getOptionNumberState());
}
}
List<StuTopicDTO> stuTopicDTOS = convertUtil.entityToDTOList(learningAssessments, StuTopicDTO.class);
// for (StuTopicDTO assessment : stuTopicDTOS) {
// String topicType = assessment.getTopicType();
// // 检查Map中是否已经存在该题型的列表
// map.putIfAbsent(topicType, new ArrayList<>());
// // 将当前的StuLearningAssessment添加到对应题型的列表中
// map.get(type).add(assessment);
// }
return stuTopicDTOS;
}
}
@Override
public StuScoreDetailsInfoDTO getHomeworkScoreDetails(String id) {
StuAchievementInfo achievementInfo = achievementInfoMapper.selectByPrimaryKey(id);
@ -224,7 +305,7 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
TchExamManage tchExamManage=new TchExamManage();
List<StuLearningAssessment> learningAssessments=new ArrayList<>();
//判断本次交卷为题库作业还是考试
if(dto.getType().equals("题库作业")){
if(dto.getType().equals("作业")){
tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(achievementInfo.getTaskId()); //作业信息管理
//取到本次作业的题目id转为集合查询出题目信息
String[] split = tchHomeworkManage.getTopicId().split(",");
@ -282,7 +363,7 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
if (stuLearningAssessment.getTopicId().equals(stuTopicDTO.getTopicId())) {
//取出该题目对应的题型的分值和答案进行比较
if (stuLearningAssessment.getAnswer().equals(stuTopicDTO.getStudentAnswer())) {
if (scoringUtil.handInAPaper(stuLearningAssessment,stuTopicDTO)) {
detailsInfo.setState("正确");
for (int k = 0; k < tchTopicDetails.size(); k++) {
@ -310,7 +391,7 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
double average=0;
double passRate=0;
if(dto.getType().equals("题库作业")){
if(dto.getType().equals("作业")){
//更新作业管理信息表
Integer totalPeople = tchHomeworkManage.getTotalPeople();
totalPeople++; //已提交人数+1
@ -397,7 +478,7 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
StuScoreDetailsInfo detailsInfo = stuScoreDetailsInfos.get(l);
detailsInfo.setMySelect(stuTopicDTO.getStudentAnswer());
if (stuLearningAssessment.getAnswer().equals(stuTopicDTO.getStudentAnswer())) { //比较答案
if (scoringUtil.handInAPaper(stuLearningAssessment,stuTopicDTO)) { //比较答案
if (detailsInfo.getTopicId().equals(stuTopicDTO.getTopicId())) { //表示为同一题再进行更新信息
for (int k = 0; k < tchTopicDetails.size(); k++) {
@ -427,7 +508,7 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
double average=0;
double passRate=0;
if(dto.getType().equals("题库作业")){
if(dto.getType().equals("作业")){
//更新作业管理信息表
Integer totalPeople = tchHomeworkManage.getTotalPeople();
BigDecimal tatalScore = tchHomeworkManage.getTatalScore();
@ -521,4 +602,6 @@ public class StuHomeworkExamServiceImpl implements StuHomeworkExamService {
dto.setHomeworkAsk(tchHomeworkManage.getHomeworkAsk());
return dto;
}
}

@ -2,17 +2,21 @@ package com.sztzjy.trade.service.impl;
import com.github.pagehelper.PageInfo;
import com.sztzjy.trade.entity.*;
import com.sztzjy.trade.entity.dto.StuInitiateQuestionDTO;
import com.sztzjy.trade.entity.dto.StuProblemInfoDTO;
import com.sztzjy.trade.entity.dto.StuReleaseDTO;
import com.sztzjy.trade.mapper.StuProblemInfoMapper;
import com.sztzjy.trade.mapper.StuUserMapper;
import com.sztzjy.trade.mapper.TchDiscussManageMapper;
import com.sztzjy.trade.mapper.TchProblemInfoMapper;
import com.sztzjy.trade.service.StuInteractionService;
import com.sztzjy.trade.service.TchInteractionService;
import com.sztzjy.trade.util.PageUtil;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@ -31,6 +35,9 @@ public class StuInteractionServiceImpl implements StuInteractionService {
StuProblemInfoMapper stuProblemInfoMapper;
@Resource
TchProblemInfoMapper tchProblemInfoMapper;
@Resource
TchInteractionService tchInteractionService;
@Override
public Integer publish(StuReleaseDTO releaseDTO) {
//根据userId查询发布者姓名
@ -44,7 +51,7 @@ public class StuInteractionServiceImpl implements StuInteractionService {
tchDiscussManage.setChatContent(releaseDTO.getChatContent());
tchDiscussManage.setUserId(releaseDTO.getUserId());
tchDiscussManage.setName(name);
tchDiscussManage.setSchoolId(stuUser.getSchoolId());
@ -64,7 +71,9 @@ public class StuInteractionServiceImpl implements StuInteractionService {
@Override
public PageInfo getStuQuestioning(String problem, String status, String keywords, String userId, Integer index, Integer size) {
Integer answerStatus=null;
if(!status.isEmpty()){
if(status!=null){
if(status.equals("待回答")){
answerStatus=0;
}
@ -77,17 +86,23 @@ public class StuInteractionServiceImpl implements StuInteractionService {
StuProblemInfoExample.Criteria criteria = problemInfoExample.createCriteria();
criteria.andUserIdEqualTo(userId);
if (!problem.isEmpty()) {
if (problem!=null) {
criteria.andContentLike("%" + problem + "%");
}
if (answerStatus!=null) {
criteria.andAnswerStatusEqualTo(answerStatus);
}
if (!keywords.isEmpty()) {
if (keywords!=null) {
criteria.andKeywordsEqualTo(keywords);
}
List<StuProblemInfo> stuProblemInfos = stuProblemInfoMapper.selectByExampleWithBLOBs(problemInfoExample);
for (StuProblemInfo stuProblemInfo:stuProblemInfos) {
//查询老师回复
List<String> reply = tchInteractionService.getReply(stuProblemInfo.getId());
stuProblemInfo.setReplyList(reply);
}
return PageUtil.pageHelper(stuProblemInfos,index,size);
}
@ -106,4 +121,37 @@ public class StuInteractionServiceImpl implements StuInteractionService {
return tchProblemInfoMapper.updateByPrimaryKeyWithBLOBs(tchProblemInfo);
}
@Override
public Integer initiateQuestion(StuInitiateQuestionDTO questionDTO) {
StuUser stuUser = stuUserMapper.selectByPrimaryKey(questionDTO.getUserId());
StuProblemInfo stuProblemInfo=new StuProblemInfo();
stuProblemInfo.setId(UUID.randomUUID().toString());
stuProblemInfo.setName(stuUser.getName());
stuProblemInfo.setContent(questionDTO.getContent());
stuProblemInfo.setKeywords(String.join(",",questionDTO.getKeywords()));
stuProblemInfo.setQuestionTime(new Date());
stuProblemInfo.setAnswerStatus(0);
stuProblemInfo.setUserId(questionDTO.getUserId());
stuProblemInfo.setShcoolId(stuUser.getSchoolId());
return stuProblemInfoMapper.insert(stuProblemInfo);
}
@Override
public PageInfo keywordSearch(String userId, String keywords, Integer index, Integer size) {
StuProblemInfoExample problemInfoExample = new StuProblemInfoExample();
StuProblemInfoExample.Criteria criteria = problemInfoExample.createCriteria();
criteria.andUserIdEqualTo(userId);
if (!keywords.isEmpty()) {
criteria.andKeywordsEqualTo(keywords);
}
List<StuProblemInfo> stuProblemInfos = stuProblemInfoMapper.selectByExampleWithBLOBs(problemInfoExample);
return PageUtil.pageHelper(stuProblemInfos,index,size);
}
}

@ -27,6 +27,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
@ -157,6 +158,9 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
homeworkManage.setUserId(homeworkExamDTO.getUserId());
homeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl());
homeworkManage.setCreateTime(new Date());
homeworkManage.setTotalPeople(0);
homeworkManage.setTatalScore(new BigDecimal(0));
homeworkManage.setNumberPassers(0);
return homeworkManageMapper.insert(homeworkManage);
@ -620,10 +624,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
StuAchievementInfoExample achievementInfoExample=new StuAchievementInfoExample();
StuAchievementInfoExample.Criteria criteria = achievementInfoExample.createCriteria();
if(!className.isEmpty()){
if(className!=null && !className.isEmpty()){
criteria.andClassNameEqualTo(className);
}
if(!stuIdOrName.isEmpty()){
if(stuIdOrName!=null && !stuIdOrName.isEmpty()){
criteria.andStudentIdEqualTo(stuIdOrName);
criteria.andNameEqualTo(stuIdOrName);
}
@ -672,7 +676,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
StuScoreDetailsInfoExample stuScoreDetailsInfoExample=new StuScoreDetailsInfoExample();
StuScoreDetailsInfoExample.Criteria criteria = stuScoreDetailsInfoExample.createCriteria();
criteria.andTaskIdEqualTo(id);
if(!studentId.isEmpty()){
if(studentId!=null){
criteria.andStudentIdEqualTo(studentId);
}
@ -819,6 +823,36 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
}
}
@Override
public PageInfo<StuAchievementInfo> getCurrencyScoreHomework(String schoolId, Integer page, Integer size, String id, String name, String className) {
StuAchievementInfoExample example = new StuAchievementInfoExample();
example.setOrderByClause("score desc");
StuAchievementInfoExample.Criteria criteria = example.createCriteria();
criteria.andSchoolIdEqualTo(schoolId);
criteria.andTaskIdEqualTo(id);
if (StringUtils.hasText(className)){
criteria.andClassNameEqualTo(className);
}
if (StringUtils.hasText(name)){
criteria.andNameLike("%"+name+"%");
}
if (StringUtils.hasText(name)){
criteria.andStudentIdLike("%"+name+"%");
}
List<StuAchievementInfo> achievementInfos = achievementInfoMapper.selectByExample(example);
if (achievementInfos.isEmpty())
{
return new PageInfo<>(Collections.EMPTY_LIST);
}
return PageUtil.pageHelper(achievementInfos,page,size);
}
/**
*

@ -76,6 +76,8 @@ public class TchInteractionImpl implements TchInteractionService {
String discussId = tchDiscussManage.getId();
TchDiscussManageExample tchDiscussManageExample=new TchDiscussManageExample();
tchDiscussManageExample.createCriteria().andDiscussIdEqualTo(discussId);
tchDiscussManageExample.setOrderByClause("create_time asc");
List<TchDiscussManage> tchDiscussManageList = discussManageMapper.selectByExampleWithBLOBs(tchDiscussManageExample);
if(!tchDiscussManageList.isEmpty()){
@ -88,6 +90,8 @@ public class TchInteractionImpl implements TchInteractionService {
TchReplyManageExample replyManageExample=new TchReplyManageExample();
replyManageExample.createCriteria().andReplyIdEqualTo(id);
replyManageExample.setOrderByClause("tch_reply_time asc");
List<TchReplyManage> tchReplyManages = replyManageMapper.selectByExampleWithBLOBs(replyManageExample);
List<TchReplyInfoDTO> tchReplyInfoDTOS = convertUtil.entityToDTOList(tchReplyManages, TchReplyInfoDTO.class);
@ -132,12 +136,21 @@ public class TchInteractionImpl implements TchInteractionService {
}
@Override
public PageInfo getAllDiscussions(String userId,Integer index,Integer size) {
public PageInfo getAllDiscussions(String userId,Integer roleId,Integer index,Integer size) {
// TODO: 2024/8/15 1、查询已发布的讨论信息2、获取讨论ID查询所有学生回复的讨论信息3、根据学生回复的讨论ID查询老师的回复
StuUser stuUser = stuUserMapper.selectByPrimaryKey(userId);
//1、查询已发布的讨论信息
TchDiscussManageExample discussManageExample = new TchDiscussManageExample();
//1、查询已发布的讨论信息,判断用户为学生还是老师,学生:查询该学校所有老师发布的讨论。老师:查询该老师发布的讨论
if(roleId==3){ //老师
discussManageExample.createCriteria().andUserIdEqualTo(userId);
}else { //学生
discussManageExample.createCriteria().andSchoolIdEqualTo(stuUser.getSchoolId());
}
discussManageExample.setOrderByClause("create_time DESC");
List<TchDiscussManage> tchDiscussManages = discussManageMapper.selectByExampleWithBLOBs(discussManageExample);
@ -249,7 +262,7 @@ public class TchInteractionImpl implements TchInteractionService {
}
@Override
public PageInfo getStuQuestioning(String problem, String status, String keywords,Integer index,Integer size) {
public PageInfo getStuQuestioning(String problem, String status, String keywords,Integer index,Integer size,String schoolId) {
// problem="%"+problem+"%";
@ -275,8 +288,10 @@ public class TchInteractionImpl implements TchInteractionService {
if (keywords!=null) {
criteria.andKeywordsEqualTo(keywords);
}
criteria.andShcoolIdEqualTo(schoolId);
List<StuProblemInfo> stuProblemInfos = stuProblemInfoMapper.selectByExampleWithBLOBs(problemInfoExample);
//查询老师回复
for (StuProblemInfo stuProblemInfo:stuProblemInfos) {
List<String> reply = this.getReply(stuProblemInfo.getId());
stuProblemInfo.setReplyList(reply);

@ -1,9 +1,14 @@
package com.sztzjy.trade.util.compute;
import com.sztzjy.trade.entity.StuLearningAssessment;
import com.sztzjy.trade.entity.dto.StuTopicDTO;
import com.sztzjy.trade.util.BigDecimalUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.lang.reflect.Array;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author tz
@ -84,5 +89,92 @@ public class ScoringUtil {
}
return fraction;
}
/**
*
* @param stuLearningAssessment
* @param stuTopicDTO
* @return
*/
public boolean handInAPaper(StuLearningAssessment stuLearningAssessment, StuTopicDTO stuTopicDTO){
//由于学生做题的选项被打乱,必须根据选项取到答案来判断学生的选择是否正确
//取出正确答案和学生选择的答案
String answer = stuLearningAssessment.getAnswer();
String studentAnswer = stuTopicDTO.getStudentAnswer();
//如果是判断题则直接比较答案即可
if(stuTopicDTO.getTopicType().equals("判断题")){
return answer.equals(studentAnswer);
}else {
//根据学生选择的选项取出答案和正确答案的选项取出的答案对比
//正确答案
List<String> answerList = Arrays.stream(answer.split(","))
.map(String::trim) // 去除可能的空格
.collect(Collectors.toList());
List<String> answers=new ArrayList<>();
for (String s : answerList) {
if(s.equals("A")){
answers.add(stuLearningAssessment.getOptionA());
}
if(s.equals("B")){
answers.add(stuLearningAssessment.getOptionB());
}
if(s.equals("C")){
answers.add(stuLearningAssessment.getOptionC());
}
if(s.equals("D")){
answers.add(stuLearningAssessment.getOptionD());
}
if(s.equals("E")){
answers.add(stuLearningAssessment.getOptionE());
}
if(s.equals("F")){
answers.add(stuLearningAssessment.getOptionF());
}
}
//正确答案
List<String> studentAnswerList = Arrays.stream(studentAnswer.split(","))
.map(String::trim) // 去除可能的空格
.collect(Collectors.toList());
List<String> studentAnswers=new ArrayList<>();
for (String s : studentAnswerList) {
if(s.equals("A")){
studentAnswers.add(stuTopicDTO.getOptionA());
}
if(s.equals("B")){
studentAnswers.add(stuTopicDTO.getOptionB());
}
if(s.equals("C")){
studentAnswers.add(stuTopicDTO.getOptionC());
}
if(s.equals("D")){
studentAnswers.add(stuTopicDTO.getOptionD());
}
if(s.equals("E")){
studentAnswers.add(stuTopicDTO.getOptionE());
}
if(s.equals("F")){
studentAnswers.add(stuTopicDTO.getOptionF());
}
}
//再比较答案
//比较两个列表的内容是否相同(不关心顺序)
Set<String> set1 = new HashSet<>(answers);
Set<String> set2 = new HashSet<>(studentAnswers);
return set1.equals(set2);
}
}
}

@ -24,6 +24,8 @@
<result column="number_of_answer" jdbcType="INTEGER" property="numberOfAnswer" />
<result column="total_questions" jdbcType="INTEGER" property="totalQuestions" />
<result column="stu_homework_annex" jdbcType="VARCHAR" property="stuHomeworkAnnex" />
<result column="school_id" jdbcType="VARCHAR" property="schoolId" />
<result column="homework_type" jdbcType="VARCHAR" property="homeworkType" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -86,7 +88,8 @@
<sql id="Base_Column_List">
id, name, student_id, class_name, score, completion_time, answer_number, answer_incorrectly_number,
accuracy, score_grades, user_id, task_id, average_score, state, pass_rate, homework_annex,
starting_time, end_time, teacher_comments, number_of_answer, total_questions, stu_homework_annex
starting_time, end_time, teacher_comments, number_of_answer, total_questions, stu_homework_annex,
school_id, homework_type
</sql>
<select id="selectByExample" parameterType="com.sztzjy.trade.entity.StuAchievementInfoExample" resultMap="BaseResultMap">
select
@ -126,7 +129,8 @@
task_id, average_score, state,
pass_rate, homework_annex, starting_time,
end_time, teacher_comments, number_of_answer,
total_questions, stu_homework_annex)
total_questions, stu_homework_annex, school_id,
homework_type)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{studentId,jdbcType=VARCHAR},
#{className,jdbcType=VARCHAR}, #{score,jdbcType=DECIMAL}, #{completionTime,jdbcType=VARCHAR},
#{answerNumber,jdbcType=INTEGER}, #{answerIncorrectlyNumber,jdbcType=INTEGER},
@ -134,7 +138,8 @@
#{taskId,jdbcType=VARCHAR}, #{averageScore,jdbcType=DECIMAL}, #{state,jdbcType=VARCHAR},
#{passRate,jdbcType=DECIMAL}, #{homeworkAnnex,jdbcType=VARCHAR}, #{startingTime,jdbcType=TIMESTAMP},
#{endTime,jdbcType=TIMESTAMP}, #{teacherComments,jdbcType=VARCHAR}, #{numberOfAnswer,jdbcType=INTEGER},
#{totalQuestions,jdbcType=INTEGER}, #{stuHomeworkAnnex,jdbcType=VARCHAR})
#{totalQuestions,jdbcType=INTEGER}, #{stuHomeworkAnnex,jdbcType=VARCHAR}, #{schoolId,jdbcType=VARCHAR},
#{homeworkType,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.trade.entity.StuAchievementInfo">
insert into stu_achievement_info
@ -205,6 +210,12 @@
<if test="stuHomeworkAnnex != null">
stu_homework_annex,
</if>
<if test="schoolId != null">
school_id,
</if>
<if test="homeworkType != null">
homework_type,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -273,6 +284,12 @@
<if test="stuHomeworkAnnex != null">
#{stuHomeworkAnnex,jdbcType=VARCHAR},
</if>
<if test="schoolId != null">
#{schoolId,jdbcType=VARCHAR},
</if>
<if test="homeworkType != null">
#{homeworkType,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.trade.entity.StuAchievementInfoExample" resultType="java.lang.Long">
@ -350,6 +367,12 @@
<if test="record.stuHomeworkAnnex != null">
stu_homework_annex = #{record.stuHomeworkAnnex,jdbcType=VARCHAR},
</if>
<if test="record.schoolId != null">
school_id = #{record.schoolId,jdbcType=VARCHAR},
</if>
<if test="record.homeworkType != null">
homework_type = #{record.homeworkType,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -378,7 +401,9 @@
teacher_comments = #{record.teacherComments,jdbcType=VARCHAR},
number_of_answer = #{record.numberOfAnswer,jdbcType=INTEGER},
total_questions = #{record.totalQuestions,jdbcType=INTEGER},
stu_homework_annex = #{record.stuHomeworkAnnex,jdbcType=VARCHAR}
stu_homework_annex = #{record.stuHomeworkAnnex,jdbcType=VARCHAR},
school_id = #{record.schoolId,jdbcType=VARCHAR},
homework_type = #{record.homeworkType,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -449,6 +474,12 @@
<if test="stuHomeworkAnnex != null">
stu_homework_annex = #{stuHomeworkAnnex,jdbcType=VARCHAR},
</if>
<if test="schoolId != null">
school_id = #{schoolId,jdbcType=VARCHAR},
</if>
<if test="homeworkType != null">
homework_type = #{homeworkType,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
@ -474,7 +505,9 @@
teacher_comments = #{teacherComments,jdbcType=VARCHAR},
number_of_answer = #{numberOfAnswer,jdbcType=INTEGER},
total_questions = #{totalQuestions,jdbcType=INTEGER},
stu_homework_annex = #{stuHomeworkAnnex,jdbcType=VARCHAR}
stu_homework_annex = #{stuHomeworkAnnex,jdbcType=VARCHAR},
school_id = #{schoolId,jdbcType=VARCHAR},
homework_type = #{homeworkType,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>

@ -8,6 +8,7 @@
<result column="question_time" jdbcType="TIMESTAMP" property="questionTime" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="answer_status" jdbcType="INTEGER" property="answerStatus" />
<result column="shcool_id" jdbcType="VARCHAR" property="shcoolId" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.sztzjy.trade.entity.StuProblemInfo">
<result column="content" jdbcType="LONGVARCHAR" property="content" />
@ -71,7 +72,7 @@
</where>
</sql>
<sql id="Base_Column_List">
id, name, keywords, question_time, user_id, answer_status
id, name, keywords, question_time, user_id, answer_status, shcool_id
</sql>
<sql id="Blob_Column_List">
content
@ -127,10 +128,10 @@
<insert id="insert" parameterType="com.sztzjy.trade.entity.StuProblemInfo">
insert into stu_problem_info (id, name, keywords,
question_time, user_id, answer_status,
content)
shcool_id, content)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{keywords,jdbcType=VARCHAR},
#{questionTime,jdbcType=TIMESTAMP}, #{userId,jdbcType=VARCHAR}, #{answerStatus,jdbcType=INTEGER},
#{content,jdbcType=LONGVARCHAR})
#{shcoolId,jdbcType=VARCHAR}, #{content,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.trade.entity.StuProblemInfo">
insert into stu_problem_info
@ -153,6 +154,9 @@
<if test="answerStatus != null">
answer_status,
</if>
<if test="shcoolId != null">
shcool_id,
</if>
<if test="content != null">
content,
</if>
@ -176,6 +180,9 @@
<if test="answerStatus != null">
#{answerStatus,jdbcType=INTEGER},
</if>
<if test="shcoolId != null">
#{shcoolId,jdbcType=VARCHAR},
</if>
<if test="content != null">
#{content,jdbcType=LONGVARCHAR},
</if>
@ -208,6 +215,9 @@
<if test="record.answerStatus != null">
answer_status = #{record.answerStatus,jdbcType=INTEGER},
</if>
<if test="record.shcoolId != null">
shcool_id = #{record.shcoolId,jdbcType=VARCHAR},
</if>
<if test="record.content != null">
content = #{record.content,jdbcType=LONGVARCHAR},
</if>
@ -224,6 +234,7 @@
question_time = #{record.questionTime,jdbcType=TIMESTAMP},
user_id = #{record.userId,jdbcType=VARCHAR},
answer_status = #{record.answerStatus,jdbcType=INTEGER},
shcool_id = #{record.shcoolId,jdbcType=VARCHAR},
content = #{record.content,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -236,7 +247,8 @@
keywords = #{record.keywords,jdbcType=VARCHAR},
question_time = #{record.questionTime,jdbcType=TIMESTAMP},
user_id = #{record.userId,jdbcType=VARCHAR},
answer_status = #{record.answerStatus,jdbcType=INTEGER}
answer_status = #{record.answerStatus,jdbcType=INTEGER},
shcool_id = #{record.shcoolId,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -259,6 +271,9 @@
<if test="answerStatus != null">
answer_status = #{answerStatus,jdbcType=INTEGER},
</if>
<if test="shcoolId != null">
shcool_id = #{shcoolId,jdbcType=VARCHAR},
</if>
<if test="content != null">
content = #{content,jdbcType=LONGVARCHAR},
</if>
@ -272,6 +287,7 @@
question_time = #{questionTime,jdbcType=TIMESTAMP},
user_id = #{userId,jdbcType=VARCHAR},
answer_status = #{answerStatus,jdbcType=INTEGER},
shcool_id = #{shcoolId,jdbcType=VARCHAR},
content = #{content,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
@ -281,20 +297,8 @@
keywords = #{keywords,jdbcType=VARCHAR},
question_time = #{questionTime,jdbcType=TIMESTAMP},
user_id = #{userId,jdbcType=VARCHAR},
answer_status = #{answerStatus,jdbcType=INTEGER}
answer_status = #{answerStatus,jdbcType=INTEGER},
shcool_id = #{shcoolId,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
<select id="fuzzyQuery" resultType="com.sztzjy.trade.entity.StuProblemInfo" resultMap="BaseResultMap">
SELECT *
FROM stu_problem_info
<if test="keywords != null and keywords != ''">
WHERE keywords=#{keywords}
</if>
<if test="answerStatus != null">
AND answer_status = #{answerStatus}
</if>
<if test="content != null and content != ''">
AND content LIKE CONCAT('%', #{content}, '%')
</if>
</select>
</mapper>

@ -369,12 +369,12 @@
END
</update>
<insert id="insertList" parameterType="com.sztzjy.trade.entity.StuScoreDetailsInfo">
INSERT INTO stu_score_details_info (id, name, student_id, class_name, stem, question_type, my_select,answer,state,,score,user_id,score_grades,task_id,topic_score,topic_id)
INSERT INTO stu_score_details_info (id, name, student_id, class_name, stem, question_type, my_select,answer,state,user_id,score_grades,task_id,topic_score,topic_id)
VALUES
<foreach collection="scoreDetailsInfos" item="scoreDetailsInfo" separator=",">
(#{scoreDetailsInfo.id}, #{scoreDetailsInfo.name}, #{scoreDetailsInfo.studentId}, #{scoreDetailsInfo.className}, #{scoreDetailsInfo.stem},
#{scoreDetailsInfo.questionType}, #{scoreDetailsInfo.mySelect}, #{scoreDetailsInfo.answer},#{scoreDetailsInfo.state},
#{scoreDetailsInfo.score}, #{scoreDetailsInfo.userId}, #{scoreDetailsInfo.scoreGrades},#{scoreDetailsInfo.taskId},
#{scoreDetailsInfo.userId}, #{scoreDetailsInfo.scoreGrades},#{scoreDetailsInfo.taskId},
#{scoreDetailsInfo.topicScore}, #{scoreDetailsInfo.topicId})
</foreach>
</insert>

Loading…
Cancel
Save