From 34cc8bd8d120806b30de7fe67a8ab1059bb32d15 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Tue, 30 May 2023 10:05:51 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AE=A1=E8=AE=A1=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=202.=E6=95=B0=E6=8D=AE=E4=B8=AD=E5=BF=83bug=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/njcn/oss/constant/OssPath.java | 5 + .../java/com/njcn/redis/utils/RedisUtil.java | 13 ++- .../device/pq/pojo/param/RunManageParam.java | 5 +- .../pq/service/impl/RunManageServiceImpl.java | 35 ++++++- .../njcn/system/pojo/vo/OnlineUsersVO.java | 28 ++++++ .../system/controller/AuditController.java | 12 +++ .../com/njcn/system/service/AuditService.java | 6 ++ .../system/service/impl/AuditServiceImpl.java | 92 +++++++++++++++---- .../com/njcn/user/api/UserFeignClient.java | 19 +++- .../UserFeignClientFallbackFactory.java | 9 ++ .../njcn/user/controller/UserController.java | 10 ++ 11 files changed, 211 insertions(+), 23 deletions(-) create mode 100644 pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/OnlineUsersVO.java diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java index a3a3108b1..c4a105c57 100644 --- a/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java +++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java @@ -77,4 +77,9 @@ public interface OssPath { * 资源文件 */ String RESOURCEDATA = "resourceData/"; + + /*** + * 日志文件 + */ + String LOGBAK = "logbak/"; } diff --git a/pqs-common/common-redis/src/main/java/com/njcn/redis/utils/RedisUtil.java b/pqs-common/common-redis/src/main/java/com/njcn/redis/utils/RedisUtil.java index 64c0fc903..3138e6173 100644 --- a/pqs-common/common-redis/src/main/java/com/njcn/redis/utils/RedisUtil.java +++ b/pqs-common/common-redis/src/main/java/com/njcn/redis/utils/RedisUtil.java @@ -230,5 +230,16 @@ public class RedisUtil { redisTemplate.boundListOps(key).set(index, newObj); } - + /** + * 根据某个key模糊查询,并取出value + * @param key + * @return + */ + public List getLikeListAllValues(String key) { + List info=new ArrayList<>(); + for (String s : redisTemplate.keys(key + "*")) { + info.add(redisTemplate.opsForValue().get(s)); + } + return info; + } } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java index 101d0c0c5..97fbbcb35 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java @@ -72,6 +72,9 @@ public class RunManageParam extends BaseParam implements Serializable { @ApiModelProperty(name = "runFlag", value = "终端状态") private List runFlag; - @ApiModelProperty(name = "searchValue", value = "篩選數據") + @ApiModelProperty(name = "searchValue", value = "筛选数据") private String searchValue; + + @ApiModelProperty(name = "evaluate", value = "评价") + private String evaluate; } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java index dc09fe2a3..29b70e2a3 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java @@ -78,7 +78,7 @@ public class RunManageServiceImpl implements RunManageService { if (!CollectionUtils.isEmpty(lineIndexes)) { return deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(),runManageParam.getSearchValue()); } else { - throw new BusinessException(CommonResponseEnum.FAIL); + return new ArrayList<>(); } } @@ -113,11 +113,44 @@ public class RunManageServiceImpl implements RunManageService { // InfluxDBResultMapper inCn = new InfluxDBResultMapper(); // List lineInfluxDbOnlineVOList = inCn.toPOJO(queryResult,LineInfluxDbOnlineVO.class); runManageDevList = runManageDevList.stream().peek(item-> lineInfluxDbOnlineVOList.stream().filter(it-> Objects.equals(item.getId(),it.getDevIndex())).findFirst().ifPresent(i->item.setOnlineEvaluate(i.getOnlineRate()))).collect(Collectors.toList()); + String evaluate = runManageParam.getEvaluate(); + if(StrUtil.isNotBlank(evaluate)){ + runManageDevList=runManageDevList.stream().filter(x->filterOnlineEvaluate(evaluate,x.getOnlineEvaluate())).collect(Collectors.toList()); + } } } return runManageDevList; } + /** + * 评价筛选 + * @param evaluate + * @param onlineEvaluate + * @return + */ + private boolean filterOnlineEvaluate(String evaluate, Double onlineEvaluate) { + if(onlineEvaluate!=null){ + onlineEvaluate=onlineEvaluate*100; + switch (evaluate){ + case "优": + if(onlineEvaluate>90){ + return true; + } + return false; + case "良": + if(60 getTerminalLedger(DeviceInfoParam deviceInfoParam) { diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/OnlineUsersVO.java b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/OnlineUsersVO.java new file mode 100644 index 000000000..d9965afd0 --- /dev/null +++ b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/OnlineUsersVO.java @@ -0,0 +1,28 @@ +package com.njcn.system.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wr + * @description + * @date 2023/5/29 11:04 + */ +@Data +public class OnlineUsersVO { + + @ApiModelProperty("昵称") + private String name; + + @ApiModelProperty("登录名称") + private String loginName; + + @ApiModelProperty("手机号") + private String phone; + + @ApiModelProperty("登录过期时间") + private String time; + + @ApiModelProperty("内容") + private String content; +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AuditController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AuditController.java index 9c18c0c47..775eb6ad5 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AuditController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AuditController.java @@ -10,6 +10,7 @@ import com.njcn.system.pojo.param.AuditParam; import com.njcn.system.pojo.vo.AuditLogCusVO; import com.njcn.system.pojo.vo.AuditLogVO; import com.njcn.system.pojo.vo.LogParamVO; +import com.njcn.system.pojo.vo.OnlineUsersVO; import com.njcn.system.service.AuditService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; @@ -23,6 +24,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.text.ParseException; +import java.util.List; + /** * @version 1.0.0 * @author: chenchao @@ -103,4 +107,12 @@ public class AuditController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, memoInfo, methodDescribe); } + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/getOnlineUsers") + @ApiOperation("获取在线用户") + public HttpResult> getOnlineUsers() throws ParseException { + String methodDescribe = getMethodDescribe("getOnlineUsers"); + List onlineUsers = auditService.getOnlineUsers(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, onlineUsers, methodDescribe); + } } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/AuditService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/AuditService.java index 877552b2e..ba46956dd 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/AuditService.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/AuditService.java @@ -7,6 +7,10 @@ import com.njcn.system.pojo.po.UserLog; import com.njcn.system.pojo.vo.AuditLogCusVO; import com.njcn.system.pojo.vo.AuditLogVO; import com.njcn.system.pojo.vo.LogParamVO; +import com.njcn.system.pojo.vo.OnlineUsersVO; + +import java.text.ParseException; +import java.util.List; /** * @version 1.0.0 @@ -51,4 +55,6 @@ public interface AuditService extends IService { * @return */ Float getMemoInfo(); + + List getOnlineUsers() throws ParseException; } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AuditServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AuditServiceImpl.java index 01508e791..f7b07391a 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AuditServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AuditServiceImpl.java @@ -3,10 +3,12 @@ package com.njcn.system.service.impl; import cn.afterturn.easypoi.exception.excel.ExcelImportException; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.support.ExcelTypeEnum; @@ -16,8 +18,12 @@ 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.service.impl.ServiceImpl; +import com.nimbusds.jose.JWSObject; import com.njcn.common.config.GeneralInfo; +import com.njcn.common.pojo.constant.SecurityConstants; +import com.njcn.common.pojo.dto.UserTokenInfo; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.oss.constant.OssPath; import com.njcn.redis.utils.RedisUtil; import com.njcn.system.enums.AuditLogEnum; import com.njcn.system.excel.DataListener; @@ -26,11 +32,10 @@ import com.njcn.system.mapper.AuditMapper; import com.njcn.system.mapper.UserLogMapper; import com.njcn.system.pojo.param.AuditParam; import com.njcn.system.pojo.po.UserLog; -import com.njcn.system.pojo.vo.AuditLogCusVO; -import com.njcn.system.pojo.vo.AuditLogVO; -import com.njcn.system.pojo.vo.LogParamVO; -import com.njcn.system.pojo.vo.ValuePO; +import com.njcn.system.pojo.vo.*; import com.njcn.system.service.AuditService; +import com.njcn.user.api.UserFeignClient; +import com.njcn.user.pojo.po.User; import lombok.RequiredArgsConstructor; import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.fileupload.FileItem; @@ -42,6 +47,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.text.ParseException; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -65,16 +71,42 @@ public class AuditServiceImpl extends ServiceImpl implem private final GeneralInfo generalInfo; private final RedisUtil redisUtil; + private final UserFeignClient userFeignClient; + @Override public Page getAuditLog(AuditParam auditParam) { List auditLogVOS = new ArrayList<>(); Page info = this.page(new Page<>(auditParam.getPageNum(), auditParam.getPageSize()), new LambdaQueryWrapper() - .eq(StrUtil.isNotBlank(auditParam.getLoginName()), UserLog::getLoginName, auditParam.getLoginName()) + .like(StrUtil.isNotBlank(auditParam.getLoginName()), UserLog::getLoginName, auditParam.getLoginName()) + .ne(UserLog::getLoginName,"unknown user") + .ne(UserLog::getLoginName,"") + .ne(UserLog::getOperate,"unknown user") .eq(auditParam.getType() != null, UserLog::getType, auditParam.getType()) .eq(StrUtil.isNotBlank(auditParam.getOperateType()), UserLog::getOperateType, auditParam.getOperateType()) .ge(StrUtil.isNotBlank(auditParam.getSearchBeginTime()), UserLog::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime()))) .le(StrUtil.isNotBlank(auditParam.getSearchEndTime()), UserLog::getCreateTime, DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime()))) + .or(StrUtil.isNotBlank(auditParam.getLoginName()),qw -> + qw.like(StrUtil.isNotBlank(auditParam.getLoginName()), UserLog::getIp, auditParam.getLoginName()) + .ne(UserLog::getLoginName,"unknown user") + .ne(UserLog::getLoginName,"") + .ne(UserLog::getOperate,"unknown user") + .eq(auditParam.getType() != null, UserLog::getType, auditParam.getType()) + .eq(StrUtil.isNotBlank(auditParam.getOperateType()), UserLog::getOperateType, auditParam.getOperateType()) + .ge(StrUtil.isNotBlank(auditParam.getSearchBeginTime()), UserLog::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime()))) + .le(StrUtil.isNotBlank(auditParam.getSearchEndTime()), UserLog::getCreateTime, DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime()))) + ) + .or(StrUtil.isNotBlank(auditParam.getLoginName()),qw -> + qw.like(StrUtil.isNotBlank(auditParam.getLoginName()), UserLog::getCreateTime, auditParam.getLoginName()) + .ne(UserLog::getLoginName,"unknown user") + .ne(UserLog::getLoginName,"") + .ne(UserLog::getOperate,"unknown user") + .eq(auditParam.getType() != null, UserLog::getType, auditParam.getType()) + .eq(StrUtil.isNotBlank(auditParam.getOperateType()), UserLog::getOperateType, auditParam.getOperateType()) + .ge(StrUtil.isNotBlank(auditParam.getSearchBeginTime()), UserLog::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime()))) + .le(StrUtil.isNotBlank(auditParam.getSearchEndTime()), UserLog::getCreateTime, DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime()))) + ) + .orderByDesc( UserLog::getCreateTime) ); Page page = BeanUtil.copyProperties(info, Page.class); if (CollUtil.isNotEmpty(info.getRecords())) { @@ -82,11 +114,7 @@ public class AuditServiceImpl extends ServiceImpl implem AuditLogVO auditLogVO = new AuditLogVO(); String updateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(userLog.getUpdateTime()); auditLogVO.setTime(updateTime); - if (userLog.getUserName() == null || userLog.getUserName().equals("")) { - auditLogVO.setUserName(userLog.getLoginName()); - } else { - auditLogVO.setUserName(userLog.getUserName()); - } + auditLogVO.setUserName(userLog.getLoginName()); auditLogVO.setOperate(userLog.getOperate()); StringBuilder describe = new StringBuilder(); describe.append(auditLogVO.getUserName()).append("在").append(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(userLog.getUpdateTime())).append("在").append(userLog.getIp()).append("执行了").append(userLog.getOperate()).append(",结果为"); @@ -121,10 +149,10 @@ public class AuditServiceImpl extends ServiceImpl implem public void logFileWriter() { //限制多次点击 String logFileWriter = redisUtil.getStringByKey("logFileWriter"); - if(StrUtil.isNotBlank(logFileWriter)|| ObjectUtil.equals(logFileWriter,"1")){ + if (StrUtil.isNotBlank(logFileWriter) || ObjectUtil.equals(logFileWriter, "1")) { throw new BusinessException(AuditLogEnum.MULTIPLE_CLICKS_LOGFILEWRITER); } - redisUtil.saveByKey("logFileWriter","1"); + redisUtil.saveByKey("logFileWriter", "1"); LocalDateTime nowDate = LocalDateTime.now(); LocalDateTime agoDate = nowDate.minusMonths(6).with(TemporalAdjusters.firstDayOfMonth()); String date = agoDate.format(DateTimeFormatter.ISO_LOCAL_DATE); @@ -136,8 +164,12 @@ public class AuditServiceImpl extends ServiceImpl implem aa.ge("sys_user_log.update_time", date); aa.le("sys_user_log.update_time", endTime); String nowTime = date + "至" + endTime; + File file=new File(generalInfo.getBusinessTempPath() + "/" + OssPath.LOGBAK); + if(!file.exists() && !file .isDirectory()){ + file.mkdir(); + } //必须放到循环外,否则会刷新流 - ExcelWriter excelWriter = EasyExcel.write(generalInfo.getBusinessTempPath() + "//" + nowTime + ExcelTypeEnum.XLSX.getValue(), UserLogExcel.class) + ExcelWriter excelWriter = EasyExcel.write(generalInfo.getBusinessTempPath() + "/"+ OssPath.LOGBAK + nowTime + ExcelTypeEnum.XLSX.getValue(), UserLogExcel.class) // .excelType(ExcelTypeEnum.CSV) .build(); @@ -175,7 +207,6 @@ public class AuditServiceImpl extends ServiceImpl implem excelWriter.write(list, writeSheet); } } - } catch (Exception e) { redisUtil.delete("recoverLogFile"); e.printStackTrace(); @@ -204,10 +235,10 @@ public class AuditServiceImpl extends ServiceImpl implem @Override public void recoverLogFile() { String logFileWriter = redisUtil.getStringByKey("recoverLogFile"); - if(StrUtil.isNotBlank(logFileWriter)|| ObjectUtil.equals(logFileWriter,"1")){ + if (StrUtil.isNotBlank(logFileWriter) || ObjectUtil.equals(logFileWriter, "1")) { throw new BusinessException(AuditLogEnum.MULTIPLE_CLICKS_LOGFILEWRITER); } - redisUtil.saveByKey("recoverLogFile","1"); + redisUtil.saveByKey("recoverLogFile", "1"); File newFile = getLastFile(); if (FileUtil.isEmpty(newFile)) { throw new BusinessException(AuditLogEnum.NOT_FIND_FILE); @@ -264,6 +295,33 @@ public class AuditServiceImpl extends ServiceImpl implem return this.baseMapper.getMemoInfo(schema); } + @Override + public List getOnlineUsers() throws ParseException { + List info = new ArrayList<>(); + List ids = new ArrayList<>(); + Map time = new HashMap<>(); + List listAllValues = (List) redisUtil.getLikeListAllValues(SecurityConstants.TOKEN_ONLINE_PREFIX); + for (UserTokenInfo listAllValue : listAllValues) { + String payload = StrUtil.toString(JWSObject.parse(listAllValue.getRefreshToken()).getPayload()); + cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(payload); + time.put(jsonObject.getStr(SecurityConstants.USER_INDEX_KEY), Long.valueOf(jsonObject.getStr("exp"))); + ids.add(jsonObject.getStr(SecurityConstants.USER_INDEX_KEY)); + } + + List data = userFeignClient.getUserByIdList(ids).getData(); + OnlineUsersVO vo; + if (CollUtil.isNotEmpty(data)) { + for (User datum : data) { + vo = BeanUtil.copyProperties(datum, OnlineUsersVO.class); + Long integer = time.get(datum.getId()); + DateTime date = DateUtil.date(integer*1000); + vo.setTime(date.toDateStr()); + info.add(vo); + } + } + return info; + } + @Override public LogParamVO saveLogParam() { LogParamVO logParamVO = new LogParamVO(); @@ -292,7 +350,7 @@ public class AuditServiceImpl extends ServiceImpl implem * 返回一个最新修改日期的文件 */ public File getLastFile() { - File parentFile = new File(generalInfo.getBusinessTempPath()); + File parentFile = new File(generalInfo.getBusinessTempPath()+"/"+ OssPath.LOGBAK); //文件夹下的所有子文件数组 File[] files = parentFile.listFiles(); 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 1b6faafa0..8041add36 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 @@ -1,13 +1,18 @@ package com.njcn.user.api; +import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.user.api.fallback.UserFeignClientFallbackFactory; import com.njcn.user.pojo.dto.UserDTO; +import com.njcn.user.pojo.po.User; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * @author hongawen @@ -42,4 +47,12 @@ public interface UserFeignClient { */ @PutMapping("/updateUserLoginErrorTimes/{loginName}") HttpResult updateUserLoginErrorTimes(@PathVariable("loginName") String loginName); + + /** + * 根据用户id集合查询用户信息 + * @param ids + * @return + */ + @PostMapping("/userByIdList") + HttpResult> getUserByIdList(@RequestBody List ids); } 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 d2be9261d..27e364243 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 @@ -5,11 +5,14 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.user.api.UserFeignClient; import com.njcn.user.pojo.dto.UserDTO; +import com.njcn.user.pojo.po.User; import com.njcn.user.utils.UserEnumUtil; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import java.util.List; + /** * @author hongawen * @version 1.0.0 @@ -52,6 +55,12 @@ public class UserFeignClientFallbackFactory implements FallbackFactory> getUserByIdList(List ids) { + log.error("{}异常,降级处理,异常为:{}","根据用户id集合查询用户信息",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; } } 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 6defa6687..26ffd08ba 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 @@ -21,6 +21,7 @@ import com.njcn.user.enums.UserResponseEnum; import com.njcn.user.pojo.dto.UserDTO; import com.njcn.user.pojo.param.UserParam; import com.njcn.user.pojo.param.UserPasswordParam; +import com.njcn.user.pojo.po.User; import com.njcn.user.pojo.vo.UserVO; import com.njcn.user.service.IUserService; import com.njcn.web.controller.BaseController; @@ -353,5 +354,14 @@ public class UserController extends BaseController { } } + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/userByIdList") + @ApiOperation("根据用户id集合查询用户信息") + @ApiImplicitParam(name = "ids", value = "用户id集合", required = true) + public HttpResult> getUserByIdList(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("getUserByIdList"); + List users = userService.listByIds(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, users, methodDescribe); + } }