龚焕茏
2024-05-24 1ded202362a307e467852dc681517e18498f0db4
feat:试卷选择学员时新增标签多选、排除标签
2个文件已修改
37 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/domain/vo/UserVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/UserVO.java
@@ -92,10 +92,30 @@
    private List<Integer> deptIds;
    private List<Integer> tagIds;
    private List<Integer> excludeTagIds;
    private Integer pageIndex;
    private Integer pageSize;
    public List<Integer> getExcludeTagIds() {
        return excludeTagIds;
    }
    public void setExcludeTagIds(List<Integer> excludeTagIds) {
        this.excludeTagIds = excludeTagIds;
    }
    public List<Integer> getTagIds() {
        return tagIds;
    }
    public void setTagIds(List<Integer> tagIds) {
        this.tagIds = tagIds;
    }
    public List<Integer> getDeptIds() {
        return deptIds;
    }
src/main/resources/mapper/ExamPaperMapper.xml
@@ -459,9 +459,6 @@
          left join t_user_department c on a.id = c.user_id
      where
          user_name != 'admin' and a.status != 2 and a.deleted = 0 and (a.`condition` = 0 or a.`condition` is null)
          <if test="tagId != null and tagId != ''">
             and b.tag_id = #{tagId}
          </if>
          <if test="deptIds != null and deptIds.size > 0">
            and c.department_id in
            <foreach collection="deptIds" open="(" separator="," close=")" item="deptId">
@@ -469,6 +466,20 @@
            </foreach>
          </if>
      group by a.id, a.real_name
        <if test="(tagIds != null and tagIds.size > 0) or (excludeTagIds != null and excludeTagIds.size > 0)">
        having
        </if>
        <if test="tagIds != null and tagIds.size > 0">
          <foreach collection="tagIds" open="(" separator="or" close=")" item="item">
            find_in_set(#{item}, group_concat(b.tag_id))
          </foreach>
        </if>
        <if test="excludeTagIds != null and excludeTagIds.size > 0">
          <if test="tagIds != null and tagIds.size > 0">and</if>
          <foreach collection="excludeTagIds" open="(" separator="and" close=")" item="item">
            not find_in_set(#{item}, group_concat(b.tag_id))
          </foreach>
        </if>
      order by a.id
    </select>