<?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.product.dal.mysql.landjob.LandJobMapper">

    <!--
        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
     -->

    <select id="selectJobTypeById"
            resultType="cn.iocoder.yudao.module.product.dal.dataobject.landjob.LandJobDO">
        SELECT a.*,b.type_name job_type_name
        FROM product_land_job a
        LEFT JOIN  product_land_job_type b on job_type = b.id
        WHERE a.deleted = 0
        <if test="landName != null and landName != ''"> and a.land_name LIKE CONCAT('%', #{landName}, '%') </if>
        <if test="landId != null and landId != ''"> and a.land_id = #{landId} </if>
        <if test="jobType != null and jobType != ''"> and b.id = #{jobType} </if>
        <if test="belongBusinessName != null and belongBusinessName != ''"> and a.belong_business_name = #{belongBusinessName} </if>
        ORDER BY a.id DESC
    </select>

    <!-- 根据id查询, 这里不管是否删除 -->
    <select id="getLandJob" resultType="cn.iocoder.yudao.module.product.dal.dataobject.landjob.LandJobDO">
        select * from product_land_job
        <where>
            <if test="id != null">id = #{id}</if>
            <if test="landJobId != null">land_job_id = #{landJobId}</if>
        </where>
    </select>

    <resultMap id="querySameTypeJobMaps" type="cn.iocoder.yudao.module.product.controller.admin.landjob.vo.LandJobRespVO">
        <collection property="landJobInputs" column="land_job_id=land_job_id" select="queryJobInputs"></collection>
    </resultMap>
    <select id="getSameTypeJobByType" resultMap="querySameTypeJobMaps">
        select plj.*, pljt.type_name jobTypeName
        from
            product_land_job plj
        left join product_land_job_type pljt on plj.job_type = pljt.id
        where plj.deleted = 0
          AND plj.job_type = #{type}
          AND plj.land_id = #{landId}
          AND plj.job_date >= NOW() - INTERVAL #{day} DAY
        order by plj.job_date desc
    </select>
    <select id="queryJobInputs" resultType="cn.iocoder.yudao.module.product.controller.admin.landjobinputs.vo.LandJobInputsRespVO">
        select * from
            product_land_job_inputs
        where deleted = 0 and land_job_id = #{land_job_id}
    </select>
    <select id="selectLandJob10Records"
            resultType="cn.iocoder.yudao.module.product.dal.dataobject.landjob.LandJobDO">
        SELECT a.*,b.type_name job_type_name
        FROM product_land_job a
        LEFT JOIN  product_land_job_type b on job_type = b.id
        ORDER BY id DESC
        LIMIT 10;
    </select>

</mapper>