diff --git a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java index 1f45020..fa54aa8 100644 --- a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java +++ b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java @@ -169,7 +169,7 @@ public class AddDeviceActivity extends BaseActivity map , IndexContract.CallBack callBack); } public interface DeviceView extends IView { @@ -40,5 +43,7 @@ public class DeviceContract { void turnOnOffDeviceSuccess(BaseBean bean, String status); void queryDeviceBindStatusSuccess(WaterDeviceEntity bean); + //查询设备目前工作状态 + void queryDeviceWorkTimeSuccess(WaterDeviceEntity bean); } } diff --git a/app/src/main/java/com/ckkj/water/device/mvp/DeviceImpl.java b/app/src/main/java/com/ckkj/water/device/mvp/DeviceImpl.java index 6c6f2d7..c01e63c 100644 --- a/app/src/main/java/com/ckkj/water/device/mvp/DeviceImpl.java +++ b/app/src/main/java/com/ckkj/water/device/mvp/DeviceImpl.java @@ -4,9 +4,11 @@ import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.index.mvp.IndexContract; import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.NetWorkManager; +import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import org.json.JSONObject; +import java.util.List; import java.util.Map; import io.reactivex.Observer; @@ -205,4 +207,38 @@ public class DeviceImpl implements DeviceContract.DataModel{ e.printStackTrace(); } } + + /** + * 查询设备工作时间 + * @param map + * @param callBack + */ + @Override + public void queryDeviceWorkTime(Map map, IndexContract.CallBack callBack) { + NetWorkManager.getRequest().queryDeviceWorkTime(NetWorkManager.getToken(),map) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + } + + @Override + public void onNext(@NonNull BaseBean bean) { + if (bean.getCode() == 200) { + callBack.success(bean.getData(),0); + } + } + + @Override + public void onError(@NonNull Throwable e) { + callBack.fail(e.getMessage()); + } + + @Override + public void onComplete() { + } + }); + } } diff --git a/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java b/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java index 54bfcfc..3a0672e 100644 --- a/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java +++ b/app/src/main/java/com/ckkj/water/device/mvp/DevicePresenter.java @@ -175,7 +175,8 @@ public class DevicePresenter extends BasePresenter { public void bindDeviceStatus(WaterDeviceEntity entity) { try { JSONObject json = new JSONObject(); - json.put("macAddress",entity.getMacAddress()); + json.put("macAddress", + entity.getMacAddress() == null ? "" : entity.getMacAddress().toLowerCase()); new IndexImpl().queryDeviceBindStatus(json, new IndexContract.CallBack() { @Override public void success(WaterDeviceEntity bean, int total) { @@ -198,4 +199,28 @@ public class DevicePresenter extends BasePresenter { } } + + /** + * 查询设备工作的开始时间和结束时间,计算进度 + * @param deviceNo + */ + public void getDeviceWorkProgress(String deviceNo) { + Map map = new HashMap<>(); + map.put("deviceNo",deviceNo); + impl.queryDeviceWorkTime(map, new IndexContract.CallBack() { + @Override + public void success(WaterDeviceEntity bean, int total) { + if(DevicePresenter.this.getView() != null){ + DevicePresenter.this.getView().queryDeviceWorkTimeSuccess(bean); + } + } + + @Override + public void fail(String msg) { + if(DevicePresenter.this.getView() != null){ + DevicePresenter.this.getView().showError( msg); + } + } + }); + } } diff --git a/app/src/main/java/com/ckkj/water/index/IndexFragment.java b/app/src/main/java/com/ckkj/water/index/IndexFragment.java index be46d30..7f7d86b 100644 --- a/app/src/main/java/com/ckkj/water/index/IndexFragment.java +++ b/app/src/main/java/com/ckkj/water/index/IndexFragment.java @@ -272,7 +272,6 @@ public class IndexFragment extends BaseFragment{ public void bindDeviceStatus(WaterDeviceEntity entity) { try { JSONObject json = new JSONObject(); - json.put("macAddress",entity.getMacAddress()); + json.put("macAddress", + entity.getMacAddress() == null ? "" : entity.getMacAddress().toLowerCase()); mImpl.queryDeviceBindStatus(json, new IndexContract.CallBack() { @Override public void success(WaterDeviceEntity bean, int total) { diff --git a/app/src/main/java/com/ckkj/water/login/mvp/LoginContract.java b/app/src/main/java/com/ckkj/water/login/mvp/LoginContract.java index b9e72f4..234c279 100644 --- a/app/src/main/java/com/ckkj/water/login/mvp/LoginContract.java +++ b/app/src/main/java/com/ckkj/water/login/mvp/LoginContract.java @@ -22,7 +22,6 @@ public class LoginContract { public interface DataModel{ //手机验证码登录 void register(JSONObject json, CallBack callBack); - //获取手机验证码 void getPhoneCode(Map map, CallBack callBack); //手机验证码登录 @@ -31,6 +30,10 @@ public class LoginContract { void updatePsdByVerifyCode(JSONObject json, CallBack callBack); //退出登录 void logout(JSONObject json, CallBack callBack); + //注销账号--发送验证码 + void logoffAccountCode(Map map, CallBack callBack); + //注销账号--确认注销 + void logoffAccount(Map map, CallBack callBack); } public interface LoginView extends IView{ diff --git a/app/src/main/java/com/ckkj/water/login/mvp/LoginImpl.java b/app/src/main/java/com/ckkj/water/login/mvp/LoginImpl.java index fd3921a..689b9d4 100644 --- a/app/src/main/java/com/ckkj/water/login/mvp/LoginImpl.java +++ b/app/src/main/java/com/ckkj/water/login/mvp/LoginImpl.java @@ -105,6 +105,88 @@ public class LoginImpl implements LoginContract.DataModel { } } + + /** + * 注销账号--发送验证码 + * @param map + * @param callBack + */ + @Override + public void logoffAccountCode(Map map, LoginContract.CallBack callBack) { + try { + NetWorkManager.getRequest().logoffAccountCode(NetWorkManager.getToken()) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + } + + @Override + public void onNext(@NonNull BaseBean bean) { + if (bean.getCode() == 200) { + callBack.success(bean); + } else { + callBack.fail(bean.getMessage()); + } + } + + @Override + public void onError(@NonNull Throwable e) { + callBack.fail(e.getMessage()); + } + + @Override + public void onComplete() { + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 注销账号--确认 + * @param map + * @param callBack + */ + @Override + public void logoffAccount(Map map, LoginContract.CallBack callBack) { + try { + NetWorkManager.getRequest().confirmLogiffAccount(NetWorkManager.getToken(), map) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + } + + @Override + public void onNext(@NonNull BaseBean bean) { + if (bean.getCode() == 200) { + callBack.success(bean); + } else { + callBack.fail(bean.getMessage()); + } + } + + @Override + public void onError(@NonNull Throwable e) { + callBack.fail(e.getMessage()); + } + + @Override + public void onComplete() { + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** * 使用验证码登录 * @param json @@ -226,4 +308,6 @@ public class LoginImpl implements LoginContract.DataModel { e.printStackTrace(); } } + + } diff --git a/app/src/main/java/com/ckkj/water/mine/AppThemActivity.java b/app/src/main/java/com/ckkj/water/mine/AppThemActivity.java index ae2444c..8386b94 100644 --- a/app/src/main/java/com/ckkj/water/mine/AppThemActivity.java +++ b/app/src/main/java/com/ckkj/water/mine/AppThemActivity.java @@ -133,4 +133,14 @@ public class AppThemActivity extends BaseActivity finish()); if(AppConfig.USER_LOGIN){ - String phoneNum = WaterUserInfoManager.getInstance().getUserInfo().getUser().getPhonenumber(); - if(!TextUtils.isEmpty(phoneNum)){ - viewBinding.tvUserPhone.setText(phoneNum); + String userAccount = (!TextUtils.isEmpty(WaterUserInfoManager.getInstance().getUserInfo().getUser().getPhonenumber()) ? + WaterUserInfoManager.getInstance().getUserInfo().getUser().getPhonenumber() : + WaterUserInfoManager.getInstance().getUserInfo().getUser().getEmail()); + if(!TextUtils.isEmpty(userAccount)){ + viewBinding.tvUserPhone.setText(userAccount); } } + initListener(); + } + + private void initListener() { + setClick(viewBinding.tvGetCode); + setClick(viewBinding.tvCommit); + } + + private void setClick(View view) { + view.setOnClickListener(this::onClick); } @@ -65,22 +81,60 @@ public class UserLogOffAccountActivity extends BaseActivity { } }); } + + /** + * 获取注销账号验证码 + */ + public void getAccountLogoffCode() { + new LoginImpl().logoffAccountCode(null, new LoginContract.CallBack() { + @Override + public void success(BaseBean bean) { + if(MinePresenter.this.getView() != null){ + MinePresenter.this.getView().getAccountLogoffCodeSuccess(bean); + } + } + + @Override + public void fail(String msg) { + if(MinePresenter.this.getView() != null){ + MinePresenter.this.getView().showError(msg); + } + } + }); + } + + /** + * 确认注销账号 + * @param verCode + */ + public void confirmAccountLogoff(String verCode) { + Map map = new HashMap<>(); + map.put("code",verCode); + new LoginImpl().logoffAccount(map, new LoginContract.CallBack() { + @Override + public void success(BaseBean bean) { + if(MinePresenter.this.getView() != null){ + MinePresenter.this.getView().confirmAccountLogoffCodeSuccess(bean); + } + } + + @Override + public void fail(String msg) { + if(MinePresenter.this.getView() != null){ + MinePresenter.this.getView().showError(msg); + } + } + }); + } } diff --git a/app/src/main/java/com/ckkj/water/network/Request.java b/app/src/main/java/com/ckkj/water/network/Request.java index a1b45ad..4e760da 100644 --- a/app/src/main/java/com/ckkj/water/network/Request.java +++ b/app/src/main/java/com/ckkj/water/network/Request.java @@ -36,6 +36,16 @@ public interface Request { //发送验证码 @GET("resource/code") Observable sendPhoneCode(@HeaderMap Map headMap,@QueryMap Map map); + + //注销使用--发送验证码 + @GET("resource/account/cancel/code") + Observable logoffAccountCode(@HeaderMap Map headMap); + + //排程解绑设备 + @DELETE("app/v1/account") + Observable confirmLogiffAccount(@HeaderMap Map headMap,@QueryMap Map map); + + //注册 @POST("auth/register") Observable register(@Body RequestBody requestBody); @@ -81,6 +91,11 @@ public interface Request { @PUT("app/v1/switchDevice") Observable> switchDevice(@HeaderMap Map headMap, @Body RequestBody requestBody); + //查询设备工作开始时间和结束时间 + @GET("app/v1/latestWaterLog") + Observable> queryDeviceWorkTime(@HeaderMap Map headMap,@QueryMap Map map); + + //修改更新设备信息 @PUT("app/v1/updateDeviceInfo") Observable updateDeviceInfo(@HeaderMap Map headMap, @Body RequestBody requestBody); diff --git a/app/src/main/res/layout/device_control_layout.xml b/app/src/main/res/layout/device_control_layout.xml index 6562f9b..2b8d4b5 100644 --- a/app/src/main/res/layout/device_control_layout.xml +++ b/app/src/main/res/layout/device_control_layout.xml @@ -140,7 +140,7 @@ android:layout_marginHorizontal="@dimen/dp_30" android:layout_marginTop="@dimen/dp_25" android:max="100" - android:progress="60" + android:progress="0" android:progressDrawable="@drawable/device_progress_bg" android:progressTint="@null"/> diff --git a/app/src/main/res/layout/user_log_off_activity.xml b/app/src/main/res/layout/user_log_off_activity.xml index 243cffd..f536275 100644 --- a/app/src/main/res/layout/user_log_off_activity.xml +++ b/app/src/main/res/layout/user_log_off_activity.xml @@ -32,7 +32,7 @@ android:layout_marginLeft="@dimen/dp_20" android:textSize="13sp" android:textColor="@color/gray_d4" - android:text="当前手机号"/> + android:text="当前账号"/> + android:background="@drawable/shape_red_radius8"/> \ No newline at end of file