WorkTicketType权限修复
This commit is contained in:
parent
4d41de5d08
commit
004a5f4844
@ -129,6 +129,12 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
return tables;
|
return tables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HashMap<String, String> getFieldHeadquartersSnTables() {
|
||||||
|
HashMap<String, String> tables = new HashMap<>(16);
|
||||||
|
tables.put("work_ticket_type", "sn");
|
||||||
|
return tables;
|
||||||
|
}
|
||||||
|
|
||||||
private HashMap<String, String> getFieldProjectSnTables() {
|
private HashMap<String, String> getFieldProjectSnTables() {
|
||||||
HashMap<String, String> tables = new HashMap<>(16);
|
HashMap<String, String> tables = new HashMap<>(16);
|
||||||
tables.put("notice_remind_sound", getProjectSn());
|
tables.put("notice_remind_sound", getProjectSn());
|
||||||
@ -221,15 +227,19 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_ADMINISTRATOR_ACCOUNT.getValue())) {
|
if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_ADMINISTRATOR_ACCOUNT.getValue())) {
|
||||||
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get1CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get1CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
||||||
filterProjectForCompany(plainSelect, user, ds, jo);
|
filterProjectForCompany(plainSelect, user, ds, jo);
|
||||||
|
filterHeadquartersSnForCompany(plainSelect, jo, ds);
|
||||||
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_DISTRICT_ACCOUNT.getValue())) {
|
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_DISTRICT_ACCOUNT.getValue())) {
|
||||||
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get2CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get2CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
||||||
filterProjectForCompany(plainSelect, user, ds, jo);
|
filterProjectForCompany(plainSelect, user, ds, jo);
|
||||||
|
filterHeadquartersSnForCompany(plainSelect, jo, ds);
|
||||||
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_CITY_ACCOUNT.getValue())) {
|
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_CITY_ACCOUNT.getValue())) {
|
||||||
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get3CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get3CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
||||||
filterProjectForCompany(plainSelect, user, ds, jo);
|
filterProjectForCompany(plainSelect, user, ds, jo);
|
||||||
|
filterHeadquartersSnForCompany(plainSelect, jo, ds);
|
||||||
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_SUB_ACCOUNT.getValue())) {
|
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.ENTERPRISE_SUB_ACCOUNT.getValue())) {
|
||||||
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get4CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> get4CompanySql(SecurityUtils.getUser().getUserId(), userFilterItem), jo);
|
||||||
filterProjectForCompany(plainSelect, user, ds, jo);
|
filterProjectForCompany(plainSelect, user, ds, jo);
|
||||||
|
filterHeadquartersSnForCompany(plainSelect, jo, ds);
|
||||||
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.PROJECT_ACCOUNT.getValue())) {
|
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.PROJECT_ACCOUNT.getValue())) {
|
||||||
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> {
|
filterForCompanyOrProject(plainSelect, ds, expressions, SecurityUtils.getUser().getUserId(), (userFilterItem) -> {
|
||||||
return StrUtil.format(" \n" +
|
return StrUtil.format(" \n" +
|
||||||
@ -240,8 +250,10 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
" ) and {}.account_type = 6", userFilterItem, SecurityUtils.getUser().getUserId(), StrUtil.subBefore(userFilterItem, ".", true));
|
" ) and {}.account_type = 6", userFilterItem, SecurityUtils.getUser().getUserId(), StrUtil.subBefore(userFilterItem, ".", true));
|
||||||
}, jo);
|
}, jo);
|
||||||
filterProjectForProject(plainSelect, ds, jo);
|
filterProjectForProject(plainSelect, ds, jo);
|
||||||
|
filterHeadquartersSnForProject(plainSelect, jo, ds);
|
||||||
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.PROJECT_SUB_ACCOUNT.getValue())) {
|
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.PROJECT_SUB_ACCOUNT.getValue())) {
|
||||||
filterByProjectSubAccount(plainSelect, ds, expressions, jo);
|
filterByProjectSubAccount(plainSelect, ds, expressions, jo);
|
||||||
|
filterHeadquartersSnForProject(plainSelect, jo, ds);
|
||||||
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.SUPPLIER.getValue())) {
|
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.SUPPLIER.getValue())) {
|
||||||
filterBySupplier(plainSelect, ds, expressions, jo);
|
filterBySupplier(plainSelect, ds, expressions, jo);
|
||||||
}
|
}
|
||||||
@ -313,6 +325,40 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
return plainSelect;
|
return plainSelect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业过滤总公司sn
|
||||||
|
*
|
||||||
|
* @param plainSelect
|
||||||
|
* @param jo
|
||||||
|
* @param ds
|
||||||
|
*/
|
||||||
|
private void filterHeadquartersSnForCompany(PlainSelect plainSelect, JSONObject jo, DataScope ds) {
|
||||||
|
List<String> filterHeadquartersSnItems = getNeedFilterLeftExpression(plainSelect, getFieldHeadquartersSnTables(), ds, jo);
|
||||||
|
if (CollUtil.isNotEmpty(filterHeadquartersSnItems)) {
|
||||||
|
String headquartersSn = companyService.getHeadquartersSnByCompanySn(SecurityUtils.getUser().getSn());
|
||||||
|
for (String item : filterHeadquartersSnItems) {
|
||||||
|
equalsTo(item, headquartersSn, plainSelect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目过滤总公司sn
|
||||||
|
*
|
||||||
|
* @param plainSelect
|
||||||
|
* @param jo
|
||||||
|
* @param ds
|
||||||
|
*/
|
||||||
|
private void filterHeadquartersSnForProject(PlainSelect plainSelect, JSONObject jo, DataScope ds) {
|
||||||
|
List<String> filterHeadquartersSnItems = getNeedFilterLeftExpression(plainSelect, getFieldHeadquartersSnTables(), ds, jo);
|
||||||
|
if (CollUtil.isNotEmpty(filterHeadquartersSnItems)) {
|
||||||
|
String headquartersSn = companyService.getHeadquartersSnByProjectSn(SecurityUtils.getUser().getSn());
|
||||||
|
for (String item : filterHeadquartersSnItems) {
|
||||||
|
equalsTo(item, headquartersSn, plainSelect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 企业过滤项目sn
|
* 企业过滤项目sn
|
||||||
*
|
*
|
||||||
@ -321,12 +367,12 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
* @param ds
|
* @param ds
|
||||||
*/
|
*/
|
||||||
private void filterProjectForCompany(PlainSelect plainSelect, UserInfo user, DataScope ds, JSONObject param) {
|
private void filterProjectForCompany(PlainSelect plainSelect, UserInfo user, DataScope ds, JSONObject param) {
|
||||||
List<String> projectSns = companyService.getProjectSnsBySn(SecurityUtils.getUser().getSn(), user.getAccountType());
|
|
||||||
if (CollUtil.isEmpty(projectSns)) {
|
|
||||||
projectSns.add("0");
|
|
||||||
}
|
|
||||||
List<String> filterProjectItems = getNeedFilterLeftExpression(plainSelect, getFieldProjectSnTables(), ds, param);
|
List<String> filterProjectItems = getNeedFilterLeftExpression(plainSelect, getFieldProjectSnTables(), ds, param);
|
||||||
if (CollUtil.isNotEmpty(filterProjectItems)) {
|
if (CollUtil.isNotEmpty(filterProjectItems)) {
|
||||||
|
List<String> projectSns = companyService.getProjectSnsBySn(SecurityUtils.getUser().getSn(), user.getAccountType());
|
||||||
|
if (CollUtil.isEmpty(projectSns)) {
|
||||||
|
projectSns.add("0");
|
||||||
|
}
|
||||||
for (String item : filterProjectItems) {
|
for (String item : filterProjectItems) {
|
||||||
inExpression(item, projectSns, plainSelect);
|
inExpression(item, projectSns, plainSelect);
|
||||||
}
|
}
|
||||||
@ -381,10 +427,10 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
*/
|
*/
|
||||||
private void filterByProjectSubAccount(PlainSelect plainSelect, DataScope ds, List<Expression> expressions, JSONObject param) {
|
private void filterByProjectSubAccount(PlainSelect plainSelect, DataScope ds, List<Expression> expressions, JSONObject param) {
|
||||||
filterProjectForProject(plainSelect, ds, param);
|
filterProjectForProject(plainSelect, ds, param);
|
||||||
List<String> authEnterpriseIds = userEnterpriseService.getEnterpriseIdsIfSubProject();
|
|
||||||
authEnterpriseIds.add("0");
|
|
||||||
List<String> filterEnterprises = getNeedFilterLeftExpression(plainSelect, getFieldEnterpriseTables(), ds, param);
|
List<String> filterEnterprises = getNeedFilterLeftExpression(plainSelect, getFieldEnterpriseTables(), ds, param);
|
||||||
if (CollUtil.isNotEmpty(filterEnterprises)) {
|
if (CollUtil.isNotEmpty(filterEnterprises)) {
|
||||||
|
List<String> authEnterpriseIds = userEnterpriseService.getEnterpriseIdsIfSubProject();
|
||||||
|
authEnterpriseIds.add("0");
|
||||||
for (String filterEnterprise : filterEnterprises) {
|
for (String filterEnterprise : filterEnterprises) {
|
||||||
inExpression(filterEnterprise, authEnterpriseIds, plainSelect);
|
inExpression(filterEnterprise, authEnterpriseIds, plainSelect);
|
||||||
}
|
}
|
||||||
@ -417,6 +463,8 @@ public class DataScopeHandler implements DataPermissionHandler {
|
|||||||
ocrBuildLogTables.put("ocr_build_log", "id");
|
ocrBuildLogTables.put("ocr_build_log", "id");
|
||||||
List<String> filterOcrBuildLogTables = getNeedFilterLeftExpression(plainSelect, ocrBuildLogTables, ds, param);
|
List<String> filterOcrBuildLogTables = getNeedFilterLeftExpression(plainSelect, ocrBuildLogTables, ds, param);
|
||||||
if (CollUtil.isNotEmpty(filterOcrBuildLogTables)) {
|
if (CollUtil.isNotEmpty(filterOcrBuildLogTables)) {
|
||||||
|
List<String> authEnterpriseIds = userEnterpriseService.getEnterpriseIdsIfSubProject();
|
||||||
|
authEnterpriseIds.add("0");
|
||||||
for (String filterEnterprise : filterOcrBuildLogTables) {
|
for (String filterEnterprise : filterOcrBuildLogTables) {
|
||||||
String uploaderIdField = StrUtil.subBefore(filterEnterprise, ".", false) + "." + "uploader_id";
|
String uploaderIdField = StrUtil.subBefore(filterEnterprise, ".", false) + "." + "uploader_id";
|
||||||
String sql = StrUtil.format(" ( ({} in (select ocr_build_log_id from ocr_build_log_enterprise where enterprise_id in ({}))) OR ( {} = {}))",
|
String sql = StrUtil.format(" ( ({} in (select ocr_build_log_id from ocr_build_log_enterprise where enterprise_id in ({}))) OR ( {} = {}))",
|
||||||
|
|||||||
@ -47,7 +47,6 @@ public class NoticeRemindSoundController {
|
|||||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/list")
|
@PostMapping(value = "/list")
|
||||||
@PreAuthorize("@perm.hasProjectSnAccess(#map['projectSn'])")
|
|
||||||
public Result<List<NoticeRemindSound>> selectList(@RequestBody Map<String, Object> map) {
|
public Result<List<NoticeRemindSound>> selectList(@RequestBody Map<String, Object> map) {
|
||||||
QueryWrapper<NoticeRemindSound> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<NoticeRemindSound> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.lambda().eq(NoticeRemindSound::getProjectSn, MapUtils.getString(map, "projectSn"));
|
queryWrapper.lambda().eq(NoticeRemindSound::getProjectSn, MapUtils.getString(map, "projectSn"));
|
||||||
|
|||||||
@ -196,6 +196,8 @@ public interface ICompanyService extends IService<Company> {
|
|||||||
*/
|
*/
|
||||||
String getHeadquartersSnByProjectSn(String projectSn);
|
String getHeadquartersSnByProjectSn(String projectSn);
|
||||||
|
|
||||||
|
String getHeadquartersSnByCompanySn(String companySn);
|
||||||
|
|
||||||
boolean hasCompanySnAccessBy1(Long userId, String sn);
|
boolean hasCompanySnAccessBy1(Long userId, String sn);
|
||||||
|
|
||||||
boolean hasCompanySnAccessBy2(Long userId, String sn);
|
boolean hasCompanySnAccessBy2(Long userId, String sn);
|
||||||
|
|||||||
@ -966,14 +966,24 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
|
|||||||
@Override
|
@Override
|
||||||
public String getHeadquartersSnByProjectSn(String projectSn) {
|
public String getHeadquartersSnByProjectSn(String projectSn) {
|
||||||
Project project = projectService.getOne(new LambdaQueryWrapper<Project>()
|
Project project = projectService.getOne(new LambdaQueryWrapper<Project>()
|
||||||
.eq(Project::getProjectSn, projectSn));
|
.eq(Project::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION));
|
||||||
if (project == null) {
|
if (project == null) {
|
||||||
throw new OpenAlertException("查询企业失败");
|
throw new OpenAlertException("查询项目失败");
|
||||||
}
|
}
|
||||||
return this.getOne(new LambdaQueryWrapper<Company>()
|
return this.getOne(new LambdaQueryWrapper<Company>()
|
||||||
.eq(Company::getCompanySn, project.getCompanySn())).getHeadquartersSn();
|
.eq(Company::getCompanySn, project.getCompanySn())).getHeadquartersSn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getHeadquartersSnByCompanySn(String companySn) {
|
||||||
|
Company company = this.getOne(new LambdaQueryWrapper<Company>()
|
||||||
|
.eq(Company::getCompanySn, companySn));
|
||||||
|
if (company == null) {
|
||||||
|
throw new OpenAlertException("查询企业失败");
|
||||||
|
}
|
||||||
|
return company.getHeadquartersSn();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasCompanySnAccessBy1(Long userId, String sn) {
|
public boolean hasCompanySnAccessBy1(Long userId, String sn) {
|
||||||
return baseMapper.hasCompanySnAccessBy1(userId, sn);
|
return baseMapper.hasCompanySnAccessBy1(userId, sn);
|
||||||
|
|||||||
@ -133,6 +133,8 @@ public class WorkTicketTypeController {
|
|||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||||
|
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "query", required = false, dataType = "Integer"),
|
||||||
|
@ApiImplicitParam(name = "sn", value = "总企业sn", paramType = "query", required = false, dataType = "Integer"),
|
||||||
})
|
})
|
||||||
@GetMapping(value = "/tree/page")
|
@GetMapping(value = "/tree/page")
|
||||||
public Result<IPage<WorkTicketTypeVo>> queryTreePage(@ApiIgnore @RequestParam HashMap<String, Object> param) {
|
public Result<IPage<WorkTicketTypeVo>> queryTreePage(@ApiIgnore @RequestParam HashMap<String, Object> param) {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import java.util.List;
|
|||||||
* @version: V1.0
|
* @version: V1.0
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
|
@DataScope
|
||||||
public interface WorkTicketTypeMapper extends BaseMapper<WorkTicketType> {
|
public interface WorkTicketTypeMapper extends BaseMapper<WorkTicketType> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user