소스 검색

feat(message): message-通知ok

huey 1 년 전
부모
커밋
c34f083e35

+ 23 - 0
src/main/java/com/dragon/tj/portal/common/constants/DateTimeFormatterConstant.java

@@ -0,0 +1,23 @@
+package com.dragon.tj.portal.common.constants;
+
+import java.time.format.DateTimeFormatter;
+
+public class DateTimeFormatterConstant {
+
+	public static final String OF_PATTERN_0 = "yyyy-MM-dd HH:mm:ss";
+
+	public static final String OF_PATTERN_1 = "yyyyMMddHHmmss";
+
+	public static final String OF_PATTERN_2 = "yyyyMMdd";
+
+	public static final String OF_PATTERN_4 = "yyMMddHHmmss";
+
+
+	public static final DateTimeFormatter FORMATTER0 = DateTimeFormatter.ofPattern(OF_PATTERN_0);
+
+	public static final DateTimeFormatter FORMATTER1 = DateTimeFormatter.ofPattern(OF_PATTERN_1);
+
+	public static final DateTimeFormatter FORMATTER2 = DateTimeFormatter.ofPattern(OF_PATTERN_2);
+
+	public static final DateTimeFormatter FORMATTER4 = DateTimeFormatter.ofPattern(OF_PATTERN_4);
+}

+ 14 - 1
src/main/java/com/dragon/tj/portal/common/vo/message/MessagePageParam.java

@@ -1,8 +1,13 @@
 package com.dragon.tj.portal.common.vo.message;
 
+import com.dragon.tj.portal.common.constants.DateTimeFormatterConstant;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Range;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
 
 /**
  * @author huey China.
@@ -38,7 +43,15 @@ public class MessagePageParam {
     /**
      * 发布时间
      */
-    private String publishTime;
+    @DateTimeFormat(pattern = DateTimeFormatterConstant.OF_PATTERN_0)
+    private LocalDateTime publishTimeStart;
+    @DateTimeFormat(pattern = DateTimeFormatterConstant.OF_PATTERN_0)
+    private LocalDateTime publishTimeEnd;
 
+    /**
+    *
+    *已读状态
+    */
+    private Integer readStatus;
 
 }

+ 10 - 6
src/main/java/com/dragon/tj/portal/controller/MessageCenterController.java

@@ -6,10 +6,9 @@ import com.dragon.tj.portal.auth.model.LoginUser;
 import com.dragon.tj.portal.auth.util.SecurityUtils;
 import com.dragon.tj.portal.common.base.R;
 import com.dragon.tj.portal.common.dto.message.MessageInfoReq;
-import com.dragon.tj.portal.common.dto.message.MessageInfoSend;
-import com.dragon.tj.portal.component.message.KafkaInitialConfiguration;
 import com.dragon.tj.portal.component.message.MessageProducer;
 import com.dragon.tj.portal.service.MessageInfoService;
