package jnpf.onlinedev.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jnpf.base.service.SuperServiceImpl; import jnpf.onlinedev.entity.VisualPersonalEntity; import jnpf.onlinedev.mapper.VisualPersonalMapper; import jnpf.onlinedev.model.DataInfoVO; import jnpf.onlinedev.model.personalList.VisualPersConst; import jnpf.onlinedev.model.personalList.VisualPersonalInfo; import jnpf.onlinedev.model.personalList.VisualPersonalVo; import jnpf.onlinedev.service.VisualPersonalService; import jnpf.util.JsonUtil; import jnpf.util.StringUtil; import jnpf.util.UserProvider; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * 个性化列表视图服务实现 * * @author JNPF开发平台组 * @version v5.1.0 * @copyright 引迈信息技术有限公司 * @date 2024/8/27 18:24:42 */ @Service public class VisualPersonalServiceImpl extends SuperServiceImpl implements VisualPersonalService { @Override public List getList(String menuId) { QueryWrapper queryWrapper = new QueryWrapper<>(); // queryWrapper.lambda().select( // VisualPersonalEntity::getId, // VisualPersonalEntity::getMenuId, // VisualPersonalEntity::getType, // VisualPersonalEntity::getStatus, // VisualPersonalEntity::getFullName // ); queryWrapper.lambda().eq(VisualPersonalEntity::getMenuId, menuId); queryWrapper.lambda().eq(VisualPersonalEntity::getCreatorUserId, UserProvider.getUser().getUserId()); return this.list(queryWrapper); } @Override public List getListVo(String menuId) { List listVo = new ArrayList<>(); //个人视图 List list = this.getList(menuId); VisualPersonalEntity defaultEntity = list.stream().filter(t -> Objects.equals(1, t.getStatus())).findFirst().orElse(null); //添加系统视图 Integer status = ObjectUtil.isEmpty(defaultEntity) ? 1 : 0; VisualPersonalVo vo = new VisualPersonalVo(); vo.setId(VisualPersConst.SYSTEM_ID); vo.setFullName(VisualPersConst.SYSTEM_NAME); vo.setStatus(status); vo.setType(0); listVo.add(vo); for (VisualPersonalEntity item : list) { VisualPersonalVo personalVo = JsonUtil.getJsonToBean(item, VisualPersonalVo.class); listVo.add(personalVo); } return listVo; } @Override public VisualPersonalInfo getInfo(String id) { VisualPersonalInfo info = null; if (ObjectUtil.isNotEmpty(id) && !VisualPersConst.SYSTEM_ID.equals(id)) { VisualPersonalEntity entity = this.getById(id); if (entity != null) { info = JsonUtil.getJsonToBean(entity, VisualPersonalInfo.class); } } return info; } @Override public boolean isExistByFullName(String fullName, String id, String menuId) { if (VisualPersConst.SYSTEM_NAME.equals(fullName)) return true; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(VisualPersonalEntity::getFullName, fullName); if (!StringUtils.isEmpty(id)) { queryWrapper.lambda().ne(VisualPersonalEntity::getId, id); } queryWrapper.lambda().eq(VisualPersonalEntity::getMenuId, menuId); return this.count(queryWrapper) > 0 ? true : false; } @Override public void setDataInfoVO(String menuId, DataInfoVO dataInfoVO) { List listVo = StringUtil.isNotEmpty(menuId) ? this.getListVo(menuId) : new ArrayList<>(); dataInfoVO.setPersonalList(listVo); VisualPersonalVo personalVo = listVo.stream().filter(t -> Objects.equals(1, t.getStatus())).findFirst().orElse(null); String id = ObjectUtil.isEmpty(personalVo) ? null : personalVo.getId(); VisualPersonalInfo info = this.getInfo(id); dataInfoVO.setDefaultView(info); } }