linwei
2024-01-06 6a53233a381819bcdcc7acdc3a018db9b3b8a311
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.discuss.mapper.TopicsMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="topicsResultMap" type="org.springblade.modules.discuss.entity.TopicsEntity">
        <result property="id"    column="id"    />
        <result property="discussContent"    column="discuss_content"    />
        <result property="optionRange"    column="option_range"    />
        <result property="sort"    column="sort"    />
        <result property="optionContent"    column="option_content"    />
        <result property="optionDetail"    column="option_detail"    />
        <result property="number"    column="number"    />
        <result property="createTime"    column="crete_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deleteFlag"    column="delete_flag"    />
        <result property="publicDiscussId"    column="public_discuss_id"    />
        <result property="parentId"    column="parent_id"    />
        <result property="level"    column="level"    />
    </resultMap>
 
 
    <resultMap type="org.springblade.modules.discuss.dto.TopicsDTO" id="TopicsDTOResult">
        <result property="id"    column="id"    />
        <result property="discussContent"    column="discuss_content"    />
        <result property="optionRange"    column="option_range"    />
        <result property="sort"    column="sort"    />
        <result property="optionContent"    column="option_content"    />
        <result property="optionDetail"    column="option_detail"    />
        <result property="number"    column="number"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deleteFlag"    column="delete_flag"    />
        <result property="publicDiscussId"    column="public_discuss_id"    />
        <result property="parentId"    column="parent_id"    />
        <result property="level"    column="level"    />
        <result property="selected"    column="selected"    />
        <collection property="children" column="id" javaType="list" ofType="org.springblade.modules.discuss.dto.TopicsDTO"  select="selectStlCount">
        </collection>
 
 
    </resultMap>
 
    <select id="selectStlCount" parameterType="int" resultType="org.springblade.modules.discuss.dto.TopicsDTO">
        <include refid="selectTopics"/>
        <where>
            <if test="id != null "> parent_id = #{id}</if>
        </where>
    </select>
 
 
    <sql id="selectTopics">
        select
            id,
            discuss_content,
            option_range,
            sort,
            option_content,
            option_detail,
            number,
            create_time,
            update_time,
            delete_flag,
            public_discuss_id,
            parent_id,
            level,
            selected
        from
            jczz_topics
    </sql>
    <select id="selectTopicsPage" resultMap="topicsResultMap">
        select * from jczz_topics where deleted_flag = 0
    </select>
 
    <select id="selectTopicsList" parameterType="org.springblade.modules.discuss.dto.TopicsDTO" resultMap="TopicsDTOResult">
        SELECT
        jt.id,
        jt.discuss_content,
        jt.option_range,
        jt.sort,
        jt.option_content,
        jt.option_detail,
        jt.number,
        jt.create_time,
        jt.update_time,
        jt.delete_flag,
        jt.public_discuss_id,
        jt.parent_id,
        jt.article_id,
        jt.LEVEL,
        ( SELECT jut.selected FROM jczz_user_topics jut WHERE jut.article_id = jt.article_id AND jut.user_id = #{userId}
        ) selected
        FROM
        jczz_topics jt
        <where>
            <if test="id != null "> and jt.id = #{id}</if>
            <if test="discussContent != null  and discussContent != ''"> and jt.discuss_content = #{discussContent}</if>
            <if test="optionRange != null "> and jt.option_range = #{optionRange}</if>
            <if test="sort != null "> and jt.sort = #{sort}</if>
            <if test="optionContent != null  and optionContent != ''"> and jt.option_content = #{optionContent}</if>
            <if test="optionDetail != null  and optionDetail != ''"> and jt.option_detail = #{optionDetail}</if>
            <if test="number != null "> and jt.number = #{number}</if>
            <if test="createTime != null "> and jt.create_time = #{createTime}</if>
            <if test="updateTime != null "> and jt.update_time = #{updateTime}</if>
            <if test="deleteFlag != null "> and jt.delete_flag = #{deleteFlag}</if>
            <if test="publicDiscussId != null "> and jt.public_discuss_id = #{publicDiscussId}</if>
            <if test="parentId != null "> and jt.parent_id = #{parentId}</if>
            <if test="level != null "> and jt.level = #{level}</if>
            <if test="articleId != null ">and jt.article_id = #{articleId}</if>
            and jt.delete_flag = 0
        </where>
    </select>
 
 
</mapper>