瀏覽代碼

增加老师端首页ui接口逻辑

Pq 3 年之前
父節點
當前提交
e15a0b0df7

+ 12 - 1
teacher/src/main/java/com/cooleshow/teacher/api/APIService.java

@@ -4,7 +4,9 @@ import com.cooleshow.base.data.net.BaseResponse;
 import com.cooleshow.teacher.bean.CourseTableDataBean;
 import com.cooleshow.teacher.bean.LiveCourseListBean;
 import com.cooleshow.teacher.bean.SparringCourseListBean;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
 import com.cooleshow.teacher.bean.VideoCourseListBean;
+import com.cooleshow.usercenter.bean.UserInfo;
 
 import java.util.List;
 
@@ -75,5 +77,14 @@ public interface APIService {
      * @return
      */
     @GET(AUTH_GROUP + "api/queryUserInfo")
-    Observable<BaseResponse<Object>> getUserInfo();
+    Observable<BaseResponse<UserInfo>> getUserInfo();
+
+    /**
+     * 查询老师个人信息
+     *
+     * @param
+     * @return
+     */
+    @GET(TEACHER_GROUP + "teacher/queryUserInfo")
+    Observable<BaseResponse<TeacherUserInfo>> getTeacherUserInfo();
 }

+ 83 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/TeacherUserInfo.java

@@ -0,0 +1,83 @@
+package com.cooleshow.teacher.bean;
+
+/**
+ * Author by pq, Date on 2022/4/26.
+ */
+public class TeacherUserInfo {
+
+    /**
+     * username : 张三
+     * musicianAuthStatus : UNPAALY
+     * phone : 136****1518
+     * birthdate : null
+     * subjectName : 西洋管乐
+     * fansNum : 0
+     * expTime : 8
+     * unExpTime : 0
+     * starGrade : 4
+     * idCardNo :
+     * gender : null
+     * isReal : 0
+     * liveFlag : 0
+     * isBank : 0
+     * heardUrl : https://daya.ks3-cn-beijing.ksyun.com/202204/T3R3yxq.jpeg
+     * entryStatus : UNPAALY
+     * realName :
+     * subject :
+     * entryFlag : 0
+     * userId : 15
+     * subjectId : 1
+     * updateTime : 2022-04-25 17:41:45
+     * musicianFlag : 0
+     * entryAuthDate : null
+     * musicianDate : null
+     * introduction : 个人介绍
+     * graduateSchool : 12
+     * gradCertificate :
+     * degreeCertificate :
+     * teacherCertificate :
+     * memo :
+     * educationBackground :
+     * technicalTitles :
+     * workUnit :
+     * liveDate : null
+     * createTime : 2022-04-06 18:23:36
+     */
+
+    public String username;
+    public String musicianAuthStatus;
+    public String phone;
+    public Object birthdate;
+    public String subjectName;
+    public String fansNum;
+    public String expTime;
+    public String unExpTime;
+    public int starGrade;
+    public String idCardNo;
+    public Object gender;
+    public int isReal;
+    public int liveFlag;
+    public int isBank;
+    public String heardUrl;
+    public String entryStatus;
+    public String realName;
+    public String subject;
+    public int entryFlag;
+    public int userId;
+    public String subjectId;
+    public String updateTime;
+    public int musicianFlag;
+    public Object entryAuthDate;
+    public Object musicianDate;
+    public String introduction;
+    public String graduateSchool;
+    public String gradCertificate;
+    public String degreeCertificate;
+    public String teacherCertificate;
+    public String memo;
+    public String educationBackground;
+    public String technicalTitles;
+    public String workUnit;
+    public Object liveDate;
+    public String createTime;
+}

+ 16 - 0
teacher/src/main/java/com/cooleshow/teacher/constants/TeacherInfoConstants.java

@@ -0,0 +1,16 @@
+package com.cooleshow.teacher.constants;
+
+/**
+ * Author by pq, Date on 2022/4/26.
+ */
+public class TeacherInfoConstants {
+    public static final String ENTRY_STATUS_UNPAALY = "UNPAALY";//入驻认证状态-未申请
+    public static final String ENTRY_STATUS_DOING = "DOING";//入驻认证状态-申请中
+    public static final String ENTRY_STATUS_PASS = "PASS";//入驻认证状态-申请通过
+    public static final String ENTRY_STATUS_UNPASS = "UNPASS";//入驻认证状态-申请不通过
+
+    public static final String MUSICIAN_STATUS_UNPAALY = "UNPAALY";//音乐人认证状态->未申请
+    public static final String MUSICIAN_STATUS_DOING = "DOING";//音乐人认证状态->申请中
+    public static final String MUSICIAN_STATUS_PASS = "PASS";//音乐人认证状态->申请通过
+    public static final String MUSICIAN_STATUS_UNPASS = "UNPASS";//音乐人认证状态->申请未通过
+}

