SysResServiceImpl.java 6.65 KB
package com.zteits.sys.biz;

import java.util.Date;
import java.util.List;

import com.clouds.common.constants.SuperAdminEnum;
import com.clouds.common.utils.BeanValidatorsUtils;
import com.clouds.common.utils.ListCopyUtil;
import com.clouds.common.utils.ListPageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.apibase.bean.PageBean;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.sys.SysResDTO;
import com.zteits.clouds.api.dto.sys.param.SysOrgResRelationRequest;
import com.zteits.clouds.api.dto.sys.param.SysResDeleteRequest;
import com.zteits.clouds.api.dto.sys.param.SysResQueryAllRequest;
import com.zteits.clouds.api.dto.sys.param.SysResQueryByIdRequest;
import com.zteits.clouds.api.dto.sys.param.SysResQueryByOpIdRequest;
import com.zteits.clouds.api.dto.sys.param.SysResQueryBySysCodeRequest;
import com.zteits.clouds.api.dto.sys.param.SysResSaveOrUpdateRequest;
import com.zteits.clouds.api.service.sys.SysResService;
import com.zteits.sys.dao.SysResDao;
import com.zteits.sys.dao.SysResJobFuncDao;
import com.zteits.sys.domain.SysRes;
import com.zteits.sys.pagepaper.PageBeanUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

@Service("com.zteits.sys.biz.SysResServiceImpl")
public class SysResServiceImpl implements SysResService {

    @Autowired
    private SysResDao sysResDao;
    @Autowired
    private SysResJobFuncDao sysResJobFuncDao;
    
    private  static final Integer PAGE_SIZE = 500; 

    @Override
    @Transactional
    public BizResult<Integer> deleteSysRes(SysResDeleteRequest request) {
        BeanValidatorsUtils.validateWithException(request);
        SysRes sysRes = new SysRes();
        //置为失效
        sysRes.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value());
        sysRes.setModfiyEmpid(request.getOpId());
        for(Long id:request.getResIds()){
            //更新删除后的资源排序
            sysResDao.updateSysResSortNumOfDelete(id);
        }

        Integer num = sysResDao.updateBatchSysRes(sysRes, request.getResIds(), request.getSysCode());
        return new BizResult<>(num);
    }

    @Override
    @Transactional
    public BizResult<Long> saveOrUpdateSysRes(SysResSaveOrUpdateRequest request) {
        BeanValidatorsUtils.validateWithException(request);
        int oldSortNum = request.getOldSortNum().intValue();
        int sortNum = request.getSortNum().intValue();
        SysRes sysRes = new SysRes();
        BeanUtils.copyProperties(request, sysRes);
        sysRes.setModfiyEmpid(request.getCreateEmpid());
        sysRes.setModfiyDate(new Date());
        if (request.getId() == null) {
            //保存
            sysRes.setCreateDate(new Date());
            sysResDao.saveSysRes(sysRes);
        } else {
            //更新
            sysResDao.updateSysRes(sysRes);
        }
        sysResDao.updateSysResSortNumOfSaveOrUpdate(sysRes.getId(),sysRes.getParentResId(),sortNum,oldSortNum);
        return new BizResult<Long>(sysRes.getId());
    }

    @Override
    public BizResult<PageBean<SysResDTO>> querySysResBySysCode(SysResQueryBySysCodeRequest request) {
        BeanValidatorsUtils.validateWithException(request);
        SysRes sysRes = new SysRes();
        BeanUtils.copyProperties(request, sysRes);
        PageInfo<SysRes> pageInfo = sysResDao.querySysResBySysCode(sysRes, request.getBaseRequest().getPageNum(),
            request.getBaseRequest().getPageSize(), request.getSysCode());
        PageBean<SysResDTO> pageBean = new PageBean<SysResDTO>();
        PageBeanUtil.copyProperties(pageInfo, pageBean, SysResDTO.class);
        return new BizResult<PageBean<SysResDTO>>(pageBean);
    }

    @Override
    public BizResult<Boolean> isUsedForResByResId(SysResQueryByIdRequest request) {
        //验证参数
        BeanValidatorsUtils.validateWithException(request);
        List<Long> ids = Lists.newArrayList();
        ids.add(request.getId());
        List<Long> jobfuncs = sysResJobFuncDao.queryJobFuncIdsByResId(ids, DataStatusEnum.DATA_STATUS_VALID.value(),
            request.getSysCode());
        return new BizResult<Boolean>(!CollectionUtils.isEmpty(jobfuncs));
    }

    @Override
    public BizResult<List<Long>> queryResIdsByOpId(SysResQueryByOpIdRequest request) {

        if (null == request || 0L == request.getOpId()) {
            throw new BizException(ErrorType.PARAMM_NULL, "操作员ID");
        }

        List<Long> resIds = sysResDao.queryResIdsByOpId(request.getOpId());

        return new BizResult<>(resIds);
    }

    @Override
    public BizResult<List<SysResDTO>> queryAllRes(SysResQueryAllRequest request) {
    	List<SysResDTO> list = Lists.newArrayList();
    	if(request == null){
    		throw new BizException(ErrorType.BIZ_ERROR, "入参不能为空");
    	}
    	if(Long.valueOf(SuperAdminEnum.SUPER_ORG_ID.getValue()).equals(request.getOrgId())){
    		List<SysRes> sysResList = sysResDao.queryAllRes(request.getDataStatus(), request.getSysCode(),null);
            ListCopyUtil.listCopyProperties(sysResList, list, SysResDTO.class);
    	}else{
    		if(!CollectionUtils.isEmpty(request.getResIds())){
    		  //500条分一页查询停车场
    		   ListPageHelper<Long> pageInfo = new ListPageHelper<Long>(request.getResIds(),PAGE_SIZE);
    		   for(int i=1;i<=pageInfo.getTotalPages();i++){
    			   List<SysResDTO> pageList = Lists.newArrayList();
    			   List<SysRes> sysResList = sysResDao.queryAllRes(request.getDataStatus(), request.getSysCode(),request.getResIds());
    	           ListCopyUtil.listCopyProperties(sysResList, pageList, SysResDTO.class);
    	           list.addAll(pageList);
    		   }
    		}
    		    
    	}
    	
    	return new BizResult<List<SysResDTO>>(list);
    }

	@Override
	public BizResult<Boolean> batchInsertOrgRes(SysOrgResRelationRequest request) {
		if(request == null){
    		throw new BizException(ErrorType.BIZ_ERROR, "入参不能为空");
    	}
		return new BizResult<Boolean>(sysResDao.batchInsertOrgRes(request));
	}

	@Override
	public BizResult<List<Long>> queryResIdsByOrgId(SysOrgResRelationRequest request) {
		if(request == null || request.getOrgId() == null){
    		throw new BizException(ErrorType.BIZ_ERROR, "入参不能为空");
    	}
		List<Long> list = sysResDao.queryResIdsByOrgId(request);
		return new BizResult<List<Long>>(list);
	}

}