From 75f59fa9a615e3584694e820ff83503e8b72ea16 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 14 三月 2025 16:55:31 +0800
Subject: [PATCH] refactor(generallibrary):重构网络请求模块

---
 generallibrary/src/main/java/com/dayu/general/activity/LoginActivity.kt       |   58 +++++++
 generallibrary/src/main/java/com/dayu/general/net/NetConstans.kt              |    2 
 qiheonlinelibrary/build.gradle                                                |    2 
 app/src/main/AndroidManifest.xml                                              |   10 -
 generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt   |   43 +++++
 generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt    |   49 ++++++
 generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt    |    2 
 generallibrary/src/main/java/com/dayu/general/BaseApplication.kt              |   21 ++
 generallibrary/src/main/java/com/dayu/general/net/ApiService.kt               |   12 
 gradle.properties                                                             |    2 
 app/src/main/java/com/dayu/recharge/MyApplication.java                        |    7 
 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java               |   60 +++++++
 generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt  |   87 ++++++----
 generallibrary/src/main/res/layout/item_user_list.xml                         |   13 +
 app/src/main/res/layout/activity_login.xml                                    |    5 
 baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java          |    2 
 baselibrary/src/main/res/layout/library_dialog.xml                            |   18 ++
 generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt         |    9 
 generallibrary/src/main/java/com/dayu/general/net/MyIntercepterApplication.kt |    1 
 baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java        |    6 
 generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt               |   31 +--
 21 files changed, 352 insertions(+), 88 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 880e013..7d52f81 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -41,16 +41,8 @@
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
 
-<!--        <activity-->
-<!--            android:name="com.dayu.recharge.activity.LoginActivity"-->
-<!--            android:exported="true">-->
-<!--            <intent-filter>-->
-<!--                <action android:name="android.intent.action.MAIN" />-->
-<!--                <category android:name="android.intent.category.LAUNCHER" />-->
-<!--            </intent-filter>-->
-<!--        </activity>-->
         <activity
-            android:name="com.dayu.general.activity.MainActivity"
+            android:name="com.dayu.recharge.activity.LoginActivity"
             android:exported="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index fb0a33e..5fe2576 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -67,9 +67,14 @@
                     case BaseCommon.QHOnLineLibrary:
                         QHOnLineApplication.getInstance(this);
                         BusinessProvider.getInstance(this);
+                        break;
+                    case BaseCommon.Generalv1Library:
+                        com.dayu.general.BaseApplication.getInstance().application = this;
+                        break;
                 }
             }
-        } catch (Exception e) {
+        } catch (
+                Exception e) {
             e.printStackTrace();
             CrashReport.postCatchedException(e);
         }
diff --git a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
index f6d5155..3632ec7 100644
--- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -84,6 +84,8 @@
             } else if ((passWordBean == null && psStr.equals("123456"))
                     || passWordBean != null && passWordBean.getPassWord().equalsIgnoreCase(WSMD5.getMD5Str(psStr))) {
                 startToHomeActivity();
+            } else if (MyApplication.myApplication.libraryType == BaseCommon.Generalv1Library) {
+                com.dayu.general.activity.LoginActivity.login(nameStr, psStr, this);
             } else {
                 Toast.makeText(LoginActivity.this, "瀵嗙爜閿欒", Toast.LENGTH_SHORT).show();
             }
@@ -105,7 +107,7 @@
     protected void onResume() {
         super.onResume();
         Log.i("LoginActivity", "onResume");
-        if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) {
+        if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary || MyApplication.myApplication.libraryType == BaseCommon.Generalv1Library) {
             binding.nameLL.setVisibility(View.VISIBLE);
         }
     }
@@ -122,6 +124,9 @@
             } else if (type == BaseCommon.QHOnLineLibrary) {
                 getQHOnlinPermission();
                 binding.nameLL.setVisibility(View.VISIBLE);
+            } else if (type == BaseCommon.Generalv1Library) {
+                binding.nameLL.setVisibility(View.VISIBLE);
+                getGeneralV1Permission();
             }
             MyApplication.myApplication.initApplication();
         });
