package com.mossle.security.impl; import com.mossle.security.spi.UserStatusUpdater; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.transaction.annotation.Transactional; @Transactional(rollbackFor = Exception.class) public class DatabaseUserStatusUpdater implements UserStatusUpdater { private static Logger logger = LoggerFactory .getLogger(DatabaseUserStatusUpdater.class); private JdbcTemplate jdbcTemplate; private String selectSql = "select count(username) from AUTH_USER_STATUS where username=? and repo_code='0'"; private String createSql = "insert into AUTH_USER_STATUS(username,status,repo_code) values(?,?,'0')"; private String updateSql = "update AUTH_USER_STATUS set status=? where username=? and repo_code='0'"; private String removeSql = "delete from AUTH_USER_STATUS where username=? and repo_code='0'"; public void updateUser(String username, int status) { int count = jdbcTemplate.queryForObject(selectSql, Integer.class, username); if (count == 0) { logger.debug("insert : {}", username); jdbcTemplate.update(createSql, username, status); } else { logger.debug("update : {}", username); jdbcTemplate.update(updateSql, status, username); } } public void removeUser(String username) { logger.debug("remove : {}", username); jdbcTemplate.update(removeSql, username); } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void setSelectSql(String selectSql) { this.selectSql = selectSql; } public void setCreateSql(String createSql) { this.createSql = createSql; } public void setUpdateSql(String updateSql) { this.updateSql = updateSql; } public void setRemoveSql(String removeSql) { this.removeSql = removeSql; } }