示例#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
  /** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.setContentType("application/json");
    response.setCharacterEncoding("utf-8");
    String type = request.getParameter("type");

    TagDao tagDao = TagDao.getInstance();
    JSONObject json = null;
    if (type.equals(GET_TAG_BY_ID)) {
      long tagId = Long.parseLong(request.getParameter("tagId"));
      Tag tag = tagDao.getTagById(tagId);
      json = new JSONObject(tag);
    } else if (type.equals(GET_SIMILAR_TAG)) {
      String tag = request.getParameter("tag");
      List<Tag> tags = tagDao.getSimilarTags(tag);
      json = new JSONObject();
      json.put("tags", new JSONArray(tags));
    }

    PrintWriter printWriter = response.getWriter();
    printWriter.print(json);
    printWriter.flush();
    printWriter.close();
  }
示例#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
 /** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   response.setContentType("application/json");
   response.setCharacterEncoding("utf-8");
   Gson gson = new Gson();
   JSONObject input = new JSONObject(extractPostRequestBody(request));
   Tag tag = gson.fromJson(input.getJSONObject("data").toString(), Tag.class);
   TagDao tagDao = TagDao.getInstance();
   long tagId = tagDao.addTag(tag);
   tag.setTagId(tagId);
   JSONObject json = new JSONObject(tag);
   PrintWriter printWriter = response.getWriter();
   printWriter.print(json);
   printWriter.flush();
   printWriter.close();
 }
示例#5
0
 public Tag getDeletedTagByNameAndPkId(String name, Long pkId) {
   List<Tag> tags = tagDao.getDeletedTagsByNameAndPkId(name, pkId);
   Tag tag = null;
   if (!tags.isEmpty()) {
     tag = tags.get(0);
   }
   return tag;
 }
示例#6
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("Ошибка личного кабинета");
     }
   }
 }
示例#7
0
 public List<Tag> getNotLinkedTags(Long clientId, Long pkId) {
   List<Tag> res = new ArrayList();
   if (pkId != null) {
     if (clientId != null) {
       List<Tag> allTags = tagDao.getAllActiveTags(pkId);
       Client c = clientDao.find(clientId);
       Set<Tag> ctags = c.getTags();
       for (Tag t : allTags) {
         if (!ctags.contains(t)) {
           res.add(t);
         }
       }
     } else {
       addError("Ид клиента не передан");
     }
   } else {
     addError("Ошибка личного кабинета");
   }
   return res;
 }
示例#8
0
 /*public boolean deleteClientTagLink(Long ctlId){
 ClientTagLink ctl = clientTagLinkDao.find(ctlId);
 if(ctl!=null){
 clientTagLinkDao.delete(ctl);
 return true;
 }
 addError("Связь Тэга с клиентом не найдена");
 return false;
 }*/
 public void deleteClientTag(Long clientId, Long tagId, Long pkId) {
   if (pkId != null) {
     if (clientId != null) {
       Client c = clientDao.find(clientId);
       if (tagId != null) {
         Tag t = tagDao.find(tagId);
         Set<Tag> tags = c.getTags();
         tags.remove(t);
         c.setTags(tags);
         if (validate(c)) {
           clientDao.update(c);
         }
       } else {
         addError("Ид тэга не передан");
       }
     } else {
       addError("Ид клиента не передан");
     }
   } else {
     addError("Ошибка личного кабинета");
   }
 }
示例#9
0
 public List<Tag> getDeletedTags(Long pkId) {
   return tagDao.getDeletedTags(pkId);
 }
示例#10
0
 public List<Tag> getAllTags(Long pkId) {
   return tagDao.getAllTags(pkId);
 }