瀏覽代碼

[Feature] 飘窗V1.0

AA 10 月之前
父節點
當前提交
f3b2b040a2

+ 10 - 0
db/db240818-addFloatingWindow.sql

@@ -0,0 +1,10 @@
+-- portal.tip_info definition
+
+CREATE TABLE `tip_info`
+(
+    `id`          bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+    `content`     text COMMENT '内容',
+    `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    PRIMARY KEY (`id`) USING BTREE,
+    KEY           `idx_tip_info_create_time` (`create_time`) USING BTREE
+) COMMENT='飘窗信息';

+ 31 - 0
src/main/java/com/dragon/tj/portal/controller/TipController.java

@@ -0,0 +1,31 @@
+package com.dragon.tj.portal.controller;
+
+import com.dragon.tj.portal.common.base.R;
+import com.dragon.tj.portal.entity.TipInfo;
+import com.dragon.tj.portal.service.TipService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 飘窗信息
+ */
+@RestController
+@RequestMapping("/tip")
+public class TipController {
+
+    private final TipService tipService;
+
+    public TipController(TipService tipService) {
+        this.tipService = tipService;
+    }
+
+    @GetMapping("/getLatestTip")
+    public R<String> getLatestTip() {
+        TipInfo latestTip = tipService.getLatestTip();
+        if (latestTip != null) {
+            return R.ok(latestTip.getContent());
+        }
+        return R.ok();
+    }
+}

+ 1 - 2
src/main/java/com/dragon/tj/portal/entity/CommentDetailInfo.java

@@ -19,8 +19,7 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @TableName("comment_detail_info")
 public class CommentDetailInfo implements Serializable {
-    private static final long serialVersionUID = 1830610337148759007L;
-
+    private static final long serialVersionUID = -5715299330609879023L;
     /**
      * 主键
      */

+ 40 - 0
src/main/java/com/dragon/tj/portal/entity/TipInfo.java

@@ -0,0 +1,40 @@
+package com.dragon.tj.portal.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 在线留言信息
+ */
+@Getter
+@Setter
+@Accessors(chain = true)
+@TableName("tip_info")
+public class TipInfo implements Serializable {
+    private static final long serialVersionUID = -5051241655665408858L;
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+}

+ 14 - 0
src/main/java/com/dragon/tj/portal/mapper/TipInfoMapper.java

@@ -0,0 +1,14 @@
+package com.dragon.tj.portal.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dragon.tj.portal.entity.CommentInfo;
+import com.dragon.tj.portal.entity.TipInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 应用程序
+ */
+@Mapper
+public interface TipInfoMapper extends BaseMapper<TipInfo> {
+
+}

+ 7 - 0
src/main/java/com/dragon/tj/portal/service/TipService.java

@@ -0,0 +1,7 @@
+package com.dragon.tj.portal.service;
+
+import com.dragon.tj.portal.entity.TipInfo;
+
+public interface TipService {
+    TipInfo getLatestTip();
+}

+ 27 - 0
src/main/java/com/dragon/tj/portal/service/impl/TipServiceImpl.java

@@ -0,0 +1,27 @@
+package com.dragon.tj.portal.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dragon.tj.portal.entity.TipInfo;
+import com.dragon.tj.portal.mapper.TipInfoMapper;
+import com.dragon.tj.portal.service.TipService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TipServiceImpl implements TipService {
+
+    private final TipInfoMapper tipInfoMapper;
+
+    public TipServiceImpl(TipInfoMapper tipInfoMapper) {
+        this.tipInfoMapper = tipInfoMapper;
+    }
+
+    @Override
+    public TipInfo getLatestTip() {
+        LambdaQueryWrapper<TipInfo> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.orderByDesc(TipInfo::getCreateTime)
+                .last("limit 1");
+        return tipInfoMapper.selectOne(queryWrapper);
+    }
+}