package com.emop.client.provider.model;
import java.util.List;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.provider.BaseColumns;
import android.util.Log;
import com.emop.client.Constants;
import com.emop.client.provider.QueryParam;
public class Rebate {
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.fmei.rebates";
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.fmei.rebate";
public static final String DB_TABLE_NAME = "rebate";
public static final String LOCAL_CATE = "local_cate";
public static final String SHORT_KEY = "short_url_key";
public static final String NUM_IID = "num_iid";
public static final String SHOP_ID = "shop_id";
public static final String TITLE = "title";
public static final String PIC_URL = "pic_url";
public static final String PRICE = "price";
public static final String COUPON_PRICE = "coupon_price";
public static final String COUPON_RATE = "coupon_rate";
public static final String COUPON_START_TIME = "coupon_start_time";
public static final String COUPON_END_TIME = "coupon_end_time";
public static final String ROOT_CATE = "root_tag";
public static final String LOCAL_UPDATE_TIME = "local_update";
public static final String WEIGHT = "weight";
public static Uri update(SQLiteDatabase db, Uri uri, ContentValues values){
String taskId = values.getAsString(NUM_IID);
//values.remove("id");
List<String> seg = uri.getPathSegments(); //.get(1);
values.put(LOCAL_UPDATE_TIME, System.currentTimeMillis());
int count = db.update(DB_TABLE_NAME, values, BaseColumns._ID + "=?", new String[]{taskId});
if(count == 0){
//Log.d(Constants.TAG_EMOP, String.format("insert new item '%s:%s'", taskId,
// values.getAsString(WEIBO_ID)));
values.put(BaseColumns._ID, taskId);
db.insert(DB_TABLE_NAME, NUM_IID, values);
}else {
//Log.d(Constants.TAG_EMOP, String.format("update rebate info'%s:%s'", taskId,
// values.getAsString(SHORT_KEY) + ", cate:" + values.getAsString(ROOT_CATE)));
}
return null;
}
public static void buildRebateListQuery(SQLiteQueryBuilder builder,
String[] fileds, QueryParam param, Uri uri){
builder.setTables(DB_TABLE_NAME);
String cate = uri.getQueryParameter("cate");
if(cate != null){
builder.appendWhere(ROOT_CATE + "='" + cate + "'");
}
param.sortOrder = COUPON_START_TIME + " " + "desc, local_update desc";
}
public static ContentValues convertJson(JSONObject obj){
ContentValues v = new ContentValues();
try{
if(obj.has("id")){
v.put("id", obj.getInt("id"));
}
if(obj.has(SHORT_KEY)){
v.put(SHORT_KEY, obj.getString(SHORT_KEY));
}
if(obj.has(NUM_IID)){
v.put(NUM_IID, obj.getString(NUM_IID));
}
if(obj.has(SHOP_ID)){
v.put(SHOP_ID, obj.getString(SHOP_ID));
}
if(obj.has(TITLE)){
v.put(TITLE, obj.getString(TITLE));
}
if(obj.has(PIC_URL)){
v.put(PIC_URL, obj.getString(PIC_URL));
}
if(obj.has(PRICE)){
v.put(PRICE, obj.getString(PRICE));
}
if(obj.has(COUPON_PRICE)){
v.put(COUPON_PRICE, obj.getString(COUPON_PRICE));
}
if(obj.has(COUPON_RATE)){
v.put(COUPON_RATE, obj.getString(COUPON_RATE));
}
if(obj.has(COUPON_END_TIME) && obj.getString(COUPON_END_TIME) != null){
v.put(COUPON_END_TIME, obj.getString(COUPON_END_TIME));
}
if(obj.has(COUPON_START_TIME) && obj.getString(COUPON_START_TIME) != null){
v.put(COUPON_START_TIME, obj.getString(COUPON_START_TIME));
}
if(obj.has(ROOT_CATE)){
v.put(ROOT_CATE, obj.getString(ROOT_CATE));
}
if(obj.has(LOCAL_UPDATE_TIME)){
v.put(LOCAL_UPDATE_TIME, obj.getString(LOCAL_UPDATE_TIME));
}
if(obj.has(WEIGHT)){
v.put(WEIGHT, obj.getString(WEIGHT));
}
}catch (JSONException e) {
Log.e(Constants.TAG_EMOP, e.toString());
}
return v;
}
}