浏览代码

解绑银行卡

邓琴文 3 年之前
父节点
当前提交
96c993dab2
共有 23 个文件被更改,包括 703 次插入59 次删除
  1. 4 1
      BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt
  2. 142 0
      BaseLibrary/src/main/java/com/cooleshow/base/widgets/ComTitleBar.java
  3. 85 0
      BaseLibrary/src/main/res/layout/common_title_layout.xml
  4. 4 4
      BaseLibrary/src/main/res/layout/common_toolbar_layout.xml
  5. 15 0
      BaseLibrary/src/main/res/values/attrs.xml
  6. 12 23
      teacher/src/main/AndroidManifest.xml
  7. 3 2
      teacher/src/main/java/com/cooleshow/teacher/api/APIService.java
  8. 12 0
      teacher/src/main/java/com/cooleshow/teacher/bean/request/UnBindCardEntry.java
  9. 12 0
      teacher/src/main/java/com/cooleshow/teacher/constants/TeacherConfig.java
  10. 2 1
      teacher/src/main/java/com/cooleshow/teacher/contract/MyBankCardContract.java
  11. 10 7
      teacher/src/main/java/com/cooleshow/teacher/presenter/mine/MyBankCardPresenter.java
  12. 11 10
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/MyBankCardActivity.java
  13. 98 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/UnBindBankCardActivity.java
  14. 0 1
      teacher/src/main/res/layout/activity_bind_bankcard.xml
  15. 184 0
      teacher/src/main/res/layout/activity_un_bind_bank_card.xml
  16. 3 2
      teacher/src/main/res/layout/fragment_home_layout.xml
  17. 0 0
      teacher/src/main/res/mipmap-xxxhdpi/small_alarm_clock.png
  18. 1 0
      teacher/src/main/res/values/strings.xml
  19. 14 8
      usercenter/src/main/AndroidManifest.xml
  20. 4 0
      usercenter/src/main/java/com/cooleshow/usercenter/constants/UserConstants.java
  21. 37 0
      usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/CommEmptyActivity.java
  22. 0 0
      usercenter/src/main/res/drawable/ic_launcher_foreground.xml
  23. 50 0
      usercenter/src/main/res/layout/activity_comm_empty.xml

+ 4 - 1
BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt

@@ -30,7 +30,7 @@ object RouterPath {
     }
 
     //网络教室
