SysOpDaoImpl.java 8.21 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.apache.commons.collections4.CollectionUtils;
import com.clouds.common.utils.MD5Utils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.dto.sys.param.QuerySysOpByorgIdsReq;
import com.zteits.clouds.api.dto.sys.param.SysOpDeleteRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpForPageRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpQueryMenuRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpQueryRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpRoleSaveOrModfiyRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpSaveOrModfiyRequest;
import com.zteits.clouds.api.dto.sys.param.SysOpUpdatePasswordRequest;
import com.zteits.clouds.api.dto.sys.param.UpdateSysOpOrgIdRequest;
import com.zteits.sys.biz.SysOpServiceImpl;
import com.zteits.sys.dao.SysOpDao;
import com.zteits.sys.domain.SysOp;
import com.zteits.sys.domain.SysRes;
import com.zteits.sys.mapper.SysOpMapper;
import com.zteits.sys.mapper.smapper.SysOpOrgSmapper;
import com.zteits.sys.mapper.smapper.SysOpRoleSmapper;
import com.zteits.sys.mapper.smapper.SysOpSmapper;

/**
 * 系统用户dao接口实现类.<br/>
 *
 * Copyright: Copyright (c) 2017  zteits
 *
 * @ClassName: UserDao.java
 * @Description:
 * @version: v1.0.0
 * @author: wangfs
 * @date: 2017年4月21日   下午5:47:27
 * Modification History:
 * Date             Author          Version            Description
 *---------------------------------------------------------*
 * 2017年4月21日      wangfs           v1.0.0               创建
 */
@Component
public class SysOpDaoImpl implements SysOpDao {
	 private static final Logger logger = LoggerFactory.getLogger(SysOpDaoImpl.class);

    @Autowired
    private SysOpSmapper sysOpSmapper;

    @Autowired
    private SysOpMapper sysOpMapper;


	


    /**
     * 用户角色关系smapper.<br/>
     */
    @Autowired
    private SysOpRoleSmapper sysOpRoleSmapper;
    @Autowired
    private SysOpOrgSmapper sysOpOrgSmapper;


    @Override
    public List<SysOp> querySysOpByIds(List<Long> opIds, Integer dataStatus, String sysCode) throws Exception {
        return sysOpSmapper.querySysOpByIds(opIds, dataStatus, sysCode);
    }

    @Override
    public SysOp querySysOp(SysOpQueryRequest sysOpQueryRequest) throws Exception {
        SysOp sysOp = new SysOp();
        BeanUtils.copyProperties(sysOpQueryRequest, sysOp);
        return sysOpSmapper.querySysOp(sysOp);
    }

    @Override
    public PageInfo<SysOp> queryUserForPage(SysOp sysOp,Integer pageSize,Integer pageNum) throws Exception {
        // 1.设置分页信息
        PageHelper.startPage(pageNum,pageSize);
        //2.查询数据
        List<SysOp> list = sysOpSmapper.querySysOpForList(sysOp);
        return  (list != null && list.size() >0) ?  new PageInfo<SysOp>(list):new PageInfo<SysOp>(new ArrayList<SysOp>());
    }
    @Transactional
    @Override
	public Boolean deleteSysOp(SysOp sysOp) throws Exception {
		int updateCount = sysOpSmapper.updateByPrimaryKeySelective(sysOp);
		return updateCount >0 ? true :false;
	}
    @Transactional
    @Override
    public Boolean saveSysOp(SysOp sysOp) throws Exception {
        int saveCount = sysOpSmapper.saveSysOp(sysOp);
        return saveCount >0 ? true :false;
    }
    @Transactional
    @Override
    public Boolean modfiySysOp(SysOp sysOp) throws Exception {
        int updateCount = sysOpSmapper.updateByPrimaryKeySelective(sysOp);
        return updateCount >0 ? true :false;
    }

