package io.loli.sc.server.action; import io.loli.sc.server.entity.Tag; import io.loli.sc.server.entity.UploadedImage; import io.loli.sc.server.entity.User; import io.loli.sc.server.service.TagService; import io.loli.sc.server.service.UploadedImageService; import io.loli.sc.server.service.UserService; import java.util.List; import javax.inject.Inject; import javax.inject.Named; import javax.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Named @RequestMapping(value = "/tag") public class TagController { @Inject private TagService tagService; @Inject private UserService userService; @Inject private UploadedImageService uploadedImageService; @RequestMapping(value = "add", method = RequestMethod.POST) @ResponseBody public String add(Tag tag, HttpServletRequest request, int imageId) { Object obj = request.getSession().getAttribute("user"); User user = obj == null ? null : (User) obj; if (user != null) { user = userService.findById(user.getId()); Tag tagInDb = null; try { if (null != tag.getName()) { tagInDb = tagService.findByNameAndUser(tag.getName(), user); } else { tagInDb = tagService.getById(tag.getId()); } } catch (Exception e) { e.printStackTrace(); } if (tagInDb == null) { tag.setUser(user); tagService.save(tag); } else { tag = tagInDb; } UploadedImage img = uploadedImageService.findById(imageId); img.setTag(tag); uploadedImageService.update(img); } return "" + tag.getId(); } @RequestMapping(value = "list") @ResponseBody public List<Tag> list(HttpServletRequest request) { Object obj = request.getSession().getAttribute("user"); User user = obj == null ? null : (User) obj; if (user != null) { user = userService.findById(user.getId()); } else { return null; } return user.getTagList(); } }