@RequestMapping(value = "search", method = RequestMethod.GET) @ResponseBody public String search( @RequestParam("recipientType") String recipientType, @RequestParam(required = false) Long recipientId, PageParam pageParam) { Pageable pageable = pageParam.getPageable(Share.class); Page<Share> page = null; if (recipientId == null) { page = shareService2.findAll(currentUserId(), recipientType, pageable); } else { page = shareService2.findAll(currentUserId(), recipientType, recipientId, pageable); } return Gsons.filterByFields(ShareDto.Brief.class, pageParam.getFields()) .toJson(PageDto.of(page, ShareDto.toBrief)); }
@RequestMapping(method = RequestMethod.GET) @ResponseBody public String page(@RequestParam(required = false) String q, PageParam pageParam) { List<SearchFilter> filters = StringUtils.isEmpty(q) ? new ArrayList<SearchFilter>() : SearchFilter.parseQuery(q); filters.add(new SearchFilter("creator.id", Operator.EQ, currentUserId())); filters.add(new SearchFilter("status", Operator.EQ, Share.Status.CREATED)); Page<Share> page = shareService2.findAll(filters, pageParam.getPageable(Share.class)); return Gsons.filterByFields(ShareDto.Brief.class, pageParam.getFields()) .toJson(PageDto.of(page, ShareDto.toBrief)); }
@RequestMapping(method = RequestMethod.POST) @ResponseBody public String create(@Valid CreateRequest createRequest) { File file = fileService.find(createRequest.fileId); if (file == null) { throw new RestException(ErrorCode.FILE_NOT_FOUND); } // 判断操作人员是否有权限 if (!file.getOwner().getId().equals(currentUserId())) { throw new RestException(ErrorCode.FORBIDDEN); } // 执行分享操作 List<ShareRecipient> recipients = Lists.newArrayList(); for (String recipient : createRequest.recipients) { ShareRecipient tmp = ShareDto.dtoToRecipient.apply(recipient); if (tmp != null) { recipients.add(tmp); } } Share share = shareService2.createShare( currentUser(), file, recipients, createRequest.shareHeadVersion, createRequest.message); // 推送消息 String message = new StringBuilder() .append(getUserPrincipal().getUserName()) .append("给您分享了文件") .append(file.getIsDir() ? "夹:" : ":") .append(file.getName()) .toString(); for (ReceivedShare receivedShare : receivedShareService.findAll(share)) { try { sendNotif( new Notification( NotifType.SHARE_CREATE, message, ReceivedShareDto.toNotify.apply(receivedShare), ImmutableList.<Long>of(receivedShare.getRecipient().getId()))); } catch (Exception e) { _logger.error(null, e); } } return gson().toJson(ShareDto.toBrief.apply(share)); }