From 403ae65786b5d179e04721131d795e1975061e1c Mon Sep 17 00:00:00 2001 From: haomingming Date: Tue, 3 Nov 2026 12:07:32 +0800 Subject: [PATCH] 3 --- .../application/BaseApplication.java | 6 +-- .../big/fragment/BigHomeFragment.java | 15 ++++--- .../big/fragment/BigMyFragment.java | 10 ++++- .../gdxzExpert/fragment/HomeNewFragment.java | 8 ++-- .../gdxzExpert/fragment/MyNewFragment.java | 16 +++++++- .../gdxzExpert/utils/MyUserIconUtil.java | 7 +++- .../cn/shangyu/gdxzExpert/utils/UIUtils.java | 40 ++++++++++++++++++- .../shangyu/gdxzExpert/utils/UniappUtil.java | 20 ++++++++++ 8 files changed, 105 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/application/BaseApplication.java b/app/src/main/java/cn/shangyu/gdxzExpert/application/BaseApplication.java index 608bbba..a0aaef2 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/application/BaseApplication.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/application/BaseApplication.java @@ -568,7 +568,7 @@ public class BaseApplication extends Application { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }else if(event.equals("goPatientMsg")) { - if (!UIUtils.checkLoginAndJump(currentActivity != null ? currentActivity : BaseApplication.this)) { + if (!UIUtils.checkDoctorVerifiedAndJump(currentActivity != null ? currentActivity : BaseApplication.this)) { return; } Intent intent = null; @@ -585,7 +585,7 @@ public class BaseApplication extends Application { startActivity(intent); } }else if(event.equals("goSendMsg")) { - if (!UIUtils.checkLoginAndJump(currentActivity != null ? currentActivity : BaseApplication.this)) { + if (!UIUtils.checkDoctorVerifiedAndJump(currentActivity != null ? currentActivity : BaseApplication.this)) { return; } if (currentActivity != null) { @@ -630,7 +630,7 @@ public class BaseApplication extends Application { startActivity(intent); } }else if(event.equals("goGroupMessagePage")) { - if (!UIUtils.checkLoginAndJump(currentActivity != null ? currentActivity : BaseApplication.this)) { + if (!UIUtils.checkDoctorVerifiedAndJump(currentActivity != null ? currentActivity : BaseApplication.this)) { return; } Intent intent = null; diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigHomeFragment.java b/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigHomeFragment.java index fe3d8a6..589e824 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigHomeFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigHomeFragment.java @@ -531,7 +531,12 @@ public class BigHomeFragment extends BaseFragment implements OnCallBackFromNet, } if (doctor_name == null) return; - if(realName.length()>5) + if (!UIUtils.isDoctorVerified()) { + String mobile = SharePrefUtil.getString(mActivity, Constant.mobile, ""); + String display = (!StringUtil.isEmpty(realName) && !"null".equals(realName)) ? realName : (!StringUtil.isEmpty(mobile) ? mobile : "已登录"); + int st = SharePrefUtil.getInt(mActivity, "state", 0); + doctor_name.setText(display + (st == 2 ? "(审核中)" : "(去完善资料)")); + } else if(realName.length()>5) { doctor_name.setText(realName); } @@ -733,7 +738,7 @@ public class BigHomeFragment extends BaseFragment implements OnCallBackFromNet, } } private void handleLogout(boolean isNotice) { - if (!UIUtils.isLogined()) { + if (!UIUtils.isDoctorVerified()) { return; } ToastUtil.showMessage("专家账号信息为空"); @@ -845,13 +850,13 @@ public class BigHomeFragment extends BaseFragment implements OnCallBackFromNet, } else if (id == R.id.l_change) { changeBig(); } else if (id == R.id.big_top_bar) { - if (!UIUtils.checkLoginAndJump(mActivity)) return; + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) return; startActivity(new Intent(mActivity, MyDetailInfoActivity.class)); } else if (id == R.id.big_p1) { - if (!UIUtils.checkLoginAndJump(mActivity)) return; + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) return; startActivity(new Intent(mActivity, MyPatientActivity.class)); } else if (id == R.id.big_g1) { - if (!UIUtils.checkLoginAndJump(mActivity)) return; + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) return; startActivity(new Intent(mActivity, PublicConsultationActivity.class)); } else if (id == R.id.big_v) { startActivity(new Intent(mActivity, BigVideoActivity.class)); diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigMyFragment.java b/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigMyFragment.java index e41d1b2..6b4fa85 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigMyFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/big/fragment/BigMyFragment.java @@ -442,7 +442,14 @@ public class BigMyFragment extends BaseFragment implements View.OnClickListener, if (tv_qiandao != null) tv_qiandao.setText("签到"); return; } - tv_name.setText(realName); + if (!UIUtils.isDoctorVerified()) { + String mobile = SharePrefUtil.getString(mActivity, Constant.mobile, ""); + String display = (!StringUtil.isEmpty(realName) && !"null".equals(realName)) ? realName : (!StringUtil.isEmpty(mobile) ? mobile : "已登录"); + int st = SharePrefUtil.getInt(mActivity, "state", 0); + tv_name.setText(display + (st == 2 ? "(审核中)" : "(去完善资料)")); + } else { + tv_name.setText(realName); + } String photo = SharePrefUtil.getString(mActivity, "photo", null); if (photo != null && !"null".equals(photo)) { ImageLoader @@ -727,6 +734,7 @@ public class BigMyFragment extends BaseFragment implements View.OnClickListener, } else if (id == R.id.l_h) { startActivity(new Intent(mActivity, MyFlowerActivity.class)); } else if (id == R.id.big_top_bar) { + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) return; startActivity(new Intent(mActivity, MyDetailInfoActivity.class)); } else if (id == R.id.r_banck) { startActivity(new Intent(mActivity, MyBankCardActivity.class)); diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/fragment/HomeNewFragment.java b/app/src/main/java/cn/shangyu/gdxzExpert/fragment/HomeNewFragment.java index 597a019..1b2ecd8 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/fragment/HomeNewFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/fragment/HomeNewFragment.java @@ -676,7 +676,7 @@ public class HomeNewFragment extends BaseFragment implements OnClickListener,OnC private void initBanner( List datas) { List data = new ArrayList<>(); - final boolean showStudioSlide = UIUtils.isLogined(); + final boolean showStudioSlide = UIUtils.isDoctorVerified() && !StringUtil.isEmpty(SharePrefUtil.getString(mActivity, "realName", "")); if (datas != null) { int startIndex = (showStudioSlide || datas.size() <= 1) ? 0 : 1; for (int i = startIndex; i < datas.size(); i++) { @@ -933,7 +933,7 @@ public class HomeNewFragment extends BaseFragment implements OnClickListener,OnC @Override public void onClick(View v) { // TODO Auto-generated method stub - if (!UIUtils.checkLoginAndJump(getActivity())) { + if (!UIUtils.checkDoctorVerifiedAndJump(getActivity())) { dialog.dismiss(); return; } @@ -1039,7 +1039,7 @@ public class HomeNewFragment extends BaseFragment implements OnClickListener,OnC private int consultCount = 0; private void handleLogout(boolean isNotice) { - if (!UIUtils.isLogined()) { + if (!UIUtils.isDoctorVerified()) { return; } ToastUtil.showMessage("专家账号信息为空"); @@ -1726,7 +1726,7 @@ public class HomeNewFragment extends BaseFragment implements OnClickListener,OnC { if(homeBean.getData()!=null) { - if(homeBean.getData().getExpertDetail()==null && UIUtils.isLogined()) + if(false && homeBean.getData().getExpertDetail()==null && UIUtils.isLogined()) { // handleLogout(false); return; diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/fragment/MyNewFragment.java b/app/src/main/java/cn/shangyu/gdxzExpert/fragment/MyNewFragment.java index 024d5cb..a51cc5b 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/fragment/MyNewFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/fragment/MyNewFragment.java @@ -375,7 +375,14 @@ public class MyNewFragment extends BaseFragment implements View.OnClickListener, if (tv_qiandao != null) tv_qiandao.setText("签到"); return; } - tv_name.setText(realName); + if (!UIUtils.isDoctorVerified()) { + String mobile = SharePrefUtil.getString(mActivity, Constant.mobile, ""); + String display = (!StringUtil.isEmpty(realName) && !"null".equals(realName)) ? realName : (!StringUtil.isEmpty(mobile) ? mobile : "已登录"); + int st = SharePrefUtil.getInt(mActivity, "state", 0); + tv_name.setText(display + (st == 2 ? "(审核中)" : "(去完善资料)")); + } else { + tv_name.setText(realName); + } String photo = SharePrefUtil.getString(mActivity, "photo", null); if (photo != null && !"null".equals(photo)) { ImageLoader @@ -611,7 +618,10 @@ public class MyNewFragment extends BaseFragment implements View.OnClickListener, if (id != R.id.r_shezhi && !UIUtils.checkLoginAndJump(mActivity)) { return; } - if (id == R.id.tv_name) { + if (id == R.id.tv_name || id == R.id.pic) { + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) { + return; + } startActivity(new Intent(mActivity, MyDetailInfoActivity.class)); return; } @@ -658,8 +668,10 @@ public class MyNewFragment extends BaseFragment implements View.OnClickListener, qiandao(); } } else if (id == R.id.l_g) { + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) return; startActivity(new Intent(mActivity, PublicConsultationActivity.class)); } else if (id == R.id.l_p) { + if (!UIUtils.checkDoctorVerifiedAndJump(mActivity)) return; startActivity(new Intent(mActivity, MyPatientActivity.class)); } else if (id == R.id.l_h) { startActivity(new Intent(mActivity, MyFlowerActivity.class)); diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/utils/MyUserIconUtil.java b/app/src/main/java/cn/shangyu/gdxzExpert/utils/MyUserIconUtil.java index 3bc4ad1..fa987e4 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/utils/MyUserIconUtil.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/utils/MyUserIconUtil.java @@ -73,7 +73,12 @@ public class MyUserIconUtil { } if ("我的患者".equals(name) || "公益咨询".equals(name) || "患者审核".equals(name) || "患者分组".equals(name) || "群发消息".equals(name) || "随访二维码".equals(name) - || "出诊计划".equals(name) || "我的视频".equals(name) || "我的课程".equals(name) + || "出诊计划".equals(name)) { + if (!UIUtils.checkDoctorVerifiedAndJump(context)) { + return; + } + } + if ("我的视频".equals(name) || "我的课程".equals(name) || "我的下载".equals(name) || "我的收藏".equals(name) || "我的账户".equals(name) || "我的积分".equals(name) || "我的福利".equals(name) || "我的鲜花".equals(name) || "课件明细".equals(name) || "课程明细".equals(name) || "积分商城".equals(name) diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/utils/UIUtils.java b/app/src/main/java/cn/shangyu/gdxzExpert/utils/UIUtils.java index c59db1a..c296871 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/utils/UIUtils.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/utils/UIUtils.java @@ -181,7 +181,45 @@ public class UIUtils { } public static boolean isLogined() { - return isAccountLogined() && SharePrefUtil.getInt(getContext(), "state", 0) == 6; + return isAccountLogined(); + } + + /** + * 判断当前用户是否已通过医师/专家资质审核(已登录账号 且 state == 6) + * 仅用于【我的患者】模块与【随访服务】模块 + */ + public static boolean isDoctorVerified() { + return isLogined() && SharePrefUtil.getInt(getContext(), "state", 0) == 6; + } + + /** + * 校验是否已通过医师资质审核(state == 6) + * - 未登录账号:跳 LoginNewActivity + * - 已登录账号但 state != 6:跳 LoginSetInfoActivity(完善个人资料/查看审核状态) + */ + public static boolean checkDoctorVerifiedAndJump(Context context) { + if (isDoctorVerified()) { + return true; + } + if (!isLogined()) { + return checkLoginAndJump(context); + } + long now = System.currentTimeMillis(); + if (now - lastJumpLoginTime < 800) { + return false; + } + lastJumpLoginTime = now; + Context targetContext = context != null ? context : getContext(); + Intent intent = new Intent(targetContext, cn.shangyu.gdxzExpert.activity.LoginSetInfoActivity.class); + intent.putExtra("state", SharePrefUtil.getInt(getContext(), "state", 0)); + intent.putExtra("checkInfo", SharePrefUtil.getString(getContext(), "checkInfo", "")); + intent.putExtra("phone", SharePrefUtil.getString(getContext(), Constant.mobile, "")); + intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); + if (!(targetContext instanceof Activity)) { + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } + targetContext.startActivity(intent); + return false; } public static boolean checkAccountLoginAndJump(Context context) { diff --git a/app/src/main/java/cn/shangyu/gdxzExpert/utils/UniappUtil.java b/app/src/main/java/cn/shangyu/gdxzExpert/utils/UniappUtil.java index 631f1a6..197972f 100644 --- a/app/src/main/java/cn/shangyu/gdxzExpert/utils/UniappUtil.java +++ b/app/src/main/java/cn/shangyu/gdxzExpert/utils/UniappUtil.java @@ -89,6 +89,20 @@ public class UniappUtil { || targetPath.startsWith("/pages_app/pptDetail/pptDetail"); } + /** + * 判断目标路径是否属于【我的患者】或【随访服务】模块(需校验 state == 6) + */ + public static boolean isDoctorVerifiedRequiredPath(String targetPath) { + if (StringUtil.isEmpty(targetPath)) { + return false; + } + return targetPath.startsWith("/pages_app/myPatient") + || targetPath.startsWith("/pages_app/patientGroup") + || targetPath.startsWith("/pages_chat/groupMessage") + || targetPath.startsWith("/pages_app/myCode") + || targetPath.startsWith("/pages_chat/outPatient"); + } + /** * 展示uniapp mp - 公共方法 * @param context 上下文 @@ -97,6 +111,9 @@ public class UniappUtil { public static void showUniMp(Context context, String targetPath, com.alibaba.fastjson.JSONObject pageParams) { try { + if (isDoctorVerifiedRequiredPath(targetPath) && !UIUtils.checkDoctorVerifiedAndJump(context)) { + return; + } if (!isGuestAllowedPath(targetPath) && !UIUtils.checkLoginAndJump(context)) { return; } @@ -131,6 +148,9 @@ public class UniappUtil { private static void showInternal(Context context, String targetPath, com.alibaba.fastjson.JSONObject pageParams) { try { + if (isDoctorVerifiedRequiredPath(targetPath) && !UIUtils.checkDoctorVerifiedAndJump(context)) { + return; + } if (!isGuestAllowedPath(targetPath) && !UIUtils.checkLoginAndJump(context)) { return; }