<?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="cn.iocoder.yudao.module.configure.dal.mysql.tracetemplate.TraceTemplateMapper">

    <!--
        一般情况下，尽可能使用 Mapper 进行 CRUD 增删改查即可。
        无法满足的场景，例如说多表关联查询，才使用 XML 编写 SQL。
        代码生成器暂时只生成 Mapper XML 文件本身，更多推荐 MybatisX 快速开发插件来生成查询。
        文档可见：https://www.iocoder.cn/MyBatis/x-plugins/
     -->
    <resultMap id="queryTraceTemplatePageMap" type="cn.iocoder.yudao.module.configure.controller.admin.tracetemplate.vo.TraceTemplateRespVO">
        <association property="creatorName" column="creatorId=creator" select="queryCreatorName"></association>
    </resultMap>
    <select id="selectTraceTemplatePage" resultMap="queryTraceTemplatePageMap">
        SELECT * FROM configure_trace_template
        <where>
            deleted = 0
            <if test="pageReqVO.templateName != null and pageReqVO.templateName != ''">and template_name like concat('%',#{pageReqVO.templateName},'%') ESCAPE '/'</if>
            <if test="pageReqVO.goodsName != null and pageReqVO.goodsName != ''">and goods_name like concat('%',#{pageReqVO.goodsName},'%') ESCAPE '/'</if>
            <if test="pageReqVO.belongBusinessName != null and pageReqVO.belongBusinessName != ''">and belong_business_name like concat('%',#{pageReqVO.belongBusinessName},'%') ESCAPE '/'</if>
        </where>
    </select>
    <select id="queryCreatorName" resultType="String">
        SELECT nickname FROM system_users WHERE id = #{creatorId} AND deleted = 0
    </select>

    <resultMap id="queryTraceTemplateListMap" type="cn.iocoder.yudao.module.configure.controller.admin.tracetemplate.vo.TraceTemplateRespVO">
        <result column="template_id" property="templateId"></result>
        <collection property="links" column="traceLink.traceTemplateId=template_id" select="cn.iocoder.yudao.module.configure.dal.mysql.tracelink.TraceLinkMapper.getTraceLinkList"></collection>
    </resultMap>
    <select id="getTraceTemplateList" resultMap="queryTraceTemplateListMap">
        SELECT * FROM configure_trace_template
        <where>
            deleted = 0
            <if test="traceTemplate.goodsId != null and traceTemplate.goodsId != ''">and goods_id = #{traceTemplate.goodsId}</if>
        </where>
    </select>

</mapper>
