From c7376f8d1091b70597ba4430a281496b585b386e Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期四, 23 十月 2025 21:58:26 +0800
Subject: [PATCH] 钥匙柜
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java | 335 +++++++++++++++++++++++++++++++------------------------
1 files changed, 190 insertions(+), 145 deletions(-)
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
index ea0656e..16c401a 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainVM.java
@@ -10,32 +10,42 @@
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;
@@ -44,8 +54,10 @@
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) {
@@ -57,123 +69,108 @@
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鐨刪eaders瀵硅薄鑾峰彇鍒板搷搴斿ご淇℃伅銆�
- List<String> values = headers.values("Set-Cookie");//閫氳繃鈥淪et-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
@@ -191,26 +188,33 @@
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 {
+
}
}
@@ -235,16 +239,13 @@
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 {
}
}
@@ -261,45 +262,89 @@
});
}
- /**
- * 涓婁紶鎵嬬幆鏃ュ織
- */
- 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) {
+
+ }
+
+ @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) {
+
+ }
+
+ @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);
}
}
--
Gitblit v1.9.3