diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java index 3b80d1aa7..a068230c1 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java @@ -20,6 +20,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -60,7 +61,7 @@ public class SupvFileController extends BaseController { ) { String methodDescribe = getMethodDescribe("planUpload"); String originalFilename = file.getOriginalFilename(); - if (FileUtil.judgeFileIsWord(originalFilename) || FileUtil.judgeFileIsPdf(originalFilename) || FileUtil.judgeFileIsExcel(originalFilename)) { + if (FileUtil.judgeFileIsWord(originalFilename) || FileUtil.judgeFileIsPdf(originalFilename) || FileUtil.judgeFileIsExcel(originalFilename)||FileUtil.judgeFileIsZip(originalFilename)) { if (!StrUtil.isAllNotBlank(planId, uploaderId, uploaderName, attachmentType, uploadTime) || type == null) { throw new BusinessException("必填字段不能为空"); } @@ -89,5 +90,16 @@ public class SupvFileController extends BaseController { iSupvFileService.detail(response, busId, type, attachmentType); return null; } + + + @PostMapping("delFile") + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE) + @ApiOperation("监督计划问题附件下载") + public HttpResult delFile(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("delFile"); + iSupvFileService.delFile(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + + } } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvFileService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvFileService.java index 6857fb18f..91549122a 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvFileService.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvFileService.java @@ -4,6 +4,7 @@ package com.njcn.process.service; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.process.pojo.param.SupvFileParam; import com.njcn.process.pojo.po.SupvFile; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -36,4 +37,7 @@ public interface ISupvFileService extends IService { String detail(HttpServletResponse response,String busId,Integer type,String attachmentType); + + Boolean delFile(List ids); + } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvFileServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvFileServiceImpl.java index a9cd92d2c..c6fab0f7e 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvFileServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvFileServiceImpl.java @@ -106,6 +106,16 @@ public class SupvFileServiceImpl extends ServiceImpl i } } + @Override + public Boolean delFile(List ids) { + List supvFiles = this.listByIds(ids); + for(SupvFile supvFile : supvFiles){ + fileStorageUtil.deleteFile(supvFile.getFileUrl()); + } + this.removeByIds(ids); + return true; + } + /** * @Description: * @param type 区分问题计划 diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java index 692dc0882..a379a770d 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/UserFeignClient.java @@ -131,4 +131,7 @@ public interface UserFeignClient { @GetMapping("/getColleaguesIdByUserId") HttpResult> getColleaguesIdByUserId(@RequestParam("id") String id); + + @GetMapping("/userRoleList") + HttpResult userRoleList(); } diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java index 45f493dfb..7419d942f 100644 --- a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/UserFeignClientFallbackFactory.java @@ -123,6 +123,12 @@ public class UserFeignClientFallbackFactory implements FallbackFactory userRoleList() { + log.error("{}异常,降级处理,异常为:{}","获取所有用户角色",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; } } diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/pojo/dto/UserRoleLogsDTO.java b/pqs-user/user-api/src/main/java/com/njcn/user/pojo/dto/UserRoleLogsDTO.java new file mode 100644 index 000000000..7a958b232 --- /dev/null +++ b/pqs-user/user-api/src/main/java/com/njcn/user/pojo/dto/UserRoleLogsDTO.java @@ -0,0 +1,16 @@ +package com.njcn.user.pojo.dto; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2024/8/29 + */ +@Data +public class UserRoleLogsDTO { + private String loginName; + + private Integer roleType; +} diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java index 7b4e2e129..9452c9f74 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.LogInfo; @@ -133,6 +134,10 @@ public class UserController extends BaseController { String methodDescribe = getMethodDescribe("add"); LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, addUserParam); boolean result = userService.addUser(addUserParam); + + //更新redis数据 + userService.userRoleList(); + if (result) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } else { @@ -153,6 +158,8 @@ public class UserController extends BaseController { String methodDescribe = getMethodDescribe("delete"); LogUtil.njcnDebug(log, "{},用户id为:{}", methodDescribe, id); boolean result = userService.deleteUser(id); + //更新redis数据 + userService.userRoleList(); if (result) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } else { @@ -173,6 +180,8 @@ public class UserController extends BaseController { String methodDescribe = getMethodDescribe("update"); LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, updateUserParam); boolean result = userService.updateUser(updateUserParam); + //更新redis数据 + userService.userRoleList(); if (result) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } else { @@ -624,5 +633,18 @@ public class UserController extends BaseController { List result = userService.simpleList(true); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + /** + * 查询用户的角色 + * @author cdf + * @date 2024/8/29 + */ + @GetMapping("/userRoleList") + @ApiOperation("获取所有用户角色") + public HttpResult userRoleList(){ + String methodDescribe = getMethodDescribe("userRoleList"); + userService.userRoleList(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserRoleController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserRoleController.java index c12da308c..9dcc1ad12 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserRoleController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserRoleController.java @@ -18,5 +18,12 @@ import com.njcn.web.controller.BaseController; @RequestMapping("/userRole") public class UserRoleController extends BaseController { + + /** + * + * @author cdf + * @date 2024/8/29 + */ + } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/init/InitPermissionRoles.java b/pqs-user/user-boot/src/main/java/com/njcn/user/init/InitPermissionRoles.java index 112e1dd86..a7431bd49 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/init/InitPermissionRoles.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/init/InitPermissionRoles.java @@ -1,6 +1,8 @@ package com.njcn.user.init; import com.njcn.user.service.IFunctionService; +import com.njcn.user.service.IUserService; +import com.njcn.user.service.impl.UserServiceImpl; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; @@ -19,8 +21,11 @@ public class InitPermissionRoles implements CommandLineRunner { private final IFunctionService functionService; + private final IUserService iUserService; + @Override public void run(String... args) { functionService.refreshRolesFunctionsCache(); + iUserService.userRoleList(); } } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserMapper.java b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserMapper.java index afd797e89..1bfe0cc80 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserMapper.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/UserMapper.java @@ -3,12 +3,14 @@ package com.njcn.user.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.user.pojo.dto.UserRoleLogsDTO; import com.njcn.user.pojo.dto.excel.UserExcel; import com.njcn.user.pojo.po.User; import com.njcn.user.pojo.vo.UserVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** *

