From 11e370b2ed7a7004c4a4b4d46031785bc6a7d925 Mon Sep 17 00:00:00 2001
From: 幻雨堂 <13281837894@163.com>
Date: 星期四, 29 二月 2024 09:21:19 +0800
Subject: [PATCH] 道安办部分新
---
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java | 105 +++++++
dujy-modules/dujy-demo/pom.xml | 7
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/config/MinioConfig.java | 36 ++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/FileUploadController.java | 40 ++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsSceneryOperationData.java | 86 +++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java | 15 +
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/MinioUtil.java | 238 +++++++++++++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsSceneryOperationDataBo.java | 96 ++++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsSceneryOperationDataService.java | 49 +++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsSceneryOperationDataVo.java | 104 ++++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java | 119 +++++++
11 files changed, 895 insertions(+), 0 deletions(-)
diff --git a/dujy-modules/dujy-demo/pom.xml b/dujy-modules/dujy-demo/pom.xml
index 5193b1e..e85885e 100644
--- a/dujy-modules/dujy-demo/pom.xml
+++ b/dujy-modules/dujy-demo/pom.xml
@@ -124,6 +124,13 @@
<artifactId>dujy-system</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.minio</groupId>
+ <artifactId>minio</artifactId>
+ <version>8.4.3</version>
+ </dependency>
+
+
</dependencies>
</project>
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/config/MinioConfig.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/config/MinioConfig.java
new file mode 100644
index 0000000..fad8ad4
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/config/MinioConfig.java
@@ -0,0 +1,36 @@
+package org.dromara.demo.config;
+
+import io.minio.MinioClient;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+@Data
+@Configuration
+public class MinioConfig {
+ @Value("${minio.endpoint}")
+ private String endpoint;
+
+ @Value("${minio.accessKey}")
+ private String accessKey;
+
+ @Value("${minio.secretKey}")
+ private String secretKey;
+
+ /**
+ * 娉ㄥ叆minio 瀹㈡埛绔�
+ *
+ * @return
+ */
+ @Bean
+ public MinioClient minioClient() {
+ return MinioClient.builder()
+ .endpoint(endpoint)
+ .credentials(accessKey, secretKey)
+ .build();
+ }
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/FileUploadController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/FileUploadController.java
new file mode 100644
index 0000000..28d633d
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/FileUploadController.java
@@ -0,0 +1,40 @@
+package org.dromara.demo.controller;
+
+import io.minio.Result;
+import org.dromara.common.core.domain.R;
+import org.dromara.demo.util.MinioUtil;
+import org.redisson.remote.ResponseEntry;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/file")
+public class FileUploadController {
+ @Autowired
+ private MinioUtil minioUtil;
+
+ @PostMapping("/img")
+ public R<String> uploadMinio(@RequestPart MultipartFile[] file) throws Exception {
+
+ /*//鎷垮埌鍥剧墖 MultipartFile灏佽鎺ュ彈鐨勭被
+ //鎷垮埌鍥剧墖鐨勫悕绉�
+ String filename = file.getOriginalFilename();
+ //鎷垮埌鍥剧墖鐨� UUId + 鍥剧墖绫诲瀷 (瑙e喅鍥剧墖閲嶅悕鐨勯棶棰� )
+ String uuid = UUID.randomUUID().toString();
+ String imgType = filename.substring(filename.lastIndexOf("."));
+ //鍥剧墖鏂囦欢鐨勬柊鍚嶇О xxx/uuid.jpg 鍥剧墖鎷兼帴鍚庣殑鍚�
+ String fileName = uuid + imgType;*/
+
+ List<String> uploads = minioUtil.uploads(file);
+
+
+ return R.ok(uploads.toString());
+ }
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java
new file mode 100644
index 0000000..e60e8f5
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java
@@ -0,0 +1,105 @@
+package org.dromara.demo.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
+import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
+import org.dromara.demo.service.IRsSceneryOperationDataService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 鏅尯杩愯鏁版嵁
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/sc/sceneryOperationData")
+public class RsSceneryOperationDataController extends BaseController {
+
+ private final IRsSceneryOperationDataService rsSceneryOperationDataService;
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
+ */
+ @SaCheckPermission("rs:sceneryOperationData:list")
+ @GetMapping("/list")
+ public TableDataInfo<RsSceneryOperationDataVo> list(RsSceneryOperationDataBo bo, PageQuery pageQuery) {
+ return rsSceneryOperationDataService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 瀵煎嚭鏅尯杩愯鏁版嵁鍒楄〃
+ */
+ @SaCheckPermission("rs:sceneryOperationData:export")
+ @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(RsSceneryOperationDataBo bo, HttpServletResponse response) {
+ List<RsSceneryOperationDataVo> list = rsSceneryOperationDataService.queryList(bo);
+ ExcelUtil.exportExcel(list, "鏅尯杩愯鏁版嵁", RsSceneryOperationDataVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇鏅尯杩愯鏁版嵁璇︾粏淇℃伅
+ *
+ * @param id 涓婚敭
+ */
+ @SaCheckPermission("rs:sceneryOperationData:query")
+ @GetMapping("/{id}")
+ public R<RsSceneryOperationDataVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long id) {
+ return R.ok(rsSceneryOperationDataService.queryById(id));
+ }
+
+ /**
+ * 鏂板鏅尯杩愯鏁版嵁
+ */
+ @SaCheckPermission("system:sceneryOperationData:add")
+ @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R<Void> add(@Validated(AddGroup.class) @RequestBody RsSceneryOperationDataBo bo) {
+ return toAjax(rsSceneryOperationDataService.insertByBo(bo));
+ }
+
+ /**
+ * 淇敼鏅尯杩愯鏁版嵁
+ */
+ @SaCheckPermission("system:sceneryOperationData:edit")
+ @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R<Void> edit(@Validated(EditGroup.class) @RequestBody RsSceneryOperationDataBo bo) {
+ return toAjax(rsSceneryOperationDataService.updateByBo(bo));
+ }
+
+ /**
+ * 鍒犻櫎鏅尯杩愯鏁版嵁
+ *
+ * @param ids 涓婚敭涓�
+ */
+ @SaCheckPermission("system:sceneryOperationData:remove")
+ @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ids) {
+ return toAjax(rsSceneryOperationDataService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsSceneryOperationData.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsSceneryOperationData.java
new file mode 100644
index 0000000..8300719
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsSceneryOperationData.java
@@ -0,0 +1,86 @@
+package org.dromara.demo.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 鏅尯杩愯鏁版嵁瀵硅薄 rs_scenery_operation_data
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Data
+//@EqualsAndHashCode(callSuper = true)
+@TableName("rs_scenery_operation_data")
+public class RsSceneryOperationData {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ private Long periodYear;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ private Long periodMonth;
+
+ /**
+ * 杞︽祦閲�
+ */
+ private Long carFlowNum;
+
+ /**
+ * 浜烘祦閲�
+ */
+ private Long personFlowNum;
+
+ /**
+ * 娓稿棰勭害
+ */
+ private Long visitorSubNum;
+
+ /**
+ * 鍏ュ洯浜烘暟
+ */
+ private Long enterGardenNum;
+
+ /**
+ * 鍦ㄥ矖璀﹀姏
+ */
+ private Long onPolice;
+
+ /**
+ * 鍦ㄥ矖璀﹁溅
+ */
+ private Long onPaddyWagon;
+
+ /**
+ * 澶囧嫟璀﹀姏
+ */
+ private Long standbyPolice;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ private Long status;
+
+ /**
+ * 鏅尯id
+ */
+ private Long scId;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsSceneryOperationDataBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsSceneryOperationDataBo.java
new file mode 100644
index 0000000..fea5acc
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsSceneryOperationDataBo.java
@@ -0,0 +1,96 @@
+package org.dromara.demo.domain.bo;
+
+import org.dromara.demo.domain.RsSceneryOperationData;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 鏅尯杩愯鏁版嵁涓氬姟瀵硅薄 rs_scenery_operation_data
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = RsSceneryOperationData.class, reverseConvertGenerate = false)
+public class RsSceneryOperationDataBo extends BaseEntity {
+
+ /**
+ * id
+ */
+ @NotNull(message = "id涓嶈兘涓虹┖", groups = { EditGroup.class })
+ private Long id;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ @NotNull(message = "鍛ㄦ湡骞翠笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private Long periodYear;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ @NotNull(message = "鍛ㄦ湡鏈堜笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private Long periodMonth;
+
+ /**
+ * 杞︽祦閲�
+ */
+ @NotNull(message = "杞︽祦閲忎笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private Long carFlowNum;
+
+ /**
+ * 浜烘祦閲�
+ */
+ @NotNull(message = "浜烘祦閲忎笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private Long personFlowNum;
+
+ /**
+ * 娓稿棰勭害
+ */
+ @NotNull(message = "娓稿棰勭害涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long visitorSubNum;
+
+ /**
+ * 鍏ュ洯浜烘暟
+ */
+ @NotNull(message = "鍏ュ洯浜烘暟涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long enterGardenNum;
+
+ /**
+ * 鍦ㄥ矖璀﹀姏
+ */
+ @NotNull(message = "鍦ㄥ矖璀﹀姏涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long onPolice;
+
+ /**
+ * 鍦ㄥ矖璀﹁溅
+ */
+ @NotNull(message = "鍦ㄥ矖璀﹁溅涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long onPaddyWagon;
+
+ /**
+ * 澶囧嫟璀﹀姏
+ */
+ @NotNull(message = "澶囧嫟璀﹀姏涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long standbyPolice;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ @NotNull(message = "鐘舵�� 1鍚敤 0鏈惎鐢ㄤ笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private Long status;
+
+ /**
+ * 鏅尯id
+ */
+ @NotNull(message = "鏅尯id涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long scId;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsSceneryOperationDataVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsSceneryOperationDataVo.java
new file mode 100644
index 0000000..2071f17
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsSceneryOperationDataVo.java
@@ -0,0 +1,104 @@
+package org.dromara.demo.domain.vo;
+
+import org.dromara.demo.domain.RsSceneryOperationData;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 鏅尯杩愯鏁版嵁瑙嗗浘瀵硅薄 rs_scenery_operation_data
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = RsSceneryOperationData.class)
+public class RsSceneryOperationDataVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @ExcelProperty(value = "id")
+ private Long id;
+
+ /**
+ * 鍛ㄦ湡骞�
+ */
+ @ExcelProperty(value = "鍛ㄦ湡骞�")
+ private Long periodYear;
+
+ /**
+ * 鍛ㄦ湡鏈�
+ */
+ @ExcelProperty(value = "鍛ㄦ湡鏈�")
+ private Long periodMonth;
+
+ /**
+ * 杞︽祦閲�
+ */
+ @ExcelProperty(value = "杞︽祦閲�")
+ private Long carFlowNum;
+
+ /**
+ * 浜烘祦閲�
+ */
+ @ExcelProperty(value = "浜烘祦閲�")
+ private Long personFlowNum;
+
+ /**
+ * 娓稿棰勭害
+ */
+ @ExcelProperty(value = "娓稿棰勭害")
+ private Long visitorSubNum;
+
+ /**
+ * 鍏ュ洯浜烘暟
+ */
+ @ExcelProperty(value = "鍏ュ洯浜烘暟")
+ private Long enterGardenNum;
+
+ /**
+ * 鍦ㄥ矖璀﹀姏
+ */
+ @ExcelProperty(value = "鍦ㄥ矖璀﹀姏")
+ private Long onPolice;
+
+ /**
+ * 鍦ㄥ矖璀﹁溅
+ */
+ @ExcelProperty(value = "鍦ㄥ矖璀﹁溅")
+ private Long onPaddyWagon;
+
+ /**
+ * 澶囧嫟璀﹀姏
+ */
+ @ExcelProperty(value = "澶囧嫟璀﹀姏")
+ private Long standbyPolice;
+
+ /**
+ * 鐘舵�� 1鍚敤 0鏈惎鐢�
+ */
+ @ExcelProperty(value = "鐘舵�� 1鍚敤 0鏈惎鐢�")
+ private Long status;
+
+ /**
+ * 鏅尯id
+ */
+ @ExcelProperty(value = "鏅尯id")
+ private Long scId;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java
new file mode 100644
index 0000000..d1a9dc9
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.demo.mapper;
+
+import org.dromara.demo.domain.RsSceneryOperationData;
+import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 鏅尯杩愯鏁版嵁Mapper鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+public interface RsSceneryOperationDataMapper extends BaseMapperPlus<RsSceneryOperationData, RsSceneryOperationDataVo> {
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsSceneryOperationDataService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsSceneryOperationDataService.java
new file mode 100644
index 0000000..0345db9
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsSceneryOperationDataService.java
@@ -0,0 +1,49 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.RsSceneryOperationData;
+import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
+import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 鏅尯杩愯鏁版嵁Service鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+public interface IRsSceneryOperationDataService {
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁
+ */
+ RsSceneryOperationDataVo queryById(Long id);
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
+ */
+ TableDataInfo<RsSceneryOperationDataVo> queryPageList(RsSceneryOperationDataBo bo, PageQuery pageQuery);
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
+ */
+ List<RsSceneryOperationDataVo> queryList(RsSceneryOperationDataBo bo);
+
+ /**
+ * 鏂板鏅尯杩愯鏁版嵁
+ */
+ Boolean insertByBo(RsSceneryOperationDataBo bo);
+
+ /**
+ * 淇敼鏅尯杩愯鏁版嵁
+ */
+ Boolean updateByBo(RsSceneryOperationDataBo bo);
+
+ /**
+ * 鏍¢獙骞舵壒閲忓垹闄ゆ櫙鍖鸿繍琛屾暟鎹俊鎭�
+ */
+ Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java
new file mode 100644
index 0000000..81e9c66
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java
@@ -0,0 +1,119 @@
+package org.dromara.demo.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
+import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
+import org.dromara.demo.domain.RsSceneryOperationData;
+import org.dromara.demo.mapper.RsSceneryOperationDataMapper;
+import org.dromara.demo.service.IRsSceneryOperationDataService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 鏅尯杩愯鏁版嵁Service涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@RequiredArgsConstructor
+@Service
+public class RsSceneryOperationDataServiceImpl implements IRsSceneryOperationDataService {
+
+ private final RsSceneryOperationDataMapper baseMapper;
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁
+ */
+ @Override
+ public RsSceneryOperationDataVo queryById(Long id){
+ return baseMapper.selectVoById(id);
+ }
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
+ */
+ @Override
+ public TableDataInfo<RsSceneryOperationDataVo> queryPageList(RsSceneryOperationDataBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper<RsSceneryOperationData> lqw = buildQueryWrapper(bo);
+ Page<RsSceneryOperationDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
+ */
+ @Override
+ public List<RsSceneryOperationDataVo> queryList(RsSceneryOperationDataBo bo) {
+ LambdaQueryWrapper<RsSceneryOperationData> lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper<RsSceneryOperationData> buildQueryWrapper(RsSceneryOperationDataBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<RsSceneryOperationData> lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getPeriodYear() != null, RsSceneryOperationData::getPeriodYear, bo.getPeriodYear());
+ lqw.eq(bo.getPeriodMonth() != null, RsSceneryOperationData::getPeriodMonth, bo.getPeriodMonth());
+ lqw.eq(bo.getCarFlowNum() != null, RsSceneryOperationData::getCarFlowNum, bo.getCarFlowNum());
+ lqw.eq(bo.getPersonFlowNum() != null, RsSceneryOperationData::getPersonFlowNum, bo.getPersonFlowNum());
+ lqw.eq(bo.getVisitorSubNum() != null, RsSceneryOperationData::getVisitorSubNum, bo.getVisitorSubNum());
+ lqw.eq(bo.getEnterGardenNum() != null, RsSceneryOperationData::getEnterGardenNum, bo.getEnterGardenNum());
+ lqw.eq(bo.getOnPolice() != null, RsSceneryOperationData::getOnPolice, bo.getOnPolice());
+ lqw.eq(bo.getOnPaddyWagon() != null, RsSceneryOperationData::getOnPaddyWagon, bo.getOnPaddyWagon());
+ lqw.eq(bo.getStandbyPolice() != null, RsSceneryOperationData::getStandbyPolice, bo.getStandbyPolice());
+ lqw.eq(bo.getStatus() != null, RsSceneryOperationData::getStatus, bo.getStatus());
+ lqw.eq(bo.getScId() != null, RsSceneryOperationData::getScId, bo.getScId());
+ return lqw;
+ }
+
+ /**
+ * 鏂板鏅尯杩愯鏁版嵁
+ */
+ @Override
+ public Boolean insertByBo(RsSceneryOperationDataBo bo) {
+ RsSceneryOperationData add = MapstructUtils.convert(bo, RsSceneryOperationData.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ /**
+ * 淇敼鏅尯杩愯鏁版嵁
+ */
+ @Override
+ public Boolean updateByBo(RsSceneryOperationDataBo bo) {
+ RsSceneryOperationData update = MapstructUtils.convert(bo, RsSceneryOperationData.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ */
+ private void validEntityBeforeSave(RsSceneryOperationData entity){
+ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎鏅尯杩愯鏁版嵁
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ if(isValid){
+ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/MinioUtil.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/MinioUtil.java
new file mode 100644
index 0000000..d5ca1b3
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/MinioUtil.java
@@ -0,0 +1,238 @@
+package org.dromara.demo.util;
+
+
+import io.minio.*;
+import io.minio.messages.DeleteError;
+import io.minio.messages.DeleteObject;
+import io.minio.messages.Item;
+import org.apache.commons.compress.utils.IOUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @description锛� minio宸ュ叿绫�
+ * @version
+ */
+@Component
+public class MinioUtil {
+ @Autowired
+ private MinioClient minioClient;
+
+ @Value("${minio.bucketName}")
+ private String bucketName;
+ /**
+ * description: 鍒ゆ柇bucket鏄惁瀛樺湪锛屼笉瀛樺湪鍒欏垱寤�
+ *
+ * @return: void
+ */
+ public void existBucket(String name) {
+ try {
+ boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(name).build());
+ if (!exists) {
+ minioClient.makeBucket(MakeBucketArgs.builder().bucket(name).build());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 鍒涘缓瀛樺偍bucket
+ * @param bucketName 瀛樺偍bucket鍚嶇О
+ * @return Boolean
+ */
+ public Boolean makeBucket(String bucketName) {
+ try {
+ minioClient.makeBucket(MakeBucketArgs.builder()
+ .bucket(bucketName)
+ .build());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 鍒犻櫎瀛樺偍bucket
+ * @param bucketName 瀛樺偍bucket鍚嶇О
+ * @return Boolean
+ */
+ public Boolean removeBucket(String bucketName) {
+ try {
+ minioClient.removeBucket(RemoveBucketArgs.builder()
+ .bucket(bucketName)
+ .build());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+ /**
+ * description: 涓婁紶鏂囦欢
+ *
+ * @param multipartFile
+ * @return: java.lang.String
+
+ */
+ public List<String> uploads(MultipartFile[] multipartFile) {
+ List<String> names = new ArrayList<>(multipartFile.length);
+ for (MultipartFile file : multipartFile) {
+ String fileName = file.getOriginalFilename();
+ String[] split = fileName.split("\\.");
+ if (split.length > 1) {
+ fileName = split[0] + "_" + System.currentTimeMillis() + "." + split[1];
+ } else {
+ fileName = fileName + System.currentTimeMillis();
+ }
+ InputStream in = null;
+ try {
+ in = file.getInputStream();
+ minioClient.putObject(PutObjectArgs.builder()
+ .bucket(bucketName)
+ .object(fileName)
+ .stream(in, in.available(), -1)
+ .contentType(file.getContentType())
+ .build()
+ );
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ names.add(fileName);
+ }
+ return names;
+ }
+
+ /**
+ * 涓婁紶鍗曚釜鏂囦欢
+ * @param multipartFile
+ * @return
+ */
+ public String upload(MultipartFile multipartFile) {
+
+ String fileName = multipartFile.getOriginalFilename();
+ String[] split = fileName.split("\\.");
+ if (split.length > 1) {
+ fileName = split[0] + "_" + System.currentTimeMillis() + "." + split[1];
+ } else {
+ fileName = fileName + System.currentTimeMillis();
+ }
+ InputStream in = null;
+ try {
+ in = multipartFile.getInputStream();
+ minioClient.putObject(PutObjectArgs.builder()
+ .bucket(bucketName)
+ .object(fileName)
+ .stream(in, in.available(), -1)
+ .contentType(multipartFile.getContentType())
+ .build()
+ );
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return fileName;
+ }
+
+ /**
+ * description: 涓嬭浇鏂囦欢
+ *
+ * @param fileName
+ * @return: org.springframework.http.ResponseEntity<byte [ ]>
+ */
+ public ResponseEntity<byte[]> download(String fileName) {
+ ResponseEntity<byte[]> responseEntity = null;
+ InputStream in = null;
+ ByteArrayOutputStream out = null;
+ try {
+ in = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(fileName).build());
+ out = new ByteArrayOutputStream();
+ IOUtils.copy(in, out);
+ //灏佽杩斿洖鍊�
+ byte[] bytes = out.toByteArray();
+ HttpHeaders headers = new HttpHeaders();
+ try {
+ headers.add("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ headers.setContentLength(bytes.length);
+ headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+ headers.setAccessControlExposeHeaders(Arrays.asList("*"));
+ responseEntity = new ResponseEntity<byte[]>(bytes, headers, HttpStatus.OK);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (out != null) {
+ out.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return responseEntity;
+ }
+
+ /**
+ * 鏌ョ湅鏂囦欢瀵硅薄
+ * @param bucketName 瀛樺偍bucket鍚嶇О
+ * @return 瀛樺偍bucket鍐呮枃浠跺璞′俊鎭�
+ */
+
+
+ /**
+ * 鎵归噺鍒犻櫎鏂囦欢瀵硅薄
+ * @param bucketName 瀛樺偍bucket鍚嶇О
+ * @param objects 瀵硅薄鍚嶇О闆嗗悎
+ */
+ public Iterable<Result<DeleteError>> removeObjects(String bucketName, List<String> objects) {
+ List<DeleteObject> dos = objects.stream().map(e -> new DeleteObject(e)).collect(Collectors.toList());
+ Iterable<Result<DeleteError>> results = minioClient.removeObjects(RemoveObjectsArgs.builder().bucket(bucketName).objects(dos).build());
+ return results;
+ }
+
+
+}
+
+
--
Gitblit v1.8.0