package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; import com.ycl.common.utils.SecurityUtils; import com.ycl.domain.entity.AuditHistory; import com.ycl.domain.entity.ProjectInfo; import com.ycl.domain.form.AuditHistoryForm; import com.ycl.domain.query.AuditHistoryQuery; import com.ycl.domain.vo.AuditHistoryVO; import com.ycl.framework.utils.PageUtil; import com.ycl.mapper.AuditHistoryMapper; import com.ycl.mapper.ProjectInfoMapper; import com.ycl.service.AuditHistoryService; import com.ycl.service.IndexHomeService; import com.ycl.system.mapper.SysDeptMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 审核记录 服务实现类 * */ @Service @RequiredArgsConstructor public class AuditHistoryServiceImpl extends ServiceImpl implements AuditHistoryService { private final AuditHistoryMapper auditHistoryMapper; private final ProjectInfoMapper projectInfoMapper; private final SysDeptMapper sysDeptMapper; @Override public Result add(AuditHistoryForm auditHistoryForm) { AuditHistory entity = AuditHistoryForm.getEntityByForm(auditHistoryForm, null); baseMapper.insert(entity); return Result.ok("添加成功"); } public List getLoginUserOwnProjectInfo(){ //权限控制 Long userId = SecurityUtils.getUserId(); List list; if (SecurityUtils.isAdmin(userId)){ //查询全部 list = new LambdaQueryChainWrapper<>(projectInfoMapper) .eq(ProjectInfo::getDeleted, Boolean.FALSE) .eq(ProjectInfo::getUsedStatus, 2)//审核通过 .orderBy(true, true, ProjectInfo::getId) .list(); }else{ String ancestors = sysDeptMapper.selectAncestors(userId); String[] ancestorArr = ancestors.split(","); List ancestorList = Arrays.stream(ancestorArr).collect(Collectors.toList()); ancestorList.add(SecurityUtils.getDeptId() + ""); //获得本单位以及其子单位deptId; list = new LambdaQueryChainWrapper<>(projectInfoMapper) .eq(ProjectInfo::getDeleted, Boolean.FALSE) .eq(ProjectInfo::getUsedStatus, 2) //审核通过 .in(ProjectInfo::getProjectOwnerUnit, ancestorList) .orderBy(true, true, ProjectInfo::getId) .list(); } return list; } @Override public Result page(AuditHistoryQuery query) { //需要查询到指定项目的日志 List ids = new ArrayList<>(); if ("all".equals(query.getProjectId())){ List loginUserOwnProjectInfo = getLoginUserOwnProjectInfo(); if (CollectionUtils.isEmpty(loginUserOwnProjectInfo)) { //返回默认值 return Result.ok().data(null).total(0); } ids = loginUserOwnProjectInfo.stream().map(ProjectInfo::getId).collect(Collectors.toList()); }else{ ids.add(Long.valueOf(query.getProjectId())); } query.setProjectIds(ids); query.setDeptId(SecurityUtils.getDeptId()); IPage page = PageUtil.getPage(query, AuditHistoryVO.class); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } }