Commit aeef9ca8 by Wangmin

Merge remote-tracking branch 'origin/master'

parents ddc84c18 f7907f27
package com.ruoyi.web.controller.system; package com.ruoyi.web.controller.system;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysMenu;
...@@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -134,6 +136,9 @@ public class SysLoginController { ...@@ -134,6 +136,9 @@ public class SysLoginController {
public R<Map<String, Object>> getInfo() { public R<Map<String, Object>> getInfo() {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
SysUser user = userService.selectUserById(loginUser.getUserId()); SysUser user = userService.selectUserById(loginUser.getUserId());
if(StringUtils.isNotEmpty(user.getDeptList())){
user.setDeptListArray(CollUtil.newArrayList(user.getDeptList().split(",")));
}
Map<String, Object> ajax = new HashMap<>(); Map<String, Object> ajax = new HashMap<>();
ajax.put("user", user); ajax.put("user", user);
ajax.put("roles", loginUser.getRolePermission()); ajax.put("roles", loginUser.getRolePermission());
......
...@@ -23,6 +23,7 @@ import com.ruoyi.common.utils.StreamUtils; ...@@ -23,6 +23,7 @@ import com.ruoyi.common.utils.StreamUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.vo.SysUserExportVo; import com.ruoyi.system.domain.vo.SysUserExportVo;
import com.ruoyi.system.domain.vo.SysUserImportNewVo;
import com.ruoyi.system.domain.vo.SysUserImportVo; import com.ruoyi.system.domain.vo.SysUserImportVo;
import com.ruoyi.system.listener.SysUserImportListener; import com.ruoyi.system.listener.SysUserImportListener;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
...@@ -119,6 +120,53 @@ public class SysUserController extends BaseController { ...@@ -119,6 +120,53 @@ public class SysUserController extends BaseController {
} }
/** /**
* 获取导入模板
*/
@PostMapping("/importTemplateNew")
public void importTemplateNew(HttpServletResponse response) {
ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportNewVo.class, response);
}
/**
* 导入数据
*
* @param file 导入文件
* @param updateSupport 是否更新已存在数据
*/
@Log(title = "用户管理", businessType = BusinessType.IMPORT)
@PostMapping(value = "/importDataNew", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> importDataNew(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception {
List<SysUserImportNewVo> sysUserImportNewVos = ExcelUtil.importExcel(file.getInputStream(), SysUserImportNewVo.class);
if(CollUtil.isNotEmpty(sysUserImportNewVos)){
sysUserImportNewVos.forEach(sui->{
SysUser sysUser = userService.selectUserByUserName(sui.getUserName());
if(BeanUtil.isNotEmpty(sysUser) || StringUtils.isEmpty(sui.getNickName()) || StringUtils.isEmpty(sui.getUserName()) || StringUtils.isEmpty(sui.getSex()) || StringUtils.isEmpty(sui.getPassword()) ){
//存在该用户无需导入
return;
}
SysUser usi=new SysUser();
usi.setNickName(sui.getNickName());
usi.setUserName(sui.getUserName());
if(sui.getSex().equals("老师")){
usi.setSex("1");
}
if(sui.getSex().equals("学生")){
usi.setSex("0");
}
usi.setStatus("0");
usi.setRemark("系统导入用户数据");
usi.setPassword(BCrypt.hashpw(usi.getPassword()));
Long[] role=new Long[1];
role[0]=new Long(2);
usi.setRoleIds(role);
userService.insertUser(usi);
});
}
return R.ok();
}
/**
* 根据用户编号获取详细信息 * 根据用户编号获取详细信息
* *
* @param userId 用户ID * @param userId 用户ID
...@@ -133,6 +181,9 @@ public class SysUserController extends BaseController { ...@@ -133,6 +181,9 @@ public class SysUserController extends BaseController {
ajax.put("posts", postService.selectPostAll()); ajax.put("posts", postService.selectPostAll());
if (ObjectUtil.isNotNull(userId)) { if (ObjectUtil.isNotNull(userId)) {
SysUser sysUser = userService.selectUserById(userId); SysUser sysUser = userService.selectUserById(userId);
if(StringUtils.isNotEmpty(sysUser.getDeptList())){
sysUser.setDeptListArray(CollUtil.newArrayList(sysUser.getDeptList().split(",")));
}
ajax.put("user", sysUser); ajax.put("user", sysUser);
ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("postIds", postService.selectPostListByUserId(userId));
ajax.put("roleIds", StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId)); ajax.put("roleIds", StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId));
...@@ -147,6 +198,30 @@ public class SysUserController extends BaseController { ...@@ -147,6 +198,30 @@ public class SysUserController extends BaseController {
@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) {
//新增逻辑处理
if(CollUtil.isNotEmpty(user.getDeptInsetArray())){
//判断是否为父级
List<String> colList = user.getDeptInsetArray();
List<String> uio=new ArrayList<>();
colList.forEach(syu->{
List<SysDept> sysDep = deptService.selectDeptListByDeID(new Long(syu));
if(CollUtil.isNotEmpty(sysDep)){
sysDep.forEach(ss->{
uio.add(String.valueOf(ss.getDeptId()));
});
return;
}
uio.add(syu);
});
// 设置list
if(CollUtil.isNotEmpty(uio)){
user.setDeptList(CollUtil.join(uio, ","));
}
}
Long[] role=new Long[1];
role[0]=new Long(2);
user.setRoleIds(role);
if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
} else if (StringUtils.isNotEmpty(user.getPhonenumber()) } else if (StringUtils.isNotEmpty(user.getPhonenumber())
...@@ -167,6 +242,26 @@ public class SysUserController extends BaseController { ...@@ -167,6 +242,26 @@ public class SysUserController extends BaseController {
@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) {
//修改用户逻辑
if(CollUtil.isNotEmpty(user.getDeptInsetArray())){
//判断是否为父级
List<String> colList = user.getDeptInsetArray();
List<String> uio=new ArrayList<>();
colList.forEach(syu->{
List<SysDept> sysDep = deptService.selectDeptListByDeID(new Long(syu));
if(CollUtil.isNotEmpty(sysDep)){
sysDep.forEach(ss->{
uio.add(String.valueOf(ss.getDeptId()));
});
return;
}
uio.add(syu);
});
// 设置list
if(CollUtil.isNotEmpty(uio)){
user.setDeptList(CollUtil.join(uio, ","));
}
}
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
...@@ -178,6 +273,7 @@ public class SysUserController extends BaseController { ...@@ -178,6 +273,7 @@ public class SysUserController extends BaseController {
&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
} }
return toAjax(userService.updateUser(user)); return toAjax(userService.updateUser(user));
} }
......
...@@ -158,6 +158,19 @@ public class SysUser extends BaseEntity { ...@@ -158,6 +158,19 @@ public class SysUser extends BaseEntity {
*/ */
@TableField(exist = false) @TableField(exist = false)
private String deptListStr; private String deptListStr;
/**
* 班级数组
*/
@TableField(exist = false)
private List<String> deptListArray;
/**
* 班级数组
*/
@TableField(exist = false)
private List<String> deptInsetArray;
public SysUser(Long userId) { public SysUser(Long userId) {
this.userId = userId; this.userId = userId;
......
package com.ruoyi.system.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 用户对象导入VO
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
// @Accessors(chain = true) // 导入不允许使用 会找不到set方法
public class SysUserImportNewVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户账号
*/
@ExcelProperty(value = "学号")
private String userName;
/**
* 密码
*/
@ExcelProperty(value = "密码")
private String password;
/**
* 用户昵称
*/
@ExcelProperty(value = "用户昵称")
private String nickName;
/**
* 用户性别
*/
@ExcelProperty(value = "用户身份")
private String sex;
}
...@@ -36,6 +36,14 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDeptMapper, SysDept, Sy ...@@ -36,6 +36,14 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDeptMapper, SysDept, Sy
List<SysDept> selectDeptListNew(@Param("deptList") List<Long> deptList); List<SysDept> selectDeptListNew(@Param("deptList") List<Long> deptList);
/** /**
* 查询部门管理数据
*
* @param deptList 查询条件
* @return 部门信息集合
*/
List<SysDept> selectDeptListDeId(@Param("deptList") Long deptList);
/**
* 根据角色ID查询部门树信息 * 根据角色ID查询部门树信息
* *
* @param roleId 角色ID * @param roleId 角色ID
......
...@@ -28,6 +28,15 @@ public interface ISysDeptService { ...@@ -28,6 +28,15 @@ public interface ISysDeptService {
*/ */
List<SysDept> selectDeptListByList(List<Long> deptList); List<SysDept> selectDeptListByList(List<Long> deptList);
/**
* 根据父类id查询所有子类
*
* @param deptList 部门信息
* @return 部门信息集合
*/
List<SysDept> selectDeptListByDeID(Long deptList);
/** /**
* 查询部门树结构信息 * 查询部门树结构信息
* *
......
...@@ -48,6 +48,8 @@ public interface ISysUserService { ...@@ -48,6 +48,8 @@ public interface ISysUserService {
*/ */
SysUser selectUserByUserName(String userName); SysUser selectUserByUserName(String userName);
/** /**
* 通过手机号查询用户 * 通过手机号查询用户
* *
......
...@@ -63,6 +63,10 @@ public class SysDeptServiceImpl implements ISysDeptService { ...@@ -63,6 +63,10 @@ public class SysDeptServiceImpl implements ISysDeptService {
return baseMapper.selectDeptListNew(deptList); return baseMapper.selectDeptListNew(deptList);
} }
@Override
public List<SysDept> selectDeptListByDeID(Long deptList) {
return baseMapper.selectDeptListDeId(deptList);
}
/** /**
* 查询部门树结构信息 * 查询部门树结构信息
* *
......
...@@ -27,6 +27,7 @@ import com.ruoyi.system.mapper.*; ...@@ -27,6 +27,7 @@ import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.javassist.runtime.Desc;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -82,6 +83,7 @@ public class SysUserServiceImpl implements ISysUserService { ...@@ -82,6 +83,7 @@ public class SysUserServiceImpl implements ISysUserService {
.eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId()) .eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
.eq(StringUtils.isNotBlank(user.getSex()), "u.sex", user.getSex())
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber())
.between(params.get("beginTime") != null && params.get("endTime") != null, .between(params.get("beginTime") != null && params.get("endTime") != null,
"u.create_time", params.get("beginTime"), params.get("endTime")) "u.create_time", params.get("beginTime"), params.get("endTime"))
......
...@@ -51,6 +51,15 @@ ...@@ -51,6 +51,15 @@
</foreach> </foreach>
</select> </select>
<select id="selectDeptListDeId" resultMap="SysDeptResult">
SELECT *
FROM
sys_dept
where del_flag='0'
AND parent_id =#{deptList}
</select>
<select id="selectDeptListByRoleId" resultType="Long"> <select id="selectDeptListByRoleId" resultType="Long">
select d.dept_id select d.dept_id
from sys_dept d from sys_dept d
......
...@@ -126,6 +126,7 @@ ...@@ -126,6 +126,7 @@
sys_user u sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
order by u.user_id DESC
</select> </select>
<select id="selectUserList" resultMap="SysUserResult"> <select id="selectUserList" resultMap="SysUserResult">
...@@ -164,7 +165,7 @@ ...@@ -164,7 +165,7 @@
where u.del_flag = '0' and u.phonenumber = #{phonenumber} where u.del_flag = '0' and u.phonenumber = #{phonenumber}
</select> </select>
<select id="selectUserById" parameterType="Long" resultMap="SysUserResult"> <select id="selectUserById" parameterType="Long" resultMap="SysUserResult12">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where u.del_flag = '0' and u.user_id = #{userId} where u.del_flag = '0' and u.user_id = #{userId}
</select> </select>
......
...@@ -15,6 +15,7 @@ import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo; ...@@ -15,6 +15,7 @@ import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo;
import com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo; import com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import com.ruoyi.school.paper.service.IDbQuestionBankService; import com.ruoyi.school.paper.service.IDbQuestionBankService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -50,6 +51,15 @@ public class DbQuestionBankController extends BaseController { ...@@ -50,6 +51,15 @@ public class DbQuestionBankController extends BaseController {
} }
/** /**
* 【小程序】查询典例精讲列表
*/
@GetMapping("/exampleList")
public TableDataInfo<MyErrorTopicListVo> exampleList(DbQuestionBankBo bo, PageQuery pageQuery) {
return iDbQuestionBankService.exampleList(bo, pageQuery);
}
/**
* [PC端]导出题库主列表 * [PC端]导出题库主列表
*/ */
@Log(title = "题库主", businessType = BusinessType.EXPORT) @Log(title = "题库主", businessType = BusinessType.EXPORT)
......
package com.ruoyi.school.paper.domain.vo; package com.ruoyi.school.paper.domain.vo;
import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper; import com.ruoyi.school.paper.domain.DbQuestionBankAnswerTestPaper;
import com.sun.org.apache.xpath.internal.objects.XString;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -37,6 +38,16 @@ public class MyErrorTopicListVo implements Serializable { ...@@ -37,6 +38,16 @@ public class MyErrorTopicListVo implements Serializable {
private Long questionBankId; private Long questionBankId;
/** /**
* 解答思路
*/
private String resolveCourse;
/**
* 解答视频
*/
private String resolveVideo;
/**
* 选项标签集合 * 选项标签集合
*/ */
private List<DbQuestionBankAnswerTestPaper> options; private List<DbQuestionBankAnswerTestPaper> options;
......
package com.ruoyi.school.paper.mapper; package com.ruoyi.school.paper.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.school.paper.domain.DbQuestionBank; import com.ruoyi.school.paper.domain.DbQuestionBank;
import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.common.core.mapper.BaseMapperPlus;
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 java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* 题库主Mapper接口 * 题库主Mapper接口
...@@ -24,4 +29,9 @@ public interface DbQuestionBankMapper extends BaseMapperPlus<DbQuestionBankMappe ...@@ -24,4 +29,9 @@ public interface DbQuestionBankMapper extends BaseMapperPlus<DbQuestionBankMappe
* @return 题目详细信息 * @return 题目详细信息
*/ */
DbQuestionBankAndAnswerVo selectDetailById(Serializable id); DbQuestionBankAndAnswerVo selectDetailById(Serializable id);
/**
* 典例精讲列表
*/
Page<MyErrorTopicListVo> getExampleList(Page<Object> build, @Param("bo") DbQuestionBankBo bo);
} }
...@@ -6,6 +6,7 @@ import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo; ...@@ -6,6 +6,7 @@ import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo;
import com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo; import com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -71,4 +72,12 @@ public interface IDbQuestionBankService { ...@@ -71,4 +72,12 @@ public interface IDbQuestionBankService {
* 初始化题库到缓存 * 初始化题库到缓存
*/ */
void init(); void init();
/**
* 典例精讲
* @param bo 搜索条件
* @param pageQuery 分页参数
* @return
*/
TableDataInfo<MyErrorTopicListVo> exampleList(DbQuestionBankBo bo, PageQuery pageQuery);
} }
...@@ -17,6 +17,7 @@ import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo; ...@@ -17,6 +17,7 @@ import com.ruoyi.school.paper.domain.bo.DbQuestionBankBo;
import com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo; import com.ruoyi.school.paper.domain.bo.QuestionBankAndAnswerBo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankAndAnswerVo;
import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo; import com.ruoyi.school.paper.domain.vo.DbQuestionBankVo;
import com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo;
import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerMapper; import com.ruoyi.school.paper.mapper.DbQuestionBankAnswerMapper;
import com.ruoyi.school.paper.mapper.DbQuestionBankMapper; import com.ruoyi.school.paper.mapper.DbQuestionBankMapper;
import com.ruoyi.school.paper.service.IDbQuestionBankService; import com.ruoyi.school.paper.service.IDbQuestionBankService;
...@@ -213,4 +214,13 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService { ...@@ -213,4 +214,13 @@ public class DbQuestionBankServiceImpl implements IDbQuestionBankService {
List<DbQuestionBank> dbQuestionBanks = baseMapper.selectList(Wrappers.<DbQuestionBank>lambdaQuery().eq(DbQuestionBank::getStatus, 0)); List<DbQuestionBank> dbQuestionBanks = baseMapper.selectList(Wrappers.<DbQuestionBank>lambdaQuery().eq(DbQuestionBank::getStatus, 0));
RedisUtils.setCacheObject("question_bank:default_question_bank", JsonUtils.toJsonString(dbQuestionBanks)); RedisUtils.setCacheObject("question_bank:default_question_bank", JsonUtils.toJsonString(dbQuestionBanks));
} }
/**
* 典例精讲
*/
@Override
public TableDataInfo<MyErrorTopicListVo> exampleList(DbQuestionBankBo bo, PageQuery pageQuery) {
Page<MyErrorTopicListVo> result = baseMapper.getExampleList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
} }
...@@ -73,5 +73,40 @@ ...@@ -73,5 +73,40 @@
where bank.id = #{id} where bank.id = #{id}
</select> </select>
<resultMap id="MyErrorTopicListVo" type="com.ruoyi.school.paper.domain.vo.MyErrorTopicListVo">
<result property="questionBankId" column="question_bank_id"/>
<result property="topic" column="topic"/>
<result property="resolveCourse" column="resolve_course"/>
<result property="resolveVideo" column="resolve_video"/>
<collection property="options" javaType="java.util.List" resultMap="DbQuestionBankAnswerResult"/>
</resultMap>
<resultMap type="com.ruoyi.school.paper.domain.DbQuestionBankAnswer" id="DbQuestionBankAnswerResult">
<result property="id" column="id"/>
<result property="questionBankId" column="question_bank_id"/>
<result property="optionTag" column="option_tag"/>
<result property="optionContent" column="option_content"/>
<result property="remark" column="remark"/>
<result property="status" column="status"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
</resultMap>
<select id="getExampleList" resultMap="MyErrorTopicListVo">
select qb.id as question_bank_id,
qb.topic as topic,
qb.resolve_course,
qb.resolve_video,
dqba.*
from db_question_bank qb
left join db_question_bank_answer dqba on qb.id = dqba.question_bank_id
where type = 1
<if test="bo.categoryId != null">
and qb.category_id = #{bo.categoryId}
</if>
<if test="bo.species != null">
and qb.species = #{bo.species}
</if>
</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