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 { /** * 校验图片 * * @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 getQueryWrapper(PictureQueryRequest pictureQueryRequest); /** * 获取图片包装类(单条) * * @param picture * @param request * @return */ PictureVO getPictureVO(Picture picture, HttpServletRequest request); /** * 获取图片包装类(分页) * * @param picturePage * @param request * @return */ Page getPictureVOPage(Page 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 listPictureVOByPageWithCache(PictureQueryRequest queryRequest, HttpServletRequest httpRequest); }