谭斌 преди 1 година
родител
ревизия
4cbd8ef6a4

+ 0 - 12
sys-api-feign/src/main/java/com/xy/feign/MsgFeign.java

@@ -1,12 +0,0 @@
-package com.xy.feign;
-
-import com.xy.FeignInterceptor;
-import com.xy.consts.ServiceConsts;
-import com.xy.service.MsgSendApiService;
-import org.springframework.cloud.openfeign.FeignClient;
-
-
-@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
-public interface MsgFeign extends MsgSendApiService {
-
-}

+ 1 - 1
sys-api-service/src/main/java/com/xy/entity/MsgUserMessage.java

@@ -37,7 +37,7 @@ public class MsgUserMessage implements Serializable {
     private Long userId;
 
     @ApiModelProperty(value = "消息id")
-    private Long msgId;
+    private Integer msgId;
 
     @ApiModelProperty(value = "状态")
     private String readState;

+ 19 - 7
sys-api-service/src/main/java/com/xy/service/MsgSysMonitorNoticeServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.MsgSysMonitorNoticeDto;
+import com.xy.dto.MsgUserMessageDto;
 import com.xy.entity.MsgSysMonitorNotice;
 import com.xy.mapper.MsgSysMonitorNoticeMapper;
 import com.xy.utils.Emptys;
@@ -13,9 +14,9 @@ import com.xy.utils.R;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
@@ -34,11 +35,13 @@ import static com.xy.utils.PlusBeans.toPageBean;
  * @since 2023-03-13
  */
 @Service
-@AllArgsConstructor
+@AllArgsConstructor(onConstructor_ = @Lazy)
 @Api(tags = "系统消息")
 public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl<MsgSysMonitorNoticeMapper, MsgSysMonitorNotice> implements MsgSysMonitorNoticeService {
 
-    @PostMapping("obj")
+    private MsgUserMessageServiceImpl msgUserMessageService;
+
+    @Override
     @ApiOperation("对象查询")
     public R<MsgSysMonitorNoticeDto.Vo> obj(@RequestBody MsgSysMonitorNoticeDto.Vo vo) {
         MsgSysMonitorNoticeDto.SelectList selectList = copy(MsgSysMonitorNoticeDto.SelectList.class, vo);
@@ -49,7 +52,7 @@ public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl<MsgSysMonitorNot
         return R.ok();
     }
 
-    @PostMapping("list")
+    @Override
     @ApiOperation("集合查询")
     public R<List<MsgSysMonitorNoticeDto.Vo>> list(@RequestBody MsgSysMonitorNoticeDto.SelectList selectList) {
         LambdaQueryWrapper<MsgSysMonitorNotice> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MsgSysMonitorNotice.class).build();
@@ -57,7 +60,7 @@ public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl<MsgSysMonitorNot
         return R.ok(copy(MsgSysMonitorNoticeDto.Vo.class, list));
     }
 
-    @PostMapping("page")
+    @Override
     @ApiOperation("分页查询")
     public R<PageBean<MsgSysMonitorNoticeDto.Vo>> page(@RequestBody MsgSysMonitorNoticeDto.Page page) {
         PageBean pageBean = page.getPage();
@@ -66,15 +69,24 @@ public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl<MsgSysMonitorNot
         return R.ok(toPageBean(MsgSysMonitorNoticeDto.Vo.class, iPage));
     }
 
-    @PostMapping("save")
+    @Override
     @ApiOperation("添加")
     public R save(@RequestBody @Validated MsgSysMonitorNoticeDto.Save save) {
         MsgSysMonitorNotice saveInfo = copy(MsgSysMonitorNotice.class, save);
         save(saveInfo);
+        Long userId = save.getUserId();
+        if (userId != null) {
+            MsgUserMessageDto.Save mum = new MsgUserMessageDto.Save();
+            mum.setMsgId(saveInfo.getMsgId());
+            mum.setMsgType(saveInfo.getMsgType());
+            mum.setPriority(saveInfo.getPriority());
+            mum.setUserId(userId);
+            msgUserMessageService.save(mum);
+        }
         return R.ok();
     }
 
-    @PostMapping("update")
+    @Override
     @ApiOperation("修改")
     public R update(@RequestBody @Validated MsgSysMonitorNoticeDto.Update update) {
         MsgSysMonitorNotice updateInfo = copy(MsgSysMonitorNotice.class, update);

+ 59 - 2
sys-api-service/src/main/java/com/xy/service/MsgUserMessageServiceImpl.java

@@ -1,10 +1,14 @@
 package com.xy.service;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.MsgUserMessageDto;
+import com.xy.entity.MsgSysMonitorNotice;
 import com.xy.entity.MsgUserMessage;
+import com.xy.enums.MsgReadStatus;
 import com.xy.mapper.MsgUserMessageMapper;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
@@ -14,6 +18,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static com.xy.utils.Beans.copy;
 import static com.xy.utils.PlusBeans.toIPage;
 import static com.xy.utils.PlusBeans.toPageBean;
 
@@ -31,6 +40,37 @@ import static com.xy.utils.PlusBeans.toPageBean;
 @Api(tags = "用户消息")
 public class MsgUserMessageServiceImpl extends ServiceImpl<MsgUserMessageMapper, MsgUserMessage> implements MsgUserMessageService {
 
+    private MsgSysMonitorNoticeServiceImpl msgSysMonitorNoticeService;
+
+    @Override
+    @ApiOperation("消息详情")
+    public R<MsgUserMessageDto.Vo> obj(MsgUserMessageDto.Vo vo) {
+        MsgUserMessageDto.SelectList selectList = copy(MsgUserMessageDto.SelectList.class, vo);
+        List<MsgUserMessageDto.Vo> list = list(selectList).getData();
+        if (Emptys.check(list)) {
+            MsgUserMessageDto.Vo myMsg = list.get(0);
+            //更新已读
+            this.updateById(new MsgUserMessage().setId(myMsg.getId()).setReadState(MsgReadStatus.READ.getCode().toString()));
+            return R.ok(myMsg);
+        }
+        return R.ok();
+    }
+
+    public R<List<MsgUserMessageDto.Vo>> list(MsgUserMessageDto.SelectList selectList) {
+        LambdaQueryWrapper<MsgUserMessage> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MsgUserMessage.class).build();
+        List<MsgUserMessage> list = list(lambdaQueryWrapper);
+        return R.ok(copy(MsgUserMessageDto.Vo.class, list));
+    }
+
+    @ApiOperation("我的消息-未读数量")
+    @Override
+    public R<Long> myMsgUnRead() {
+        long count = this.count(Wrappers.<MsgUserMessage>lambdaQuery()
+                .eq(MsgUserMessage::getUserId, AuthorizeUtils.getLoginId(Long.class))
+                .eq(MsgUserMessage::getReadState, MsgReadStatus.UN_READ.getCode()));
+        return R.ok(count);
+    }
+
 
     @ApiOperation("我的消息")
     @Override
@@ -40,9 +80,26 @@ public class MsgUserMessageServiceImpl extends ServiceImpl<MsgUserMessageMapper,
         LambdaQueryWrapper<MsgUserMessage> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MsgUserMessage.class)
                 .ge(MsgUserMessage::getCreateTime, page.getBeginCreateTime())
                 .le(MsgUserMessage::getCreateTime, page.getEndCreateTime())
-                .build();
+                .build().orderByAsc(MsgUserMessage::getPriority);
         IPage<MsgUserMessage> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
-        return R.ok(toPageBean(MsgUserMessageDto.PageVO.class, iPage));
+        PageBean<MsgUserMessageDto.PageVO> pageVo = toPageBean(MsgUserMessageDto.PageVO.class, iPage);
+        List<MsgUserMessageDto.PageVO> records = pageVo.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            List<Integer> msgIds = records.stream().map(MsgUserMessageDto.PageVO::getMsgId).collect(Collectors.toList());
+            List<MsgSysMonitorNotice> msgSysMonitorNotices = msgSysMonitorNoticeService.listByIds(msgIds);
+            if (CollUtil.isNotEmpty(msgSysMonitorNotices)) {
+                Map<Integer, MsgSysMonitorNotice> msgSysMonitorNoticeMap = msgSysMonitorNotices.stream().collect(Collectors.toMap(MsgSysMonitorNotice::getMsgId, i -> i));
+                for (MsgUserMessageDto.PageVO record : records) {
+                    Integer msgId = record.getMsgId();
+                    MsgSysMonitorNotice msgSysMonitorNotice = msgSysMonitorNoticeMap.get(msgId);
+                    if (msgSysMonitorNotice != null) {
+                        record.setContent(msgSysMonitorNotice.getContent());
+                        record.setTitle(msgSysMonitorNotice.getTitle());
+                    }
+                }
+            }
+        }
+        return R.ok(pageVo);
     }
 
     @ApiOperation("新增我的消息")

