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