Newer
Older
newfiber-termite / newfiber-termites / newfiber-termites-dataup / src / main / java / com / newfiber / termite / service / impl / ProjectInfoServiceImpl.java
@xiongkai xiongkai on 22 May 3 KB 第二版优化
package com.newfiber.termite.service.impl;

import com.newfiber.common.core.exception.ServiceException;
import com.newfiber.common.core.web.domain.BaseEntity;
import com.newfiber.common.core.web.service.BaseServiceImpl;
import com.newfiber.common.redis.service.RedisService;
import com.newfiber.termite.domain.ProjectInfo;
import com.newfiber.termite.domain.request.ProjectInfoQueryRequest;
import com.newfiber.termite.domain.request.ProjectInfoSaveRequest;
import com.newfiber.termite.domain.request.ProjectInfoUpdateRequest;
import com.newfiber.termite.mapper.ProjectInfoMapper;
import com.newfiber.termite.service.IProjectInfoService;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;

@Service
public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, ProjectInfo> implements IProjectInfoService {

    @Resource
    private ProjectInfoMapper projectInfoMapper;

    @Override
    public long insert(ProjectInfoSaveRequest request) {

        ProjectInfo ProjectInfo = new ProjectInfo();
        BeanUtils.copyProperties(request, ProjectInfo);
        save(ProjectInfo);
        return Optional.of(ProjectInfo).map(BaseEntity::getId).orElse(0L);
    }


    @Override
    public boolean update(ProjectInfoUpdateRequest request) {
        ProjectInfo ProjectInfo = new ProjectInfo();
        BeanUtils.copyProperties(request, ProjectInfo);
        return updateById(ProjectInfo);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean delete(String ids) {
        return deleteLogic(ids);
    }


    @Override
    public ProjectInfo selectDetail(Long id) {
        ProjectInfo ProjectInfo = projectInfoMapper.selectById(id);
        if(null == ProjectInfo){
            throw new ServiceException(String.format("%s ID=%s 的记录不存在", this.getClass().getSimpleName(), id));
        }
        return ProjectInfo;
    }

    @Override
    public ProjectInfo selectDetail(String projectCode) {
        ProjectInfoQueryRequest request = new ProjectInfoQueryRequest();
        request.setProjectCode(projectCode);
        List<ProjectInfo> projectInfoList = selectList(request);
        if(CollectionUtils.isNotEmpty(projectInfoList)){
            return projectInfoList.get(0);
        }
        return null;
    }

    @Override
    public List<ProjectInfo> selectPage(ProjectInfoQueryRequest request) {
        return projectInfoMapper.selectByCondition(request);
    }

    @Override
    public List<ProjectInfo> selectList(ProjectInfoQueryRequest request) {
        return projectInfoMapper.selectByCondition(request);
    }

    @Override
    public List<ProjectInfo> getUploadApi(String sn){
        return projectInfoMapper.selectUploadApiBySn(sn);
    }

    @Override
    public Set<String> getUserProjectCodeList(Long userId) {
        List<ProjectInfo> projectInfoList = list();
        Set<String> projectCodeList = new HashSet<>();
        for(ProjectInfo projectInfo : projectInfoList){
            for(String projectUserId : projectInfo.getProjectUsers().split(",")){
                if(userId.toString().equals(projectUserId)){
                    projectCodeList.add(projectInfo.getProjectCode());
                }
            }
        }
        return projectCodeList;
    }
}