From f50e8e60e9da99e4f69d8ab76810dc7e5fb448bc Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 02 十二月 2024 10:29:09 +0800
Subject: [PATCH] 2024年12月02日10:29:05

---
 app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java |  389 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 382 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
index 5f88429..8a2b6c9 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
@@ -1,16 +1,51 @@
 package com.hdl.photovoltaic.ui.me;
 
+import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 
+
+import androidx.annotation.Nullable;
+
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseFragment;
+import com.hdl.photovoltaic.config.ConstantManage;
+import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.FragmentMeBinding;
+import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.enums.UserRightType;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlAccountLogic;
+import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlMemberLogic;
+import com.hdl.photovoltaic.other.HdlResidenceLogic;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.other.HdlUniLogic;
+import com.hdl.photovoltaic.ui.bean.BUserInfo;
+import com.hdl.photovoltaic.ui.bean.CUserInfo;
+import com.hdl.photovoltaic.ui.bean.UserRightTypeBean;
+import com.hdl.photovoltaic.ui.test.TestMainActivity;
 import com.hdl.photovoltaic.uni.HDLUniMP;
-import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
+import com.hdl.photovoltaic.utils.GlideUtils;
+import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+/**
+ * 鎴戠殑-鐣岄潰
+ */
 public class MeFragment extends CustomBaseFragment {
     private FragmentMeBinding viewBinding;
+
+    private CUserInfo mC_UserInfo;
+    private BUserInfo mB_UserInfo;
+
 
     @Override
     public Object getContentView() {
@@ -20,15 +55,355 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
-        viewBinding.toolbarTopFragmentMeRl.topTitleTv.setText(R.string.my_power_station_鎴戠殑);
-        viewBinding.toolbarTopFragmentMeRl.topMoreIv.setVisibility(View.VISIBLE);
-        viewBinding.toolbarTopFragmentMeRl.topMoreIv.setImageResource(R.drawable.message);
+        //鍒濆鍖�
+        initView();
+        //鍒濆鍖栫晫闈㈢洃鍚櫒
+        initEvent();
+        //鍒濆鍖栨暟鎹�
+        initData();
 
+    }
+
+    /**
+     * 鍒濆鍖栨暟鎹�
+     */
+    private void initData() {
+//        showLoading();
+//        if (UserConfigManage.getInstance().isBAccount()) {
+//            this.getBUserInfo();
+//        } else {
+//            this.getCMemberInfo();
+//        }
+        //鍥犱负uni閭h竟闇�瑕侊紝鍚姩鐨勬椂鍊欏氨璇诲彇鍟�
+        this.getResidenceTemperatureUnit();
+    }
+
+
+    /**
+     * 鑾峰彇C绔釜浜轰俊鎭�
+     */
+    private void getCMemberInfo() {
+
+        HdlAccountLogic.getInstance().getMemberInfo_C(new CloudCallBeak<CUserInfo>() {
+            @Override
+            public void onSuccess(CUserInfo cUserInfo) {
+                if (cUserInfo == null) {
+                    return;
+                }
+                mC_UserInfo = cUserInfo;
+                UserConfigManage.getInstance().setBingPhone(cUserInfo.getMemberPhone());
+                UserConfigManage.getInstance().setBingEmail(cUserInfo.getMemberEmail());
+                UserConfigManage.getInstance().setUserName(cUserInfo.getMemberName());
+                UserConfigManage.getInstance().Save();
+//                hideLoading();
+                //鑾峰彇鐢ㄦ埛澶村儚璺緞
+                if (cUserInfo.getMemberHeadIcon().contains("http")) {
+                    //鏇存柊鐢ㄦ埛澶村儚
+                    setMemberHeadIcon(cUserInfo.getMemberHeadIcon());
+                    //鏇存柊鐢ㄦ埛鍚嶇О
+                    setMemberName(cUserInfo.getMemberName());
+                } else {
+                    HdlAccountLogic.getInstance().getImageKey_C(cUserInfo.getMemberHeadIcon(), new CloudCallBeak<String>() {
+                        @Override
+                        public void onSuccess(String url) {
+                            cUserInfo.setMemberHeadIcon(url);
+                            //鏇存柊鐢ㄦ埛澶村儚
+                            setMemberHeadIcon(cUserInfo.getMemberHeadIcon());
+                            //鏇存柊鐢ㄦ埛鍚嶇О
+                            setMemberName(cUserInfo.getMemberName());
+                        }
+
+                        @Override
+                        public void onFailure(HDLException e) {
+//                            //鏇存柊鐢ㄦ埛澶村儚
+//                            setMemberHeadIcon(cUserInfo.getMemberHeadIcon());
+                            //鏇存柊鐢ㄦ埛鍚嶇О
+                            setMemberName(cUserInfo.getMemberName());
+//                            HdlThreadLogic.toast(_mActivity, e);
+                        }
+                    });
+                }
+
+
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                //鎬曞叾瀹冧笉鍒ゆ柇null
+                mC_UserInfo = new CUserInfo();
+//                hideLoading();
+                HdlThreadLogic.toast(_mActivity, e);
+            }
+        });
+    }
+
+    /**
+     * 鑾峰彇B绔釜浜轰俊鎭�
+     */
+    private void getBUserInfo() {
+
+        HdlAccountLogic.getInstance().getUserInfo_B(new CloudCallBeak<BUserInfo>() {
+            @Override
+            public void onSuccess(BUserInfo bUserInfo) {
+
+                mB_UserInfo = bUserInfo;
+                UserConfigManage.getInstance().setBingPhone(bUserInfo.getUserPhone());
+                UserConfigManage.getInstance().setBingEmail(bUserInfo.getUserEmail());
+                UserConfigManage.getInstance().setUserName(bUserInfo.getUserName());
+                UserConfigManage.getInstance().Save();
+//                hideLoading();
+                setMemberName(bUserInfo.getUserName());
+                setMemberAccount(TextUtils.isEmpty(bUserInfo.getUserPhone()) ? bUserInfo.getUserEmail() : bUserInfo.getUserPhone());
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+//                hideLoading();
+                HdlThreadLogic.toast(_mActivity, e);
+            }
+        });
+    }
+
+
+    /**
+     * 娉ㄥ唽鐩戝惉鍣�
+     */
+    private void initEvent() {
+
+        viewBinding.fragmentMeIconParentCl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                if (UserConfigManage.getInstance().isBAccount()) {
+                    Intent intent = new Intent();
+                    intent.setClass(_mActivity, BPersonalDataActivity.class);
+                    startActivity(intent);
+                } else {
+                    Intent intent = new Intent();
+                    intent.setClass(_mActivity, CPersonalDataActivity.class);
+                    if (mC_UserInfo == null) {
+                        mC_UserInfo = new CUserInfo();
+                    }
+                    intent.putExtra("memberHeadIcon", mC_UserInfo.getMemberHeadIcon());
+                    startActivityForResult(intent, 10);
+                }
+            }
+        });
+        //璁惧璋冭瘯
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //璁惧璋冭瘯
+                String path = HDLUniMP.UNI_EVENT_OPEN_MINE_DEVICEDEBUG;
+                HdlUniLogic.getInstance().openUniMP(path, null);
+            }
+        });
+        //鍛樺伐绠$悊锛堜富璐﹀彿鎵嶆樉绀猴級
+        viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String path = HDLUniMP.UNI_EVENT_OPEN_MINE_MINESTAFFMANAGER;
+                HdlUniLogic.getInstance().openUniMP(path, null);
+            }
+        });
+        //璁剧疆
+        viewBinding.fragmentMeLineSetIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(_mActivity, SetActivity.class);
+                startActivity(intent);
+            }
+        });
+        //鍏充簬
+        viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineCl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startActivity(AsRegardsActivity.class);
+            }
+        });
+
+
+    }
+
+    /**
+     * 鍒濆鍖栫晫闈�
+     */
+    private void initView() {
+        //璁惧璋冭瘯
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.device_debug);
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineTitleIv.setText(R.string.device_debugging);
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineV.setVisibility(View.VISIBLE);
+        //鍛樺伐绠$悊
+        viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.user_management);
+        viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineTitleIv.setText(R.string.staff_management);
+        viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.GONE);//鍏堥殣钘�,璇诲彇鍒版湁闄愭潈鍦ㄦ樉绀�
+        viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineV.setVisibility(View.VISIBLE);
+        //璁惧
         viewBinding.fragmentMeLineSetIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.set);
