Merge remote-tracking branch 'origin/lixuetao' into lixuetao

This commit is contained in:
bupengxiang
2023-05-11 15:09:18 +08:00
3 changed files with 44 additions and 2 deletions
@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
import java.util.Objects;
/** /**
* @author bu * @author bu
@@ -94,4 +95,21 @@ public class PowerApply {
*/ */
@TableField("power_source") @TableField("power_source")
private Integer powerSource; 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); reportVo.setPower(PREVIEW_DOWNLOAD);
}); });
} else { } 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.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) { if (reportVo.getPower() == null) {
//其余人员只能预览公开报告(涉密等级:公开(内部公开)、隐私等级:不涉及用户隐私) //其余人员只能预览公开报告(涉密等级:公开(内部公开)、隐私等级:不涉及用户隐私)
@@ -109,7 +109,6 @@
eo.createUserId AS createUserId, eo.createUserId AS createUserId,
tu.USNAME AS uploader, tu.USNAME AS uploader,
eo.createDate AS createDate, eo.createDate AS createDate,
pa.power AS power,
thumbUpCount.thumbUp AS thumbUp, thumbUpCount.thumbUp AS thumbUp,
clicksCount.clicks AS clicks, clicksCount.clicks AS clicks,
downloadCount.download AS download, downloadCount.download AS download,
@@ -118,7 +117,6 @@
TT_REPORT_MANAGE eo TT_REPORT_MANAGE eo
LEFT JOIN ts_user tu ON tu.USID = eo.createUserId LEFT JOIN ts_user tu ON tu.USID = eo.createUserId
LEFT JOIN tr_report_user ru ON eo.id = ru.reportId 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 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 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 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