package cn.com.ctop.kuaishou.modules.label.mapper;

import cn.com.ctop.common.module.entity.TagInfo;
import cn.com.ctop.kuaishou.modules.label.entity.LabelStandardInfo;
import cn.com.ctop.kuaishou.modules.label.entity.MaterialLabelInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: 素材标签
 * @Author: zzy
 * @Date: 2021-07-30
 * @Version: V1.0
 */
@Mapper
public interface MaterialLabelMapper {
    /**
     * 查询所有素材
     */
    List<String> getMateriaSignature();

    /**
     * 查询增量素材
     */
    List<String> getMateriaSignatureCharge(@Param("date")String date);

    /**
     * 获取素材产生消耗的最早日期
     */
    String getMaterialFirstDate(@Param("signature")String signature);
    /**
     * 查询素材30日数据
     */
    LabelStandardInfo getLabermessage(@Param("signature")String signature, @Param("startDate")String startDate, @Param("endDate")String endDate);
    /**
     * 查询素材2日数据
     */
    LabelStandardInfo getLabermessageByTwoDays(@Param("signature")String signature,@Param("startDate")String startDate,@Param("endDate")String endDate);
    /**
     * 保存素材判断标准数据
     */
    void saveLabelMessage(LabelStandardInfo LabelStandardInfo);
    /**
     * 素材标准数据判断是否存在此素材
     */
    LabelStandardInfo  getMaterialRecord(@Param("signature")String signature);
    /**
     * 修改素材标准数据
     */
    void updateMaterialRecord(LabelStandardInfo LabelStandardInfo);
    /**
     * 查询所有标签
     */
    List<TagInfo> getTagInfo();
    /**
     * 查询所有素材标准数据
     */
    List<LabelStandardInfo> getAllMaterialData();

    /**
     * 查询所有素材标准数据
     */
    List<LabelStandardInfo> getAllMaterialDataCharge(@Param("date")String date);

    /**
     * 保存素材标签数据
     */
    void saveMaterialTag(@Param("code")String code,@Param("tagName")String tagName,@Param("tagCode")String tagCode,@Param("tagId")String tagId,@Param("categoryId")String categoryId,@Param("createTime")String createTime);

    /**
     * 根据素材标识和标签编码查询数据
     */
    int getDataByCodeAndSignature(@Param("signature")String code,@Param("tagCode")String tagCode);

    /**
     * 查询素材数据以及标签
     */
    List<MaterialLabelInfo> getMaterialLabelData(@Param("date")String date);
}
