Browse Source

增加老师端提现协议流程

Pq 3 years ago
parent
commit
58e146baab

+ 3 - 0
BaseLibrary/src/main/java/com/cooleshow/base/common/WebApi.java

@@ -6,4 +6,7 @@ package com.cooleshow.base.common;
 public class WebApi {
 public class WebApi {
     //打开云库琴房详情页
     //打开云库琴房详情页
     public static final String openCourseDetail = "openCourseDetail";
     public static final String openCourseDetail = "openCourseDetail";
+    //签署协议成功
+    public static final String OPEN_PAGE_SUCCESS = "openPageSuccess";
+    public static final String WITHDRAW_TAG = "WITHDRAW";
 }
 }

+ 2 - 0
BaseLibrary/src/main/java/com/cooleshow/base/common/WebConstants.java

@@ -116,6 +116,8 @@ public abstract class WebConstants {
     public static final String EDIT_SCORE_PAGE = getBaseUrlH5() + "/#/music-upload/%s/edit";
     public static final String EDIT_SCORE_PAGE = getBaseUrlH5() + "/#/music-upload/%s/edit";
     //曲谱审核成功
     //曲谱审核成功
     public static final String SCORE_DETAIL_PAGE = BuildConfig.BASE_SERVER_URL + "accompany?id=%s&client=teacher";
     public static final String SCORE_DETAIL_PAGE = BuildConfig.BASE_SERVER_URL + "accompany?id=%s&client=teacher";
+    //老师端提现签署协议页面
+    public static final String PROTOCOL_SIGN_BY_TEACHER_WIYHDRAW = getBaseUrlH5() + "/#/cashProtocol";
 
 
 
 
 }
 }

+ 8 - 0
teacher/src/main/java/com/cooleshow/teacher/api/APIService.java

@@ -537,6 +537,14 @@ public interface APIService {
     Observable<BaseResponse<WithdrawalInfoBean>> getWithdrawalInfo();
     Observable<BaseResponse<WithdrawalInfoBean>> getWithdrawalInfo();
 
 
     /**
     /**
+     * 判断用户是否签署协议
+     *
+     * @return
+     */
+    @GET(TEACHER_GROUP + "sysUserContractRecord/checkContractSign")
+    Observable<BaseResponse<Boolean>> checkContractSign(@Query("contractType") String contractType);
+
+    /**
      * 发起结算
      * 发起结算
      *
      *
      * @param body
      * @param body

+ 2 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/WithdrawalContract.java

@@ -14,6 +14,8 @@ public interface WithdrawalContract {
         void getWithdrawalInfoSuccess(WithdrawalInfoBean data);
         void getWithdrawalInfoSuccess(WithdrawalInfoBean data);
 
 
         void doWithdrawalSuccess(Object o);
         void doWithdrawalSuccess(Object o);
+
+        void checkContractSignResult(boolean result);
     }
     }
 
 
     interface Presenter {
     interface Presenter {

+ 17 - 22
teacher/src/main/java/com/cooleshow/teacher/presenter/income/WithdrawalPresenter.java

@@ -32,21 +32,6 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalContract.Withdr
                 }
                 }
             }
             }
 
 
-            @Override
-            public void onComplete() {
-                super.onComplete();
-                getView().hideLoading();
-            }
-
-            @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-                if (e instanceof ApiException) {
-                    ErrorParse.getInstance().parseError(e);
-                    ApiException apiException = (ApiException) e;
-                    ToastUtil.getInstance().showShort(apiException.getErrmsg());
-                }
-            }
         });
         });
     }
     }
 
 
@@ -63,7 +48,7 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalContract.Withdr
             @Override
             @Override
             protected void onSuccess(Object data) {
             protected void onSuccess(Object data) {
                 if (getView() != null) {
                 if (getView() != null) {
-                    getView().doWithdrawalSuccess( data);
+                    getView().doWithdrawalSuccess(data);
                 }
                 }
             }
             }
 
 
@@ -73,15 +58,25 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalContract.Withdr
                 getView().hideLoading();
                 getView().hideLoading();
             }
             }
 
 
+        });
+    }
+
+    /**
+     * 检查是否签署过提现协议
+     */
+    public void checkContractSign() {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        String contractType = "WITHDRAW";
+        addSubscribe(create(APIService.class).checkContractSign(contractType), new BaseObserver<Boolean>(getView()) {
             @Override
             @Override
-            public void onError(Throwable e) {
-                super.onError(e);
-                if (e instanceof ApiException) {
-                    ErrorParse.getInstance().parseError(e);
-                    ApiException apiException = (ApiException) e;
-                    ToastUtil.getInstance().showShort(apiException.getErrmsg());
+            protected void onSuccess(Boolean data) {
+                if (getView() != null) {
+                    getView().checkContractSignResult(data);
                 }
                 }
             }
             }
+
         });
         });
     }
     }
 
 

