<?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.mapper.SpSmsMapper">
    <resultMap type="cn.roadm.bo.SpSmsInfo" id="SpSmsResultMap">
        <id column="id" property="id"/>
        <result column="full_name" property="fullName"/>
        <result column="short_name" property="shortName"/>
        <result column="create_time" property="createTime"/>

        <result column="invoice_header" property="invoiceHeader"/>
        <result column="invoice_type" property="invoiceType"/>
        <result column="invoice_code" property="invoiceCode"/>
        <result column="bank_name" property="bankName"/>
        <result column="bank_num" property="bankNum"/>
        <result column="register_site" property="registerSite"/>
        <result column="register_tel" property="registerTel"/>
        <result column="receiver_tel" property="receiverTel"/>
        <result column="receiver_address" property="receiverAddress"/>
        <result column="company_user" property="companyUser"/>
        <result column="company_user_phone" property="companyUserPhone"/>
        <result column="is_sign" property="isSign"/>
        <result column="contract_end_time" property="contractEndTime"/>
        <result column="contract_file" property="contractFile"/>
        <result column="company_id_card" property="companyIdCard"/>
        <result column="company_user_2" property="companyUser2"/>
        <result column="company_user_phone_2" property="companyUserPhone2"/>
        <result column="company_id_card_2" property="companyIdCard2"/>
    </resultMap>

    <select id="listPageQuerySpSmsInfo" resultMap="SpSmsResultMap">
        select en.id, full_name, short_name, DATE_FORMAT(en.create_time,'%Y-%m-%d %H:%i:%S') as create_time, state, contract_end_time, contract_file, is_sign, name as customer
        from sms_enterprise en left join sms_user_info sp on en.customer = sp.USER_NAME
        <where>
            state = 0
            <if test="fullName != null and fullName != ''">
                and full_name like CONCAT('%',#{fullName},'%')
            </if>
            <if test="shortName != null and shortName != ''">
                and short_name like CONCAT('%',#{shortName},'%')
            </if>
            <if test="isSign != null">
                and is_sign = #{isSign}
            </if>
            <if test="customer != null and customer != ''">
                and customer like CONCAT('%',#{customer},'%')
            </if>
            <if test="userName != null and userName != ''">
                and sp.USER_NAME = #{userName}
            </if>
        </where>
        order by create_time desc
    </select>

    <insert id="addSpSms" parameterType="cn.roadm.bo.SpSmsInfo" useGeneratedKeys="true" keyProperty="id">
        insert into sms_enterprise (full_name, short_name, create_time, state, invoice_header, invoice_type, invoice_code, bank_name, bank_num,
        register_site, register_tel, business_license, identity_front, identity_side, receiver, receiver_tel, receiver_address, company_user, company_user_phone,
        is_sign, contract_end_time, contract_file, customer, company_id_card, alarmMdn, alarmEmail, company_user_2, company_user_phone_2, company_id_card_2,serviceType,spIp, spSign, spCertification)
        VALUES (#{fullName}, #{shortName}, now(), 0, #{invoiceHeader}, #{invoiceType}, #{invoiceCode}, #{bankName}, #{bankNum}, #{registerSite},
        #{registerTel}, #{business_license}, #{identity_front}, #{identity_side}, #{receiver}, #{receiverTel}, #{receiverAddress}, #{companyUser},
        #{companyUserPhone}, #{isSign}, #{contractEndTime}, #{contractFile}, #{customer}, #{companyIdCard}, #{alarmMdn}, #{alarmEmail},
        #{companyUser2}, #{companyUserPhone2}, #{companyIdCard2},#{serviceType},#{spIp}, #{spSign}, #{spCertification})
    </insert>

    <update id="updateSpSms">
        update sms_enterprise
        set full_name  = #{fullName},
            short_name = #{shortName},
            business_license = #{business_license},
            identity_front = #{identity_front},
            identity_side = #{identity_side},
            invoice_header = #{invoiceHeader},
            invoice_type = #{invoiceType},
            invoice_code = #{invoiceCode},
            bank_name = #{bankName},
            bank_num = #{bankNum},
            register_site = #{registerSite},
            register_tel = #{registerTel},
            receiver = #{receiver},
            receiver_tel = #{receiverTel},
            receiver_address = #{receiverAddress},
            company_user = #{companyUser},
            company_user_phone = #{companyUserPhone},
            is_sign = #{isSign},
            contract_end_time = #{contractEndTime},
            contract_file = #{contractFile},
            customer = #{customer},
            company_id_card = #{companyIdCard},
            alarmMdn = #{alarmMdn},
            alarmEmail = #{alarmEmail},
            company_user_2 = #{companyUser2},
            company_user_phone_2 = #{companyUserPhone2},
            company_id_card_2 = #{companyIdCard2},
            serviceType = #{serviceType},
            spIp = #{spIp},
            spSign = #{spSign},
            spCertification = #{spCertification}
        where id = #{id}
    </update>

    <select id="querySpSmsInfoById" resultMap="SpSmsResultMap">
        select id, full_name, short_name, create_time, state, business_license, identity_front, identity_side,
        invoice_header, invoice_type, invoice_code, bank_name, bank_num, register_site, register_tel,
        receiver, receiver_tel, receiver_address, company_user, company_user_phone, is_sign, contract_end_time, contract_file,
        customer, company_id_card, alarmMdn, alarmEmail, company_user_2, company_user_phone_2, company_id_card_2,serviceType,spIp, spSign, spCertification
        from sms_enterprise
        where id = #{eid}
    </select>

    <delete id="deleteSpSmsById">
        update sms_enterprise set state = 1 where id = #{eid}
    </delete>

    <select id="queryAllSpSms" resultMap="SpSmsResultMap">
        select id, full_name, short_name, is_sign, company_user, company_user_phone from sms_enterprise where state = 0;
    </select>

    <select id="getSpLicenceShow" resultType="java.util.Map">
        select config_key as `key`, value from sms_system_config;
    </select>

    <update id="updateSpLicence">
        update sms_enterprise
        <set>
            <if test="business_license != null and business_license != ''">
                business_license = #{business_license},
            </if>
            <if test="identity_front != null and identity_front != ''">
                identity_front = #{identity_front},
            </if>
            <if test="identity_side != null and identity_side != ''">
                identity_side = #{identity_side},
            </if>
        </set>
        where id = #{id}
    </update>

    <select id="getSpConfigListByColumn" resultType="cn.roadm.bo.BitchUpdateModal">
        select id as spId, sp_name as spName, ${column} as val from sms_sp_info a where a.status = 1
    </select>

    <select id="getApiSettingConfigByColumn" resultType="cn.roadm.bo.BitchUpdateModal">
        select  a.id as spId, a.sp_name as spName, SP_AUDIT_TYPE as val from sms_sp_info a left join sms_api_setting b on a.id = b.SP_ID where a.status = 1
    </select>

    <update id="bitchUpdateSpConfig">
        update sms_sp_info set ${column} = #{number} where id in
        <foreach collection="resultList" item="spId" open="(" separator="," close=")">
            #{spId}
        </foreach>
    </update>

    <update id="bitchUpdateApiSetting">
        update sms_api_setting set SP_AUDIT_TYPE = #{number} where SP_ID in
        <foreach collection="resultList" item="spId" open="(" separator="," close=")">
            #{spId}
        </foreach>
    </update>

    <select id="getAllUsers" resultType="java.util.Map">
        select user_name, name from sms_user_info where status = 1 and ROLE_ID = 60
    </select>

    <select id="getAllType" resultType="java.util.Map">
        select serviceType from sms_service_type where status = 1
    </select>

    <select id="getSpIdByCustomer" resultType="java.lang.String">
        select distinct a.id from sms_sp_info a left join sms_enterprise b on a.eid = b.id
        where b.customer = #{userName}
    </select>

    <!--查询所有正常公司（0正常1删除）-->
    <select id="getSpEnterpriseAll" resultMap="SpSmsResultMap">
        select id, full_name, short_name, create_time, state, business_license, identity_front, identity_side,
               invoice_header, invoice_type, invoice_code, bank_name, bank_num, register_site, register_tel,
               receiver, receiver_tel, receiver_address, company_user, company_user_phone, is_sign, contract_end_time, contract_file,
               customer, company_id_card, alarmMdn, alarmEmail, company_user_2, company_user_phone_2, company_id_card_2,serviceType
        from sms_enterprise
        where state = 0
    </select>
</mapper>