Bläddra i källkod

feat(message): 日志增加部门,模块及应用编码

huey 1 år sedan
förälder
incheckning
b370cfc872

+ 26 - 0
src/main/java/com/dragon/tj/portal/common/enums/log/ModuleEnum.java

@@ -0,0 +1,26 @@
+package com.dragon.tj.portal.common.enums.log;
+
+import lombok.Getter;
+
+/**
+ * @author huey China.
+ * @Description : 消息读状态
+ * @Date Created in 2023/6/28 15:48
+ */
+@Getter
+public enum ModuleEnum {
+
+    NOTICE_UPDATE("1", "消息修改"),
+    MESSAGE_UPDATE("2", "消息修改"),
+    ;
+
+    private final String code;
+    private final String desc;
+
+    ModuleEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+
+}

+ 4 - 0
src/main/java/com/dragon/tj/portal/component/log/annotation/SysLog.java

@@ -19,6 +19,8 @@
 
 package com.dragon.tj.portal.component.log.annotation;
 
+import com.dragon.tj.portal.common.enums.log.ModuleEnum;
+
 import java.lang.annotation.*;
 
 /**
@@ -38,6 +40,8 @@ public @interface SysLog {
      */
     String value();
 
+    ModuleEnum module();
+
     /**
      * 1、后台用户,2、前端用户
      *

+ 3 - 8
src/main/java/com/dragon/tj/portal/component/log/aspect/SysLogAspect.java

@@ -19,7 +19,6 @@
 
 package com.dragon.tj.portal.component.log.aspect;
 
-import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.dragon.tj.portal.auth.model.LoginUser;
 import com.dragon.tj.portal.auth.service.TokenService;
@@ -37,21 +36,15 @@ import org.aspectj.lang.reflect.MethodSignature;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Component;
-import org.springframework.util.StreamUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.BufferedReader;
 import java.io.IOException;
-import java.io.InputStreamReader;
 import java.lang.annotation.Annotation;
-import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Objects;
-import java.util.SortedMap;
-import java.util.TreeMap;
 
 /**
  * @author huey China.
@@ -92,6 +85,8 @@ public class SysLogAspect {
         }
         SysLogDTO logDTO = SysLogUtils.getSysLog();
         logDTO.setTitle(sysLog.value());
+        logDTO.setModuleType(sysLog.module().getCode());
+        logDTO.setModuleName(sysLog.module().getDesc());
         logDTO.setCreateBy(createBy);
         logDTO.setCreateUser(createUser);
         logDTO.setParams(this.params(request, point));
@@ -138,7 +133,7 @@ public class SysLogAspect {
                 Object arg = args[index];
                 String s = JSON.toJSONString(arg);
                 if (Objects.nonNull(s)) {
-                    params.append("POST-PARAM:"+s);
+                    params.append("POST-PARAM:" + s);
                 }
             }
         }

+ 17 - 0
src/main/java/com/dragon/tj/portal/component/log/dto/SysLogDTO.java

@@ -82,4 +82,21 @@ public class SysLogDTO {
 	 */
 	private LocalDateTime[] createTime;
 
+	/**
+	 * 模块名称
+	 */
+	private String moduleName;
+	private String moduleType;
+
+	/**
+	 * 创建人部门名称和code
+	 */
+	private String createOrgName;
+	private String createOrgCode;
+
+	/**
+	 * 系统编码
+	 */
+	private String sysNumber;
+
 }

+ 20 - 1
src/main/java/com/dragon/tj/portal/component/log/uitl/SysLogUtils.java

@@ -22,12 +22,16 @@ package com.dragon.tj.portal.component.log.uitl;
 import cn.hutool.core.util.URLUtil;
 import cn.hutool.extra.servlet.ServletUtil;
 import cn.hutool.http.HttpUtil;
+import com.dragon.tj.portal.auth.util.SecurityUtils;
 import com.dragon.tj.portal.component.log.dto.SysLogDTO;
 import lombok.experimental.UtilityClass;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
 import java.util.Objects;
 
 /**
@@ -35,6 +39,7 @@ import java.util.Objects;
  * @Description : 系统日志工具类
  * @Date Created in 2023/6/12 16:17
  */
