microservices/microservices-modules/microservices-modules-zone/src/main/resources/mapper/zone/ZoneResourceMapper.xml

370 lines
15 KiB
XML

<?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.microservices.zone.resource.mapper.ZoneResourceMapper">
<resultMap type="com.microservices.zone.resource.domain.ZoneResource" id="ZoneResourceResult">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="introduction" column="introduction"/>
<result property="fileIds" column="file_ids"/>
<result property="domainId" column="domain_id"/>
<result property="sort" column="sort"/>
<result property="isHomepage" column="is_homepage"/>
<result property="zoneId" column="zone_id"/>
<result property="deptId" column="dept_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="editorType" column="editor_type"/>
<result property="auditStatus" column="audit_status"/>
<result property="auditTime" column="audit_time"/>
<result property="auditBy" column="audit_by"/>
<result property="summary" column="summary"/>
<result property="remark" column="remark"/>
<result property="keywords" column="keywords"/>
<result property="extendData" column="extend_data"/>
<association property="zoneResourceDomain" column="domain_id"
javaType="com.microservices.zone.resource.domain.ZoneResourceDomain"
resultMap="domainResult"/>
</resultMap>
<resultMap id="domainResult" type="com.microservices.zone.resource.domain.ZoneResourceDomain">
<id property="id" column="domain_id"/>
<result property="name" column="domain_name"/>
</resultMap>
<sql id="selectZoneResourceVo">
select id,
name,
file_ids,
domain_id,
sort,
is_homepage,
zone_id,
dept_id,
del_flag,
create_by,
create_time,
update_by,
editor_type,
audit_status,
audit_time,
audit_by,
summary,
remark,
update_time,
keywords,
extend_data
from zone_resource
</sql>
<sql id="selectZoneResourceAliasVo">
select zr.id,
zr.name,
zr.file_ids,
zr.domain_id,
zr.sort,
zr.is_homepage,
zr.zone_id,
zr.dept_id,
zr.del_flag,
zr.create_by,
zr.create_time,
zr.update_by,
zr.update_time,
zr.editor_type,
zr.audit_status,
zr.audit_time,
zr.audit_by,
zr.summary,
zr.remark,
zr.keywords,
zr.extend_data,
zrd.name as domain_name
from zone_resource zr
left join zone_resource_domain zrd on zr.domain_id = zrd.id
</sql>
<sql id="selectZoneResourceAndIntroductionAliasVo">
select zr.id,
zr.introduction,
zr.name,
zr.file_ids,
zr.domain_id,
zr.sort,
zr.is_homepage,
zr.zone_id,
zr.dept_id,
zr.del_flag,
zr.create_by,
zr.create_time,
zr.update_by,
zr.update_time,
zr.editor_type,
zr.audit_status,
zr.audit_time,
zr.audit_by,
zr.summary,
zr.remark,
zr.keywords,
zr.extend_data,
zrd.name as domain_name
from zone_resource zr
left join zone_resource_domain zrd on zr.domain_id = zrd.id
</sql>
<sql id="selectWhere">
<where>
<if test="name != null and name != ''">and zr.name like concat('%', #{name}, '%')</if>
<if test="domainId != null ">and zr.domain_id = #{domainId}</if>
<if test="isHomepage != null and isHomepage != ''">and zr.is_homepage = #{isHomepage}</if>
<if test="zoneId != null ">and zr.zone_id = #{zoneId}</if>
<if test="deptId != null ">and zr.dept_id = #{deptId}</if>
<if test="createBy != null and createBy != ''">and zr.create_by = #{createBy}</if>
<if test="keywords != null and keywords != ''">and zr.keywords like concat('%', #{keywords}, '%')</if>
<choose>
<when test="auditStatus != null and auditStatus !=''">
and zr.audit_status = #{auditStatus}
</when>
<otherwise>
and zr.audit_status = '1'
</otherwise>
</choose>
<if test="searchTypeId != null ">
and zr.id in (select resource_id from zone_resource_to_type where type_id=#{searchTypeId})
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
ORDER BY zr.sort DESC
</where>
</sql>
<sql id="selectWhereBySearchVo">
<where>
<if test="name != null and name != ''">and zr.name like concat('%', #{name}, '%')</if>
<if test="domainId != null ">and zr.domain_id = #{domainId}</if>
<if test="isHomepage != null and isHomepage != ''">and zr.is_homepage = #{isHomepage}</if>
<if test="zoneId != null ">and zr.zone_id = #{zoneId}</if>
<if test="deptId != null ">and zr.dept_id = #{deptId}</if>
<if test="createBy != null and createBy != ''">and zr.create_by = #{createBy}</if>
<if test="keywords != null and keywords != ''">and zr.keywords like concat('%', #{keywords}, '%')</if>
<if test="searchTypeId != null ">
and zr.id in (select resource_id from zone_resource_to_type where type_id=#{searchTypeId})
</if>
<choose>
<when test="auditStatus != null and auditStatus !=''">
and zr.audit_status = #{auditStatus}
</when>
<otherwise>
and zr.audit_status = '1'
</otherwise>
</choose>
<!-- 数据范围过滤 -->
${params.dataScope}
<choose>
<when test="orderByDownloadCount != null and orderByDownloadCount">
order by (select sum(download_count) from sys_file_info sf where FIND_IN_SET(sf.file_id,zr.file_ids)) desc
</when>
<when test="orderByDownloadCount = null and orderByColumn = null and orderByColumn =''">
order by zr.sort DESC
</when>
</choose>
</where>
</sql>
<select id="selectZoneResourceList" parameterType="ZoneResource" resultMap="ZoneResourceResult">
<include refid="selectZoneResourceAliasVo"/>
<include refid="selectWhere"/>
</select>
<select id="selectZoneResourceListBySearchVo"
resultMap="ZoneResourceResult">
<include refid="selectZoneResourceAliasVo"/>
<include refid="selectWhereBySearchVo"/>
</select>
<select id="selectZoneResourceById" parameterType="Long" resultMap="ZoneResourceResult">
<include refid="selectZoneResourceAndIntroductionAliasVo"/>
where zr.id = #{id}
</select>
<select id="selectZoneResourceByNameAndZoneId" resultType="com.microservices.zone.resource.domain.ZoneResource">
<include refid="selectZoneResourceVo"/>
where name = #{name}
and zone_id = #{zoneId}
</select>
<select id="selectZoneResourceCount" resultType="java.lang.Integer">
select count(0)
from zone_resource zr
left join zone_resource_domain zrd on zr.domain_id = zrd.id
<include refid="selectWhere"/>
</select>
<select id="selectAllZoneResourceList" resultMap="ZoneResourceResult">
<include refid="selectZoneResourceAliasVo"/>
</select>
<insert id="insertZoneResource" parameterType="ZoneResource" useGeneratedKeys="true" keyProperty="id">
insert into zone_resource
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if>
<if test="introduction != null and introduction != ''">introduction,</if>
<if test="fileIds != null">file_ids,</if>
<if test="domainId != null">domain_id,</if>
<if test="sort != null">sort,</if>
<if test="isHomepage != null">is_homepage,</if>
<if test="zoneId != null">zone_id,</if>
<if test="deptId != null">dept_id,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="editorType != null">editor_type,</if>
<if test="summary != null">summary,</if>
<if test="auditStatus != null">audit_status,</if>
<if test="auditTime != null">audit_time,</if>
<if test="auditBy != null">audit_by,</if>
<if test="remark != null">remark,</if>
<if test="keywords != null">keywords,</if>
<if test="extendData != null">extend_data,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if>
<if test="introduction != null and introduction != ''">#{introduction},</if>
<if test="fileIds != null">#{fileIds},</if>
<if test="domainId != null">#{domainId},</if>
<if test="sort != null">#{sort},</if>
<if test="isHomepage != null">#{isHomepage},</if>
<if test="zoneId != null">#{zoneId},</if>
<if test="deptId != null">#{deptId},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="editorType != null">#{editorType},</if>
<if test="summary != null">#{summary},</if>
<if test="auditStatus != null">#{auditStatus},</if>
<if test="auditTime != null">#{auditTime},</if>
<if test="auditBy != null">#{auditBy},</if>
<if test="remark != null">#{remark},</if>
<if test="keywords != null">#{keywords},</if>
<if test="extendData != null">#{extendData},</if>
</trim>
</insert>
<update id="updateZoneResource" parameterType="ZoneResource">
update zone_resource
<trim prefix="SET" suffixOverrides=",">
<if test="name != null">name = #{name},</if>
<if test="introduction != null and introduction != ''">introduction = #{introduction},</if>
<if test="fileIds != null">file_ids = #{fileIds},</if>
<if test="domainId != null">domain_id = #{domainId},</if>
<if test="sort != null">sort = #{sort},</if>
<if test="isHomepage != null">is_homepage = #{isHomepage},</if>
<if test="zoneId != null">zone_id = #{zoneId},</if>
<if test="deptId != null">dept_id = #{deptId},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="summary != null">summary = #{summary},</if>
<if test="auditStatus != null">audit_status = #{auditStatus},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="auditTime != null">audit_time = #{auditTime},</if>
<if test="auditBy != null">audit_by = #{auditBy},</if>
<if test="keywords != null">keywords = #{keywords},</if>
<if test="extendData != null">extend_data = #{extendData},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteZoneResourceById" parameterType="Long">
delete
from zone_resource
where id = #{id}
</delete>
<delete id="deleteZoneResourceByIds" parameterType="String">
delete from zone_resource where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteZoneResourceByZoneId">
delete
from zone_resource
where zone_id = #{zoneId}
</delete>
<!-- 全局搜索 - 全文索引查询(含附件名称匹配) -->
<select id="globalSearch" resultMap="ZoneResourceResult">
SELECT zr.id,
zr.name,
zr.file_ids,
zr.domain_id,
zr.sort,
zr.is_homepage,
zr.zone_id,
zr.dept_id,
zr.del_flag,
zr.create_by,
zr.create_time,
zr.update_by,
zr.update_time,
zr.editor_type,
zr.audit_status,
zr.audit_time,
zr.audit_by,
zr.summary,
zr.remark,
zr.keywords,
zr.extend_data
FROM zone_resource zr
WHERE
zr.zone_id = #{zoneId}
AND zr.audit_status = '1'
AND (
MATCH(zr.name, zr.keywords) AGAINST(#{keyword} IN NATURAL LANGUAGE MODE)
OR EXISTS (
SELECT 1 FROM sys_file_info sf
WHERE FIND_IN_SET(sf.file_id, zr.file_ids)
AND MATCH(sf.file_origin_name) AGAINST(#{keyword} IN NATURAL LANGUAGE MODE)
)
)
ORDER BY
CASE
WHEN MATCH(zr.name, zr.keywords) AGAINST(#{keyword} IN NATURAL LANGUAGE MODE) > 0
THEN MATCH(zr.name, zr.keywords) AGAINST(#{keyword} IN NATURAL LANGUAGE MODE)
ELSE 0
END DESC,
zr.update_time DESC
LIMIT #{offset}, #{pageSize}
</select>
<select id="globalSearchCount" resultType="java.lang.Long">
SELECT COUNT(*)
FROM zone_resource zr
WHERE
zr.audit_status = '1'
AND (
MATCH(zr.name, zr.keywords) AGAINST(#{keyword} IN NATURAL LANGUAGE MODE)
OR EXISTS (
SELECT 1 FROM sys_file_info sf
WHERE FIND_IN_SET(sf.file_id, zr.file_ids)
AND MATCH(sf.file_origin_name) AGAINST(#{keyword} IN NATURAL LANGUAGE MODE)
)
)
<if test="zoneId != null">
AND zr.zone_id = #{zoneId}
</if>
<if test="deptId != null">
AND zr.dept_id = #{deptId}
</if>
</select>
</mapper>