package com.mossle.user.support;
import javax.annotation.Resource;
import com.mossle.api.user.UserDTO;
import com.mossle.api.user.UserSyncConnector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
public class DatabaseUserSyncConnector implements UserSyncConnector {
private static Logger logger = LoggerFactory
.getLogger(DatabaseUserSyncConnector.class);
private JdbcTemplate jdbcTemplate;
private String sqlFindByCode = "select count(*) from ACCOUNT_INFO where code=?";
private String sqlUpdate = "update ACCOUNT_INFO set username=?,nick_name=?,display_name=?,status='active' where code=?";
private String sqlInsert = "insert into ACCOUNT_INFO(code,username,nick_name,display_name,status) values(?,?,?,?,'active')";
@Transactional
public void updateUser(UserDTO userDto) {
Assert.notNull(userDto, "userDto should not be null");
String code = userDto.getRef();
int count = jdbcTemplate.queryForObject(sqlFindByCode, Integer.class,
code);
if (count > 0) {
jdbcTemplate.update(sqlUpdate,
new Object[] { userDto.getUsername(),
userDto.getNickName(), userDto.getDisplayName(),
code });
} else {
jdbcTemplate.update(
sqlInsert,
new Object[] { code, userDto.getUsername(),
userDto.getNickName(), userDto.getDisplayName() });
}
}
@Resource
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}