+ 44 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/income/WithdrawalActivity.java

@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
 
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.ToastUtil;
@@ -35,6 +36,7 @@ import io.rong.imkit.utils.StatusBarUtil;
 public class WithdrawalActivity extends BaseMVPActivity<ActivityWithdrawalBinding, WithdrawalPresenter> implements WithdrawalContract.WithdrawalView, View.OnClickListener {
 public class WithdrawalActivity extends BaseMVPActivity<ActivityWithdrawalBinding, WithdrawalPresenter> implements WithdrawalContract.WithdrawalView, View.OnClickListener {
 
 
     private CommonDialog mCommonDialog;
     private CommonDialog mCommonDialog;
+    private CommonDialog mProtocolTipDialog;
 
 
     @Override
     @Override
     public void onClick(View view) {
     public void onClick(View view) {
@@ -129,7 +131,7 @@ public class WithdrawalActivity extends BaseMVPActivity<ActivityWithdrawalBindin
     protected void onResume() {
     protected void onResume() {
         super.onResume();
         super.onResume();
         if (presenter != null) {
         if (presenter != null) {
-            presenter.getWithdrawalInfo();
+            presenter.checkContractSign();
         }
         }
     }
     }
 
 
@@ -176,6 +178,35 @@ public class WithdrawalActivity extends BaseMVPActivity<ActivityWithdrawalBindin
         });
         });
     }
     }
 
 
+    private void showProtocolTipDialog() {
+        if (mProtocolTipDialog == null) {
+            mProtocolTipDialog = new CommonDialog(this);
+            mProtocolTipDialog.setCanceledOnTouchOutside(false);
+            mProtocolTipDialog.setCancelable(false);
+        }
+        if (!mProtocolTipDialog.isShowing()) {
+            mProtocolTipDialog.show();
+        }
+        mProtocolTipDialog.setTitle("协议签署");
+        mProtocolTipDialog.setContent("您需要先签署协议才能结算");
+        mProtocolTipDialog.setOnConfirmClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ARouter.getInstance().build(RouterPath.WebCenter.ACTIVITY_HTML)
+                        .withString(WebConstants.WEB_URL, WebConstants.PROTOCOL_SIGN_BY_TEACHER_WIYHDRAW)
+                        .navigation();
+            }
+        });
+        mProtocolTipDialog.setOnCancelClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mProtocolTipDialog != null) {
+                    mProtocolTipDialog.dismiss();
+                }
+            }
+        });
+    }
+
     private String getTwoDecimal(double num) {
     private String getTwoDecimal(double num) {
         DecimalFormat df = new DecimalFormat("#,##0.00");
         DecimalFormat df = new DecimalFormat("#,##0.00");
         String str = df.format(num);
         String str = df.format(num);
@@ -189,4 +220,16 @@ public class WithdrawalActivity extends BaseMVPActivity<ActivityWithdrawalBindin
                 .navigation();
                 .navigation();
         finish();
         finish();
     }
     }
+
+    @Override
+    public void checkContractSignResult(boolean result) {
+        if (!checkActivityExist()) {
+            return;
+        }
+        if (result) {
+            presenter.getWithdrawalInfo();
+        } else {
+            showProtocolTipDialog();
+        }
+    }
 }
 }

