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.CompanyDao; import cn.com.basic.face.service.sqlite.SynchronRecordDao; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.SqliteSqlUtil; /** * * company双向同步 * Created by SJW on 2017/7/25 0025. */ public class CompanyUpSync extends BaseSync { public static CompanyUpSync instance=new CompanyUpSync(); public static CompanyUpSync getInstance(){ return instance; } /*** * company表双向同步 */ public void doSync() { try{ final String tableName = "company"; 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(CompanyDao.getInstance().getCompanyList(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); } CompanyDao.getInstance().delCompanyList(); List result= getExtraList(SqliteSqlBean.class); SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); sync(); } }); }catch(Exception e){ e.printStackTrace(); } } /*** * 查询company表是否有需要同步的数据 * @return */ public boolean hasMore() { int count= CompanyDao.getInstance().getSynDataCount(); if(count==0){ return false; } return true; } }