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.SendConfigTemplateEntity; import jnpf.message.entity.SendMessageConfigEntity; import jnpf.message.model.sendmessageconfig.SendMessageConfigPagination; import jnpf.util.StringUtil; import jnpf.util.UserProvider; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * * 消息发送配置 * 版本: V3.2.0 * 版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) * 作者: JNPF开发平台组 * 日期: 2022-08-19 */ public interface SendMessageConfigMapper extends SuperMapper { default List getList(SendMessageConfigPagination sendMessageConfigPagination, String dataType) { String userId = UserProvider.getUser().getUserId(); int total = 0; int sendMessageConfigNum = 0; QueryWrapper sendMessageConfigQueryWrapper = new QueryWrapper<>(); int sendConfigTemplateNum = 0; QueryWrapper sendConfigTemplateQueryWrapper = new QueryWrapper<>(); //关键字 if (ObjectUtil.isNotEmpty(sendMessageConfigPagination.getKeyword())) { sendMessageConfigNum++; sendMessageConfigQueryWrapper.lambda().and(t -> t.like(SendMessageConfigEntity::getEnCode, sendMessageConfigPagination.getKeyword()). or().like(SendMessageConfigEntity::getFullName, sendMessageConfigPagination.getKeyword())); } //模板类型 if (ObjectUtil.isNotEmpty(sendMessageConfigPagination.getTemplateType())) { sendMessageConfigNum++; sendMessageConfigQueryWrapper.lambda().eq(SendMessageConfigEntity::getTemplateType, sendMessageConfigPagination.getTemplateType()); } //状态 if (ObjectUtil.isNotEmpty(sendMessageConfigPagination.getEnabledMark())) { sendMessageConfigNum++; int enabledMark = Integer.parseInt(sendMessageConfigPagination.getEnabledMark()); sendMessageConfigQueryWrapper.lambda().eq(SendMessageConfigEntity::getEnabledMark, enabledMark); } //消息来源 if (ObjectUtil.isNotEmpty(sendMessageConfigPagination.getMessageSource())) { sendMessageConfigNum++; sendMessageConfigQueryWrapper.lambda().eq(SendMessageConfigEntity::getMessageSource, sendMessageConfigPagination.getMessageSource()); } //排序 if (StringUtil.isEmpty(sendMessageConfigPagination.getSidx())) { sendMessageConfigQueryWrapper.lambda().orderByAsc(SendMessageConfigEntity::getSortCode).orderByDesc(SendMessageConfigEntity::getCreatorTime).orderByDesc(SendMessageConfigEntity::getLastModifyTime);; } else { try { String sidx = sendMessageConfigPagination.getSidx(); SendMessageConfigEntity sendMessageConfigEntity = new SendMessageConfigEntity(); Field declaredField = sendMessageConfigEntity.getClass().getDeclaredField(sidx); declaredField.setAccessible(true); String value = declaredField.getAnnotation(TableField.class).value(); sendMessageConfigQueryWrapper = "asc".equals(sendMessageConfigPagination.getSort().toLowerCase()) ? sendMessageConfigQueryWrapper.orderByAsc(value) : sendMessageConfigQueryWrapper.orderByDesc(value); } catch (NoSuchFieldException e) { e.printStackTrace(); } } if (!"1".equals(dataType)) { if (total > 0 || total == 0) { Page page = new Page<>(sendMessageConfigPagination.getCurrentPage(), sendMessageConfigPagination.getPageSize()); IPage userIPage = this.selectPage(page, sendMessageConfigQueryWrapper); return sendMessageConfigPagination.setData(userIPage.getRecords(), userIPage.getTotal()); } else { List list = new ArrayList(); return sendMessageConfigPagination.setData(list, list.size()); } } else { return this.selectList(sendMessageConfigQueryWrapper); } } default List getSelectorList(SendMessageConfigPagination sendMessageConfigPagination) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SendMessageConfigEntity::getMessageSource, 5).eq(SendMessageConfigEntity::getEnabledMark, 1); queryWrapper.lambda().eq(SendMessageConfigEntity::getTemplateType, 0); Page page = new Page<>(sendMessageConfigPagination.getCurrentPage(), sendMessageConfigPagination.getPageSize()); IPage userIPage = this.selectPage(page, queryWrapper); return sendMessageConfigPagination.setData(userIPage.getRecords(), userIPage.getTotal()); } default SendMessageConfigEntity getInfo(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SendMessageConfigEntity::getId, id); return this.selectOne(queryWrapper); } default SendMessageConfigEntity getInfoByEnCode(String enCode){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SendMessageConfigEntity::getEnCode, enCode); return this.selectOne(queryWrapper); } default boolean isExistByFullName(String fullName, String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SendMessageConfigEntity::getFullName, fullName); if (!StringUtil.isEmpty(id)) { queryWrapper.lambda().ne(SendMessageConfigEntity::getId, id); } return this.selectCount(queryWrapper) > 0 ? true : false; } default boolean isExistByEnCode(String enCode, String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SendMessageConfigEntity::getEnCode, enCode); if (!StringUtil.isEmpty(id)) { queryWrapper.lambda().ne(SendMessageConfigEntity::getId, id); } return this.selectCount(queryWrapper) > 0 ? true : false; } default List getList(List idList){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(SendMessageConfigEntity::getId,idList); return this.selectList(queryWrapper); } default List getIdList(String usedId){ List idList = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); if(this.selectList(queryWrapper) != null && this.selectList(queryWrapper).size()>0){ idList = this.selectList(queryWrapper).stream().distinct().map(t->t.getId()).collect(Collectors.toList()); } return idList; } default boolean idUsed(String id){ boolean flag = false; SendMessageConfigEntity entity = this.getInfo(id); // TODO 删除逻辑重新设置 return flag; } }