@Service public class CollectionServiceImpl extends ServiceImpl<CollectionDao, Collection> implements ICollectionService { @Autowired CollectionDao collectionDao; @Override public void collectCollection(Collection collection) { Collection newCollection = new Collection(); newCollection.setCollectionSubjectId(collection.getCollectionSubjectId()); newCollection.setCollectionUserId(collection.getCollectionUserId()); collectionDao.insert(newCollection); } @Override public Collection isCollect(Integer collectionUserId,Integer collectionSubjectId) { LambdaQueryWrapper<Collection> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Collection::getCollectionUserId,collectionUserId).eq(Collection::getCollectionSubjectId,collectionSubjectId); return collectionDao.selectOne(wrapper); } @Override public Page<Map> getPageByUserId(Integer id, Integer currentPage, Integer pageSize) { Page<Map> objectPage = new Page<>(currentPage, pageSize); List<Map> maps = collectionDao.selectCollectionById(id); Integer pages = maps.size()/pageSize+1; Integer startIndex = (currentPage-1)*pageSize; objectPage.setTotal(maps.size()); // 判断是否最后一页并转入 if(currentPage ==pages){ objectPage.setRecords(maps.subList(startIndex,maps.size())); } else if(currentPage<pages){ objectPage.setRecords(maps.subList(startIndex,(startIndex+pageSize))); } return objectPage; } }
时间: 2023-12-26 09:04:32 浏览: 129
Spring @Conditional注解讲解及示例详解
这段代码是一个收藏功能的实现,其中包括三个方法:
1. `collectCollection(Collection collection)`方法用于收藏一个主题(collectionSubjectId)。
2. `isCollect(Integer collectionUserId,Integer collectionSubjectId)`方法用于查询一个用户(collectionUserId)是否已经收藏了一个主题(collectionSubjectId)。
3. `getPageByUserId(Integer id, Integer currentPage, Integer pageSize)`方法用于分页查询一个用户(id)所收藏的主题,其中currentPage表示当前页码,pageSize表示每页显示的数量。
这个类使用了MyBatis-Plus提供的通用Mapper和分页插件,简化了数据访问层的代码。同时,它还为我们提供了一个方便的接口来实现收藏功能。
阅读全文