+import com.dragon.tj.portal.service.NoticeInfoService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -34,6 +33,9 @@ public class MessageCenterController {
     @Autowired
     private MessageInfoService messageInfoService;
 
+    @Autowired
+    private NoticeInfoService noticeInfoService;
+
     @Autowired
     private MessageProducer producer;
 
@@ -45,7 +47,7 @@ public class MessageCenterController {
     @PostMapping("/publish")
     public R publish(@Validated @RequestBody MessageInfoReq messageInfoReq) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        log.info("api/message/publish-req-is {}-{}",JSON.toJSONString(loginUser), JSON.toJSONString(messageInfoReq));
+        log.info("api/message/publish-req-is {}-{}", JSON.toJSONString(loginUser), JSON.toJSONString(messageInfoReq));
         return messageInfoService.push(messageInfoReq, loginUser);
     }
 
@@ -55,11 +57,13 @@ public class MessageCenterController {
      * @Date Created in 2023/7/11 16:12
      */
     @PostMapping("/send")
-    public R publish(@Validated @RequestBody MessageInfoSend messageInfoSend) {
-        producer.send(KafkaInitialConfiguration.sseTopic + "-a1", JSON.toJSONString(messageInfoSend));
-        return R.ok();
+    public R send(@Validated @RequestBody MessageInfoReq messageInfoReq) {
+        log.info("api/message/publish-req-is {}", JSON.toJSONString(messageInfoReq));
+        return noticeInfoService.send(messageInfoReq);
     }
 
+    //topic 颁发 appcode 及
+
 
 }
 

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

@@ -33,7 +33,7 @@ public class MessageInfoController {
     /**
      * 分页查询
      *
-     * @param page TODO 分页对象
+     * @param page
      * @param req
      * @return
      */

+ 11 - 0
src/main/java/com/dragon/tj/portal/entity/MessageInfo.java

@@ -1,6 +1,7 @@
 package com.dragon.tj.portal.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
@@ -86,7 +87,17 @@ public class MessageInfo implements Serializable {
     /**
      * 版本号
      */
+
     private Integer version;
 
+    @TableField(exist = false)
+    private String memberId;
+
+    @TableField(exist = false)
+    private Integer scopeType;
+
+    @TableField(exist = false)
+    private String scopeId;
+
 
 }

+ 5 - 0
src/main/java/com/dragon/tj/portal/entity/MessageInfoScope.java

@@ -31,6 +31,11 @@ public class MessageInfoScope implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    /**
+     * 信息id
+     */
+    private Long messageInfoId;
+
     /**
      * 人员id
      */

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

@@ -1,8 +1,12 @@
 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.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;
 
 /**
  * <p>
@@ -15,4 +19,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface MessageInfoMapper extends BaseMapper<MessageInfo> {
 
+    IPage<MessageInfo> queryPage(Page page,@Param("req") MessagePageParam req);
 }

+ 3 - 0
src/main/java/com/dragon/tj/portal/service/NoticeInfoService.java

@@ -1,5 +1,7 @@
 package com.dragon.tj.portal.service;
 
+import com.dragon.tj.portal.common.base.R;
+import com.dragon.tj.portal.common.dto.message.MessageInfoReq;
 import com.dragon.tj.portal.entity.NoticeInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface NoticeInfoService extends IService<NoticeInfo> {
 
+    R send(MessageInfoReq messageInfoReq);
 }

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

@@ -113,7 +113,8 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
 
     @Override
     public IPage queryPage(Page page, MessagePageParam req) {
-        return null;
+        IPage<MessageInfo> queryPage = baseMapper.queryPage(page, req);
+        return queryPage;
     }
 
 
@@ -154,14 +155,6 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
         MessageInfoSend messageInfoSend = new MessageInfoSend();
         messageInfoSend.setMessageInfoReq(messageInfoReq);
         messageInfoSend.setClientIds(messageClientIds);
-        messageClientIds.forEach(e -> {
-            MessageInfoScope messageInfoScope = new MessageInfoScope();
-            messageInfoScope.setScopeId(loginUser.getOrgCode());
-            messageInfoScope.setMemberId(e);
-            messageInfoScope.setScopeType(scopeEnums.value());
-            //messageInfoScope.setScopeLevel("");
-            insertList.add(messageInfoScope);
-        });
 
         MessageInfo messageInfo = messageReqConvert.reqToInfo(messageInfoReq);
         messageInfo.setCreateBy(loginUser.getIdCard());
@@ -170,6 +163,15 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
         boolean isSaveBatchSuccess = false;
         try {
             isSaveBatchSuccess = this.save(messageInfo);
+            messageClientIds.forEach(e -> {
+                MessageInfoScope messageInfoScope = new MessageInfoScope();
+                messageInfoScope.setMessageInfoId(messageInfo.getId());
+                messageInfoScope.setScopeId(loginUser.getOrgCode());
+                messageInfoScope.setMemberId(e);
+                messageInfoScope.setScopeType(scopeEnums.value());
+                //messageInfoScope.setScopeLevel("");
+                insertList.add(messageInfoScope);
+            });
             isSaveBatchSuccess = messageInfoScopeService.saveBatch(insertList);
         } catch (Exception e) {
             log.warn("消息中心 saveBatch 存储失败 {}");

+ 10 - 1
src/main/java/com/dragon/tj/portal/service/impl/NoticeInfoServiceImpl.java

@@ -1,9 +1,11 @@
 package com.dragon.tj.portal.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dragon.tj.portal.common.base.R;
+import com.dragon.tj.portal.common.dto.message.MessageInfoReq;
 import com.dragon.tj.portal.entity.NoticeInfo;
 import com.dragon.tj.portal.mapper.NoticeInfoMapper;
 import com.dragon.tj.portal.service.NoticeInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +19,11 @@ import org.springframework.stereotype.Service;
 @Service
 public class NoticeInfoServiceImpl extends ServiceImpl<NoticeInfoMapper, NoticeInfo> implements NoticeInfoService {
 
+    //        producer.send(KafkaInitialConfiguration.sseTopic + "-a1", JSON.toJSONString(messageInfoSend));
+
+    @Override
+    public R send(MessageInfoReq messageInfoReq) {
+        //鉴权加密钥
+        return null;
+    }
 }

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

@@ -22,5 +22,29 @@
     <sql id="Base_Column_List">
         id, message_type, read_status, title, content, attachment_path, create_by, update_by, create_time, update_time, del_flag, version
     </sql>
+    <select id="queryPage" resultType="com.dragon.tj.portal.entity.MessageInfo">
+        SELECT b.id,member_id,scope_type,scope_id,message_type,read_status,title,content,attachment_path from message_info_scope a
+        LEFT JOIN message_info b on a.message_info_id = b.id
+        where b.del_flag = 0
+        <if test="req.messageType != null">
+            and b.message_type = #{req.messageType}
+        </if>
+        <if test="req.title != null">
+            and b.title = #{req.title}
+        </if>
+        <if test="req.content != null">
+            and b.content = #{req.content}
+        </if>
+        <if test="req.deptCode != null">
+            and a.scope_id = #{req.deptCode}
+        </if>
+        <if test="req.readStatus != null">
+            and a.read_status = #{req.readStatus}
+        </if>
+        <if test="req.publishTimeStart != null and req.publishTimeEnd != null ">
+            and b.create_time >= #{req.publishTimeStart} and b.create_time &lt;= #{req.publishTimeEnd}
+        </if>
+
+    </select>
 
 </mapper>