@@ -58,4 +60,6 @@ public interface UserMapper extends BaseMapper { List queryExportUser(@Param("ew") QueryWrapper queryWrapper); List getUserVOByIdList(@Param("ids") List ids); + + List userRoleList(); } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserMapper.xml b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserMapper.xml index 3ee0a7b0a..6721ab48f 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserMapper.xml +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/mapper/mapping/UserMapper.xml @@ -88,4 +88,20 @@ + + + diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java index 9f192de24..e94288857 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java @@ -14,6 +14,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.util.List; +import java.util.Map; /** *

@@ -201,4 +202,7 @@ public interface IUserService extends IService { List getColleaguesIdByUserId(String id); + + + Boolean userRoleList(); } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java index 034904582..6db37ba62 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -23,6 +24,8 @@ import com.njcn.device.pq.pojo.po.PqsTerminalLogs; import com.njcn.oss.constant.OssPath; import com.njcn.oss.utils.FileStorageUtil; import com.njcn.poi.excel.ExcelUtil; +import com.njcn.redis.pojo.enums.RedisKeyEnum; +import com.njcn.redis.utils.RedisUtil; import com.njcn.system.api.AreaFeignClient; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; @@ -35,6 +38,7 @@ import com.njcn.user.mapper.UserRoleMapper; import com.njcn.user.pojo.constant.UserState; import com.njcn.user.pojo.constant.UserType; import com.njcn.user.pojo.dto.UserDTO; +import com.njcn.user.pojo.dto.UserRoleLogsDTO; import com.njcn.user.pojo.dto.excel.UserExcel; import com.njcn.user.pojo.param.UserInfoParm; import com.njcn.user.pojo.param.UserParam; @@ -45,6 +49,7 @@ import com.njcn.web.factory.PageFactory; import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.core.BoundHashOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -53,10 +58,7 @@ import javax.validation.constraints.NotNull; import java.io.File; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -93,6 +95,8 @@ public class UserServiceImpl extends ServiceImpl implements IU private final AreaFeignClient areaFeignClient; private final FileStorageUtil fileStorageUtil; + private final RedisUtil redisUtil; + @Override public UserDTO getUserByName(String loginName) { User user = getUserByLoginName(loginName); @@ -594,6 +598,17 @@ public class UserServiceImpl extends ServiceImpl implements IU return userList.stream().map(User::getId).collect(Collectors.toList()); } + @Override + public Boolean userRoleList() { + JSONObject jsonObject = new JSONObject(); + List mapList = this.baseMapper.userRoleList(); + for(UserRoleLogsDTO item :mapList){ + jsonObject.putOpt(item.getLoginName(),item.getRoleType()); + } + redisUtil.saveByKeyWithExpire(RedisKeyEnum.USER_ROLE_TYPE_KEY.getKey(),jsonObject,-1L); + return true; + } + /** * 根据登录名查询用户 *