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();
|
}
|
|
}
|