package cn.com.basic.face.service.sync.up; import com.alibaba.fastjson.JSONArray; import org.xutils.http.RequestParams; import org.xutils.x; import java.text.SimpleDateFormat; 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.SqliteSqlBean; import cn.com.basic.face.service.sqlite.DeviceDao; import cn.com.basic.face.service.sqlite.SynchronRecordDao; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.SqliteSqlUtil; /** * * device双向同步 * Created by SJW on 2017/7/25 0025. */ public class DeviceUpSync extends BaseSync { public static DeviceUpSync instance=new DeviceUpSync(); public static DeviceUpSync getInstance(){ return instance; } /*** * device表双向同步 */ public void doSync() { try{ final String tableName = "device"; RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.TWO_WAY_SYNCHRON); params.addBodyParameter("tableName", tableName); params.addBodyParameter("synDate", SynchronRecordDao.getInstance().getSynRecord(tableName)==null?"":SynchronRecordDao.getInstance().getSynRecord(tableName).getSynchronTime()); params.addBodyParameter("data", JSONArray.toJSONString(DeviceDao.getInstance().getDeviceList(BaseApplication.getInstance().getAndroidDevice().getCompanyId()))); params.addBodyParameter("deviceCompanyId",BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().post(params, new BaseCommonCallBack() { public void success() { Long time=(Long)resultBean.getData(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String synTime = format.format(time); if(SynchronRecordDao.getInstance().getSynRecord(tableName)==null){ SynchronRecordDao.getInstance().insertSynRecord(tableName,synTime); }else{ SynchronRecordDao.getInstance().updateSynRecord(tableName,synTime); } DeviceDao.getInstance().delDevice(); List result= getExtraList(SqliteSqlBean.class); SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); sync(); } }); }catch(Exception e){ e.printStackTrace(); } } /*** * 查询deivice表是否有需要同步的数据 * @return */ public boolean hasMore() { int count= DeviceDao.getInstance().getSynDataCount(); if(count==0){ return false; } return true; } }