+ 5 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/HomeContract.java

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.contract;
 
 import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
 import com.cooleshow.usercenter.bean.UserInfo;
 
 /**
@@ -10,9 +11,13 @@ public interface HomeContract {
 
     interface HomeView extends BaseView {
         void getUserInfoSuccess(UserInfo userInfo);
+
+        void getTeacherInfoSuccess(TeacherUserInfo teacherUserInfo);
     }
 
     interface Presenter {
         void getUserInfo();
+
+        void getTeacherUserInfo();
     }
 }

+ 17 - 6
teacher/src/main/java/com/cooleshow/teacher/presenter/main/HomePresenter.java

@@ -4,7 +4,9 @@ import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
 import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.bean.TeacherUserInfo;
 import com.cooleshow.teacher.contract.HomeContract;
+import com.cooleshow.usercenter.bean.UserInfo;
 
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -23,14 +25,23 @@ public class HomePresenter extends BasePresenter<HomeContract.HomeView> implemen
      */
     @Override
     public void getUserInfo() {
-        if (getView() != null) {
-            getView().showLoading();
-        }
-        addSubscribe(create(APIService.class).getUserInfo(), new BaseObserver<Object>(getView()) {
+        addSubscribe(create(APIService.class).getUserInfo(), new BaseObserver<UserInfo>(getView()) {
             @Override
-            protected void onSuccess(Object data) {
+            protected void onSuccess(UserInfo data) {
                 if (getView() != null) {
-//                    getView().getUserInfoSuccess();
+                    getView().getUserInfoSuccess(data);
+                }
+            }
+        });
+    }
+
+    @Override
+    public void getTeacherUserInfo() {
+        addSubscribe(create(APIService.class).getTeacherUserInfo(), new BaseObserver<TeacherUserInfo>(getView()) {
+            @Override
+            protected void onSuccess(TeacherUserInfo data) {
+                if (getView() != null) {
+                    getView().getTeacherInfoSuccess(data);
                 }
             }
         });

+ 68 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/main/HomeFragment.kt

@@ -1,12 +1,16 @@
 package com.cooleshow.teacher.ui.main
 
+import android.text.TextUtils
 import android.view.View
 import com.alibaba.android.arouter.launcher.ARouter
 import com.cooleshow.base.ext.setVisible
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.fragment.BaseMVPFragment
+import com.cooleshow.base.utils.GlideUtils
 import com.cooleshow.base.utils.Utils
 import com.cooleshow.teacher.R
+import com.cooleshow.teacher.bean.TeacherUserInfo
+import com.cooleshow.teacher.constants.TeacherInfoConstants
 import com.cooleshow.teacher.contract.HomeContract
 import com.cooleshow.teacher.databinding.FragmentHomeLayoutBinding
 import com.cooleshow.teacher.presenter.main.HomePresenter
@@ -39,13 +43,77 @@ class HomeFragment : BaseMVPFragment<FragmentHomeLayoutBinding, HomePresenter>()
     override fun onResume() {
         super.onResume()
         presenter.getUserInfo()
+        presenter.getTeacherUserInfo()
     }
 
     override fun getUserInfoSuccess(userInfo: UserInfo?) {
+        if (isDetached) {
+            return;
+        }
+        if (context == null || userInfo == null) {
+            return
+        }
         //存储userInfo信息
         UserHelper.saveUserInfo(userInfo)
     }
 
+    override fun getTeacherInfoSuccess(teacherUserInfo: TeacherUserInfo) {
+        if (isDetached) {
+            return;
+        }
+        if (context == null || teacherUserInfo == null) {
+            return
+        }
+        //头像
+        GlideUtils.loadImage(requireContext(), teacherUserInfo.heardUrl, mViewBinding.ivAvatar)
+        //昵称
+        mViewBinding.tvNickname.text = UserHelper.getTeacherName(teacherUserInfo.username, teacherUserInfo.userId);
+        //星级
+        mViewBinding.ratingBar.rating = teacherUserInfo.starGrade.toFloat()
+
+        //粉丝数
+        mViewBinding.tvFansNum.text=teacherUserInfo.fansNum;
+        //已上课时数
+        mViewBinding.tvCourseNumCompleted.text=teacherUserInfo.expTime
+        //未上课时数
+        mViewBinding.tvCourseNumNotStart.text=teacherUserInfo.unExpTime
+        //入驻状态
+        when (teacherUserInfo.entryStatus) {
+            TeacherInfoConstants.ENTRY_STATUS_DOING -> {
+                //入驻审核中
+                mViewBinding.ivCertificationStatus.setImageResource(R.drawable.icon_home_entry_doing)
+                mViewBinding.ivCertificationStatus.setVisible(true)
+                mViewBinding.ivUnCertificationTip.setVisible(false)
+                mViewBinding.ivTeacherEntryTag.setVisible(false)
+                mViewBinding.groupTeacherExtra.setVisible(false)
+            }
+            TeacherInfoConstants.ENTRY_STATUS_PASS -> {
+                //入驻审核通过
+                mViewBinding.ivCertificationStatus.setVisible(false)
+                mViewBinding.ivUnCertificationTip.setVisible(false)
+                mViewBinding.groupTeacherExtra.setVisible(true)
+                mViewBinding.ivTeacherEntryTag.setVisible(true)
+            }
+            else -> {
+                //未通过或者未申请
+                mViewBinding.ivCertificationStatus.setImageResource(R.drawable.icon_home_un_certification)
+                mViewBinding.groupTeacherExtra.setVisible(false)
+                mViewBinding.ivCertificationStatus.setVisible(true)
+                mViewBinding.ivUnCertificationTip.setVisible(true)
+                mViewBinding.ivTeacherEntryTag.setVisible(false)
+            }
+        }
+
+        when(teacherUserInfo.musicianAuthStatus){
+            TeacherInfoConstants.MUSICIAN_STATUS_PASS->{
+                mViewBinding.ivTeacherMusicPersonTag.setVisible(true)
+            }
+            else->{
+                mViewBinding.ivTeacherMusicPersonTag.setVisible(false)
+            }
+        }
+    }
+
     override fun onClick(v: View?) {
         when (v?.id) {
             R.id.iv_un_certification_tip -> {

二進制
teacher/src/main/res/drawable-xhdpi/icon_home_entry_doing.png


二進制
teacher/src/main/res/drawable-xhdpi/icon_teacher_music_person_tag.png


二進制
teacher/src/main/res/drawable-xhdpi/icon_teahcer_entry_tag.png


二進制
teacher/src/main/res/drawable-xxhdpi/icon_home_entry_doing.png


二進制
teacher/src/main/res/drawable-xxhdpi/icon_teacher_music_person_tag.png


二進制
teacher/src/main/res/drawable-xxhdpi/icon_teahcer_entry_tag.png


+ 110 - 0
teacher/src/main/res/layout/fragment_home_layout.xml

@@ -83,6 +83,28 @@
         android:text="游客12e32td"
         tools:text="游客12e32td" />
 
+    <ImageView
+        android:visibility="gone"
+        android:id="@+id/iv_teacher_entry_tag"
+        android:layout_marginStart="6dp"
+        app:layout_constraintLeft_toRightOf="@+id/tv_nickname"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_nickname"
+        app:layout_constraintTop_toTopOf="@+id/tv_nickname"
+        android:src="@drawable/icon_teahcer_entry_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
+    <ImageView
+        android:visibility="gone"
+        android:id="@+id/iv_teacher_music_person_tag"
+        android:layout_marginStart="3dp"
+        app:layout_constraintLeft_toRightOf="@+id/iv_teacher_entry_tag"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_teacher_entry_tag"
+        app:layout_constraintTop_toTopOf="@+id/iv_teacher_entry_tag"
+        android:src="@drawable/icon_teacher_music_person_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
     <RatingBar
         android:id="@+id/rating_bar"
         style="@style/HomeRatingBar"
@@ -96,6 +118,7 @@
         app:layout_constraintTop_toBottomOf="@+id/tv_nickname" />
 
     <ImageView
+        android:visibility="gone"
         android:id="@+id/iv_certification_status"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -113,6 +136,7 @@
         app:layout_constraintLeft_toLeftOf="@+id/iv_certification_status" />
 
     <ImageView
+        android:visibility="gone"
         android:id="@+id/iv_un_certification_tip"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -121,6 +145,92 @@
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/certification_tip_help_view" />
 
+    <TextView
+        android:id="@+id/tv_fans_title"
+        android:paddingEnd="8dp"
+        android:paddingStart="8dp"
+        android:gravity="center"
+        android:layout_marginTop="16dp"
+        app:layout_constraintLeft_toLeftOf="@+id/iv_avatar"
+        app:layout_constraintTop_toBottomOf="@+id/iv_avatar"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_12"
+        android:text="粉丝"
+        android:layout_width="wrap_content"
+        android:layout_height="28dp"/>
+
+    <TextView
+        android:id="@+id/tv_course_num_complete_title"
+        android:paddingEnd="8dp"
+        android:paddingStart="8dp"
+        android:gravity="center"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_fans_title"
+        app:layout_constraintLeft_toRightOf="@+id/tv_fans_title"
+        app:layout_constraintTop_toTopOf="@+id/tv_fans_title"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_12"
+        android:text="已上课时"
+        android:layout_width="wrap_content"
+        android:layout_height="28dp"/>
+
+    <TextView
+        android:id="@+id/tv_course_num_no_start_title"
+        android:paddingEnd="8dp"
+        android:paddingStart="8dp"
+        android:gravity="center"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_fans_title"
+        app:layout_constraintLeft_toRightOf="@+id/tv_course_num_complete_title"
+        app:layout_constraintTop_toTopOf="@+id/tv_fans_title"
+        android:textColor="@color/color_333333"
+        android:textSize="@dimen/sp_12"
+        android:text="未上课时"
+        android:layout_width="wrap_content"
+        android:layout_height="28dp"/>
+
+
+    <TextView
+        android:id="@+id/tv_fans_num"
+        app:layout_constraintRight_toRightOf="@+id/tv_fans_title"
+        app:layout_constraintLeft_toLeftOf="@+id/tv_fans_title"
+        app:layout_constraintTop_toBottomOf="@+id/tv_fans_title"
+        android:text="0"
+        tools:text="1344"
+        android:textColor="@color/black"
+        android:textSize="@dimen/sp_17"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
+    <TextView
+        android:id="@+id/tv_course_num_completed"
+        app:layout_constraintRight_toRightOf="@+id/tv_course_num_complete_title"
+        app:layout_constraintLeft_toLeftOf="@+id/tv_course_num_complete_title"
+        app:layout_constraintTop_toBottomOf="@+id/tv_course_num_complete_title"
+        android:text="0"
+        tools:text="34"
+        android:textColor="@color/black"
+        android:textSize="@dimen/sp_17"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
+    <TextView
+        android:id="@+id/tv_course_num_not_start"
+        app:layout_constraintRight_toRightOf="@+id/tv_course_num_no_start_title"
+        app:layout_constraintLeft_toLeftOf="@+id/tv_course_num_no_start_title"
+        app:layout_constraintTop_toBottomOf="@+id/tv_course_num_no_start_title"
+        android:text="0"
+        android:textColor="@color/black"
+        android:textSize="@dimen/sp_17"
+        android:layout_width="wrap_content"
+        tools:text="34"
+        android:layout_height="wrap_content"/>
+
+    <androidx.constraintlayout.widget.Group
+        android:visibility="gone"
+        android:id="@+id/group_teacher_extra"
+        app:constraint_referenced_ids="tv_course_num_not_start,tv_course_num_completed,tv_fans_num,tv_fans_title,tv_course_num_complete_title,tv_course_num_no_start_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
     <LinearLayout
         android:id="@+id/bg_announcement"
         android:layout_width="match_parent"

+ 9 - 0
usercenter/src/main/java/com/cooleshow/usercenter/helper/UserHelper.java

@@ -4,6 +4,8 @@ import android.text.TextUtils;
 
 import com.cooleshow.base.data.net.CommonParamsHelper;
 import com.cooleshow.base.utils.SPUtils;
+import com.cooleshow.base.utils.Utils;
+import com.cooleshow.usercenter.R;
 import com.cooleshow.usercenter.bean.UserInfo;
 import com.cooleshow.usercenter.bean.UserLoginInfo;
 
@@ -82,4 +84,11 @@ public class UserHelper {
     public static String getUserAvatar() {
         return SPUtils.getInstance().getString(USER_AVATAR);
     }
+
+    public static String getTeacherName(String name, int id) {
+        if (!TextUtils.isEmpty(name)) {
+            return name;
+        }
+        return Utils.getApp().getString(R.string.teacher_nickname_fill_str, id);
+    }
 }

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

@@ -20,4 +20,5 @@
     <string name="input_support">1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM.~!?@#$%^*()_=|</string>
     <string name="login_privacy_tip">《用户注册协议》</string>
     <string name="login_privacy_tip2">《隐私政策》</string>
+    <string name="teacher_nickname_fill_str">游客%1$d</string>
 </resources>