예제 #1
0
  /**
   * 删除直播
   *
   * @param liveId
   * @param groupId
   * @param currUser
   * @return
   * @throws XueWenServiceException
   */
  public boolean delete(String liveId, String groupId, User currUser)
      throws XueWenServiceException {
    Live live = liveRepo.findOne(liveId);
    if (StringUtil.isBlank(groupId)) { // 创建者删除
      if (currUser.getId().equals(live.getCreateUser())) {
        liveRepo.delete(live);
        for (JSONObject obj : live.getGroup()) {
          try {
            // 删除群组动态
            this.deleteByGroupIdAndSourceId(obj.getString("groupId"), live.getId());
          } catch (Exception e) {
            l.error("======创建活动群组动态失败:========" + e);
          }
        }
        return true;
      } else {
        throw new XueWenServiceException(Config.STATUS_201, Config.MSG_NOACESS_201, null);
      }

    } else { // 从小组里删除直播
      XueWenGroup group = groupService.findByid(groupId);
      if (group != null) {
        if (group.getOwner().contains(currUser.getId())) {
          JSONObject[] str = new JSONObject[3];
          str[0] = JSONObject.fromObject(groupId);
          ;
          str[1] = JSONObject.fromObject(group.getGroupName());
          str[2] = JSONObject.fromObject(group.getLogoUrl());
          List<JSONObject> stooges = Arrays.asList(str);
          List<JSONObject> newAddGroups = live.getGroup();
          newAddGroups.removeAll(stooges);
          live.setGroup(newAddGroups);
          // 删除去掉的群组动态
          for (JSONObject obj : stooges) {
            try {
              this.deleteByGroupIdAndSourceId(obj.getString("groupId"), live.getId());
            } catch (Exception e) {
              l.error("======创建活动群组动态失败:========" + e);
            }
          }
        }
      }
    }

    liveRepo.save(live);
    return true;
  }