SysResDaoImpl.java 3.46 KB
package com.zteits.sys.dao.impl;

import java.util.List;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.sys.param.SysOrgResRelationRequest;
import com.zteits.sys.dao.SysResDao;
import com.zteits.sys.domain.SysRes;
import com.zteits.sys.mapper.SysResMapper;
import com.zteits.sys.mapper.smapper.SysOrgResSmapper;
import com.zteits.sys.mapper.smapper.SysResSMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

@Component
public class SysResDaoImpl implements SysResDao {

    @Autowired
    private SysResMapper sysResMapper;
    @Autowired
    private SysResSMapper sysResSMapper;
    @Autowired
    private SysOrgResSmapper sysOrgResSmapper;
    
    private static final Long PUBLIC_RES_ID = -2L;

    @Override
    public Integer saveSysRes(SysRes sysRes) {
        return sysResMapper.insertSelective(sysRes);
    }

    @Override
    public Integer updateSysRes(SysRes sysRes) {
        return sysResMapper.updateByPrimaryKeySelective(sysRes);
    }

    @Override
    public Integer updateSysResSortNumOfSaveOrUpdate(Long id, Long parentResId, int sortNum, int oldSortNum) {
        return sysResSMapper.updateSysResSortNumOfSaveOrUpdate(id, parentResId, sortNum, oldSortNum);
    }

    @Override
    public Integer updateSysResSortNumOfDelete(Long id) {
        return sysResSMapper.updateSysResSortNumOfDelete(id);
    }

    @Override
    public List<SysRes> querySysResBySysCode(String sysCode) {
        return sysResSMapper.querySysResBySysCode(sysCode);
    }

    @Override
    public int updateBatchSysRes(SysRes sysRes, List<Long> ids, String sysCode) {
        return sysResSMapper.updateBatchSysRes(sysRes, ids, sysCode);
    }

    @Override
    public PageInfo<SysRes> querySysResBySysCode(SysRes sysRes, int pageNum, int pageSize, String sysCode) {
        if (null == sysRes.getDataState()) {
            //如果没有设置数据状态,默认只查询有效数据
            sysRes.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
        }
        PageHelper.startPage(pageNum, pageSize, true);
        List<SysRes> list = sysResSMapper.queryPageSysResForList(sysRes, sysCode);
        return new PageInfo<SysRes>(list);
    }

    @Override
    public List<Long> queryResIdsByOpId(Long opId) {
        return sysResSMapper.queryResIdsByOpId(opId);
    }

    @Override
    public List<SysRes> queryAllRes(Integer dataStatus,String sysCode,List<Long> resIds) {
        return sysResSMapper.queryAllRes(dataStatus,sysCode,resIds);
    }

	@Override
	public Boolean batchInsertOrgRes(SysOrgResRelationRequest request) {
		int insertCount = 1;
		//1.通过组织id删除组织资源关系
		int deleteCount = sysOrgResSmapper.deleteOrgResByorgId(request.getOrgId());
		if(deleteCount >=0 && !CollectionUtils.isEmpty(request.getResIds())){
			List<Long> publicResIds = sysResSMapper.queryPublicService(PUBLIC_RES_ID);
	    	if(!CollectionUtils.isEmpty(publicResIds)){
	    		request.getResIds().addAll(publicResIds);
	    	}
			insertCount = sysOrgResSmapper.batchInsertOrgRes(request.getOrgId(), 
					request.getResIds(), request.getSysCode());
		}
		return insertCount >0 ;
	}

	@Override
	public List<Long> queryResIdsByOrgId(SysOrgResRelationRequest request) {
		return sysOrgResSmapper.queryResIdsByOrgId(request.getOrgId(), request.getSysCode());
	}

}