Commit 6057ebf9 by 邹磊浩

Merge remote-tracking branch 'origin/master'

parents 8340b155 7f3074e9
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.constant.UserConstants;
...@@ -32,7 +31,7 @@ public class SysDeptController extends BaseController { ...@@ -32,7 +31,7 @@ public class SysDeptController extends BaseController {
/** /**
* 获取部门列表 * 获取部门列表
*/ */
@SaCheckPermission("system:dept:list") // @SaCheckPermission("system:dept:list")
@GetMapping("/list") @GetMapping("/list")
public R<List<SysDept>> list(SysDept dept) { public R<List<SysDept>> list(SysDept dept) {
List<SysDept> depts = deptService.selectDeptList(dept); List<SysDept> depts = deptService.selectDeptList(dept);
...@@ -44,7 +43,7 @@ public class SysDeptController extends BaseController { ...@@ -44,7 +43,7 @@ public class SysDeptController extends BaseController {
* *
* @param deptId 部门ID * @param deptId 部门ID
*/ */
@SaCheckPermission("system:dept:list") // @SaCheckPermission("system:dept:list")
@GetMapping("/list/exclude/{deptId}") @GetMapping("/list/exclude/{deptId}")
public R<List<SysDept>> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { public R<List<SysDept>> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
List<SysDept> depts = deptService.selectDeptList(new SysDept()); List<SysDept> depts = deptService.selectDeptList(new SysDept());
...@@ -58,7 +57,7 @@ public class SysDeptController extends BaseController { ...@@ -58,7 +57,7 @@ public class SysDeptController extends BaseController {
* *
* @param deptId 部门ID * @param deptId 部门ID
*/ */
@SaCheckPermission("system:dept:query") // @SaCheckPermission("system:dept:query")
@GetMapping(value = "/{deptId}") @GetMapping(value = "/{deptId}")
public R<SysDept> getInfo(@PathVariable Long deptId) { public R<SysDept> getInfo(@PathVariable Long deptId) {
deptService.checkDeptDataScope(deptId); deptService.checkDeptDataScope(deptId);
...@@ -68,7 +67,7 @@ public class SysDeptController extends BaseController { ...@@ -68,7 +67,7 @@ public class SysDeptController extends BaseController {
/** /**
* 新增部门 * 新增部门
*/ */
@SaCheckPermission("system:dept:add") // @SaCheckPermission("system:dept:add")
@Log(title = "部门管理", businessType = BusinessType.INSERT) @Log(title = "部门管理", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public R<Void> add(@Validated @RequestBody SysDept dept) { public R<Void> add(@Validated @RequestBody SysDept dept) {
...@@ -81,7 +80,7 @@ public class SysDeptController extends BaseController { ...@@ -81,7 +80,7 @@ public class SysDeptController extends BaseController {
/** /**
* 修改部门 * 修改部门
*/ */
@SaCheckPermission("system:dept:edit") // @SaCheckPermission("system:dept:edit")
@Log(title = "部门管理", businessType = BusinessType.UPDATE) @Log(title = "部门管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public R<Void> edit(@Validated @RequestBody SysDept dept) { public R<Void> edit(@Validated @RequestBody SysDept dept) {
...@@ -103,7 +102,7 @@ public class SysDeptController extends BaseController { ...@@ -103,7 +102,7 @@ public class SysDeptController extends BaseController {
* *
* @param deptId 部门ID * @param deptId 部门ID
*/ */
@SaCheckPermission("system:dept:remove") // @SaCheckPermission("system:dept:remove")
@Log(title = "部门管理", businessType = BusinessType.DELETE) @Log(title = "部门管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{deptId}") @DeleteMapping("/{deptId}")
public R<Void> remove(@PathVariable Long deptId) { public R<Void> remove(@PathVariable Long deptId) {
......
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
...@@ -62,7 +61,7 @@ public class SysUserController extends BaseController { ...@@ -62,7 +61,7 @@ public class SysUserController extends BaseController {
/** /**
* 获取用户列表 * 获取用户列表
*/ */
@SaCheckPermission("system:user:list") // @SaCheckPermission("system:user:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<SysUser> list(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUser> list(SysUser user, PageQuery pageQuery) {
TableDataInfo<SysUser> sysUserTableDataInfo = userService.selectPageUserListNew(user, pageQuery); TableDataInfo<SysUser> sysUserTableDataInfo = userService.selectPageUserListNew(user, pageQuery);
...@@ -81,7 +80,7 @@ public class SysUserController extends BaseController { ...@@ -81,7 +80,7 @@ public class SysUserController extends BaseController {
* 导出用户列表 * 导出用户列表
*/ */
@Log(title = "用户管理", businessType = BusinessType.EXPORT) @Log(title = "用户管理", businessType = BusinessType.EXPORT)
@SaCheckPermission("system:user:export") // @SaCheckPermission("system:user:export")
@PostMapping("/export") @PostMapping("/export")
public void export(SysUser user, HttpServletResponse response) { public void export(SysUser user, HttpServletResponse response) {
List<SysUser> list = userService.selectUserList(user); List<SysUser> list = userService.selectUserList(user);
...@@ -104,7 +103,7 @@ public class SysUserController extends BaseController { ...@@ -104,7 +103,7 @@ public class SysUserController extends BaseController {
* @param updateSupport 是否更新已存在数据 * @param updateSupport 是否更新已存在数据
*/ */
@Log(title = "用户管理", businessType = BusinessType.IMPORT) @Log(title = "用户管理", businessType = BusinessType.IMPORT)
@SaCheckPermission("system:user:import") // @SaCheckPermission("system:user:import")
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception {
ExcelResult<SysUserImportVo> result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); ExcelResult<SysUserImportVo> result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport));
...@@ -155,7 +154,7 @@ public class SysUserController extends BaseController { ...@@ -155,7 +154,7 @@ public class SysUserController extends BaseController {
} }
usi.setStatus("0"); usi.setStatus("0");
usi.setRemark("系统导入用户数据"); usi.setRemark("系统导入用户数据");
usi.setPassword(BCrypt.hashpw(usi.getPassword())); usi.setPassword(BCrypt.hashpw(sui.getPassword().trim()));
Long[] role=new Long[1]; Long[] role=new Long[1];
role[0]=new Long(2); role[0]=new Long(2);
usi.setRoleIds(role); usi.setRoleIds(role);
...@@ -171,7 +170,7 @@ public class SysUserController extends BaseController { ...@@ -171,7 +170,7 @@ public class SysUserController extends BaseController {
* *
* @param userId 用户ID * @param userId 用户ID
*/ */
@SaCheckPermission("system:user:query") // @SaCheckPermission("system:user:query")
@GetMapping(value = {"/", "/{userId}"}) @GetMapping(value = {"/", "/{userId}"})
public R<Map<String, Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId) { public R<Map<String, Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId) {
userService.checkUserDataScope(userId); userService.checkUserDataScope(userId);
...@@ -194,7 +193,7 @@ public class SysUserController extends BaseController { ...@@ -194,7 +193,7 @@ public class SysUserController extends BaseController {
/** /**
* 新增用户 * 新增用户
*/ */
@SaCheckPermission("system:user:add") // @SaCheckPermission("system:user:add")
@Log(title = "用户管理", businessType = BusinessType.INSERT) @Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public R<Void> add(@Validated @RequestBody SysUser user) { public R<Void> add(@Validated @RequestBody SysUser user) {
...@@ -238,7 +237,7 @@ public class SysUserController extends BaseController { ...@@ -238,7 +237,7 @@ public class SysUserController extends BaseController {
/** /**
* 修改用户 * 修改用户
*/ */
@SaCheckPermission("system:user:edit") // @SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public R<Void> edit(@Validated @RequestBody SysUser user) { public R<Void> edit(@Validated @RequestBody SysUser user) {
...@@ -282,7 +281,7 @@ public class SysUserController extends BaseController { ...@@ -282,7 +281,7 @@ public class SysUserController extends BaseController {
* *
* @param userIds 角色ID串 * @param userIds 角色ID串
*/ */
@SaCheckPermission("system:user:remove") // @SaCheckPermission("system:user:remove")
@Log(title = "用户管理", businessType = BusinessType.DELETE) @Log(title = "用户管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{userIds}") @DeleteMapping("/{userIds}")
public R<Void> remove(@PathVariable Long[] userIds) { public R<Void> remove(@PathVariable Long[] userIds) {
...@@ -295,7 +294,7 @@ public class SysUserController extends BaseController { ...@@ -295,7 +294,7 @@ public class SysUserController extends BaseController {
/** /**
* 重置密码 * 重置密码
*/ */
@SaCheckPermission("system:user:resetPwd") // @SaCheckPermission("system:user:resetPwd")
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/resetPwd") @PutMapping("/resetPwd")
public R<Void> resetPwd(@RequestBody SysUser user) { public R<Void> resetPwd(@RequestBody SysUser user) {
...@@ -308,7 +307,7 @@ public class SysUserController extends BaseController { ...@@ -308,7 +307,7 @@ public class SysUserController extends BaseController {
/** /**
* 状态修改 * 状态修改
*/ */
@SaCheckPermission("system:user:edit") // @SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus") @PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestBody SysUser user) { public R<Void> changeStatus(@RequestBody SysUser user) {
...@@ -322,7 +321,7 @@ public class SysUserController extends BaseController { ...@@ -322,7 +321,7 @@ public class SysUserController extends BaseController {
* *
* @param userId 用户ID * @param userId 用户ID
*/ */
@SaCheckPermission("system:user:query") // @SaCheckPermission("system:user:query")
@GetMapping("/authRole/{userId}") @GetMapping("/authRole/{userId}")
public R<Map<String, Object>> authRole(@PathVariable Long userId) { public R<Map<String, Object>> authRole(@PathVariable Long userId) {
SysUser user = userService.selectUserById(userId); SysUser user = userService.selectUserById(userId);
...@@ -339,7 +338,7 @@ public class SysUserController extends BaseController { ...@@ -339,7 +338,7 @@ public class SysUserController extends BaseController {
* @param userId 用户Id * @param userId 用户Id
* @param roleIds 角色ID串 * @param roleIds 角色ID串
*/ */
@SaCheckPermission("system:user:edit") // @SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.GRANT) @Log(title = "用户管理", businessType = BusinessType.GRANT)
@PutMapping("/authRole") @PutMapping("/authRole")
public R<Void> insertAuthRole(Long userId, Long[] roleIds) { public R<Void> insertAuthRole(Long userId, Long[] roleIds) {
...@@ -351,7 +350,7 @@ public class SysUserController extends BaseController { ...@@ -351,7 +350,7 @@ public class SysUserController extends BaseController {
/** /**
* 获取部门树列表 * 获取部门树列表
*/ */
@SaCheckPermission("system:user:list") // @SaCheckPermission("system:user:list")
@GetMapping("/deptTree") @GetMapping("/deptTree")
public R<List<Tree<Long>>> deptTree(SysDept dept) { public R<List<Tree<Long>>> deptTree(SysDept dept) {
return R.ok(deptService.selectDeptTreeList(dept)); return R.ok(deptService.selectDeptTreeList(dept));
......
...@@ -99,4 +99,6 @@ public class DbTestPaperRecordDetailVo { ...@@ -99,4 +99,6 @@ public class DbTestPaperRecordDetailVo {
@TableField(exist = false) @TableField(exist = false)
private List<GoodsAnswersVo> goodsAnswers; private List<GoodsAnswersVo> goodsAnswers;
@TableField(exist = false)
private Integer species;
} }
...@@ -30,7 +30,7 @@ public class MyErrorTopicListVo implements Serializable { ...@@ -30,7 +30,7 @@ public class MyErrorTopicListVo implements Serializable {
/** /**
* 题目分数 * 题目分数
*/ */
private String topicScore; private Double topicScore;
/** /**
* 我的答案 * 我的答案
*/ */
......
...@@ -11,7 +11,7 @@ import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo; ...@@ -11,7 +11,7 @@ import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal; import java.util.List;
/** /**
* 答题记录详情Mapper接口 * 答题记录详情Mapper接口
...@@ -26,5 +26,5 @@ public interface DbTestPaperRecordDetailMapper extends BaseMapperPlus<DbTestPape ...@@ -26,5 +26,5 @@ public interface DbTestPaperRecordDetailMapper extends BaseMapperPlus<DbTestPape
Page<GoodsAnswersVo> getGoodsAnserList(Page<Object> build, @Param("bo") DbTestPaperRecordDetailBo bo); Page<GoodsAnswersVo> getGoodsAnserList(Page<Object> build, @Param("bo") DbTestPaperRecordDetailBo bo);
BigDecimal getTotalPoints(@Param("bo") DbTestPaperRecordBo bo); List<DbTestPaperRecordDetailVo> getTotalPoints(@Param("bo") DbTestPaperRecordBo bo);
} }
...@@ -8,21 +8,27 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -8,21 +8,27 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.school.paper.domain.DbErrorList;
import com.ruoyi.school.paper.domain.DbTestPaperRecord; import com.ruoyi.school.paper.domain.DbTestPaperRecord;
import com.ruoyi.school.paper.domain.bo.DbTestPaperBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperBo;
import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo; import com.ruoyi.school.paper.domain.bo.DbTestPaperRecordBo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo; import com.ruoyi.school.paper.domain.vo.DbTestPaperRecordVo;
import com.ruoyi.school.paper.domain.vo.DbTestPaperVo; import com.ruoyi.school.paper.domain.vo.DbTestPaperVo;
import com.ruoyi.school.paper.mapper.DbErrorListMapper;
import com.ruoyi.school.paper.mapper.DbTestPaperRecordDetailMapper; import com.ruoyi.school.paper.mapper.DbTestPaperRecordDetailMapper;
import com.ruoyi.school.paper.mapper.DbTestPaperRecordMapper; import com.ruoyi.school.paper.mapper.DbTestPaperRecordMapper;
import com.ruoyi.school.paper.service.IDbTestPaperRecordService; import com.ruoyi.school.paper.service.IDbTestPaperRecordService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 答题记录Service业务层处理 * 答题记录Service业务层处理
...@@ -36,6 +42,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService { ...@@ -36,6 +42,7 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
private final DbTestPaperRecordMapper baseMapper; private final DbTestPaperRecordMapper baseMapper;
private final DbTestPaperRecordDetailMapper recordDetailMapper; private final DbTestPaperRecordDetailMapper recordDetailMapper;
private final DbErrorListMapper errorListMapper;
/** /**
* 查询答题记录 * 查询答题记录
...@@ -162,15 +169,34 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService { ...@@ -162,15 +169,34 @@ public class DbTestPaperRecordServiceImpl implements IDbTestPaperRecordService {
* 完成批卷 * 完成批卷
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public R<Void> completeReadOver(DbTestPaperRecordBo bo) { public R<Void> completeReadOver(DbTestPaperRecordBo bo) {
BigDecimal totalPoints = recordDetailMapper.getTotalPoints(bo); // 根据记录id获取记录详情
List<DbTestPaperRecordDetailVo> recordDetails = recordDetailMapper.getTotalPoints(bo);
DbTestPaperRecord record = baseMapper.selectById(bo.getId()); DbTestPaperRecord record = baseMapper.selectById(bo.getId());
// 计算总得分
BigDecimal totalPoints = recordDetails.stream().map(DbTestPaperRecordDetailVo::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
record.setTotalPoints(totalPoints); record.setTotalPoints(totalPoints);
record.setStatus(3); record.setStatus(3);
int update = baseMapper.updateById(record); // 保存总得分
if (update > 0){ baseMapper.updateById(record);
// 获取选择题错题集
List<Long> collect = recordDetails.stream()
.filter(detail -> detail.getSpecies().equals(2) && !detail.getAnswer().equals(detail.getCorrectAnswer()))
.map(DbTestPaperRecordDetailVo::getQuestionBankId)
.collect(Collectors.toList());
// 创建错题列表对象
List<DbErrorList> errorLists = new ArrayList<>();
collect.forEach(id -> {
DbErrorList errorList = new DbErrorList();
errorList.setRecordId(record.getId());
errorList.setUserId(record.getUserId());
errorList.setPaperId(record.getTestPaperId());
errorList.setQuestionBankId(id);
errorLists.add(errorList);
});
errorListMapper.insertBatch(errorLists);
return R.ok(); return R.ok();
} }
return R.fail();
}
} }
...@@ -99,10 +99,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -99,10 +99,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN sys_user su ON dtpr.user_id = su.user_id LEFT JOIN sys_user su ON dtpr.user_id = su.user_id
WHERE WHERE
a.question_bank_id = #{bo.questionBankId} a.question_bank_id = #{bo.questionBankId}
AND good = 0 and a.record_id = #{bo.recordId} AND good = 0
</select> </select>
<select id="getTotalPoints" resultType="java.math.BigDecimal"> <select id="getTotalPoints" resultType="com.ruoyi.school.paper.domain.vo.DbTestPaperRecordDetailVo">
select sum(score) from db_test_paper_record_detail where record_id = #{bo.id} and `status` = 0 select detail.*,
dqbtp.species
from db_test_paper_record_detail detail
left join db_question_bank_test_paper dqbtp on detail.question_bank_id = dqbtp.id
where record_id = #{bo.id}
and detail.`status` = 0
</select> </select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment