From b35695c4ee4a53e9755b086109e24e643e33c26f Mon Sep 17 00:00:00 2001 From: zt Date: Tue, 25 Mar 2025 10:26:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bgt/AppBgtQuestionSaveController.java | 42 +++++++++++ .../common/UploadZipController.java | 7 +- .../bgt/domain/vo/BgtQuestionResult.java | 31 ++++++++ .../wgz/service/IWgzQuestionSaveService.java | 10 ++- .../impl/WgzQuestionSaveServiceImpl.java | 70 +++++++++++++++---- .../bgt/BgtProjectRecruitApplyMapper.xml | 1 + ruoyi/uploadPath/appResource/html/upload.html | 22 ++++-- 7 files changed, 160 insertions(+), 23 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtQuestionSaveController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtQuestionResult.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtQuestionSaveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtQuestionSaveController.java new file mode 100644 index 0000000..e3c1beb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bgt/AppBgtQuestionSaveController.java @@ -0,0 +1,42 @@ +package com.ruoyi.web.controller.bgt; + +import com.ruoyi.bgt.domain.vo.BgtQuestionResult; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.wgz.service.IWgzQuestionSaveService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 用户试卷存储Controller + * + * @author ruoyi + * @date 2025-02-17 + */ +@Api(value = "包工头岗前培训", tags = {"包工头岗前培训"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/bgt/question/") +public class AppBgtQuestionSaveController extends BaseController { + + private final IWgzQuestionSaveService iWgzQuestionSaveService; + + /** + * 查询用户试卷存储列表 + */ + @ApiOperation("查询用户答题结果") + @GetMapping("/getResult") + public AjaxResult getResult(Long userId) { + return AjaxResult.success(iWgzQuestionSaveService.getResult(userId)); + } + + + + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java index 8981cae..70f5842 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java @@ -78,7 +78,7 @@ public class UploadZipController { } String username = bgtUser.getUsername(); - + String firstLevelFolderName =""; try { // 保存上传的压缩文件 File zipFile = new File(TEMP_DIR, file.getOriginalFilename()); @@ -89,7 +89,7 @@ public class UploadZipController { // 解压压缩文件 BgtProjectRecruit recruit = recruitService.queryById(recruitId); - String firstLevelFolderName = recruit.getId() + "_" + recruit.getRecruitName(); + firstLevelFolderName = recruit.getId() + "_" + recruit.getRecruitName(); File extractDir = new File(TEMP_DIR, firstLevelFolderName); ensureDirectoryExists(extractDir); extractZipFile(zipFile, extractDir); @@ -105,6 +105,9 @@ public class UploadZipController { return AjaxResult.success("文件上传并处理成功"); } catch (IOException e) { + // 删除临时文件和文件夹 + File extractDir = new File(TEMP_DIR, firstLevelFolderName); + deleteFolder(extractDir); e.printStackTrace(); return AjaxResult.error("文件处理过程中出现错误"); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtQuestionResult.java b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtQuestionResult.java new file mode 100644 index 0000000..055dd11 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/bgt/domain/vo/BgtQuestionResult.java @@ -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; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzQuestionSaveService.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzQuestionSaveService.java index 11d9375..2966ebf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzQuestionSaveService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/IWgzQuestionSaveService.java @@ -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 { * 查詢指定用戶的试卷是否及格 */ WgzAppUserScoreQuery userScoreQuery(long userId); + + + BgtQuestionResult getResult(Long userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzQuestionSaveServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzQuestionSaveServiceImpl.java index ab5f98c..633d69e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzQuestionSaveServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wgz/service/impl/WgzQuestionSaveServiceImpl.java @@ -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 wra = new LambdaQueryWrapper() + .eq(WgzQuestionSave::getUserId, userId); + List 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; + } } diff --git a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml index f8c5e5f..2dfc5a3 100644 --- a/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bgt/BgtProjectRecruitApplyMapper.xml @@ -67,6 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"