public class DocumentService extends ServiceImpl<DocumentMapper, Document> { @Resource private DocumentMapper documentMapper; @Resource private CateMapper cateMapper; @Resource private HistoryMapper historyMapper; public List<Document> listDocument(PageInfo<?> pageInfo, Document document) { PageHelper.startPage(pageInfo.getCurrent(), pageInfo.getPageSize()); List<Document> documentList = documentMapper.selectList(Wrappers.<Document>lambdaQuery() .like(StringUtils.isNotBlank(document.getTitle()), Document::getTitle, document.getTitle()) .like(StringUtils.isNotBlank(document.getSummary()), Document::getSummary, document.getSummary()) .eq(document.getCateId() != null, Document::getCateId, document.getCateId()) .eq(document.getDeptId() != null, Document::getDeptId, document.getDeptId()) .eq(document.getActive() != null, Document::getActive, document.getActive()) .eq(document.getRecommend() != null, Document::getRecommend, document.getRecommend()) .eq(document.getCarousel() != null, Document::getCarousel, document.getCarousel()) .orderByDesc(Document::getDateTime) ); if (!documentList.isEmpty()) { List<Long> documentIdList = documentList.stream().map(Document::getCateId).collect(Collectors.toList()); Map<Long, Cate> cateMap = cateMapper.selectBatchIds(documentIdList).stream().collect(Collectors.toMap(Cate::getId, e -> e, (e1, e2) -> e2)); for (Document documentItem : documentList) { documentItem.setCate(cateMap.get(documentItem.getCateId())); } } return documentList; } public Document getDocumentById(Long id, HttpServletRequest request) { Document document = documentMapper.selectById(id); if (document == null) { return null; } document.setHits(document.getHits() + 1); documentMapper.updateById(document); document.setCate(cateMapper.selectById(document.getCateId())); History history = new History(); history.setDocumentId(id); history.setDateTime(LocalDateTime.now()); history.setUserId(Long.valueOf((String) StpUtil.getLoginId())); history.setIp(request.getRemoteAddr()); historyMapper.insert(history); return document; } public List<Document> listRecommend(Long id) { //Todo 推荐 return new ArrayList<>(); } public Boolean copyDocument(Long id) { Document document = documentMapper.selectById(id); if (document == null) { return false; } document.setDateTime(LocalDateTime.now()); document.setId(null); document.setDeptId(StpUtil.getSession().getModel(SaSession.USER, User.class).getBelongDeptId()); document.setHits(0L); document.setActive(false); document.setRecommend(false); int result = documentMapper.insert(document); return result == 1; } }
时间: 2024-04-11 11:32:47 浏览: 111
Spring MVC打印@RequestBody、@Response日志的方法
5星 · 资源好评率100%
这是一个Java类的示例代码,名为`DocumentService`,它是一个服务类,提供了一些操作文档的方法。该类使用了Spring框架的一些注解,如`@Resource`和`@Autowired`来进行依赖注入。
在该类中,有一些方法可以执行不同的操作:
- `listDocument`方法用于获取文档列表,根据传入的条件进行筛选和排序。
- `getDocumentById`方法用于根据文档ID获取具体的文档信息,并更新文档的点击次数和记录历史信息。
- `listRecommend`方法用于获取推荐的文档列表(目前该方法返回一个空列表,还未实现具体逻辑)。
- `copyDocument`方法用于复制指定ID的文档,并创建一个新的副本。
需要注意的是,这段代码只是一个示例,并不能直接运行。你可以根据自己的业务需求和数据库结构来修改和完善这些方法。同时,还需要确保相关的Mapper类和实体类已经正确配置和引入。
阅读全文