package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.mapper.ReceiptMapper; import com.yuanchu.mom.pojo.Receipt; import com.yuanchu.mom.service.ReceiptService; import com.yuanchu.mom.utils.FileSaveUtil; import io.swagger.models.Response; import org.apache.logging.log4j.util.Strings; import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.List; import java.util.Map; /** * 回单表(Receipt)表服务实现类 * * @author zss * @since 2023-08-11 10:08:55 */ @Service public class ReceiptServiceImpl extends ServiceImpl implements ReceiptService { @Resource ReceiptMapper receiptMapper; //查询回单列表 @Override public IPage> selectAllRece(Page page, String name, String orderCode, String type, String deliverTime) { return receiptMapper.selectAllRece(page, name, orderCode, type, deliverTime); } //根据id删除 @Override public void delRece(Integer id) { Receipt receipt = receiptMapper.selectById(id); receipt.setState(0); receiptMapper.updateById(receipt); } //批量删除 @Override public void delAllRece(List ids) { List receipts = receiptMapper.selectBatchIds(ids); for (Receipt receipt : receipts) { receipt.setState(0); receiptMapper.updateById(receipt); } } //上传附件修改状态 @Override public void updRece(Integer id, MultipartFile file) { if (ObjectUtils.isNotEmpty(file)) { Receipt receipt = receiptMapper.selectById(id); receipt.setUrl(FileSaveUtil.StoreFile(file)); receipt.setType(1); receiptMapper.updateById(receipt); } } //根据id查看回单照片 @Override public ResponseEntity selReceDatil(Integer id) throws IOException { String url = receiptMapper.selectById(id).getUrl(); String path = "D:\\webapp\\images\\" + url; //获取图片格式后缀名 String extension = getImageExtension(url); // 读取本地图片文件,并将其转换为字节数组 FileSystemResource imageResource = new FileSystemResource(path); byte[] bytes = Files.readAllBytes(imageResource.getFile().toPath()); // 设置HTTP头信息,告诉浏览器返回的是图片数据 HttpHeaders headers = new HttpHeaders(); headers.setContentType(new MediaType("image", extension)); return new ResponseEntity<>(bytes, headers, HttpStatus.OK); } private String getImageExtension(String imageName) { // 根据图片文件名获取扩展名 int dotIndex = imageName.lastIndexOf('.'); if (dotIndex > 0 && dotIndex < imageName.length() - 1) { return imageName.substring(dotIndex + 1); } return null; } }