/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.leave.wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.SpringUtil; import org.springblade.modules.leave.entity.LeaveWordsEntity; import org.springblade.modules.leave.service.ILeaveWordsService; import org.springblade.modules.leave.vo.LeaveWordsVO; import java.util.Objects; import org.springblade.core.tool.node.ForestNodeMerger; import java.util.List; import java.util.stream.Collectors; /** * 留言板块 包装类,返回视图层所需的字段 * * @author aix * @since 2023-12-18 */ public class LeaveWordsWrapper extends BaseEntityWrapper { private static final ILeaveWordsService leaveWordsService; static { leaveWordsService = SpringUtil.getBean(ILeaveWordsService.class); } public static LeaveWordsWrapper build() { return new LeaveWordsWrapper(); } @Override public LeaveWordsVO entityVO(LeaveWordsEntity leaveWords) { LeaveWordsVO leaveWordsVO = Objects.requireNonNull(BeanUtil.copy(leaveWords, LeaveWordsVO.class)); //User createUser = UserCache.getUser(leaveWords.getCreateUser()); //User updateUser = UserCache.getUser(leaveWords.getUpdateUser()); //leaveWordsVO.setCreateUserName(createUser.getName()); //leaveWordsVO.setUpdateUserName(updateUser.getName()); return leaveWordsVO; } public List treeNodeVO(List list) { List collect = list.stream().map(leaveWords -> BeanUtil.copy(leaveWords, LeaveWordsVO.class)).collect(Collectors.toList()); return ForestNodeMerger.merge(collect); } public IPage treeNodePageVO(IPage pages) { List records = listVO(pages.getRecords()); IPage pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal()); List collect = records.stream().map(leaveWords -> BeanUtil.copy(leaveWords, LeaveWordsVO.class)).collect(Collectors.toList()); pageVo.setRecords(ForestNodeMerger.merge(collect)); return pageVo; } @Override public IPage pageVO(IPage pages) { List records = listVO(pages.getRecords()); for (LeaveWordsVO vo: records) { QueryWrapper leaveWordsEntityQueryWrapper = new QueryWrapper<>(); leaveWordsEntityQueryWrapper.eq("parent_id", vo.getId()); List entities = leaveWordsService.list(leaveWordsEntityQueryWrapper); // vo.setHasChildren(entities.size() > 0); if (entities.size() > 0) { vo.setChildren(listVO(entities)); } } IPage pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal()); pageVo.setRecords(records); return pageVo; } }