package com.zt.plat.module.base.dal.mysql.tmpltp;

import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplTpPageReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpDO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 模板分类 Mapper
 *
 * @author 后台管理
 */
@Mapper
public interface TmplTpMapper extends BaseMapperX<TmplTpDO> {

    default PageResult<TmplTpDO> selectPage(TmplTpPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<TmplTpDO>()
                .likeIfPresent(TmplTpDO::getName, reqVO.getName())
                .eqIfPresent(TmplTpDO::getNum, reqVO.getNum())
                .eqIfPresent(TmplTpDO::getPrnId, reqVO.getPrnId())
                .eqIfPresent(TmplTpDO::getSrt, reqVO.getSrt())
                .eqIfPresent(TmplTpDO::getSts, reqVO.getSts())
                .eqIfPresent(TmplTpDO::getSts, reqVO.getSts())
                .betweenIfPresent(TmplTpDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(TmplTpDO::getId));
    }

    @MapKey("id")
    List<TmplFldRespVO> getField(@Param("id") Long id);

    @MapKey("id")
    List<TmplItmRespVO> getClause(@Param("id") Long id);

    TmplTpDO getTmplTpById(@Param("id") Long id);
}
