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 Shop { public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.fmei.shops"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.fmei.shop"; public static final String DB_TABLE_NAME = "shop"; public static final String LOCAL_CATE = "local_cate"; public static final String SHORT_KEY = "short_url_key"; public static final String SHOP_ID = "shop_id"; public static final String ROOT_CATE = "root_tag"; public static final String USER_NICK = "user_nick"; public static final String SHOP_TYPE = "shop_type"; public static final String GOOD_COMMENT = "good_comment"; public static final String SHOP_TITLE = "shop_title"; public static final String SHOP_DESC = "shop_desc"; public static final String SHOP_LOGO = "pic_path"; public static final String SHOP_CREDIT = "seller_credit"; public static final String STATUS = "status"; public static final String UPDATE_TIME = "update_time"; 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(SHOP_ID); //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, SHOP_ID, values); }else { //Log.d(Constants.TAG_EMOP, String.format("update shop info'%s:%s'", taskId, // values.getAsString(SHORT_KEY) + ", cate:" + values.getAsString(ROOT_CATE))); } return null; } public static void buildShopListQuery(SQLiteQueryBuilder builder, String[] fileds, QueryParam param, Uri uri){ builder.setTables(Shop.DB_TABLE_NAME); String cate = uri.getQueryParameter("cate"); if(cate != null){ builder.appendWhere(ROOT_CATE + "='" + cate + "'"); } } public static void buildQueryId(SQLiteQueryBuilder builder, Uri uri, QueryParam param){ builder.setTables(DB_TABLE_NAME); List<String> seg = uri.getPathSegments(); builder.appendWhere("shop_id='" + seg.get(1) + "'"); } 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(SHOP_LOGO)){ v.put(SHOP_LOGO, obj.getString(SHOP_LOGO)); } if(obj.has(SHOP_TITLE)){ v.put(SHOP_TITLE, obj.getString(SHOP_TITLE)); } if(obj.has(UPDATE_TIME)){ v.put(UPDATE_TIME, obj.getString(UPDATE_TIME)); } if(obj.has(USER_NICK)){ v.put(USER_NICK, obj.getString(USER_NICK)); } if(obj.has(SHOP_TYPE)){ v.put(SHOP_TYPE, obj.getString(SHOP_TYPE)); } if(obj.has(SHOP_ID)){ v.put(SHOP_ID, obj.getString(SHOP_ID)); } if(obj.has(STATUS)){ v.put(STATUS, obj.getString(STATUS)); } if(obj.has(ROOT_CATE) && obj.getString(ROOT_CATE) != null){ v.put(ROOT_CATE, obj.getString(ROOT_CATE)); } if(obj.has(WEIGHT)){ v.put(WEIGHT, obj.getString(WEIGHT)); } if(obj.has(SHOP_DESC)){ v.put(SHOP_DESC, obj.getString(SHOP_DESC)); } if(obj.has(SHOP_CREDIT)){ v.put(SHOP_CREDIT, obj.getString(SHOP_CREDIT)); } }catch (JSONException e) { Log.e(Constants.TAG_EMOP, e.toString()); } return v; } }