<?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.member.dal.mysql.user.MemberCardMapper">

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


    <select id="getEmployeeMemberCardList"
            resultType="cn.iocoder.yudao.module.member.dal.dataobject.user.MemberCardDO">
        select mc.*, mu.name as member_user_name
        from member_card mc
                 left join member_user mu on mu.id = mc.member_user_id
        where mu.member_category = 2
        order by mc.created_time desc
    </select>
    <select id="getCardPage"
            resultType="cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberCardPageRespVO">
        select mc.*,
        mu.name as member_user_name,
        mu.member_category
        from member_card mc
        inner join member_user mu on mu.id = mc.member_user_id
        where 1 = 1
        <if test="params.memberCategory != null and params.memberCategory != '' ">
            and mu.member_category = #{params.memberCategory}
        </if>
        <if test="params.memberUserName != null and params.memberUserName != ''">
            and mu.name like concat('%',#{params.memberUserName} ,'%')
        </if>
        <if test="params.memberCardNumber != null and params.memberCardNumber != '' ">
            and mc.member_card_number like concat('%',#{params.memberCardNumber} ,'%')
        </if>
        <if test="params.orgType != null">
            and mu.org_type = #{params.orgType}
        </if>
        <if test="params.tenantId != null">
            and mu.tenant_id = #{params.tenantId}
        </if>
        order by mc.created_time desc
    </select>
    <select id="getMemberCardStatisticalReportPage"
            resultType="cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberCardStatisticReportVO">
        select mc.*, mu.name as member_user_name
        from member_card mc
                 left join member_user mu on mu.id = mc.member_user_id
    </select>
</mapper>