fix:修复报告查询接口多条权限申请时 整合权限不正确Bug

This commit is contained in:
2023-05-11 14:58:46 +08:00
parent 8e7edfe824
commit 64b37dd64b
3 changed files with 44 additions and 2 deletions
@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.Objects;
/**
* @author bu
@@ -94,4 +95,21 @@ public class PowerApply {
*/
@TableField("power_source")
private Integer powerSource;
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof PowerApply)) {
return false;
}
PowerApply other = (PowerApply) o;
return this.reportId.equals(other.reportId) && this.power.equals(other.power);
}
@Override
public int hashCode() {
return Objects.hash(reportId, power);
}
}
@@ -415,7 +415,33 @@ public class IReportServiceImpl extends ServiceImpl<ReportDao, ReportEntity>
reportVo.setPower(PREVIEW_DOWNLOAD);
});
} else {
//其余员工
//用户自己申请的权限
List<Integer> powerList = new ArrayList<>();
powerList.add(PREVIEW_DOWNLOAD);
powerList.add(PREVIEW);
powerList.add(DOWNLOAD);
LambdaQueryWrapper<PowerApply> wrapper = new LambdaQueryWrapper<>();
wrapper.in(PowerApply::getReportId, list.getRecords().stream().map(ReportVo::getId).collect(Collectors.toList()));
wrapper.in(PowerApply::getPower, powerList);
wrapper.eq(PowerApply::getUserId, UserUtils.getUserId());
wrapper.eq(PowerApply::getDelFlag, 0);
List<PowerApply> powerApplyList = iPowerApplyService.list(wrapper).stream().distinct().collect(Collectors.toList());
Map<String, List<PowerApply>> reportPowerMap = powerApplyList.stream()
.collect(Collectors.groupingBy(PowerApply::getReportId));
//设置权限
list.getRecords().forEach(reportVo -> {
List<PowerApply> powerApplies = reportPowerMap.get(reportVo.getId());
if (powerApplies != null) {
if (powerApplies.size() == 1) {
reportVo.setPower(powerApplies.get(0).getPower());
} else {
reportVo.setPower(PREVIEW_DOWNLOAD);
}
}
//只有用户没有权限的时候才给默认权限
if (reportVo.getPower() == null) {
//其余人员只能预览公开报告(涉密等级:公开(内部公开)、隐私等级:不涉及用户隐私)
@@ -109,7 +109,6 @@
eo.createUserId AS createUserId,
tu.USNAME AS uploader,
eo.createDate AS createDate,
pa.power AS power,
thumbUpCount.thumbUp AS thumbUp,
clicksCount.clicks AS clicks,
downloadCount.download AS download,
@@ -118,7 +117,6 @@
TT_REPORT_MANAGE eo
LEFT JOIN ts_user tu ON tu.USID = eo.createUserId
LEFT JOIN tr_report_user ru ON eo.id = ru.reportId
LEFT JOIN power_apply pa ON pa.report_id = eo.id
LEFT JOIN (SELECT report_id, COUNT(id) AS thumbUp FROM report_log_book WHERE type = 3 GROUP BY report_id) AS thumbUpCount ON eo.id = thumbUpCount.report_id
LEFT JOIN (SELECT report_id, COUNT(id) AS clicks FROM report_log_book WHERE type = 1 GROUP BY report_id) AS clicksCount ON eo.id = clicksCount.report_id
LEFT JOIN (SELECT report_id, COUNT(id) AS download FROM report_log_book WHERE type = 2 GROUP BY report_id) AS downloadCount ON eo.id = downloadCount.report_id