    /**
     * 保存/修改用户与角色关系.<br/>
     * 保存修改处理逻辑:
     *    1.先删除掉用户角色关系.
     *    2.然后全量保存.<br/>
     * @param SysOpRoleSaveOrModfiyRequest
     * @return
     */
    @Transactional
    @Override
    public Boolean saveOrModfiySysOpAndSysRoleRelation(SysOpRoleSaveOrModfiyRequest sysOpRoleSaveOrModfiyRequest)
        throws Exception {
        int insertCount = 1;
        logger.info("--begin通过操作员id删除用户角色关系,入参={}",sysOpRoleSaveOrModfiyRequest.getSysOpId());
        //1.通过操作员id + sysCode删除用户角色关系
         int deleteCount = sysOpRoleSmapper.deleteSysOpRoleByOpId(sysOpRoleSaveOrModfiyRequest.getSysOpId());
         logger.info("--end通过操作员id删除用户角色关系,结果={} 条.",deleteCount );
         logger.info("--begin插入用户角色关系信息...");
         if(sysOpRoleSaveOrModfiyRequest.getSysRoleIdList() != null && sysOpRoleSaveOrModfiyRequest.getSysRoleIdList().size() >0){
        	//2.插入用户角色关系
             insertCount =  sysOpRoleSmapper.batchSaveSysOpRole(sysOpRoleSaveOrModfiyRequest.getSysCode(), sysOpRoleSaveOrModfiyRequest.getSysOpId(),
                     sysOpRoleSaveOrModfiyRequest.getSysRoleIdList(),sysOpRoleSaveOrModfiyRequest.getCreateEmpid(),
                     sysOpRoleSaveOrModfiyRequest.getCreateDate(),sysOpRoleSaveOrModfiyRequest.getModfiyEmpid(),
                     sysOpRoleSaveOrModfiyRequest.getModfiyDate()); 
         }
      
        logger.info("--end插入用户角色关系信息...成功插入{}条.",insertCount);
        return insertCount > 0 ? true :false;
    }

    /**
     * 通过操作员Id查询菜单.<br/>
     * 步骤:
     *  1.通过操作员id 查询职能list.<br/>
     *  2.通过职能listId 查询菜单.<br/>
     * @param sysOpQueryMenuRequest
     * @return
     * @throws Exception
     */
    @Override
    public List<SysRes> queryMenuBySysOpId(SysOpQueryMenuRequest sysOpQueryMenuRequest) throws Exception {
        List<SysRes> resList = new ArrayList<SysRes>();
        //1.通过操作员id 查询职能list
        List<Long> jobfuncIdList = sysOpSmapper.querySysJobfuncBySysOpId(sysOpQueryMenuRequest.getSysOpId());
        if(CollectionUtils.isNotEmpty(jobfuncIdList)){
            //2.通过职能listId 查询菜单
            resList = sysOpSmapper.queryMenuByJobIdList(jobfuncIdList);
        }
        return resList;
    }
    /**
     * 添加用户与角色关系.<br/>
     *
     * @param sysOpRoleSaveOrModfiyRequest
     * @return
     */
    @Transactional
    @Override
    public Boolean insertSysOpAndSysRoleRelation(SysOpRoleSaveOrModfiyRequest sysOpRoleSaveOrModfiyRequest)
        throws Exception {
        int insertCount = 0;
        //插入用户角色关系
        insertCount =  sysOpRoleSmapper.batchSaveSysOpRole(sysOpRoleSaveOrModfiyRequest.getSysCode(), sysOpRoleSaveOrModfiyRequest.getSysOpId(),
            sysOpRoleSaveOrModfiyRequest.getSysRoleIdList(),sysOpRoleSaveOrModfiyRequest.getCreateEmpid(),
            sysOpRoleSaveOrModfiyRequest.getCreateDate(),sysOpRoleSaveOrModfiyRequest.getModfiyEmpid(),
            sysOpRoleSaveOrModfiyRequest.getModfiyDate());

        return insertCount > 0 ? true :false;
    }
    @Transactional
	@Override
	public Boolean modfiySysOpPassword(SysOpUpdatePasswordRequest request) {
	     SysOp sysOp = new SysOp();
	     BeanUtils.copyProperties(request, sysOp);
	     sysOp.setLoginPassword(MD5Utils.enMD5(request.getLoginPassword()));
	     // 更新密码最后修改时间
	     sysOp.setLastPasswordUpdateTime(new Date());
	     int updateCount = sysOpMapper.updateByPrimaryKeySelective(sysOp);
	     return updateCount >0 ? true :false;
	}

	@Override
	public SysOp loginCodeIsUsed(String loginCode) throws Exception {
		return sysOpSmapper.loginCodeIsUsed(loginCode);
	}

	@Override
	public Boolean updateSysOpOrgIdByOpId(UpdateSysOpOrgIdRequest updateSysOpOrgIdRequest) {
		SysOp sysOp = new SysOp();
		sysOp.setId(updateSysOpOrgIdRequest.getOpId());
		sysOp.setOrgId(updateSysOpOrgIdRequest.getOrgId());
		int updateCount = sysOpMapper.updateByPrimaryKeySelective(sysOp);
		return updateCount > 0 ? true : false;
	}

	/**
	 * 通过组织ids查询用户信息
	 * @param request
	 * @return
	 * 2018年4月9日  wangfs.<br/>
	 */
	@Override
	public List<SysOp> querySysOpByorgIds(List<Long> orgIds) {
		return sysOpSmapper.querySysOpByorgIds(orgIds);
	}



}