@@ -135,6 +140,8 @@
             startActivity(new Intent(LoginActivity.this, HomeActivityQHAlone.class));
         } else if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) {
             startActivity(new Intent(LoginActivity.this, HomeActivityQHOline.class));
+        } else if (MyApplication.myApplication.libraryType == BaseCommon.Generalv1Library) {
+            startActivity(new Intent(LoginActivity.this, com.dayu.general.activity.MainActivity.class));
         }
         LoginActivity.this.finish();
     }
@@ -286,6 +293,57 @@
         }
     }
 
+    /**
+     * 鑾峰彇閫氱敤鏉冮檺V1鐗堟湰
+     * 璇ユ柟娉曠敤浜庤姹傚簲鐢ㄦ墍闇�鐨勬潈闄愶紝浠ヤ究搴旂敤鍙互姝e父杩愯
+     */
+    private void getGeneralV1Permission() {
+        try {
+            XXPermissions.with(this)
+                    // 鐢宠鍗曚釜鏉冮檺
+//                    .permission(Permission.RECORD_AUDIO)
+                    // 鐢宠澶氫釜鏉冮檺
+                    .permission(Permission.READ_PHONE_STATE,
+                            Permission.READ_EXTERNAL_STORAGE,
+                            Permission.WRITE_EXTERNAL_STORAGE)
+                    // 璁剧疆鏉冮檺璇锋眰鎷︽埅鍣紙灞�閮ㄨ缃級
+                    //.interceptor(new PermissionInterceptor())
+                    // 璁剧疆涓嶈Е鍙戦敊璇娴嬫満鍒讹紙灞�閮ㄨ缃級
+                    //.unchecked()
+                    .request(new OnPermissionCallback() {
+
+                        @Override
+                        public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
+                            if (allGranted) {
+                                if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
+                                    try {
+                                        File file = new File(com.dayu.general.dao.BaseDaoSingleton.SqlitePath);
+                                        if (!file.exists()) {
+                                            file.mkdirs();
+                                        }
+
+                                    } catch (Exception e) {
+                                        e.printStackTrace();
+                                    }
+                                }
+                            }
+                        }
+
+                        @Override
+                        public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
+                            if (doNotAskAgain) {
+                                // 濡傛灉鏄姘镐箙鎷掔粷灏辫烦杞埌搴旂敤鏉冮檺绯荤粺璁剧疆椤甸潰
+                            } else {
+//                                toast("鑾峰彇褰曢煶鍜屾棩鍘嗘潈闄愬け璐�");
+                            }
+                        }
+                    });
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
+    }
+
+
     long mExitTime;
 
     @Override
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index a3d7357..4a637d3 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -45,7 +45,7 @@
                 android:hint="璇疯緭鍏ヨ处鍙�"
                 android:maxLines="1"
                 android:singleLine="true"
-                android:text="zuoxiao" />
+                android:text="15802220723" />
         </LinearLayout>
         <LinearLayout
             android:layout_width="match_parent"
@@ -66,8 +66,7 @@
                 android:layout_height="wrap_content"
                 android:hint="鍒濆瀵嗙爜涓烘暟瀛�1-6"
                 android:inputType="textPassword"
-
-                android:text="ZX@@123qwA" />
+                android:text="abc_123" />
         </LinearLayout>
 
 
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java b/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java
index 98e9f97..e43eab2 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java
@@ -17,6 +17,8 @@
 
     public final static int QHOnLineLibrary = 2;
 
+    public final static int Generalv1Library = 3;
+
     /**
      * 褰撳墠鍗″瘑鐮侀敊璇紝涓嶆槸鏈叕鍙稿崱
      */
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java b/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java
index 8f9984f..4fc4a4c 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/view/LibraryDialog.java
@@ -2,6 +2,7 @@
 
 import static android.view.Gravity.CENTER;
 
