diff --git a/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java b/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java index 4ffa9b5..e6e230a 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java +++ b/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java @@ -16,6 +16,7 @@ import com.adc.da.report.util.LocalFileUtil; import com.adc.da.report.util.OSSClientUtil; import com.adc.da.report.util.ObsBootUtil; import com.adc.da.report.util.WaterMarkUtil; +import com.adc.da.report.vo.ChangeUploaderVo; import com.adc.da.report.vo.ReportQueryVo; import com.adc.da.report.vo.ReportVo; import com.adc.da.util.exception.AdcDaBaseException; @@ -38,6 +39,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.*; import java.net.URISyntaxException; import java.net.URLEncoder; @@ -186,6 +188,18 @@ public class ReportManageConroller { return Result.success(list); } + /** + * 修改上传人 + * @param changeUploaderVo + * @return + * @throws Exception + */ + @ApiOperation("修改上传人") + @PostMapping("/changeUploader") + public ResponseMessage changeUploader(@Valid @RequestBody ChangeUploaderVo changeUploaderVo) { + return reportService.changeUploader(changeUploaderVo); + } + /** diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/IReportService.java b/adc-da-report/src/main/java/com/adc/da/report/service/IReportService.java index 82b67fc..1a50caa 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/IReportService.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/IReportService.java @@ -1,6 +1,7 @@ package com.adc.da.report.service; import com.adc.da.report.eo.ReportEntity; +import com.adc.da.report.vo.ChangeUploaderVo; import com.adc.da.report.vo.ReportQueryVo; import com.adc.da.report.vo.ReportVo; import com.adc.da.util.http.ResponseMessage; @@ -78,5 +79,20 @@ public interface IReportService { */ Boolean isAllowDownload(String userId, String repostId); + /** + * 判断用户是否允许修改上传人 + * + * @param userId 用户id + * @return 是否有修改上传人的权限 + */ + Boolean isAllowChangeUploader(String userId); + void addOrUpdate(ReportEntity reportEntity); + + /** + * 更改上传人 + * @param changeUploaderVo + * @return + */ + ResponseMessage changeUploader(ChangeUploaderVo changeUploaderVo); } diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java index d8a6284..d356c1f 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java @@ -10,14 +10,17 @@ import com.adc.da.report.dao.mysql.ReportLabelDao; import com.adc.da.report.eo.*; import com.adc.da.report.service.*; import com.adc.da.report.util.*; +import com.adc.da.report.vo.ChangeUploaderVo; import com.adc.da.report.vo.ReportDetailVo; import com.adc.da.report.vo.ReportQueryVo; import com.adc.da.report.vo.ReportVo; import com.adc.da.sys.dao.mysql.RoleEODao; import com.adc.da.sys.dao.mysql.UserEODao; +import com.adc.da.sys.entity.MenuEO; import com.adc.da.sys.entity.OrgEO; import com.adc.da.sys.entity.RoleEO; import com.adc.da.sys.entity.UserEO; +import com.adc.da.sys.service.MenuEOService; import com.adc.da.sys.service.OrgEOService; import com.adc.da.util.http.ResponseMessage; import com.adc.da.util.http.Result; @@ -27,7 +30,7 @@ import com.adc.da.util.utils.StringUtils; import com.adc.da.util.utils.UUID; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -118,9 +121,12 @@ public class IReportServiceImpl extends ServiceImpl @Resource private OrgEOService orgEOService; + @Resource private ILogService logService; + @Resource + private MenuEOService menuEOService; @Override public void addOrUpdate(ReportEntity reportEntity) { @@ -161,6 +167,20 @@ public class IReportServiceImpl extends ServiceImpl } + @Override + public ResponseMessage changeUploader(ChangeUploaderVo changeUploaderVo) { + //判断当前登陆人是否有权限更改上传人 + if (!this.isAllowChangeUploader(UserUtils.getUserId())) { + return Result.error("无权限更改上传人"); + } + //更改上传人 + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.in(ReportEntity::getId, changeUploaderVo.getReportIds()); + wrapper.set(ReportEntity::getCreateUserId, changeUploaderVo.getUserId()); + update(wrapper); + return Result.success("修改成功"); + } + /** * 新增或编辑报告 * @@ -627,6 +647,18 @@ public class IReportServiceImpl extends ServiceImpl return list; } + @Override + public Boolean isAllowChangeUploader(String userId) { + //找出对应的权限id + List menuEOS = menuEOService.listMenuEOByUserId(userId); + for (MenuEO menuEO : menuEOS) { + if ("修改上传人".equals(menuEO.getName())) { + return true; + } + } + return false; + } + @Override public Boolean isAllowDownload(String userId, String reportId) { //校验权限 diff --git a/adc-da-report/src/main/java/com/adc/da/report/vo/ChangeUploaderVo.java b/adc-da-report/src/main/java/com/adc/da/report/vo/ChangeUploaderVo.java new file mode 100644 index 0000000..4c1221f --- /dev/null +++ b/adc-da-report/src/main/java/com/adc/da/report/vo/ChangeUploaderVo.java @@ -0,0 +1,35 @@ +package com.adc.da.report.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @author: CaiHaohan + * @Date: 2023/5/22 11:03 + * @Description: + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class ChangeUploaderVo { + + /** + * 报告ids + */ + @NotEmpty + private List reportIds; + + /** + * 用户id + */ + @NotBlank + private String userId; + +}