package cn.hnthyy.thmz.mapper.thmz;

import cn.hnthyy.thmz.entity.thmz.Config;
import org.apache.ibatis.annotations.*;

public interface ConfigMapper {
    /**
     * 按照查询键查询配置内容
     *
     * @param configKey 查询键
     * @return
     */
    @Select("select id,config_key, config_value, create_id, create_date from t_config where config_key=#{configKey}")
    Config selectUserByKey(@Param("configKey") String configKey);
    /**
     * 新增文件
     *
     * @param config
     * @return
     */
    @Insert("INSERT INTO t_config(config_key, config_value, create_id, create_date) VALUES " +
            "(#{configKey,jdbcType=VARCHAR}, #{configValue,jdbcType=VARCHAR},#{createId,jdbcType=BIGINT}, #{createDate,jdbcType=TIMESTAMP})")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    int insertConfig(Config config);

//    /**
//     * 更新配置文件
//     * @param config
//     * @return
//     */
//    @Update({"<script>",
//            "update t_config ",
//            "<trim prefix='set' prefixOverrides=',' suffix=' where id = #{id,jdbcType=BIGINT} ' >",
//            "<when test='configKey!=null'>",
//            ",config_key =#{configKey,jdbcType=VARCHAR}",
//            "</when>",
//            "<when test='configValue!=null'>",
//            ",config_value =#{configValue,jdbcType=VARCHAR}",
//            "</when>",
//            "</trim>",
//            "</script>"})
//    int updateConfig(Config config);


    /**
     * 更新配置文件
     * @param config
     * @return
     */
    @Update({"<script>",
            "update t_config ",
            "<trim prefix='set' prefixOverrides=',' suffix=' where config_key =#{configKey,jdbcType=VARCHAR} ' >",
            "<when test='configValue!=null'>",
            ",config_value =#{configValue,jdbcType=VARCHAR}",
            "</when>",
            "</trim>",
            "</script>"})
    int updateConfigByKey(Config config);
}