+import static com.dayu.baselibrary.utils.BaseCommon.Generalv1Library;
 import static com.dayu.baselibrary.utils.BaseCommon.HeNanLibrary;
 import static com.dayu.baselibrary.utils.BaseCommon.QHAloneLibrary;
 import static com.dayu.baselibrary.utils.BaseCommon.QHOnLineLibrary;
@@ -74,7 +75,12 @@
                     type = QHOnLineLibrary;
                     libraryBean.setType(type);
                     data = "纭閫夋嫨榻愭渤鑱旂綉鐗堟湰鍚楋紵";
+                } else if (checkedId == R.id.generav1Library) {// 澶勭悊閫変腑Option 2鐨勯�昏緫
+                    type = Generalv1Library;
+                    libraryBean.setType(type);
+                    data = "纭閫夋嫨閫氱敤1.0鐗堟湰鍚楋紵";
                 }
+
             });
             TextView okBtn = findViewById(R.id.ok);
             okBtn.setOnClickListener(v -> {
diff --git a/baselibrary/src/main/res/layout/library_dialog.xml b/baselibrary/src/main/res/layout/library_dialog.xml
index 1be8315..33c7bda 100644
--- a/baselibrary/src/main/res/layout/library_dialog.xml
+++ b/baselibrary/src/main/res/layout/library_dialog.xml
@@ -19,7 +19,7 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
             android:gravity="center"
-            android:text="閫夋嫨鐗堟湰"
+            android:text="璇峰厛閫夋嫨鐗堟湰"
             android:textColor="@color/dialog_btn"
             android:textSize="23sp"
             android:textStyle="bold" />
@@ -79,7 +79,21 @@
                 android:text="榻愭渤鍗曟満鐗�"
                 android:textColor="@drawable/radio_text_select"
                 android:textSize="20sp" />
-
+            <RadioButton
+                android:id="@+id/generav1Library"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="50dp"
+                android:layout_marginTop="25dp"
+                android:layout_marginRight="50dp"
+                android:layout_marginBottom="5dp"
+                android:background="@drawable/radio_select"
+                android:button="@null"
+                android:gravity="center"
+                android:padding="6dp"
+                android:text="閫氱敤1.0鐗�"
+                android:textColor="@drawable/radio_text_select"
+                android:textSize="20sp" />
 
         </RadioGroup>
 
diff --git a/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt b/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt
index 6fff4c2..8d924d2 100644
--- a/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt
+++ b/generallibrary/src/main/java/com/dayu/general/BaseApplication.kt
@@ -2,10 +2,25 @@
 
 import android.app.Application
 
-public class BaseApplication : Application() {
+class BaseApplication private constructor() {
 
-    override fun onCreate() {
-        super.onCreate()
+    companion object {
+        @JvmField
+        var application: Application? = null
 
+        private const val TAG = "ApiManager"
+
+        @Volatile
+        private var myApplication: BaseApplication? = null
+
+        @JvmStatic
+        fun getInstance(): BaseApplication {
+            return myApplication ?: synchronized(this) {
+                myApplication ?: BaseApplication().also {
+                    myApplication = it
+                }
+            }
+        }
     }
+
 }
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/LoginActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/LoginActivity.kt
new file mode 100644
index 0000000..762fc90
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/activity/LoginActivity.kt
@@ -0,0 +1,58 @@
+package com.dayu.general.activity
+
+import android.content.Context
+import com.dayu.baselibrary.net.subscribers.SubscriberListener
+import com.dayu.baselibrary.utils.ToastUtil
+import com.dayu.general.bean.net.SearchUserResult
+import com.dayu.general.net.ApiManager
+import com.dayu.general.net.BaseResponse
+
+/**
+ * Description:
+ * Author: zuo
+ * Date: 2025/3/13
+ */
+class LoginActivity {
+
+    companion object {
+        @JvmStatic
+        fun login(phone: String, password: String, myContext: Context) {
+            val map = mutableMapOf<String, Any>()
+
+            if (phone.isNotEmpty()) {
+                map["phone"] = phone
+            }
+
+            if (password.isNotEmpty()) {
+                map["password"] = password
+            }
+
+            map["orgTag"] = "ym"
+
+            // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁�
+            ApiManager.getInstance().requestPostLoading(
+                myContext,
+                "sso/sso/loginJson",
+                SearchUserResult::class.java,
+                map,
+                object : SubscriberListener<BaseResponse<SearchUserResult>>() {
+                    override fun onNext(t: BaseResponse<SearchUserResult>) {
+                        if (t.success) {
+
+                        } else {
+                            // 澶勭悊鎼滅储澶辫触鐨勬儏鍐�
+                            ToastUtil.show(t.msg)
+                        }
+                    }
+
+                    override fun onError(e: Throwable?) {
+                        super.onError(e)
+                        ToastUtil.show("鎼滅储澶辫触: ${e?.message ?: "鏈煡閿欒"}")
+                    }
+                }
+            )
+        }
+    }
+
+
+}
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt
index 1a655b0..3cf7116 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserActivity.kt
@@ -1,15 +1,17 @@
 package com.dayu.general.activity
 
 import android.os.Bundle
+import androidx.recyclerview.widget.LinearLayoutManager
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
 import com.dayu.baselibrary.utils.ToastUtil
 import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
 import com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_IMAGE
+import com.dayu.general.adapter.SearchListAdapter
 import com.dayu.general.bean.net.SearchUserResult
 import com.dayu.general.databinding.ActivitySearchUserGeBinding
 import com.dayu.general.dialog.SearchDialog
+import com.dayu.general.net.ApiManager
 import com.dayu.general.net.BaseResponse
-import com.dayu.qiheonlinelibrary.net.ApiManager
 
 /**
  * @author: zuo
@@ -19,56 +21,70 @@
 class SearchUserActivity : BaseActivity() {
 
     var binding: ActivitySearchUserGeBinding? = null
+    private var userAdapter: SearchListAdapter? = null
+    var searchDialog: SearchDialog? = null
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivitySearchUserGeBinding.inflate(layoutInflater)
         setContentView(binding?.root)
         initView()
+        setupRecyclerView()
+
     }
 
 
     fun initView() {
+        searchDialog = SearchDialog(this)
+        searchDialog?.show()
         binding?.titleBar?.setOnItemclickListner(ClickType_LEFT_IMAGE) { this.finish() }
+        // 璁剧疆鎼滅储鐩戝惉鍣�
+        searchDialog?.setOnSearchListener(object : SearchDialog.OnSearchListener {
+            override fun onSearch(farmerId: String, farmerName: String, cardNumber: String) {
+                // 澶勭悊鎼滅储缁撴灉
+                // 杩欓噷鍙槸绀轰緥锛屽疄闄呭簲鐢ㄤ腑鍙兘闇�瑕佽皟鐢ˋPI鎴栨煡璇㈡暟鎹簱
+                val message =
+                    "鎼滅储鏉′欢锛歕n鍐滄埛缂栧彿锛�$farmerId\n鍐滄埛鍚嶇О锛�$farmerName\n鍗″彿锛�$cardNumber"
+                // 鎵ц瀹為檯鐨勬悳绱㈤�昏緫
+                searchUser(farmerId, farmerName, cardNumber)
+            }
+        })
         binding?.titleBar?.setOnItemclickListner(ClickType_RIGHT_IMAGE) {
             // 鍒涘缓鎼滅储瀵硅瘽妗�
-            val searchDialog = SearchDialog(this)
-
-            // 璁剧疆鎼滅储鐩戝惉鍣�
-            searchDialog.setOnSearchListener(object : SearchDialog.OnSearchListener {
-                override fun onSearch(farmerId: String, farmerName: String, cardNumber: String) {
-                    // 澶勭悊鎼滅储缁撴灉
-                    // 杩欓噷鍙槸绀轰緥锛屽疄闄呭簲鐢ㄤ腑鍙兘闇�瑕佽皟鐢ˋPI鎴栨煡璇㈡暟鎹簱
-                    val message =
-                        "鎼滅储鏉′欢锛歕n鍐滄埛缂栧彿锛�$farmerId\n鍐滄埛鍚嶇О锛�$farmerName\n鍗″彿锛�$cardNumber"
-                    // 鎵ц瀹為檯鐨勬悳绱㈤�昏緫
-                    performSearch(farmerId, farmerName, cardNumber)
-                }
-            })
             // 鏄剧ず瀵硅瘽妗�
-            searchDialog.show()
+            searchDialog?.show()
+        }
+    }
+
+    private fun setupRecyclerView() {
+        userAdapter = SearchListAdapter()
+        binding?.recyclerView?.apply {
+            layoutManager = LinearLayoutManager(this@SearchUserActivity)
+            adapter = userAdapter
         }
     }
 
     /**
-     * 鎵ц鎼滅储閫昏緫
-     * 杩欓噷鍙槸涓�涓ず渚嬫柟娉曪紝瀹為檯搴旂敤涓渶瑕佹牴鎹叿浣撻渶姹傚疄鐜�
+     * 鏍规嵁鍐滄皯ID銆佸鍚嶅拰閾惰鍗″彿鎼滅储鐢ㄦ埛
+     *
+     * 姝ゅ嚱鏁版瀯寤轰竴涓弬鏁版槧灏勶紝鏍规嵁鎻愪緵鐨勫啘姘慖D銆佸鍚嶅拰閾惰鍗″彿鏉ユ悳绱㈢敤鎴�
+     * 瀹冧粎鍖呭惈鏈夋晥鐨勩�侀潪绌虹殑鎼滅储鍙傛暟锛屼互纭繚鎼滅储璇锋眰鐨勫噯纭�у拰鏁堢巼
+     *
+     * @param farmerId 鍐滄皯鐨勫敮涓�鏍囪瘑绗�
+     * @param farmerName 鍐滄皯鐨勫鍚�
+     * @param cardNumber 閾惰鍗″彿
      */
-    private fun performSearch(farmerId: String, farmerName: String, cardNumber: String) {
-        // 璋冪敤瀹為檯鐨勬悳绱PI
-        searchUser(farmerId, farmerName, cardNumber)
-    }
-
     private fun searchUser(farmerId: String, farmerName: String, cardNumber: String) {
-        val map = mutableMapOf<String, String>()
-        
+        val map = mutableMapOf<String, Any>()
+
         if (farmerId.isNotEmpty()) {
             map["farmerId"] = farmerId
         }
-        
+
         if (farmerName.isNotEmpty()) {
             map["farmerName"] = farmerName
         }
-        
+
         if (cardNumber.isNotEmpty()) {
             map["cardNumber"] = cardNumber
         }
@@ -76,7 +92,7 @@
         // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁�
         ApiManager.getInstance().requestGetLoading(
             this,
-            "searchUser",
+            "sell/client/get",
             SearchUserResult::class.java,
             map,
             object : SubscriberListener<BaseResponse<SearchUserResult>>() {
@@ -86,7 +102,11 @@
                         val result = t.content
                         if (result != null) {
                             // 澶勭悊鎼滅储缁撴灉
-                            handleSearchResult(result)
+                            if (result.obj.isNotEmpty()) {
+                                userAdapter?.setData(result.obj)
+                            } else {
+                                ToastUtil.show("鏈壘鍒板尮閰嶇殑鐢ㄦ埛")
+                            }
                         } else {
                             ToastUtil.show("鏈壘鍒板尮閰嶇殑鐢ㄦ埛")
                         }
@@ -95,7 +115,7 @@
                         ToastUtil.show(t.msg)
                     }
                 }
-                
+
                 override fun onError(e: Throwable?) {
                     super.onError(e)
                     ToastUtil.show("鎼滅储澶辫触: ${e?.message ?: "鏈煡閿欒"}")
@@ -103,14 +123,9 @@
             }
         )
     }
-    
+
     /**
      * 澶勭悊鎼滅储缁撴灉
      */
-    private fun handleSearchResult(result: SearchUserResult) {
-        // 鍦ㄨ繖閲屽疄鐜版悳绱㈢粨鏋滅殑澶勭悊閫昏緫
-        // 渚嬪锛氭洿鏂癠I鏄剧ず鎼滅储缁撴灉鍒楄〃
-        // 鎴栬�呰烦杞埌缁撴灉璇︽儏椤甸潰
-    }
 
-}
\ No newline at end of file
+}
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt
new file mode 100644
index 0000000..54ed289
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/adapter/BaseRecycleAdapter.kt
@@ -0,0 +1,43 @@
+package com.dayu.general.adapter
+
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.dayu.baselibrary.databinding.ItemNoMoreBinding
+
+/**
+ * Description:
+ * Author: zuo
+ * Date: 2025/3/10
+ */
+class BaseRecycleAdapter<T : RecyclerView.ViewHolder>:RecyclerView.Adapter<T>() {
+    companion object {
+        const val VIEW_TYPE_ITEM = 1
+        const val VIEW_TYPE_EMPTY = 0
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): T {
+        TODO("Not yet implemented")
+
+    }
+
+    override fun getItemCount(): Int {
+        TODO("Not yet implemented")
+
+    }
+
+    override fun onBindViewHolder(holder: T, position: Int) {
+        TODO("Not yet implemented")
+
+    }
+
+    class ViewHolderEmpty(binding: ItemNoMoreBinding) : RecyclerView.ViewHolder(binding.root) {
+        var mBinding: ItemNoMoreBinding = binding
+        fun getBinding(): ItemNoMoreBinding {
+            return mBinding
+        }
+
+        fun setBinding(binding: ItemNoMoreBinding) {
+            this.mBinding = binding
+        }
+    }
+    }
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
new file mode 100644
index 0000000..debb5f1
--- /dev/null
+++ b/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
@@ -0,0 +1,49 @@
+package com.dayu.general.adapter
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.dayu.general.bean.net.SearchUserResult
+import com.dayu.general.databinding.ItemUserListBinding
+
+/**
+ * Description:
+ * Author: zuo
+ * Date: 2025/3/10
+ */
+class SearchListAdapter :  RecyclerView.Adapter<SearchListAdapter.UserViewHolder>(){
+
+    private val userList = mutableListOf<SearchUserResult.UserInfo>()
+
+    fun setData(users: List<SearchUserResult.UserInfo>) {
+        userList.clear()
+        userList.addAll(users)
+        notifyDataSetChanged()
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
+        val binding = ItemUserListBinding.inflate(LayoutInflater.from(parent.context), parent, false)
+        return UserViewHolder(binding)
+    }
+
+    override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
+        val user = userList[position]
+        holder.bind(user)
+    }
+
+    override fun getItemCount(): Int = userList.size
+
+    inner class UserViewHolder(private val binding: ItemUserListBinding) : RecyclerView.ViewHolder(binding.root) {
+        fun bind(user: SearchUserResult.UserInfo) {
+            binding.tvCardCount.text = "鍗℃暟閲忥細${user.cardCount ?: "0"}"
+            binding.tvFarmerId.text = "瀹㈡埛缂栧彿锛�${user.clientNum ?: ""}"
+            binding.tvIdCard.text = "韬唤璇侊細${user.idCard ?: ""}"
+            binding.tvName.text = "濮撳悕锛�${user.name ?: ""}"
+            binding.tvPhone.text = "鐢佃瘽锛�${user.phone ?: ""}"
+
+            binding.root.setOnClickListener {
+                // 鍙互鍦ㄦ澶勬坊鍔犵偣鍑讳簨浠讹紝渚嬪鏌ョ湅鐢ㄦ埛璇︽儏
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt b/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt
index 9a70342..cce0c19 100644
--- a/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt
+++ b/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt
@@ -19,7 +19,7 @@
         val address: String? = null,   // 鍦板潃
         val cardCount: Int? = null,    // 鍗℃暟閲�
         val clientNum: String? = null, // 瀹㈡埛缂栧彿
-        val id: Int? = null,           // ID
+        val id: String? = null,           // ID
         val idCard: String? = null,    // 韬唤璇�
         val name: String? = null,      // 濮撳悕
         val operateDt: String? = null, // 鎿嶄綔鏃ユ湡
diff --git a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt
index 825209a..7edd95d 100644
--- a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt
+++ b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt
@@ -8,12 +8,17 @@
 
 class BaseDaoSingleton {
 
+    companion object {
+        @JvmField
+        val SqlitePath: String =
+            Environment.getExternalStorageDirectory().absolutePath + File.separator + ".dayu" + File.separator + "data" + File.separator
+    }
+
     var baseDao: AppDataBase? = null
 
     var AsynchBaseDao: AppDataBase? = null
 
-    var SqlitePath: String =
-        Environment.getExternalStorageDirectory().absolutePath + File.separator + ".dayu" + File.separator + "data" + File.separator
+
 
     //MyFileUtil.SqlitePath +
     fun getInstance(context: Context?): AppDataBase? {
diff --git a/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt b/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
index 8837b74..0667e86 100644
--- a/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
+++ b/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
@@ -1,14 +1,9 @@
-package com.dayu.qiheonlinelibrary.net
+package com.dayu.general.net
 
 import android.content.Context
 import android.util.Log
 import com.dayu.baselibrary.net.subscribers.ProgressSubscriber
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
-import com.dayu.general.net.ApiService
-import com.dayu.general.net.BaseResponse
-import com.dayu.general.net.MyJsonParser
-import com.dayu.general.net.NetConstans
-import com.dayu.general.net.RetrofitClient
 import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
 import io.reactivex.rxjava3.functions.Function
 import io.reactivex.rxjava3.schedulers.Schedulers
@@ -27,18 +22,10 @@
         @Volatile
         private var apiManager: ApiManager? = null
 
-        fun init() {
-            if (apiManager == null) {
-                synchronized(ApiManager::class) {
-                    if (apiManager == null) {
-                        apiManager = ApiManager()
-                    }
-                }
-            }
-        }
-
         fun getInstance(): ApiManager {
-            return apiManager ?: throw IllegalStateException("ApiManager not initialized")
+            return apiManager ?: synchronized(this) {
+                apiManager ?: ApiManager().also { apiManager = it }
+            }
         }
     }
 
@@ -132,11 +119,11 @@
         val mySubscriber = ProgressSubscriber<BaseResponse<T>>(context, hideLoading, listener);
 
         observable
-            ?.subscribeOn(Schedulers.io())
-            ?.map(mapResponse(tClass))
-            ?.unsubscribeOn(Schedulers.newThread())
-            ?.observeOn(AndroidSchedulers.mainThread())
-            ?.subscribe(mySubscriber)
+            .subscribeOn(Schedulers.io())
+            .map(mapResponse(tClass))
+            .unsubscribeOn(Schedulers.newThread())
+            .observeOn(AndroidSchedulers.mainThread())
+            .subscribe(mySubscriber)
     }
 
     private fun <T> mapResponse(tClass: Class<T>): Function<Any, BaseResponse<T>> {
diff --git a/generallibrary/src/main/java/com/dayu/general/net/ApiService.kt b/generallibrary/src/main/java/com/dayu/general/net/ApiService.kt
index 7aac48b..34004ff 100644
--- a/generallibrary/src/main/java/com/dayu/general/net/ApiService.kt
+++ b/generallibrary/src/main/java/com/dayu/general/net/ApiService.kt
@@ -14,19 +14,19 @@
     @POST
     fun requestPost(
         @Url url: String,
-        @Body params: Map<String, Any?>?
-    ): Observable<BaseResponse<Any?>>?
+        @Body params: Map<String, @JvmSuppressWildcards Any>
+    ): Observable<BaseResponse<Any>>
 
     @POST
-    fun requestPost(@Url url: String?): Observable<BaseResponse<Any?>>?
+    fun requestPost(@Url url: String): Observable<BaseResponse<Any>>
 
     @GET("{url}")
     fun requestGet(
         @Path("url") url: String,
-        @QueryMap params: Map<String, Any?>?
-    ): Observable<BaseResponse<Any?>>?
+        @QueryMap params: Map<String, @JvmSuppressWildcards Any>
+    ): Observable<BaseResponse<Any>>
 
     @GET("{url}")
-    fun requestGet(@Path("url") url: String): Observable<BaseResponse<Any?>>?
+    fun requestGet(@Path("url") url: String): Observable<BaseResponse<Any>>
 
 }
\ No newline at end of file
diff --git a/generallibrary/src/main/java/com/dayu/general/net/MyIntercepterApplication.kt b/generallibrary/src/main/java/com/dayu/general/net/MyIntercepterApplication.kt
index 6a3d2dd..2d8c710 100644
--- a/generallibrary/src/main/java/com/dayu/general/net/MyIntercepterApplication.kt
+++ b/generallibrary/src/main/java/com/dayu/general/net/MyIntercepterApplication.kt
@@ -44,6 +44,7 @@
             val params: Map<*, *> = HashMap<Any?, Any?>()
             if (request.method == "GET") {
                 builder.url(request.url.toString())
+
             } else {
 
             }
diff --git a/generallibrary/src/main/java/com/dayu/general/net/NetConstans.kt b/generallibrary/src/main/java/com/dayu/general/net/NetConstans.kt
index a6f1a41..781ce20 100644
--- a/generallibrary/src/main/java/com/dayu/general/net/NetConstans.kt
+++ b/generallibrary/src/main/java/com/dayu/general/net/NetConstans.kt
@@ -7,7 +7,7 @@
  */
 class NetConstans {
     companion object {
-        const val BASE_URL: String = "http://120.46.45.35:20081/api/sjgg/"
+        const val BASE_URL: String = "https://no253541tf71.vicp.fun/"
 
         const val TOKEN_INVALID: String = "0000"
     }
diff --git a/generallibrary/src/main/res/layout/item_user_list.xml b/generallibrary/src/main/res/layout/item_user_list.xml
new file mode 100644
index 0000000..e93821a
--- /dev/null
+++ b/generallibrary/src/main/res/layout/item_user_list.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:padding="12dp">
+
+    <TextView android:id="@+id/tvCardCount" android:layout_width="match_parent" android:layout_height="wrap_content" />
+    <TextView android:id="@+id/tvFarmerId" android:layout_width="match_parent" android:layout_height="wrap_content" />
+    <TextView android:id="@+id/tvIdCard" android:layout_width="match_parent" android:layout_height="wrap_content" />
+    <TextView android:id="@+id/tvName" android:layout_width="match_parent" android:layout_height="wrap_content" />
+    <TextView android:id="@+id/tvPhone" android:layout_width="match_parent" android:layout_height="wrap_content" />
+</LinearLayout>
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 65220be..33d4a24 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,3 +15,5 @@
 android.nonTransitiveRClass=true
 android.useAndroidX=true
 org.gradle.jvmargs=-Xmx2048m -Dfile.encoding\=UTF-8
+# 鎸囧畾浣跨敤Java 11
+org.gradle.java.home=C:\\Program Files\\Java\\jdk-11
diff --git a/qiheonlinelibrary/build.gradle b/qiheonlinelibrary/build.gradle
index 5356499..4e737c4 100644
--- a/qiheonlinelibrary/build.gradle
+++ b/qiheonlinelibrary/build.gradle
@@ -82,7 +82,7 @@
     compileOnly 'androidx.recyclerview:recyclerview:1.2.0'//缁忓吀鍒锋柊澶�
 
     //灏嗘敞閲婃帀鐨勮繙绋嬩緷璧栨敼涓烘湰鍦癮ar寮曠敤
-    implementation files('../baselibrary/libs/avi.library-2.1.3.aar')
+    compileOnly files('../baselibrary/libs/avi.library-2.1.3.aar')
 
     compileOnly group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'
 }

--
Gitblit v1.8.0