package com.netease.nim.uikit.team.helper;
import android.text.TextUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.netease.nim.uikit.NimUIKit;
import com.netease.nim.uikit.team.model.Announcement;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* Created by huangjun on 2015/3/24.
*/
public class AnnouncementHelper {
public final static String JSON_KEY_CREATOR = "creator";
public final static String JSON_KEY_TITLE = "title";
public final static String JSON_KEY_TIME = "time";
public final static String JSON_KEY_CONTENT = "content";
public final static String JSON_KEY_ID = "id";
public static String makeAnnounceJson(String announce, String title, String content) {
JSONArray jsonArray = null;
try {
jsonArray = JSONArray.parseArray(announce);
} catch (Exception e) {
e.printStackTrace();
}
if (jsonArray == null) {
jsonArray = new JSONArray();
}
JSONObject json = new JSONObject();
json.put(JSON_KEY_ID, UUID.randomUUID().toString());
json.put(JSON_KEY_CREATOR, getCreatorName());
json.put(JSON_KEY_TITLE, title);
json.put(JSON_KEY_CONTENT, content);
json.put(JSON_KEY_TIME, (System.currentTimeMillis() / 1000)); // 与ios和pc兼容
jsonArray.add(json);
return jsonArray.toString();
}
public static List<Announcement> getAnnouncements(String teamId, String announce, int limit) {
if (TextUtils.isEmpty(announce)) {
return null;
}
List<Announcement> announcements = new ArrayList<>();
try {
int count = 0;
JSONArray jsonArray = JSONArray.parseArray(announce);
for (int i = jsonArray.size() - 1; i >= 0; i--) {
JSONObject json = jsonArray.getJSONObject(i);
String id = json.getString(JSON_KEY_ID);
String creator = json.getString(JSON_KEY_CREATOR);
String title = json.getString(JSON_KEY_TITLE);
long time = json.getLongValue(JSON_KEY_TIME);
String content = json.getString(JSON_KEY_CONTENT);
announcements.add(new Announcement(id, teamId, creator, title, time, content));
if (++count >= limit) {
break;
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return announcements;
}
public static Announcement getLastAnnouncement(String teamId, String announcement) {
List<Announcement> list = getAnnouncements(teamId, announcement, 1);
return (list == null || list.isEmpty()) ? null : list.get(0);
}
private static String getCreatorName() {
return NimUIKit.getAccount();
}
}