浏览代码

同步代码

LAPTOP-063L2NVL\dong 5 年之前
父节点
当前提交
96c4091afc

+ 67 - 0
src/main/java/com/unissoft/policySystem/controller/PolicySystemController.java

@@ -0,0 +1,67 @@
1
+package com.unissoft.policySystem.controller;
2
+
3
+
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.unissoft.model.PolicySystem;
6
+import com.unissoft.policySystem.service.PolicySystemService;
7
+import com.unissoft.result.PageParam;
8
+import com.unissoft.result.ResultView;
9
+import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.web.bind.annotation.*;
13
+import org.springframework.web.multipart.MultipartFile;
14
+
15
+/**
16
+ * <p>
17
+ *  前端控制器
18
+ * </p>
19
+ *
20
+ * @author root
21
+ * @since 2020-12-15
22
+ */
23
+@Api(description = "系统管理政策制度")
24
+@RestController
25
+@RequestMapping("/policySystem")
26
+public class PolicySystemController {
27
+
28
+    @Autowired
29
+    private PolicySystemService policySystemService ;
30
+
31
+
32
+    @ApiOperation(value = "分页条件查询", notes = "提交参数:{\"pageIndex\":\"0\", \"pageSize\":\"h\", \"condition\":\"{\\\"asset_number\\\":\\\"\\\",\\\"equipment_category\\\":\\\"\\\",\\\"equipment_name\\\":\\\"\\\",\\\"standards_type\\\":\\\"\\\",\\\"arrival_time\\\":\\\"\\\"}\"}")
33
+    @PostMapping("/authority/getPage")
34
+    public ResultView getPage(@RequestBody PageParam pageParam) {
35
+        Page<PolicySystem> page = policySystemService.getPage(pageParam);
36
+        return ResultView.success(page);
37
+    }
38
+
39
+    @ApiOperation(value = "新增", notes = "")
40
+    @PostMapping("/authority_button/add")
41
+    public ResultView add(@RequestBody PolicySystem model) {
42
+        policySystemService.savePolicySystem(model);
43
+        return ResultView.success(model);
44
+    }
45
+
46
+    @ApiOperation(value = "上传附件", notes = "")
47
+    @PostMapping("/authority_button/upload")
48
+    public ResultView add(@RequestParam(name = "file") MultipartFile file, @RequestParam(name = "id") Integer id) throws Exception {
49
+        String attachmentPath = policySystemService.savePolicySystemAttachment(file, id);
50
+        return ResultView.success(attachmentPath);
51
+    }
52
+
53
+
54
+    @ApiOperation(value = "修改", notes = "")
55
+    @PostMapping("/authority_button/update")
56
+    public ResultView update(@RequestBody PolicySystem model) {
57
+        policySystemService.updateById(model);
58
+        return ResultView.success(model);
59
+    }
60
+
61
+    @ApiOperation(value = "根据id删除", notes = "")
62
+    @DeleteMapping("/authority_button/deleteById/{id}")
63
+    public ResultView deleteById(@PathVariable Integer id) {
64
+        policySystemService.deleteById(id);
65
+        return ResultView.success();
66
+    }
67
+}

+ 27 - 0
src/main/java/com/unissoft/policySystem/service/PolicySystemService.java

@@ -0,0 +1,27 @@
1
+package com.unissoft.policySystem.service;
2
+
3
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
+import com.unissoft.model.EquipmentStroe;
5
+import com.unissoft.model.PolicySystem;
6
+import com.baomidou.mybatisplus.extension.service.IService;
7
+import com.unissoft.result.PageParam;
8
+import org.springframework.web.multipart.MultipartFile;
9
+
10
+/**
11
+ * <p>
12
+ *  服务类
13
+ * </p>
14
+ *
15
+ * @author root
16
+ * @since 2020-12-15
17
+ */
18
+public interface PolicySystemService extends IService<PolicySystem> {
19
+    Page<PolicySystem> getPage(PageParam pageParam);
20
+
21
+    void deleteById(Integer id);
22
+
23
+
24
+    void savePolicySystem(PolicySystem model);
25
+
26
+    String savePolicySystemAttachment(MultipartFile file,Integer id) throws Exception;
27
+}

