From 23e4a139784cfdd88d3a9c35df1e0071fc3fa0b4 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 04 九月 2025 10:03:44 +0800
Subject: [PATCH] 行政管理、通知、会议、文件共享。工具类-String数组转varcher存Mysql

---
 src/main/java/com/ruoyi/approve/mapper/FileSharingMapper.java                       |    9 +
 src/main/java/com/ruoyi/approve/service/NotificationManagementService.java          |   10 +
 src/main/java/com/ruoyi/approve/mapper/NotificationManagementMapper.java            |   13 +
 src/main/resources/mapper/approve/FileSharingMapper.xml                             |    7 
 src/main/java/com/ruoyi/approve/pojo/OnlineMeeting.java                             |   80 ++++++++++
 src/main/resources/mapper/approve/OnlineMeetingMapper.xml                           |    7 
 src/main/java/com/ruoyi/approve/mapper/OnlineMeetingMapper.java                     |    9 +
 src/main/resources/mapper/approve/NotificationManagementMapper.xml                  |   19 ++
 src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java                  |   48 ++++++
 src/main/java/com/ruoyi/approve/service/impl/NotificationManagementServiceImpl.java |   24 +++
 src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java    |   82 ++++++++++
 src/main/java/com/ruoyi/approve/pojo/FileSharing.java                               |   69 ++++++++
 src/main/java/com/ruoyi/approve/pojo/NotificationManagement.java                    |   88 +++++++++++
 13 files changed, 465 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java b/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java
