package cn.com.basic.face.service.sync.up; import com.alibaba.fastjson.JSONArray; import org.xutils.http.RequestParams; import org.xutils.x; import java.io.File; import java.io.FileWriter; import java.util.List; import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.discern.common.BaseCommonCallBack; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.query.item.UnknownQueryItem; import cn.com.basic.face.service.sqlite.SurveillanceDao; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.FileUtil; public class OfflineSurveillanceUpSync extends BaseSync { private static OfflineSurveillanceUpSync instance = new OfflineSurveillanceUpSync(); public static OfflineSurveillanceUpSync getInstance() { return instance; } public void upSync() { final UnknownQueryItem item = SurveillanceDao.getInstance().readOfflineUnknownFromLocal(); try { RequestParams params = new RequestParams(); File rawSurveillancePhotoFile = FileUtil.getFile(item.getRawDataPath()); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); params.addBodyParameter("InOrOutCamera", item.getCameraInOrOut() + ""); params.addBodyParameter("deviceId", BaseApplication.getInstance().getAndroidDevice().getDeviceId()); params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile); File path = BaseApplication.getInstance().getFilesDir(); File f0 = new File(path, "f0"); if (!f0.exists()) { f0.createNewFile(); } FileWriter fw0 = new FileWriter(f0); fw0.write("test1"); fw0.close(); params.setUri(AppApi.BASE_URL + AppApi.SURVEILLANCE_UPLOAD); params.addBodyParameter("f0", f0); params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile); params.addBodyParameter("androidCreateTime", item.getCreateTime()); params.addBodyParameter("offlineUnknown", CommonVariables.Surveillance.OFFLINE_SURVEILLANCE_ITEM_TYPE +""); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().post(params, new BaseCommonCallBack() { @Override public void success() { try { if (1==1) { SurveillanceDao.getInstance().removeLocalSqliteRecord(item); } sync(); } catch(Exception e) { e.printStackTrace(); } } }); }catch(Exception e) { e.printStackTrace(); } } /** *offline_surveillance表向上同步 */ @Override public void doSync() { try{ final String tableName = "offline_surveillance"; RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.UP_SYNCHRON); params.addBodyParameter("tableName", tableName); final List list = SurveillanceDao.getInstance().getSurveillanceList(); params.addBodyParameter("data", JSONArray.toJSONString(list)); params.addBodyParameter("deviceCompanyId",BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().post(params, new BaseCommonCallBack() { public void success() { SurveillanceDao.getInstance().delSurllanceList(list); sync(); } }); }catch(Exception e){ e.printStackTrace(); } } @Override public boolean hasMore() { int count= SurveillanceDao.getInstance().getSynDataCount(); if(count==0){ return false; } return true; } public boolean More() { return SurveillanceDao.getInstance().hasMoreOfflineSurveillance(); } }