<?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.SmsEnterpriseMapper">

    <select id="listPageQueryCompany" resultType="cn.roadm.admin.dto.SmsEnterpriseDO">
        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="companyQueryVO.fullName != null and companyQueryVO.fullName != ''">
                and full_name like CONCAT('%', #{companyQueryVO.fullName}, '%')
            </if>
            <if test="companyQueryVO.shortName != null and companyQueryVO.shortName != ''">
                and short_name like CONCAT('%', #{companyQueryVO.shortName}, '%')
            </if>
            <if test="companyQueryVO.isSign != null">
                and is_sign = #{companyQueryVO.isSign}
            </if>
            <if test="companyQueryVO.customer != null and companyQueryVO.customer != ''">
                and customer like CONCAT('%', #{companyQueryVO.customer}, '%')
            </if>
            <if test="companyQueryVO.userName != null and companyQueryVO.userName != ''">
                and sp.USER_NAME = #{companyQueryVO.userName}
            </if>
        </where>
    </select>

    <select id="selectCompanyDetailById" resultType="cn.roadm.admin.dto.SmsEnterpriseDO">
        select id,
               full_name,
               short_name,
               DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%S')       as 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,
               DATE_FORMAT(contract_end_time, '%Y-%m-%d %H:%i:%S') as create_time,
               contract_file,
               customer,
               company_id_card,
               alarmMdn,
               alarmEmail,
               company_user_2,
               company_user_phone_2,
               company_id_card_2,
               serviceType,
               spIp,
               spSign,
               spCertification,
               spIpPicture,
               spSignPicture
        from sms_enterprise
        where id = #{eid}
    </select>

    <update id="updateCompanyInfo">
        update sms_enterprise
        set full_name            = #{fullName},
            short_name           = #{shortName},
            business_license     = #{businessLicense},
            identity_front       = #{identityFront},
            identity_side        = #{identitySide},
            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},
            spIpPicture          = #{spIpPicture},
            spSign               = #{spSign},
            spSignPicture        = #{spSignPicture},
            spCertification      = #{spCertification}
        where id = #{id}
    </update>

    <insert id="insertCompanyInfo">
        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, spIpPicture, spSignPicture)
        VALUES (#{fullName}, #{shortName}, now(), 0, #{invoiceHeader}, #{invoiceType}, #{invoiceCode}, #{bankName},
                #{bankNum}, #{registerSite},
                #{registerTel}, #{businessLicense}, #{identityFront}, #{identitySide}, #{receiver}, #{receiverTel},
                #{receiverAddress}, #{companyUser},
                #{companyUserPhone}, #{isSign}, #{contractEndTime}, #{contractFile}, #{customer}, #{companyIdCard},
                #{alarmMdn}, #{alarmEmail},
                #{companyUser2}, #{companyUserPhone2}, #{companyIdCard2}, #{serviceType}, #{spIp}, #{spSign},
                #{spCertification}, #{spIpPicture}, #{spSignPicture})
    </insert>

    <update id="deleteCompanyInfo">
        update sms_enterprise set state = 1 where id = #{id}
    </update>

    <insert id="addServiceType">
        insert into sms_service_type (serviceType) values (#{serviceType})
    </insert>

    <delete id="deleteServiceType">
        delete from sms_service_type where id = #{id}
    </delete>
</mapper>
