浏览代码

修改机构端首页声部卡片接口流程

Pq 1 年之前
父节点
当前提交
644604f705

+ 9 - 0
institution/src/main/java/com/cooleshow/institution/stu/api/APIService.java

@@ -3,6 +3,7 @@ package com.cooleshow.institution.stu.api;
 import com.cooleshow.base.data.net.BaseResponse;
 import com.cooleshow.institution.stu.bean.ActivationCodeNumBean;
 import com.cooleshow.institution.stu.bean.AppHomeBean;
+import com.cooleshow.institution.stu.bean.HomeAlbumListBean;
 import com.cooleshow.institution.stu.bean.HomeHotMusicSheetBean;
 import com.cooleshow.institution.stu.bean.HotAlbumBean;
 import com.cooleshow.usercenter.bean.SetDetailBean;
@@ -61,4 +62,12 @@ public interface APIService {
      */
     @POST(STUDENT_GROUP + "tenantActivationCode/page")
     Observable<BaseResponse<ActivationCodeNumBean>> getActivationCodeNum(@Body RequestBody body);
+
+    /**
+     * app首页卡片专辑
+     *
+     * @return
+     */
+    @POST(STUDENT_GROUP + "userTenantAlbumRecord/detail")
+    Observable<BaseResponse<HomeAlbumListBean>> getHomeAlbumList();
 }

+ 143 - 0
institution/src/main/java/com/cooleshow/institution/stu/bean/HomeAlbumListBean.java

