This commit is contained in:
zt
2025-03-25 10:26:59 +08:00
parent 8aa9e7b9ad
commit b35695c4ee
7 changed files with 160 additions and 23 deletions

View File

@ -0,0 +1,31 @@
package com.ruoyi.bgt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("务工者岗前培训结果视图对象")
public class BgtQuestionResult {
@ApiModelProperty("分数")
private Double score;
@ApiModelProperty("答对题数")
private Integer successNum;
@ApiModelProperty("答错题数")
private Integer errorNum;
@ApiModelProperty("耗时")
private Long time;
@ApiModelProperty("头像")
private String avatarName;
}

View File

@ -1,12 +1,13 @@
package com.ruoyi.wgz.service;
import com.ruoyi.bgt.domain.vo.BgtQuestionResult;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.WgzQuestionSaveQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppSubmitATestPaperReq;
import com.ruoyi.wgz.bo.res.WgzAppSubmitATestPaperRes;
import com.ruoyi.wgz.bo.res.WgzAppUserScoreQuery;
import com.ruoyi.wgz.domain.WgzQuestionSave;
import com.ruoyi.wgz.bo.WgzQuestionSaveQueryBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
@ -74,4 +75,7 @@ public interface IWgzQuestionSaveService extends IServicePlus<WgzQuestionSave> {
* 查詢指定用戶的试卷是否及格
*/
WgzAppUserScoreQuery userScoreQuery(long userId);
BgtQuestionResult getResult(Long userId);
}

View File

@ -1,33 +1,37 @@
package com.ruoyi.wgz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.bgt.domain.vo.BgtQuestionResult;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.BaseException;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.wgz.bo.WgzQuestionSaveQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppSubmitATestPaperReq;
import com.ruoyi.wgz.bo.res.WgzAppSubmitATestPaperRes;
import com.ruoyi.wgz.bo.res.WgzAppUserScoreQuery;
import com.ruoyi.wgz.bo.rests.WgzAppSubmitATestPaperTwo;
import com.ruoyi.wgz.domain.WgzQuestionBank;
import com.ruoyi.wgz.domain.WgzQuestionSave;
import com.ruoyi.wgz.domain.WgzQuestionsConfiguration;
import com.ruoyi.wgz.domain.WgzUser;
import com.ruoyi.wgz.mapper.WgzQuestionSaveMapper;
import com.ruoyi.wgz.service.IWgzQuestionBankService;
import com.ruoyi.wgz.service.IWgzQuestionSaveService;
import com.ruoyi.wgz.service.IWgzQuestionsConfigurationService;
import com.ruoyi.wgz.service.IWgzUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.wgz.bo.WgzQuestionSaveQueryBo;
import com.ruoyi.wgz.domain.WgzQuestionSave;
import com.ruoyi.wgz.mapper.WgzQuestionSaveMapper;
import com.ruoyi.wgz.service.IWgzQuestionSaveService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.text.DecimalFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 用户试卷存储Service业务层处理
@ -44,6 +48,9 @@ public class WgzQuestionSaveServiceImpl extends ServicePlusImpl<WgzQuestionSaveM
@Autowired
private IWgzQuestionBankService iWgzQuestionBankService;
@Autowired
private IWgzUserService wgzUserService;
@Override
public WgzQuestionSave queryById(Long id){
return getById(id);
@ -270,4 +277,43 @@ public class WgzQuestionSaveServiceImpl extends ServicePlusImpl<WgzQuestionSaveM
res.setCurrentMinute(sumScore);
return res;
}
@Override
public BgtQuestionResult getResult(Long userId) {
BgtQuestionResult bgtQuestionResult = new BgtQuestionResult();
WgzUser byUserId = wgzUserService.findByUserId(userId);
if(byUserId == null){
throw new BaseException("用户不存在");
}
bgtQuestionResult.setAvatarName(byUserId.getAvatarName());
LambdaQueryWrapper<WgzQuestionSave> wra = new LambdaQueryWrapper<WgzQuestionSave>()
.eq(WgzQuestionSave::getUserId, userId);
List<WgzQuestionSave> savaList = baseMapper.selectList(wra);
double score= 0d;
int successNum = 0;
int errorNum= 0;
long time= 0L;
for (WgzQuestionSave wgzQuestionSave : savaList){
score += wgzQuestionSave.getScore();
if(wgzQuestionSave.getCorrect().equals("1")){
successNum++;
}else{
errorNum++;
}
if(wgzQuestionSave.getTakeTime() != null){
time += wgzQuestionSave.getTakeTime();
}
}
bgtQuestionResult.setScore(score);
bgtQuestionResult.setSuccessNum(successNum);
bgtQuestionResult.setErrorNum(errorNum);
bgtQuestionResult.setTime(time);
return bgtQuestionResult;
}
}