-        viewBinding.fragmentMeLineSetIl.fragmentMeLineTitleIv.setText(R.string.me_璁剧疆);
-
+        viewBinding.fragmentMeLineSetIl.fragmentMeLineTitleIv.setText(R.string.me_set);
+        viewBinding.fragmentMeLineSetIl.fragmentMeLineV.setVisibility(View.VISIBLE);
+        //鍏充簬
         viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.asregards);
-        viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_鍏充簬);
+        viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_regard);
+//        viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineV.setVisibility(View.VISIBLE);
 
+
+        setMemberName(UserConfigManage.getInstance().getUserName());
+        setMemberAccount(UserConfigManage.getInstance().getAccount());
+//        setMemberHeadIcon(UserConfigManage.getInstance().getUserImageUrl());
+
+
+    }
+
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (UserConfigManage.getInstance().isBAccount()) {
+            //B绔笉闇�瑕佹洿鏂�
+            return;
+        }
+        if (requestCode == 10 && resultCode == 10) {
+            if (data != null) {
+                String iconUrl = data.getStringExtra("memberHeadIcon");
+                String memberName = data.getStringExtra("memberName");
+                //鏇存柊鐢ㄦ埛澶村儚
+                setMemberHeadIcon(iconUrl);
+                //鏇存柊鐢ㄦ埛鍚嶇О
+                setMemberName(memberName);
+
+            }
+        }
+    }
+
+    /**
+     * 鏄剧ず鐢ㄦ埛澶村儚
+     */
+    private void setMemberHeadIcon(String memberHeadIconUrl) {
+        if (TextUtils.isEmpty(memberHeadIconUrl)) {
+            return;
+        }
+        if (mC_UserInfo != null) {
+            mC_UserInfo.setMemberHeadIcon(memberHeadIconUrl);
+        }
+        GlideUtils.getCircleCropImage(_mActivity, memberHeadIconUrl, viewBinding.fragmentMeIconIv, true);
+//        GlideUtils.getRoundedCornersImage(_mActivity, memberHeadIconUrl, viewBinding.fragmentMeIconIv, new RoundedCorners(4), true);
+
+    }
+
+    /**
+     * 鏄剧ず鐢ㄦ埛鍚嶇О
+     */
+    private void setMemberName(String userName) {
+        if (TextUtils.isEmpty(userName)) {
+            viewBinding.fragmentMeUserNameTv.setVisibility(View.GONE);
+            viewBinding.fragmentMeUserNameNextIv.setVisibility(View.GONE);
+        } else {
+            viewBinding.fragmentMeUserNameTv.setVisibility(View.VISIBLE);
+            viewBinding.fragmentMeUserNameNextIv.setVisibility(View.VISIBLE);
+            viewBinding.fragmentMeUserNameTv.setText(userName);
+        }
+
+
+    }
+
+    /**
+     * 鏄剧ず璐﹀彿
+     */
+    private void setMemberAccount(String userAccount) {
+        if (viewBinding.fragmentMeUserNameTv.getVisibility() == View.VISIBLE) {
+            viewBinding.fragmentMeUserRoleNextIv.setVisibility(View.GONE);
+        } else {
+            viewBinding.fragmentMeUserRoleNextIv.setVisibility(View.VISIBLE);
+        }
+
+        if (TextUtils.isEmpty(userAccount)) {
+            userAccount = "--";
+        }
+        viewBinding.fragmentMeUserRoleTv.setText(userAccount);
+
+    }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
+    public void onEventMessage(BaseEventBus eventBus) {
+        super.onEventMessage(eventBus);
+        if (eventBus == null) {
+            return;
+        }
+        //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
+        if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
+            if (eventBus.getType().equals(HomepageTitleTabSwitch.me.toString())) {
+                // 鍙栨秷绮樻�т簨浠�
+                EventBus.getDefault().removeStickyEvent(eventBus);
+                //璇诲彇澶村儚
+                if (UserConfigManage.getInstance().isBAccount()) {
+                    this.getBUserInfo();
+                } else {
+                    this.getCMemberInfo();
+                }
+                getUserRightType();
+
+            }
+
+        }
+
+    }
+
+    /**
+     * 鍛樺伐鏉冮檺绫诲瀷(B绔�)
+     * MANAGER : 鍏徃绠$悊鍛�
+     * USER 锛� 鏅�氬憳宸�
+     */
+    private void getUserRightType() {
+        HdlMemberLogic.getInstance().getUserRightType(new CloudCallBeak<UserRightTypeBean>() {
+            @Override
+            public void onSuccess(UserRightTypeBean obj) {
+                if (obj.getUserRightType().equals(UserRightType.MANAGER)) {
+                    viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.VISIBLE);
+                } else {
+                    viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.GONE);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+
+            }
+        });
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯�(app鍚姩鐨勬椂鍊欒鑾峰彇)
+     */
+    private void getResidenceTemperatureUnit() {
+        HdlResidenceLogic.getInstance().getResidenceTemperatureUnit(new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String json) {
+                try {
+                    if (TextUtils.isEmpty(json) || json.equals("{}")) {
+                        return;
+                    }
+                    JSONObject jsonObject = new Gson().fromJson(json, JSONObject.class);
+                    if (jsonObject.containsKey("tempType")) {
+                        String unit = jsonObject.getString("tempType");
+                        if (unit.contains("C")) {
+                            unit = "鈩�";
+                        } else {
+                            unit = "鈩�";
+                        }
+                        UserConfigManage.getInstance().setTemperature_unit(unit);
+                        UserConfigManage.getInstance().Save();
+                    }
+                } catch (Exception ignored) {
+                }
+
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                HdlLogLogic.print("鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯�--->" + e.getMsg() + "(" + e.getCode() + ")", true);
+//                HdlThreadLogic.toast(_mActivity, e);
+            }
+        });
     }
 }

--
Gitblit v1.8.0