-    class OnlineClassroom{
+    class OnlineClassroom {
         companion object {
             const val PATH_LIVE = "/daya/live_teaching/ui/LiveActivity"
             const val ACTIVITY_PHOTO_PREVIEW = "/daya/live_teaching/ui/ACTIVITY_PHOTO_PREVIEW"
@@ -44,6 +44,7 @@ object RouterPath {
             const val PATH_VERIFY_LOGIN = "/userCenter/verifyLogin"
             const val PATH_VERIFY_INPUT = "/userCenter/verifyInput"
             const val PATH_BIND_PASSWORD = "/userCenter/bindPwd"
+            const val COMMON_EMPTY_ACTIVITY="/userCenter/CommEmptyActivity"
         }
     }
 
@@ -148,6 +149,8 @@ object RouterPath {
             const val MINE_PAY_TEST = "/teacher/ui/mine/PayTestActivity"
             const val MINE_NETWORK_MONITORING = "/ui/mine/NetworkMonitoringActivity"
             const val MINE_EQUIPMENT_TEST = "/ui/mine/EquipmentTestActivity"
+            const val MINE_UNBIND_BANKCARD = "/teacher/ui/mine/UnBindBankCardActivity"
+
         }
     }
 

+ 142 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/ComTitleBar.java

@@ -0,0 +1,142 @@
+package com.cooleshow.base.widgets;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.cooleshow.base.R;
+import com.cooleshow.base.utils.SizeUtils;
+import com.luck.picture.lib.tools.ScreenUtils;
+
+/**
+ * @author dengqw
+ * @time 2022/6/30 10:36
+ * @describe:
+ **/
+public class ComTitleBar extends FrameLayout {
+    private String mTitleText, mRightText;
+    private boolean mRightMoreImgVisible, mLeftImgVisible, mRightImgVisible, mRightTextVisible;
+    private int mLeftImgSrc, mRightImgSrc, mRightMoreImgSrc;
+    private int mTitleTextSize;
+    public ImageView mLeftImg, mRightImg, mRightMoreImg;
+    public TextView mTitle, mRightTextView;
+
+    public ComTitleBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.title_style);
+        mTitleText = array.getString(R.styleable.title_style_title_text);
+        mTitleTextSize = array.getInteger(R.styleable.title_style_title_text_size, 18);
+        mRightText = array.getString(R.styleable.title_style_right_text);
+        mRightTextVisible = array.getBoolean(R.styleable.title_style_right_visible, false);
+        mRightImgVisible = array.getBoolean(R.styleable.title_style_right_img_visible, false);
+        mRightImgSrc = array.getResourceId(R.styleable.title_style_right_img_src, 0);
+        mLeftImgSrc = array.getResourceId(R.styleable.title_style_left_img_src, R.drawable.icon_back_black);
+        mLeftImgVisible = array.getBoolean(R.styleable.title_style_left_img_visible, true);
+        mRightMoreImgSrc = array.getResourceId(R.styleable.title_style_right_more_img_src, 0);
+        mRightMoreImgVisible = array.getBoolean(R.styleable.title_style_right_more_img_visible, false);
+        array.recycle();
+        initView();
+    }
+
+    public ComTitleBar(@NonNull Context context) {
+        this(context, null);
+    }
+
+    public ComTitleBar(@NonNull Context context, @Nullable AttributeSet attrs) {
+        this(context, attrs, -1);
+    }
+
+    private void initView() {
+        View titleView = View.inflate(getContext(), R.layout.common_title_layout, this);
+        ConstraintLayout rootView = titleView.findViewById(R.id.toolbar);
+        mTitle = titleView.findViewById(R.id.title);
+        mRightTextView = titleView.findViewById(R.id.tv_right_text);
+        mLeftImg = titleView.findViewById(R.id.iv_back);
+        mRightImg = titleView.findViewById(R.id.tv_right);
+        mRightMoreImg = titleView.findViewById(R.id.tv_right2);
+
+        int statusBarHeight = ScreenUtils.getStatusBarHeight(getContext());
+        ViewGroup.LayoutParams lp = rootView.getLayoutParams();
+        lp.height = statusBarHeight + ScreenUtils.dip2px(getContext(), 44);
+        lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
+        rootView.setLayoutParams(lp);
+        rootView.setPadding(SizeUtils.dp2px(10),statusBarHeight,SizeUtils.dp2px(10),0);
+
+        setTitleText(mTitleText);
+        setLeftImgSrc(mLeftImgSrc);
+        setRightImgSrc(mRightImgSrc);
+        setRightText(mRightText);
+        setRightMoreImgSrc(mRightMoreImgSrc);
+    }
+
+    private void setTitleTextSize(int titleTextSize) {
+        mTitleTextSize = titleTextSize;
+        if (mTitle != null) {
+            mTitle.setTextSize(titleTextSize);
+        }
+    }
+
+    //左边按钮
+    private void setLeftImgSrc(int leftImgId) {
+        mLeftImgSrc = leftImgId;
+        if (mLeftImgSrc != 0) {
+            mLeftImg.setImageResource(mLeftImgSrc);
+            mLeftImgVisible = true;
+        }
+        mLeftImg.setVisibility(mLeftImgVisible ? VISIBLE : GONE);
+    }
+
+    //右边按钮
+    private void setRightImgSrc(int rightImgId) {
+        mRightImgSrc = rightImgId;
+        if (mRightImgSrc != 0) {
+            mRightImg.setImageResource(mRightImgSrc);
+            mRightImgVisible = true;
+        }
+        mRightImg.setVisibility(mRightImgVisible ? VISIBLE : GONE);
+
+    }
+
+
+    private void setRightMoreImgSrc(int rightMoreImgId) {
+        mRightMoreImgSrc = rightMoreImgId;
+        if (mRightMoreImgSrc != 0) {
+            mRightMoreImg.setImageResource(mRightMoreImgSrc);
+            mRightMoreImgVisible = true;
+        }
+        mRightMoreImg.setVisibility(mRightMoreImgVisible ? VISIBLE : GONE);
+    }
+
+    public void setRightText(String rightText) {
+        mRightText = rightText;
+        mRightTextView.setText(mRightText);
+        mRightTextView.setVisibility(VISIBLE);
+    }
+
+    //标题
+    public void setTitleText(String title) {
+        mTitleText = title;
+        mTitle.setText(mTitleText);
+    }
+
+    public void setLeftClickListener(View.OnClickListener listener) {
+        mLeftImg.setOnClickListener(listener);
+    }
+
+    public void setRightClickListener(View.OnClickListener listener) {
+        mRightImg.setOnClickListener(listener);
+    }
+
+    public void setRightMoreClickListener(View.OnClickListener listener) {
+        mRightMoreImg.setOnClickListener(listener);
+    }
+}