+ 32 - 0
src/main/java/com/unissoft/policySystem/utils/minio/MinioConfig.java

@@ -0,0 +1,32 @@
1
+package com.unissoft.policySystem.utils.minio;
2
+
3
+import io.minio.MinioClient;
4
+import io.minio.errors.InvalidEndpointException;
5
+import io.minio.errors.InvalidPortException;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
8
+import org.springframework.context.annotation.Bean;
9
+import org.springframework.context.annotation.Configuration;
10
+
11
+/**
12
+ * 文件描述
13
+ *
14
+ * @author tongxi.xia
15
+ * @date 2020年12月04日 10:11
16
+ */
17
+@Configuration
18
+@EnableConfigurationProperties(MinioProp.class)
19
+public class MinioConfig {
20
+
21
+    @Autowired
22
+    MinioProp minioProp;
23
+
24
+    /**
25
+     * 获取MinioClient
26
+     */
27
+    @Bean
28
+    public MinioClient minioClient() throws InvalidPortException, InvalidEndpointException {
29
+        return new MinioClient(minioProp.getEndpoint(), minioProp.getAccesskey(), minioProp.getSecretkey());
30
+    }
31
+
32
+}

+ 29 - 0
src/main/java/com/unissoft/policySystem/utils/minio/MinioProp.java

@@ -0,0 +1,29 @@
1
+package com.unissoft.policySystem.utils.minio;
2
+
3
+import lombok.Data;
4
+import org.springframework.boot.context.properties.ConfigurationProperties;
5
+import org.springframework.stereotype.Component;
6
+
7
+/**
8
+ * 文件描述
9
+ *
10
+ * @author tongxi.xia
11
+ * @date 2020年12月04日 10:03
12
+ */
13
+@Data
14
+@Component
15
+@ConfigurationProperties(prefix = "minio")
16
+public class MinioProp {
17
+    /**
18
+     * 连接地址
19
+     */
20
+    private String endpoint;
21
+    /**
22
+     * 用户名
23
+     */
24
+    private String accesskey;
25
+    /**
26
+     * 密码
27
+     */
28
+    private String secretkey;
29
+}

+ 162 - 0
src/main/java/com/unissoft/policySystem/utils/minio/MinioUtils.java

