谭斌 1 rok pred
rodič
commit
18b52f1f88

+ 19 - 0
sys-api-feign/src/main/java/com/xy/feign/MsgSysMonitorNoticeFeign.java

@@ -0,0 +1,19 @@
+package com.xy.feign;
+
+import com.xy.FeignInterceptor;
+import com.xy.consts.ServiceConsts;
+import com.xy.service.MsgSysMonitorNoticeService;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * <p>
+ * 系统消息 feign
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-03-13
+ */
+@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
+public interface MsgSysMonitorNoticeFeign extends MsgSysMonitorNoticeService {
+
+}

+ 19 - 0
sys-api-feign/src/main/java/com/xy/feign/MsgUserMessageFeign.java

@@ -0,0 +1,19 @@
+package com.xy.feign;
+
+import com.xy.FeignInterceptor;
+import com.xy.consts.ServiceConsts;
+import com.xy.service.MsgUserMessageService;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * <p>
+ * feign
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-02-24
+ */
+@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
+public interface MsgUserMessageFeign extends MsgUserMessageService {
+
+}

+ 74 - 0
sys-api-service/src/main/java/com/xy/entity/MsgSysMonitorNotice.java

@@ -0,0 +1,74 @@
+package com.xy.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 系统消息
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-03-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "MsgSysMonitorNotice对象", description = "系统消息")
+public class MsgSysMonitorNotice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "msg_id", type = IdType.AUTO)
+    private Integer msgId;
+
+    @ApiModelProperty(value = "消息类型")
+    private Integer msgType;
+
+    @ApiModelProperty(value = "消息标题")
+    private String title;
+
+    @ApiModelProperty(value = "消息内容")
+    private String content;
+
+    @ApiModelProperty(value = "消息优先级")
+    private Integer priority;
+
+    @ApiModelProperty(value = "发送目标")
+    private String sendTargets;
+
+    @ApiModelProperty(value = "发送类型")
+    private String channelType;
+
+    @ApiModelProperty(value = "发布状态")
+    private Integer pubState;
+
+    @ApiModelProperty(value = "发布时间")
+    private LocalDateTime pubTime;
+
+    @ApiModelProperty(value = "发布人")
+    private Integer pubUserId;
+
+    @ApiModelProperty(value = "失败时间")
+    private LocalDateTime invalidationTime;
+
+    @ApiModelProperty(value = "撤销时间")
+    private LocalDateTime revokeTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+
+}

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

@@ -0,0 +1,59 @@
+package com.xy.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-02-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "MsgUserMessage对象", description = "")
+public class MsgUserMessage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "消息id")
+    private Long msgId;
+
+    @ApiModelProperty(value = "状态")
+    private String readState;
+
+    @ApiModelProperty(value = "消息类型")
+    private String msgType;
+
+    /**
+     * 1紧急 2重要 3一般 (默认)
+     */
+    @ApiModelProperty("优先级")
+    private Integer priority;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+
+}

+ 16 - 0
sys-api-service/src/main/java/com/xy/mapper/MsgSysMonitorNoticeMapper.java

@@ -0,0 +1,16 @@
+package com.xy.mapper;
+
+import com.xy.entity.MsgSysMonitorNotice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 系统消息 Mapper 接口
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-03-13
+ */
+public interface MsgSysMonitorNoticeMapper extends BaseMapper<MsgSysMonitorNotice> {
+
+}

+ 16 - 0
sys-api-service/src/main/java/com/xy/mapper/MsgUserMessageMapper.java

@@ -0,0 +1,16 @@
+package com.xy.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xy.entity.MsgUserMessage;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-02-24
+ */
+public interface MsgUserMessageMapper extends BaseMapper<MsgUserMessage> {
+
+}

+ 22 - 0
sys-api-service/src/main/java/com/xy/mapper/mapper/MsgSysMonitorNoticeMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xy.mapper.MsgSysMonitorNoticeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.xy.entity.MsgSysMonitorNotice">
+        <id column="msg_id" property="msgId" />
+        <result column="msg_type" property="msgType" />
+        <result column="title" property="title" />
+        <result column="content" property="content" />
+        <result column="priority" property="priority" />
+        <result column="send_targets" property="sendTargets" />
+        <result column="channel_type" property="channelType" />
+        <result column="pub_state" property="pubState" />
+        <result column="pub_time" property="pubTime" />
+        <result column="pub_user_id" property="pubUserId" />
+        <result column="invalidation_time" property="invalidationTime" />
+        <result column="revoke_time" property="revokeTime" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>

+ 14 - 0
sys-api-service/src/main/java/com/xy/mapper/mapper/MsgUserMessageMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xy.mapper.MsgUserMessageMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.xy.entity.MsgUserMessage">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="msg_id" property="msgId" />
+        <result column="read_state" property="readState" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>

