| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- package com.izouma.awesomeadmin.web;
- import com.izouma.awesomeadmin.constant.AppConstant;
- import com.izouma.awesomeadmin.dto.Page;
- import com.izouma.awesomeadmin.dto.Result;
- import com.izouma.awesomeadmin.model.ImageUploadLog;
- import com.izouma.awesomeadmin.model.OrderImage;
- import com.izouma.awesomeadmin.model.UserOrder;
- import com.izouma.awesomeadmin.service.ImageUploadLogService;
- import com.izouma.awesomeadmin.service.OSSFileService;
- import com.izouma.awesomeadmin.service.OrderImageService;
- import com.izouma.awesomeadmin.service.UserOrderService;
- import com.izouma.awesomeadmin.util.ExportExcelUtil;
- import com.izouma.awesomeadmin.util.ImagesUtil;
- import com.izouma.awesomeadmin.util.PropertiesFileLoader;
- import org.apache.commons.lang.StringUtils;
- import org.apache.log4j.Logger;
- import org.apache.shiro.authz.annotation.RequiresAuthentication;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.multipart.MultipartHttpServletRequest;
- import org.springframework.web.multipart.commons.CommonsMultipartResolver;
- import javax.imageio.ImageIO;
- import javax.imageio.stream.ImageInputStream;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.math.BigDecimal;
- import java.util.*;
- import java.util.List;
- /**
- * controller类
- */
- @Controller
- @RequestMapping("/orderImage")
- public class OrderImageController {
- /**
- * 日志对象zipFilesDown
- */
- private static Logger logger = Logger.getLogger(OrderImageController.class);
- @Autowired
- private OrderImageService orderImageService;
- @Autowired
- private UserOrderService userOrderService;
- @Autowired
- private OSSFileService OSSFileService;
- @Autowired
- private ImageUploadLogService imageUploadLogService;
- /**
- * <p>获取全部记录。</p>
- */
- @RequiresAuthentication
- @RequestMapping(value = "/all", method = RequestMethod.GET)
- @ResponseBody
- public Result all(OrderImage record) {
- List<OrderImage> pp = orderImageService.getOrderImageList(record);
- return new Result(true, pp);
- }
- /**
- * <p>根据Id。</p>
- */
- @RequestMapping(value = "/getOrderImage", method = RequestMethod.GET)
- @ResponseBody
- public Result getOrderImage(@RequestParam(required = false, value = "id") String id) {
- OrderImage data = orderImageService.getOrderImageById(id);
- return new Result(true, data);
- }
- /**
- * <p>根据条件获取。</p>
- */
- @RequestMapping(value = "/getOne", method = RequestMethod.GET)
- @ResponseBody
- public Result getOne(OrderImage record) {
- OrderImage data = orderImageService.getOrderImage(record);
- return new Result(true, data);
- }
- /**
- * <p>分页查询。</p>
- */
- @RequestMapping(value = "/page", method = RequestMethod.GET)
- @ResponseBody
- public Result page(Page page, OrderImage record) {
- Map<String, Object> result = new HashMap<>();
- List<OrderImage> pp = orderImageService.getOrderImageByPage(page, record);
- result.put(AppConstant.PAGE, page);
- result.put("pp", pp);
- return new Result(true, result);
- }
- /**
- * <p>保存。</p>
- */
- @RequestMapping(value = "/save", method = RequestMethod.POST)
- @ResponseBody
- public Result save(OrderImage record) {
- boolean num = orderImageService.createOrderImage(record);
- if (num) {
- return new Result(true, record.getId());
- }
- return new Result(false, "保存异常");
- }
- /**
- * <p>更新信息。</p>
- */
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- @ResponseBody
- public Result updateOrderImage(OrderImage record) {
- boolean num = orderImageService.updateOrderImage(record);
- if (num) {
- return new Result(true, "保存成功");
- }
- return new Result(false, "保存异常");
- }
- /**
- * <p>删除。</p>
- */
- @RequestMapping(value = "/del", method = RequestMethod.POST)
- @ResponseBody
- public Result deleteOrderImage(@RequestParam(required = true, value = "id") String id) {
- boolean num = orderImageService.deleteOrderImage(id);
- if (num) {
- return new Result(true, "删除成功");
- }
- return new Result(false, "删除异常");
- }
- /**
- * 导出Excel
- *
- * @param request
- * @param response
- * @param record
- * @throws Exception
- */
- @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
- @ResponseBody
- public void exportExcel(HttpServletRequest request, HttpServletResponse response, OrderImage record) throws Exception {
- List<OrderImage> orderImages = orderImageService.getOrderImageList(record);
- String sheetName = "order_image";
- String titleName = "订单图片数据表";
- String fileName = "订单图片表";
- int columnNumber = 16;
- int[] columnWidth = {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20};
- String[] columnName = {"", "删除标识", "更新时间", "更新人", "创建时间", "创建人", "订单", "用户", "店铺", "原片地址", "原片大小", "成片地址", "成片大小", "修图人", "状态", "备注"};
- String[][] dataList = new String[orderImages.size()][16];
- for (int i = 0; i < orderImages.size(); i++) {
- dataList[i][0] = String.valueOf(orderImages.get(i).getId());
- dataList[i][1] = String.valueOf(orderImages.get(i).getDelFlag());
- dataList[i][2] = String.valueOf(orderImages.get(i).getUpdateTime());
- dataList[i][3] = String.valueOf(orderImages.get(i).getUpdateUser());
- dataList[i][4] = String.valueOf(orderImages.get(i).getCreateTime());
- dataList[i][5] = String.valueOf(orderImages.get(i).getCreateUser());
- dataList[i][6] = String.valueOf(orderImages.get(i).getOrderId());
- dataList[i][7] = String.valueOf(orderImages.get(i).getUserId());
- dataList[i][8] = String.valueOf(orderImages.get(i).getStoreId());
- dataList[i][9] = String.valueOf(orderImages.get(i).getOriginalImage());
- dataList[i][10] = String.valueOf(orderImages.get(i).getOriginalSize());
- dataList[i][11] = String.valueOf(orderImages.get(i).getFinishedImage());
- dataList[i][12] = String.valueOf(orderImages.get(i).getFinishedSize());
- dataList[i][13] = String.valueOf(orderImages.get(i).getDealUser());
- dataList[i][14] = String.valueOf(orderImages.get(i).getStatusFlag());
- dataList[i][15] = String.valueOf(orderImages.get(i).getRemark());
- }
- ExportExcelUtil.ExportWithResponse(sheetName, titleName, fileName,
- columnNumber, columnWidth, columnName, dataList, response);
- }
- /**
- * <p>返修。</p>
- */
- @RequestMapping(value = "/repair", method = RequestMethod.POST)
- @ResponseBody
- public Result repair(OrderImage record) {
- boolean num = orderImageService.repair(record);
- if (num) {
- return new Result(true, "保存成功");
- }
- return new Result(false, "保存异常");
- }
- @RequestMapping(value = "/uploadFileForOrder")
- @ResponseBody
- public Result uploadFile(HttpServletRequest request, String storeId, String orderId, String userId, String typeFlag) {
- CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
- if (multipartResolver.isMultipart(request)) {
- MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
- Iterator it = multiRequest.getFileNames();
- List<ImageUploadLog> paths = new ArrayList<>();
- while (it.hasNext()) {
- MultipartFile file = multiRequest.getFile(it.next().toString());
- if (file != null) {
- try {
- String originalFilename = file.getOriginalFilename();
- long srcSize = file.getSize();
- String uploadPath = storeId + "/" + orderId + "/" + typeFlag + "/" + originalFilename;
- String path = OSSFileService.upload(file.getInputStream(), uploadPath);
- ImageUploadLog imageUploadLog = new ImageUploadLog();
- imageUploadLog.setStoreId(storeId);
- imageUploadLog.setOrderId(orderId);
- imageUploadLog.setTypeFlag(typeFlag);
- imageUploadLog.setUserId(userId);
- imageUploadLog.setImageName(originalFilename);
- imageUploadLog.setUrl(path);
- imageUploadLog.setArtworkUrl(path);
- imageUploadLog.setImageSize(BigDecimal.valueOf(file.getSize()));
- int bigSize = 2 * 1024 * 1024;
- if (srcSize > bigSize) {
- String minPath = storeId + "/" + orderId + "/" + typeFlag + "/" + "min/" + originalFilename;
- String min = OSSFileService.upload(ImagesUtil.changeMinPhoto(
- file.getInputStream(),
- originalFilename.split("[.]")[1],
- 2000, 1), minPath);
- imageUploadLog.setUrl(min);
- }
- imageUploadLogService.createImageUploadLog(imageUploadLog);
- paths.add(imageUploadLog);
- } catch (IOException e) {
- logger.error("上传订单图片失败", e);
- return new Result(false, "上传失败");
- }
- }
- }
- return new Result(true, paths);
- }
- return new Result(false, "上传失败");
- }
- /**
- * 清空未使用图片
- *
- * @param orderId
- * @return
- */
- @RequestMapping(value = "/delOssImage", method = RequestMethod.POST)
- @ResponseBody
- public Result delOssImage(@RequestParam(required = true, value = "orderId") String orderId) {
- List<ImageUploadLog> imageUploadLogs = imageUploadLogService.queryDelOssImage(orderId);
- for (ImageUploadLog imageUploadLog : imageUploadLogs) {
- String imageName = imageUploadLog.getUrl().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- OSSFileService.deleteObject(imageName);
- if (StringUtils.isNotEmpty(imageUploadLog.getArtworkUrl()) && !imageUploadLog.getUrl().equals(imageUploadLog.getArtworkUrl())) {
- String artwork = imageUploadLog.getArtworkUrl().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- OSSFileService.deleteObject(artwork);
- }
- }
- return new Result(true, "删除成功");
- }
- /**
- * 批量更新成片
- *
- * @param orderId
- * @param imageIds
- * @return
- */
- @RequestMapping(value = "/updateFinishedImages", method = RequestMethod.POST)
- @ResponseBody
- public Result updateFinishedImages(@RequestParam(required = true, value = "orderId") String orderId, @RequestParam(required = true, value = "imageIds") String imageIds) {
- ImageUploadLog record = new ImageUploadLog();
- record.setOrderId(orderId);
- record.setIdStr(imageIds);
- List<ImageUploadLog> imageUploadLogs = imageUploadLogService.getImageUploadLogList(record);
- for (ImageUploadLog imageUploadLog : imageUploadLogs) {
- OrderImage orderImage = new OrderImage();
- orderImage.setOrderId(orderId);
- orderImage.setImageName(imageUploadLog.getImageName());
- orderImage = orderImageService.getOrderImage(orderImage);
- if (orderImage != null) {
- if (orderImage.getStatusFlag() != 1) {
- orderImage.setStatusFlag(0);
- orderImage.setFinishedImage(imageUploadLog.getUrl());
- orderImage.setFinishedSize(imageUploadLog.getImageSize());
- orderImage.setFinishedArtwork(imageUploadLog.getArtworkUrl());
- orderImageService.updateOrderImage(orderImage);
- }
- }
- }
- return new Result(true, "保存成功");
- }
- /**
- * 获取店铺存储情况
- *
- * @param record
- * @return
- */
- @RequestMapping(value = "/getMemorySize", method = RequestMethod.GET)
- @ResponseBody
- public Result getMemorySize(OrderImage record) {
- OrderImage data = orderImageService.getMemorySize(record);
- return new Result(true, data);
- }
- /**
- * 下载压缩包
- *
- * @param orderId 订单ID
- * @param typeFlag 类型 original / finished
- * @param request
- * @param response
- * @return
- */
- @RequestMapping(value = "/zipFilesDown", method = RequestMethod.GET)
- @ResponseBody
- public void zipFilesDown(@RequestParam(required = true, value = "orderId") String orderId,
- @RequestParam(required = true, value = "typeFlag") String typeFlag,
- HttpServletRequest request, HttpServletResponse response) {
- try {
- OrderImage record = new OrderImage();
- record.setOrderId(orderId);
- List<OrderImage> orderImageList = orderImageService.getOrderImageList(record);
- if (orderImageList.size() > 0) {
- UserOrder userOrder = userOrderService.getUserOrderById(orderId);
- if (userOrder != null) {
- List<String> keyList = new ArrayList<>();
- String zipName = userOrder.getOrderCode() + "_" + typeFlag;
- for (OrderImage orderImage : orderImageList) {
- if ("original".equals(typeFlag)) {
- if (StringUtils.isNotEmpty(orderImage.getOriginalImage())) {
- if (StringUtils.isNotEmpty(orderImage.getOriginalArtwork())) {
- String imageName = orderImage.getOriginalArtwork().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- keyList.add(imageName);
- } else {
- String imageName = orderImage.getOriginalImage().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- keyList.add(imageName);
- }
- }
- } else if ("finished".equals(typeFlag)) {
- if (StringUtils.isNotEmpty(orderImage.getFinishedImage())) {
- if (StringUtils.isNotEmpty(orderImage.getFinishedArtwork())) {
- String imageName = orderImage.getFinishedArtwork().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- keyList.add(imageName);
- } else {
- String imageName = orderImage.getFinishedImage().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- keyList.add(imageName);
- }
- //更新成已下载
- orderImage.setDownloadFlag("Y");
- orderImageService.updateOrderImage(orderImage);
- }
- }
- }
- if (keyList.size() > 0) {
- OSSFileService.zipFilesDown(keyList, zipName, request, response);
- }
- }
- }
- } catch (Exception e) {
- logger.error("zipFilesDown,批量下载异常", e);
- }
- }
- /**
- * 单张下载
- *
- * @param id orderImage id
- * @param typeFlag 类型 original / finished
- * @param request
- * @param response
- */
- @RequestMapping(value = "/singleFileDown", method = RequestMethod.GET)
- @ResponseBody
- public void singleFileDown(@RequestParam(required = true, value = "id") String id,
- @RequestParam(required = true, value = "typeFlag") String typeFlag,
- HttpServletRequest request, HttpServletResponse response) {
- try {
- OrderImage orderImage = orderImageService.getOrderImageById(id);
- if (orderImage != null) {
- if ("original".equals(typeFlag)) {
- if (StringUtils.isNotEmpty(orderImage.getOriginalImage())) {
- if (StringUtils.isNotEmpty(orderImage.getOriginalArtwork())) {
- String imageName = orderImage.getOriginalArtwork().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- OSSFileService.singleFileDown(imageName, request, response);
- } else {
- String imageName = orderImage.getOriginalImage().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- OSSFileService.singleFileDown(imageName, request, response);
- }
- }
- } else if ("finished".equals(typeFlag)) {
- if (StringUtils.isNotEmpty(orderImage.getFinishedImage())) {
- if (StringUtils.isNotEmpty(orderImage.getFinishedArtwork())) {
- String imageName = orderImage.getFinishedArtwork().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- OSSFileService.singleFileDown(imageName, request, response);
- } else {
- String imageName = orderImage.getFinishedImage().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", "");
- OSSFileService.singleFileDown(imageName, request, response);
- }
- //更新成已下载
- orderImage.setDownloadFlag("Y");
- orderImageService.updateOrderImage(orderImage);
- }
- }
- }
- } catch (Exception e) {
- logger.error("singleFileDown,单张下载异常", e);
- }
- }
- @RequestMapping(value = "/autoCleanOrderImage", method = RequestMethod.GET)
- @ResponseBody
- public Result autoCleanOrderImage() {
- return orderImageService.autoCleanOrderImage(null);
- }
- }
|