package cn.com.basic.face.service; import com.alibaba.fastjson.JSONArray; import org.xutils.http.RequestParams; import org.xutils.x; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; 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.DeviceDao; import cn.com.basic.face.service.sqlite.DictionaryDao; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.SqliteSqlUtil; /** * 数据同步服务接口 * Created by SJW * 2017/7/18 0018. */ public class DataSynchronService { public static DataSynchronService instance=new DataSynchronService(); public static DataSynchronService getInstance(){ return instance; } /*** * 向下同步,请求服务端,本地更新对应的数据库 * @param synDate 同步时间 * @param tableName 表名 * @param deviceCompanyId 设备所在机构id * @return */ public void serviceToClient(Date synDate, final String tableName, String deviceCompanyId){ try{ RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.DOWN_SYNCHRON); params.addBodyParameter("tableName", tableName); params.addBodyParameter("synDate",String.valueOf(synDate)); params.addBodyParameter("deviceCompanyId",deviceCompanyId); x.http().post(params, new BaseCommonCallBack() { public void success() { SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); } }); }catch(Exception e){ e.printStackTrace(); } } /*** * 双向同步 * @param synDate 同步时间 * @param deviceCompanyId 设备所在机构id * @param tableName 表名 */ public void twoWaySynchron(Date synDate, final String deviceCompanyId, String tableName){ try{ RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.TWO_WAY_SYNCHRON); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); final String temp=tableName; params.addBodyParameter("tableName", tableName); params.addBodyParameter("synDate",sdf.format(synDate)); if("company".equals(tableName)){ params.addBodyParameter("data", JSONArray.toJSONString(CompanyDao.getInstance().getCompanyList(deviceCompanyId))); } if("device".equals(tableName)){ params.addBodyParameter("data", JSONArray.toJSONString(DeviceDao.getInstance().getDeviceList(deviceCompanyId))); } if("dictionary".equals(tableName)){ params.addBodyParameter("data", JSONArray.toJSONString(DictionaryDao.getInstance().getDictionayList(deviceCompanyId))); } params.addBodyParameter("deviceCompanyId",deviceCompanyId); x.http().post(params, new BaseCommonCallBack() { public void success() { if("company".equals(temp)){ CompanyDao.getInstance().delCompanyList(deviceCompanyId); } if("device".equals(temp)){ DeviceDao.getInstance().delDevice(deviceCompanyId); } if("dictionary".equals(temp)){ DictionaryDao.getInstance().delDictionary(deviceCompanyId); } List result= getExtraList(SqliteSqlBean.class); SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); } }); }catch(Exception e){ e.printStackTrace(); } } }