package jnpf.message.mapper; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jnpf.base.mapper.SuperMapper; import jnpf.message.entity.MessageMonitorEntity; import jnpf.message.model.messagemonitor.MessageMonitorPagination; import jnpf.util.StringUtil; import java.lang.reflect.Field; import java.util.Date; import java.util.List; /** * 消息监控 * 版本: V3.2.0 * 版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) * 作者: JNPF开发平台组 * 日期: 2022-08-22 */ public interface MessageMonitorMapper extends SuperMapper { default List getList(MessageMonitorPagination messageMonitorPagination) { return getTypeList(messageMonitorPagination, messageMonitorPagination.getDataType()); } default List getTypeList(MessageMonitorPagination messageMonitorPagination, String dataType) { QueryWrapper messageMonitorQueryWrapper = new QueryWrapper<>(); //关键字 if (ObjectUtil.isNotEmpty(messageMonitorPagination.getKeyword())) { messageMonitorQueryWrapper.lambda().and(t -> t.like(MessageMonitorEntity::getTitle, messageMonitorPagination.getKeyword())); } //消息类型 if (ObjectUtil.isNotEmpty(messageMonitorPagination.getMessageType())) { messageMonitorQueryWrapper.lambda().eq(MessageMonitorEntity::getMessageType, messageMonitorPagination.getMessageType()); } //发送时间 if (ObjectUtil.isNotEmpty(messageMonitorPagination.getStartTime()) && ObjectUtil.isNotEmpty(messageMonitorPagination.getEndTime())) { messageMonitorQueryWrapper.lambda().ge(MessageMonitorEntity::getSendTime, new Date(messageMonitorPagination.getStartTime())) .le(MessageMonitorEntity::getSendTime, new Date(messageMonitorPagination.getEndTime())); } //消息来源 if (ObjectUtil.isNotEmpty(messageMonitorPagination.getMessageSource())) { messageMonitorQueryWrapper.lambda().eq(MessageMonitorEntity::getMessageSource, messageMonitorPagination.getMessageSource()); } //排序 if (StringUtil.isEmpty(messageMonitorPagination.getSidx())) { messageMonitorQueryWrapper.lambda().orderByDesc(MessageMonitorEntity::getSendTime); } else { try { String sidx = messageMonitorPagination.getSidx(); MessageMonitorEntity messageMonitorEntity = new MessageMonitorEntity(); Field declaredField = messageMonitorEntity.getClass().getDeclaredField(sidx); declaredField.setAccessible(true); String value = declaredField.getAnnotation(TableField.class).value(); messageMonitorQueryWrapper = "asc".equals(messageMonitorPagination.getSort().toLowerCase()) ? messageMonitorQueryWrapper.orderByAsc(value) : messageMonitorQueryWrapper.orderByDesc(value); } catch (NoSuchFieldException e) { e.printStackTrace(); } } if (!"1".equals(dataType)) { Page page = new Page<>(messageMonitorPagination.getCurrentPage(), messageMonitorPagination.getPageSize()); IPage userIPage = this.selectPage(page, messageMonitorQueryWrapper); return messageMonitorPagination.setData(userIPage.getRecords(), userIPage.getTotal()); } else { return this.selectList(messageMonitorQueryWrapper); } } default void create(MessageMonitorEntity entity) { this.insert(entity); } default MessageMonitorEntity getInfo(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(MessageMonitorEntity::getId, id); return this.selectOne(queryWrapper); } default void emptyMonitor() { this.deleteByIds(this.selectList(new QueryWrapper<>())); } default void delete(String[] ids) { if (ids.length > 0) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(MessageMonitorEntity::getId, ids); this.deleteByIds(selectList(queryWrapper)); } } }