<?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.roadm.admin.mapper.AlarmContactMapper">

    <select id="listPageQueryAlarmContactList" resultType="cn.roadm.admin.table.AlarmSmsTable">
        SELECT a.id,
               a.phone,
               a.user_name,
               a.mail_address,
                a.sms_flag,
                a.email_flag,
               g.group_names
        FROM alarm_sms a
                 LEFT JOIN
             (SELECT b.contact_id,
                     GROUP_CONCAT(c.group_name) AS group_names
              FROM alarm_contact_user_group b
                       LEFT JOIN
                   alarm_contacts_group c ON b.group_id = c.id
              GROUP BY b.contact_id) AS g
             ON
                 a.id = g.contact_id
        <where>
            <if test="alarmContactReqVO.name != null and alarmContactReqVO.name != ''">
                user_name like concat('%', #{alarmContactReqVO.name}, '%')
            </if>
            <if test="alarmContactReqVO.email != null and alarmContactReqVO.email != ''">
                and mail_address like concat('%', #{alarmContactReqVO.email},'%')
            </if>
            <if test="alarmContactReqVO.phone != null and alarmContactReqVO.phone != ''">
                and phone like concat ('%', #{alarmContactReqVO.phone}, '%')
            </if>
        </where>
    </select>

    <select id="listAlarmContactSimpleList" resultType="cn.roadm.admin.controller.vo.PageSelectOptionsVO">
        SELECT id as value, user_name as label FROM alarm_sms
    </select>

    <select id="listAlarmContactSimpleGroup" resultType="cn.roadm.admin.controller.vo.PageSelectOptionsVO">
        SELECT id as value, group_name as label FROM alarm_contacts_group
    </select>

    <select id="queryAllAlarmContactGroupList" resultType="cn.roadm.admin.table.AlarmContactsGroupTable">
        SELECT a.id, a.group_name, a.group_detail, a.ding_talk_push, a.wecom_push, tmp.user_names, tmp.user_ids
        FROM alarm_contacts_group a
                 left join (select b.group_id, group_concat(c.user_name) as user_names, group_concat(c.id) as user_ids
                            from alarm_contact_user_group b
                                     left join alarm_sms c on b.contact_id = c.id
                            group by b.group_id) tmp
                           on tmp.group_id = a.id
    </select>
</mapper>
