Pārlūkot izejas kodu

增加机构版首页接口逻辑

Pq 1 gadu atpakaļ
vecāks
revīzija
78b99e1fba

+ 2 - 0
institution/build.gradle

@@ -67,6 +67,8 @@ dependencies {
     implementation project(':usercenter')
     implementation project(':chatModule')
     implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
+    implementation 'cn.jiguang.sdk:jpush:4.7.2'  // 此处以JPush 4.7.0 版本为例。
+    implementation 'cn.jiguang.sdk:jcore:3.2.4'  // 此处以JCore 3.2.4 版本为例。
 
     //ARouter
     annotationProcessor("com.alibaba:arouter-compiler:$rootProject.ext.android.arouter_api_version")

+ 5 - 0
institution/src/main/java/com/cooleshow/institution/stu/constants/Constants.java

@@ -8,4 +8,9 @@ public class Constants {
     public static final int MORE_MUSIC_TRACK = 1;//更多曲目
 
     public static final int MAX_HOT_MUSIC_LIST_PAGE = 3;//热门曲目一页最大条数
+    public static final int HOME_PAGE_STATUS_EMPTY = 0;//暂无学练工具
+    public static final int HOME_PAGE_STATUS_UNLOCK = 1;//未解锁
+    public static final int HOME_PAGE_STATUS_HASLOCK = 2;//已解锁
+
+
 }

+ 14 - 0
institution/src/main/java/com/cooleshow/institution/stu/contract/MainContract.java

@@ -0,0 +1,14 @@
+package com.cooleshow.institution.stu.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
+
+/**
+ * Author by pq, Date on 2023/9/11.
+ */
+public interface MainContract {
+    public interface MainContractView extends BaseView{
+
+        void queryUserInfoSuccess(StudentUserInfo data);
+    }
+}

+ 24 - 0
institution/src/main/java/com/cooleshow/institution/stu/presenter/MainPresenter.java

@@ -0,0 +1,24 @@
+package com.cooleshow.institution.stu.presenter;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.institution.stu.api.APIService;
+import com.cooleshow.institution.stu.contract.MainContract;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
+import com.cooleshow.usercenter.data.api.UserApi;
+
+/**
+ * Author by pq, Date on 2023/9/12.
+ */
+public class MainPresenter extends BasePresenter<MainContract.MainContractView> {
+    public void queryUserInfo() {
+        addSubscribe(create(UserApi.class).queryUserInfo(), new BaseObserver<StudentUserInfo>(getView()) {
+            @Override
+            protected void onSuccess(StudentUserInfo data) {
+                if (getView() != null) {
+                    getView().queryUserInfoSuccess(data);
+                }
+            }
+        });
+    }
+}

+ 25 - 4
institution/src/main/java/com/cooleshow/institution/stu/ui/main/CardAnimFragment.java

@@ -5,6 +5,7 @@ import android.view.View;
 
 import com.cooleshow.base.ui.fragment.BaseFragment;
 import com.cooleshow.base.utils.LOG;
+import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.constants.HomePageType;
 import com.cooleshow.institution.stu.databinding.FgCardAnimLayoutBinding;
 
@@ -13,10 +14,12 @@ import com.cooleshow.institution.stu.databinding.FgCardAnimLayoutBinding;
  */
 public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
     private int pageType = HomePageType.EMPTY.getValue();
+    private int mStatus;
 
-    public static CardAnimFragment newInstance(int type) {
+    public static CardAnimFragment newInstance(int type, int status) {
         Bundle bundle = new Bundle();
         bundle.putInt("type", type);
+        bundle.putInt("status", status);
         CardAnimFragment cardAnimFragment = new CardAnimFragment();
         cardAnimFragment.setArguments(bundle);
         return cardAnimFragment;
@@ -31,10 +34,19 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
     protected void initView(View rootView) {
         if (getArguments() != null) {
             pageType = getArguments().getInt("type", HomePageType.EMPTY.getValue());
+            mStatus = getArguments().getInt("status", -1);
         }
         loadAnim();
+        if (mStatus != -1) {
+            if (mStatus == Constants.HOME_PAGE_STATUS_HASLOCK) {
+                mViewBinding.groupUnlock.setVisibility(View.GONE);
+            } else {
+                mViewBinding.groupUnlock.setVisibility(View.VISIBLE);
+            }
+        }
     }
 
+
     private void loadAnim() {
         String assetName = "lottieHome/empty_anim.json";
         if (pageType == HomePageType.SUBJECT_PRACTICE.getValue()) {
@@ -50,11 +62,11 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
     }
 
     public void startAnim(boolean isStart) {
-        if(isStart){
+        if (isStart) {
             mViewBinding.viewLiveAnim.setProgress(0);
             mViewBinding.viewLiveAnim.playAnimation();
-        }else{
-            if( mViewBinding.viewLiveAnim.isAnimating()){
+        } else {
+            if (mViewBinding.viewLiveAnim.isAnimating()) {
                 mViewBinding.viewLiveAnim.pauseAnimation();
             }
         }
@@ -66,6 +78,15 @@ public class CardAnimFragment extends BaseFragment<FgCardAnimLayoutBinding> {
 
     @Override
     protected void initData() {
+        initListener();
+    }
+
+    private void initListener() {
+        mViewBinding.viewUnlock.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
 
+            }
+        });
     }
 }

+ 31 - 7
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeCardFragment.java

@@ -16,6 +16,7 @@ import com.cooleshow.institution.stu.databinding.FgHomeCardLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomePresenter;
 import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
 import com.cooleshow.institution.stu.widget.ScaleTransformer;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -50,13 +51,6 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
     protected void initData() {
         initViewModel();
         initListener();
-        ArrayList<Fragment> list = new ArrayList<>();
-        for (int i = 0; i < pages.length; i++) {
-            HomePageType page = pages[i];
-            CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(page.getValue());
-            list.add(cardAnimFragment);
-        }
-        mCardPageAdapter.setFragments(list);
         mViewBinding.viewPager.setAdapter(mCardPageAdapter);
         mViewBinding.viewPager.setOffscreenPageLimit(3);
         mViewBinding.viewPager.setCurrentItem(0, false);
@@ -113,4 +107,34 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
             return;
         }
     }
+
+    public void refreshUserInfo(StudentUserInfo data) {
+        if (data != null) {
+            mViewBinding.tvName.setText(data.getTenantName());
+            if (data.getTenantAlbumStatus() == Constants.HOME_PAGE_STATUS_EMPTY) {
+                loadEmpty();
+            } else {
+                load(data.getTenantAlbumStatus());
+            }
+        }
+    }
+
+    private void load(int status) {
+        ArrayList<Fragment> list = new ArrayList<>();
+        for (int i = 0; i < pages.length; i++) {
+            HomePageType page = pages[i];
+            CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(page.getValue(),status);
+            list.add(cardAnimFragment);
+        }
+        mCardPageAdapter.setFragments(list);
+        mCardPageAdapter.notifyDataSetChanged();
+    }
+
+    private void loadEmpty() {
+        ArrayList<Fragment> list = new ArrayList<>();
+        CardAnimFragment cardAnimFragment = CardAnimFragment.newInstance(HomePageType.EMPTY.getValue(),-1);
+        list.add(cardAnimFragment);
+        mCardPageAdapter.setFragments(list);
+        mCardPageAdapter.notifyDataSetChanged();
+    }
 }

+ 22 - 4
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeFragment.java

@@ -12,6 +12,7 @@ import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.databinding.FgHomeLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomePresenter;
 import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
 
 import java.util.ArrayList;
 
@@ -23,6 +24,10 @@ import androidx.lifecycle.ViewModelProviders;
  * Author by pq, Date on 2023/9/11.
  */
 public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
+
+    private HomeCardFragment mHomeCardFragment;
+    private HomeMusicFragment mMusicFragment;
+
     @Override
     protected void initView(View rootView) {
 
@@ -32,10 +37,10 @@ public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
     protected void initData() {
         initViewModel();
         ArrayList<Fragment> fragments = new ArrayList<>();
-        HomeCardFragment homeCardFragment = new HomeCardFragment();
-        HomeMusicFragment musicFragment = new HomeMusicFragment();
-        fragments.add(homeCardFragment);
-        fragments.add(musicFragment);
+        mHomeCardFragment = new HomeCardFragment();
+        mMusicFragment = new HomeMusicFragment();
+        fragments.add(mHomeCardFragment);
+        fragments.add(mMusicFragment);
         HomePageAdapter homePageAdapter = new HomePageAdapter(this);
         homePageAdapter.setFragments(fragments);
         mViewBinding.viewPager.setAdapter(homePageAdapter);
@@ -79,4 +84,17 @@ public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
         return FgHomeLayoutBinding.inflate(getLayoutInflater());
     }
 
+    public void refreshUserInfo(StudentUserInfo data) {
+        if (isDetached()) {
+            return;
+        }
+        if (data != null) {
+            if (mHomeCardFragment != null) {
+                mHomeCardFragment.refreshUserInfo(data);
+            }
+            if (mMusicFragment != null) {
+                mMusicFragment.refreshUserInfo(data);
+            }
+        }
+    }
 }

+ 7 - 0
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeMusicFragment.java

@@ -26,6 +26,7 @@ import com.cooleshow.institution.stu.databinding.FgHomeMusicLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomeMusicPresenter;
 import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
 import com.cooleshow.institution.stu.widget.HomeHotMusicSheetItemDecoration;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 import com.youth.banner.adapter.BannerImageAdapter;
@@ -290,4 +291,10 @@ public class HomeMusicFragment extends BaseMVPFragment<FgHomeMusicLayoutBinding,
             mViewBinding.flBanner.setVisibility(View.GONE);
         }
     }
