package com.dji.sample.patches.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; 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) { if (param.getIsPlan() != null) { Page page = mapper.selectPage(new Page(param.getPage(), param.getPageSize()), new LambdaQueryWrapper() .eq(LotInfo::getWorkspaceId, param.getWorkspaceId()) .like(LotInfo::getDkbh, param.getDkbh()) .like(LotInfo::getXzqdm, param.getXzqdm()) .eq(LotInfo::getIsPlan, param.getIsPlan())); List records = page.getRecords() .stream() .collect(Collectors.toList()); return new PaginationData(records, new Pagination(page)); } else { Page page = mapper.selectPage(new Page(param.getPage(), param.getPageSize()), new LambdaQueryWrapper() .eq(LotInfo::getWorkspaceId, param.getWorkspaceId()) .like(LotInfo::getDkbh, param.getDkbh()) .like(LotInfo::getXzqdm, param.getXzqdm())); 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)); } public LotInfo getLotinfoToDb(String dkbh) { return mapper.selectOne(new LambdaQueryWrapper().eq(LotInfo::getDkbh, dkbh)); } public List listLotinfo() { return mapper.selectList(null); } @Override public void insertLotinfo(List list) { for (int i = 0; i < list.size(); i++) { mapper.insert(list.get(i)); } } }