new file mode 100644
index 0000000..e3ac566
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java
@@ -0,0 +1,82 @@
+package com.ruoyi.approve.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.mapper.FileSharingMapper;
+import com.ruoyi.approve.mapper.OnlineMeetingMapper;
+import com.ruoyi.approve.pojo.FileSharing;
+import com.ruoyi.approve.pojo.NotificationManagement;
+import com.ruoyi.approve.pojo.OnlineMeeting;
+import com.ruoyi.approve.service.NotificationManagementService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/notificationManagement")
+@AllArgsConstructor
+public class NotificationManagementController {
+    @Autowired
+    private NotificationManagementService notificationManagementService ;
+    @Autowired
+    private OnlineMeetingMapper onlineMeetingMapper;
+    @Autowired
+    private FileSharingMapper fileSharingMapper;
+    /**銆�
+     * 鑾峰彇鍒楄〃
+     * @return
+     */
+    @GetMapping("/getList")
+    public AjaxResult getList(@RequestParam(defaultValue = "1") long current,
+                              @RequestParam(defaultValue = "50") long size, NotificationManagement notificationManagement) {
+        Page page = new Page(current, size);
+        return AjaxResult.success(notificationManagementService.listpage(page,notificationManagement));
+    }
+    /**銆�
+     * 澧炴坊
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody NotificationManagement notificationManagement){
+        return AjaxResult.success(notificationManagementService.save(notificationManagement));
+    }
+    /**
+     * 鏇存柊
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody NotificationManagement notificationManagement){
+        return AjaxResult.success(notificationManagementService.updateById(notificationManagement));
+    }
+    /**
+     * 鍒犻櫎
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public AjaxResult delete(@RequestBody List<Long> ids){
+        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        return AjaxResult.success(notificationManagementService.removeByIds(ids));
+    }
+    /**
+     *鏂板浼氳
+     * @param onlineMeeting
+     * @return
+     */
+    @PostMapping("/addOnlineMeeting")
+    public AjaxResult addOnlineMeeting(@RequestBody OnlineMeeting onlineMeeting){
+        return AjaxResult.success(onlineMeetingMapper.insert(onlineMeeting));
+    }
+    /**
+     *鏂板鏂囦欢鍏变韩
+     *
+     */
+    @PostMapping("/addFileSharing")
+    public AjaxResult addFileSharing(@RequestBody FileSharing fileSharing){
+        return AjaxResult.success(fileSharingMapper.insert(fileSharing));
+    }
+}
+
+
diff --git a/src/main/java/com/ruoyi/approve/mapper/FileSharingMapper.java b/src/main/java/com/ruoyi/approve/mapper/FileSharingMapper.java
new file mode 100644
index 0000000..d8f311e
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/mapper/FileSharingMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.approve.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.approve.pojo.FileSharing;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface FileSharingMapper extends BaseMapper<FileSharing> {
+}
diff --git a/src/main/java/com/ruoyi/approve/mapper/NotificationManagementMapper.java b/src/main/java/com/ruoyi/approve/mapper/NotificationManagementMapper.java
new file mode 100644
index 0000000..defede2
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/mapper/NotificationManagementMapper.java
@@ -0,0 +1,13 @@
+package com.ruoyi.approve.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.pojo.NotificationManagement;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface NotificationManagementMapper extends BaseMapper<NotificationManagement> {
+    IPage<NotificationManagement> listpage(Page<NotificationManagement> page,@Param("notificationManagement") NotificationManagement notificationManagement);
+}
diff --git a/src/main/java/com/ruoyi/approve/mapper/OnlineMeetingMapper.java b/src/main/java/com/ruoyi/approve/mapper/OnlineMeetingMapper.java
new file mode 100644
index 0000000..fe7aa38
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/mapper/OnlineMeetingMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.approve.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.approve.pojo.OnlineMeeting;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface OnlineMeetingMapper extends BaseMapper<OnlineMeeting> {
+}
diff --git a/src/main/java/com/ruoyi/approve/pojo/FileSharing.java b/src/main/java/com/ruoyi/approve/pojo/FileSharing.java
new file mode 100644
index 0000000..9c84034
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/pojo/FileSharing.java
@@ -0,0 +1,69 @@
+package com.ruoyi.approve.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.approve.utils.ListToStringTypeHandler;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+@Data
+@TableName("file_sharing")
+public class FileSharing implements Serializable {
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鍏变韩鏍囬
+     */
+    private String title;
+    /**
+     * 涓婁紶鏂囦欢
+     */
+//    private String files;
+    @TableField(value = "files",typeHandler = ListToStringTypeHandler.class)
+    private List<String> files;
+    /**
+     * 鎺ユ敹閮ㄩ棬
+     */
+    @TableField(value = "departments",typeHandler = ListToStringTypeHandler.class)
+    private List<String> departments;
+    /**
+     * 鍏变韩鎻忚堪
+     */
+    private String description;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鏇存柊浜�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/approve/pojo/NotificationManagement.java b/src/main/java/com/ruoyi/approve/pojo/NotificationManagement.java
new file mode 100644
index 0000000..cb91626
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/pojo/NotificationManagement.java
@@ -0,0 +1,88 @@
+package com.ruoyi.approve.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.approve.utils.ListToStringTypeHandler;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@TableName("notification_management")
+public class NotificationManagement implements Serializable {
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 閫氱煡鏍囬
+     */
+    private String title;
+    /**
+     * 閫氱煡绫诲瀷
+     */
+    private String type;
+    /**
+     * 浼樺厛绾�
+     */
+    private String priority;
+    /**
+     * 閫氱煡鐘舵��
+     */
+    private String status;
+    /**
+     * 鏈夋晥鏈熸椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate expireDate;
+    /**
+     * 鎺ユ敹閮ㄩ棬
+     */
+    @TableField(value = "departments",typeHandler = ListToStringTypeHandler.class)
+    private List<String> departments;
+    /**
+     * 鍚屾鏂瑰紡
+     */
+    @TableField(value = "sync_methods",typeHandler = ListToStringTypeHandler.class)
+    private List<String> syncMethods;
+    /**
+     * 閫氱煡鍐呭
+     */
+    private String content;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鏇存柊浜�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/approve/pojo/OnlineMeeting.java b/src/main/java/com/ruoyi/approve/pojo/OnlineMeeting.java
new file mode 100644
index 0000000..863d348
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/pojo/OnlineMeeting.java
@@ -0,0 +1,80 @@
+package com.ruoyi.approve.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.approve.utils.ListToStringTypeHandler;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@TableName("online_meeting")
+public class OnlineMeeting implements Serializable {
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 浼氳鏍囬
+     */
+    private String title;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime startTime;
+    /**
+     * 浼氳鏃堕暱
+     */
+    private Integer duration;
+    /**
+     * 浼氳骞冲彴
+     */
+    private String platform;
+    /**
+     * 浼氳鎻忚堪
+     */
+    private String description;
+    /**
+     * 鍙備細浜哄憳
+     */
+    @TableField(value = "participants",typeHandler = ListToStringTypeHandler.class)
+    private List<String> participants;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鏇存柊浜�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/approve/service/NotificationManagementService.java b/src/main/java/com/ruoyi/approve/service/NotificationManagementService.java
new file mode 100644
index 0000000..8d2fade
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/NotificationManagementService.java
@@ -0,0 +1,10 @@
+package com.ruoyi.approve.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.approve.pojo.NotificationManagement;
+
+public interface NotificationManagementService extends IService<NotificationManagement> {
+    IPage listpage(Page page, NotificationManagement notificationManagement);
+}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/NotificationManagementServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/NotificationManagementServiceImpl.java
new file mode 100644
index 0000000..fa13fa9
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/impl/NotificationManagementServiceImpl.java
@@ -0,0 +1,24 @@
+package com.ruoyi.approve.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.approve.mapper.NotificationManagementMapper;
+import com.ruoyi.approve.pojo.NotificationManagement;
+import com.ruoyi.approve.service.NotificationManagementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class NotificationManagementServiceImpl extends ServiceImpl<NotificationManagementMapper, NotificationManagement> implements NotificationManagementService {
+    @Autowired
+    private NotificationManagementMapper notificationManagementMapper;
+
+    @Override
+    public IPage<NotificationManagement> listpage(Page page, NotificationManagement notificationManagement) {
+//        // 1. 鍒涘缓 Page 瀹炰緥锛圛Page 瀹炵幇绫伙級锛屾寚瀹氶〉鐮佸拰姣忛〉鏉℃暟
+//        IPage<NotificationManagement> page1 = new Page<>(page.getCurrent(), page.getSize());
+        return notificationManagementMapper.listpage(page,notificationManagement);
+    }
+}
diff --git a/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java b/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java
new file mode 100644
index 0000000..5be97b7
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java
@@ -0,0 +1,48 @@
+package com.ruoyi.approve.utils;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+@MappedTypes(List.class)
+@MappedJdbcTypes(JdbcType.VARCHAR)
+public class ListToStringTypeHandler extends BaseTypeHandler<List<String>> {
+    private static final String SEPARATOR = ",";
+
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
+        if (parameter == null) {
+            ps.setString(i, null);
+        } else {
+            ps.setString(i, String.join(SEPARATOR, parameter));
+        }
+    }
+    @Override
+    public List<String> getNullableResult(ResultSet rs, String columnName) throws SQLException {
+        String value = rs.getString(columnName);
+        return value != null && !value.isEmpty() ? Arrays.asList(value.split(SEPARATOR)) : new ArrayList<>();
+    }
+
+    @Override
+    public List<String> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+        String value = rs.getString(columnIndex);
+        return value != null && !value.isEmpty() ? Arrays.asList(value.split(SEPARATOR)) : new ArrayList<>();
+    }
+
+    @Override
+    public List<String> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+        String value = cs.getString(columnIndex);
+        return value != null && !value.isEmpty() ? Arrays.asList(value.split(SEPARATOR)) : new ArrayList<>();
+    }
+
+}
+
diff --git a/src/main/resources/mapper/approve/FileSharingMapper.xml b/src/main/resources/mapper/approve/FileSharingMapper.xml
new file mode 100644
index 0000000..cd62025
--- /dev/null
+++ b/src/main/resources/mapper/approve/FileSharingMapper.xml
@@ -0,0 +1,7 @@
+<?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.ruoyi.approve.mapper.FileSharingMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/approve/NotificationManagementMapper.xml b/src/main/resources/mapper/approve/NotificationManagementMapper.xml
new file mode 100644
index 0000000..a2e714f
--- /dev/null
+++ b/src/main/resources/mapper/approve/NotificationManagementMapper.xml
@@ -0,0 +1,19 @@
+<?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.ruoyi.approve.mapper.NotificationManagementMapper">
+
+    <select id="listpage" resultType="com.ruoyi.approve.pojo.NotificationManagement">
+        select * from notification_management
+        <where>
+            1=1
+            <if test="notificationManagement.title != null and notificationManagement.title != ''">
+                and title like concat('%',#{notificationManagement.title},'%')
+            </if>
+            <if test="notificationManagement.type != null">
+                and type = #{notificationManagement.type}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/approve/OnlineMeetingMapper.xml b/src/main/resources/mapper/approve/OnlineMeetingMapper.xml
new file mode 100644
index 0000000..5ce6d5d
--- /dev/null
+++ b/src/main/resources/mapper/approve/OnlineMeetingMapper.xml
@@ -0,0 +1,7 @@
+<?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.ruoyi.approve.mapper.OnlineMeetingMapper">
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3