+
+    public void refreshUserInfo(StudentUserInfo data) {
+        if (data != null) {
+            mViewBinding.tvName.setText(data.getTenantName());
+        }
+    }
 }

+ 145 - 1
institution/src/main/java/com/cooleshow/institution/stu/ui/main/MainActivity.java

@@ -1,29 +1,65 @@
 package com.cooleshow.institution.stu.ui.main;
 
+import android.Manifest;
+import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.TextView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.common.BaseApplication;
+import com.cooleshow.base.constanst.LoginStatusConstants;
+import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.LogUtils;
+import com.cooleshow.base.utils.helper.MidiFileHelper;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.base.utils.helper.UpdateAppHelper;
+import com.cooleshow.chatmodule.contract.IUnReadMessageObserver;
+import com.cooleshow.chatmodule.manager.IMCenter;
 import com.cooleshow.chatmodule.ui.ChatFragment;
 import com.cooleshow.institution.stu.R;
 import com.cooleshow.institution.stu.adapter.HomePageAdapter;
+import com.cooleshow.institution.stu.contract.MainContract;
 import com.cooleshow.institution.stu.databinding.ActivityInstitutionMainLayoutBinding;
+import com.cooleshow.institution.stu.presenter.MainPresenter;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
+import com.cooleshow.usercenter.helper.UserHelper;
+import com.tbruyelle.rxpermissions3.RxPermissions;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
 