+ 84 - 0
sys-api-service/src/main/java/com/xy/service/MsgSysMonitorNoticeServiceImpl.java

@@ -0,0 +1,84 @@
+package com.xy.service;
+
+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.entity.MsgSysMonitorNotice;
+import com.xy.mapper.MsgSysMonitorNoticeMapper;
+import com.xy.utils.Emptys;
+import com.xy.utils.MybatisPlusQuery;
+import com.xy.utils.PageBean;
+import com.xy.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+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;
+
+import static com.xy.utils.Beans.copy;
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
+
+
+/**
+ * <p>
+ * 系统消息 服务实现类
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-03-13
+ */
+@Service
+@AllArgsConstructor
+@Api(tags = "系统消息")
+public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl<MsgSysMonitorNoticeMapper, MsgSysMonitorNotice> implements MsgSysMonitorNoticeService {
+
+    @PostMapping("obj")
+    @ApiOperation("对象查询")
+    public R<MsgSysMonitorNoticeDto.Vo> obj(@RequestBody MsgSysMonitorNoticeDto.Vo vo) {
+        MsgSysMonitorNoticeDto.SelectList selectList = copy(MsgSysMonitorNoticeDto.SelectList.class, vo);
+        List<MsgSysMonitorNoticeDto.Vo> list = list(selectList).getData();
+        if (Emptys.check(list)) {
+            return R.ok(list.get(0));
+        }
+        return R.ok();
+    }
+
+    @PostMapping("list")
+    @ApiOperation("集合查询")
+    public R<List<MsgSysMonitorNoticeDto.Vo>> list(@RequestBody MsgSysMonitorNoticeDto.SelectList selectList) {
+        LambdaQueryWrapper<MsgSysMonitorNotice> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MsgSysMonitorNotice.class).build();
+        List<MsgSysMonitorNotice> list = list(lambdaQueryWrapper);
+        return R.ok(copy(MsgSysMonitorNoticeDto.Vo.class, list));
+    }
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    public R<PageBean<MsgSysMonitorNoticeDto.Vo>> page(@RequestBody MsgSysMonitorNoticeDto.Page page) {
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<MsgSysMonitorNotice> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MsgSysMonitorNotice.class).build();
+        IPage<MsgSysMonitorNotice> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(MsgSysMonitorNoticeDto.Vo.class, iPage));
+    }
+
+    @PostMapping("save")
+    @ApiOperation("添加")
+    public R save(@RequestBody @Validated MsgSysMonitorNoticeDto.Save save) {
+        MsgSysMonitorNotice saveInfo = copy(MsgSysMonitorNotice.class, save);
+        save(saveInfo);
+        return R.ok();
+    }
+
+    @PostMapping("update")
+    @ApiOperation("修改")
+    public R update(@RequestBody @Validated MsgSysMonitorNoticeDto.Update update) {
+        MsgSysMonitorNotice updateInfo = copy(MsgSysMonitorNotice.class, update);
+        updateById(updateInfo);
+        return R.ok();
+    }
+}

+ 63 - 0
sys-api-service/src/main/java/com/xy/service/MsgUserMessageServiceImpl.java

@@ -0,0 +1,63 @@
+package com.xy.service;
+
+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.MsgUserMessageDto;
+import com.xy.entity.MsgUserMessage;
+import com.xy.mapper.MsgUserMessageMapper;
+import com.xy.utils.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
+
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-02-24
+ */
+@Service
+@AllArgsConstructor
+@Api(tags = "用户消息")
+public class MsgUserMessageServiceImpl extends ServiceImpl<MsgUserMessageMapper, MsgUserMessage> implements MsgUserMessageService {
+
+
+    @ApiOperation("我的消息")
+    @Override
+    public R<PageBean<MsgUserMessageDto.PageVO>> myMsgPage(MsgUserMessageDto.Page page) {
+        page.setUserId(AuthorizeUtils.getLoginId(Long.class));
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<MsgUserMessage> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MsgUserMessage.class)
+                .ge(MsgUserMessage::getCreateTime, page.getBeginCreateTime())
+                .le(MsgUserMessage::getCreateTime, page.getEndCreateTime())
+                .build();
+        IPage<MsgUserMessage> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(MsgUserMessageDto.PageVO.class, iPage));
+    }
+
+    @ApiOperation("新增我的消息")
+    @Override
+    public R save(@RequestBody @Validated MsgUserMessageDto.Save save) {
+        MsgUserMessage saveInfo = Beans.copy(MsgUserMessage.class, save);
+        save(saveInfo);
+        return R.ok();
+    }
+
+    @ApiOperation("更新")
+    @Override
+    public R update(@RequestBody @Validated MsgUserMessageDto.Update update) {
+        MsgUserMessage updateInfo = Beans.copy(MsgUserMessage.class, update);
+        updateById(updateInfo);
+        return R.ok();
+    }
+}

