<?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.system.dal.mysql.biz.ByodRegistrationMapper">

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

    <select id="getByodRegistrationPage"
            resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.ByodRegistrationRespVO">

        select ebr.*,ei.elder_name from elderly_byod_registration ebr left join elderly_info ei on ei.id = ebr.elder_id
        <where>
            1 = 1
            <if test="params.elderId != null">
                and ei.id = #{params.elderId}
            </if>
            <if test="params.elderName != null and params.elderName != ''">
                and ei.elder_name like concat('%',#{params.elderName} ,'%')
            </if>
            <if test="params.bedId != null">
                and ei.bed_id = #{params.bedId}
            </if>
            <if test="params.registrationDate != null ">
                and ebr.registration_date between #{params.registrationDate[0]} and #{params.registrationDate[1]}
            </if>
            <if test="params.orgType != null ">
                and ei.org_type = #{params.orgType}
            </if>
             <if test="params.tenantId != null">
                 and ei.tenant_id = #{params.tenantId}
             </if>
        </where>
        order by ebr.created_time desc
    </select>
    <select id="getByodRegistrationDrugPage"
            resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.ByodRegistrationDrugRespVO">
        select ebrd.*,ei.elder_name,ebr.registration_date
        from elderly_byod_registration_drug ebrd
        inner join elderly_byod_registration ebr on ebr.id = ebrd.byod_registration_id
        inner join elderly_info ei on ei.id = ebr.elder_id
        <where>
            1 = 1
            <if test="params.elderId != null">
                and ei.id = #{params.elderId}
            </if>
            <if test="params.elderName != null and params.elderName != ''">
                and ei.elder_name like concat('%',#{params.elderName} ,'%')
            </if>
            <if test="params.drugName != null and params.drugName != ''">
                and ebrd.drug_name like concat('%',#{params.drugName} ,'%')
            </if>
            <if test="params.registrationDate != null">
                and ebr.registration_date between #{params.registrationDate[0]} and #{params.registrationDate[1]}
            </if>
            <if test="params.expectedUsableTime != null">
                and ebrd.expected_usable_time between #{params.expectedUsableTime[0]} and
                #{params.expectedUsableTime[1]}
            </if>
            <if test="params.orgType != null ">
                and ei.org_type = #{params.orgType}
            </if>
            <if test="params.tenantId != null">
                and ei.tenant_id = #{params.tenantId}
            </if>
        </where>
        order by ebrd.created_time desc
    </select>

    <select id="getByodRegistrationList"  resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.ByodRegistrationRespVO">
        SELECT
            ebr.*,
            ei.elder_name
        FROM
            elderly_byod_registration ebr
                INNER JOIN elderly_info ei ON ei.id = ebr.elder_id
        WHERE
            ei.in_status = 1
    </select>

</mapper>