package com.ruoyi.web.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.web.domain.dto.projects.ProjectsQueryRequest; import com.ruoyi.web.domain.entity.Projects; import com.ruoyi.web.domain.vo.ProjectsVO; import com.ruoyi.web.mapper.ProjectsMapper; import com.ruoyi.web.service.ProjectsService; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * */ @Service public class ProjectsServiceImpl extends ServiceImpl implements ProjectsService { /** * 查询项目信息列表 * * @param projectsQueryRequest * @return */ @Override public List getProjects(ProjectsQueryRequest projectsQueryRequest) { Projects projectsQuery = new Projects(); if (projectsQueryRequest != null) { BeanUtils.copyProperties(projectsQueryRequest, projectsQuery); } QueryWrapper queryWrapper = new QueryWrapper<>(projectsQuery); List projectsList = this.list(queryWrapper); return projectsList.stream().map(projects -> { ProjectsVO projectsVO = new ProjectsVO(); BeanUtils.copyProperties(projects, projectsVO); return projectsVO; }).collect(Collectors.toList()); } /** * 分页获取项目列表 * * @param projectsQueryRequest * @return */ @Override public Page getListProjectsByPage(ProjectsQueryRequest projectsQueryRequest) { long current = projectsQueryRequest.getCurrent(); long size = projectsQueryRequest.getPageSize(); return this.page(new Page<>(current, size), getQueryWrapper(projectsQueryRequest)); } /** * 获取查询条件 * * @param projectsQueryRequest * @return */ @Override public QueryWrapper getQueryWrapper(ProjectsQueryRequest projectsQueryRequest) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (projectsQueryRequest == null) { return queryWrapper; } // 从对象中取值 Integer id = projectsQueryRequest.getId(); String projectName = projectsQueryRequest.getProjectName(); String projectDescription = projectsQueryRequest.getProjectDescription(); Integer progress = projectsQueryRequest.getProgress(); String sortField = projectsQueryRequest.getSortField(); String sortOrder = projectsQueryRequest.getSortOrder(); // 项目名称、项目描述 项目进度 queryWrapper.eq(ObjectUtil.isNotEmpty(id), "id", id); queryWrapper.eq(StrUtil.isNotBlank(projectName), "project_name", projectName); queryWrapper.like(StringUtils.isNotBlank(projectDescription), "project_description", projectDescription); queryWrapper.eq(ObjectUtil.isNotEmpty(progress), "progress", progress); // 排序 queryWrapper.orderBy(StrUtil.isNotEmpty(sortField), sortOrder.equals("ascend"), sortField); return queryWrapper; } }