// Если тэга с таким именем не было - просто создается, если был, но был удален без очистки линков // - восстанавливается // Если имя тэга уникально, при попытке добавления такого-же будет ошибка public void create(String name, Long pkId) { if (adminService.tarifIsNotExpired(pkId)) { boolean unique = true; boolean deleted = false; Tag existingTag = getTagByNameAndPkId(name, pkId); Tag deletedTag = getDeletedTagByNameAndPkId(name, pkId); if (existingTag != null) { unique = false; if (deletedTag != null) { deleted = true; } } if (unique) { Tag tag = new Tag(); tag.setCabinet(pkDao.find(pkId)); tag.setName(name); if (validate(tag)) { tagDao.save(tag); } } else { if (deleted) { deletedTag.setDeleteDate(null); if (validate(deletedTag)) { tagDao.update(deletedTag); } } else { addError("Такой тэг уже есть"); } } } else { addError("Не удалось добваить тэг в связи с ограничениями тарифа"); } }
public LinkedHashMap<Long, Tag> getAllActiveTagsMap(Long pkId) { LinkedHashMap<Long, Tag> res = new LinkedHashMap(); for (Tag tag : getAllActiveTags(pkId)) { res.put(tag.getId(), tag); } return res; }
public void delete(Long tagId, boolean deleteLinks) { if (tagId != null) { Tag tag = tagDao.find(tagId); if (tag != null) { if (deleteLinks) { for (Client client : tag.getClients()) { Set<Tag> cltags = client.getTags(); cltags.remove(tag); client.setTags(cltags); if (validate(client)) { clientDao.update(client); addError(client.getNameCompany()); } } tagDao.delete(tag); } else { tag.setDeleteDate(new Date()); } } else { addError("Не удалось найти тэг"); } } else { addError("Ид тэга не передан"); } }
public boolean isUniqueName(String name, Long pkId) { for (Tag tag : getAllActiveTags(pkId)) { if (tag.getName().equalsIgnoreCase(name)) { return false; } } return true; }
public void changeName(Long tagId, String newName, Long pkId) { if (tagId != null && newName != null && pkId != null) { Tag tag = tagDao.find(tagId); boolean unique = true; boolean deleted = false; Tag existingTag = getTagByNameAndPkId(newName, pkId); Tag deletedTag = getDeletedTagByNameAndPkId(newName, pkId); if (existingTag != null) { unique = false; ; if (deletedTag != null) { deleted = true; } } if (unique) { if (tag != null) { tag.setName(newName); if (validate(tag)) { tagDao.update(tag); } } else { addError("Не удалось найти тэг"); } } else { if (deleted) { tagDao.delete(deletedTag); tag.setName(newName); if (validate(tag)) { tagDao.update(tag); } } else { addError("Такой тэг уже есть"); } } } else { if (tagId == null) { addError("Ид тэга не получен"); } if (newName == null) { addError("Имя не получено"); } if (pkId == null) { addError("Ошибка личного кабинета"); } } }