package jnpf.permission.mapper; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jnpf.base.mapper.SuperMapper; import jnpf.base.model.base.SystemBaeModel; import jnpf.base.model.button.ButtonModel; import jnpf.base.model.column.ColumnModel; import jnpf.base.model.form.ModuleFormModel; import jnpf.base.model.module.ModuleModel; import jnpf.base.model.portalManage.SavePortalAuthModel; import jnpf.base.model.resource.ResourceModel; import jnpf.constant.AuthorizeConst; import jnpf.constant.PermissionConst; import jnpf.permission.entity.AuthorizeEntity; import jnpf.util.RandomUtil; import jnpf.util.StringUtil; import jnpf.util.UserProvider; import org.apache.ibatis.annotations.Param; import java.util.*; /** * @author JNPF开发平台组 * @version V3.1.0 * @copyright 引迈信息技术有限公司 * @date 2021/3/12 15:27 */ public interface AuthorizeMapper extends SuperMapper { List findModule(@Param("objectId") List objectId, @Param("systemId") List systemId, @Param("moduleAuthorize") List moduleAuthorize, @Param("moduleUrlAddressAuthorize") List moduleUrlAddressAuthorize, @Param("mark") Integer mark); List findButton(@Param("objectId") List objectId); List findColumn(@Param("objectId") List objectId); List findResource(@Param("objectId") List objectId); List findForms(@Param("objectId") List objectId); List findSystem(@Param("objectId") List objectId, @Param("enCode") String enCode, @Param("moduleAuthorize") List moduleAuthorize, @Param("mark") Integer mark); List findButtonAdmin(@Param("mark") Integer mark); List findColumnAdmin(@Param("mark") Integer mark); List findResourceAdmin(@Param("mark") Integer mark); List findFormsAdmin(@Param("mark") Integer mark); default void deleteByItemIds(List itemIds) { if (CollectionUtil.isEmpty(itemIds)) return; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(AuthorizeEntity::getItemId, itemIds); this.deleteByIds(selectList(queryWrapper)); } default void deleteByObjIds(List objIds) { if (CollectionUtil.isEmpty(objIds)) return; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(AuthorizeEntity::getObjectId, objIds); this.deleteByIds(selectList(queryWrapper)); } default void saveObjectAuth(SavePortalAuthModel portalAuthModel) { List ids = portalAuthModel.getIds(); String id = portalAuthModel.getId(); String type = portalAuthModel.getType(); String userId = UserProvider.getLoginUserId(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getItemType, type); queryWrapper.lambda().eq(AuthorizeEntity::getItemId, id); List authorizeEntities = this.selectList(queryWrapper); this.deleteByIds(authorizeEntities); List portalSystem = new ArrayList<>(); boolean isPortal = AuthorizeConst.AUTHORIZE_PORTAL_MANAGE.equals(type); if (isPortal && !ids.isEmpty() && StringUtil.isNotEmpty(portalAuthModel.getSystemId())) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(AuthorizeEntity::getItemType, AuthorizeConst.SYSTEM); wrapper.lambda().eq(AuthorizeEntity::getItemId, portalAuthModel.getSystemId()); wrapper.lambda().in(AuthorizeEntity::getObjectId, ids); portalSystem.addAll(this.selectList(wrapper)); } // 原始授权角色 List list = new ArrayList<>(); for (int i = 0; i < ids.size(); i++) { String objectId = ids.get(i); AuthorizeEntity authorizeEntity = new AuthorizeEntity(); authorizeEntity.setId(RandomUtil.uuId()); authorizeEntity.setItemType(type); authorizeEntity.setObjectId(objectId); authorizeEntity.setObjectType(PermissionConst.ROLE); authorizeEntity.setItemId(id); authorizeEntity.setSortCode((long) i); authorizeEntity.setCreatorTime(new Date()); authorizeEntity.setCreatorUserId(userId); list.add(authorizeEntity); if (isPortal && StringUtil.isNotEmpty(portalAuthModel.getSystemId())) { boolean portalCount = portalSystem.stream().filter(t -> Objects.equals(t.getObjectId(), objectId)).count() == 0; if (portalCount) { AuthorizeEntity systemAuthorize = new AuthorizeEntity(); systemAuthorize.setId(RandomUtil.uuId()); systemAuthorize.setItemType(AuthorizeConst.SYSTEM); systemAuthorize.setObjectId(ids.get(i)); systemAuthorize.setObjectType(PermissionConst.ROLE); systemAuthorize.setItemId(portalAuthModel.getSystemId()); systemAuthorize.setSortCode(0l); systemAuthorize.setCreatorTime(new Date()); systemAuthorize.setCreatorUserId(userId); list.add(systemAuthorize); } } } list.forEach(this::insert); } default List getAuthorizeByItem(String itemType, String itemId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getItemType, itemType); queryWrapper.lambda().eq(AuthorizeEntity::getItemId, itemId); return this.selectList(queryWrapper); } default List getListByRoleIdsAndItemType(List roleIds, String itemType) { if (roleIds.size() == 0) { return Collections.EMPTY_LIST; } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getItemType, itemType); queryWrapper.lambda().in(AuthorizeEntity::getObjectId, roleIds); return this.selectList(queryWrapper); } default List getListByObjectId(List objectId) { if (objectId.size() == 0) { return new ArrayList<>(); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(AuthorizeEntity::getObjectId, objectId); return this.selectList(queryWrapper); } default Boolean existAuthorize(String roleId, String systemId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getObjectId, roleId); if (StringUtil.isNotEmpty(systemId)) { queryWrapper.lambda().eq(AuthorizeEntity::getItemId, systemId); queryWrapper.lambda().eq(AuthorizeEntity::getItemType, AuthorizeConst.SYSTEM); } return this.selectCount(queryWrapper) > 0; } default List getListByRoleId(String roleId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getObjectId, roleId); return this.selectList(queryWrapper); } default List getListByObjectId(String objectId, String itemType) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (StringUtil.isNotEmpty(objectId)) { queryWrapper.lambda().eq(AuthorizeEntity::getObjectId, objectId); } queryWrapper.lambda().eq(AuthorizeEntity::getItemType, itemType); return this.selectList(queryWrapper); } default List getListByObjectAndItem(String itemId, String objectType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getObjectType, objectType).eq(AuthorizeEntity::getItemId, itemId); return this.selectList(queryWrapper); } default List getListByObjectAndItemIdAndType(String itemId, String itemType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AuthorizeEntity::getItemType, itemType).eq(AuthorizeEntity::getItemId, itemId); return this.selectList(queryWrapper); } }