package com.parttime.net; import com.android.volley.RequestQueue; import com.google.gson.Gson; import com.parttime.constants.ApplicationConstants; import com.parttime.pojo.AccountInfo; import com.parttime.pojo.CommentPage; import com.parttime.pojo.UserDetailVO; import com.parttime.utils.ApplicationUtils; import com.quark.common.Url; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /** * * Created by luhua on 2015/7/31. */ public class UserDetailRequest extends BaseRequest { /** * 获取联系人详情 * * @param userId String 联系人Id * @param groupId String 群Id * @param queue RequestQueue * @param callback DefaultCallback */ public void getUserDetail(String userId, String groupId, RequestQueue queue, final DefaultCallback callback) { Map<String, String> map = new HashMap<>(); map.put("user_id", userId); map.put("group_id", groupId); request(Url.USER_DETAIL_INFO, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { JSONObject js = null; if (obj instanceof JSONObject) { js = (JSONObject) obj; } if (js == null) { callback.failed(""); return; } try { JSONObject userInfo = js.getJSONObject("userInfo"); String ui = userInfo.toString(); UserDetailVO userDetailVO = new Gson().fromJson(ui, UserDetailVO.class); callback.success(userDetailVO); } catch (JSONException e) { callback.failed(e); } } @Override public void failed(Object obj) { callback.failed(obj); } }); } public static enum GagStatus{ OFF, ON } /** * 设置禁言 * @param groupId String * @param userId String * @param status GagStatus * @param queue RequestQueue * @param callback Callback */ public void setUserGag(String groupId, String userId,GagStatus status , RequestQueue queue ,final Callback callback){ Map<String, String> map = new HashMap<>(); if(userId != null && ! userId.contains(ApplicationConstants.NORMALI_USER_PREFIX_CHAR) && ! userId.contains(ApplicationConstants.SPECIAL_USER_PREFIX_CHAR)){ userId = ApplicationConstants.NORMALI_USER_PREFIX_CHAR + userId; } map.put("user_id", userId); map.put("group_id", groupId); map.put("ban_status", String.valueOf(status.ordinal())); request(Url.COMMENT_MODIFY_USER_BAN, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { callback.success(obj); } @Override public void failed(Object obj) { callback.failed(obj); } }); } /** * 获取禁言列表 * @param groupId String * @param queue RequestQueue * @param callback Callback */ public void getGagList(String groupId, RequestQueue queue ,final Callback callback){ Map<String, String> map = new HashMap<>(); map.put("group_id", groupId); request(Url.COMMENT_GROUP_BAN_LIST, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { JSONObject js = null; if (obj instanceof JSONObject) { js = (JSONObject) obj; } if (js == null) { callback.failed(""); return; } JSONArray array = js.getJSONArray("banList"); if(array != null) { int length = array.length(); ArrayList<GagUser> gagUsers = new ArrayList<>(); for (int i = 0; i < length; i ++){ GagUser gagUser = new GagUser(); JSONObject jsonObject = array.getJSONObject(i); gagUser.alias = jsonObject.getString("alias"); gagUser.userId = jsonObject.getString("user_id"); gagUsers.add(gagUser); } callback.success(gagUsers); }else { callback.success(new ArrayList<GagUser>()); } } @Override public void failed(Object obj) { callback.failed(obj); } }); } /** * 禁言的用户 */ public static class GagUser{ public String alias; public String userId; @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof GagUser)) return false; GagUser gagUser = (GagUser) o; if (userId != null ? !userId.equals(gagUser.userId) : gagUser.userId != null) return false; return true; } @Override public int hashCode() { return userId != null ? userId.hashCode() : 0; } } /** * 设置群备注 * @param groupId String * @param userId String * @param alias GagStatus * @param queue RequestQueue * @param callback Callback */ public void setUserAlias(String groupId, String userId,String alias , RequestQueue queue ,final Callback callback){ Map<String, String> map = new HashMap<>(); map.put("user_id", userId); map.put("group_id", groupId); map.put("alias", alias); request(Url.COMMENT_GROUP_MODIFY_USER_ALIAS, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { callback.success(obj); } @Override public void failed(Object obj) { callback.failed(obj); } }); } /** * 获取备注列表 * @param groupId String * @param queue RequestQueue * @param callback Callback */ public void getUserRemarkList(String groupId, RequestQueue queue ,final Callback callback){ Map<String, String> map = new HashMap<>(); map.put("group_id", groupId); request(Url.COMMENT_GROUP_ALIAS_LIST, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { JSONObject js = null; if (obj instanceof JSONObject) { js = (JSONObject) obj; } if (js == null) { callback.failed(""); return; } JSONArray array = js.getJSONArray("aliasList"); if(array != null) { int length = array.length(); ArrayList<AliasVO> aliasVOs = new ArrayList<>(); for (int i = 0; i < length; i ++){ AliasVO aliasVO = new AliasVO(); JSONObject jsonObject = array.getJSONObject(i); aliasVO.alias = jsonObject.getString("alias"); aliasVO.userId = jsonObject.getString("user_id"); aliasVOs.add(aliasVO); } callback.success(aliasVOs); }else { callback.success(new ArrayList<GagUser>()); } } @Override public void failed(Object obj) { callback.failed(obj); } }); } public static class AliasVO{ public String userId; public String alias; } /** * 评论人员 * * @param userId String * @param groupId String * @param comment String 评价等级(优秀,良好,差评,放飞机) * @param remark String 评语 * @param queue RequestQueue * @param callback DefaultCallback */ public void comment(String userId, String groupId, String comment, String remark, RequestQueue queue, final DefaultCallback callback) { Map<String, String> map = new HashMap<>(); map.put("user_id", userId); map.put("group_id", groupId); map.put("comment", comment); map.put("remark", remark); request(Url.COMMENT_REQUIRE, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { callback.success(obj); } @Override public void failed(Object obj) { callback.failed(obj); } }); } /** * 查询评论分页接口 * * @param userId String * @param currentPager int * @param pageCount int * @param queue RequestQueue * @param callback DefaultCallback */ public void commentPage(String userId, int currentPager, int pageCount, RequestQueue queue, final DefaultCallback callback) { Map<String, String> map = new HashMap<>(); map.put("user_id", userId); map.put("pn", String.valueOf(currentPager)); map.put("page_size", String.valueOf(pageCount)); request(Url.COMMENT_DETAIL_PAGER, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { JSONObject js = null; if (obj instanceof JSONObject) { js = (JSONObject) obj; } if (js == null) { callback.failed(""); return; } try { JSONObject userInfo = js.getJSONObject("commentPage"); String ui = userInfo.toString(); CommentPage commentPage = new Gson().fromJson(ui, CommentPage.class); callback.success(commentPage); } catch (JSONException e) { callback.failed(e); } } @Override public void failed(Object obj) { callback.failed(obj); } }); } /** * 获取我的简介 * @param companyId 指定商家ID * @param queue * @param callback */ public void showCompany(int companyId, RequestQueue queue, final DefaultCallback callback) { Map<String, String> map = new HashMap<>(); map.put("company_id", String.valueOf(companyId)); map.put("city", ApplicationUtils.getCity()); request(Url.COMPANY_SHOW_INTRO, map, queue, new Callback() { @Override public void success(Object obj) throws JSONException { JSONObject js = null; if (obj instanceof JSONObject) { js = (JSONObject) obj; } if (js == null) { callback.failed(""); return; } try { JSONObject companyInfo = js.getJSONObject("companyInfo"); AccountInfo company = new Gson().fromJson(companyInfo.toString(), AccountInfo.class); callback.success(company); } catch (JSONException e) { callback.failed(e); } } @Override public void failed(Object obj) { callback.failed(obj); } }); } }