package cn.wisenergy.chnmuseum.party.mapper;

import cn.wisenergy.chnmuseum.party.model.Asset;
import cn.wisenergy.chnmuseum.party.model.ExhibitionBoard;
import cn.wisenergy.chnmuseum.party.model.LearningContentBoard;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * <p>
 * 学习内容展板 Mapper 接口
 * </p>
 *
 * @author Danny Lee
 * @since 2021-03-16
 */
public interface LearningContentBoardMapper extends BaseMapper<LearningContentBoard> {

    @Select("SELECT lcb.*, eb.`name` as exhibition_board_name FROM learning_content_board lcb, exhibition_board eb WHERE lcb.learning_content_id=eb.id and lcb.learning_content_id = #{learningContentId}")
    List<LearningContentBoard> selectBoardListByLearningContentId(String learningContentId);

    @Select("<script>" + "SELECT eb.* FROM learning_content_board lcb, exhibition_board eb "
            + "WHERE lcb.learning_content_id=eb.id "
            + "<if test='learningContentId!=null'> and lcb.learning_content_id = #{learningContentId} </if>"
            + "<if test='nameOrCode!=null'> and eb.name like CONCAT('%',#{nameOrCode},'%')</if>"
            + "</script>"
    )
    IPage<ExhibitionBoard> selectBoardPageByLearningContentId(Page<?> page, String learningContentId, String nameOrCode);

    @Select("<script>" + "SELECT a.* FROM learning_content_board lcb, learning_content lc, exhibition_board eb, asset a "
            + "WHERE lcb.learning_content_id = lc.id "
            + "and lcb.exhibition_board_id = eb.id "
            + "and eb.asset_id = a.id "
            + "and lc.organ_id = #{organId}"
            + "</script>"
    )
    IPage<Asset> selectAssetPageByOrganId(Page<?> page, String organId);

}