// Если тэга с таким именем не было - просто создается, если был, но был удален без очистки линков // - восстанавливается // Если имя тэга уникально, при попытке добавления такого-же будет ошибка 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("Не удалось добваить тэг в связи с ограничениями тарифа"); } }
/** @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(); }
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("Ид тэга не передан"); } }
/** @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(); }
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; }
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("Ошибка личного кабинета"); } } }
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; }
/*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("Ошибка личного кабинета"); } }
public List<Tag> getDeletedTags(Long pkId) { return tagDao.getDeletedTags(pkId); }
public List<Tag> getAllTags(Long pkId) { return tagDao.getAllTags(pkId); }