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