package com.mossle.user.notification; import javax.annotation.Resource; import com.mossle.core.id.IdGenerator; import com.mossle.user.persistence.domain.UserBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; public class PartyUserNotification implements UserNotification { private static Logger logger = LoggerFactory .getLogger(PartyUserNotification.class); private JdbcTemplate jdbcTemplate; private IdGenerator idGenerator; // insert private String insertPartyEntitySql = "INSERT INTO PARTY_ENTITY(ID,NAME,REF,TYPE_ID) VALUES(?,?,?,?)"; private String selectPartyEntitySql = "SELECT ID FROM PARTY_ENTITY WHERE REF=? AND TYPE_ID=?"; // update private String updatePartyEntitySql = "UPDATE PARTY_ENTITY SET NAME=? WHERE REF=? AND TYPE_ID=?"; // remove private String removePartyStructSql = "DELETE FROM PARTY_STRUCT WHERE STRUCT_TYPE_ID=? AND PARENT_ENTITY_ID=? AND CHILD_ENTITY_ID=?"; private String removePartyEntitySql = "DELETE FROM PARTY_ENTITY WHERE ID=?"; public void insertUser(UserBase userBase) { Long typeId = 1L; jdbcTemplate.update(insertPartyEntitySql, idGenerator.generateId(), userBase.getUsername(), userBase.getId(), typeId); } public void updateUser(UserBase userBase) { Long typeId = 1L; jdbcTemplate.update(updatePartyEntitySql, userBase.getUsername(), userBase.getId(), typeId); } public void removeUser(UserBase userBase) { Long typeId = 1L; Long entityId = this.getPartyEntityId(userBase.getId(), typeId); if (entityId == null) { return; } Long structTypeId = 1L; jdbcTemplate.update(removePartyStructSql, structTypeId, entityId, entityId); jdbcTemplate.update(removePartyEntitySql, entityId); } public Long getPartyEntityId(Long reference, Long typeId) { try { return jdbcTemplate.queryForObject(selectPartyEntitySql, Long.class, reference, typeId); } catch (Exception ex) { logger.error(ex.getMessage(), ex); return null; } } @Resource public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @Resource public void setIdGenerator(IdGenerator idGenerator) { this.idGenerator = idGenerator; } }