+ 2 - 1
sys-api/src/main/java/com/xy/dto/MsgSysMonitorNoticeDto.java

@@ -37,7 +37,8 @@ public class MsgSysMonitorNoticeDto {
     @Data
     @Accessors(chain = true)
     public static class Save extends Vo {
-
+        @ApiModelProperty(value = "用户id")
+        private Long userId;
     }
 
     @Data

+ 5 - 5
sys-api/src/main/java/com/xy/dto/MsgUserMessageDto.java

@@ -57,14 +57,14 @@ public class MsgUserMessageDto {
         private Long userId;
 
         @ApiModelProperty(value = "消息id")
-        private Long msgId;
+        private Integer msgId;
 
         @ApiModelProperty(value = "状态")
         private String readState;
 
 
         @ApiModelProperty(value = "消息类型")
-        private String msgType;
+        private Integer msgType;
 
         /**
          * 1紧急 2重要 3一般 (默认)
@@ -84,7 +84,7 @@ public class MsgUserMessageDto {
     public static class PageVO {
 
 
-        @ApiModelProperty(value = "消息类型")
+        @ApiModelProperty(value = "消息类型(字段msg_types)")
         private String msgType;
 
         @ApiModelProperty(value = "消息类型")
@@ -96,7 +96,7 @@ public class MsgUserMessageDto {
         @ApiModelProperty("优先级 1紧急 2重要 3一般")
         private Integer priority;
 
-        @ApiModelProperty(value = "状态(已读、未读)")
+        @ApiModelProperty(value = "状态(2已读、1未读)")
         private String readState;
 
 
@@ -108,7 +108,7 @@ public class MsgUserMessageDto {
 
 
         @ApiModelProperty(value = "消息id")
-        private Long msgId;
+        private Integer msgId;
 
 
         @ApiModelProperty(value = "发送时间")

+ 49 - 0
sys-api/src/main/java/com/xy/enums/MsgConfigId.java

@@ -0,0 +1,49 @@
+package com.xy.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.ToString;
+
+/**
+ * 文件导出类型
+ *
+ * @author 谭斌
+ */
+@Getter
+@ToString
+@AllArgsConstructor
+public enum MsgConfigId {
+
+
+    RISK_ORDER(14L, "异常订单通知"),
+    CUT_ORDER(13L, "补扣成功通知"),
+    DEVICE_EXCEPTION(12L, "设备故障提醒");
+
+    /**
+     * 编码值
+     */
+    private Long id;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+
+    /**
+     * 通过id获取enum
+     *
+     * @param id
+     * @return
+     */
+    public static MsgConfigId getEnumById(String id) {
+        MsgConfigId[] values = values();
+        for (MsgConfigId value : values) {
+            if (value.getId().equals(id)) {
+                return value;
+            }
+        }
+        return null;
+    }
+}

+ 23 - 0
sys-api/src/main/java/com/xy/service/MsgSysMonitorNoticeService.java

@@ -1,6 +1,14 @@
 package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
+import com.xy.dto.MsgSysMonitorNoticeDto;
+import com.xy.utils.PageBean;
+import com.xy.utils.R;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +21,19 @@ import com.xy.annotate.RestMappingController;
 @RestMappingController("/msg-sys-monitor-notice")
 public interface MsgSysMonitorNoticeService {
 
+    @PostMapping("obj")
+    R<MsgSysMonitorNoticeDto.Vo> obj(@RequestBody MsgSysMonitorNoticeDto.Vo vo);
+
+    @PostMapping("list")
+    R<List<MsgSysMonitorNoticeDto.Vo>> list(@RequestBody MsgSysMonitorNoticeDto.SelectList selectList);
+
+    @PostMapping("page")
+    R<PageBean<MsgSysMonitorNoticeDto.Vo>> page(@RequestBody MsgSysMonitorNoticeDto.Page page);
+
+    @PostMapping("save")
+    R save(@RequestBody @Validated MsgSysMonitorNoticeDto.Save save);
+
+    @PostMapping("update")
+    R update(@RequestBody @Validated MsgSysMonitorNoticeDto.Update update);
+
 }

+ 5 - 0
sys-api/src/main/java/com/xy/service/MsgUserMessageService.java

@@ -19,6 +19,11 @@ import org.springframework.web.bind.annotation.RequestBody;
 @RestMappingController("/msg-user-message")
 public interface MsgUserMessageService {
 
+    @PostMapping("obj")
+    R<MsgUserMessageDto.Vo> obj(@RequestBody MsgUserMessageDto.Vo vo);
+
+    @PostMapping("unRead")
+    R<Long> myMsgUnRead();
 
     @PostMapping("myMsg")
     R<PageBean<MsgUserMessageDto.PageVO>> myMsgPage(@RequestBody MsgUserMessageDto.Page page);