+ 11 - 0
teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceUtils.java

@@ -271,6 +271,17 @@ public class JsInterfaceUtils extends Object {
                     return;
                     return;
                 }
                 }
 
 
+                if (TextUtils.equals(WebApi.OPEN_PAGE_SUCCESS, api)) {
+                    JSONObject content = jsonObject.getJSONObject("content");
+                    if (content != null) {
+                        String page = content.optString("page");
+                        if (TextUtils.equals(WebApi.WITHDRAW_TAG, page)) {
+                            activity.finish();
+                        }
+                    }
+                    return;
+                }
+
                 if (TextUtils.equals(WebApi.openCourseDetail, api)) {
                 if (TextUtils.equals(WebApi.openCourseDetail, api)) {
                     JSONObject content = jsonObject.getJSONObject("content");
                     JSONObject content = jsonObject.getJSONObject("content");
                     String courseId = content.optString("courseId");
                     String courseId = content.optString("courseId");

+ 8 - 7
teacher/src/main/res/layout/activity_withdrawal.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tool="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    xmlns:tool="http://schemas.android.com/tools"
     android:orientation="vertical">
     android:orientation="vertical">
 
 
     <include
     <include
@@ -44,11 +44,12 @@
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="47dp"
             android:layout_marginLeft="47dp"
             android:layout_marginTop="51dp"
             android:layout_marginTop="51dp"
-            tool:text="中国工商银行储蓄卡(****1917)"
+            android:text="银行卡号"
             android:textColor="@color/black"
             android:textColor="@color/black"
             android:textSize="@dimen/sp_16"
             android:textSize="@dimen/sp_16"
             app:layout_constraintLeft_toLeftOf="parent"
             app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            app:layout_constraintTop_toTopOf="parent"
+            tool:text="中国工商银行储蓄卡(****1917)" />
 
 
         <TextView
         <TextView
             android:id="@+id/tv_tip"
             android:id="@+id/tv_tip"
@@ -102,15 +103,15 @@
             android:id="@+id/et_price"
             android:id="@+id/et_price"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="@dimen/dp_45"
             android:layout_height="@dimen/dp_45"
-            android:layout_marginTop="@dimen/dp_30"
             android:layout_marginLeft="30dp"
             android:layout_marginLeft="30dp"
+            android:layout_marginTop="@dimen/dp_30"
             android:background="@null"
             android:background="@null"
             android:gravity="center_vertical"
             android:gravity="center_vertical"
             android:hint="请输入金额"
             android:hint="请输入金额"
-            android:textColorHint="@color/color_999999"
             android:inputType="numberDecimal"
             android:inputType="numberDecimal"
             android:paddingLeft="14dp"
             android:paddingLeft="14dp"
             android:textColor="@color/black"
             android:textColor="@color/black"
+            android:textColorHint="@color/color_999999"
             android:textSize="@dimen/sp_20"
             android:textSize="@dimen/sp_20"
             android:textStyle="bold"
             android:textStyle="bold"
             app:layout_constraintTop_toBottomOf="@+id/tv_content_money" />
             app:layout_constraintTop_toBottomOf="@+id/tv_content_money" />
@@ -130,12 +131,12 @@
             android:layout_height="@dimen/dp_43"
             android:layout_height="@dimen/dp_43"
             android:layout_marginLeft="12dp"
             android:layout_marginLeft="12dp"
             android:gravity="center"
             android:gravity="center"
-            tool:text="可结算余额 ¥400.00"
             android:textColor="@color/color_999999"
             android:textColor="@color/color_999999"
             android:textSize="@dimen/sp_14"
             android:textSize="@dimen/sp_14"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintLeft_toLeftOf="parent"
             app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/view_line" />
+            app:layout_constraintTop_toBottomOf="@+id/view_line"
+            tool:text="可结算余额 ¥400.00" />
 
 
         <TextView
         <TextView
             android:id="@+id/tv_withdrawal_all"
             android:id="@+id/tv_withdrawal_all"