package com.iailab.module.system.dal.mysql.sms; 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.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; import com.iailab.module.system.dal.dataobject.sms.SmsTemplateDO; import org.apache.ibatis.annotations.Mapper; @Mapper public interface SmsTemplateMapper extends BaseMapperX { default SmsTemplateDO selectByCode(String code) { return selectOne(SmsTemplateDO::getCode, code); } default PageResult selectPage(SmsTemplatePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(SmsTemplateDO::getType, reqVO.getType()) .eqIfPresent(SmsTemplateDO::getStatus, reqVO.getStatus()) .likeIfPresent(SmsTemplateDO::getCode, reqVO.getCode()) .likeIfPresent(SmsTemplateDO::getContent, reqVO.getContent()) .likeIfPresent(SmsTemplateDO::getApiTemplateId, reqVO.getApiTemplateId()) .eqIfPresent(SmsTemplateDO::getChannelId, reqVO.getChannelId()) .betweenIfPresent(SmsTemplateDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(SmsTemplateDO::getId)); } default Long selectCountByChannelId(Long channelId) { return selectCount(SmsTemplateDO::getChannelId, channelId); } }