From 74930dab46211eee365afde93ff85cc74e69aefe Mon Sep 17 00:00:00 2001
From: gaoxq <376340421@qq.com>
Date: Sun, 16 Nov 2025 20:46:32 +0800
Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6API?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BizBaseNoticeViewController.java | 18 +++++
.../capi/biz/domain/BizBaseNoticeView.java | 48 +++++++++++++
.../biz/mapper/BizBaseNoticeViewMapper.java | 16 +++++
.../biz/service/BizBaseNoticeViewService.java | 16 +++++
.../impl/BizBaseNoticeViewServiceImpl.java | 20 ++++++
.../com/mini/capi/biz/viewController.java | 6 ++
src/main/java/com/mini/capi/mybatis/demo.java | 2 +-
.../mapper/BizBaseNoticeViewMapper.xml | 18 +++++
src/main/resources/templates/index.html | 72 +++++++++++++++----
9 files changed, 200 insertions(+), 16 deletions(-)
create mode 100644 src/main/java/com/mini/capi/biz/controller/BizBaseNoticeViewController.java
create mode 100644 src/main/java/com/mini/capi/biz/domain/BizBaseNoticeView.java
create mode 100644 src/main/java/com/mini/capi/biz/mapper/BizBaseNoticeViewMapper.java
create mode 100644 src/main/java/com/mini/capi/biz/service/BizBaseNoticeViewService.java
create mode 100644 src/main/java/com/mini/capi/biz/service/impl/BizBaseNoticeViewServiceImpl.java
create mode 100644 src/main/resources/mapper/BizBaseNoticeViewMapper.xml
diff --git a/src/main/java/com/mini/capi/biz/controller/BizBaseNoticeViewController.java b/src/main/java/com/mini/capi/biz/controller/BizBaseNoticeViewController.java
new file mode 100644
index 0000000..ad238ee
--- /dev/null
+++ b/src/main/java/com/mini/capi/biz/controller/BizBaseNoticeViewController.java
@@ -0,0 +1,18 @@
+package com.mini.capi.biz.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * VIEW 前端控制器
+ *
+ *
+ * @author gaoxq
+ * @since 2025-11-16
+ */
+@RestController
+@RequestMapping("/biz/bizBaseNoticeView")
+public class BizBaseNoticeViewController {
+
+}
diff --git a/src/main/java/com/mini/capi/biz/domain/BizBaseNoticeView.java b/src/main/java/com/mini/capi/biz/domain/BizBaseNoticeView.java
new file mode 100644
index 0000000..a061682
--- /dev/null
+++ b/src/main/java/com/mini/capi/biz/domain/BizBaseNoticeView.java
@@ -0,0 +1,48 @@
+package com.mini.capi.biz.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * VIEW
+ *
+ *
+ * @author gaoxq
+ * @since 2025-11-16
+ */
+@Getter
+@Setter
+@TableName("biz_base_notice_view")
+public class BizBaseNoticeView implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private LocalDateTime createTime;
+
+ /**
+ * 标题
+ */
+ @TableField("notice_title")
+ private String noticeTitle;
+
+ /**
+ * 正文
+ */
+ @TableField("notice_text")
+ private String noticeText;
+
+ /**
+ * 过期时间
+ */
+ @TableField("expiration_time")
+ private LocalDateTime expirationTime;
+}
diff --git a/src/main/java/com/mini/capi/biz/mapper/BizBaseNoticeViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/BizBaseNoticeViewMapper.java
new file mode 100644
index 0000000..d138455
--- /dev/null
+++ b/src/main/java/com/mini/capi/biz/mapper/BizBaseNoticeViewMapper.java
@@ -0,0 +1,16 @@
+package com.mini.capi.biz.mapper;
+
+import com.mini.capi.biz.domain.BizBaseNoticeView;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * VIEW Mapper 接口
+ *
+ *
+ * @author gaoxq
+ * @since 2025-11-16
+ */
+public interface BizBaseNoticeViewMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/mini/capi/biz/service/BizBaseNoticeViewService.java b/src/main/java/com/mini/capi/biz/service/BizBaseNoticeViewService.java
new file mode 100644
index 0000000..8c732f5
--- /dev/null
+++ b/src/main/java/com/mini/capi/biz/service/BizBaseNoticeViewService.java
@@ -0,0 +1,16 @@
+package com.mini.capi.biz.service;
+
+import com.mini.capi.biz.domain.BizBaseNoticeView;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * VIEW 服务类
+ *
+ *
+ * @author gaoxq
+ * @since 2025-11-16
+ */
+public interface BizBaseNoticeViewService extends IService {
+
+}
diff --git a/src/main/java/com/mini/capi/biz/service/impl/BizBaseNoticeViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/BizBaseNoticeViewServiceImpl.java
new file mode 100644
index 0000000..5387a13
--- /dev/null
+++ b/src/main/java/com/mini/capi/biz/service/impl/BizBaseNoticeViewServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mini.capi.biz.service.impl;
+
+import com.mini.capi.biz.domain.BizBaseNoticeView;
+import com.mini.capi.biz.mapper.BizBaseNoticeViewMapper;
+import com.mini.capi.biz.service.BizBaseNoticeViewService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * VIEW 服务实现类
+ *
+ *
+ * @author gaoxq
+ * @since 2025-11-16
+ */
+@Service
+public class BizBaseNoticeViewServiceImpl extends ServiceImpl implements BizBaseNoticeViewService {
+
+}
diff --git a/src/main/java/com/mini/capi/biz/viewController.java b/src/main/java/com/mini/capi/biz/viewController.java
index 53051f0..cee3b69 100644
--- a/src/main/java/com/mini/capi/biz/viewController.java
+++ b/src/main/java/com/mini/capi/biz/viewController.java
@@ -59,6 +59,9 @@ public class viewController {
@Resource
private BizTodoTaskViewService bizTodoTaskViewService;
+ @Resource
+ private BizBaseNoticeViewService bizBaseNoticeViewService;
+
@GetMapping("/login")
public String showLoginPage() {
@@ -82,10 +85,13 @@ public class viewController {
taskViewQueryWrapper.notIn("ustatus", "CPT");
List todoViews = bizTodoTaskViewService.list(taskViewQueryWrapper);
+ List noticeViews = bizBaseNoticeViewService.list();
+
model.addAttribute("hosts", hosts);
model.addAttribute("storages", storages);
model.addAttribute("uname", user.getUname());
model.addAttribute("todoViews", todoViews);
+ model.addAttribute("noticeViews", noticeViews);
model.addAttribute("times", vDate.getRunTimes(runInfo.getProcessInfo().getUptime()));
return "index";
}
diff --git a/src/main/java/com/mini/capi/mybatis/demo.java b/src/main/java/com/mini/capi/mybatis/demo.java
index 28e2f7c..6303f98 100644
--- a/src/main/java/com/mini/capi/mybatis/demo.java
+++ b/src/main/java/com/mini/capi/mybatis/demo.java
@@ -29,7 +29,7 @@ public class demo {
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper"));
})
.strategyConfig(builder -> {
- builder.addInclude("biz_sub_task")
+ builder.addInclude("biz_base_notice_view")
.addTablePrefix("biz_,erp_")
.entityBuilder()
.enableLombok()
diff --git a/src/main/resources/mapper/BizBaseNoticeViewMapper.xml b/src/main/resources/mapper/BizBaseNoticeViewMapper.xml
new file mode 100644
index 0000000..dcc7170
--- /dev/null
+++ b/src/main/resources/mapper/BizBaseNoticeViewMapper.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create_time, notice_title, notice_text, expiration_time
+
+
+
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index 18432f6..5f30a30 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -257,28 +257,46 @@
-
-
-
+
+
+
-
数据库备份成功
- 今天 08:30
+
+ 今天 08:30
-
- 主数据库自动备份已完成,备份文件大小:2.4GB,存储路径:/backup/db/20251115/
-
-
-
-
用户登录提醒
-
昨天 16:45
+
+
+
-
您的账号在新设备(Windows 10, Chrome
- 120)登录,IP地址:113.25.XX.XX,如非本人操作,请及时修改密码。
+
+
+
+
+
+
+
@@ -691,6 +709,30 @@
});
});
+ // 显示通知完整内容(点击触发)
+ function showNoticeDetail(noticeElement) {
+ // 从点击的元素中获取信息(通过类名精准查找,避免冲突)
+ const noticeTitle = noticeElement.querySelector('h3').textContent;
+ const noticeTime = noticeElement.querySelector('.text-xs.text-gray-500').textContent;
+ const fullContent = noticeElement.querySelector('.notice-full-content').innerHTML; // 从隐藏容器获取完整内容
+
+ // 填充弹窗内容
+ document.getElementById('popupNoticeTitle').textContent = noticeTitle;
+ document.getElementById('popupNoticeTime').textContent = noticeTime;
+ document.getElementById('popupNoticeContent').innerHTML = fullContent;
+
+ // 显示弹窗
+ document.getElementById('noticeDetailPopup').classList.remove('hidden');
+ document.body.style.overflow = 'hidden'; // 禁止背景滚动
+ }
+
+ // 隐藏通知完整内容
+ function hideNoticeDetail() {
+ const popup = document.getElementById('noticeDetailPopup');
+ popup.classList.add('hidden');
+ document.body.style.overflow = ''; // 恢复背景滚动
+ }
+
// 确认退出(替换alert为弹窗)
confirmLogout.addEventListener('click', () => {
fetch('logout', {method: 'POST'})