123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package com.ruoyi.system.service.impl;
- import cn.hutool.core.collection.CollectionUtil;
- import cn.hutool.core.net.URLEncoder;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.RandomUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ruoyi.common.config.RuoYiConfig;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.file.FileUtils;
- import com.ruoyi.system.domain.grallery.ZbPicToPic;
- import com.ruoyi.system.domain.grallery.ZbZip;
- import com.ruoyi.system.dto.PicToPicDto;
- import com.ruoyi.system.dto.UploadResult;
- import com.ruoyi.system.mapper.ZbPicToPicMapper;
- import com.ruoyi.system.service.IFileService;
- import com.ruoyi.system.service.IZbFileService;
- import com.ruoyi.system.service.IZbPicToPicService;
- import com.ruoyi.system.service.IZbZipService;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.nio.charset.Charset;
- import java.util.List;
- import java.util.stream.Collectors;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipOutputStream;
- /**
- * 图来图往Service业务层处理
- *
- * @author ruoyi
- * @date 2020-12-02
- */
- @Service
- @RequiredArgsConstructor
- public class ZbPicToPicServiceImpl extends ServiceImpl<ZbPicToPicMapper, ZbPicToPic> implements IZbPicToPicService {
- private final IFileService fileService;
- private final RuoYiConfig ruoYiConfig;
- private final IZbZipService zbZipService;
- private final IZbFileService zbFileService;
- /**
- * 查询图来图往列表
- *
- * @param zbPicToPic 图来图往
- * @return 图来图往
- */
- @Override
- public List<PicToPicDto> selectZbPicToPicList(ZbPicToPic zbPicToPic, Page<PicToPicDto> page) {
- return baseMapper.selectZbPicToPicList(zbPicToPic, page).stream().peek(x -> {
- x.setZipUrl(ObjectUtil.isEmpty(x.getZipUrl()) ? null : ruoYiConfig.getUrl() + x.getZipUrl());
- x.setQrCodeUrl(ObjectUtil.isEmpty(x.getQrCodeUrl()) ? null : ruoYiConfig.getUrl() + x.getQrCodeUrl());
- }).collect(Collectors.toList());
- }
- /**
- * 新增图来图往
- *
- * @param zbPicToPic 图来图往
- * @return 结果
- */
- @Override
- public int insertZbPicToPic(ZbPicToPic zbPicToPic) {
- zbPicToPic.setCreateTime(DateUtils.getNowDate());
- //Long qrCodeId = zbPicToPic.getQrCodeId();
- return baseMapper.insert(zbPicToPic);
- }
- /**
- * 修改图来图往
- *
- * @param zbPicToPic 图来图往
- * @return 结果
- */
- @Override
- public int updateZbPicToPic(ZbPicToPic zbPicToPic) {
- zbPicToPic.setUpdateTime(DateUtils.getNowDate());
- return baseMapper.updateById(zbPicToPic);
- }
- /**
- * 门户图来图往上传压缩包接口
- * @param files
- * @return
- */
- @Override
- public ZbZip uploadToZip(MultipartFile[] files) {
- List<UploadResult> upload = fileService.upload(files, false);
- String profile = RuoYiConfig.getProfile();
- String timeFormat = FileUtils.getTimeFileDir();
- String pathname = timeFormat + RandomUtil.randomString(20) + ".zip";
- File file = new File(profile + File.separator + pathname);
- FileUtils.checkOrCreateParentDir(file);
- try {
- FileOutputStream fileOutputStream = new FileOutputStream(file);
- ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
- for (MultipartFile multipartFile : files) {
- String originalFilename = multipartFile.getOriginalFilename();
- zipOutputStream.putNextEntry(new ZipEntry(originalFilename));
- zipOutputStream.write(multipartFile.getBytes());
- zipOutputStream.flush();
- }
- zipOutputStream.finish();
- zipOutputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- fileService.upload(file);
- ZbZip zbZip = new ZbZip();
- zbZip.setFileIds(CollectionUtil.join(upload.stream().map(UploadResult::getFileId).collect(Collectors.toList()), ","));
- zbZip.setFileNum(files.length);
- zbZip.setName(file.getName());
- zbZip.setPath(pathname);
- zbZip.setSize(file.length());
- zbZip.setUploadTime(DateUtils.getNowDate());
- zbZip.setUrl("?path=" + URLEncoder.createDefault().encode(pathname, Charset.defaultCharset()));
- zbZipService.save(zbZip);
- return zbZip;
- }
- @Override
- public PicToPicDto getDetailById(Long picId) {
- PicToPicDto detail = baseMapper.getDetailById(picId);
- if (detail != null) {
- detail.setQrCodeUrl(StrUtil.isNotBlank(detail.getQrCodeUrl()) ? ruoYiConfig.getUrl() + detail.getQrCodeUrl() : null);
- detail.setZipUrl(StrUtil.isNotBlank(detail.getZipUrl()) ? ruoYiConfig.getUrl() + detail.getZipUrl() : null);
- }
- return detail;
- }
- }
|