123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?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="com.gqy.document.mapper.DocumentMapper">
- <resultMap type="Document" id="DocumentResult">
- <id property="id" column="id" />
- <result property="title" column="title" />
- <result property="data" column="data" />
- <result property="user_id" column="user_id" />
- <result property="category_id" column="category_id" />
- <result property="is_template" column="is_template" />
- <result property="status" column="status" />
- <result property="create_time" column="create_time" />
- <result property="update_time" column="update_time" />
- <result property="create_by" column="create_by" />
- <result property="update_by" column="update_by" />
- </resultMap>
- <insert id="insertDocument" parameterType="Document" useGeneratedKeys="true" keyProperty="id">
- insert into dc_document(
- <if test="title != null and title != ''">title,</if>
- <if test="data != null">data,</if>
- <if test="user_id != null">user_id,</if>
- <if test="category_id != null">category_id,</if>
- <if test="is_template != null">is_template,</if>
- <if test="status != null">status,</if>
- <if test="create_by != null">create_by,</if>
- create_time,
- update_time
- )values(
- <if test="title != null and title != ''">#{title},</if>
- <if test="data != null">#{data},</if>
- <if test="user_id != null">#{user_id},</if>
- <if test="category_id != null">#{category_id},</if>
- <if test="is_template != null">#{is_template},</if>
- <if test="status != null">#{status},</if>
- <if test="create_by != null">#{create_by},</if>
- sysdate(),
- sysdate()
- )
- </insert>
- <select id="checkDocumentTitleUnique" resultMap="DocumentResult">
- select id, title, is_template
- from dc_document
- where title = #{title}
- and is_template = #{is_template}
- and status != 4
- limit 1
- </select>
- <sql id="selectDocumentVo">
- SELECT d.id, d.title, d.data, d.user_id, d.create_time, d.update_time,
- d.status, d.category_id, d.is_template,
- c.name as type_name, u.user_name
- FROM dc_document d
- LEFT JOIN dc_document_category c ON d.category_id = c.id
- LEFT JOIN sys_user u ON d.user_id = u.user_id
- </sql>
- <select id="selectDocumentList" parameterType="Document" resultMap="DocumentResult">
- <include refid="selectDocumentVo"/>
- <where>
- AND d.status = 5
- <if test="title != null and title != ''">
- AND d.title like concat('%', #{title}, '%')
- </if>
- <if test="category_id != null">
- AND d.category_id = #{categoryId}
- </if>
- <if test="user_id != null">
- AND d.user_id = #{userId}
- </if>
- <if test="params.isAdmin != null and params.isAdmin == true">
- AND d.is_template = 0
- </if>
- <if test="params.isAdmin != null and params.isAdmin == false">
- AND d.is_template = 0 AND d.user_id = #{params.loginUserId}
- </if>
- </where>
- ORDER BY d.id DESC
- </select>
- <!-- 分页查询文档列表 -->
- <select id="pageDocument" resultType="map">
- SELECT
- d.id,
- d.title,
- d.category_id,
- d.user_id,
- d.create_time,
- d.status,
- d.is_template,
- c.name as type_name,
- u.user_name
- FROM dc_document d
- LEFT JOIN dc_document_category c ON d.category_id = c.id AND c.status = 5
- LEFT JOIN sys_user u ON d.user_id = u.user_id
- <where>
- AND d.status = #{status}
- <if test="title != null and title != ''">
- AND d.title LIKE CONCAT('%', #{title}, '%')
- </if>
- <if test="category_id != null">
- AND d.category_id = #{category_id}
- </if>
- <if test="user_id != null">
- AND d.user_id = #{user_id}
- </if>
- <if test="current_user_id != null">
- AND (
- d.user_id = #{current_user_id}
- OR (
- d.is_template = 1
- AND d.user_id IN (
- SELECT user_id FROM sys_user
- WHERE is_admin = 1
- )
- )
- )
- </if>
- </where>
- ORDER BY d.create_time DESC
- </select>
- <!-- ================ info -->
- <resultMap type="Document" id="DocumentResultInfo">
- <id property="id" column="id" />
- <result property="title" column="title" />
- <result property="data" column="data" />
- <result property="user_id" column="user_id" />
- <result property="category_id" column="category_id" />
- <result property="create_time" column="create_time" />
- <result property="update_time" column="update_time" />
- <result property="status" column="status" />
- <result property="is_template" column="is_template" />
- <!-- 非数据库字段 -->
- <result property="category_name" column="category_name"/>
- <result property="user_name" column="user_name" />
- </resultMap>
- <sql id="selectDocumentVoInfo">
- SELECT d.id, d.title, d.data, d.user_id, d.category_id,
- d.create_time, d.update_time, d.status, d.is_template,
- c.name as category_name,
- u.user_name as user_name
- FROM dc_document d
- LEFT JOIN dc_document_category c ON d.category_id = c.id
- LEFT JOIN sys_user u ON d.user_id = u.user_id
- </sql>
- <select id="info" parameterType="Long" resultMap="DocumentResult">
- <include refid="selectDocumentVoInfo"/>
- <where>
- AND d.id = #{id}
- AND d.status != 4
- </where>
- </select>
- <!-- ================ info -->
- <!-- 获取文档关联的产品ID列表 -->
- <select id="selectProductDocumentsByDocId" parameterType="Long" resultType="Long">
- select product_id
- from dc_product_document
- where document_id = #{documentId}
- and status != 4
- </select>
- <!-- 获取文档关联的项目ID列表 -->
- <select id="selectProjectDocumentsByDocId" parameterType="Long" resultType="Long">
- select project_id
- from dc_project_document
- where doc_id = #{documentId}
- and status != 4
- </select>
- </mapper>
|