package com.asofdate.hauth.dao.impl; import com.asofdate.hauth.dao.RoleDao; import com.asofdate.hauth.entity.RoleEntity; import com.asofdate.hauth.entity.UserRoleEntity; import com.asofdate.sql.SqlDefine; import com.asofdate.utils.JoinCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; /** * Created by hzwy23 on 2017/6/18. */ @Repository public class RoleDaoImpl implements RoleDao { private final Logger logger = LoggerFactory.getLogger(RoleDaoImpl.class); @Autowired private JdbcTemplate jdbcTemplate; @Override public List<RoleEntity> findAll(String domainId) { RowMapper<RoleEntity> rowMapper = new BeanPropertyRowMapper<>(RoleEntity.class); return jdbcTemplate.query(SqlDefine.sys_rdbms_028, rowMapper, domainId); } @Override public RoleEntity getDetails(String roleId) { RoleEntity roleEntity = new RoleEntity(); jdbcTemplate.query(SqlDefine.sys_rdbms_208, new RowCallbackHandler() { @Override public void processRow(ResultSet resultSet) throws SQLException { roleEntity.setDomain_id(resultSet.getString("domain_id")); roleEntity.setRole_id(resultSet.getString("role_id")); roleEntity.setCode_number(resultSet.getString("code_number")); roleEntity.setRole_name(resultSet.getString("role_name")); roleEntity.setDomain_desc(resultSet.getString("domain_desc")); } }, roleId); return roleEntity; } @Override public List<RoleEntity> getOther(String userId) { RowMapper<RoleEntity> rowMapper = new BeanPropertyRowMapper<>(RoleEntity.class); return jdbcTemplate.query(SqlDefine.sys_rdbms_095, rowMapper, userId); } @Override public List<RoleEntity> getOwner(String userId) { RowMapper<RoleEntity> rowMapper = new BeanPropertyRowMapper<>(RoleEntity.class); return jdbcTemplate.query(SqlDefine.sys_rdbms_094, rowMapper, userId); } @Transactional @Override public int auth(List<UserRoleEntity> list, String modifyUserId) { for (UserRoleEntity m : list) { String userId = m.getUserId(); String roleId = m.getRoleId(); String uuid = JoinCode.join(userId, roleId); jdbcTemplate.update(SqlDefine.sys_rdbms_096, uuid, roleId, userId, modifyUserId); } return 1; } @Transactional @Override public int batchAuth(List<UserRoleEntity> list, String modifyUserId) { for (UserRoleEntity m : list) { String userId = m.getUserId(); String roleId = m.getRoleId(); String uuid = JoinCode.join(userId, roleId); try { jdbcTemplate.update(SqlDefine.sys_rdbms_096, uuid, roleId, userId, modifyUserId); } catch (Exception e) { logger.info("用户[{}]已经拥有了角色[{}],无需重复授权", userId, roleId); logger.info(e.getMessage()); } } return 1; } @Transactional @Override public int revoke(List<UserRoleEntity> list) { for (UserRoleEntity m : list) { String userId = m.getUserId(); String roleId = m.getRoleId(); String uuid = JoinCode.join(userId, roleId); jdbcTemplate.update(SqlDefine.sys_rdbms_097, uuid); } return 1; } @Override public int add(RoleEntity roleEntity) { return jdbcTemplate.update(SqlDefine.sys_rdbms_026, roleEntity.getRole_id(), roleEntity.getRole_name(), roleEntity.getCreate_user(), roleEntity.getRole_status_code(), roleEntity.getDomain_id(), roleEntity.getModify_user(), roleEntity.getCode_number()); } @Override public int delete(List<RoleEntity> list) { for (RoleEntity m : list) { String roleId = m.getRole_id(); String domainId = m.getDomain_id(); jdbcTemplate.update(SqlDefine.sys_rdbms_027, roleId, domainId); } return 1; } @Override public int update(RoleEntity roleEntity) { logger.debug("{},{},{},{}", roleEntity.getRole_name(), roleEntity.getRole_status_code(), roleEntity.getModify_user(), roleEntity.getRole_id()); return jdbcTemplate.update(SqlDefine.sys_rdbms_050, roleEntity.getRole_name(), roleEntity.getRole_status_code(), roleEntity.getModify_user(), roleEntity.getRole_id()); } }