+ 85 - 0
BaseLibrary/src/main/res/layout/common_title_layout.xml

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/toolbar"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/transparent"
+    android:fitsSystemWindows="true"
+    android:paddingLeft="@dimen/dp_10"
+    android:paddingRight="@dimen/dp_10"
+    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+    android:visibility="visible"
+    app:popupTheme="@style/AppBarTheme">
+
+    <ImageView
+        android:id="@+id/iv_back"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="15dp"
+        android:paddingLeft="@dimen/dp_20"
+        android:paddingTop="5dp"
+        android:paddingRight="12dp"
+        android:paddingBottom="5dp"
+        android:src="@drawable/icon_back_black"
+        app:layout_constraintBottom_toBottomOf="@+id/title"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/title" />
+
+    <TextView
+        android:id="@+id/title"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_44"
+        android:layout_centerInParent="true"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:textColor="@color/common_black"
+        android:textSize="@dimen/sp_18"
+        android:textStyle="bold"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="我的课程" />
+
+    <ImageView
+        android:id="@+id/tv_right"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="right"
+        android:layout_marginRight="15dp"
+        android:scaleType="centerCrop"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/title"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/title"
+        tools:visibility="visible" />
+
+    <ImageView
+        android:id="@+id/tv_right2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="right"
+        android:layout_marginRight="25dp"
+        android:scaleType="centerCrop"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@+id/title"
+        app:layout_constraintLeft_toRightOf="@+id/tv_right"
+        app:layout_constraintTop_toTopOf="@+id/title"
+        tools:visibility="visible" />
+
+    <TextView
+        android:id="@+id/tv_right_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="right|center_vertical"
+        android:layout_marginRight="15dp"
+        android:scaleType="centerCrop"
+        android:text=""
+        android:textColor="@color/white"
+        android:textSize="15sp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@id/title"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/title"
+        tools:text="右侧标题"
+        tools:visibility="gone" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 4 - 4
BaseLibrary/src/main/res/layout/common_toolbar_layout.xml

@@ -25,7 +25,6 @@
         android:src="@drawable/icon_back_black" />
 
     <TextView
-        tools:text="我的课程"
         android:id="@+id/title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -33,7 +32,8 @@
         android:layout_gravity="center"
         android:textColor="@color/common_black"
         android:textSize="@dimen/sp_18"
-        android:textStyle="bold" />
+        android:textStyle="bold"
+        tools:text="我的课程" />
 
     <ImageView
         android:id="@+id/tv_right"
@@ -75,7 +75,8 @@
         android:layout_height="wrap_content"
         android:layout_gravity="right|center_vertical"
         android:layout_marginRight="15dp"
-        android:visibility="gone">
+        android:visibility="gone"
+        tools:visibility="visible">
 
         <TextView
             android:id="@+id/tv_right_text_red"
@@ -84,7 +85,6 @@
             android:layout_gravity="right|center_vertical"
             android:layout_marginTop="4dp"
             android:scaleType="centerCrop"
-            android:text=""
             android:textColor="@color/white"
             android:textSize="16sp"
             android:visibility="gone"

+ 15 - 0
BaseLibrary/src/main/res/values/attrs.xml

@@ -39,4 +39,19 @@
         <attr name="cllBorderColor" format="color"/>
         <attr name="cllBorderWidth" format="dimension"/>
     </declare-styleable>
+
+    <declare-styleable name="title_style">
+        <attr name="title_text" format="string" />
+        <attr name="title_text_size" format="integer" />
+        <attr name="left_img_visible" format="boolean" />
+        <attr name="right_img_visible" format="boolean" />
+        <attr name="right_more_img_visible" format="boolean" />
+        <attr name="left_img_src" format="reference" />
+        <attr name="right_img_src" format="reference" />
+        <attr name="right_more_img_src" format="reference" />
+        <attr name="right_text" format="string" />
+        <attr name="right_visible" format="boolean" />
+        <attr name="right_title_visible" format="boolean" />
+        <attr name="right_title_text" format="string" />
+    </declare-styleable>
 </resources>

+ 12 - 23
teacher/src/main/AndroidManifest.xml

@@ -11,15 +11,13 @@
     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 
-
     <queries>
-        <package android:name="com.tencent.mm" />         <!--   // 指定微信包名-->
-        <package android:name="com.tencent.mobileqq" />    <!--//指定qq包名-->
-        <package android:name="com.sina.weibo" />          <!--   //指定微博包名-->
-        <package android:name="com.qzone" />              <!--     //指定QQ空间包名-->
+        <package android:name="com.tencent.mm" /> <!-- // 指定微信包名 -->
+        <package android:name="com.tencent.mobileqq" /> <!-- //指定qq包名 -->
+        <package android:name="com.sina.weibo" /> <!-- //指定微博包名 -->
+        <package android:name="com.qzone" /> <!-- //指定QQ空间包名 -->
     </queries>
 
-
     <application
         android:name=".App"
         android:allowBackup="true"
@@ -29,9 +27,11 @@
         android:requestLegacyExternalStorage="true"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-
         <activity
-            android:name="com.cooleshow.teacher.ui.splash.SplashActivity"
+            android:name=".ui.mine.UnBindBankCardActivity"
+            android:exported="false" />
+        <activity
+            android:name=".ui.splash.SplashActivity"
             android:exported="true"
             android:screenOrientation="portrait"
             android:theme="@style/SplashTheme">
@@ -58,7 +58,6 @@
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:exported="false"
             android:screenOrientation="portrait" />
-
         <activity
             android:name=".ui.splash.GuideActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
@@ -67,7 +66,6 @@
             android:name=".ui.course.MineCourseActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait" />
-
         <activity
             android:name=".ui.web.WebActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
