wangliang 3 سال پیش
والد
کامیت
b427cecb08

+ 8 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysPrivilegeService.java

@@ -25,4 +25,12 @@ public interface SysPrivilegeService extends IService<SysPrivilege> {
     List<String> getRolePrivileges(Long roleId);
 
     List<PrivilegeDto> listPrivilegeTreeAuth();
+
+    /**
+     * 是否包含某个权限
+     *
+     * @param urls
+     * @return
+     */
+    boolean existsPrivilege(String... urls);
 }

+ 19 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java

@@ -6,11 +6,14 @@ import com.qmth.teachcloud.common.bean.dto.PrivilegeDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysPrivilege;
 import com.qmth.teachcloud.common.entity.SysRolePrivilege;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.PrivilegeEnum;
 import com.qmth.teachcloud.common.enums.PrivilegePropertyEnum;
 import com.qmth.teachcloud.common.mapper.SysPrivilegeMapper;
 import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -146,4 +149,20 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
 
         return new ArrayList<>(map.values());
     }
+
+    /**
+     * 是否包含某个权限
+     *
+     * @param urls
+     * @return
+     */
+    @Override
+    public boolean existsPrivilege(String... urls) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
+        sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getUrl, urls)
+                .eq(SysPrivilege::getType, PrivilegeEnum.URL)
+                .eq(SysPrivilege::getSchoolId, sysUser.getSchoolId());
+        return this.count(sysPrivilegeQueryWrapper) > 0 ? true : false;
+    }
 }