package com.zy.sc.common.web; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.R; import com.zy.sc.common.service.OssService; import com.zy.sc.manager.entity.Issue; import com.zy.sc.manager.service.IssueService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.util.Date; /** * Created by vincent on 2020/10/7 */ @Slf4j @RestController public class UploadController extends BaseController { @Autowired private OssService ossService; @Autowired private IssueService issueService; @PostMapping("/upload.action") public R upload(MultipartFile file) { log.info("开始上传文件:{};文件大小:{}", file.getOriginalFilename(), file.getSize()); InputStream inputStream = null; try { inputStream = file.getInputStream(); } catch (IOException e) { e.printStackTrace(); } String upload = ossService.upload(inputStream,file.getOriginalFilename()); return R.ok(Cools.add("url", upload)); } @PostMapping("/issue/upload.action") @ManagerAuth(memo = "图片上传") public R sensorUpload(MultipartFile file, @RequestParam("issueId") Long issueId) { Issue issue = issueService.selectById(issueId); if (null == issue) { return R.error("故障不存在"); } String img = issue.getImg(); JSONArray jsonArray = JSON.parseArray(img); if (jsonArray == null) { jsonArray = new JSONArray(); } if (jsonArray.size() >= 5) { return R.error("图片上传数量已到上限"); } // oss InputStream inputStream = null; try { inputStream = file.getInputStream(); } catch (IOException e) { e.printStackTrace(); } String upload = ossService.upload(inputStream,file.getOriginalFilename()); if (Cools.isEmpty(upload)) { return R.error("上传OSS服务失败"); } jsonArray.add(upload); // 持久化 issue.setImg(jsonArray.toJSONString()); issue.setUpdateBy(getUserId()); issue.setUpdateTime(new Date()); if (!issueService.updateById(issue)) { return R.error("上传图片失败"); } return R.ok(Cools.add("src", upload)); } @PostMapping("/issue/remove.action") @ManagerAuth(memo = "图片移除") public R sensorRemove(@RequestParam("issueId") Long issueId, @RequestParam("src") String src) { Issue issue = issueService.selectById(issueId); if (null == issue) { return R.error("设备不存在"); } String img = issue.getImg(); JSONArray jsonArray = JSON.parseArray(img); if (jsonArray == null) { jsonArray = new JSONArray(); } if (jsonArray.size() < 1) { return R.error("没有可删除的图片"); } jsonArray.remove(src); // 持久化 issue.setImg(jsonArray.toJSONString()); issue.setUpdateBy(getUserId()); issue.setUpdateTime(new Date()); if (!issueService.updateById(issue)) { return R.error("删除图片失败"); } return R.ok("删除成功"); } }