zxl
2025-12-11 ad7cbfd8fd19fcce4345a4907c1f059a34c2869b
business/src/main/java/com/ycl/service/impl/AuditHistoryServiceImpl.java
@@ -1,15 +1,30 @@
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;
/**
 * 审核记录 服务实现类
@@ -19,4 +34,61 @@
@RequiredArgsConstructor
public class AuditHistoryServiceImpl extends ServiceImpl<AuditHistoryMapper, AuditHistory> 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<ProjectInfo> getLoginUserOwnProjectInfo(){
        //权限控制
        Long userId = SecurityUtils.getUserId();
        List<ProjectInfo> 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<String> 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<Long> ids = new ArrayList<>();
        if ("all".equals(query.getProjectId())){
            List<ProjectInfo> 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<AuditHistoryVO> page = PageUtil.getPage(query, AuditHistoryVO.class);
        baseMapper.getPage(page, query);
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }
}