fix:修复报告查询接口多条权限申请时 整合权限不正确Bug
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user