package cn.ey.biz.module.system.dal.mapper.wiki;

import cn.ey.biz.common.pojo.PageResult;
import cn.ey.biz.framework.mybatis.core.mapper.BaseMapperX;
import cn.ey.biz.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.ey.biz.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
import cn.ey.biz.module.system.controller.admin.wiki.vo.WikiSpacePageReqVO;
import cn.ey.biz.module.system.controller.admin.wiki.vo.WikiSpaceTypeReqVO;
import cn.ey.biz.module.system.dal.dataobject.app.AppDO;
import cn.ey.biz.module.system.dal.dataobject.sms.SmsLogDO;
import cn.ey.biz.module.system.dal.dataobject.wiki.WikiSpaceDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface WikiSpaceMapper extends BaseMapperX<WikiSpaceDO> {

    default PageResult<WikiSpaceDO> selectPage(WikiSpacePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<WikiSpaceDO>()
                .likeIfPresent(WikiSpaceDO::getName, reqVO.getName())
                .eqIfPresent(WikiSpaceDO::getApp, reqVO.getApp())
                .eqIfPresent(WikiSpaceDO::getType, reqVO.getType())
                .eqIfPresent(WikiSpaceDO::getContentType, reqVO.getContentType())
                .likeIfPresent(WikiSpaceDO::getSpaceExplain, reqVO.getSpaceExplain())
                .orderByDesc(WikiSpaceDO::getId));
    }

    default List<WikiSpaceDO> selectList(WikiSpaceTypeReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<WikiSpaceDO>()
                .eqIfPresent(WikiSpaceDO::getApp, reqVO.getApp())
                .eqIfPresent(WikiSpaceDO::getType, reqVO.getType())
                .eqIfPresent(WikiSpaceDO::getReleaseStatus, reqVO.getReleaseStatus())
                .eqIfPresent(WikiSpaceDO::getStatus, reqVO.getStatus())
                .orderByDesc(WikiSpaceDO::getId));
    }

}
