SysOrgDaoImpl.java 6.92 KB
package com.zteits.sys.dao.impl;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.dto.sys.param.OrgByOrgLevelRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpOrgSaveOrModifyRequest;
import com.zteits.clouds.api.dto.sys.param.SysOrgPageQueryRequest;
import com.zteits.clouds.api.dto.sys.param.SysOrgSaveRequest;
import com.zteits.sys.dao.SysOrgDao;
import com.zteits.sys.domain.SysOp;
import com.zteits.sys.domain.SysOrg;
import com.zteits.sys.mapper.SysOrgMapper;
import com.zteits.sys.mapper.smapper.SysOpOrgSmapper;
import com.zteits.sys.mapper.smapper.SysOrgSmapper;
/**
 * 
 * 
 * Copyright: Copyright (c) 2017  zteits
 * 
 * @ClassName: SysOrgDaoImpl.java
 * @Description: 
 * @version: v1.0.0
 * @author: langlw
 * @date: 2017年5月10日   下午1:59:08 
 * Modification History:
 * Date             Author          Version            Description
 *---------------------------------------------------------*
 * 2017年5月10日      langlw          v1.0.0               创建
 */
@Component
public class SysOrgDaoImpl implements SysOrgDao {
	
	private static final Logger logger = LoggerFactory.getLogger(SysOrgDaoImpl.class);
	@Autowired
	private SysOrgMapper sysOrgMapper;
	@Autowired
	private SysOrgSmapper sysOrgSmapper;
	@Autowired
	private SysOpOrgSmapper sysOpOrgSmapper;

	@Override
	public List<SysOrg> querySysOrgByParentId(Long parentId) {
		return sysOrgSmapper.querySysOrgByParentId(parentId);
	}

	@Override
	public PageInfo<SysOrg> queryPageSysOrgForList(SysOrgPageQueryRequest request) {
		SysOrg sysOrg=new SysOrg();
		BeanUtils.copyProperties(request, sysOrg);
		sysOrg.setSysCode(request.getSysCode());
        // 1.设置分页信息
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
     	//2.查询数据
        List<SysOrg> list=sysOrgSmapper.queryPageSysOrgForList(sysOrg);
        return new PageInfo<SysOrg>(list);
	}



	@Override
	public List<SysOrg> queryBatchSysOrgById(List<Long> ids, Integer dataStatus, String sysCode) {
		return sysOrgSmapper.queryBatchSysOrgById(ids, dataStatus, sysCode);
	}

	/**
	  * 保存/修改用户与组织关系.<br/>
	  * 保存修改处理逻辑:
	  *    1.先删除掉用户组织关系主键不为空的关系.
	  *    2.然后全量保存.<br/>
	  * @param SysOpOrgSaveOrModifyRequest
	  * @return
	  */
	@Transactional
	@Override
	public Boolean saveOrModifySysOpAndSysOrgRelation(SysOpOrgSaveOrModifyRequest sysOpOrgSaveOrModifyRequest)
			throws Exception {
		int insertCount = 1;
		logger.info(" --begin通过操作员id + sysCode删除用户组织关系");
		//1.通过操作员id + sysCode删除用户角色关系
		int deleteCount = sysOpOrgSmapper.deleteSysOpOrgByOpId(sysOpOrgSaveOrModifyRequest.getSysOpId());
		logger.info(" --end通过操作员id + sysCode删除用户组织关系,删除条数={}条。",deleteCount);
		logger.info(" --begin插入用户组织关系..");
		if(!CollectionUtils.isEmpty(sysOpOrgSaveOrModifyRequest.getSysOrgIdList())){
		 //2.插入用户组织关系
			insertCount =  sysOpOrgSmapper.batchSaveSysOpOrg(sysOpOrgSaveOrModifyRequest.getSysCode(), sysOpOrgSaveOrModifyRequest.getSysOpId(),
					sysOpOrgSaveOrModifyRequest.getSysOrgIdList(),sysOpOrgSaveOrModifyRequest.getCreateEmpid(),
					sysOpOrgSaveOrModifyRequest.getCreateDate(),sysOpOrgSaveOrModifyRequest.getModfiyEmpid(),
					sysOpOrgSaveOrModifyRequest.getModfiyDate());
		}
		logger.info(" --end插入用户组织关系,插入条数={}条。",insertCount);
		
		return insertCount > 0 ? true :false;
	}