@@ -89,13 +87,11 @@
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustNothing" />
-
         <activity
             android:name=".ui.course.PianoRoomCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustNothing" />
-
         <activity
             android:name=".ui.course.PianoRoomCourseHomeWorkActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
@@ -110,12 +106,10 @@
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustPan" />
-
         <activity
             android:name=".ui.comment.CourseCommentDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait" />
-
         <activity
             android:name=".ui.homepage.HomePageActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
@@ -252,19 +246,18 @@
             android:name=".ui.mine.PayTestActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait" />
-
         <activity
             android:name=".wxapi.WXPayEntryActivity"
             android:exported="true"
             android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
+
                 <category android:name="android.intent.category.DEFAULT" />
+
                 <data android:scheme="wx149a928c415c137a" />
             </intent-filter>
-
         </activity>
-
         <activity
             android:name=".ui.work.AssignHomeworkActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
@@ -294,18 +287,15 @@
             android:windowSoftInputMode="adjustPan">
             <intent-filter>
                 <action android:name="com.cooleshow.student.ui.live.LiveRoomActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-        </activity>
-
-        <!--        分享开始-->
+        </activity> <!-- 分享开始 -->
         <activity
             android:name=".wxapi.WXEntryActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:exported="true"
             android:theme="@android:style/Theme.Translucent.NoTitleBar" />
-
-
         <activity
             android:name="com.tencent.tauth.AuthActivity"
             android:launchMode="singleTask"
@@ -328,7 +318,6 @@
         <meta-data
             android:name="qqappid"
             android:value="1110018403" />
-        <!--        分享结束-->
     </application>
 
 </manifest>

+ 3 - 2
teacher/src/main/java/com/cooleshow/teacher/api/APIService.java

@@ -40,6 +40,7 @@ import com.cooleshow.teacher.bean.UserAccountBean;
 import com.cooleshow.teacher.bean.VideoCourseListBean;
 import com.cooleshow.teacher.bean.WithdrawalInfoBean;
 import com.cooleshow.teacher.bean.WithdrawalRecordBean;
+import com.cooleshow.teacher.bean.request.UnBindCardEntry;
 import com.cooleshow.usercenter.bean.SetDetailBean;
 import com.cooleshow.usercenter.bean.UserInfo;
 
@@ -447,11 +448,11 @@ public interface APIService {
     /**
      * 用户解绑银行卡
      *
-     * @param body
+     * @param entry
      * @return
      */
     @POST(TEACHER_GROUP + "userBankCard/unBind")
-    Observable<BaseResponse<ResponseBindCardBean>> unbindBankCard(@Body RequestBody body);
+    Observable<BaseResponse<ResponseBindCardBean>> unbindBankCard(@Body UnBindCardEntry entry);
 
 
     /**

+ 12 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/request/UnBindCardEntry.java

@@ -0,0 +1,12 @@
+package com.cooleshow.teacher.bean.request;
+
+/**
+ * @author dengqw
+ * @time 2022/6/30 14:58
+ * @describe:
+ **/
+public class UnBindCardEntry {
+    public String id;
+    public String idCardNo;
+    public String name;
+}

+ 12 - 0
teacher/src/main/java/com/cooleshow/teacher/constants/TeacherConfig.java

@@ -0,0 +1,12 @@
+package com.cooleshow.teacher.constants;
+
+/**
+ * @author dengqw
+ * @time 2022/6/30 15:01
+ * @describe:
+ **/
+public class TeacherConfig {
+    public static final String BANK_CARD_ID="bank_card_id";
+    public static final String BANK_NAME="bank_name";
+    public static final String BANK_CARD="bank_card";
+}

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/contract/MyBankCardContract.java

@@ -13,9 +13,10 @@ import com.cooleshow.teacher.bean.ResponseBindCardBean;
 public interface MyBankCardContract {
     interface MyBankCardView extends BaseView {
         void querySuccess(int page, ResponseBankCardBean data);
-        void unbindBankCardSuccess(ResponseBindCardBean data);
 
+        void unbindBankCard(boolean isSuccess);
     }
+
     interface Presenter {
     }
 }

+ 10 - 7
teacher/src/main/java/com/cooleshow/teacher/presenter/mine/MyBankCardPresenter.java

@@ -10,6 +10,7 @@ import com.cooleshow.base.utils.ErrorParse;
 import com.cooleshow.teacher.api.APIService;
 import com.cooleshow.teacher.bean.ResponseBankCardBean;
 import com.cooleshow.teacher.bean.ResponseBindCardBean;
+import com.cooleshow.teacher.bean.request.UnBindCardEntry;
 import com.cooleshow.teacher.contract.MyBankCardContract;
 
 import org.json.JSONException;
@@ -50,13 +51,17 @@ public class MyBankCardPresenter extends BasePresenter<MyBankCardContract.MyBank
         });
     }
 