+@Slf4j
 @UtilityClass
 public class SysLogUtils {
 
@@ -43,6 +48,11 @@ public class SysLogUtils {
                 .requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         SysLogDTO sysLog = new SysLogDTO();
         sysLog.setCreateBy(Objects.requireNonNull(getUsername()));
+
+        sysLog.setCreateOrgCode(Objects.requireNonNull(SecurityUtils.getLoginUser().getUser().getOrgCode()));
+        sysLog.setCreateOrgName(Objects.requireNonNull(SecurityUtils.getLoginUser().getUser().getOrgName()));
+        sysLog.setSysNumber(getSysCode(request));
+
         sysLog.setType(LogTypeEnum.NORMAL.getType());
         sysLog.setRemoteAddr(ServletUtil.getClientIP(request));
         sysLog.setRequestUri(URLUtil.getPath(request.getRequestURI()));
@@ -71,7 +81,16 @@ public class SysLogUtils {
      * @return username
      */
     private String getUsername() {
-        return "log-admin";
+        return SecurityUtils.getLoginUser().getUsername();
+    }
+
+    private  final String sysCode = "sys-number";
+
+    private static String getSysCode(HttpServletRequest request) {
+        //1. 取出请求里面的所有头信息  ---- 得到一个枚举集合
+        String sysCodeRst = request.getHeader(sysCode);
+        return StringUtils.isNotEmpty(sysCodeRst)? sysCodeRst : StringUtils.EMPTY;
     }
 
+
 }

+ 2 - 2
src/main/java/com/dragon/tj/portal/component/message/MessageConsumer.java

@@ -45,7 +45,7 @@ public class MessageConsumer {
      * @param msg
      * @param ack
      */
-    @KafkaListener(topics = KafkaInitialConfiguration.sseTopic)
+//    @KafkaListener(topics = KafkaInitialConfiguration.sseTopic)
     public void sseConnectionProcess(String msg, Acknowledgment ack) {
         log.info("get kafka msg from topic:{}, msg:{}", KafkaInitialConfiguration.sseTopic, msg);
         if (StrUtil.isEmpty(msg)) {
@@ -83,7 +83,7 @@ public class MessageConsumer {
         ack.acknowledge();
     }
 
-    @KafkaListener(topicPattern = "sseTopic.*")
+//    @KafkaListener(topicPattern = "sseTopic.*")
     public void sseConnectionProcess2(String msg, Acknowledgment ack) {
         log.info("get kafka2 msg from topic:{}, msg:{}", KafkaInitialConfiguration.sseTopic, msg);
         if (StrUtil.isEmpty(msg)) {

+ 2 - 1
src/main/java/com/dragon/tj/portal/controller/MessageInfoController.java

@@ -4,6 +4,7 @@ package com.dragon.tj.portal.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dragon.tj.portal.common.base.R;
+import com.dragon.tj.portal.common.enums.log.ModuleEnum;
 import com.dragon.tj.portal.common.vo.message.MessageInfoParam;
 import com.dragon.tj.portal.common.vo.message.MessageInfoVO;
 import com.dragon.tj.portal.common.vo.message.MessagePageParam;
@@ -55,7 +56,7 @@ public class MessageInfoController {
     /**
      * 修改
      */
-    @SysLog("信息更新")
+    @SysLog(value = "信息更新", module = ModuleEnum.NOTICE_UPDATE)
     @PostMapping("update")
     public R update(@Validated @RequestBody MessageInfoParam messageInfoParam) {
         return R.ok(messageInfoService.update(messageInfoParam));

+ 3 - 2
src/main/java/com/dragon/tj/portal/controller/NoticeInfoController.java

@@ -4,6 +4,7 @@ package com.dragon.tj.portal.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dragon.tj.portal.common.base.R;
+import com.dragon.tj.portal.common.enums.log.ModuleEnum;
 import com.dragon.tj.portal.common.vo.message.MessagePageParam;
 import com.dragon.tj.portal.common.vo.notice.NoticeInfoParam;
 import com.dragon.tj.portal.common.vo.notice.NoticeInfoVO;
@@ -17,7 +18,7 @@ import java.util.List;
 
 /**
  * <p>
- * 信息表 前端控制器
+ * 消息 前端控制器
  * </p>
  *
  * @author huey
@@ -55,7 +56,7 @@ public class NoticeInfoController {
     /**
      * 修改
      */
-    @SysLog("信息更新")
+    @SysLog(value = "消息更新", module = ModuleEnum.NOTICE_UPDATE)
     @PostMapping("update")
     public R update(@Validated @RequestBody NoticeInfoParam messageInfoParam) {
         return R.ok(noticeInfoService.update(messageInfoParam));

+ 0 - 6
src/main/java/com/dragon/tj/portal/controller/SysDictController.java

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dragon.tj.portal.common.base.R;
 import com.dragon.tj.portal.common.constants.CacheConstants;
-import com.dragon.tj.portal.component.log.annotation.SysLog;
 import com.dragon.tj.portal.entity.SysDict;
 import com.dragon.tj.portal.entity.SysDictItem;
 import com.dragon.tj.portal.service.SysDictItemService;
@@ -91,7 +90,6 @@ public class SysDictController {
      * @param id ID
      * @return R
      */
-    @SysLog("删除字典")
     @DeleteMapping("/{id}")
     public R removeById(@PathVariable Integer id) {
         return sysDictService.removeDict(id);
@@ -104,7 +102,6 @@ public class SysDictController {
      * @return success/false
      */
     @PutMapping
-    @SysLog("修改字典")
     public R updateById(@Valid @RequestBody SysDict sysDict) {
         return sysDictService.updateDict(sysDict);
     }
@@ -138,7 +135,6 @@ public class SysDictController {
      * @param sysDictItem 字典项
      * @return R
      */
-    @SysLog("新增字典项")
     @PostMapping("/item")
     @CacheEvict(value = CacheConstants.DICT_DETAILS, allEntries = true)
     public R save(@RequestBody SysDictItem sysDictItem) {
@@ -151,7 +147,6 @@ public class SysDictController {
      * @param sysDictItem 字典项
      * @return R
      */
-    @SysLog("修改字典项")
     @PutMapping("/item")
 //    @XssCleanIgnore
     public R updateById(@RequestBody SysDictItem sysDictItem) {
@@ -164,7 +159,6 @@ public class SysDictController {
      * @param id id
      * @return R
      */
-    @SysLog("删除字典项")
     @DeleteMapping("/item/{id}")
     public R removeDictItemById(@PathVariable Integer id) {
         return sysDictItemService.removeDictItem(id);

+ 18 - 1
src/main/java/com/dragon/tj/portal/entity/SysLog.java

@@ -34,12 +34,29 @@ public class SysLog implements Serializable {
     private Long id;
 
     /**
-     * 模块或主题
+     * 操作
      */
     private String title;
 
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+    private String moduleType;
+
     private String createBy;
     private String createUser;
+    /**
+     * 创建人部门名称和code
+     */
+    private String createOrgName;
+    private String createOrgCode;
+
+    /**
+     * 系统编码
+     */
+    private String sysNumber;
+
 
     /**
      * 创建时间