+import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import cn.jpush.android.api.JPushInterface;
 
 /**
  * Author by pq, Date on 2023/9/11.
  */
 @Route(path = RouterPath.JGCenter.PATH_HOME)
-public class MainActivity extends BaseActivity<ActivityInstitutionMainLayoutBinding> {
+public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutBinding, MainPresenter> implements MainContract.MainContractView {
     ArrayList<Fragment> mFragments = new ArrayList<>();
     private ChatFragment mChatFragment;
     private HomeFragment mHomeFragment;
+    private boolean isNeedSetPushId = true;
+    private IUnReadMessageObserver mUnReadMessageObserver =new IUnReadMessageObserver(){
+        @Override
+        public void onTotalUnreadMessageCountChanged(long totalUnreadCount) {
+            onCountChanged(totalUnreadCount);
+        }
+    };
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        EventBus.getDefault().register(this);
+    }
 
     @Override
     protected void initView() {
@@ -42,6 +78,12 @@ public class MainActivity extends BaseActivity<ActivityInstitutionMainLayoutBind
         onTabClick(viewBinding.viewHome);
     }
 
+    @Override
+    public void initData() {
+        super.initData();
+        requestPermission();
+        IMCenter.getInstance().addUnReadMessageObserver(mUnReadMessageObserver);
+    }
 
     public void onTabClick(View view) {
         int id = view.getId();
@@ -88,4 +130,106 @@ public class MainActivity extends BaseActivity<ActivityInstitutionMainLayoutBind
     protected ActivityInstitutionMainLayoutBinding getLayoutView() {
         return ActivityInstitutionMainLayoutBinding.inflate(getLayoutInflater());
     }
+
+    @Override
+    protected MainPresenter createPresenter() {
+        return new MainPresenter();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        presenter.queryUserInfo();
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void loadEventBus(LoginStatusEvent event) {
+        if (event != null && event.eventCode == LoginStatusConstants.LOGIN_OUT) {
+            IMCenter.getInstance().logoutIM();
+            isNeedSetPushId = true;
+            LogUtils.i("pq", "LoginStatusEvent:logout");
+            finish();
+        }
+    }
+
+    @Override
+    public void queryUserInfoSuccess(StudentUserInfo data) {
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        //存储userInfo信息
+        UserHelper.saveUserInfo(data);
+        connectIM();
+        bindPushId();
+        refreshUserInfo(data);
+    }
+
+    private void refreshUserInfo(StudentUserInfo data) {
+        if (mHomeFragment != null) {
+            mHomeFragment.refreshUserInfo(data);
+        }
+    }
+
+
+    /**
+     * 申请存储权限
+     */
+    private void requestPermission() {
+        new RxPermissions(this)
+                .request(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                .subscribe(permission -> {
+                    if (permission) {
+                        checkAppVersion();
+                        MidiFileHelper.initMidFile();
+                    }
+                });
+    }
+
+    private void checkAppVersion() {
+        UpdateAppHelper.getInstance().checkUpdate(this, "android-student");
+    }
+
+    private void bindPushId() {
+        if (isNeedSetPushId && UserHelper.isLogin() && !TextUtils.isEmpty(UserHelper.getUserId())) {
+            String userId = UserHelper.getUserId();
+            LogUtils.i("pq", "registrationId:" + BaseApplication.registrationId);
+            JPushInterface.setAlias(getApplicationContext(), 1, userId);
+            CrashReport.setDeviceId(getApplicationContext(), userId);
+            isNeedSetPushId = false;
+        }
+    }
+
+    public void onCountChanged(long count) {
+        if (count > 0) {
+            viewBinding.tvMsgCount.setVisibility(View.VISIBLE);
+            if (count <= 99) {
+                viewBinding.tvMsgCount.setText(String.valueOf(count));
+            } else {
+                viewBinding.tvMsgCount.setText("99+");
+            }
+        } else {
+            viewBinding.tvMsgCount.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * 连接rong IM
+     */
+    private void connectIM() {
+        if (UserHelper.isLogin()) {
+            String userIMToken = UserHelper.getUserIMToken();
+            String imUserId = UserHelper.getImUserId();
+            if (!TextUtils.isEmpty(userIMToken)) {
+                // 在用户 UI 点击登录的时候调用
+                IMCenter.getInstance().loginIM(this, imUserId, userIMToken);
+            }
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+        IMCenter.getInstance().removeUnReadMessageObserver(mUnReadMessageObserver);
+    }
 }

BIN
institution/src/main/res/drawable-xhdpi/jg_icon_lock.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_lock.png


+ 44 - 2
institution/src/main/res/layout/fg_card_anim_layout.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
@@ -12,4 +12,46 @@
         app:layout_constraintTop_toTopOf="parent"
         app:lottie_autoPlay="true"
         app:lottie_loop="true" />
-</FrameLayout>
+
+    <View
+        android:id="@+id/view_unlock"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:background="@color/color_66000000"
+        app:layout_constraintBottom_toBottomOf="@+id/view_live_anim"
+        app:layout_constraintLeft_toLeftOf="@+id/view_live_anim"
+        app:layout_constraintRight_toRightOf="@+id/view_live_anim"
+        app:layout_constraintTop_toTopOf="@+id/view_live_anim" />
+
+    <ImageView
+        android:id="@+id/iv_lock"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@drawable/jg_icon_lock"
+        app:layout_constraintBottom_toTopOf="@+id/tv_lock_tip"
+        app:layout_constraintLeft_toLeftOf="@+id/view_unlock"
+        app:layout_constraintRight_toRightOf="@+id/view_unlock"
+        app:layout_constraintTop_toTopOf="@+id/view_unlock"
+        app:layout_constraintVertical_chainStyle="packed" />
+
+    <TextView
+        android:id="@+id/tv_lock_tip"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
+        android:text="暂未解锁"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_16"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toBottomOf="@+id/view_unlock"
+        app:layout_constraintLeft_toLeftOf="@+id/iv_lock"
+        app:layout_constraintRight_toRightOf="@+id/iv_lock"
+        app:layout_constraintTop_toBottomOf="@+id/iv_lock" />
+
+    <androidx.constraintlayout.widget.Group
+        android:id="@+id/group_unlock"
+        android:visibility="gone"
+        app:constraint_referenced_ids="iv_lock,tv_lock_tip,view_unlock"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 0
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -400,6 +400,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
             CommonConfig.isShowHomeFlashPage = true;
             isNeedSetPushId = true;
             LogUtils.i("pq", "LoginStatusEvent:logout");
+            finish();
         }
     }
 

+ 19 - 1
usercenter/src/main/java/com/cooleshow/usercenter/bean/StudentUserInfo.java

@@ -60,9 +60,27 @@ public class StudentUserInfo implements Serializable {
     public int testingNum;
     public int unfinshClassHours;
     public String updateTime;
-    public long userId;
+    public String userId;
     public String username;
     public int tenantId;
+    private String tenantName;
+    public String imUserId;
+    public String imToken;
+    private int tenantAlbumStatus;//0:没有专辑 1:有,但是未解锁,2:有,且已解锁
 
+    public String getTenantName() {
+        return tenantName;
+    }
 
+    public void setTenantName(String tenantName) {
+        this.tenantName = tenantName;
+    }
+
+    public int getTenantAlbumStatus() {
+        return tenantAlbumStatus;
+    }
+
+    public void setTenantAlbumStatus(int tenantAlbumStatus) {
+        this.tenantAlbumStatus = tenantAlbumStatus;
+    }
 }

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

@@ -9,6 +9,7 @@ import com.cooleshow.base.utils.DateUtil;
 import com.cooleshow.base.utils.SPUtils;
 import com.cooleshow.base.utils.Utils;
 import com.cooleshow.usercenter.R;
+import com.cooleshow.usercenter.bean.StudentUserInfo;
 import com.cooleshow.usercenter.bean.UserInfo;
 import com.cooleshow.usercenter.bean.UserLoginInfo;
 import com.cooleshow.usercenter.constants.UserConstants;
@@ -136,6 +137,25 @@ public class UserHelper {
 
     }
 
+    public static void saveUserInfo(StudentUserInfo userInfo) {
+        if (userInfo == null) {
+            return;
+        }
+        //userId
+        SPUtils.getInstance().put(USER_ID, userInfo.userId);
+        //imUserId
+        SPUtils.getInstance().put(IM_USER_ID, userInfo.imUserId);
+        //昵称
+        SPUtils.getInstance().put(USERNAME, userInfo.username);
+        //imtoken
+        SPUtils.getInstance().put(USER_IM_TOKEN, userInfo.imToken);
+        //电话
+        SPUtils.getInstance().put(USER_PHONE, userInfo.phone);
+        //头像
+        SPUtils.getInstance().put(USER_AVATAR, userInfo.heardUrl);
+
+    }
+
     public static String getUserId() {
         return SPUtils.getInstance().getString(USER_ID);
     }