Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

yonghuifan 1 an în urmă
părinte
comite
6ba6592e15

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

+ 17 - 0
src/main/java/com/dragon/tj/portal/common/vo/message/ContactMemberVO.java

@@ -0,0 +1,17 @@
+package com.dragon.tj.portal.common.vo.message;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author huey China.
+ * @Description : 消息总数VO
+ * @Date Created in 2023/7/21 15:30
+ */
+@Getter
+@Setter
+public class ContactMemberVO {
+
+    private String userName;
+    private String idCard;
+}

+ 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)) {

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

@@ -4,6 +4,8 @@ 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.ContactMemberVO;
 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 +57,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));
@@ -76,5 +78,11 @@ public class MessageInfoController {
     public R reads(List<Long> ids) {
         return R.ok(messageInfoService.reads(ids));
     }
+
+    @GetMapping("contacts")
+    public R getContactsMemberList(@RequestParam(value = "limit",defaultValue = "10") Integer limit) {
+        List<ContactMemberVO> list = messageInfoService.getContactsMemberList(limit);
+        return R.ok(list);
+    }
 }
 

+ 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;
+
 
     /**
      * 创建时间

+ 5 - 0
src/main/java/com/dragon/tj/portal/mapper/MessageInfoMapper.java

@@ -2,12 +2,15 @@ package com.dragon.tj.portal.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dragon.tj.portal.common.vo.message.ContactMemberVO;
 import com.dragon.tj.portal.common.vo.message.MessagePageParam;
 import com.dragon.tj.portal.entity.MessageInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 信息表 Mapper 接口
@@ -22,4 +25,6 @@ public interface MessageInfoMapper extends BaseMapper<MessageInfo> {
     IPage<MessageInfo> queryPage(Page page, @Param("req") MessagePageParam req,@Param("idCard") String idCard);
 
     Integer  getCount(@Param("idCard") String idCard,@Param("readStatus") Integer readStatus);
+
+    List<ContactMemberVO> getContactsMemberList(@Param("idCard") String idCard,@Param("limit") Integer limit);
 }

+ 3 - 4
src/main/java/com/dragon/tj/portal/service/MessageInfoService.java

@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dragon.tj.portal.auth.model.LoginUser;
 import com.dragon.tj.portal.common.base.R;
 import com.dragon.tj.portal.common.dto.message.MessageInfoReq;
-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;
-import com.dragon.tj.portal.common.vo.message.MsgCountVO;
+import com.dragon.tj.portal.common.vo.message.*;
 import com.dragon.tj.portal.entity.MessageInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -38,4 +35,6 @@ public interface MessageInfoService extends IService<MessageInfo> {
 
     MsgCountVO getCount();
 
+    List<ContactMemberVO> getContactsMemberList(Integer limit);
+
 }

+ 9 - 4
src/main/java/com/dragon/tj/portal/service/impl/MessageInfoServiceImpl.java

@@ -19,10 +19,7 @@ import com.dragon.tj.portal.common.enums.message.MessageInfoErrorEnums;
 import com.dragon.tj.portal.common.enums.message.MsgRecordTypeEnum;
 import com.dragon.tj.portal.common.enums.message.ReadStatusEnum;
 import com.dragon.tj.portal.common.enums.message.ScopeEnums;
-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;
-import com.dragon.tj.portal.common.vo.message.MsgCountVO;
+import com.dragon.tj.portal.common.vo.message.*;
 import com.dragon.tj.portal.component.exception.message.MessageInfoException;
 import com.dragon.tj.portal.component.message.KafkaInitialConfiguration;
 import com.dragon.tj.portal.component.message.MessageProducer;
@@ -150,6 +147,14 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
         return msgCountVO;
     }
 
+    @Override
+    public List<ContactMemberVO> getContactsMemberList(Integer limit) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        String idCard = loginUser.getIdCard();
+        List<ContactMemberVO> list = this.baseMapper.getContactsMemberList(idCard,limit);
+        return list;
+    }
+
 
     /**
      * @author huey China.

+ 9 - 0
src/main/resources/mapper/MessageInfoMapper.xml

@@ -37,5 +37,14 @@
         and  a.read_status = #{readStatus}
         and  a.member_id = #{idCard}
     </select>
+    <select id="getContactsMemberList" resultType="com.dragon.tj.portal.common.vo.message.ContactMemberVO">
+        SELECT b.member_id as 'idCard',c.`name` as 'userName'  from message_info a
+        INNER JOIN  message_info_scope b on a.id = b.message_info_id
+        LEFT JOIN sys_user c on b.member_id = c.idcard
+        where create_by = #{idCard} and a.del_flag = 0
+        GROUP BY member_id
+        ORDER BY COUNT(1) DESC
+        limit #{limit}
+    </select>
 
 </mapper>