修改bug#41566

This commit is contained in:
梁琦涛
2021-10-28 10:17:19 +08:00
parent cecdd93e8a
commit 8f5bc2f104
4 changed files with 38 additions and 20 deletions
@@ -8,29 +8,19 @@ import java.util.zip.ZipOutputStream;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.service.RolePermissionService;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.data.entity.PayFileDownloadRecord;
import com.jero.data.service.IPayFileDownloadRecordService;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.modules.message.handle.impl.EmailSendMsgHandle;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.common.PayProjectCommon;
@@ -41,16 +31,10 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -69,6 +53,9 @@ public class PayWorkingGroupDataFileController extends JeroController<PayWorking
private IPayWorkingGroupDataFileService payWorkingGroupDataFileService;
@Resource
private IOSSFileService iossFileService;
@Resource
private RolePermissionService rolePermissionService;
@Value("${jero.path.upload}")
private String upLoadPath;
@@ -95,6 +82,10 @@ public class PayWorkingGroupDataFileController extends JeroController<PayWorking
&& payWorkingGroupDataFile.getProjectType() != PayProjectCommon.PROJECT_TYPE_FILE2){
return Result.error("项目状态不正确!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("fileMaintenance:search")){
payWorkingGroupDataFile.setCreateBy(sysUser.getUsername());
}
if(!StringUtils.isBlank(payWorkingGroupDataFile.getFileName())){
payWorkingGroupDataFile.setFileName(oConvertUtils.replaceAllPercent(payWorkingGroupDataFile.getFileName()));
}
@@ -173,6 +164,14 @@ public class PayWorkingGroupDataFileController extends JeroController<PayWorking
if(StringUtils.isBlank(id)){
return Result.error("id不能为空!");
}
PayWorkingGroupDataFile payWorkingGroupDataFile = payWorkingGroupDataFileService.getById(id);
if(Objects.isNull(payWorkingGroupDataFile)){
return Result.error("资料不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("fileMaintenance:delete") && !Objects.equals(payWorkingGroupDataFile.getCreateBy(),sysUser.getUsername())){
throw new JeroBootException(payWorkingGroupDataFile.getFileName() + "资料不可操作!");
}
payWorkingGroupDataFileService.removeById(id);
return Result.OK("删除成功!");
}
@@ -191,10 +190,20 @@ public class PayWorkingGroupDataFileController extends JeroController<PayWorking
return Result.error("id不能为空!");
}
String[] s = ids.split(",");
StringBuilder msg = new StringBuilder();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
return Result.error("id不能为空!");
}
PayWorkingGroupDataFile payWorkingGroupDataFile = payWorkingGroupDataFileService.getById(s1);
if(Objects.isNull(payWorkingGroupDataFile)){
return Result.error("资料不存在!");
}else{
if(!rolePermissionService.getRolePermission("fileMaintenance:batchDel") && !Objects.equals(payWorkingGroupDataFile.getCreateBy(),sysUser.getUsername())){
msg.append(payWorkingGroupDataFile.getFileName() + "资料不可操作!");
}
}
}
this.payWorkingGroupDataFileService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
@@ -19,6 +19,9 @@
<if test="payWorkingGroupDataFile.fileName != null and payWorkingGroupDataFile.fileName != ''">
AND osf.file_name LIKE CONCAT('%',CONCAT(#{payWorkingGroupDataFile.fileName},'%'))
</if>
<if test="payWorkingGroupDataFile.createBy != null and payWorkingGroupDataFile.createBy != ''">
AND pwgdf.create_by = #{payWorkingGroupDataFile.createBy}
</if>
ORDER BY pwgdf.create_time desc
</select>
@@ -274,6 +274,9 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
private StringBuilder deleteProject(String id,String perms){
StringBuilder sb = new StringBuilder();
PayCommonProject payCommonProject = payCommonProjectService.getById(id);
if(Objects.isNull(payCommonProject)){
throw new JeroBootException("普通项目不存在!");
}
// 项目负责人权限最底层,其他任何权限都可直接操作,不需要认证当前项目是否为项目负责人
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission(perms) && !Objects.equals(payCommonProject.getPrincipalId(), sysUser.getId())){
@@ -91,7 +91,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(id);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("workingGroupProject:edit") && !Objects.equals(payWorkingGroupOld.getPrincipalIdA(),sysUser.getId())){
if(!rolePermissionService.getRolePermission("workingGroupProject:delete") && !Objects.equals(payWorkingGroupOld.getPrincipalIdA(),sysUser.getId())){
throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!");
}
@@ -115,8 +115,11 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
StringBuilder sb1 = new StringBuilder();
ids.forEach(p->{
PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(p);
if(Objects.isNull(payWorkingGroupOld)){
throw new JeroBootException("工作组不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("workingGroupProject:edit") && !Objects.equals(payWorkingGroupOld.getPrincipalIdA(),sysUser.getId())){
if(!rolePermissionService.getRolePermission("workingGroupProject:batchDel") && !Objects.equals(payWorkingGroupOld.getPrincipalIdA(),sysUser.getId())){
sb.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!<br/>");
}
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
@@ -158,7 +161,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
throw new JeroBootException("工作组不存在!");
}
if(payWorkingGroupOld.getWorkingGroupProject().length() == 50){
throw new JeroBootException("工作组名称长度为50位,不可复制,请修改之后复制!");
throw new JeroBootException("工作组名称长度为50位,不可复制,请修改之后复制!");
}
String str = payWorkingGroupOld.getWorkingGroupProject() + "-副本";
LambdaQueryWrapper<PayWorkingGroup> queryPayWorkingGroup = new LambdaQueryWrapper<>();