<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~
  ~      Copyright (c) 2018-2025, lengleng All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the yifu4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: lengleng (wangiegie@gmail.com)
  ~
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.yifu.cloud.plus.v1.yifu.social.mapper.THolidayInfoMapper">

  <resultMap id="tHolidayInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo">
    <id property="id" column="ID"/>
    <result property="date" column="DATE"/>
    <result property="year" column="YEAR"/>
    <result property="month" column="MONTH"/>
    <result property="day" column="DAY"/>
    <result property="createBy" column="CREATE_BY"/>
    <result property="createName" column="CREATE_NAME"/>
    <result property="createTime" column="CREATE_TIME"/>
    <result property="updateBy" column="UPDATE_BY"/>
    <result property="updateTime" column="UPDATE_TIME"/>
	<result property="isHoliday" column="isHoliday"/>

  </resultMap>
	<resultMap id="noPageMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.THolidayExportVo">
		<result property="year" column="YEAR"/>
		<result property="month" column="MONTH"/>
		<result property="day" column="DAY"/>
		<result property="isHoliday" column="isHoliday"/>
	</resultMap>
    <sql id="Base_Column_List">
                a.ID,
                a.DATE,
                a.YEAR,
                a.MONTH,
                a.DAY,
                a.CREATE_BY,
                a.CREATE_NAME,
                a.CREATE_TIME,
                a.UPDATE_BY,
                a.UPDATE_TIME
    </sql>
    <sql id="tHolidayInfo_where">
        <if test="tHolidayInfo != null">
			<if test="tHolidayInfo.id != null and tHolidayInfo.id.trim() != ''">
				AND a.ID = #{tHolidayInfo.id}
			</if>
			<if test="tHolidayInfo.date != null">
				AND a.DATE = #{tHolidayInfo.date}
			</if>
			<if test="tHolidayInfo.year != null and tHolidayInfo.year.trim() != ''">
				AND a.YEAR like concat('%', #{tHolidayInfo.year}, '%')
			</if>
			<if test="tHolidayInfo.month != null and tHolidayInfo.month.trim() != ''">
				AND a.MONTH  like concat('%', #{tHolidayInfo.month}, '%')
			</if>
			<if test="tHolidayInfo.day != null and tHolidayInfo.day.trim() != ''">
				AND a.DAY  like concat('%', #{tHolidayInfo.day}, '%')
			</if>
			<if test="tHolidayInfo.createBy != null and tHolidayInfo.createBy.trim() != ''">
				AND a.CREATE_BY = #{tHolidayInfo.createBy}
			</if>
			<if test="tHolidayInfo.createName != null and tHolidayInfo.createName.trim() != ''">
				AND a.CREATE_NAME = #{tHolidayInfo.createName}
			</if>
			<if test="tHolidayInfo.createTime != null">
				AND a.CREATE_TIME = #{tHolidayInfo.createTime}
			</if>
			<if test="tHolidayInfo.updateBy != null and tHolidayInfo.updateBy.trim() != ''">
				AND a.UPDATE_BY = #{tHolidayInfo.updateBy}
			</if>
			<if test="tHolidayInfo.updateTime != null">
				AND a.UPDATE_TIME = #{tHolidayInfo.updateTime}
			</if>
        </if>
    </sql>
    <!--tHolidayInfo简单分页查询-->
    <select id="getTHolidayInfoPage" resultMap="tHolidayInfoMap">
        SELECT
        <include refid="Base_Column_List"/>,'是' as 'isHoliday'
        FROM t_holiday_info a
        <where>
            1=1
            <include refid="tHolidayInfo_where"/>
        </where>
    </select>
	<!-- 导出  -->
	<select id="exportSearch" resultMap="noPageMap">
		SELECT
		a.YEAR,
		a.MONTH,
		a.DAY,'是' as 'isHoliday'
		FROM t_holiday_info a
		<where>
			1=1
			<include refid="tHolidayInfo_where"/>
		</where>
	</select>
    <!--获取本月和下月的全部节假日-->
    <select id="getOneMonthDay" resultType="java.lang.String">
		SELECT
			DATE_FORMAT(a.DATE,'%Y-%m-%d') DATE
		FROM t_holiday_info a
		where a.DATE between DATE_FORMAT(curdate(),'%Y-%m-%d') and DATE_FORMAT(date_add( curdate(), INTERVAL 1 YEAR ),'%Y-%m-%d')
    </select>
</mapper>