	/**
	  * 添加用户与组织关系.<br/>
	  * 
	  * @param SysOpOrgSaveOrModifyRequest
	  * @return
	  */
	@Transactional
	@Override
	public Boolean insertSysOpAndSysOrgRelation(SysOpOrgSaveOrModifyRequest sysOpOrgSaveOrModifyRequest)
			throws Exception {
		int insertCount = 0;
		
		//插入用户角色关系
		insertCount =  sysOpOrgSmapper.batchSaveSysOpOrg(sysOpOrgSaveOrModifyRequest.getSysCode(), sysOpOrgSaveOrModifyRequest.getSysOpId(),
					sysOpOrgSaveOrModifyRequest.getSysOrgIdList(),sysOpOrgSaveOrModifyRequest.getCreateEmpid(),
					sysOpOrgSaveOrModifyRequest.getCreateDate(),sysOpOrgSaveOrModifyRequest.getModfiyEmpid(),
					sysOpOrgSaveOrModifyRequest.getModfiyDate());
		
		return insertCount > 0 ? true :false;
	}



	@Override
	public SysOrg getSysOrgById(Long id) {
		return sysOrgMapper.selectByPrimaryKey(id);
	}


	@Transactional
	@Override
	public Boolean deleteSysOrgByIds(List<Long> ids) {
		if(CollectionUtils.isEmpty(ids)){
			return true;
		}
		//1、先删除用户与组织关系表数据
		sysOpOrgSmapper.deleteSysOpOrgByOrgIds(ids);
		//2、逻辑删除组织信息
		int count = 0;
			count=sysOrgSmapper.deleteBatchForLogicByPrimaryKey(ids);
		return count> 0 ? true :false;
	}


	@Transactional
	@Override
	public Long saveSysOrg(SysOrgSaveRequest request) {
		SysOrg sysOrg = new SysOrg();
		BeanUtils.copyProperties(request, sysOrg);
		sysOrg.setCreateDate(new Date());
		sysOrg.setCreateEmpid(request.getEmpid());
		sysOrg.setModfiyEmpid(request.getEmpid());
		sysOrg.setModfiyDate(new Date());
		sysOrg.setSysCode(request.getSysCode());
		sysOrg.setSortNum(request.getSortNum());
		sysOrgMapper.insertSelective(sysOrg);
		logger.info(""+JSONObject.toJSONString(sysOrg));
		return sysOrg.getId();
	}
	@Transactional
	@Override
	public Boolean updateSysOrgById(SysOrg sysOrg) {
		return sysOrgMapper.updateByPrimaryKeySelective(sysOrg)>0;
	}



	@Override
	public List<Long> queryOpIdsByOrgId(List<Long> orgIds, Integer dataState, String sysCode) {
		return sysOpOrgSmapper.queryOpIdsByorgIds(orgIds, dataState, sysCode);
	}



	@Override
	public PageInfo<SysOp> queryOpByorgIdForPage(Long orgId, Integer pageSize, Integer pageNum,String sysCode) {
		 // 1.设置分页信息
        PageHelper.startPage(pageNum,pageSize);
        //2.查询数据
        List<SysOp> list = sysOpOrgSmapper.queryOpByorgIdForPage(orgId, sysCode);
        return  (list != null && list.size() >0) ?  new PageInfo<SysOp>(list):new PageInfo<SysOp>(new ArrayList<SysOp>());
   
	}



	@Override
	public Integer updateSysOrgSortNumOfSaveOrUpdate(Long id, Long parentOrgId, int sortNum, int oldSortNum) {
		return sysOrgSmapper.updateSysOrgSortNumOfSaveOrUpdate(id, parentOrgId, sortNum, oldSortNum);
	}



	@Override
	public Integer updateSysOrgSortNumOfDelete(Long id) {
		return sysOrgSmapper.updateSysOrgSortNumOfDelete(id);
	}



	@Override
	public List<SysOrg> queryOrgByOrgLevel(OrgByOrgLevelRequest orgByOrgLevelRequest) {
		return sysOrgSmapper.queryOrgByOrgLevel(orgByOrgLevelRequest);
	}


}