一、登录认证
–

–
自定义 SaTokenListener 实现doLogin、doLogout、doKickout等方法
二、controller接口鉴权,
-
接口 @SaCheckPermission(“contract:list”)
-
sa底层鉴权 拦截@SaCheckPermission(“contract:list”)
-
sa底层鉴权
-
把 @SaCheckPermission(“contract:list”) ->换成 @SaCheckPermission(“contract:contract:list”) ,两个: 3部分组成
或者修改上面登录验证成功后,缓存权限时
多个部门共用一个接口,但是要求权限细分
@SaCheckPermission(value = {"contract:contract:edit", "contract:project:edit"}, mode = SaMode.OR)```
/**
* 导入数据
*
* @param file 导入文件
* @param updateSupport 是否更新已存在数据
*/
@Log(title = "用户管理", businessType = BusinessType.IMPORT)
@SaCheckPermission(value = {"contract:contract:add", "contract:project:add"}, mode = SaMode.OR)
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(summary = "导入项目合同数据", description = "导入项目合同excel数据接口")
public R<Void> importProjectContract(@RequestPart("file") MultipartFile file, @RequestParam(required = false, defaultValue = "false") boolean updateSupport) throws Exception {
ExcelResult<ProjectContractImportVo> result = ExcelUtil.importExcel(file.getInputStream(), ProjectContractImportVo.class, new ProjectContractImportListener(updateSupport));
return R.ok(result.getAnalysis());
}