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.service.ImageUploadLogService; import com.izouma.awesomeadmin.service.OSSFileService; import com.izouma.awesomeadmin.service.OrderImageService; import com.izouma.awesomeadmin.util.ExportExcelUtil; import com.izouma.awesomeadmin.util.PropertiesFileLoader; import org.apache.commons.lang.StringUtils; 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.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.util.*; /** * controller类 */ @Controller @RequestMapping("/orderImage") public class OrderImageController { @Autowired private OrderImageService orderImageService; @Autowired private OSSFileService OSSFileService; @Autowired private ImageUploadLogService imageUploadLogService; /** *

获取全部记录。

*/ @RequiresAuthentication @RequestMapping(value = "/all", method = RequestMethod.GET) @ResponseBody public Result all(OrderImage record) { List pp = orderImageService.getOrderImageList(record); return new Result(true, pp); } /** *

根据Id。

*/ @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); } /** *

根据条件获取。

*/ @RequestMapping(value = "/getOne", method = RequestMethod.GET) @ResponseBody public Result getOne(OrderImage record) { OrderImage data = orderImageService.getOrderImage(record); return new Result(true, data); } /** *

分页查询。

*/ @RequestMapping(value = "/page", method = RequestMethod.GET) @ResponseBody public Result page(Page page, OrderImage record) { Map result = new HashMap<>(); List pp = orderImageService.getOrderImageByPage(page, record); result.put(AppConstant.PAGE, page); result.put("pp", pp); return new Result(true, result); } /** *

保存。

*/ @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, "保存异常"); } /** *

更新信息。

*/ @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, "保存异常"); } /** *

删除。

*/ @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 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); } /** *

返修。

*/ @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 paths = new ArrayList<>(); while (it.hasNext()) { MultipartFile file = multiRequest.getFile(it.next().toString()); if (file != null) { try { String originalFilename = file.getOriginalFilename(); 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.setImageSize(BigDecimal.valueOf(file.getSize())); imageUploadLogService.createImageUploadLog(imageUploadLog); paths.add(imageUploadLog); } catch (IOException e) { e.printStackTrace(); 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 imageUploadLogs = imageUploadLogService.queryDelOssImage(orderId); for (ImageUploadLog imageUploadLog : imageUploadLogs) { String imageName = imageUploadLog.getUrl().replace(PropertiesFileLoader.getProperties("aliImageSever") + "/", ""); OSSFileService.deleteObject(imageName); } 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 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) { orderImage.setFinishedImage(imageUploadLog.getUrl()); orderImage.setFinishedSize(imageUploadLog.getImageSize()); } orderImageService.updateOrderImage(orderImage); } return new Result(true, "保存成功"); } }