package co.yixiang.yshop.module.member.dal.mysql.userinvitelog;

import java.util.*;

import co.yixiang.yshop.framework.common.pojo.PageResult;
import co.yixiang.yshop.framework.mybatis.core.query.LambdaQueryWrapperX;
import co.yixiang.yshop.framework.mybatis.core.mapper.BaseMapperX;
import co.yixiang.yshop.module.member.dal.dataobject.userinvitelog.UserInviteLogDO;
import org.apache.ibatis.annotations.Mapper;
import co.yixiang.yshop.module.member.controller.admin.userinvitelog.vo.*;

/**
 * 邀请日志 Mapper
 *
 * @author admin
 */
@Mapper
public interface UserInviteLogMapper extends BaseMapperX<UserInviteLogDO> {

    default PageResult<UserInviteLogDO> selectPage(UserInviteLogPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<UserInviteLogDO>()
                .eqIfPresent(UserInviteLogDO::getUserId, reqVO.getUserId())
                .eqIfPresent(UserInviteLogDO::getBeInviteUserId, reqVO.getBeInviteUserId())
                .betweenIfPresent(UserInviteLogDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(UserInviteLogDO::getId));
    }

    default List<UserInviteLogDO> selectList(UserInviteLogExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<UserInviteLogDO>()
                .eqIfPresent(UserInviteLogDO::getUserId, reqVO.getUserId())
                .eqIfPresent(UserInviteLogDO::getBeInviteUserId, reqVO.getBeInviteUserId())
                .betweenIfPresent(UserInviteLogDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(UserInviteLogDO::getId));
    }

}
