package com.hys.app.mapper.goods;

import com.hys.app.framework.context.user.AdminUserContext;
import com.hys.app.framework.util.StringUtil;
import com.hys.app.framework.database.mybatisplus.base.BaseMapperX;
import com.hys.app.model.erp.dos.ProductDO;
import com.hys.app.model.erp.dto.ProductQueryParams;
import com.hys.app.framework.database.WebPage;

/**
 * 产品的Mapper
 *
 * @author 张崧
 * 2023-11-30 16:06:44
 */
public interface ProductMapper extends BaseMapperX<ProductDO> {

    default WebPage<ProductDO> selectPage(ProductQueryParams params) {
        return lambdaQuery()
                .eqIfPresent(ProductDO::getCompanyId, AdminUserContext.getCompanyId())
                .andX(StringUtil.notEmpty(params.getKeyword()),
                        w -> w.like(ProductDO::getName, params.getKeyword()).or())
                .likeIfPresent(ProductDO::getSku, params.getSku())
                .likeIfPresent(ProductDO::getName, params.getName())
                .likeIfPresent(ProductDO::getUnit, params.getUnit())
                .orderByAsc(ProductDO::getSort)
                .page(params);
    }

}

