106 lines
2.8 KiB
Java

package edu.whut.smilepicturebackend.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import edu.whut.smilepicturebackend.model.dto.picture.*;
import edu.whut.smilepicturebackend.model.entity.Picture;
import edu.whut.smilepicturebackend.model.entity.User;
import edu.whut.smilepicturebackend.model.vo.PictureVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
/**
* @author 张三
* @description 针对表【picture(图片)】的数据库操作Service
* @createDate 2025-06-11 11:23:11
*/
public interface PictureService extends IService<Picture> {
/**
* 校验图片
*
* @param picture
*/
void validPicture(Picture picture);
/**
* 上传图片
*
* @param inputSource 文件输入源
* @param pictureUploadRequest
* @param loginUser
* @return
*/
PictureVO uploadPicture(Object inputSource, PictureUploadRequest pictureUploadRequest, User loginUser);
/**
* 获取查询对象
*
* @param pictureQueryRequest
* @return
*/
LambdaQueryWrapper<Picture> getQueryWrapper(PictureQueryRequest pictureQueryRequest);
/**
* 获取图片包装类(单条)
*
* @param picture
* @param request
* @return
*/
PictureVO getPictureVO(Picture picture, HttpServletRequest request);
/**
* 获取图片包装类(分页)
*
* @param picturePage
* @param request
* @return
*/
Page<PictureVO> getPictureVOPage(Page<Picture> picturePage, HttpServletRequest request);
/**
* 编辑图片
*
* @param pictureEditRequest
* @param loginUser
*/
void editPicture(PictureEditRequest pictureEditRequest, User loginUser);
/**
* 图片审核
*
* @param pictureReviewRequest
* @param loginUser
*/
void doPictureReview(PictureReviewRequest pictureReviewRequest, User loginUser);
/**
* 填充审核参数
*
* @param picture
* @param loginUser
*/
void fillReviewParams(Picture picture, User loginUser);
/**
* 批量抓取和创建图片
*
* @param pictureUploadByBatchRequest
* @param loginUser
* @return 成功创建的图片数
*/
Integer uploadPictureByBatch(PictureUploadByBatchRequest pictureUploadByBatchRequest,
User loginUser);
/**
* 缓存图片
* @param queryRequest
* @param httpRequest
* @return
*/
Page<PictureVO> listPictureVOByPageWithCache(PictureQueryRequest queryRequest, HttpServletRequest httpRequest);
}