package com.mfh.comna.comn.logic;
import android.content.Context;
import com.alibaba.fastjson.JSONObject;
import com.mfh.comna.bizz.BizApplication;
import net.tsz.afinal.http.AjaxParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by Administrator on 14-5-16.
*/
public class ComnService implements IService {
//统一日志记录框架,在android上会绑定andoid内部日志。在服务器上会绑定log4j之类,具体看使用的关联日志实现jar包。
protected Logger logger = LoggerFactory.getLogger(this.getClass());
private Context context;
@SuppressWarnings("rawtypes")
public Context getContext() {
if (context == null)
return BizApplication.getAppContext();
else
return context;
}
public void setContext(Context context) {
this.context = context;
}
/**
* 直接构造ajaxParam,并追加json参数
* @param keysAndValues
* @return
*/
protected AjaxParams genJsonAjaxParam(Object... keysAndValues) {
AjaxParams params = new AjaxParams();
addJsonParam(params, keysAndValues);
return params;
}
protected void addJsonParam(JSONObject json, Object... keysAndValues) {
int len = keysAndValues.length;
if (len > 0) {
if (len % 2 != 0)
throw new IllegalArgumentException("传入的参数必须成对!");
for (int i = 0; i < len; i += 2) {
String key = String.valueOf(keysAndValues[i]);
Object val = keysAndValues[i + 1];
if (val != null)
json.put(key, val);
}
}
}
/**
* 追加新的json参数,参数名为jsonStr,服务器端规定好了
* @param params
* @param keysAndValues key/value对
*/
protected void addJsonParam(AjaxParams params, Object... keysAndValues) {
JSONObject json = new JSONObject();
addJsonParam(json, keysAndValues);
params.put("jsonStr", json.toJSONString());
}
/**
* 追加新的json参数,参数名为jsonStr。若jsonStr已经存在,则附加在后面
* @param params
* @param keysAndValues key/value对
*/
protected void addOrAppendJsonParam(AjaxParams params, Object... keysAndValues) {
String jsonStr = params.getNormalValue("jsonStr");
if (jsonStr == null || jsonStr.length() == 0)
addJsonParam(params, keysAndValues);
else {
JSONObject json = JSONObject.parseObject(jsonStr);
addJsonParam(json, keysAndValues);
params.put("jsonStr", json.toJSONString());
}
}
}