7 changed files with 571 additions and 0 deletions
-
310src/main/java/com/gaotao/common/utils/ImageUtils.java
-
47src/main/java/com/gaotao/modules/label/controller/LabelMaintenanceController.java
-
48src/main/java/com/gaotao/modules/label/entity/LabelMaintenanceData.java
-
25src/main/java/com/gaotao/modules/label/mapper/LabelMaintenanceMapper.java
-
19src/main/java/com/gaotao/modules/label/service/LabelMaintenanceService.java
-
100src/main/java/com/gaotao/modules/label/service/impl/LabelMaintenanceServiceImpl.java
-
22src/main/resources/mapper/label/LabelMaintenance.xml
@ -0,0 +1,310 @@ |
|||||
|
package com.gaotao.common.utils; |
||||
|
|
||||
|
|
||||
|
import org.springframework.core.io.ClassPathResource; |
||||
|
import org.springframework.core.io.Resource; |
||||
|
|
||||
|
import javax.imageio.ImageIO; |
||||
|
import java.awt.*; |
||||
|
import java.awt.image.BufferedImage; |
||||
|
import java.io.*; |
||||
|
import java.util.Base64; |
||||
|
|
||||
|
/* |
||||
|
* @Description 图片工具类 |
||||
|
* @Title ImageUtils |
||||
|
* @author Yangzz |
||||
|
* @date 2023/11/27 14:19 |
||||
|
*/ |
||||
|
public class ImageUtils { |
||||
|
|
||||
|
/* |
||||
|
* @Author yzz |
||||
|
* @Description 图片转Base64字符串 |
||||
|
* @Date 14/8/2024 |
||||
|
* @param imagePath |
||||
|
* @return String |
||||
|
*/ |
||||
|
public static String convertImageToBase64(String imagePath) { |
||||
|
String base64Image = ""; |
||||
|
|
||||
|
try { |
||||
|
// 使用ClassPathResource获取资源 |
||||
|
Resource resource = new ClassPathResource(imagePath); |
||||
|
|
||||
|
// 读取资源文件并转换为字节数组 |
||||
|
try (InputStream imageInFile = resource.getInputStream()) { |
||||
|
byte[] imageData = new byte[(int) resource.contentLength()]; |
||||
|
imageInFile.read(imageData); |
||||
|
|
||||
|
// 使用Base64编码 |
||||
|
base64Image = Base64.getEncoder().encodeToString(imageData); |
||||
|
} |
||||
|
|
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
|
||||
|
return base64Image; |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
* @Author yzz |
||||
|
* @Description 图片转Base64字符串 |
||||
|
* @Date 14/8/2024 |
||||
|
* @param imagePath |
||||
|
* @return String |
||||
|
*/ |
||||
|
public static String imageToBase64String(String imagePath) { |
||||
|
String base64Image = ""; |
||||
|
|
||||
|
try { |
||||
|
// 创建File对象,指向本地文件系统中的图片路径 |
||||
|
File file = new File(imagePath); |
||||
|
|
||||
|
// 检查文件是否存在 |
||||
|
if (!file.exists()) { |
||||
|
System.out.println("文件不存在:" + imagePath); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
// 使用FileInputStream读取文件 |
||||
|
try (FileInputStream imageInFile = new FileInputStream(file)) { |
||||
|
byte imageData[] = new byte[(int) file.length()]; |
||||
|
imageInFile.read(imageData); |
||||
|
|
||||
|
// 使用Base64编码 |
||||
|
base64Image = Base64.getEncoder().encodeToString(imageData); |
||||
|
} |
||||
|
|
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
return base64Image; |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
* @Author yzz |
||||
|
* @Description 图片转Base64字符串 |
||||
|
* @Date 14/8/2024 |
||||
|
* @param null |
||||
|
*/ |
||||
|
public static String imageToBase64String2(String imagePath, float quality) { |
||||
|
String base64Image = ""; |
||||
|
|
||||
|
try { |
||||
|
// 创建File对象,指向本地文件系统中的图片路径 |
||||
|
File file = new File(imagePath); |
||||
|
|
||||
|
// 检查文件是否存在 |
||||
|
if (!file.exists()) { |
||||
|
System.out.println("文件不存在:" + imagePath); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
// 读取图片 |
||||
|
BufferedImage originalImage = ImageIO.read(file); |
||||
|
|
||||
|
// 调整图像尺寸(例如将宽高各缩小为原来的50%) |
||||
|
int newWidth = originalImage.getWidth() / 2; |
||||
|
int newHeight = originalImage.getHeight() / 2; |
||||
|
BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB); |
||||
|
Graphics2D g = resizedImage.createGraphics(); |
||||
|
g.drawImage(originalImage, 0, 0, newWidth, newHeight, null); |
||||
|
g.dispose(); |
||||
|
|
||||
|
// 将图像写入字节数组,并使用PNG格式 |
||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
||||
|
ImageIO.write(resizedImage, "png", baos); |
||||
|
|
||||
|
// 使用Base64编码 |
||||
|
byte[] imageData = baos.toByteArray(); |
||||
|
base64Image = Base64.getEncoder().encodeToString(imageData); |
||||
|
|
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
return base64Image; |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
* @Author yzz |
||||
|
* @Description 图片转base64字符串 |
||||
|
* @Date 14/8/2024 |
||||
|
* @param imagePath |
||||
|
* @return String |
||||
|
*/ |
||||
|
public static String imageToBase64StringTest(String imagePath) { |
||||
|
String base64Image = ""; |
||||
|
|
||||
|
try { |
||||
|
// 创建File对象,指向本地文件系统中的图片路径 |
||||
|
File file = new File(imagePath); |
||||
|
|
||||
|
// 检查文件是否存在 |
||||
|
if (!file.exists()) { |
||||
|
System.out.println("文件不存在:" + imagePath); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
// 读取图片 |
||||
|
BufferedImage originalImage = ImageIO.read(file); |
||||
|
|
||||
|
// 将图像写入字节数组,并使用PNG格式 |
||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
||||
|
ImageIO.write(originalImage, "png", baos); |
||||
|
|
||||
|
// 使用Base64编码 |
||||
|
byte[] imageData = baos.toByteArray(); |
||||
|
base64Image = Base64.getEncoder().encodeToString(imageData); |
||||
|
|
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
return base64Image; |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
* @Author yzz |
||||
|
* @Description 文字转透明背景图片 |
||||
|
* @Date 14/8/2024 |
||||
|
* @param text |
||||
|
* @return String |
||||
|
*/ |
||||
|
public static String textToBase64String(String text) { |
||||
|
String base64Image = ""; |
||||
|
|
||||
|
try { |
||||
|
// 文本内容,包含换行符 |
||||
|
//String text = "这是第一行文字\n这是第二行文字\n这是第三行文字"; |
||||
|
// 将所有类型的换行符统一为 \n |
||||
|
text = text.replace("\r\n", "\n").replace("\r", "\n"); |
||||
|
// 字体设置 |
||||
|
Font font = new Font("Arial", Font.PLAIN, 40); |
||||
|
|
||||
|
// 计算最大文本宽度和总高度 |
||||
|
BufferedImage tempImg = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB); |
||||
|
Graphics2D g2dTemp = tempImg.createGraphics(); |
||||
|
g2dTemp.setFont(font); |
||||
|
FontMetrics fm = g2dTemp.getFontMetrics(); |
||||
|
|
||||
|
String[] lines = text.split("\n"); |
||||
|
int maxWidth = 0; |
||||
|
int totalHeight = 0; |
||||
|
|
||||
|
for (String line : lines) { |
||||
|
int lineWidth = fm.stringWidth(line); |
||||
|
maxWidth = Math.max(maxWidth, lineWidth); |
||||
|
totalHeight += fm.getHeight(); |
||||
|
} |
||||
|
g2dTemp.dispose(); |
||||
|
|
||||
|
// 创建透明背景的BufferedImage |
||||
|
BufferedImage image = new BufferedImage(maxWidth, totalHeight, BufferedImage.TYPE_INT_ARGB); |
||||
|
Graphics2D g2d = image.createGraphics(); |
||||
|
|
||||
|
// 设置抗锯齿和透明度 |
||||
|
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); |
||||
|
g2d.setFont(font); |
||||
|
g2d.setColor(new Color(0, 0, 0, 255)); // 黑色文字,完全不透明 |
||||
|
|
||||
|
// 绘制文本,每行独立绘制 |
||||
|
int y = fm.getAscent(); |
||||
|
for (String line : lines) { |
||||
|
g2d.drawString(line, 0, y); |
||||
|
y += fm.getHeight(); |
||||
|
} |
||||
|
g2d.dispose(); |
||||
|
|
||||
|
// 将图片转换为字节数组 |
||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
||||
|
ImageIO.write(image, "png", baos); |
||||
|
byte[] imageBytes = baos.toByteArray(); |
||||
|
|
||||
|
// 将字节数组编码为Base64字符串 |
||||
|
base64Image = Base64.getEncoder().encodeToString(imageBytes); |
||||
|
|
||||
|
// 输出Base64字符串 |
||||
|
//System.out.println("Base64字符串: " + base64String); |
||||
|
|
||||
|
} catch (Exception ex) { |
||||
|
ex.printStackTrace(); |
||||
|
} |
||||
|
|
||||
|
return base64Image; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将项目内的JPG图片资源转换为压缩后的PNG格式,并返回Base64字符串 |
||||
|
* @param imagePath 项目内图片的资源路径,例如 "images/sample.jpg" |
||||
|
* @param scale 缩放比例(0.0 ~ 1.0),例如 0.5 表示将图片尺寸缩小到原来的 50% |
||||
|
* @return 压缩后的PNG格式图片的Base64字符串 |
||||
|
* @throws IOException 如果文件读取或写入时出错 |
||||
|
*/ |
||||
|
public static String convertJpgToPngBase64(String imagePath, double scale) throws IOException { |
||||
|
// 使用ClassPathResource获取项目内的图片资源 |
||||
|
Resource resource = new ClassPathResource(imagePath); |
||||
|
|
||||
|
// 获取输入流读取图片数据 |
||||
|
InputStream inputStream = resource.getInputStream(); |
||||
|
|
||||
|
// 读取JPG格式的输入图片 |
||||
|
BufferedImage jpgImage = ImageIO.read(inputStream); |
||||
|
|
||||
|
// 计算压缩后的宽度和高度 |
||||
|
int width = (int) (jpgImage.getWidth() * scale); |
||||
|
int height = (int) (jpgImage.getHeight() * scale); |
||||
|
|
||||
|
// 创建压缩后的图片 |
||||
|
Image scaledImage = jpgImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); |
||||
|
BufferedImage compressedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); |
||||
|
|
||||
|
// 将压缩后的图片绘制到BufferedImage上 |
||||
|
Graphics2D g2d = compressedImage.createGraphics(); |
||||
|
g2d.drawImage(scaledImage, 0, 0, null); |
||||
|
g2d.dispose(); |
||||
|
|
||||
|
// 创建一个字节数组输出流,用于保存PNG图片的字节数据 |
||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); |
||||
|
|
||||
|
// 将压缩后的图片写入输出流,以PNG格式输出 |
||||
|
ImageIO.write(compressedImage, "png", outputStream); |
||||
|
|
||||
|
// 将输出流转换为字节数组 |
||||
|
byte[] pngBytes = outputStream.toByteArray(); |
||||
|
|
||||
|
// 将字节数组编码为Base64字符串 |
||||
|
String base64String = Base64.getEncoder().encodeToString(pngBytes); |
||||
|
|
||||
|
// 关闭流 |
||||
|
inputStream.close(); |
||||
|
outputStream.close(); |
||||
|
|
||||
|
return base64String; |
||||
|
} |
||||
|
|
||||
|
public static void main(String[] args) throws IOException { |
||||
|
// 示例用法 |
||||
|
/*String imagePath = "D:\\ckp-file\\2024-08-01\\4d09dd5f-8f49-41dd-90f0-2aa23eaa7f95.png"; |
||||
|
String base64Image1 = imageToBase64String(imagePath); |
||||
|
String base64Image2 = imageToBase64String(imagePath,1f); |
||||
|
String base64Image3 = imageToBase64StringTest(imagePath); |
||||
|
|
||||
|
System.out.println("Base64 encoded image WYS:\n" + base64Image1); |
||||
|
System.out.println("Base64 encoded image YS:\n" + base64Image2); |
||||
|
System.out.println("Base64 encoded image YS:\n" + base64Image3);*/ |
||||
|
String imagePath = "static/img/logoR.jpg"; |
||||
|
String base64Image1 = convertJpgToPngBase64(imagePath,0.8); |
||||
|
|
||||
|
System.out.println("Base64 encoded image WYS:\n" + base64Image1); |
||||
|
/*String imagePath = "IC:3356B-TR7240R\nContainslC:3356B-WRTZ2000"; |
||||
|
String s = textToBase64String(imagePath); |
||||
|
System.out.println(s);*/ |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,47 @@ |
|||||
|
package com.gaotao.modules.label.controller; |
||||
|
|
||||
|
import com.gaotao.common.utils.PageUtils; |
||||
|
import com.gaotao.common.utils.R; |
||||
|
import com.gaotao.modules.label.entity.LabelMaintenanceData; |
||||
|
import com.gaotao.modules.label.service.LabelMaintenanceService; |
||||
|
import com.gaotao.modules.manufacturer.data.ManufacturerInformationData; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
/** |
||||
|
* @description: |
||||
|
* @author: jiayang_yue |
||||
|
* @date: 2025/5/22 17:17 |
||||
|
* @param: |
||||
|
* @return: |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("/label/maintenance") |
||||
|
public class LabelMaintenanceController { |
||||
|
|
||||
|
@Autowired |
||||
|
private LabelMaintenanceService labelMaintenanceService; |
||||
|
|
||||
|
/** |
||||
|
* @description: 获取图片列表 |
||||
|
* @author: yjy |
||||
|
* @date: 2025/5/22 17:17 |
||||
|
* @param: [data] |
||||
|
* @return: com.gaotao.common.utils.R |
||||
|
**/ |
||||
|
@PostMapping |
||||
|
@ResponseBody |
||||
|
public R labelMaintenanceInfoSearch(@RequestBody LabelMaintenanceData data) { |
||||
|
PageUtils page = labelMaintenanceService.labelMaintenanceInfoSearch(data); |
||||
|
return R.ok().put("page", page); |
||||
|
} |
||||
|
|
||||
|
@PostMapping("/upload") |
||||
|
@ResponseBody |
||||
|
public R uploadLabelMaintenancePicture(@RequestParam("file") MultipartFile file, |
||||
|
@ModelAttribute LabelMaintenanceData data) { |
||||
|
labelMaintenanceService.upload(file,data); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,48 @@ |
|||||
|
package com.gaotao.modules.label.entity; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.annotation.IdType; |
||||
|
import com.baomidou.mybatisplus.annotation.TableField; |
||||
|
import com.baomidou.mybatisplus.annotation.TableId; |
||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
import com.gaotao.common.utils.QueryPage; |
||||
|
import lombok.Data; |
||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||
|
|
||||
|
/** |
||||
|
* @TableName base_picture |
||||
|
*/ |
||||
|
@TableName(value ="base_picture") |
||||
|
@Data |
||||
|
public class LabelMaintenanceData extends QueryPage { |
||||
|
|
||||
|
@TableId(value = "picture_no",type = IdType.AUTO) |
||||
|
private Long pictureNo; |
||||
|
|
||||
|
@TableField(value = "picture_desc") |
||||
|
private String pictureDesc; |
||||
|
|
||||
|
private String pictureUrl; |
||||
|
|
||||
|
private String pictureFileName; |
||||
|
|
||||
|
private String pictureNewFileName; |
||||
|
|
||||
|
private String pictureType; |
||||
|
|
||||
|
private String createBy; |
||||
|
|
||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
||||
|
private Date createTime; |
||||
|
|
||||
|
private String certificationNo; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private String pictureBase64; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private String userName; |
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
package com.gaotao.modules.label.mapper; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import com.gaotao.modules.label.entity.LabelMaintenanceData; |
||||
|
import com.gaotao.modules.manufacturer.data.ManufacturerInformationData; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
/** |
||||
|
* @author jia |
||||
|
* @description 针对表【base_picture】的数据库操作Mapper |
||||
|
* @createDate 2025-05-22 17:09:18 |
||||
|
* @Entity com/gaotao/modules/label.entity.BasePictureData |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface LabelMaintenanceMapper extends BaseMapper<LabelMaintenanceData> { |
||||
|
IPage<LabelMaintenanceData> labelMaintenanceInfoSearch(Page<LabelMaintenanceData> labelMaintenanceDataPage,@Param("query") LabelMaintenanceData data); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,19 @@ |
|||||
|
package com.gaotao.modules.label.service; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
import com.gaotao.common.utils.PageUtils; |
||||
|
import com.gaotao.modules.label.entity.LabelMaintenanceData; |
||||
|
import com.gaotao.modules.manufacturer.data.ManufacturerInformationData; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
/** |
||||
|
* @author jia |
||||
|
* @description 针对表【base_picture】的数据库操作Service |
||||
|
* @createDate 2025-05-22 17:09:18 |
||||
|
*/ |
||||
|
public interface LabelMaintenanceService extends IService<LabelMaintenanceData> { |
||||
|
|
||||
|
PageUtils labelMaintenanceInfoSearch(LabelMaintenanceData data); |
||||
|
|
||||
|
void upload(MultipartFile file, LabelMaintenanceData data); |
||||
|
} |
||||
@ -0,0 +1,100 @@ |
|||||
|
package com.gaotao.modules.label.service.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.gaotao.common.utils.ImageUtils; |
||||
|
import com.gaotao.common.utils.PageUtils; |
||||
|
import com.gaotao.modules.label.entity.LabelMaintenanceData; |
||||
|
import com.gaotao.modules.label.mapper.LabelMaintenanceMapper; |
||||
|
import com.gaotao.modules.label.service.LabelMaintenanceService; |
||||
|
import com.gaotao.modules.manufacturer.data.ManufacturerInformationData; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
import java.nio.file.Files; |
||||
|
import java.nio.file.Path; |
||||
|
import java.nio.file.Paths; |
||||
|
import java.time.LocalDate; |
||||
|
import java.util.Date; |
||||
|
import java.util.List; |
||||
|
import java.util.UUID; |
||||
|
|
||||
|
/** |
||||
|
* @author jia |
||||
|
* @description 针对表【base_picture】的数据库操作Service实现 |
||||
|
* @createDate 2025-05-22 17:09:18 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class LabelMaintenanceServiceImpl extends ServiceImpl<LabelMaintenanceMapper, LabelMaintenanceData> |
||||
|
implements LabelMaintenanceService { |
||||
|
|
||||
|
@Override |
||||
|
public PageUtils labelMaintenanceInfoSearch(LabelMaintenanceData data) { |
||||
|
IPage<LabelMaintenanceData> resultList = baseMapper.labelMaintenanceInfoSearch(new Page<LabelMaintenanceData>(data.getPage(), data.getLimit()), data); |
||||
|
List<LabelMaintenanceData> pictureData = resultList.getRecords(); |
||||
|
for (int i = 0; i <pictureData.size(); i++) { |
||||
|
if (!(pictureData.get(i).getPictureUrl() == null || "".equals(pictureData.get(i).getPictureUrl()))){ |
||||
|
String base64iMG = ImageUtils.imageToBase64String(pictureData.get(i).getPictureUrl()); |
||||
|
pictureData.get(i).setPictureBase64("data:image/"+pictureData.get(i).getPictureType()+";base64,"+base64iMG); |
||||
|
} |
||||
|
} |
||||
|
resultList.setRecords(pictureData); |
||||
|
return new PageUtils(resultList); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void upload(MultipartFile file, LabelMaintenanceData data) { |
||||
|
// 定义文件保存的根路径 |
||||
|
String rootPath = "D:/ckp-file/"; |
||||
|
// 创建存储的日期目录,如:/2022-01-25/ |
||||
|
String datePath = LocalDate.now().toString(); |
||||
|
Path fullPath = Paths.get(rootPath, datePath); |
||||
|
// 判断目录是否存在,不存在则创建 |
||||
|
try { |
||||
|
Files.createDirectories(fullPath); |
||||
|
} catch (IOException e) { |
||||
|
// 处理异常 |
||||
|
throw new RuntimeException(e); |
||||
|
} |
||||
|
// 将文件保存到路径下 |
||||
|
try { |
||||
|
String fileName = file.getOriginalFilename(); |
||||
|
assert fileName != null; |
||||
|
String extension = fileName.substring(fileName.lastIndexOf('.')); |
||||
|
// 定义新的文件名 |
||||
|
String fileType = fileName.substring(fileName.lastIndexOf(".") + 1); |
||||
|
String newFileName = UUID.randomUUID()+ extension; |
||||
|
Path filePath = Paths.get(fullPath.toString(), newFileName); |
||||
|
|
||||
|
// 判断文件类型 是否是图片 |
||||
|
if (!fileType.equalsIgnoreCase("jpg") &&!fileType.equalsIgnoreCase("png") &&!fileType.equalsIgnoreCase("jpeg")) { |
||||
|
// 不是图片,抛出异常 |
||||
|
throw new RuntimeException("请上传 jpg,png,jpeg 格式的图片!"); |
||||
|
} |
||||
|
String certificationNo = data.getCertificationNo(); |
||||
|
file.transferTo(filePath.toFile()); |
||||
|
data.setPictureType(fileType); |
||||
|
data.setPictureUrl(filePath.toString()); |
||||
|
data.setPictureFileName(fileName); |
||||
|
data.setPictureNewFileName(newFileName); |
||||
|
data.setCertificationNo(null); |
||||
|
data.setCreateTime(new Date()); |
||||
|
baseMapper.insert(data); |
||||
|
if (certificationNo.equals("CC")){ |
||||
|
data.setCertificationNo("A" + data.getPictureNo()); |
||||
|
baseMapper.updateById(data); |
||||
|
} |
||||
|
} catch (IOException e) { |
||||
|
// 处理异常 |
||||
|
throw new RuntimeException(e); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,22 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper |
||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.gaotao.modules.label.mapper.LabelMaintenanceMapper"> |
||||
|
|
||||
|
<select id="labelMaintenanceInfoSearch" resultType="com.gaotao.modules.label.entity.LabelMaintenanceData"> |
||||
|
SELECT * FROM base_picture |
||||
|
<where> |
||||
|
<if test="query.pictureDesc != null and query.pictureDesc != ''"> |
||||
|
AND picture_desc like #{query.pictureDesc} |
||||
|
</if> |
||||
|
<if test="query.certificationNo == 'CC'"> |
||||
|
AND certification_no is not null |
||||
|
</if> |
||||
|
<if test="query.certificationNo == 'BB'"> |
||||
|
AND certification_no is null |
||||
|
</if> |
||||
|
</where> |
||||
|
order by create_time desc |
||||
|
</select> |
||||
|
</mapper> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue