Merge remote-tracking branch 'origin/master'

This commit is contained in:
guofeihu
2024-08-29 16:24:47 +08:00
32 changed files with 258 additions and 64 deletions

View File

@@ -41,7 +41,7 @@ public class ResponsibilityController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/responsibilityList") @PostMapping("/responsibilityList")
@ApiOperation("列表分页") @ApiOperation("查询责任划分列表分页")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public HttpResult<Page<RespDataDTO>> responsibilityList(@RequestBody @Validated BaseParam queryParam) { public HttpResult<Page<RespDataDTO>> responsibilityList(@RequestBody @Validated BaseParam queryParam) {
String methodDescribe = getMethodDescribe("responsibilityList"); String methodDescribe = getMethodDescribe("responsibilityList");

View File

@@ -47,7 +47,7 @@ public class UserDataController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/userDataList") @PostMapping("/userDataList")
@ApiOperation("列表分页") @ApiOperation("查询用户列表分页")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public HttpResult<Page<RespUserData>> userDataList(@RequestBody @Validated BaseParam queryParam) { public HttpResult<Page<RespUserData>> userDataList(@RequestBody @Validated BaseParam queryParam) {
String methodDescribe = getMethodDescribe("userDataList"); String methodDescribe = getMethodDescribe("userDataList");

View File

@@ -75,4 +75,6 @@ public class LogInfoDTO implements Serializable {
@JsonSerialize(using = LocalDateTimeSerializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@@ -129,6 +129,31 @@ public class FileUtil {
return false; return false;
} }
/**
* 判断文件是否为excel格式
*
* @param fileName 文件名
*/
public static boolean judgeFileIsZip(String fileName) {
// 检查文件名是否为空
if (StrUtil.isBlank(fileName)) {
return false;
}
// 获取文件扩展名
String fileExtension = getFileExtension(fileName);
// 定义支持的文件类型
String[] allowedExtensions = {"zip", "rar"};
// 检查扩展名是否在允许的列表中
for (String ext : allowedExtensions) {
if (ext.equalsIgnoreCase(fileExtension)) {
return true;
}
}
return false;
}
/** /**
* 从文件名中提取扩展名 * 从文件名中提取扩展名
* *

View File

@@ -34,7 +34,13 @@ public enum RedisKeyEnum {
/*** /***
* MQ消息key缓存时间默认72小时 * 60 * 60 * MQ消息key缓存时间默认72小时 * 60 * 60
*/ */
ROCKET_MQ_KEY("ROCKET_MQ", 259200L); ROCKET_MQ_KEY("ROCKET_MQ", 259200L),
/***
* 存放用户的角色关系
*/
USER_ROLE_TYPE_KEY("USER_ROLE_TYPE_KEY", -1L);
private final String key; private final String key;

View File

@@ -49,6 +49,7 @@ public class LogServiceImpl implements ILogService {
private final MqttPublisher publisher; private final MqttPublisher publisher;
/** /**
* 异步记录controller中返回的信息内容 * 异步记录controller中返回的信息内容
* *

View File

@@ -20,6 +20,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import liquibase.pro.packaged.S;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -60,7 +61,7 @@ public class SupvFileController extends BaseController {
) { ) {
String methodDescribe = getMethodDescribe("planUpload"); String methodDescribe = getMethodDescribe("planUpload");
String originalFilename = file.getOriginalFilename(); 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) { if (!StrUtil.isAllNotBlank(planId, uploaderId, uploaderName, attachmentType, uploadTime) || type == null) {
throw new BusinessException("必填字段不能为空"); throw new BusinessException("必填字段不能为空");
} }
@@ -89,5 +90,16 @@ public class SupvFileController extends BaseController {
iSupvFileService.detail(response, busId, type, attachmentType); iSupvFileService.detail(response, busId, type, attachmentType);
return null; return null;
} }
@PostMapping("delFile")
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE)
@ApiOperation("监督计划问题附件下载")
public HttpResult<Object> delFile(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("delFile");
iSupvFileService.delFile(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
} }

View File

@@ -4,6 +4,7 @@ package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.process.pojo.param.SupvFileParam; import com.njcn.process.pojo.param.SupvFileParam;
import com.njcn.process.pojo.po.SupvFile; import com.njcn.process.pojo.po.SupvFile;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -36,4 +37,7 @@ public interface ISupvFileService extends IService<SupvFile> {
String detail(HttpServletResponse response,String busId,Integer type,String attachmentType); String detail(HttpServletResponse response,String busId,Integer type,String attachmentType);
Boolean delFile(List<String> ids);
} }

View File

@@ -106,6 +106,16 @@ public class SupvFileServiceImpl extends ServiceImpl<SupvFileMapper, SupvFile> i
} }
} }
@Override
public Boolean delFile(List<String> ids) {
List<SupvFile> supvFiles = this.listByIds(ids);
for(SupvFile supvFile : supvFiles){
fileStorageUtil.deleteFile(supvFile.getFileUrl());
}
this.removeByIds(ids);
return true;
}
/** /**
* @Description: * @Description:
* @param type 区分问题计划 * @param type 区分问题计划

View File

@@ -84,6 +84,7 @@ public class UserLog {
@ExcelProperty(value = "事件类型") @ExcelProperty(value = "事件类型")
private Integer type; private Integer type;
/** /**
* 模块名 * 模块名
*/ */

View File

@@ -46,7 +46,7 @@ public class AreaController extends BaseController {
/** /**
* 分页查询行政区域 * 分页查询行政区域
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("查询企业区域") @ApiOperation("查询企业区域")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
@@ -63,7 +63,7 @@ public class AreaController extends BaseController {
* @param id 行政区域id * @param id 行政区域id
* @return 行政区域详情 * @return 行政区域详情
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/selectIdArea/{id}") @GetMapping("/selectIdArea/{id}")
@ApiOperation("根据行政区域id查询详情") @ApiOperation("根据行政区域id查询详情")
@ApiImplicitParam(name = "id", value = "查询参数", required = true) @ApiImplicitParam(name = "id", value = "查询参数", required = true)
@@ -161,7 +161,7 @@ public class AreaController extends BaseController {
* @param ids 行政区域ids * @param ids 行政区域ids
* @return 行政区域查看所有子节点 * @return 行政区域查看所有子节点
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/selectPid") @PostMapping("/selectPid")
@ApiOperation("根据行政区域id查询") @ApiOperation("根据行政区域id查询")
@ApiImplicitParam(name = "ids", value = "查询参数", required = true) @ApiImplicitParam(name = "ids", value = "查询参数", required = true)
@@ -247,7 +247,7 @@ public class AreaController extends BaseController {
* @param name 行政区域名称 * @param name 行政区域名称
* @return 行政区域详情 * @return 行政区域详情
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/selectAreaByName/{name}") @GetMapping("/selectAreaByName/{name}")
@ApiOperation("根据行政区域名称查询详细") @ApiOperation("根据行政区域名称查询详细")
@ApiImplicitParam(name = "name", value = "查询参数", required = true) @ApiImplicitParam(name = "name", value = "查询参数", required = true)

View File

@@ -43,7 +43,7 @@ public class AuditController extends BaseController {
private final AuditService auditService; private final AuditService auditService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getAuditLog") @PostMapping("/getAuditLog")
@ApiOperation("审计日志列表") @ApiOperation("审计日志列表")
@ApiImplicitParam(name = "auditParam", value = "审计日志参数", required = true) @ApiImplicitParam(name = "auditParam", value = "审计日志参数", required = true)
@@ -54,7 +54,7 @@ public class AuditController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,result,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,result,methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/logFileWriter") @PostMapping("/logFileWriter")
@ApiOperation("日志文件备份") @ApiOperation("日志文件备份")
public HttpResult logFileWriter(){ public HttpResult logFileWriter(){
@@ -63,7 +63,7 @@ public class AuditController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,null,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,null,methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/recoverLogFile") @PostMapping("/recoverLogFile")
@ApiOperation("日志文件恢复") @ApiOperation("日志文件恢复")
public HttpResult recoverLogFile() { public HttpResult recoverLogFile() {
@@ -72,7 +72,7 @@ public class AuditController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,null,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,null,methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/censusAuditLog") @PostMapping("/censusAuditLog")
@ApiOperation("审计日志统计") @ApiOperation("审计日志统计")
@ApiImplicitParam(name = "auditParam", value = "审计日志参数", required = true) @ApiImplicitParam(name = "auditParam", value = "审计日志参数", required = true)

View File

@@ -65,7 +65,7 @@ public class ConfigController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getSysConfigData") @GetMapping("/getSysConfigData")
@ApiOperation("获取系统配置列表") @ApiOperation("获取系统配置列表")
public HttpResult<List<Config>> getSysConfigData() { public HttpResult<List<Config>> getSysConfigData() {
@@ -80,7 +80,7 @@ public class ConfigController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getSysConfigById") @GetMapping("/getSysConfigById")
@ApiOperation("根据配置Id获取系统配置") @ApiOperation("根据配置Id获取系统配置")
@ApiImplicitParam(name = "id", value = "参数id", required = true) @ApiImplicitParam(name = "id", value = "参数id", required = true)
@@ -96,7 +96,7 @@ public class ConfigController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/updateSysConfigById") @GetMapping("/updateSysConfigById")
@ApiOperation("根据配置Id更改(激活)系统状态") @ApiOperation("根据配置Id更改(激活)系统状态")
@ApiImplicitParam(name = "id", value = "参数id", required = true) @ApiImplicitParam(name = "id", value = "参数id", required = true)
@@ -116,7 +116,7 @@ public class ConfigController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/removeSysConfigById") @GetMapping("/removeSysConfigById")
@ApiOperation("根据配置Id删除系统配置") @ApiOperation("根据配置Id删除系统配置")
@ApiImplicitParam(name = "id", value = "参数id", required = true) @ApiImplicitParam(name = "id", value = "参数id", required = true)
@@ -155,7 +155,7 @@ public class ConfigController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/updateSysConfig") @PostMapping("/updateSysConfig")
@ApiOperation("修改系统配置") @ApiOperation("修改系统配置")
@ApiImplicitParam(name = "configUpdateParam", value = "更新配置实体", required = true) @ApiImplicitParam(name = "configUpdateParam", value = "更新配置实体", required = true)

View File

@@ -133,7 +133,7 @@ public class DictDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataById") @GetMapping("/getDicDataById")
@ApiOperation("根据字典id查询字典数据") @ApiOperation("根据字典id查询字典数据")
@ApiImplicitParam(name = "dicIndex", value = "查询参数", required = true) @ApiImplicitParam(name = "dicIndex", value = "查询参数", required = true)
@@ -143,7 +143,7 @@ public class DictDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByTypeName") @GetMapping("/getDicDataByTypeName")
@ApiOperation("根据字典类型名称查询字典数据") @ApiOperation("根据字典类型名称查询字典数据")
@ApiImplicitParam(name = "dictTypeName", value = "查询参数", required = true) @ApiImplicitParam(name = "dictTypeName", value = "查询参数", required = true)
@@ -153,7 +153,7 @@ public class DictDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByName") @GetMapping("/getDicDataByName")
@ApiOperation("根据字典名称查询字典数据") @ApiOperation("根据字典名称查询字典数据")
@ApiImplicitParam(name = "dicName", value = "查询参数", required = true) @ApiImplicitParam(name = "dicName", value = "查询参数", required = true)
@@ -163,7 +163,7 @@ public class DictDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByNameAndType") @GetMapping("/getDicDataByNameAndType")
@ApiOperation("根据字典名称查询字典数据") @ApiOperation("根据字典名称查询字典数据")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -176,7 +176,7 @@ public class DictDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByCodeAndType") @GetMapping("/getDicDataByCodeAndType")
@ApiOperation("根据字典Code和字典类型查询字典数据") @ApiOperation("根据字典Code和字典类型查询字典数据")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -188,7 +188,7 @@ public class DictDataController extends BaseController {
DictData result = dictDataService.getDicDataByCodeAndType(dicCode,typeCode); DictData result = dictDataService.getDicDataByCodeAndType(dicCode,typeCode);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByCode") @GetMapping("/getDicDataByCode")
@ApiOperation("根据字典code查询字典数据") @ApiOperation("根据字典code查询字典数据")
@ApiImplicitParam(name = "code", value = "查询参数", required = true) @ApiImplicitParam(name = "code", value = "查询参数", required = true)
@@ -201,7 +201,7 @@ public class DictDataController extends BaseController {
/** /**
* 根据系统类型获取不同指标参数 * 根据系统类型获取不同指标参数
*/ */
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getLoadTypeBySys") @GetMapping("/getLoadTypeBySys")
@ApiOperation("根据系统类型获取不同指标参数") @ApiOperation("根据系统类型获取不同指标参数")
@ApiIgnore @ApiIgnore
@@ -220,7 +220,7 @@ public class DictDataController extends BaseController {
* @return 新增后的字典数据 * @return 新增后的字典数据
*/ */
@ApiIgnore @ApiIgnore
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/addDicData") @GetMapping("/addDicData")
@ApiOperation("后台新增字典数据") @ApiOperation("后台新增字典数据")
public HttpResult<DictData> addDicData(String dicTypeName, String dicDataName) { public HttpResult<DictData> addDicData(String dicTypeName, String dicDataName) {
@@ -236,7 +236,7 @@ public class DictDataController extends BaseController {
* @return 字典数据 * @return 字典数据
*/ */
@ApiIgnore @ApiIgnore
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByNameAndTypeName") @GetMapping("/getDicDataByNameAndTypeName")
@ApiOperation("根据字典类型名称&数据名称获取字典数据") @ApiOperation("根据字典类型名称&数据名称获取字典数据")
public HttpResult<DictData> getDicDataByNameAndTypeName(String dicTypeName, String dicDataName) { public HttpResult<DictData> getDicDataByNameAndTypeName(String dicTypeName, String dicDataName) {
@@ -245,7 +245,7 @@ public class DictDataController extends BaseController {
} }
@ApiIgnore @ApiIgnore
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicDataByTypeCode") @GetMapping("/getDicDataByTypeCode")
@ApiOperation("根据字典类型code查询字典数据") @ApiOperation("根据字典类型code查询字典数据")
@ApiImplicitParam(name = "dictTypeCode", value = "查询参数", required = true) @ApiImplicitParam(name = "dictTypeCode", value = "查询参数", required = true)

View File

@@ -97,7 +97,7 @@ public class EleEpdPqdController extends BaseController {
@OperateInfo(info = LogEnum.SYSTEM_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("列表分页") @ApiOperation("查询模板列表分页")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public HttpResult<Page<EleEpdPqdVO>> getList(@RequestBody @Validated EleEpdPqdParam.EleEpdPqdQueryParam queryParam) { public HttpResult<Page<EleEpdPqdVO>> getList(@RequestBody @Validated EleEpdPqdParam.EleEpdPqdQueryParam queryParam) {
String methodDescribe = getMethodDescribe("getList"); String methodDescribe = getMethodDescribe("getList");

View File

@@ -3,23 +3,30 @@ package com.njcn.system.handler;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.github.tocrhz.mqtt.annotation.MqttSubscribe; import com.github.tocrhz.mqtt.annotation.MqttSubscribe;
import com.github.tocrhz.mqtt.annotation.Payload; import com.github.tocrhz.mqtt.annotation.Payload;
import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.common.pojo.dto.LogInfoDTO; import com.njcn.common.pojo.dto.LogInfoDTO;
import com.njcn.common.utils.PubUtils; import com.njcn.common.utils.PubUtils;
import com.njcn.redis.pojo.enums.RedisKeyEnum;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.system.service.IUserLogService; import com.njcn.system.service.IUserLogService;
import com.njcn.user.api.UserFeignClient; import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.User; import com.njcn.user.pojo.po.User;
import com.njcn.web.utils.EmailUtil; import com.njcn.web.utils.EmailUtil;
import io.swagger.models.auth.In;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -37,12 +44,33 @@ public class MqttMessageHandler {
private final UserFeignClient userFeignClient; private final UserFeignClient userFeignClient;
private final EmailUtil emailUtil; private final EmailUtil emailUtil;
private final RedisUtil redisUtil;
private JSONObject jsonObject = null;
/** /**
* 订阅审计日志的记录,并进行入库操作 * 订阅审计日志的记录,并进行入库操作
*/ */
@MqttSubscribe(value = "/userLog") @MqttSubscribe(value = "/userLog")
public void subUserLog(String topic, MqttMessage message, @Payload String payload) { public void subUserLog(String topic, MqttMessage message, @Payload String payload) {
if(Objects.isNull(jsonObject)){
jsonObject = (JSONObject) redisUtil.getObjectByKey(RedisKeyEnum.USER_ROLE_TYPE_KEY.getKey());
if(Objects.isNull(jsonObject)){
userFeignClient.userRoleList();
}
}
LogInfoDTO logInfoDTO = PubUtils.json2obj(new String(message.getPayload(), StandardCharsets.UTF_8),LogInfoDTO.class); LogInfoDTO logInfoDTO = PubUtils.json2obj(new String(message.getPayload(), StandardCharsets.UTF_8),LogInfoDTO.class);
String loginName = logInfoDTO.getLoginName();
if(StrUtil.isNotBlank(loginName) && jsonObject.containsKey(loginName)){
if((Integer) jsonObject.get(loginName)==2){
logInfoDTO.setType(0);
}else {
logInfoDTO.setType(1);
};
}else {
logInfoDTO.setType(1);
}
userLogService.addUserLog(logInfoDTO); userLogService.addUserLog(logInfoDTO);
} }

View File

@@ -111,7 +111,8 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
QueryWrapper<UserLog> queryWrapper = new QueryWrapper<>(); QueryWrapper<UserLog> queryWrapper = new QueryWrapper<>();
queryWrapper queryWrapper
.between("sys_user_log.create_time", DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime())), .between("sys_user_log.create_time", DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime()))); DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime())))
.ne("sys_user_log.login_name", UNKNOWN_USER);
if (StrUtil.isNotBlank(auditParam.getLoginName())) { if (StrUtil.isNotBlank(auditParam.getLoginName())) {
queryWrapper.eq("sys_user_log.login_name", auditParam.getLoginName()); queryWrapper.eq("sys_user_log.login_name", auditParam.getLoginName());
} }
@@ -187,23 +188,28 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
userIndex = RequestUtil.getUserIndex(request); userIndex = RequestUtil.getUserIndex(request);
String result = CommonResponseEnum.SUCCESS.getMessage(); String result = CommonResponseEnum.SUCCESS.getMessage();
String ip = RequestUtil.getRealIp(request); String ip = RequestUtil.getRealIp(request);
String type = LogEnum.BUSINESS_COMMON.getOperateType(); String type = LogEnum.SYSTEM_COMMON.getOperateType();
String level = LogEnum.BUSINESS_COMMON.getOperateLevel(); String level = LogEnum.SYSTEM_COMMON.getOperateLevel();
String operateType = OperateType.QUERY; String operateType = OperateType.QUERY;
Integer severity = levelStringToNumber(level); Integer severity = levelStringToNumber(level);
if(auditParam.isExport()){ if (auditParam.isExport()) {
methodDescribe = "审计日志列表导出"; methodDescribe = "审计日志列表导出";
}else{ LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, userName, ip, methodDescribe, operateType, result.equalsIgnoreCase("失败") ? 0 : 1, "", severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex, LocalDateTime.now());
publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 2, false);
}else {
if (StrUtil.isNotBlank(auditParam.getSortBy()) && StrUtil.isNotBlank(auditParam.getOrderBy())) { if (StrUtil.isNotBlank(auditParam.getSortBy()) && StrUtil.isNotBlank(auditParam.getOrderBy())) {
methodDescribe = methodDescribe.concat("并以") methodDescribe = methodDescribe.concat("并以")
.concat(auditParam.getSortName()) .concat(auditParam.getSortName())
.concat("进行") .concat("进行")
.concat(auditParam.getOrderBy().equalsIgnoreCase("desc")?"降序":"升序") .concat(auditParam.getOrderBy().equalsIgnoreCase("desc") ? "降序" : "升序")
.concat("查询"); .concat("查询");
LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, userName, ip, methodDescribe, operateType, result.equalsIgnoreCase("失败") ? 0 : 1, "", severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex, LocalDateTime.now());
publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 2, false);
} }
} }
LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, userName, ip, methodDescribe, operateType, result.equalsIgnoreCase("失败") ? 0 : 1, "", severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex, LocalDateTime.now());
publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 2, false);
} }
@Override @Override
@@ -392,9 +398,9 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
public void clearHistoryLog() { public void clearHistoryLog() {
Config config = iConfigService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getState, DataStateEnum.ENABLE.getCode())); Config config = iConfigService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getState, DataStateEnum.ENABLE.getCode()));
Integer logTime; Integer logTime;
if(ObjectUtil.isNotNull(config)){ if (ObjectUtil.isNotNull(config)) {
logTime = config.getLogTime(); logTime = config.getLogTime();
}else{ } else {
logTime = clearHistoryLog; logTime = clearHistoryLog;
} }
LocalDateTime nowDate = LocalDateTime.now(); LocalDateTime nowDate = LocalDateTime.now();

View File

@@ -131,4 +131,7 @@ public interface UserFeignClient {
@GetMapping("/getColleaguesIdByUserId") @GetMapping("/getColleaguesIdByUserId")
HttpResult<List<String>> getColleaguesIdByUserId(@RequestParam("id") String id); HttpResult<List<String>> getColleaguesIdByUserId(@RequestParam("id") String id);
@GetMapping("/userRoleList")
HttpResult<Boolean> userRoleList();
} }

