package com.iailab.module.data.plan.item.dao;

import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.iailab.framework.tenant.core.aop.TenantIgnore;
import com.iailab.framework.tenant.core.db.dynamic.DataDS;
import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
import com.iailab.module.data.plan.item.entity.PlanItemEntity;
import com.iailab.module.data.plan.item.vo.PlanItemDataVO;
import com.iailab.module.data.plan.item.vo.PlanItemPageReqVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年11月01日
 */
@TenantDS
@Mapper
public interface PlanItemDao extends BaseMapperX<PlanItemEntity> {

    @DataDS
    @TenantIgnore
    List<PlanItemDataVO> getSourceValue(Map<String, Object> params);

    default PageResult<PlanItemEntity> selectPage(PlanItemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<PlanItemEntity>()
                .likeIfPresent(PlanItemEntity::getItemNo, reqVO.getItemNo())
                .likeIfPresent(PlanItemEntity::getItemName, reqVO.getItemName())
                .eqIfPresent(PlanItemEntity::getItemCategory, reqVO.getItemCategory())
                .orderByDesc(PlanItemEntity::getCreateTime));
    }
}