1313package com .tinyengine .it .controller ;
1414
1515import com .tinyengine .it .common .base .Result ;
16+ import com .tinyengine .it .common .context .LoginUserContext ;
17+ import com .tinyengine .it .common .exception .ExceptionEnum ;
1618import com .tinyengine .it .common .log .SystemControllerLog ;
1719import com .tinyengine .it .common .utils .ImageThumbnailGenerator ;
1820import com .tinyengine .it .common .utils .Utils ;
3840import org .springframework .web .bind .annotation .RequestMapping ;
3941import org .springframework .web .bind .annotation .RequestParam ;
4042import org .springframework .web .bind .annotation .RestController ;
43+ import org .springframework .web .multipart .MultipartFile ;
4144
4245import java .io .OutputStream ;
4346import java .net .URLEncoder ;
@@ -61,6 +64,9 @@ public class ResourceController {
6164 @ Autowired
6265 private ResourceService resourceService ;
6366
67+ @ Autowired
68+ private LoginUserContext loginUserContext ;
69+
6470 /**
6571 * 查询表Resource信息
6672 *
@@ -69,7 +75,7 @@ public class ResourceController {
6975 @ Operation (summary = "查询表Resource信息" , description = "查询表Resource信息" ,
7076 responses = {
7177 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
72- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
78+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
7379 @ ApiResponse (responseCode = "400" , description = "请求失败" )
7480 })
7581 @ SystemControllerLog (description = "查询表Resource信息" )
@@ -90,7 +96,7 @@ public Result<List<Resource>> getAllResource() {
9096 @ Parameter (name = "id" , description = "Resource主键id" )
9197 }, responses = {
9298 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
93- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
99+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
94100 @ ApiResponse (responseCode = "400" , description = "请求失败" )
95101 })
96102 @ SystemControllerLog (description = "根据id查询表Resource信息" )
@@ -110,7 +116,7 @@ public Result<Resource> getResourceById(@PathVariable Integer id) {
110116 @ Parameter (name = "resourceGroupId" , description = "ResourceGroup主键id" )
111117 }, responses = {
112118 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
113- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
119+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
114120 @ ApiResponse (responseCode = "400" , description = "请求失败" )
115121 })
116122 @ SystemControllerLog (description = "根据分组id和创建人查询表t_resource信息" )
@@ -132,7 +138,7 @@ public Result<List<Resource>> getResourceByResourceGroupId(@PathVariable Integer
132138 @ Parameter (name = "des" , description = "描述" )
133139 }, responses = {
134140 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
135- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
141+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
136142 @ ApiResponse (responseCode = "400" , description = "请求失败" )
137143 })
138144 @ SystemControllerLog (description = "模糊查询表Resource信息列表" )
@@ -154,7 +160,7 @@ public Result<List<Resource>> getResourceById(@RequestParam String name, @Reques
154160 @ Parameter (name = "resource" , description = "Resource入参对象" )
155161 }, responses = {
156162 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
157- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
163+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
158164 @ ApiResponse (responseCode = "400" , description = "请求失败" )
159165 })
160166 @ SystemControllerLog (description = "创建resource" )
@@ -167,20 +173,35 @@ public Result<Resource> createResource(@Valid @RequestBody Resource resource) th
167173 /**
168174 * 上传图片
169175 *
170- * @param resource the resource
176+ * @param file the file
171177 * @return Resource信息 result
172178 */
173179 @ Operation (summary = "上传图片" , description = "上传图片" ,
174- parameters = {
175- @ Parameter (name = "resource " , description = "Resource入参对象 " )
176- }, responses = {
180+ parameters = {
181+ @ Parameter (name = "file " , description = "图片 " )
182+ }, responses = {
177183 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
178- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
184+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
179185 @ ApiResponse (responseCode = "400" , description = "请求失败" )
180186 })
181187 @ SystemControllerLog (description = "上传图片" )
182- @ PostMapping ("/resource/uoload" )
183- public Result <Resource > resourceUoload (@ Valid @ RequestBody Resource resource ) throws Exception {
188+ @ PostMapping ("/resource/upload" )
189+ public Result <Resource > resourceUpload (@ RequestParam MultipartFile file ) throws Exception {
190+ // 获取文件的原始名称
191+ String fileName = file .getOriginalFilename ();
192+ if (file .isEmpty ()) {
193+ return Result .failed (ExceptionEnum .CM009 );
194+ }
195+ if (!ImageThumbnailGenerator .validateByImageIO (file )){
196+ return Result .failed (ExceptionEnum .CM325 );
197+ }
198+ // 将文件转为 Base64
199+ String base64 = ImageThumbnailGenerator .convertToBase64 (file );
200+ Resource resource = new Resource ();
201+ resource .setName (fileName );
202+ resource .setResourceData (base64 );
203+ resource .setAppId (loginUserContext .getAppId ());
204+ resource .setCategory ("image" );
184205 Resource result = resourceService .resourceUpload (resource );
185206 return Result .success (result );
186207 }
@@ -196,7 +217,7 @@ public Result<Resource> resourceUoload(@Valid @RequestBody Resource resource) th
196217 @ Parameter (name = "resources" , description = "Resource入参对象" )
197218 }, responses = {
198219 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
199- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
220+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
200221 @ ApiResponse (responseCode = "400" , description = "请求失败" )
201222 })
202223 @ SystemControllerLog (description = "批量创建Resource" )
@@ -218,7 +239,7 @@ public Result<List<Resource>> createResource(@Valid @RequestBody List<Resource>
218239 @ Parameter (name = "id" , description = "id" ),
219240 @ Parameter (name = "Resource" , description = "入参对象" )}, responses = {
220241 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
221- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
242+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
222243 @ ApiResponse (responseCode = "400" , description = "请求失败" )
223244 })
224245 @ SystemControllerLog (description = "修改单个Resource信息" )
@@ -258,7 +279,7 @@ public Result<Resource> deleteResource(@PathVariable Integer id) {
258279 parameters = {
259280 @ Parameter (name = "id" , description = "id" )}, responses = {
260281 @ ApiResponse (responseCode = "200" , description = "返回信息" ,
261- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
282+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
262283 @ ApiResponse (responseCode = "400" , description = "请求失败" )
263284 })
264285 @ SystemControllerLog (description = "获取resource信息详情" )
@@ -277,7 +298,7 @@ public Result<Resource> detail(@PathVariable Integer id) {
277298 parameters = {
278299 @ Parameter (name = "data" , description = "base64编码数据" )}, responses = {
279300 @ ApiResponse (responseCode = "200" , description = "图片流数据" ,
280- content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
301+ content = @ Content (mediaType = "application/json" , schema = @ Schema (implementation = Resource .class ))),
281302 @ ApiResponse (responseCode = "400" , description = "请求失败" )
282303 })
283304 @ SystemControllerLog (description = "获取资源" )
0 commit comments