-    public void unBindBankCard(String jsonStr) {
+    public void unBindBankCard(String id ,String realName,String realIdCard) {
+        UnBindCardEntry entry = new UnBindCardEntry();
+        entry.name = realName;
+        entry.id = id;
+        entry.idCardNo = realIdCard;
         getView().showLoading();
-        addSubscribe(create(APIService.class).unbindBankCard(RequestBodyUtil.convertToRequestBodyJson(jsonStr)), new BaseObserver<ResponseBindCardBean>(getView()) {
+        addSubscribe(create(APIService.class).unbindBankCard(entry), new BaseObserver<ResponseBindCardBean>(getView()) {
             @Override
             protected void onSuccess(ResponseBindCardBean data) {
                 if (getView() != null) {
-                    getView().unbindBankCardSuccess(data);
+                    getView().unbindBankCard(true);
                 }
             }
 
@@ -69,10 +74,8 @@ public class MyBankCardPresenter extends BasePresenter<MyBankCardContract.MyBank
             @Override
             public void onError(Throwable e) {
                 super.onError(e);
-                if (e instanceof ApiException) {
-                    ErrorParse.getInstance().parseError(e);
-                    ApiException apiException = (ApiException) e;
-                    ToastUtils.showShort(apiException.getErrmsg());
+                if (getView() != null) {
+                    getView().unbindBankCard(true);
                 }
             }
         });

+ 11 - 10
teacher/src/main/java/com/cooleshow/teacher/ui/mine/MyBankCardActivity.java

@@ -15,6 +15,8 @@ import com.cooleshow.base.widgets.DialogUtil;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.bean.ResponseBankCardBean;
 import com.cooleshow.teacher.bean.ResponseBindCardBean;
+import com.cooleshow.teacher.constants.TeacherConfig;
+import com.cooleshow.teacher.constants.TeacherInfoConstants;
 import com.cooleshow.teacher.contract.MyBankCardContract;
 import com.cooleshow.teacher.databinding.ActivityMyBankCardBinding;
 import com.cooleshow.teacher.presenter.mine.MyBankCardPresenter;
@@ -22,6 +24,8 @@ import com.cooleshow.teacher.presenter.mine.MyBankCardPresenter;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/18 16:57
  *
@@ -51,15 +55,11 @@ public class MyBankCardActivity extends BaseMVPActivity<ActivityMyBankCardBindin
                         })
                         .setConfirm(getString(R.string.sure), v -> {
                             CommonTipDialog.dismissDialog();
-                            JSONObject jsonObject = new JSONObject();
-                            try {
-                                jsonObject.putOpt("id", rowsBean.id);
-                                jsonObject.putOpt("idCardNo", rowsBean.bankCard);
-                                jsonObject.putOpt("name", rowsBean.name);
-                            } catch (JSONException e) {
-                                e.printStackTrace();
-                            }
-                            presenter.unBindBankCard(jsonObject.toString());
+                            ARouter.getInstance().build(RouterPath.MineCenter.MINE_UNBIND_BANKCARD)
+                                    .withString(TeacherConfig.BANK_CARD_ID, String.valueOf(rowsBean.id))
+                                    .withString(TeacherConfig.BANK_NAME, rowsBean.bankName)
+                                    .withString(TeacherConfig.BANK_CARD, rowsBean.bankCard)
+                                    .navigation();
                         })
                         .show();
                 break;
@@ -72,6 +72,7 @@ public class MyBankCardActivity extends BaseMVPActivity<ActivityMyBankCardBindin
 
     @Override
     protected void initView() {
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "我的银行卡");
         viewBinding.toolbarInclude.tvRightText.setTextColor(getResources().getColor(com.cooleshow.base.R.color.common_black));
         viewBinding.toolbarInclude.tvRightText.setVisibility(View.GONE);
@@ -118,7 +119,7 @@ public class MyBankCardActivity extends BaseMVPActivity<ActivityMyBankCardBindin
     }
 
     @Override
-    public void unbindBankCardSuccess(ResponseBindCardBean data) {
+    public void unbindBankCard(boolean isSuccess) {
 
     }
 }

+ 98 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/UnBindBankCardActivity.java

@@ -0,0 +1,98 @@
+package com.cooleshow.teacher.ui.mine;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.ToastUtil;
+import com.cooleshow.base.utils.ToastUtils;
+import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.teacher.R;
+import com.cooleshow.teacher.bean.ResponseBankCardBean;
+import com.cooleshow.teacher.bean.ResponseBindCardBean;
+import com.cooleshow.teacher.constants.TeacherConfig;
+import com.cooleshow.teacher.contract.MyBankCardContract;
+import com.cooleshow.teacher.databinding.ActivityUnBindBankCardBinding;
+import com.cooleshow.teacher.presenter.mine.MyBankCardPresenter;
+import com.cooleshow.usercenter.constants.UserConstants;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import io.rong.imkit.utils.StatusBarUtil;
+
+@Route(path = RouterPath.MineCenter.MINE_UNBIND_BANKCARD)
+public class UnBindBankCardActivity extends BaseMVPActivity<ActivityUnBindBankCardBinding, MyBankCardPresenter> implements MyBankCardContract.MyBankCardView {
+    private String bankCardId;
+
+    @Override
+    protected void initView() {
+        QMUIStatusBarHelper.setStatusBarLightMode(this);
+        viewBinding.titleView.setLeftClickListener(v -> {
+            finish();
+        });
+        viewBinding.unbindView.setOnClickListener(v -> {
+            unbindBank();
+        });
+
+        Intent intent = getIntent();
+        bankCardId = intent.getStringExtra(TeacherConfig.BANK_CARD_ID);
+        String bankName = intent.getStringExtra(TeacherConfig.BANK_NAME);
+        String bankCard = intent.getStringExtra(TeacherConfig.BANK_CARD);
+        String temCard = bankCard.substring(0, 4) + "**** ****" + bankCard.substring(bankCard.length() - 4);
+        String bankString = bankName + "(" + temCard + ")银行卡";
+        viewBinding.bankText.setText(bankString);
+    }
+
+
+    @Override
+    protected ActivityUnBindBankCardBinding getLayoutView() {
+        return ActivityUnBindBankCardBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected MyBankCardPresenter createPresenter() {
+        return new MyBankCardPresenter();
+    }
+
+    /**
+     * 解绑
+     */
+    private void unbindBank() {
+        String realName = viewBinding.etRealName.getText().toString();
+        String realIdCard = viewBinding.etRealIdcard.getText().toString();
+        if (TextUtils.isEmpty(realName)) {
+            ToastUtil.getInstance().show(this, "请输入您的真实姓名");
+            return;
+        }
+        if (TextUtils.isEmpty(realIdCard)) {
+            ToastUtils.showShort("请输入您的身份证号");
+            return;
+        }
+        presenter.unBindBankCard(bankCardId, realName, realIdCard);
+    }
+
+    @Override
+    public void querySuccess(int page, ResponseBankCardBean data) {
+
+    }
+
+    /**
+     * 解绑成功
+     */
+    @Override
+    public void unbindBankCard(boolean isSuccess) {
+        ARouter.getInstance().build(RouterPath.UserCenter.COMMON_EMPTY_ACTIVITY)
+                .withString(UserConstants.PAGE_TITLE, isSuccess ? "解绑成功" : "解绑失败")
+                .withInt(UserConstants.EMPTY_ICON_RESID, R.drawable.icon_bind_card_success)
+                .withString(UserConstants.EMPTY_BTN_TEXT, isSuccess ? "我知道了" : "重新解绑")
+                .navigation();
+        if (isSuccess) finish();
+    }
+}

+ 0 - 1
teacher/src/main/res/layout/activity_bind_bankcard.xml

@@ -101,7 +101,6 @@
             android:background="@null"
             android:gravity="left"
             android:hint="请输入您的身份证号"
-            android:inputType="number"
             android:paddingTop="8dp"
             android:textColor="@color/black_333"
             android:textColorHint="@color/color_ffc1c1c1"

+ 184 - 0
teacher/src/main/res/layout/activity_un_bind_bank_card.xml

@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/color_f6f8f9"
+    android:focusableInTouchMode="true"
+    android:focusable="true"
+    tools:context=".ui.mine.UnBindBankCardActivity">
+
+    <com.cooleshow.base.widgets.ComTitleBar
+        android:id="@+id/title_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintTop_toTopOf="parent"
+        app:title_text="解绑银行卡" />
+
+    <TextView
+        android:id="@+id/unbind_tip_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/dp_25"
+        android:layout_marginTop="@dimen/dp_15"
+        android:text="您正在解绑"
+        android:textColor="@color/black"
+        android:textSize="@dimen/sp_16"
+        android:textStyle="bold"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/title_view" />
+
+    <TextView
+        android:id="@+id/bank_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/dp_25"
+        android:layout_marginTop="@dimen/dp_5"
+        android:layout_marginEnd="@dimen/dp_25"
+        android:textColorHint="@color/black"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/unbind_tip_text"
+        tools:text="中国工商银行(6222 **** **** 19177)银行卡" />
+
+    <View
+        android:id="@+id/root_view"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_marginStart="@dimen/dp_14"
+        android:layout_marginTop="@dimen/dp_15"
+        android:layout_marginEnd="@dimen/dp_14"
+        android:background="@drawable/bg_white_10dp"
+        app:layout_constraintBottom_toBottomOf="@+id/view_line2"
+        app:layout_constraintTop_toBottomOf="@+id/bank_text" />
+
+    <TextView
+        android:id="@+id/tv_star_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="21dp"
+        android:layout_marginTop="25dp"
+        android:text="*"
+        android:textColor="@color/color_ff4e19"
+        android:textSize="@dimen/sp_17"
+        app:layout_constraintLeft_toLeftOf="@+id/root_view"
+        app:layout_constraintTop_toTopOf="@+id/root_view" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="真实姓名"
+        android:textColor="@color/black"
+        android:textSize="@dimen/sp_17"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_star_name"
+        app:layout_constraintLeft_toRightOf="@+id/tv_star_name"
+        app:layout_constraintTop_toTopOf="@+id/tv_star_name" />
+
+    <EditText
+        android:id="@+id/et_real_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="21dp"
+        android:layout_marginRight="21dp"
+        android:background="@null"
+        android:gravity="left"
+        android:hint="请输入您的真实姓名"
+        android:inputType="text"
+        android:paddingTop="@dimen/dp_10"
+        android:paddingBottom="@dimen/dp_15"
+        android:textColor="@color/black_333"
+        android:textColorHint="@color/color_ffc1c1c1"
+        android:textSize="@dimen/sp_16"
+        app:layout_constraintLeft_toLeftOf="@+id/root_view"
+        app:layout_constraintRight_toRightOf="@+id/root_view"
+        app:layout_constraintTop_toBottomOf="@+id/tv_star_name" />
+
+    <View
+        android:id="@+id/view_line1"
+        android:layout_width="0dp"
+        android:layout_height="@dimen/dp_0_5"
+        android:layout_marginStart="@dimen/dp_21"
+        android:layout_marginEnd="@dimen/dp_20"
+        android:background="@color/color_ebebeb"
+        app:layout_constraintLeft_toLeftOf="@+id/root_view"
+        app:layout_constraintRight_toRightOf="@+id/root_view"
+        app:layout_constraintTop_toBottomOf="@+id/et_real_name" />
+
+    <TextView
+        android:id="@+id/tv_star_idcard"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="21dp"
+        android:layout_marginTop="13dp"
+        android:text="*"
+        android:textColor="@color/color_ff4e19"
+        android:textSize="@dimen/sp_17"
+        app:layout_constraintLeft_toLeftOf="@+id/root_view"
+        app:layout_constraintTop_toBottomOf="@+id/view_line1" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="持卡人身份证号"
+        android:textColor="@color/black"
+        android:textSize="@dimen/sp_17"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_star_idcard"
+        app:layout_constraintLeft_toRightOf="@+id/tv_star_idcard"
+        app:layout_constraintTop_toTopOf="@+id/tv_star_idcard" />
+
+    <EditText
+        android:id="@+id/et_real_idcard"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="21dp"
+        android:layout_marginRight="21dp"
+        android:background="@null"
+        android:gravity="left"
+        android:hint="请输入您的身份证号"
+        android:paddingTop="@dimen/dp_10"
+        android:paddingBottom="@dimen/dp_15"
+        android:textColor="@color/black_333"
+        android:textColorHint="@color/color_ffc1c1c1"
+        android:textSize="@dimen/sp_16"
+        app:layout_constraintLeft_toLeftOf="@+id/root_view"
+        app:layout_constraintRight_toRightOf="@+id/root_view"
+        app:layout_constraintTop_toBottomOf="@+id/tv_star_idcard" />
+
+
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="0dp"
+        android:layout_height="@dimen/dp_0_5"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="21dp"
+        android:background="@color/color_ebebeb"
+        app:layout_constraintLeft_toLeftOf="@+id/root_view"
+        app:layout_constraintRight_toRightOf="@+id/root_view"
+        app:layout_constraintTop_toBottomOf="@+id/et_real_idcard" />
+
+    <View
+        android:id="@+id/view_line2"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_16"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="21dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_line" />
+
+    <TextView
+        android:id="@+id/unbind_view"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_44"
+        android:layout_marginStart="@dimen/dp_28"
+        android:layout_marginTop="@dimen/dp_23"
+        android:layout_marginEnd="@dimen/dp_28"
+        android:textSize="@dimen/sp_18"
+        android:text="@string/confirm_unbind"
+        android:gravity="center"
+        android:textColor="@color/white"
+        android:background="@drawable/shape_click_btn"
+        app:layout_constraintTop_toBottomOf="@+id/root_view" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 3 - 2
teacher/src/main/res/layout/fragment_home_layout.xml

@@ -326,7 +326,8 @@
                 android:layout_marginLeft="@dimen/dp_19"
                 android:src="@mipmap/small_alarm_clock"
                 app:layout_constraintLeft_toLeftOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/tv_live_title" />
+                app:layout_constraintBottom_toBottomOf="@+id/tv_live_time"
+                app:layout_constraintTop_toTopOf="@+id/tv_live_time" />
 
             <TextView
                 android:id="@+id/tv_live_title"
@@ -354,7 +355,7 @@
                 android:layout_marginBottom="@dimen/dp_5"
                 android:textColor="@color/color_FF806F"
                 android:textSize="@dimen/sp_13"
-                app:layout_constraintLeft_toLeftOf="@+id/alarm_icon"
+                app:layout_constraintLeft_toRightOf="@+id/alarm_icon"
                 app:layout_constraintTop_toBottomOf="@+id/tv_live_title"
                 tools:text="今日 16:30-17:05" />
 

+ 0 - 0
teacher/src/main/res/small_alarm_clock.png/small_alarm_clock.png → teacher/src/main/res/mipmap-xxxhdpi/small_alarm_clock.png


+ 1 - 0
teacher/src/main/res/values/strings.xml

@@ -45,4 +45,5 @@
     <string name="fans_empty_text">暂无粉丝群~</string>
     <string name="goto_upload">去上传</string>
     <string name="goto_create">去创建</string>
+    <string name="confirm_unbind">确认解绑</string>
 </resources>

+ 14 - 8
usercenter/src/main/AndroidManifest.xml

@@ -10,24 +10,30 @@
 
         <activity
             android:name=".ui.activity.LoginActivity"
-            android:launchMode="singleTask"
             android:configChanges="orientation|screenSize|keyboardHidden"
-            android:screenOrientation="portrait"
-            android:exported="false" />
+            android:exported="false"
+            android:launchMode="singleTask"
+            android:screenOrientation="portrait" />
 
         <activity
             android:name=".ui.activity.VerifyCodeLoginActivity"
-            android:launchMode="singleTask"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:launchMode="singleTask"
             android:screenOrientation="portrait" />
         <activity
             android:name=".ui.activity.VerifyCodeInputActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
-            android:windowSoftInputMode="adjustPan"
-            android:screenOrientation="portrait" />
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="adjustPan" />
 
-        <activity android:name=".ui.activity.BindPasswordActivity"
+        <activity
+            android:name=".ui.activity.BindPasswordActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
-            android:screenOrientation="portrait"/>
+            android:screenOrientation="portrait" />
+
+        <activity
+            android:name=".ui.activity.CommEmptyActivity"
+            android:exported="false"
+            android:screenOrientation="portrait" />
     </application>
 </manifest>

+ 4 - 0
usercenter/src/main/java/com/cooleshow/usercenter/constants/UserConstants.java

@@ -13,4 +13,8 @@ public class UserConstants {
     public static final String TEMP_TOKEN="temp_token";
     public static final String LOGIN_STATUS="login_status";
     public static final String LOGIN_STATUS_SUCCESS="login_success";
+    public static final String PAGE_TITLE="page_title";
+    public static final String EMPTY_ICON_RESID="empty_icon_resid";
+    public static final String EMPTY_BTN_TEXT="empty_btn_text";
+
 }

+ 37 - 0
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/CommEmptyActivity.java

@@ -0,0 +1,37 @@
+package com.cooleshow.usercenter.ui.activity;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.usercenter.R;
+import com.cooleshow.usercenter.constants.UserConstants;
+import com.cooleshow.usercenter.databinding.ActivityCommEmptyBinding;
+
+@Route(path = RouterPath.UserCenter.COMMON_EMPTY_ACTIVITY)
+public class CommEmptyActivity extends BaseActivity<ActivityCommEmptyBinding> {
+
+    @Override
+    protected void initView() {
+        QMUIStatusBarHelper.setStatusBarLightMode(this);
+        String pageTitle = getIntent().getStringExtra(UserConstants.PAGE_TITLE);
+        int emptyResId = getIntent().getIntExtra(UserConstants.EMPTY_ICON_RESID, com.cooleshow.base.R.drawable.icon_empty_course);
+        String emptyBtnText = getIntent().getStringExtra(UserConstants.EMPTY_BTN_TEXT);
+        viewBinding.emptyBtn.setText(emptyBtnText);
+        viewBinding.emptyIcon.setImageResource(emptyResId);
+        viewBinding.titleView.setTitleText(pageTitle);
+
+        viewBinding.titleView.setLeftClickListener(v->{
+            finish();
+        });
+        viewBinding.emptyBtn.setOnClickListener(v->{
+            finish();
+        });
+
+    }
+
+    @Override
+    protected ActivityCommEmptyBinding getLayoutView() {
+        return ActivityCommEmptyBinding.inflate(getLayoutInflater());
+    }
+}

+ 0 - 0
usercenter/src/main/res/drawable-v24/ic_launcher_foreground.xml → usercenter/src/main/res/drawable/ic_launcher_foreground.xml


+ 50 - 0
usercenter/src/main/res/layout/activity_comm_empty.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/color_f6f8f9"
+    tools:context="com.cooleshow.usercenter.ui.activity.CommEmptyActivity">
+
+    <com.cooleshow.base.widgets.ComTitleBar
+        android:id="@+id/title_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/empty_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/dp_35"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/title_view" />
+
+    <TextView
+        android:id="@+id/empty_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/dp_12"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_15"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/empty_icon"
+        tools:text="我知道了" />
+
+    <TextView
+        android:id="@+id/empty_btn"
+        android:layout_width="@dimen/dp_196"
+        android:layout_height="@dimen/dp_44"
+        android:layout_marginTop="@dimen/dp_53"
+        android:background="@drawable/shape_click_btn"
+        android:gravity="center"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_18"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/empty_icon"
+        tools:text="我知道了" />
+</androidx.constraintlayout.widget.ConstraintLayout>