@@ -0,0 +1,143 @@
+package com.cooleshow.institution.stu.bean;
+
+import java.util.List;
+
+/**
+ * Author by pq, Date on 2023/9/20.
+ */
+public class HomeAlbumListBean {
+    private int ensembleCounts;
+    private String id;
+    private int musicCounts;
+    private int subjectCounts;
+    private String subjectTypes;
+    private String tenantAlbumEndTime;
+    private String tenantAlbumFlag;
+    private String tenantAlbumStartTime;
+    private int tenantAlbumStatus;
+    private String tenantId;
+    private String tenantImg;
+    private String tenantName;
+    private String tenantProfits;
+    private String updateTime;
+
+
+
+
+
+    public int getEnsembleCounts() {
+        return ensembleCounts;
+    }
+
+    public void setEnsembleCounts(int ensembleCounts) {
+        this.ensembleCounts = ensembleCounts;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+
+    public int getMusicCounts() {
+        return musicCounts;
+    }
+
+    public void setMusicCounts(int musicCounts) {
+        this.musicCounts = musicCounts;
+    }
+
+
+
+
+    public int getSubjectCounts() {
+        return subjectCounts;
+    }
+
+    public void setSubjectCounts(int subjectCounts) {
+        this.subjectCounts = subjectCounts;
+    }
+
+    public String getSubjectTypes() {
+        return subjectTypes;
+    }
+
+    public void setSubjectTypes(String subjectTypes) {
+        this.subjectTypes = subjectTypes;
+    }
+
+    public String getTenantAlbumEndTime() {
+        return tenantAlbumEndTime;
+    }
+
+    public void setTenantAlbumEndTime(String tenantAlbumEndTime) {
+        this.tenantAlbumEndTime = tenantAlbumEndTime;
+    }
+
+    public String getTenantAlbumFlag() {
+        return tenantAlbumFlag;
+    }
+
+    public void setTenantAlbumFlag(String tenantAlbumFlag) {
+        this.tenantAlbumFlag = tenantAlbumFlag;
+    }
+
+    public String getTenantAlbumStartTime() {
+        return tenantAlbumStartTime;
+    }
+
+    public void setTenantAlbumStartTime(String tenantAlbumStartTime) {
+        this.tenantAlbumStartTime = tenantAlbumStartTime;
+    }
+
+    public int getTenantAlbumStatus() {
+        return tenantAlbumStatus;
+    }
+
+    public void setTenantAlbumStatus(int tenantAlbumStatus) {
+        this.tenantAlbumStatus = tenantAlbumStatus;
+    }
+
+    public String getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(String tenantId) {
+        this.tenantId = tenantId;
+    }
+
+    public String getTenantImg() {
+        return tenantImg;
+    }
+
+    public void setTenantImg(String tenantImg) {
+        this.tenantImg = tenantImg;
+    }
+
+    public String getTenantName() {
+        return tenantName;
+    }
+
+    public void setTenantName(String tenantName) {
+        this.tenantName = tenantName;
+    }
+
+    public String getTenantProfits() {
+        return tenantProfits;
+    }
+
+    public void setTenantProfits(String tenantProfits) {
+        this.tenantProfits = tenantProfits;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 3 - 0
institution/src/main/java/com/cooleshow/institution/stu/contract/HomeContract.java

@@ -1,6 +1,7 @@
 package com.cooleshow.institution.stu.contract;
 
 import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.institution.stu.bean.HomeAlbumListBean;
 
 /**
  * Author by pq, Date on 2023/9/11.
@@ -8,5 +9,7 @@ import com.cooleshow.base.presenter.view.BaseView;
 public interface HomeContract {
     public interface HomeContractView extends BaseView{
 
+        void getHomeAlbumListSuccess(HomeAlbumListBean data);
+
     }
 }

+ 18 - 0
institution/src/main/java/com/cooleshow/institution/stu/presenter/HomePresenter.java

@@ -1,10 +1,28 @@
 package com.cooleshow.institution.stu.presenter;
 
 import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.institution.stu.api.APIService;
+import com.cooleshow.institution.stu.bean.HomeAlbumListBean;
+import com.cooleshow.institution.stu.bean.HomeHotMusicSheetBean;
 import com.cooleshow.institution.stu.contract.HomeContract;
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 /**
  * Author by pq, Date on 2023/9/11.
  */
 public class HomePresenter extends BasePresenter<HomeContract.HomeContractView> {
+    public void getAlbumList() {
+        addSubscribe(create(APIService.class).getHomeAlbumList(), new BaseObserver<HomeAlbumListBean>(getView()) {
+            @Override
+            protected void onSuccess(HomeAlbumListBean data) {
+                if (null != getView()) {
+                    getView().getHomeAlbumListSuccess(data);
+                }
+            }
+        });
+    }
 }

+ 61 - 42
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeCardFragment.java

@@ -9,6 +9,7 @@ import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.Utils;
 import com.cooleshow.institution.stu.R;
 import com.cooleshow.institution.stu.adapter.HomeCardPageAdapter;
+import com.cooleshow.institution.stu.bean.HomeAlbumListBean;
 import com.cooleshow.institution.stu.bean.HomePageMode;
 import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.constants.HomePageType;
@@ -35,11 +36,28 @@ import androidx.viewpager2.widget.ViewPager2;
  */
 public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, HomePresenter> implements View.OnClickListener {
 
-    private HomePageType[] pages = new HomePageType[]{HomePageType.TRACK_LIST, HomePageType.ALL_PRACTICE, HomePageType.SUBJECT_PRACTICE};
 
     private HomeCardPageAdapter mCardPageAdapter;
     private HomeViewModel mHomeViewModel;
 
+    private ViewPager2.OnPageChangeCallback mPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
+        @Override
+        public void onPageSelected(int position) {
+            super.onPageSelected(position);
+            LOG.i("onPageSelected:" + position);
+            ArrayList<Fragment> fragments = mCardPageAdapter.getFragments();
+            if (fragments != null) {
+                for (int i = 0; i < fragments.size(); i++) {
+                    Fragment fragment = fragments.get(i);
+                    if (fragment instanceof CardAnimFragment) {
+                        CardAnimFragment cardAnimFragment = (CardAnimFragment) fragment;
+                        cardAnimFragment.startAnim(i == position);
+                    }
+                }
+            }
+        }
+    };
+
     @Override
     protected void initView(View rootView) {
         Utils.setHeadView(mViewBinding.viewStatusBar, requireContext(), 0);
@@ -69,24 +87,6 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
         mViewBinding.viewPager.registerOnPageChangeCallback(mPageChangeCallback);
     }
 
-    private ViewPager2.OnPageChangeCallback mPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
-        @Override
-        public void onPageSelected(int position) {
-            super.onPageSelected(position);
-            LOG.i("onPageSelected:" + position);
-            ArrayList<Fragment> fragments = mCardPageAdapter.getFragments();
-            if (fragments != null) {
-                for (int i = 0; i < fragments.size(); i++) {
-                    Fragment fragment = fragments.get(i);
-                    if (fragment instanceof CardAnimFragment) {
-                        CardAnimFragment cardAnimFragment = (CardAnimFragment) fragment;
-                        cardAnimFragment.startAnim(i == position);
-                    }
-                }
-            }
-        }
-    };
-
     @Override
     protected FgHomeCardLayoutBinding getLayoutView() {
         return FgHomeCardLayoutBinding.inflate(getLayoutInflater());
@@ -117,48 +117,50 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
     }
 
     public void refreshUserInfo(StudentUserInfo data) {
-        if (data != null) {
-            int cPos = mViewBinding.viewPager.getCurrentItem();
-            mViewBinding.tvName.setText(data.getTenantName());
-            if (data.getTenantAlbumStatus() == Constants.HOME_PAGE_STATUS_EMPTY) {
-                loadEmpty();
-            } else {
-                load(data.getTenantAlbumStatus());
-            }
-            if (cPos >= mCardPageAdapter.getFragments().size()) {
-                cPos = 0;
-            }
-            mViewBinding.viewPager.setCurrentItem(cPos, false);
-        }
     }
 
     private int currentStatus = -1;
 
-    private void load(int status) {
-        if (!isNeedRefresh(status)) {
+    private void load(HomeAlbumListBean data) {
+        int tenantAlbumStatus = data.getTenantAlbumStatus();
+        ArrayList<HomePageType> pageList = new ArrayList<>();
+        if (data.getSubjectCounts() > 0) {
+            //声部训练
+            pageList.add(HomePageType.SUBJECT_PRACTICE);
+        }
+        if (data.getMusicCounts() > 0) {
+            //独奏训练
+            pageList.add(HomePageType.TRACK_LIST);
+        }
+        if (data.getEnsembleCounts() > 0) {
+            //合奏训练
+            pageList.add(HomePageType.ALL_PRACTICE);
+        }
+        if (!isNeedRefresh(tenantAlbumStatus, pageList)) {
             return;
         }
+
         ArrayList<Fragment> list = new ArrayList<>();
-        for (int i = 0; i < pages.length; i++) {
-            HomePageType page = pages[i];
-            CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(page.getValue(), page.getType(), status);
+        for (int i = 0; i < pageList.size(); i++) {
+            HomePageType page = pageList.get(i);
+            CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(page.getValue(), page.getType(), tenantAlbumStatus);
             list.add(cardAnimFragment);
         }
-        this.currentStatus = status;
+        this.currentStatus = tenantAlbumStatus;
         mCardPageAdapter.setFragments(list);
         mViewBinding.viewPager.setAdapter(mCardPageAdapter);
 //        mCardPageAdapter.notifyDataSetChanged();
     }
 
-    private boolean isNeedRefresh(int status) {
-        if (mCardPageAdapter.getItemCount() != pages.length || currentStatus != status) {
+    private boolean isNeedRefresh(int status, ArrayList<HomePageType> pageList) {
+        if (mCardPageAdapter.getItemCount() != pageList.size() || currentStatus != status) {
             return true;
         }
         return false;
     }
 
-    private void loadEmpty() {
-        if (mCardPageAdapter.getItemCount() == 1) {
+    private void loadEmpty(int status) {
+        if (currentStatus == status) {
             return;
         }
         ArrayList<Fragment> list = new ArrayList<>();
@@ -166,6 +168,23 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
         list.add(cardAnimFragment);
         mCardPageAdapter.setFragments(list);
         mViewBinding.viewPager.setAdapter(mCardPageAdapter);
+        currentStatus = status;
 //        mCardPageAdapter.notifyDataSetChanged();
     }
+
+    public void refreshAlbumData(HomeAlbumListBean data) {
+        if (data != null) {
+            int cPos = mViewBinding.viewPager.getCurrentItem();
+            mViewBinding.tvName.setText(data.getTenantName());
+            if (data.getTenantAlbumStatus() == Constants.HOME_PAGE_STATUS_EMPTY) {
+                loadEmpty(data.getTenantAlbumStatus());
+            } else {
+                load(data);
+            }
+            if (cPos >= mCardPageAdapter.getFragments().size()) {
+                cPos = 0;
+            }
+            mViewBinding.viewPager.setCurrentItem(cPos, false);
+        }
+    }
 }

+ 21 - 1
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeFragment.java

@@ -9,8 +9,10 @@ import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LOG;
 import com.cooleshow.chatmodule.ui.ChatFragment;
 import com.cooleshow.institution.stu.adapter.HomePageAdapter;
+import com.cooleshow.institution.stu.bean.HomeAlbumListBean;
 import com.cooleshow.institution.stu.bean.HomePageMode;
 import com.cooleshow.institution.stu.constants.Constants;
+import com.cooleshow.institution.stu.contract.HomeContract;
 import com.cooleshow.institution.stu.databinding.FgHomeLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomePresenter;
 import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
@@ -25,12 +27,17 @@ import androidx.lifecycle.ViewModelProviders;
 /**
  * Author by pq, Date on 2023/9/11.
  */
-public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
+public class HomeFragment extends BaseMVPFragment<FgHomeLayoutBinding,HomePresenter> implements HomeContract.HomeContractView {
 
     private HomeCardFragment mHomeCardFragment;
     private HomeMusicFragment mMusicFragment;
 
     @Override
+    protected HomePresenter createPresenter() {
+        return new HomePresenter();
+    }
+
+    @Override
     protected void initView(View rootView) {
 
     }
@@ -81,6 +88,12 @@ public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
         });
     }
 
+    @Override
+    public void onResume() {
+        super.onResume();
+        presenter.getAlbumList();
+    }
+
     private void selectPage(int pos) {
         mViewBinding.viewPager.setCurrentItem(pos, false);
     }
@@ -110,4 +123,11 @@ public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
             }
         }
     }
+
+    @Override
+    public void getHomeAlbumListSuccess(HomeAlbumListBean data) {
+        if (mHomeCardFragment != null) {
+            mHomeCardFragment.refreshAlbumData(data);
+        }
+    }
 }