package com.avicsafety.service;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xutils.x;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import com.avicsafety.interfaces.OnGetInfoListener;
import com.avicsafety.interfaces.OnSearchResultListener;
import com.avicsafety.lib.tools.L;
import com.avicsafety.model.M_AccidentAv;
import com.avicsafety.model.M_AccidentItem;
import com.avicsafety.model.M_Notice;
import com.avicsafety.model.M_Whp_Sgal;
import com.avicsafety.model.P_Whp_Sgal;
import com.google.gson.Gson;
public class Info_AccidentCaseManager {
OnSearchResultListener SearchResultListener = null;
public void setOnSearchResultListener(OnSearchResultListener onSearchResultListener) {
SearchResultListener = onSearchResultListener;
}
//接收参数,完成网络访问
public void Notic(RequestParams params){
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onCancelled(CancelledException arg0) {
}
@Override
public void onError(Throwable arg0, boolean arg1) {
if (SearchResultListener != null)
SearchResultListener.onFail("获取数据失败");
}
@Override
public void onFinished() {
}
//访问成功获取数据
@Override
public void onSuccess(String result) {
JSONObject res;
try {
res = new JSONObject(result);
String code = res.getString("Code");
//如果返回码是200获取数据成功开始解析数据
if (code.equals("200")) {
JSONArray datas = res.getJSONArray("Response");
//如果获取的数据为空或者长度为零提示数据没找到,否则解析遍历数据
if (datas == null || datas.length() == 0) {
if (SearchResultListener != null)
SearchResultListener.onFail("没有找到数据");
}else{
List list = getNoticJSONArray(datas);
if (SearchResultListener != null)
SearchResultListener.onSuccess(list);
}
} else {
if (SearchResultListener != null)
SearchResultListener.onFail("获取数据失败");
}
} catch (JSONException e) {
e.printStackTrace();
L.v(e.getMessage());
// Toast.makeText(oThis, "获取数据失败",
// Toast.LENGTH_SHORT).show();
if (SearchResultListener != null)
SearchResultListener.onFail("服务器出错,请稍后再试");
}
}
});
}
public void getAv(RequestParams params){
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onCancelled(CancelledException arg0) {
}
@Override
public void onError(Throwable arg0, boolean arg1) {
if (SearchResultListener != null)
SearchResultListener.onFail("获取数据失败");
}
@Override
public void onFinished() {
}
@Override
public void onSuccess(String result) {
JSONObject res;
try {
res = new JSONObject(result);
String code = res.getString("Code");
if (code.equals("200")) {
JSONArray datas = res.getJSONArray("Response");
if (datas == null || datas.length() == 0) {
if (SearchResultListener != null)
SearchResultListener.onFail("没有找到数据");
}else{
List list = getAccidentAvJSONArray(datas);
if (SearchResultListener != null)
SearchResultListener.onSuccess(list);
}
} else {
// Toast.makeText(oThis, "获取数据失败",
// Toast.LENGTH_SHORT).show();
if (SearchResultListener != null)
SearchResultListener.onFail("获取数据失败");
}
} catch (JSONException e) {
e.printStackTrace();
L.v(e.getMessage());
// Toast.makeText(oThis, "获取数据失败",
// Toast.LENGTH_SHORT).show();
if (SearchResultListener != null)
SearchResultListener.onFail("服务器出错,请稍后再试");
}
}
});
}
public void SearchInfomation(RequestParams params) {
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onCancelled(CancelledException arg0) {
}
@Override
public void onError(Throwable arg0, boolean arg1) {
if (SearchResultListener != null)
SearchResultListener.onFail("获取数据失败");
}
@Override
public void onFinished() {
}
@Override
public void onSuccess(String result) {
JSONObject res;
try {
res = new JSONObject(result);
String code = res.getString("Code");
if (code.equals("200")) {
JSONArray datas = res.getJSONArray("Response");
if (datas == null || datas.length() == 0) {
if (SearchResultListener != null)
SearchResultListener.onFail("没有找到数据");
}else{
List list = getDataByJSONArray(datas);
if (SearchResultListener != null)
SearchResultListener.onSuccess(list);
}
} else {
// Toast.makeText(oThis, "获取数据失败",
// Toast.LENGTH_SHORT).show();
if (SearchResultListener != null)
SearchResultListener.onFail("获取数据失败");
}
} catch (JSONException e) {
e.printStackTrace();
L.v(e.getMessage());
// Toast.makeText(oThis, "获取数据失败",
// Toast.LENGTH_SHORT).show();
if (SearchResultListener != null)
SearchResultListener.onFail("服务器出错,请稍后再试");
}
}
});
}
//定义解析json数据的方法,并且抛出一个异常
private List getNoticJSONArray(JSONArray datas) throws JSONException{
//定义一个List里边储存的数据类型为之前定义好的Model类型
List<M_Notice> list = new ArrayList<M_Notice>();
//开始遍历获取的json数据,并且赋值给list
for (int i = 0; i < datas.length(); i++) {
M_Notice item = new M_Notice();
JSONObject data = datas.getJSONObject(i);
item.setId(data.getString("id"));
item.setTitle(data.getString("title"));
item.setContent(data.getString("content"));
item.setCreated_at(data.getString("sj"));
list.add(item);
}
return list;
}
private List getAccidentAvJSONArray(JSONArray datas) throws JSONException{
List<M_AccidentAv> list = new ArrayList<M_AccidentAv>();
for (int i = 0; i < datas.length(); i++) {
M_AccidentAv item = new M_AccidentAv();
JSONObject data = datas.getJSONObject(i);
item.setId(data.getString("id"));
item.setTitle(data.getString("title"));
item.setUrl(data.getString("url"));
list.add(item);
}
return list;
}
private List getDataByJSONArray(JSONArray datas) throws JSONException{
List<M_AccidentItem> list = new ArrayList<M_AccidentItem>();
for (int i = 0; i < datas.length(); i++) {
M_AccidentItem item = new M_AccidentItem();
JSONObject data = datas.getJSONObject(i);
item.setAcId(data.getString("id"));
item.setAcName(data.getString("sgmc"));
item.setAcTime(data.getString("fssj"));
list.add(item);
}
return list;
}
private List getSgDetail(JSONArray datas) throws JSONException{
List<P_Whp_Sgal> list = new ArrayList<P_Whp_Sgal>();
for (int i = 0; i < datas.length(); i++) {
P_Whp_Sgal item = new P_Whp_Sgal();
JSONObject data = datas.getJSONObject(i);
item.setId(data.getString("id"));
item.setContent(data.getString("content"));
item.setCid(data.getString("cid"));
item.setTitle(data.getString("title"));
list.add(item);
}
return list;
}
public void getAccidentInfo(RequestParams params,
final OnSearchResultListener listener) {
// TODO Auto-generated method stub
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onCancelled(CancelledException arg0) {
}
@Override
public void onError(Throwable arg0, boolean arg1) {
listener.onFail("获取数据失败");
}
@Override
public void onFinished() {
}
@Override
public void onSuccess(String result) {
JSONObject res;
try {
// System.out.println(result);
res = new JSONObject(result);
String code = res.getString("Code");
if (code.equals("200")) {
JSONArray data = res.getJSONArray("Response");
// L.v("lllllllllll", res.toString());
if (data == null || data.length() == 0) {
listener.onFail("没有找到数据");
}else{
List<P_Whp_Sgal> list = getSgDetail(data);
if(list!=null&&list.size()>0){
listener.onSuccess(list);
}
// Gson gson = new Gson();
// M_Whp_Sgal model = gson.fromJson(data.toString(), M_Whp_Sgal.class);
}
} else {
listener.onFail("获取数据失败");
}
} catch (JSONException e) {
e.printStackTrace();
L.v(e.getMessage());
listener.onFail("服务器出错,请稍后再试");
}
}
});
}
}