package cn.iocoder.yudao.module.im.dal.mysql.group; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.im.controller.admin.manager.group.vo.ImGroupManagerPageReqVO; import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupDO; import org.apache.ibatis.annotations.Mapper; /** * IM 群 Mapper * * @author 芋道源码 */ @Mapper public interface ImGroupMapper extends BaseMapperX { default ImGroupDO selectByIdForUpdate(Long id) { return selectOne(new LambdaQueryWrapperX() .eq(ImGroupDO::getId, id) .last("FOR UPDATE")); } default PageResult selectPage(ImGroupManagerPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(ImGroupDO::getName, reqVO.getName()) .eqIfPresent(ImGroupDO::getOwnerUserId, reqVO.getOwnerUserId()) .eqIfPresent(ImGroupDO::getStatus, reqVO.getStatus()) .eqIfPresent(ImGroupDO::getBanned, reqVO.getBanned()) .betweenIfPresent(ImGroupDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(ImGroupDO::getId)); } }