package jnpf.base.mapper; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; import jnpf.base.entity.SignatureEntity; import jnpf.base.entity.SignatureUserEntity; import jnpf.base.model.signature.SignatureListByIdsModel; import jnpf.base.model.signature.SignatureSelectorListVO; import jnpf.util.StringUtil; import jnpf.util.UserProvider; import java.util.ArrayList; import java.util.List; /** * 电子签章 * * @author JNPF开发平台组 * @copyright 引迈信息技术有限公司 * @date 2022年9月2日 上午9:18 */ public interface SignatureMapper extends SuperMapper { default List getListByIds(SignatureListByIdsModel model) { if (CollectionUtil.isEmpty(model.getIds())) { return new ArrayList<>(); } MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(SignatureEntity.class) .select(SignatureEntity::getId, SignatureEntity::getEnCode, SignatureEntity::getFullName, SignatureEntity::getIcon) .leftJoin(SignatureUserEntity.class, SignatureUserEntity::getSignatureId, SignatureEntity::getId) .select(SignatureUserEntity::getSignatureId, SignatureUserEntity::getUserId) .selectCollection(SignatureUserEntity.class, SignatureSelectorListVO::getSignatureUserList, map -> map .result(SignatureUserEntity::getSignatureId) .result(SignatureUserEntity::getUserId)); // ids wrapper.in(CollectionUtil.isNotEmpty(model.getIds()), SignatureEntity::getId, model.getIds()); // 是否有权限 wrapper.eq(StringUtil.isNotEmpty(UserProvider.getLoginUserId()), SignatureUserEntity::getUserId, UserProvider.getLoginUserId()); wrapper.orderByAsc(SignatureEntity::getSortCode).orderByDesc(SignatureEntity::getCreatorTime); return this.selectJoinList(SignatureSelectorListVO.class, wrapper); } default SignatureEntity getInfoById(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SignatureEntity::getId, id); queryWrapper.lambda().orderByAsc(SignatureEntity::getSortCode).orderByDesc(SignatureEntity::getCreatorTime); return this.selectOne(queryWrapper); } default boolean isExistByFullName(String fullName, String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SignatureEntity::getFullName, fullName); if (StringUtil.isNotEmpty(id)) { queryWrapper.lambda().ne(SignatureEntity::getId, id); } return this.selectCount(queryWrapper) > 0; } default boolean isExistByEnCode(String enCode, String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SignatureEntity::getEnCode, enCode); if (StringUtil.isNotEmpty(id)) { queryWrapper.lambda().ne(SignatureEntity::getId, id); } return this.selectCount(queryWrapper) > 0; } }