@@ -0,0 +1,162 @@
1
+package com.unissoft.policySystem.utils.minio;
2
+
3
+import io.minio.MinioClient;
4
+import io.minio.ObjectStat;
5
+import io.minio.errors.*;
6
+import io.minio.messages.Bucket;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.stereotype.Service;
9
+import org.springframework.web.multipart.MultipartFile;
10
+import org.xmlpull.v1.XmlPullParserException;
11
+
12
+import java.io.IOException;
13
+import java.io.InputStream;
14
+import java.security.InvalidKeyException;
15
+import java.security.NoSuchAlgorithmException;
16
+import java.util.List;
17
+import java.util.Optional;
18
+
19
+/**
20
+ * 文件描述
21
+ *
22
+ * @author tongxi.xia
23
+ * @date 2020年12月04日 10:13
24
+ */
25
+@Service
26
+public class MinioUtils {
27
+
28
+    @Autowired
29
+    private MinioProp minioProp;
30
+
31
+    @Autowired
32
+    private MinioClient client;
33
+
34
+    /**
35
+     * 创建bucket
36
+     */
37
+    public void createBucket(String bucketName) throws Exception {
38
+        if (!client.bucketExists(bucketName)) {
39
+            client.makeBucket(bucketName);
40
+        }
41
+    }
42
+
43
+    /**
44
+     * 上传文件,返回文件名
45
+     */
46
+    public String uploadFile(MultipartFile file, String bucketName) throws Exception {
47
+        //判断文件是否为空
48
+        if (null == file || 0 == file.getSize()) {
49
+            return null;
50
+        }
51
+        //判断存储桶是否存在  不存在则创建
52
+        createBucket(bucketName);
53
+        //文件名
54
+        String originalFilename = file.getOriginalFilename();
55
+        //新的文件名 = 存储桶文件名_时间戳.后缀名
56
+        String filelName = bucketName + "_" +
57
+                System.currentTimeMillis() +
58
+                originalFilename.substring(originalFilename.lastIndexOf("."));
59
+        //开始上传
60
+        client.putObject(bucketName, filelName, file.getInputStream(), file.getContentType());
61
+        return filelName;
62
+    }
63
+
64
+    /**
65
+     * 获取全部bucket
66
+     */
67
+    public List<Bucket> getAllBuckets() throws Exception {
68
+        return client.listBuckets();
69
+    }
70
+
71
+    /**
72
+     * 根据bucketName获取信息
73
+     *
74
+     * @param bucketName bucket名称
75
+     */
76
+    public Optional<Bucket> getBucket(String bucketName) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, InternalException, NoResponseException, InvalidBucketNameException, XmlPullParserException, ErrorResponseException {
77
+        return client.listBuckets().stream().filter(b -> b.name().equals(bucketName)).findFirst();
78
+    }
79
+
80
+    /**
81
+     * 根据bucketName删除信息
82
+     *
83
+     * @param bucketName bucket名称
84
+     */
85
+    public void removeBucket(String bucketName) throws Exception {
86
+        client.removeBucket(bucketName);
87
+    }
88
+
89
+    /**
90
+     * 获取⽂件外链
91
+     *
92
+     * @param bucketName bucket名称
93
+     * @param objectName ⽂件名称
94
+     * @param expires    过期时间 <=7
95
+     * @return url
96
+     */
97
+    public String getObjectURL(String bucketName, String objectName, Integer expires) throws Exception {
98
+        return client.presignedGetObject(bucketName, objectName, expires);
99
+    }
100
+
101
+    /**
102
+     * 获取⽂件
103
+     *
104
+     * @param bucketName bucket名称
105
+     * @param objectName ⽂件名称
106
+     * @return ⼆进制流
107
+     */
108
+    public InputStream getObject(String bucketName, String objectName) throws Exception {
109
+        return client.getObject(bucketName, objectName);
110
+    }
111
+
112
+    /**
113
+     * 上传⽂件
114
+     *
115
+     * @param bucketName bucket名称
116
+     * @param objectName ⽂件名称
117
+     * @param stream     ⽂件流
118
+     * @throws Exception https://docs.minio.io/cn/java-client-api-reference.html#putObject
119
+     */
120
+    public void putObject(String bucketName, String objectName, InputStream stream) throws
121
+            Exception {
122
+        client.putObject(bucketName, objectName, stream, stream.available(),
123
+                "application/octet-stream");
124
+    }
125
+
126
+    /**
127
+     * 上传⽂件
128
+     *
129
+     * @param bucketName  bucket名称
130
+     * @param objectName  ⽂件名称
131
+     * @param stream      ⽂件流
132
+     * @param size        ⼤⼩
133
+     * @param contextType 类型
134
+     * @throws Exception https://docs.minio.io/cn/java-client-api-reference.html#putObject
135
+     */
136
+    public void putObject(String bucketName, String objectName, InputStream stream, long
137
+            size, String contextType) throws Exception {
138
+        client.putObject(bucketName, objectName, stream, size, contextType);
139
+    }
140
+
141
+    /**
142
+     * 获取⽂件信息
143
+     *
144
+     * @param bucketName bucket名称
145
+     * @param objectName ⽂件名称
146
+     * @throws Exception https://docs.minio.io/cn/java-client-api-reference.html#statObject
147
+     */
148
+    public ObjectStat getObjectInfo(String bucketName, String objectName) throws Exception {
149
+        return client.statObject(bucketName, objectName);
150
+    }
151
+
152
+    /**
153
+     * 删除⽂件
154
+     *
155
+     * @param bucketName bucket名称
156
+     * @param objectName ⽂件名称
157
+     * @throws Exception https://docs.minio.io/cn/java-client-apireference.html#removeObject
158
+     */
159
+    public void removeObject(String bucketName, String objectName) throws Exception {
160
+        client.removeObject(bucketName, objectName);
161
+    }
162
+}