package com.computer.network.serviceImpl;
import com.computer.network.enums.PaperStatus;
import com.computer.network.mapper.AnswerMapper;
import com.computer.network.mapper.OptionsMapper;
import com.computer.network.mapper.PaperMapper;
import com.computer.network.mapper.QuestionMapper;
import com.computer.network.po.Options;
import com.computer.network.po.Question;
import com.computer.network.service.PaperService;
import com.computer.network.vo.*;
import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class PaperServiceImpl implements PaperService {
private final static String EMPTY="无效ID";
private final static String USER_EMPTY="用户未创建任何问卷";
@Autowired
PaperMapper paperMapper;
@Autowired //注意每个都得Autowired 不能只写一个
QuestionMapper questionMapper;
@Autowired
OptionsMapper optionsMapper;
@Autowired
AnswerMapper answerMapper;
@Override
public ResponseVO addPaper(PaperVO paperVO) {
try {
paperMapper.addPaper(paperVO);
return ResponseVO.buildSuccess(paperVO);
}catch (Exception e){
System.out.println(e);
return ResponseVO.buildFailure(e.getMessage());
}
}
@Override
public ResponseVO updatePaper(PaperVO paperVO) {
try {
PaperVO paper=paperMapper.selectByPaperId(paperVO.getId());
if(paper==null)
return ResponseVO.buildFailure(EMPTY);
else{
paperMapper.updatePaper(paperVO);
return ResponseVO.buildSuccess();
}
}catch (Exception e){
System.out.println(e);
return ResponseVO.buildFailure(e.getMessage());
}
}
@Scheduled(cron = "0 0/1 * * * ?") //每分钟检查一次
void checkPaperStatus(){
List<PaperVO> paperVOList=paperMapper.getTimePapers();
for(PaperVO paperVO:paperVOList){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentDate = sdf.format(date);
if(paperVO.getStatus()==PaperStatus.INIT){ //没开放的开放它
if(currentDate.compareTo(paperVO.getStartTime())>=0)
paperMapper.changeStatus(PaperStatus.START,paperVO.getId());
}
else if(paperVO.getStatus()==PaperStatus.START){ //没结束的结束它
if(currentDate.compareTo(paperVO.getEndTime())>=0)
paperMapper.changeStatus(PaperStatus.STOP,paperVO.getId());
}
}
}
@Override
public ResponseVO deletePaper(int paperId) {
try {
PaperVO paper=paperMapper.selectByPaperId(paperId);
if(paper==null)
return ResponseVO.buildFailure(EMPTY);
else{
paperMapper.deletePaper(paperId);
List<Question> questionList=questionMapper.selectByPaperId(paperId);
for(Question question:questionList)
optionsMapper.deleteByQuestionId(question.getId());
questionMapper.deleteByPaperId(paperId);
return ResponseVO.buildSuccess();
}
}catch (Exception e){
System.out.println(e);
return ResponseVO.buildFailure(e.getMessage());
}
}
@Override
public ResponseVO getUserPapers(int userId) {
try {
List<PaperVO> paperVOList=paperMapper.getUserPapers();
if(paperVOList==null)
return ResponseVO.buildFailure(USER_EMPTY);
else
return ResponseVO.buildSuccess(paperVOList);
}catch (Exception e){
System.out.println(e);
return ResponseVO.buildFailure(e.getMessage());
}
}
@Override
public ResponseVO checkPaper(int paperId) {
try {
PaperVO paperVO=paperMapper.selectByPaperId(paperId);
if(paperVO==null)
return ResponseVO.buildFailure(EMPTY);
PaperDetail paperDetail=new PaperDetail();
BeanUtils.copyProperties(paperVO,paperDetail);
List<QuestionVO> questionVOList=new ArrayList<>();
List<Question> questionList=questionMapper.selectByPaperId(paperId);
for(Question question:questionList){
int questionId=question.getId();
List<Options> optionsList=optionsMapper.selectByQuestionId(questionId);
QuestionVO questionVO=new QuestionVO();
BeanUtils.copyProperties(question,questionVO);
questionVO.setOptions(optionsList);
questionVOList.add(questionVO);
}
paperDetail.setQuestionList(questionVOList);
return ResponseVO.buildSuccess(paperDetail);
}catch (Exception e){
System.out.println(e);
return ResponseVO.buildFailure(e.getMessage());
}
}
@Override
public ResponseVO reviewPaper(int paperId) {
try {
PaperVO paperVO=paperMapper.selectByPaperId(paperId);
if(paperVO==null)
return ResponseVO.buildFailure(EMPTY);
else{
PaperStatistic paperStatistic=new PaperStatistic();
BeanUtils.copyProperties(paperVO,paperStatistic);
List<QuestionStatistic> questionStatisticList=new ArrayList<>();
List<Question> questionList=questionMapper.selectByPaperId(paperId);
for(Question question:questionList){
QuestionStatistic questionStatistic=new QuestionStatistic();
BeanUtils.copyProperties(question,questionStatistic);
int questionId=question.getId();
if(question.getType()!=3){ //单选题和多选题
List<Options> optionsList=optionsMapper.selectByQuestionId(questionId);
List<OptionStatistic> optionStatisticList =new ArrayList<>();
for(Options options:optionsList){ //先都转成另一个VO
OptionStatistic optionStatistic =new OptionStatistic();
BeanUtils.copyProperties(options, optionStatistic);
optionStatistic.setSelectedNum(0); //后面用于+1
optionStatisticList.add(optionStatistic);
// EcVO ecVO = new EcVO();
// ecVO.setName(options.getContent());
// ecVO.setValue(0);
}
List<AnswerVO> answerVOList=answerMapper.selectByQuestionId(questionId);
for(AnswerVO answerVO:answerVOList){
String answerContent=answerVO.getAnswerContent();
String[] optionSequenceList=answerContent.split(",");
for(String sequenceStr:optionSequenceList){
int sequence=Integer.valueOf(sequenceStr);
for(OptionStatistic optionStatistic : optionStatisticList){
if(optionStatistic.getSequence()==sequence){
optionStatistic.setSelectedNum(optionStatistic.getSelectedNum()+1);
break;
}
}
}
}
List<EcVO> ecVOList = ne
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
324-基于springboot+vue的问卷调查系统(源码+数据库) (130个子文件)
PaperServiceImpl.class 9KB
QuestionStatistic.class 6KB
PaperStatistic.class 6KB
PaperDetail.class 6KB
PaperVO.class 5KB
Paper.class 5KB
AnswerVO.class 4KB
Answer.class 4KB
QuestionVO.class 4KB
QuestionServiceImpl.class 4KB
AnswerServiceImpl.class 3KB
UserVO.class 3KB
User.class 3KB
ResponseVO.class 3KB
OptionStatistic.class 3KB
Question.class 3KB
UserServiceImpl.class 3KB
OptionsVO.class 3KB
Options.class 3KB
PaperController.class 2KB
UserController.class 2KB
CORSConfig.class 2KB
EcVO.class 2KB
QuestionController.class 2KB
AnswerController.class 1KB
PaperStatus.class 1KB
PaperMapper.class 929B
UserMapper.class 898B
AnswerMapper.class 853B
QuestionnaireApplication.class 835B
QuestionMapper.class 772B
OptionsMapper.class 766B
AnswerService.class 707B
UserService.class 577B
PaperService.class 494B
QuestionService.class 437B
.gitignore 184B
index.html 613B
favicon.ico 4KB
PaperServiceImpl.java 9KB
QuestionServiceImpl.java 3KB
AnswerServiceImpl.java 2KB
UserServiceImpl.java 2KB
PaperController.java 2KB
UserController.java 2KB
CORSConfig.java 1KB
QuestionController.java 1KB
AnswerController.java 919B
ResponseVO.java 858B
PaperMapper.java 699B
UserMapper.java 691B
QuestionStatistic.java 620B
QuestionMapper.java 558B
OptionsMapper.java 532B
PaperDetail.java 528B
PaperStatistic.java 526B
AnswerMapper.java 494B
UserService.java 473B
QuestionnaireApplication.java 424B
PaperService.java 414B
QuestionVO.java 399B
PaperVO.java 388B
AnswerService.java 386B
Paper.java 385B
OptionStatistic.java 365B
PaperStatus.java 354B
AnswerVO.java 354B
Answer.java 352B
QuestionService.java 340B
Options.java 331B
OptionsVO.java 327B
Question.java 299B
UserVO.java 269B
User.java 267B
EcVO.java 241B
下载必看.jpg 133KB
paper.js 7KB
customer.js 4KB
user.js 2KB
index.js 1KB
paper.js 1KB
permission.js 927B
main.js 885B
user.js 707B
getters.js 637B
question.js 599B
answer.js 388B
index.js 361B
user.js 346B
auth.js 278B
babel.config.js 73B
package-lock.json 988KB
package.json 1KB
1.png 13KB
logo.png 7KB
surdes.sql 4KB
declare.ts 1KB
Create.vue 11KB
Monitor.vue 9KB
Login.vue 8KB
共 130 条
- 1
- 2
资源评论
Java旅途
- 粉丝: 1w+
- 资源: 472
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功