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