| | |
| | | |
| | | import com.doumee.keyCabinet.MApplication; |
| | | import com.doumee.keyCabinet.R; |
| | | import com.doumee.keyCabinet.bean.ConfigBean; |
| | | import com.doumee.keyCabinet.bean.CabinetFaceBean; |
| | | import com.doumee.keyCabinet.bean.DevConfigBean; |
| | | import com.doumee.keyCabinet.bean.FaceUserBean; |
| | | import com.doumee.keyCabinet.bean.RecyclerBraceletBean; |
| | | import com.doumee.keyCabinet.bean.KeyCabinetBean; |
| | | import com.doumee.keyCabinet.bean.LoginBean; |
| | | import com.doumee.keyCabinet.bean.ManageKeyCabinetBean; |
| | | import com.doumee.keyCabinet.dao.CabinetGridDo; |
| | | import com.doumee.keyCabinet.dao.DaoManager; |
| | | import com.doumee.keyCabinet.event.DevConfigEvent; |
| | | import com.doumee.keyCabinet.event.ReLoginEvent; |
| | | import com.doumee.keyCabinet.event.HttpEvent; |
| | | import com.doumee.keyCabinet.http.Apis; |
| | | import com.doumee.keyCabinet.http.param.BaseResponse; |
| | | import com.doumee.keyCabinet.http.param.CloseGridParam; |
| | | import com.doumee.keyCabinet.http.param.DevErrInfoParam; |
| | | import com.doumee.keyCabinet.http.param.DevLoginParam; |
| | | import com.doumee.keyCabinet.http.param.FaceUserParam; |
| | | import com.doumee.keyCabinet.http.param.RecyclerSHParam; |
| | | import com.doumee.keyCabinet.http.param.RequestBaseObject; |
| | | import com.doumee.keyCabinet.ui.guide.GuideActivity; |
| | | import com.doumee.keyCabinet.http.param.TimeOutUnCloseAlarmParam; |
| | | import com.doumee.keyCabinet.utils.BraceletLogUtils; |
| | | import com.doumee.keyCabinet.utils.LMobileInfo; |
| | | import com.doumee.keyCabinet.utils.LanguageUtil; |
| | | import com.doumee.keyCabinet.utils.ParamsUtil; |
| | | import com.doumee.keyCabinet.utils.i485.SportUtils; |
| | | import com.doumee.lib_coremodel.base.BaseModel; |
| | | import com.doumee.lib_coremodel.base.DataViewModel; |
| | | import com.doumee.lib_coremodel.http.rxJava.SimpleObserver; |
| | | import com.doumee.lib_coremodel.http.utils.GsonTools; |
| | | import com.doumee.lib_coremodel.http.utils.RxUtils; |
| | | import com.doumee.lib_coremodel.util.SpUtil; |
| | | import com.doumee.lib_coremodel.util.StringUtil; |
| | | |
| | | import org.greenrobot.eventbus.EventBus; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | |
| | | import okhttp3.Headers; |
| | |
| | | public class MainVM extends DataViewModel { |
| | | public ObservableField<String> dayObs = new ObservableField<>(""); |
| | | public ObservableField<String> timeObs = new ObservableField<>(""); |
| | | public ObservableField<String> infoObs = new ObservableField<>(""); |
| | | |
| | | private MutableLiveData<List<FaceUserBean>> faceLD = new MutableLiveData<>(); |
| | | private MutableLiveData<DevConfigBean> confidLD = new MutableLiveData<>(); |
| | | |
| | | @ViewModelInject |
| | | public MainVM(@NonNull Application application, BaseModel model) { |
| | |
| | | doAction(type); |
| | | } |
| | | |
| | | private boolean isReq = false; |
| | | |
| | | public void resetReq(){ |
| | | isReq = false; |
| | | } |
| | | |
| | | public void devLogin(){ |
| | | if (true) { |
| | | return; |
| | | } |
| | | //清除登录信息 |
| | | if(isReq){ |
| | | return; |
| | | } |
| | | isReq = true; |
| | | MApplication.setCookie(""); |
| | | MApplication.saveConfigBean(new ConfigBean()); |
| | | RequestBaseObject<DevLoginParam> request = new RequestBaseObject<>(); |
| | | DevLoginParam param = new DevLoginParam(); |
| | | param.setDevCode(LMobileInfo.getDeviceUniqueId()); |
| | | request.setParam(param); |
| | | getRetrofitService(Apis.class).devLogin(0, |
| | | ParamsUtil.encodeRequestBody(request)) |
| | | MApplication.saveConfigBean(new DevConfigBean()); |
| | | EventBus.getDefault().post(new HttpEvent("获取钥匙柜基本信息-请求")); |
| | | getRetrofitService(Apis.class).getCabinetInfoForDriver(LMobileInfo.getDeviceUniqueId()) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<Response<BaseResponse<DevConfigBean>>>(rxJavaGcManager) { |
| | | .subscribe(new SimpleObserver<BaseResponse<DevConfigBean>>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull Response<BaseResponse<DevConfigBean>> base) { |
| | | Headers headers = base.headers();//我们通过Response的headers对象获取到响应头信息。 |
| | | List<String> values = headers.values("Set-Cookie");//通过“Set-Cookie”字段获取到服务器返回的Cookie信息 |
| | | if(values!=null&&values.size()>0){ |
| | | MApplication.setCookie(values.get(0)); |
| | | } |
| | | BaseResponse<DevConfigBean> response = base.body(); |
| | | if(response==null){ |
| | | toast(MApplication.mContext.getString(R.string.guide_toast_1)); |
| | | } |
| | | if("000000".equals(response.getErrorCode())){ |
| | | if(response.getRecord()!=null){ |
| | | if("0".equals(response.getRecord().getStatus())){ |
| | | startActivity(GuideActivity.class); |
| | | finish(); |
| | | return; |
| | | public void onNext(@NonNull BaseResponse<DevConfigBean> response) { |
| | | EventBus.getDefault().post(new HttpEvent("获取钥匙柜基本信息-返回:"+ GsonTools.changeGsonToJson(response))); |
| | | if(200==response.getCode()){ |
| | | if(response.getData()!=null){ |
| | | MApplication.saveConfigBean(response.getData()); |
| | | confidLD.setValue(response.getData()); |
| | | if(response.getData().getCabinetGridInfoVOList()!=null){ |
| | | updateDao(response.getData().getCabinetGridInfoVOList()); |
| | | } |
| | | DevConfigBean devConfigBean = response.getRecord(); |
| | | ConfigBean configBean = new ConfigBean(); |
| | | configBean.setShopId(devConfigBean.getShopId()); |
| | | configBean.setCapacity(devConfigBean.getCapacity()); |
| | | configBean.setMoney(devConfigBean.getMoney()); |
| | | configBean.setCategory(devConfigBean.getCategory()); |
| | | configBean.setCurNum(devConfigBean.getCurNum()); |
| | | configBean.setName(devConfigBean.getName()); |
| | | configBean.setGymId(devConfigBean.getVenueId()); |
| | | configBean.setLanguage(devConfigBean.getLanguage()); |
| | | String language = devConfigBean.getLanguage(); |
| | | if(!TextUtils.isEmpty(language)){ |
| | | //转小写 |
| | | language = language.toLowerCase(); |
| | | if("zh".equals(language)){ |
| | | MApplication.nLan = 0; |
| | | }else { |
| | | MApplication.nLan = 1; |
| | | } |
| | | } |
| | | SpUtil.saveString("language",language); |
| | | LanguageUtil.changeAppLanguage(MApplication.mContext,language); |
| | | MApplication.saveConfigBean(configBean); |
| | | }else { |
| | | toast(MApplication.mContext.getString(R.string.guide_toast_1)); |
| | | } |
| | | }else if("33010101".equals(response.getErrorCode())) { |
| | | toast(MApplication.mContext.getString(R.string.guide_toast_2)+ |
| | | MApplication.mContext.getString(R.string.symbol_colon)+param.getDevCode()); |
| | | }else { |
| | | toast(response.getErrorMsg()); |
| | | toast(response.getMessage()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(@NonNull Throwable e) { |
| | | toast(e.getMessage()); |
| | | EventBus.getDefault().post(new HttpEvent("获取钥匙柜基本信息-错误:"+ e.getMessage())); |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | isReq = false; |
| | | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private void updateDao(List<ManageKeyCabinetBean> beans){ |
| | | List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll(); |
| | | HashMap<String,CabinetGridDo> oldMap = new HashMap<>(); |
| | | for(CabinetGridDo d:gridDos){ |
| | | oldMap.put(d.getGridKey(),d); |
| | | } |
| | | List<CabinetGridDo> addList = new ArrayList<>(); |
| | | List<CabinetGridDo> updateList = new ArrayList<>(); |
| | | for(ManageKeyCabinetBean bean:beans){ |
| | | String key = SportUtils.intToHex(Integer.parseInt(bean.getBoardCode()))+SportUtils.intToHex(Integer.parseInt(bean.getChannelCode())); |
| | | if(oldMap.containsKey(key)){ |
| | | //修改 |
| | | CabinetGridDo gridDo = oldMap.get(key); |
| | | gridDo.setGridId(bean.getId()); |
| | | gridDo.setCabinetName(bean.getCode()); |
| | | gridDo.setKeyCode(bean.getKeyCode()); |
| | | gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); |
| | | gridDo.setBindStatus(bean.getBindStatus()); |
| | | gridDo.setGridStatus(bean.getStatus()); |
| | | gridDo.setKeyStatus(bean.getKeyStatus()); |
| | | gridDo.setWorkingStatus(bean.getWorkingStatus()); |
| | | updateList.add(gridDo); |
| | | }else { |
| | | //新增 |
| | | CabinetGridDo gridDo = new CabinetGridDo(); |
| | | gridDo.setGridId(bean.getId()); |
| | | gridDo.setCabinetName(bean.getCode()); |
| | | gridDo.setGridKey(key); |
| | | gridDo.setKeyCode(bean.getKeyCode()); |
| | | gridDo.setBindStatus(bean.getBindStatus()); |
| | | gridDo.setGridStatus(bean.getStatus()); |
| | | gridDo.setKeyStatus(bean.getKeyStatus()); |
| | | gridDo.setWorkingStatus(bean.getWorkingStatus()); |
| | | gridDo.setUpdateTime(StringUtil.DateToStr(new Date())); |
| | | addList.add(gridDo); |
| | | } |
| | | } |
| | | if(addList.size()>0){ |
| | | DaoManager.getCabinetGridDao().insert(addList); |
| | | } |
| | | if(updateList.size()>0){ |
| | | CabinetGridDo[] upList = new CabinetGridDo[updateList.size()]; |
| | | for(int i=0;i<updateList.size();i++){ |
| | | upList[i] = updateList.get(i); |
| | | } |
| | | DaoManager.getCabinetGridDao().update(upList); |
| | | } |
| | | } |
| | | |
| | | public void devHeart(){ |
| | | if (true) { |
| | | if (MApplication.getConfigBean().getId()==null) { |
| | | return; |
| | | } |
| | | RequestBaseObject<DevLoginParam> request = new RequestBaseObject<>(); |
| | | DevLoginParam param = new DevLoginParam(); |
| | | param.setDevCode(LMobileInfo.getDeviceUniqueId()); |
| | | request.setParam(param); |
| | | getRetrofitService(Apis.class).heart(MApplication.getConfigBean().getLanguage(),MApplication.getCookie(),MApplication.getConfigBean().getShopId(), |
| | | MApplication.getConfigBean().getGymId(),ParamsUtil.encodeRequestBody(request)) |
| | | getRetrofitService(Apis.class).heart(MApplication.getConfigBean().getId()) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<BaseResponse<DevConfigBean>>(rxJavaGcManager) { |
| | | .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull BaseResponse<DevConfigBean> response) { |
| | | if(response!=null&&"000000".equals(response.getErrorCode())){ |
| | | if(response.getRecord()!=null){ |
| | | EventBus.getDefault().post(new DevConfigEvent(response.getRecord())); |
| | | } |
| | | }else if("00016".equals(response.getErrorCode())||"00068".equals(response.getErrorCode())) { |
| | | EventBus.getDefault().post(new ReLoginEvent()); |
| | | }else { |
| | | public void onNext(@NonNull BaseResponse response) { |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(@NonNull Throwable e) { |
| | | System.out.println(e.getMessage()); |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (true) { |
| | | return; |
| | | } |
| | | RequestBaseObject<FaceUserParam> request = new RequestBaseObject<>(); |
| | | FaceUserParam param = new FaceUserParam(); |
| | | param.setLastTime(SpUtil.getString("LastTime")); |
| | | param.setType("0"); |
| | | request.setParam(param); |
| | | //showLoading(true); |
| | | getRetrofitService(Apis.class).allFaceList(MApplication.getConfigBean().getLanguage(),MApplication.getCookie(),MApplication.getConfigBean().getShopId(), |
| | | MApplication.getConfigBean().getGymId(), ParamsUtil.encodeRequestBody(request)) |
| | | getRetrofitService(Apis.class).allFaceList( LMobileInfo.getDeviceUniqueId()) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<BaseResponse<FaceUserBean>>(rxJavaGcManager) { |
| | | .subscribe(new SimpleObserver<BaseResponse<CabinetFaceBean>>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull BaseResponse<FaceUserBean> response) { |
| | | if("000000".equals(response.getErrorCode())){ |
| | | public void onNext(@NonNull BaseResponse<CabinetFaceBean> response) { |
| | | if(200==response.getCode()){ |
| | | //查询数据 |
| | | if(response.getRecordList()!=null&&response.getRecordList().size()>0){ |
| | | faceLD.setValue(response.getRecordList()); |
| | | if(response.getData()!=null){ |
| | | CabinetFaceBean faceBean = response.getData(); |
| | | List<FaceUserBean> datas = new ArrayList<>(); |
| | | if(faceBean!=null&&faceBean.getAutoFaceList()!=null){ |
| | | for(FaceUserBean bean:faceBean.getAutoFaceList()){ |
| | | bean.setGroupId("1"); |
| | | } |
| | | datas.addAll(faceBean.getAutoFaceList()); |
| | | } |
| | | if(faceBean!=null&&faceBean.getDriverFaceList()!=null){ |
| | | for(FaceUserBean bean:faceBean.getDriverFaceList()){ |
| | | bean.setGroupId("0"); |
| | | } |
| | | datas.addAll(faceBean.getDriverFaceList()); |
| | | } |
| | | faceLD.setValue(datas); |
| | | } |
| | | }else if("00016".equals(response.getErrorCode())||"00068".equals(response.getErrorCode())) { |
| | | EventBus.getDefault().post(new ReLoginEvent()); |
| | | }else { |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | param.setDevCode(LMobileInfo.getDeviceUniqueId()); |
| | | param.setErrInfo(bean.getValue()); |
| | | request.setParam(param); |
| | | getRetrofitService(Apis.class).upErrInfo(MApplication.getConfigBean().getLanguage(),MApplication.getCookie(),MApplication.getConfigBean().getShopId(), |
| | | MApplication.getConfigBean().getGymId(), ParamsUtil.encodeRequestBody(request)) |
| | | getRetrofitService(Apis.class).upErrInfo(ParamsUtil.encodeRequestBody(request)) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull BaseResponse response) { |
| | | if("000000".equals(response.getErrorCode())){ |
| | | if(200==response.getCode()){ |
| | | SpUtil.remoreString(bean.getKey()); |
| | | }else if("00016".equals(response.getErrorCode())||"00068".equals(response.getErrorCode())) { |
| | | EventBus.getDefault().post(new ReLoginEvent()); |
| | | }else { |
| | | } |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 上传手环日志 |
| | | */ |
| | | public void upBraceletLog() { |
| | | if (true) { |
| | | return; |
| | | public List<CabinetGridDo> getOpenGrids(){ |
| | | return DaoManager.getCabinetGridDao().getOpenGrids(); |
| | | } |
| | | |
| | | public void insertGrids(List<CabinetGridDo> addList){ |
| | | if(addList.size()>0){ |
| | | DaoManager.getCabinetGridDao().insert(addList); |
| | | } |
| | | if(BraceletLogUtils.COUNT>100||(System.currentTimeMillis() - BraceletLogUtils.lastTime > 600000)){ |
| | | BraceletLogUtils.lastTime = System.currentTimeMillis(); |
| | | String text = BraceletLogUtils.getAllLog(); |
| | | if(TextUtils.isEmpty(text)){ |
| | | return; |
| | | addInfo("更新库数据:新增" + addList.size()); |
| | | } |
| | | |
| | | public void updateGrids(List<CabinetGridDo> updateList){ |
| | | if(updateList.size()>0){ |
| | | CabinetGridDo[] upList = new CabinetGridDo[updateList.size()]; |
| | | for(int i=0;i<updateList.size();i++){ |
| | | upList[i] = updateList.get(i); |
| | | } |
| | | RequestBaseObject<DevErrInfoParam> request = new RequestBaseObject<>(); |
| | | DevErrInfoParam param = new DevErrInfoParam(); |
| | | param.setDevCode(LMobileInfo.getDeviceUniqueId()); |
| | | param.setErrInfo(text); |
| | | request.setParam(param); |
| | | getRetrofitService(Apis.class).upErrInfo(MApplication.getConfigBean().getLanguage(),MApplication.getCookie(),MApplication.getConfigBean().getShopId(), |
| | | MApplication.getConfigBean().getGymId(), ParamsUtil.encodeRequestBody(request)) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull BaseResponse response) { |
| | | if("000000".equals(response.getErrorCode())){ |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(@NonNull Throwable e) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | DaoManager.getCabinetGridDao().update(upList); |
| | | } |
| | | addInfo("更新库数据:修改" + updateList.size()); |
| | | } |
| | | |
| | | public void timeOutUnCloseAlarm(CabinetGridDo gridDo){ |
| | | TimeOutUnCloseAlarmParam param = new TimeOutUnCloseAlarmParam(); |
| | | LoginBean loginBean = MApplication.getLoginBean(); |
| | | param.setCabinetId(MApplication.getConfigBean().getId()); |
| | | param.setMemberId(loginBean.getMemberId()); |
| | | param.setGridId(gridDo.getGridId()); |
| | | getRetrofitService(Apis.class).timeOutUnCloseAlarm(ParamsUtil.encodeRequestBody(param)) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull BaseResponse response) { |
| | | toast("超时未关门接口调用成功"); |
| | | } |
| | | |
| | | @Override |
| | | public void onError(@NonNull Throwable e) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void closeGrid(CabinetGridDo gridDo){ |
| | | CloseGridParam param = new CloseGridParam(); |
| | | LoginBean loginBean = MApplication.getLoginBean(); |
| | | param.setCabinetId(MApplication.getConfigBean().getId()); |
| | | param.setAuthType(loginBean.getAuthType()); |
| | | param.setMemberId(loginBean.getMemberId()); |
| | | param.setGridId(gridDo.getGridId()); |
| | | param.setKeyStatus(!TextUtils.isEmpty(gridDo.getCurKeyCode())?1:2); |
| | | getRetrofitService(Apis.class).closeGrid(ParamsUtil.encodeRequestBody(param)) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new SimpleObserver<BaseResponse>(rxJavaGcManager) { |
| | | @Override |
| | | public void onNext(@NonNull BaseResponse response) { |
| | | toast("关门接口调用成功"); |
| | | } |
| | | |
| | | @Override |
| | | public void onError(@NonNull Throwable e) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public MutableLiveData<DevConfigBean> getConfidLD() { |
| | | return confidLD; |
| | | } |
| | | |
| | | public void addInfo(String info){ |
| | | String s = infoObs.get(); |
| | | s+=info+"\n"; |
| | | infoObs.set(s); |
| | | } |
| | | } |