@Override @SuppressWarnings("unchecked") public Conversation create(Conversation conv) { final Long id = getId(conv); if (template .opsForValue() .get( KeyUtils.conversationProductIdAndVisitorToken( conv.getTopic().getProductId(), conv.getVisitor())) != null) { return findBy(id); } conv.setId(id); template.opsForHash().put(getIdKey(id), "id", id.toString()); template.opsForHash().put(getIdKey(id), "topic", conv.getTopic().getId().toString()); template.opsForHash().put(getIdKey(id), "visitor", conv.getVisitor()); template.opsForHash().put(getIdKey(id), "visitorName", conv.getVisitorName()); template .opsForHash() .put(getIdKey(id), "customerServiceUser", conv.getCustomerServiceUsername()); template.opsForHash().put(getIdKey(id), "status", conv.getStatus().toString()); template .opsForHash() .put(getIdKey(id), "createDate", String.valueOf(conv.getCreateDate().getTime())); template .opsForValue() .set( KeyUtils.conversationProductIdAndVisitorToken( conv.getTopic().getProductId(), conv.getVisitor()), id.toString()); return conv; }
protected Long getId(Conversation conv) { String id = template .opsForValue() .get( KeyUtils.conversationProductIdAndVisitorToken( conv.getTopic().getProductId(), conv.getVisitor())); if (id != null) return Long.valueOf(id); if (conv.getId() == null) { return idCounter.incrementAndGet(); } return conv.getId(); }