+ 99 - 0
sys-api/src/main/java/com/xy/dto/MsgSysMonitorNoticeDto.java

@@ -0,0 +1,99 @@
+package com.xy.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xy.utils.PageBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 系统消息
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-03-13
+ */
+public class MsgSysMonitorNoticeDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class SelectList extends Vo {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Page extends Vo {
+
+        @ApiModelProperty(value = "分页对象", required = true)
+        private PageBean page;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Save extends Vo {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Update extends Vo {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty(value = "id")
+        private Integer msgId;
+
+        @ApiModelProperty(value = "消息类型")
+        private Integer msgType;
+
+        @ApiModelProperty(value = "消息标题")
+        private String title;
+
+        @ApiModelProperty(value = "消息内容")
+        private String content;
+
+        @ApiModelProperty(value = "消息优先级")
+        private Integer priority;
+
+        @ApiModelProperty(value = "发送目标")
+        private String sendTargets;
+
+        @ApiModelProperty(value = "发送类型")
+        private String channelType;
+
+        @ApiModelProperty(value = "发布状态")
+        private Integer pubState;
+
+        @ApiModelProperty(value = "发布时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime pubTime;
+
+        @ApiModelProperty(value = "发布人")
+        private Integer pubUserId;
+
+        @ApiModelProperty(value = "失败时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime invalidationTime;
+
+        @ApiModelProperty(value = "撤销时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime revokeTime;
+
+        @ApiModelProperty(value = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+
+    }
+
+}

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

@@ -0,0 +1,153 @@
+package com.xy.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xy.utils.PageBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-02-24
+ */
+public class MsgUserMessageDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class SelectList extends Vo {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Page extends Vo {
+
+        @ApiModelProperty(value = "分页对象", required = true)
+        private PageBean page;
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "创建时间-起")
+        private LocalDate beginCreateTime;
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "创建时间-始")
+        private LocalDate endCreateTime;
+
+        public LocalDateTime getBeginCreateTime() {
+            return beginCreateTime == null ? null : beginCreateTime.atTime(0, 0, 0);
+        }
+
+        public LocalDateTime getEndCreateTime() {
+            return endCreateTime == null ? null : endCreateTime.atTime(23, 59, 59);
+        }
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Save {
+        @ApiModelProperty(value = "用户id")
+        private Long userId;
+
+        @ApiModelProperty(value = "消息id")
+        private Long msgId;
+
+        @ApiModelProperty(value = "状态")
+        private String readState;
+
+
+        @ApiModelProperty(value = "消息类型")
+        private String msgType;
+
+        /**
+         * 1紧急 2重要 3一般 (默认)
+         */
+        @ApiModelProperty("优先级")
+        private Integer priority;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Update extends Vo {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class PageVO {
+
+
+        @ApiModelProperty(value = "消息类型")
+        private String msgType;
+
+        @ApiModelProperty(value = "消息类型")
+        private String title;
+
+        @ApiModelProperty(value = "内容")
+        private String content;
+
+        @ApiModelProperty("优先级 1紧急 2重要 3一般")
+        private Integer priority;
+
+        @ApiModelProperty(value = "状态(已读、未读)")
+        private String readState;
+
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "用户id")
+        private Long userId;
+
+
+        @ApiModelProperty(value = "消息id")
+        private Long msgId;
+
+
+        @ApiModelProperty(value = "发送时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "用户id")
+        private Long userId;
+
+        @ApiModelProperty(value = "消息id")
+        private Long msgId;
+
+        @ApiModelProperty(value = "状态")
+        private String readState;
+
+        @ApiModelProperty(value = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty(value = "消息类型")
+        private String msgType;
+
+        /**
+         * 1紧急 2重要 3一般 (默认)
+         */
+        @ApiModelProperty("优先级")
+        private Integer priority;
+
+
+    }
+
+}

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

@@ -0,0 +1,16 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+
+/**
+ * <p>
+ * 系统消息 服务类
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-03-13
+ */
+@RestMappingController("/msg-sys-monitor-notice")
+public interface MsgSysMonitorNoticeService {
+
+}

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

@@ -0,0 +1,33 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+import com.xy.dto.MsgUserMessageDto;
+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;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2023-02-24
+ */
+@RestMappingController("/msg-user-message")
+public interface MsgUserMessageService {
+
+
+    @PostMapping("myMsg")
+    R<PageBean<MsgUserMessageDto.PageVO>> myMsgPage(@RequestBody MsgUserMessageDto.Page page);
+
+    @PostMapping("save")
+    R save(@RequestBody @Validated MsgUserMessageDto.Save save);
+
+
+    @PostMapping("update")
+    R update(@RequestBody @Validated MsgUserMessageDto.Update update);
+
+}