package com.kwan.springbootkwan.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.kwan.springbootkwan.entity.PicInfo; import com.kwan.springbootkwan.mapper.PicInfoMapper; import com.kwan.springbootkwan.service.PicInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Objects; /** * 图片信息表(PicInfo)表服务实现类 * * @author makejava * @since 2023-08-09 12:44:03 */ @Service("picInfoService") public class PicInfoServiceImpl extends ServiceImpl implements PicInfoService { @Autowired private PicInfoMapper picInfoMapper; /** * 图片路径前缀 */ private static final String PRE_FIX = "https://gitcode.net/qyj19920704/baby-images/-/raw/main/"; @Override public boolean insertByPath(String path) { Path directoryPath = Paths.get(path); try (DirectoryStream directoryStream = Files.newDirectoryStream(directoryPath)) { for (Path filePath : directoryStream) { if (Files.isRegularFile(filePath)) { final String picName = filePath.getFileName().toString(); String picPath = PRE_FIX + picName; QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("pic_url", picPath); wrapper.eq("is_delete", 0); final PicInfo pic = picInfoMapper.selectOne(wrapper); if (Objects.nonNull(pic)) { continue; } PicInfo picInfo = new PicInfo(); picInfo.setPicName(picName.split(".")[0]); picInfo.setPicUrl(picPath); picInfoMapper.insert(picInfo); } } return true; } catch (IOException e) { e.printStackTrace(); } return false; } }