package com.dji.sample.patches.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dji.sample.common.model.Pagination; import com.dji.sample.common.model.PaginationData; import com.dji.sample.media.dao.IFileMapper; import com.dji.sample.media.model.MediaFileEntity; import com.dji.sample.patches.dao.GetPatchesMapper; import com.dji.sample.patches.model.Param.PatchesParam; import com.dji.sample.patches.model.entity.LotInfo; import com.dji.sample.patches.service.GetPatchesService; import com.dji.sample.wayline.model.entity.WaylineFileEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service public class GetPatchesServiceImpl implements GetPatchesService { @Autowired private GetPatchesMapper mapper; @Autowired private IFileMapper fileMapper; /** * 分页获取数据的接口实现。 * @param param 包含分页信息和查询条件的工作空间ID。 * @return 返回一个包含查询结果和分页信息的PaginationData对象。 */ @Override public PaginationData limitGet(PatchesParam param) { Page page = mapper.selectPage(new Page(param.getPage(), param.getPageSize()), new LambdaQueryWrapper() .eq(LotInfo::getWorkspaceId,param.getWorkspaceId())); List records = page.getRecords() .stream() .collect(Collectors.toList()); return new PaginationData(records, new Pagination(page)); } @Override public void delPatches() { mapper.delete(null); } /** * 根据条件获取照片的分页数据 * * @param param 包含分页信息和查询条件的参数对象 * @param dkbh 查询条件中带有地块编号关键字,用于文件名的模糊搜索 * @return 返回照片的分页数据,包括分页信息和照片实体列表 */ @Override public PaginationData getPhoto(PatchesParam param,String dkbh) { Page page=fileMapper.selectPage(new Page(param.getPage(), param.getPageSize()), new LambdaQueryWrapper().like(MediaFileEntity::getFileName, "%" + dkbh + "%") ); List records = page.getRecords() .stream() .collect(Collectors.toList()); return new PaginationData(records, new Pagination(page)); } /** * 根据条件获取照片的分页数据 * * @param workspaceId 工作空间的ID,用于指定查询的工作空间 * @param dkbh 查询条件中带有地块编号关键字,用于文件名的模糊搜索 * @return 返回照片的分页数据,包括分页信息和照片实体列表 */ public List listPohto(String dkbh,String workspaceId){ return fileMapper.selectList(new LambdaQueryWrapper().like(MediaFileEntity::getFileName, "%" + dkbh + "%") .eq(MediaFileEntity::getWorkspaceId,workspaceId)); } /** * 根据地块编号和工作空间ID获取地块信息。 * @param dkbh 地块编号,用于查询特定定单的地块信息。 * @param workspaceId 工作空间ID,用于查询属于特定工作空间的地块信息。 * @return 返回匹配给定地块编号和工作空间ID的地块信息对象。如果找不到匹配的记录,则返回null。 */ public LotInfo getLotinfo(String dkbh,String workspaceId) { return mapper.selectOne(new LambdaQueryWrapper().eq(LotInfo::getDkbh, dkbh) .eq(LotInfo::getWorkspaceId, workspaceId)); } }