Пример #1
0
 // Если тэга с таким именем не было - просто создается, если был, но был удален без очистки линков
 // - восстанавливается
 // Если имя тэга уникально, при попытке добавления такого-же будет ошибка
 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("Не удалось добваить тэг в связи с ограничениями тарифа");
   }
 }
Пример #2
0
 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;
 }
Пример #3
0
 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("Ид тэга не передан");
   }
 }
Пример #4
0
 public boolean isUniqueName(String name, Long pkId) {
   for (Tag tag : getAllActiveTags(pkId)) {
     if (tag.getName().equalsIgnoreCase(name)) {
       return false;
     }
   }
   return true;
 }
Пример #5
0
 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("Ошибка личного кабинета");
     }
   }
 }