SysOssController.java
3.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.gxb.modules.oss.controller;
import com.google.gson.Gson;
import com.gxb.common.utils.*;
import com.gxb.modules.oss.cloud.CloudStorageConfig;
import com.gxb.modules.sys.service.SysConfigService;
import com.gxb.common.exception.RRException;
import com.gxb.modules.oss.entity.SysOssEntity;
import com.gxb.modules.oss.service.SysOssService;
import com.gxb.modules.oss.cloud.OSSFactory;
import com.gxb.common.validator.ValidatorUtils;
import com.gxb.common.validator.group.AliyunGroup;
import com.gxb.common.validator.group.QcloudGroup;
import com.gxb.common.validator.group.QiniuGroup;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 文件上传
*
* @author chenshun
* @email sunlightcs@gmail.com
* @date 2017-03-25 12:13:26
*/
@RestController
@RequestMapping("sys/oss")
public class SysOssController {
@Autowired
private SysOssService sysOssService;
@Autowired
private SysConfigService sysConfigService;
private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY;
/**
* 列表
*/
@RequestMapping("/list")
@RequiresPermissions("sys:oss:all")
public R list(@RequestParam Map<String, Object> params){
//查询列表数据
Query query = new Query(params);
List<SysOssEntity> sysOssList = sysOssService.queryList(query);
int total = sysOssService.queryTotal(query);
PageUtils pageUtil = new PageUtils(sysOssList, total, query.getLimit(), query.getPage());
return R.ok().put("page", pageUtil);
}
/**
* 云存储配置信息
*/
@RequestMapping("/config")
@RequiresPermissions("sys:oss:all")
public R config(){
CloudStorageConfig config = sysConfigService.getConfigObject(KEY, CloudStorageConfig.class);
return R.ok().put("config", config);
}
/**
* 保存云存储配置信息
*/
@RequestMapping("/saveConfig")
@RequiresPermissions("sys:oss:all")
public R saveConfig(@RequestBody CloudStorageConfig config){
//校验类型
ValidatorUtils.validateEntity(config);
if(config.getType() == Constant.CloudService.QINIU.getValue()){
//校验七牛数据
ValidatorUtils.validateEntity(config, QiniuGroup.class);
}else if(config.getType() == Constant.CloudService.ALIYUN.getValue()){
//校验阿里云数据
ValidatorUtils.validateEntity(config, AliyunGroup.class);
}else if(config.getType() == Constant.CloudService.QCLOUD.getValue()){
//校验腾讯云数据
ValidatorUtils.validateEntity(config, QcloudGroup.class);
}
sysConfigService.updateValueByKey(KEY, new Gson().toJson(config));
return R.ok();
}
/**
* 上传文件
*/
@RequestMapping("/upload")
@RequiresPermissions("sys:oss:all")
public R upload(@RequestParam("file") MultipartFile file) throws Exception {
if (file.isEmpty()) {
throw new RRException("上传文件不能为空");
}
//上传文件
String url = OSSFactory.build().upload(file.getBytes());
//保存文件信息
SysOssEntity ossEntity = new SysOssEntity();
ossEntity.setUrl(url);
ossEntity.setCreateDate(new Date());
sysOssService.save(ossEntity);
return R.ok().put("url", url);
}
/**
* 删除
*/
@RequestMapping("/delete")
@RequiresPermissions("sys:oss:all")
public R delete(@RequestBody Long[] ids){
sysOssService.deleteBatch(ids);
return R.ok();
}
}