From e2ba762da8b42698d9477f7af93a2d3f8c7be373 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 05 八月 2023 16:44:23 +0800
Subject: [PATCH] 增加存储模块,将minio工具类迁移到存储包 增加minio的通知功能,通过mqtt将通知入库 修复配置文件自定义字段标黄的问题
---
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Records.java | 31 +
ard-work/src/main/java/com/ruoyi/storage/minio/service/IStorageMinioEventService.java | 68 +++
ard-work/src/main/java/com/ruoyi/storage/minio/controller/StorageMinioEventController.java | 104 +++++
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mObject.java | 20 +
ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java | 136 +++++++
ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java | 59 +-
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Bucket.java | 18 +
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Owneridentity.java | 17
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/JsonsRootBean.java | 21 +
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Usermetadata.java | 14
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 2
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java | 2
ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java | 13
ard-work/src/main/java/com/ruoyi/storage/minio/mapper/StorageMinioEventMapper.java | 61 +++
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/ResponseElements.java | 22 +
ard-work/src/main/resources/mapper/minio/StorageMinioEventMapper.xml | 95 +++++
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 2
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java | 10
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/userIdentity.java | 14
ard-work/src/main/java/com/ruoyi/storage/minio/domain/StorageMinioEvent.java | 167 +++++++++
ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json | 108 ++++++
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mSource.java | 18 +
ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java | 4
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 1
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/S3.java | 21 +
ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Requestparameters.java | 21 +
27 files changed, 1,003 insertions(+), 48 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
index 69a7747..03b7a05 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
@@ -1,28 +1,19 @@
package com.ruoyi.app.position.controller;
-import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.app.position.domain.ArdAppPosition;
import com.ruoyi.app.position.service.IArdAppPositionService;
-import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.core.redis.RedisCache;
-import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
+import com.ruoyi.storage.minio.utils.MinioUtils;
import com.ruoyi.rongcloud.service.RongCloudService;
-import com.ruoyi.system.domain.SysUserOnline;
-import com.ruoyi.system.service.ISysRoleService;
-import com.ruoyi.system.service.ISysUserOnlineService;
import com.ruoyi.system.service.ISysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@@ -210,7 +201,7 @@
@ApiOperation("涓婁紶鏂囦欢")
public AjaxResult uploadFile(MultipartFile file,String type)
{
- String url = MinioUtils.putObjectAndGetUrl("app",type, file);
+ String url = MinioUtils.putObjectAndGetUrl("app1",type, file);
return AjaxResult.success(url);
}
}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
index 82a6c73..cfc76bf 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -11,7 +11,7 @@
import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.device.hiksdk.util.hikSdkUtil.LoginResultCallBack;
-import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
+import com.ruoyi.storage.minio.utils.MinioUtils;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Pointer;
diff --git a/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java b/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java
index fd62a92..56c08fb 100644
--- a/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java
+++ b/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java
@@ -2,14 +2,10 @@
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
-import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
import com.ruoyi.rongcloud.service.RongCloudService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.List;
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/controller/StorageMinioEventController.java b/ard-work/src/main/java/com/ruoyi/storage/minio/controller/StorageMinioEventController.java
new file mode 100644
index 0000000..a6ea2a4
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/controller/StorageMinioEventController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.storage.minio.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.storage.minio.domain.StorageMinioEvent;
+import com.ruoyi.storage.minio.service.IStorageMinioEventService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 瀛樺偍浜嬩欢Controller
+ *
+ * @author ard
+ * @date 2023-08-05
+ */
+@RestController
+@RequestMapping("/minio/event")
+public class StorageMinioEventController extends BaseController
+{
+ @Autowired
+ private IStorageMinioEventService storageMinioEventService;
+
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢鍒楄〃
+ */
+ @PreAuthorize("@ss.hasPermi('minio:event:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(StorageMinioEvent storageMinioEvent)
+ {
+ startPage();
+ List<StorageMinioEvent> list = storageMinioEventService.selectStorageMinioEventList(storageMinioEvent);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭瀛樺偍浜嬩欢鍒楄〃
+ */
+ @PreAuthorize("@ss.hasPermi('minio:event:export')")
+ @Log(title = "瀛樺偍浜嬩欢", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, StorageMinioEvent storageMinioEvent)
+ {
+ List<StorageMinioEvent> list = storageMinioEventService.selectStorageMinioEventList(storageMinioEvent);
+ ExcelUtil<StorageMinioEvent> util = new ExcelUtil<StorageMinioEvent>(StorageMinioEvent.class);
+ util.exportExcel(response, list, "瀛樺偍浜嬩欢鏁版嵁");
+ }
+
+ /**
+ * 鑾峰彇瀛樺偍浜嬩欢璇︾粏淇℃伅
+ */
+ @PreAuthorize("@ss.hasPermi('minio:event:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") String id)
+ {
+ return success(storageMinioEventService.selectStorageMinioEventById(id));
+ }
+
+ /**
+ * 鏂板瀛樺偍浜嬩欢
+ */
+ @PreAuthorize("@ss.hasPermi('minio:event:add')")
+ @Log(title = "瀛樺偍浜嬩欢", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody StorageMinioEvent storageMinioEvent)
+ {
+ return toAjax(storageMinioEventService.insertStorageMinioEvent(storageMinioEvent));
+ }
+
+ /**
+ * 淇敼瀛樺偍浜嬩欢
+ */
+ @PreAuthorize("@ss.hasPermi('minio:event:edit')")
+ @Log(title = "瀛樺偍浜嬩欢", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody StorageMinioEvent storageMinioEvent)
+ {
+ return toAjax(storageMinioEventService.updateStorageMinioEvent(storageMinioEvent));
+ }
+
+ /**
+ * 鍒犻櫎瀛樺偍浜嬩欢
+ */
+ @PreAuthorize("@ss.hasPermi('minio:event:remove')")
+ @Log(title = "瀛樺偍浜嬩欢", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable String[] ids)
+ {
+ return toAjax(storageMinioEventService.deleteStorageMinioEventByIds(ids));
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/StorageMinioEvent.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/StorageMinioEvent.java
new file mode 100644
index 0000000..0e28641
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/StorageMinioEvent.java
@@ -0,0 +1,167 @@
+package com.ruoyi.storage.minio.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 瀛樺偍浜嬩欢瀵硅薄 storage_minio_event
+ *
+ * @author ard
+ * @date 2023-08-05
+ */
+public class StorageMinioEvent extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** ID */
+ private String id;
+
+ /** 浜嬩欢绫诲瀷 */
+ @Excel(name = "浜嬩欢绫诲瀷")
+ private String eventType;
+
+ /** 妗跺悕绉� */
+ @Excel(name = "妗跺悕绉�")
+ private String bucketName;
+
+ /** 浜嬩欢鏃堕棿 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "浜嬩欢鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date eventTime;
+
+ /** 璇锋眰涓绘満 */
+ @Excel(name = "璇锋眰涓绘満")
+ private String host;
+
+ /** 璇锋眰鐢ㄦ埛 */
+ @Excel(name = "璇锋眰鐢ㄦ埛")
+ private String userName;
+
+ /** 璇锋眰鍦板潃 */
+ @Excel(name = "璇锋眰鍦板潃")
+ private String endpoint;
+
+ /** 瀵硅薄鍚嶇О */
+ @Excel(name = "瀵硅薄鍚嶇О")
+ private String objectName;
+
+ /** 瀵硅薄绫诲瀷 */
+ @Excel(name = "瀵硅薄绫诲瀷")
+ private String objectType;
+
+ /** 瀵硅薄澶у皬 */
+ @Excel(name = "瀵硅薄澶у皬")
+ private int objectSize;
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+ public void setEventType(String eventType)
+ {
+ this.eventType = eventType;
+ }
+
+ public String getEventType()
+ {
+ return eventType;
+ }
+ public void setBucketName(String bucketName)
+ {
+ this.bucketName = bucketName;
+ }
+
+ public String getBucketName()
+ {
+ return bucketName;
+ }
+ public void setEventTime(Date eventTime)
+ {
+ this.eventTime = eventTime;
+ }
+
+ public Date getEventTime()
+ {
+ return eventTime;
+ }
+ public void setHost(String host)
+ {
+ this.host = host;
+ }
+
+ public String getHost()
+ {
+ return host;
+ }
+ public void setUserName(String userName)
+ {
+ this.userName = userName;
+ }
+
+ public String getUserName()
+ {
+ return userName;
+ }
+ public void setEndpoint(String endpoint)
+ {
+ this.endpoint = endpoint;
+ }
+
+ public String getEndpoint()
+ {
+ return endpoint;
+ }
+ public void setObjectName(String objectName)
+ {
+ this.objectName = objectName;
+ }
+
+ public String getObjectName()
+ {
+ return objectName;
+ }
+ public void setObjectType(String objectType)
+ {
+ this.objectType = objectType;
+ }
+
+ public String getObjectType()
+ {
+ return objectType;
+ }
+ public void setObjectSize(int objectSize)
+ {
+ this.objectSize = objectSize;
+ }
+
+ public int getObjectSize()
+ {
+ return objectSize;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("eventType", getEventType())
+ .append("bucketName", getBucketName())
+ .append("eventTime", getEventTime())
+ .append("host", getHost())
+ .append("userName", getUserName())
+ .append("endpoint", getEndpoint())
+ .append("objectName", getObjectName())
+ .append("objectType", getObjectType())
+ .append("objectSize", getObjectSize())
+ .append("createTime", getCreateTime())
+ .toString();
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Bucket.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Bucket.java
new file mode 100644
index 0000000..834cae2
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Bucket.java
@@ -0,0 +1,18 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class Bucket {
+ private String name;
+ @JsonProperty("ownerIdentity")
+ private Owneridentity owneridentity;
+ private String arn;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/JsonsRootBean.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/JsonsRootBean.java
new file mode 100644
index 0000000..c847fbd
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/JsonsRootBean.java
@@ -0,0 +1,21 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class JsonsRootBean {
+
+ @JsonProperty("EventName")
+ private String eventname;
+ @JsonProperty("Key")
+ private String key;
+ @JsonProperty("Records")
+ private List<Records> records;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Owneridentity.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Owneridentity.java
new file mode 100644
index 0000000..0e0afeb
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Owneridentity.java
@@ -0,0 +1,17 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class Owneridentity {
+
+ @JsonProperty("principalId")
+ private String principalid;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Records.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Records.java
new file mode 100644
index 0000000..2c47b45
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Records.java
@@ -0,0 +1,31 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+
+import java.util.Date;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class Records {
+
+ // private String eventVersion;
+// private String eventSource;
+// private String awsRegion;
+
+ private Date eventTime;
+ private String eventName;
+ // private com.ruoyi.storage.minio.domain.jsonbean.userIdentity userIdentity;
+ private Requestparameters requestParameters;
+ private ResponseElements responseElements;
+ private S3 s3;
+ @JsonProperty("source")
+ private mSource source;
+
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Requestparameters.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Requestparameters.java
new file mode 100644
index 0000000..674a99b
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Requestparameters.java
@@ -0,0 +1,21 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class Requestparameters {
+
+ @JsonProperty("principalId")
+ private String principalid;
+ private String region;
+ @JsonProperty("sourceIPAddress")
+ private String sourceipaddress;
+
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/ResponseElements.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/ResponseElements.java
new file mode 100644
index 0000000..2a3ed15
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/ResponseElements.java
@@ -0,0 +1,22 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class ResponseElements {
+
+ private String contentLength;
+ private String xAmzId2;
+ private String xAmzRequestId;
+ private String xMinioDeploymentId;
+ @JsonProperty("x-minio-origin-endpoint")
+ private String xMinioOriginEndpoint;
+
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/S3.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/S3.java
new file mode 100644
index 0000000..8f1537b
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/S3.java
@@ -0,0 +1,21 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class S3 {
+
+// @JsonProperty("s3SchemaVersion")
+// private String s3schemaversion;
+// @JsonProperty("configurationId")
+// private String configurationid;
+ private Bucket bucket;
+ @JsonProperty("object")
+ private mObject mObject;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Usermetadata.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Usermetadata.java
new file mode 100644
index 0000000..aa01696
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/Usermetadata.java
@@ -0,0 +1,14 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class Usermetadata {
+ private String contentType;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mObject.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mObject.java
new file mode 100644
index 0000000..4bf4f1a
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mObject.java
@@ -0,0 +1,20 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class mObject {
+
+ private String key;
+ private int size;
+ private String eTag;
+ private String contentType;
+ private Usermetadata userMetadata;
+ private String sequencer;
+
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mSource.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mSource.java
new file mode 100644
index 0000000..c4feaef
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/mSource.java
@@ -0,0 +1,18 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class mSource {
+ private String host;
+// private String port;
+// @JsonProperty("userAgent")
+// private Date useragent;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/userIdentity.java b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/userIdentity.java
new file mode 100644
index 0000000..e550123
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/domain/jsonbean/userIdentity.java
@@ -0,0 +1,14 @@
+package com.ruoyi.storage.minio.domain.jsonbean;
+import lombok.Data;
+
+/**
+ * Auto-generated: 2023-08-05 11:37:3
+ *
+ * @author www.jsons.cn
+ * @website http://www.jsons.cn/json2java/
+ */
+@Data
+public class userIdentity {
+
+ private String principalId;
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/mapper/StorageMinioEventMapper.java b/ard-work/src/main/java/com/ruoyi/storage/minio/mapper/StorageMinioEventMapper.java
new file mode 100644
index 0000000..ffcaf24
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/mapper/StorageMinioEventMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.storage.minio.mapper;
+
+import java.util.List;
+import com.ruoyi.storage.minio.domain.StorageMinioEvent;
+
+/**
+ * 瀛樺偍浜嬩欢Mapper鎺ュ彛
+ *
+ * @author ard
+ * @date 2023-08-05
+ */
+public interface StorageMinioEventMapper
+{
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢
+ *
+ * @param id 瀛樺偍浜嬩欢涓婚敭
+ * @return 瀛樺偍浜嬩欢
+ */
+ public StorageMinioEvent selectStorageMinioEventById(String id);
+
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢鍒楄〃
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 瀛樺偍浜嬩欢闆嗗悎
+ */
+ public List<StorageMinioEvent> selectStorageMinioEventList(StorageMinioEvent storageMinioEvent);
+
+ /**
+ * 鏂板瀛樺偍浜嬩欢
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 缁撴灉
+ */
+ public int insertStorageMinioEvent(StorageMinioEvent storageMinioEvent);
+
+ /**
+ * 淇敼瀛樺偍浜嬩欢
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 缁撴灉
+ */
+ public int updateStorageMinioEvent(StorageMinioEvent storageMinioEvent);
+
+ /**
+ * 鍒犻櫎瀛樺偍浜嬩欢
+ *
+ * @param id 瀛樺偍浜嬩欢涓婚敭
+ * @return 缁撴灉
+ */
+ public int deleteStorageMinioEventById(String id);
+
+ /**
+ * 鎵归噺鍒犻櫎瀛樺偍浜嬩欢
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+ * @return 缁撴灉
+ */
+ public int deleteStorageMinioEventByIds(String[] ids);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/service/IStorageMinioEventService.java b/ard-work/src/main/java/com/ruoyi/storage/minio/service/IStorageMinioEventService.java
new file mode 100644
index 0000000..79075a5
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/service/IStorageMinioEventService.java
@@ -0,0 +1,68 @@
+package com.ruoyi.storage.minio.service;
+
+import java.util.List;
+import com.ruoyi.storage.minio.domain.StorageMinioEvent;
+
+/**
+ * 瀛樺偍浜嬩欢Service鎺ュ彛
+ *
+ * @author ard
+ * @date 2023-08-05
+ */
+public interface IStorageMinioEventService
+{
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢
+ *
+ * @param id 瀛樺偍浜嬩欢涓婚敭
+ * @return 瀛樺偍浜嬩欢
+ */
+ public StorageMinioEvent selectStorageMinioEventById(String id);
+
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢鍒楄〃
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 瀛樺偍浜嬩欢闆嗗悎
+ */
+ public List<StorageMinioEvent> selectStorageMinioEventList(StorageMinioEvent storageMinioEvent);
+
+ /**
+ * 鏂板瀛樺偍浜嬩欢
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 缁撴灉
+ */
+ public int insertStorageMinioEvent(StorageMinioEvent storageMinioEvent);
+
+ /**
+ * 淇敼瀛樺偍浜嬩欢
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 缁撴灉
+ */
+ public int updateStorageMinioEvent(StorageMinioEvent storageMinioEvent);
+
+ /**
+ * 鎵归噺鍒犻櫎瀛樺偍浜嬩欢
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑瀛樺偍浜嬩欢涓婚敭闆嗗悎
+ * @return 缁撴灉
+ */
+ public int deleteStorageMinioEventByIds(String[] ids);
+
+ /**
+ * 鍒犻櫎瀛樺偍浜嬩欢淇℃伅
+ *
+ * @param id 瀛樺偍浜嬩欢涓婚敭
+ * @return 缁撴灉
+ */
+ public int deleteStorageMinioEventById(String id);
+ /**
+ * 瑙f瀽minio浜嬩欢
+ *
+ * @param message 瀛樺偍浜嬩欢娑堟伅
+ * @return 缁撴灉
+ */
+ public void parseStorageMinioEvent(String message);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java b/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
new file mode 100644
index 0000000..ce70fdf
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
@@ -0,0 +1,136 @@
+package com.ruoyi.storage.minio.service.impl;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.common.utils.DateUtils;
+
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.storage.minio.domain.jsonbean.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import com.ruoyi.storage.minio.mapper.StorageMinioEventMapper;
+import com.ruoyi.storage.minio.domain.StorageMinioEvent;
+import com.ruoyi.storage.minio.service.IStorageMinioEventService;
+
+import javax.annotation.Resource;
+
+/**
+ * 瀛樺偍浜嬩欢Service涓氬姟灞傚鐞�
+ *
+ * @author ard
+ * @date 2023-08-05
+ */
+@Service
+@Slf4j(topic = "minio")
+public class StorageMinioEventServiceImpl implements IStorageMinioEventService {
+ @Resource
+ private StorageMinioEventMapper storageMinioEventMapper;
+
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢
+ *
+ * @param id 瀛樺偍浜嬩欢涓婚敭
+ * @return 瀛樺偍浜嬩欢
+ */
+ @Override
+ public StorageMinioEvent selectStorageMinioEventById(String id) {
+ return storageMinioEventMapper.selectStorageMinioEventById(id);
+ }
+
+ /**
+ * 鏌ヨ瀛樺偍浜嬩欢鍒楄〃
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 瀛樺偍浜嬩欢
+ */
+ @Override
+ public List<StorageMinioEvent> selectStorageMinioEventList(StorageMinioEvent storageMinioEvent) {
+ return storageMinioEventMapper.selectStorageMinioEventList(storageMinioEvent);
+ }
+
+ /**
+ * 鏂板瀛樺偍浜嬩欢
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertStorageMinioEvent(StorageMinioEvent storageMinioEvent) {
+ storageMinioEvent.setId(IdUtils.simpleUUID());
+ storageMinioEvent.setCreateTime(DateUtils.getNowDate());
+ return storageMinioEventMapper.insertStorageMinioEvent(storageMinioEvent);
+ }
+
+ /**
+ * 淇敼瀛樺偍浜嬩欢
+ *
+ * @param storageMinioEvent 瀛樺偍浜嬩欢
+ * @return 缁撴灉
+ */
+ @Override
+ public int updateStorageMinioEvent(StorageMinioEvent storageMinioEvent) {
+ return storageMinioEventMapper.updateStorageMinioEvent(storageMinioEvent);
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎瀛樺偍浜嬩欢
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑瀛樺偍浜嬩欢涓婚敭
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteStorageMinioEventByIds(String[] ids) {
+ return storageMinioEventMapper.deleteStorageMinioEventByIds(ids);
+ }
+
+ /**
+ * 鍒犻櫎瀛樺偍浜嬩欢淇℃伅
+ *
+ * @param id 瀛樺偍浜嬩欢涓婚敭
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteStorageMinioEventById(String id) {
+ return storageMinioEventMapper.deleteStorageMinioEventById(id);
+ }
+
+ @Async
+ @Override
+ public void parseStorageMinioEvent(String message) {
+ JsonsRootBean jsonsRootBean = JSONObject.parseObject(message, JsonsRootBean.class);
+ if (jsonsRootBean != null) {
+ Records records = jsonsRootBean.getRecords().get(0);
+ StorageMinioEvent storageMinioEvent = new StorageMinioEvent();
+ storageMinioEvent.setEventTime(records.getEventTime());
+ storageMinioEvent.setEventType(records.getEventName());
+ storageMinioEvent.setBucketName(records.getS3().getBucket().getName());
+ String encode = null;
+ try {
+ encode = URLDecoder.decode(records.getS3().getMObject().getKey(), "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ storageMinioEvent.setObjectName(encode);
+ storageMinioEvent.setObjectSize(records.getS3().getMObject().getSize());
+ storageMinioEvent.setObjectType(records.getS3().getMObject().getContentType());
+ storageMinioEvent.setHost(records.getSource().getHost());
+ storageMinioEvent.setEndpoint(records.getResponseElements().getXMinioOriginEndpoint());
+ storageMinioEvent.setUserName(records.getRequestParameters().getPrincipalid());
+
+ int i = insertStorageMinioEvent(storageMinioEvent);
+ if(i>0)
+ {
+ log.debug("minio鎿嶄綔鏃ュ織鍏ュ簱鎴愬姛!銆�"+storageMinioEvent.getEventType()+"銆�");
+ }
+ }
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java b/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java
similarity index 93%
rename from ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
rename to ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java
index 46a3ded..c063b73 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java
@@ -1,14 +1,11 @@
-package com.ruoyi.device.hiksdk.util.minio;
+package com.ruoyi.storage.minio.utils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import io.minio.*;
import io.minio.http.Method;
-import io.minio.messages.Bucket;
-import io.minio.messages.DeleteError;
-import io.minio.messages.DeleteObject;
-import io.minio.messages.Item;
+import io.minio.messages.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
@@ -33,12 +30,12 @@
public static boolean exitsBucket(String bucketName) {
boolean found = false;
try {
- if(StringUtils.isEmpty(bucketName))
- {
+ if (StringUtils.isEmpty(bucketName)) {
return false;
}
BucketExistsArgs bucketExistsArgs = BucketExistsArgs.builder().bucket(bucketName).build();
found = MinioClientSingleton.getMinioClient().bucketExists(bucketExistsArgs);
+
} catch (Exception ex) {
log.error("minio鍒ゆ柇妗跺瓨鍦ㄥ紓甯革細", ex.getMessage());
}
@@ -50,8 +47,7 @@
*/
public static boolean createBucket(String bucketName) {
try {
- if(StringUtils.isEmpty(bucketName))
- {
+ if (StringUtils.isEmpty(bucketName)) {
return false;
}
/*鍒涘缓妗�*/
@@ -68,7 +64,27 @@
.bucket(bucketName)
.config(sb)
.build();
+ /*璁剧疆閫氱煡mqtt*/
+ //璁剧疆mqtt涓婚
+ NotificationConfiguration config = new NotificationConfiguration();
+ List<QueueConfiguration> queueConfigurations = new ArrayList<>();
+ QueueConfiguration queueConfiguration = new QueueConfiguration();
+ queueConfiguration.setQueue("arn:minio:sqs::_:mqtt");
+
+ //璁剧疆浜嬩欢
+ List<EventType> events=new ArrayList<>();
+ events.add(EventType.OBJECT_REMOVED_ANY);
+ events.add(EventType.OBJECT_CREATED_ANY);
+ queueConfiguration.setEvents(events);
+
+ queueConfigurations.add(queueConfiguration);
+ config.setQueueConfigurationList(queueConfigurations);
+ SetBucketNotificationArgs setBucketNotificationArgs = SetBucketNotificationArgs.builder()
+ .bucket(bucketName)
+ .config(config).build();
MinioClientSingleton.getMinioClient().setBucketPolicy(setBucketPolicyArgs);
+ MinioClientSingleton.getMinioClient().setBucketNotification(setBucketNotificationArgs);
+
return true;
} catch (Exception ex) {
log.error("minio鍒涘缓妗跺紓甯革細", ex.getMessage());
@@ -141,9 +157,7 @@
} catch (Exception ex) {
log.error("minio鐢熸垚澶辨晥url寮傚父", ex.getMessage());
}
- }
- else
- {
+ } else {
createBucket(bucketName);
}
return url;
@@ -158,8 +172,7 @@
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
public static String putObjectAndGetUrl(String bucketName, MultipartFile file) {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
//鍒ゆ柇鏂囦欢鏄惁涓虹┖
@@ -214,8 +227,7 @@
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
public static String putObjectAndGetUrl(String bucketName, String folder, MultipartFile file) {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
//鍒ゆ柇鏂囦欢鏄惁涓虹┖
@@ -372,8 +384,7 @@
*/
public static boolean uploadObject(String bucketName, String objectName, InputStream stream, long size, String contextType) {
try {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
@@ -400,8 +411,7 @@
*/
public static boolean uploadObject(String bucketName, String objectName, File file, String contextType) {
try {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
FileInputStream fileInputStream = new FileInputStream(file);
@@ -429,8 +439,7 @@
*/
public static boolean uploadObject(String bucketName, String objectName, MultipartFile multipartFile, String contextType) {
try {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
InputStream inputStream = multipartFile.getInputStream();
@@ -458,8 +467,7 @@
*/
public static boolean uploadObject(String bucketName, MultipartFile multipartFile, String contextType) {
try {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
if (multipartFile == null) {
@@ -492,8 +500,7 @@
*/
public static boolean uploadObject(String bucketName, String objectName, String localFilePathName, String contextType) {
try {
- if(!exitsBucket(bucketName))
- {
+ if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
File file = new File(localFilePathName);
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
index efec4be..1e332cc 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
@@ -11,7 +11,7 @@
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
-import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
+import com.ruoyi.storage.minio.utils.MinioUtils;
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.gps31.PositionContainer;
import com.ruoyi.sy.mapper.ArdSyUserMapper;
diff --git a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
index d6e12c1..d968436 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
@@ -2,6 +2,7 @@
import com.ruoyi.alarm.global.service.impl.GlobalAlarmServiceImpl;
import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.storage.minio.service.IStorageMinioEventService;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.*;
@@ -68,12 +69,17 @@
public void messageArrived(String topic, MqttMessage message) {
try {
// subscribe鍚庡緱鍒扮殑娑堟伅浼氭墽琛屽埌杩欓噷闈�
- log.info("鎺ユ敹娑堟伅 銆愪富棰樸��:" + topic + " 銆愬唴瀹广��:" + new String(message.getPayload()));
+ log.debug("鎺ユ敹娑堟伅 銆愪富棰樸��:" + topic + " 銆愬唴瀹广��:" + new String(message.getPayload()));
//杩涜涓氬姟澶勭悊(鎺ユ敹鎶ヨ鏁版嵁)
GlobalAlarmServiceImpl globalAlarmService = SpringUtils.getBean(GlobalAlarmServiceImpl.class);
globalAlarmService.receiveAlarm(topic, new String(message.getPayload(), StandardCharsets.UTF_8));
+ if (topic.equals("minioEvent"))
+ {
+ IStorageMinioEventService storageMinioEventService = SpringUtils.getBean(IStorageMinioEventService.class);
+ storageMinioEventService.parseStorageMinioEvent(new String(message.getPayload(), StandardCharsets.UTF_8));
+ }
} catch (Exception e) {
- log.info("澶勭悊mqtt娑堟伅寮傚父:" + e);
+ log.debug("澶勭悊mqtt娑堟伅寮傚父:" + e);
}
}
diff --git a/ard-work/src/main/resources/mapper/minio/StorageMinioEventMapper.xml b/ard-work/src/main/resources/mapper/minio/StorageMinioEventMapper.xml
new file mode 100644
index 0000000..9a6d13b
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/minio/StorageMinioEventMapper.xml
@@ -0,0 +1,95 @@
+<?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.storage.minio.mapper.StorageMinioEventMapper">
+
+ <resultMap type="StorageMinioEvent" id="StorageMinioEventResult">
+ <result property="id" column="id" />
+ <result property="eventType" column="event_type" />
+ <result property="bucketName" column="bucket_name" />
+ <result property="eventTime" column="event_time" />
+ <result property="host" column="host" />
+ <result property="userName" column="user_name" />
+ <result property="endpoint" column="endpoint" />
+ <result property="objectName" column="object_name" />
+ <result property="objectType" column="object_type" />
+ <result property="objectSize" column="object_size" />
+ <result property="createTime" column="create_time" />
+ </resultMap>
+
+ <sql id="selectStorageMinioEventVo">
+ select id, event_type, bucket_name, event_time, host, user_name, endpoint, object_name, object_type, object_size, create_time from storage_minio_event
+ </sql>
+
+ <select id="selectStorageMinioEventList" parameterType="StorageMinioEvent" resultMap="StorageMinioEventResult">
+ <include refid="selectStorageMinioEventVo"/>
+ <where>
+ <if test="eventType != null and eventType != ''"> and event_type = #{eventType}</if>
+ <if test="host != null and host != ''"> and host = #{host}</if>
+ </where>
+ </select>
+
+ <select id="selectStorageMinioEventById" parameterType="String" resultMap="StorageMinioEventResult">
+ <include refid="selectStorageMinioEventVo"/>
+ where id = #{id}
+ </select>
+
+ <insert id="insertStorageMinioEvent" parameterType="StorageMinioEvent">
+ insert into storage_minio_event
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">id,</if>
+ <if test="eventType != null">event_type,</if>
+ <if test="bucketName != null">bucket_name,</if>
+ <if test="eventTime != null">event_time,</if>
+ <if test="host != null">host,</if>
+ <if test="userName != null">user_name,</if>
+ <if test="endpoint != null">endpoint,</if>
+ <if test="objectName != null">object_name,</if>
+ <if test="objectType != null">object_type,</if>
+ <if test="objectSize != null">object_size,</if>
+ <if test="createTime != null">create_time,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">#{id},</if>
+ <if test="eventType != null">#{eventType},</if>
+ <if test="bucketName != null">#{bucketName},</if>
+ <if test="eventTime != null">#{eventTime},</if>
+ <if test="host != null">#{host},</if>
+ <if test="userName != null">#{userName},</if>
+ <if test="endpoint != null">#{endpoint},</if>
+ <if test="objectName != null">#{objectName},</if>
+ <if test="objectType != null">#{objectType},</if>
+ <if test="objectSize != null">#{objectSize},</if>
+ <if test="createTime != null">#{createTime},</if>
+ </trim>
+ </insert>
+
+ <update id="updateStorageMinioEvent" parameterType="StorageMinioEvent">
+ update storage_minio_event
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="eventType != null">event_type = #{eventType},</if>
+ <if test="bucketName != null">bucket_name = #{bucketName},</if>
+ <if test="eventTime != null">event_time = #{eventTime},</if>
+ <if test="host != null">host = #{host},</if>
+ <if test="userName != null">user_name = #{userName},</if>
+ <if test="endpoint != null">endpoint = #{endpoint},</if>
+ <if test="objectName != null">object_name = #{objectName},</if>
+ <if test="objectType != null">object_type = #{objectType},</if>
+ <if test="objectSize != null">object_size = #{objectSize},</if>
+ <if test="createTime != null">create_time = #{createTime},</if>
+ </trim>
+ where id = #{id}
+ </update>
+
+ <delete id="deleteStorageMinioEventById" parameterType="String">
+ delete from storage_minio_event where id = #{id}
+ </delete>
+
+ <delete id="deleteStorageMinioEventByIds" parameterType="String">
+ delete from storage_minio_event where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
index 1dd95b9..f48d4ea 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -19,7 +19,7 @@
{
public static void main(String[] args)
{
- System.setProperty("spring.devtools.restart.enabled", "false");//鍏抽棴鐑儴缃�
+ //System.setProperty("spring.devtools.restart.enabled", "false");//鍏抽棴鐑儴缃�
SpringApplication.run(RuoYiApplication.class, args);
System.out.println("(鈾モ棤鈥库棤)锞夛緸 瀹夌憺杈�4.0骞冲彴鍚姩鎴愬姛 醿�(麓凇`醿�)锞� \n" +
" ___ ___ \n" +
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
index a1cff53..d302322 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -1,6 +1,5 @@
package com.ruoyi.web.controller.system;
-import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
diff --git a/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json b/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json
new file mode 100644
index 0000000..c074bd6
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -0,0 +1,108 @@
+{
+ "properties": [
+ {
+ "name": "webrtc.enabled",
+ "type": "java.lang.String",
+ "description": "Description for webrtc.enabled."
+ },
+ {
+ "name": "webrtc.host",
+ "type": "java.lang.String",
+ "description": "Description for webrtc.host."
+ },
+ {
+ "name": "minio.enabled",
+ "type": "java.lang.String",
+ "description": "Description for minio.enabled."
+ },
+ {
+ "name": "minio.endpoint",
+ "type": "java.lang.String",
+ "description": "Description for minio.endpoint."
+ },
+ {
+ "name": "minio.accessKey",
+ "type": "java.lang.String",
+ "description": "Description for minio.accessKey."
+ },
+ {
+ "name": "minio.secretKey",
+ "type": "java.lang.String",
+ "description": "Description for minio.secretKey."
+ },
+ {
+ "name": "minio.path",
+ "type": "java.lang.String",
+ "description": "Description for minio.path."
+ },
+ {
+ "name": "mediamtx.enabled",
+ "type": "java.lang.String",
+ "description": "Description for mediamtx.enabled."
+ },
+ {
+ "name": "mediamtx.host",
+ "type": "java.lang.String",
+ "description": "Description for mediamtx.host."
+ },
+ {
+ "name": "mqtt.host",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.host."
+ },
+ {
+ "name": "mqtt.clientId",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.clientId."
+ },
+ {
+ "name": "mqtt.username",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.username."
+ },
+ {
+ "name": "mqtt.password",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.password."
+ },
+ {
+ "name": "mqtt.topic",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.topic."
+ },
+ {
+ "name": "mqtt.timeout",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.timeout."
+ },
+ {
+ "name": "mqtt.keepalive",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.keepalive."
+ },
+ {
+ "name": "mqtt.enabled",
+ "type": "java.lang.String",
+ "description": "Description for mqtt.enabled."
+ },
+ {
+ "name": "ThreadPoolTask.corePoolSize",
+ "type": "java.lang.String",
+ "description": "Description for ThreadPoolTask.corePoolSize."
+ },
+ {
+ "name": "ThreadPoolTask.maxPoolSize",
+ "type": "java.lang.String",
+ "description": "Description for ThreadPoolTask.maxPoolSize."
+ },
+ {
+ "name": "ThreadPoolTask.keepAliveSeconds",
+ "type": "java.lang.String",
+ "description": "Description for ThreadPoolTask.keepAliveSeconds."
+ },
+ {
+ "name": "ThreadPoolTask.queueCapacity",
+ "type": "java.lang.String",
+ "description": "Description for ThreadPoolTask.queueCapacity."
+ }
+] }
\ No newline at end of file
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java
index de78377..e2cb0f7 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/MinioTask.java
@@ -1,6 +1,6 @@
package com.ruoyi.quartz.task;
-import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
+import com.ruoyi.storage.minio.utils.MinioUtils;
import io.minio.Result;
import io.minio.messages.Item;
import lombok.extern.slf4j.Slf4j;
--
Gitblit v1.9.3