View File

@@ -123,6 +123,12 @@ public class UserFeignClientFallbackFactory implements FallbackFactory<UserFeign
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<Boolean> userRoleList() {
log.error("{}异常,降级处理,异常为:{}","获取所有用户角色",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -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;
}

View File

@@ -2,6 +2,7 @@ package com.njcn.user.controller;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
@@ -41,7 +42,7 @@ public class AuthClientController extends BaseController {
private final IAuthClientService authClientService; private final IAuthClientService authClientService;
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getAuthClientByName/{clientName}") @GetMapping("/getAuthClientByName/{clientName}")
@ApiOperation("根据客户端名查询信息") @ApiOperation("根据客户端名查询信息")
@ApiImplicitParam(name = "clientName", value = "客户端名称", required = true) @ApiImplicitParam(name = "clientName", value = "客户端名称", required = true)

View File

@@ -98,7 +98,7 @@ public class ComponentController extends BaseController {
} }
} }
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/componentTree") @GetMapping("/componentTree")
@ApiOperation("组件树") @ApiOperation("组件树")
public HttpResult<List<ComponentVO>> getComponentTree(){ public HttpResult<List<ComponentVO>> getComponentTree(){
@@ -107,7 +107,7 @@ public class ComponentController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,list,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,list,methodDescribe);
} }
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/userComponentTree") @GetMapping("/userComponentTree")
@ApiOperation("用户组件树") @ApiOperation("用户组件树")
public HttpResult<List<ComponentVO>> getUserComponentTree(){ public HttpResult<List<ComponentVO>> getUserComponentTree(){
@@ -116,7 +116,7 @@ public class ComponentController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,list,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,list,methodDescribe);
} }
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getFatherComponent") @GetMapping("/getFatherComponent")
@ApiOperation("获取父组件节点") @ApiOperation("获取父组件节点")
public HttpResult<List<Component>> getFatherComponent(@RequestParam @Validated String systemType){ public HttpResult<List<Component>> getFatherComponent(@RequestParam @Validated String systemType){

View File

@@ -58,7 +58,7 @@ public class DeptController extends BaseController {
/** /**
* 分页查询部门信息 * 分页查询部门信息
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("查询部门信息") @ApiOperation("查询部门信息")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
@@ -233,7 +233,7 @@ public class DeptController extends BaseController {
* 根据条件获取后代部门索引 * 根据条件获取后代部门索引
* *
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getDeptDescendantIndexes") @PostMapping("/getDeptDescendantIndexes")
@ApiOperation("获取后代部门索引") @ApiOperation("获取后代部门索引")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -257,7 +257,7 @@ public class DeptController extends BaseController {
* @author xy * @author xy
* @date 2022/2/14 15:04 * @date 2022/2/14 15:04
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDeptIdByArea") @GetMapping("/getDeptIdByArea")
@ApiOperation("根据区域索引获取部门索引") @ApiOperation("根据区域索引获取部门索引")
@ApiIgnore @ApiIgnore
@@ -281,7 +281,7 @@ public class DeptController extends BaseController {
* @author denghuajun * @author denghuajun
* @date 2022/2/24 15:04 * @date 2022/2/24 15:04
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getAreaIdByDeptId") @GetMapping("/getAreaIdByDeptId")
@ApiOperation("根据区域索引获取部门索引") @ApiOperation("根据区域索引获取部门索引")
@ApiImplicitParam(name = "deptId", value = "部门id", required = true) @ApiImplicitParam(name = "deptId", value = "部门id", required = true)
@@ -379,7 +379,7 @@ public class DeptController extends BaseController {
@GetMapping("/getDepSonSelfCodetByDeptId") @GetMapping("/getDepSonSelfCodetByDeptId")
@ApiOperation("根据部门id获取所有子部门以及自身的code") @ApiOperation("根据部门id获取所有子部门以及自身的code")
public HttpResult<List<String>> getDepSonSelfCodetByDeptId(@RequestParam("deptId")String deptId) { public HttpResult<List<String>> getDepSonSelfCodetByDeptId(@RequestParam("deptId")String deptId) {
String methodDescribe = getMethodDescribe("getDepSonSelfIdtByDeptId"); String methodDescribe = getMethodDescribe("getDepSonSelfCodetByDeptId");
List<String> deptList = deptService.getDepSonSelfCodetByDeptId(deptId); List<String> deptList = deptService.getDepSonSelfCodetByDeptId(deptId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptList, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptList, methodDescribe);
} }

View File

@@ -34,7 +34,7 @@ import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor @AllArgsConstructor
public class PassWordRuleController extends BaseController { public class PassWordRuleController extends BaseController {
private final PassWordRuleService passWordRuleService; private final PassWordRuleService passWordRuleService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("密码规则修改") @ApiOperation("密码规则修改")
@RequestMapping(value = "/ruleUpdate", method = RequestMethod.POST) @RequestMapping(value = "/ruleUpdate", method = RequestMethod.POST)
public HttpResult<Boolean> ruleUpdate(@RequestBody @Validated PassWordRuleParam passWordRuleParam) { public HttpResult<Boolean> ruleUpdate(@RequestBody @Validated PassWordRuleParam passWordRuleParam) {
@@ -44,7 +44,7 @@ public class PassWordRuleController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取密码规则") @ApiOperation("获取密码规则")
@RequestMapping(value = "/getRule", method = RequestMethod.POST) @RequestMapping(value = "/getRule", method = RequestMethod.POST)
public HttpResult<PassWordRuleParam> getRule() { public HttpResult<PassWordRuleParam> getRule() {
@@ -54,7 +54,7 @@ public class PassWordRuleController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, passWordRuleParam, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, passWordRuleParam, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取用户策略") @ApiOperation("获取用户策略")
@RequestMapping(value = "/getUserStrategy", method = RequestMethod.POST) @RequestMapping(value = "/getUserStrategy", method = RequestMethod.POST)
public HttpResult<UserStrategy> getUserStrategy() { public HttpResult<UserStrategy> getUserStrategy() {

View File

@@ -50,7 +50,7 @@ public class RoleController extends BaseController {
/** /**
* 分页查询角色信息 * 分页查询角色信息
*/ */
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("查询角色信息") @ApiOperation("查询角色信息")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.constant.LogInfo;
@@ -73,7 +74,7 @@ public class UserController extends BaseController {
private final RedisUtil redisUtil; private final RedisUtil redisUtil;
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getUserByName/{loginName}") @GetMapping("/getUserByName/{loginName}")
@ApiOperation("根据登录名查询用户信息") @ApiOperation("根据登录名查询用户信息")
@ApiImplicitParam(name = "loginName", value = "登录名", required = true) @ApiImplicitParam(name = "loginName", value = "登录名", required = true)
@@ -90,7 +91,7 @@ public class UserController extends BaseController {
} }
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiIgnore @ApiIgnore
@GetMapping("/getUserByPhone/{phone}") @GetMapping("/getUserByPhone/{phone}")
@ApiOperation("根据手机号查询用户信息") @ApiOperation("根据手机号查询用户信息")
@@ -107,7 +108,7 @@ public class UserController extends BaseController {
} }
} }
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/judgeUserStatus/{loginName}") @GetMapping("/judgeUserStatus/{loginName}")
@ApiOperation("认证后根据用户名判断用户状态") @ApiOperation("认证后根据用户名判断用户状态")
@ApiImplicitParam(name = "loginName", value = "登录名", required = true) @ApiImplicitParam(name = "loginName", value = "登录名", required = true)
@@ -133,6 +134,10 @@ public class UserController extends BaseController {
String methodDescribe = getMethodDescribe("add"); String methodDescribe = getMethodDescribe("add");
LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, addUserParam); LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, addUserParam);
boolean result = userService.addUser(addUserParam); boolean result = userService.addUser(addUserParam);
//更新redis数据
userService.userRoleList();
if (result) { if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else { } else {
@@ -153,6 +158,8 @@ public class UserController extends BaseController {
String methodDescribe = getMethodDescribe("delete"); String methodDescribe = getMethodDescribe("delete");
LogUtil.njcnDebug(log, "{}用户id为{}", methodDescribe, id); LogUtil.njcnDebug(log, "{}用户id为{}", methodDescribe, id);
boolean result = userService.deleteUser(id); boolean result = userService.deleteUser(id);
//更新redis数据
userService.userRoleList();
if (result) { if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else { } else {
@@ -173,6 +180,8 @@ public class UserController extends BaseController {
String methodDescribe = getMethodDescribe("update"); String methodDescribe = getMethodDescribe("update");
LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, updateUserParam); LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, updateUserParam);
boolean result = userService.updateUser(updateUserParam); boolean result = userService.updateUser(updateUserParam);
//更新redis数据
userService.userRoleList();
if (result) { if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else { } else {
@@ -195,7 +204,7 @@ public class UserController extends BaseController {
} }
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPLOAD)
@PostMapping("/uploadImage") @PostMapping("/uploadImage")
@ApiOperation("上传头像") @ApiOperation("上传头像")
public HttpResult<MinIoUploadResDTO> uploadImage(MultipartFile issuesFile) { public HttpResult<MinIoUploadResDTO> uploadImage(MultipartFile issuesFile) {
@@ -204,7 +213,7 @@ public class UserController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, new MinIoUploadResDTO(issuesFile.getOriginalFilename(), filePath), methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, new MinIoUploadResDTO(issuesFile.getOriginalFilename(), filePath), methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPLOAD)
@PostMapping("/getUrl") @PostMapping("/getUrl")
@ApiOperation("获取头像url") @ApiOperation("获取头像url")
public HttpResult<String> getUrl(@RequestParam("headSculpture") String headSculpture) { public HttpResult<String> getUrl(@RequestParam("headSculpture") String headSculpture) {
@@ -216,7 +225,7 @@ public class UserController extends BaseController {
@OperateInfo(info = LogEnum.SYSTEM_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("列表分页") @ApiOperation("查询用户列表分页")
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public HttpResult<Page<UserVO>> getUserList(@RequestBody @Validated UserParam.UserQueryParam queryParam) { public HttpResult<Page<UserVO>> getUserList(@RequestBody @Validated UserParam.UserQueryParam queryParam) {
String methodDescribe = getMethodDescribe("getUserList"); String methodDescribe = getMethodDescribe("getUserList");
@@ -344,7 +353,7 @@ public class UserController extends BaseController {
} }
} }
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/generateSm2Key") @GetMapping("/generateSm2Key")
@ApiOperation("根据登录名获取公钥") @ApiOperation("根据登录名获取公钥")
@ApiImplicitParam(name = "loginName", value = "登录名", required = true) @ApiImplicitParam(name = "loginName", value = "登录名", required = true)
@@ -433,7 +442,7 @@ public class UserController extends BaseController {
* @param id 用户ID * @param id 用户ID
* @return * @return
*/ */
@OperateInfo @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
@PutMapping("/activateUser") @PutMapping("/activateUser")
@ApiOperation("用户激活") @ApiOperation("用户激活")
@ApiImplicitParam(name = "id", value = "用户id") @ApiImplicitParam(name = "id", value = "用户id")
@@ -573,7 +582,7 @@ public class UserController extends BaseController {
* @author cdf * @author cdf
* @date 2023/7/31 * @date 2023/7/31
*/ */
@OperateInfo(info = LogEnum.SYSTEM_SERIOUS) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getUserListByRoleCode") @GetMapping("/getUserListByRoleCode")
@ApiOperation("根据角色Code集合查询用户信息") @ApiOperation("根据角色Code集合查询用户信息")
@ApiImplicitParam(name = "roleCode", value = "角色Code", required = true) @ApiImplicitParam(name = "roleCode", value = "角色Code", required = true)
@@ -624,5 +633,18 @@ public class UserController extends BaseController {
List<User> result = userService.simpleList(true); List<User> result = userService.simpleList(true);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
/**
* 查询用户的角色
* @author cdf
* @date 2024/8/29
*/
@GetMapping("/userRoleList")
@ApiOperation("获取所有用户角色")
public HttpResult<Boolean> userRoleList(){
String methodDescribe = getMethodDescribe("userRoleList");
userService.userRoleList();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
} }

View File

@@ -18,5 +18,12 @@ import com.njcn.web.controller.BaseController;
@RequestMapping("/userRole") @RequestMapping("/userRole")
public class UserRoleController extends BaseController { public class UserRoleController extends BaseController {
/**
*
* @author cdf
* @date 2024/8/29
*/
} }

View File

@@ -1,6 +1,8 @@
package com.njcn.user.init; package com.njcn.user.init;
import com.njcn.user.service.IFunctionService; import com.njcn.user.service.IFunctionService;
import com.njcn.user.service.IUserService;
import com.njcn.user.service.impl.UserServiceImpl;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
@@ -19,8 +21,11 @@ public class InitPermissionRoles implements CommandLineRunner {
private final IFunctionService functionService; private final IFunctionService functionService;
private final IUserService iUserService;
@Override @Override
public void run(String... args) { public void run(String... args) {
functionService.refreshRolesFunctionsCache(); functionService.refreshRolesFunctionsCache();
iUserService.userRoleList();
} }
} }

View File

@@ -3,12 +3,14 @@ package com.njcn.user.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.dto.excel.UserExcel;
import com.njcn.user.pojo.po.User; import com.njcn.user.pojo.po.User;
import com.njcn.user.pojo.vo.UserVO; import com.njcn.user.pojo.vo.UserVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
@@ -58,4 +60,6 @@ public interface UserMapper extends BaseMapper<User> {
List<UserExcel> queryExportUser(@Param("ew") QueryWrapper<UserExcel> queryWrapper); List<UserExcel> queryExportUser(@Param("ew") QueryWrapper<UserExcel> queryWrapper);
List<UserVO> getUserVOByIdList(@Param("ids") List<String> ids); List<UserVO> getUserVOByIdList(@Param("ids") List<String> ids);
List<UserRoleLogsDTO> userRoleList();
} }

View File

@@ -88,4 +88,20 @@
<select id="userRoleList" resultType="UserRoleLogsDTO">
SELECT
sys_user.login_name loginName,
min( sys_role.type ) roleType
FROM
sys_user,
sys_user_role,
sys_role
WHERE
sys_user.id = sys_user_role.User_Id
AND sys_user_role.Role_Id = sys_role.id
GROUP BY
login_name
</select>
</mapper> </mapper>

View File

@@ -14,6 +14,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
@@ -201,4 +202,7 @@ public interface IUserService extends IService<User> {
List<String> getColleaguesIdByUserId(String id); List<String> getColleaguesIdByUserId(String id);
Boolean userRoleList();
} }

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.poi.excel.ExcelUtil; 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.AreaFeignClient;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum; 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.UserState;
import com.njcn.user.pojo.constant.UserType; import com.njcn.user.pojo.constant.UserType;
import com.njcn.user.pojo.dto.UserDTO; 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.dto.excel.UserExcel;
import com.njcn.user.pojo.param.UserInfoParm; import com.njcn.user.pojo.param.UserInfoParm;
import com.njcn.user.pojo.param.UserParam; import com.njcn.user.pojo.param.UserParam;
@@ -45,6 +49,7 @@ import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil; import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -53,10 +58,7 @@ import javax.validation.constraints.NotNull;
import java.io.File; import java.io.File;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.*;
import java.util.Calendar;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -93,6 +95,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
private final AreaFeignClient areaFeignClient; private final AreaFeignClient areaFeignClient;
private final FileStorageUtil fileStorageUtil; private final FileStorageUtil fileStorageUtil;
private final RedisUtil redisUtil;
@Override @Override
public UserDTO getUserByName(String loginName) { public UserDTO getUserByName(String loginName) {
User user = getUserByLoginName(loginName); User user = getUserByLoginName(loginName);
@@ -594,6 +598,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
return userList.stream().map(User::getId).collect(Collectors.toList()); return userList.stream().map(User::getId).collect(Collectors.toList());
} }
@Override
public Boolean userRoleList() {
JSONObject jsonObject = new JSONObject();
List<UserRoleLogsDTO> 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;
}
/** /**
* 根据登录名查询用户 * 根据登录名查询用户
* *