From d0a0e8e242e293ad35dfbee1217f1103302818cd Mon Sep 17 00:00:00 2001 From: zuojincheng <lf_zuo@163.com> Date: 星期四, 03 四月 2025 10:22:48 +0800 Subject: [PATCH] refactor(generallibrary):重构卡片和用户搜索功能 --- generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt | 127 ++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 37 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt similarity index 70% rename from generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt rename to generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt index 43874cd..58f452c 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/CardListActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchCardListActivity.kt @@ -6,12 +6,14 @@ 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.BaseApplication import com.dayu.general.adapter.CardListAdapter import com.dayu.general.bean.net.SearchCardResult import com.dayu.general.databinding.ActivityCardListBinding -import com.dayu.general.view.CardSearchDialog import com.dayu.general.net.ApiManager import com.dayu.general.net.BaseResponse +import com.dayu.general.view.CardRefundDialog +import com.dayu.general.view.SearchDialog import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener @@ -20,21 +22,21 @@ * @date: 2023/3/31 * @description: 鍗$墖鍒楄〃鐣岄潰 */ -class CardListActivity : BaseActivity() { +class SearchCardListActivity : BaseActivity() { var binding: ActivityCardListBinding? = null private var cardAdapter: CardListAdapter? = null - var searchDialog: CardSearchDialog? = null - + var searchDialog: SearchDialog? = null + // 鍒嗛〉鐩稿叧鍙橀噺 private var currentPage = 1 private val pageSize = 20 private var hasMoreData = true - + // 淇濆瓨褰撳墠鎼滅储鏉′欢 + private var currentFarmerId = "" + private var currentFarmerName = "" private var currentCardNumber = "" - private var currentClientNumber = "" - private var currentClientName = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -46,23 +48,23 @@ } fun initView() { - searchDialog = CardSearchDialog(this) + searchDialog = SearchDialog(this) searchDialog?.show() binding?.titleBar?.setOnItemclickListner(ClickType_LEFT_IMAGE) { this.finish() } // 璁剧疆鎼滅储鐩戝惉鍣� - searchDialog?.setOnSearchListener(object : CardSearchDialog.OnSearchListener { - override fun onSearch(cardNumber: String, clientNumber: String, clientName: String) { + searchDialog?.setOnSearchListener(object : SearchDialog.OnSearchListener { + override fun onSearch(farmerId: String, farmerName: String, cardNumber: String) { // 淇濆瓨褰撳墠鎼滅储鏉′欢 currentCardNumber = cardNumber - currentClientNumber = clientNumber - currentClientName = clientName - + currentFarmerId = farmerId + currentFarmerName = farmerName + // 閲嶇疆鍒嗛〉鐘舵�� currentPage = 1 hasMoreData = true - + // 鎵ц鎼滅储 - searchCards(cardNumber, clientNumber, clientName, true) + searchCards(currentFarmerId, currentFarmerName, currentCardNumber, true) } }) binding?.titleBar?.setOnItemclickListner(ClickType_RIGHT_IMAGE) { @@ -72,23 +74,31 @@ } private fun setupRecyclerView() { - cardAdapter = CardListAdapter() + cardAdapter = CardListAdapter(this) binding?.recyclerView?.apply { - layoutManager = LinearLayoutManager(this@CardListActivity) + layoutManager = LinearLayoutManager(this@SearchCardListActivity) adapter = cardAdapter } - + // 璁剧疆鍒楄〃椤圭偣鍑讳簨浠� cardAdapter?.setOnItemClickListener { card -> - // 澶勭悊鍗$墖鐐瑰嚮浜嬩欢 - ToastUtil.show("宸查�夋嫨鍗$墖锛�${card.cardNum}") - // 杩欓噷鍙互娣诲姞璺宠浆鍒板崱鐗囪鎯呴〉闈㈢殑閫昏緫 - // val intent = Intent(this, CardDetailActivity::class.java) - // intent.putExtra("cardNum", card.cardNum) - // startActivity(intent) + // 鏄剧ず閫�娆惧璇濇 + val refundDialog = CardRefundDialog(this) + refundDialog.show() // 鍏堟樉绀哄璇濇 + refundDialog.setUserInfo( + card.clientName.toString(), + card.cardNum.toString(), + card.money.toString() + ) + refundDialog.setOnConfirmListener { refundAmount, remark -> + // TODO: 澶勭悊閫�娆鹃�昏緫 + lossPost(card.idCard.toString()) + } } + + } - + private fun setupRefreshLayout() { binding?.refreshLayout?.apply { // 璁剧疆鍒锋柊鍜屽姞杞芥洿澶氱洃鍚櫒 @@ -97,14 +107,14 @@ // 閲嶇疆椤电爜骞跺埛鏂版暟鎹� currentPage = 1 hasMoreData = true - searchCards(currentCardNumber, currentClientNumber, currentClientName, true) + searchCards(currentFarmerId, currentFarmerName, currentCardNumber, true) } - + override fun onLoadMore(refreshLayout: RefreshLayout) { // 濡傛灉杩樻湁鏇村鏁版嵁锛屽姞杞戒笅涓�椤� if (hasMoreData) { currentPage++ - searchCards(currentCardNumber, currentClientNumber, currentClientName, false) + searchCards(currentFarmerId, currentFarmerName, currentCardNumber, false) } else { // 瀹屾垚鍔犺浇骞舵彁绀烘病鏈夋洿澶氭暟鎹� refreshLayout.finishLoadMore(500, true, false) @@ -126,21 +136,26 @@ * @param clientName 瀹㈡埛濮撳悕 * @param isRefresh 鏄惁涓哄埛鏂版搷浣� */ - private fun searchCards(cardNumber: String, clientNumber: String, clientName: String, isRefresh: Boolean = true) { + private fun searchCards( + farmerId: String, + farmerName: String, + cardNumber: String, + isRefresh: Boolean = true + ) { val map = mutableMapOf<String, Any>() if (cardNumber.isNotEmpty()) { map["cardNum"] = cardNumber } - if (clientNumber.isNotEmpty()) { - map["clientNum"] = clientNumber + if (farmerId.isNotEmpty()) { + map["clientNum"] = farmerId } - if (clientName.isNotEmpty()) { - map["clientName"] = clientName + if (farmerName.isNotEmpty()) { + map["clientName"] = farmerName } - + // 娣诲姞鍒嗛〉鍙傛暟 map["pageCurr"] = currentPage map["pageSize"] = pageSize @@ -155,7 +170,7 @@ override fun onNext(t: BaseResponse<SearchCardResult>) { // 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣� finishRefreshOrLoad(isRefresh) - + if (t.success) { // 澶勭悊鎼滅储鎴愬姛鐨勬儏鍐� val result = t.content @@ -168,7 +183,7 @@ } else { cardAdapter?.addData(result.obj) } - + // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁锛氭牴鎹綋鍓嶉〉鐮佸拰鎬婚〉鏁板垽鏂� hasMoreData = currentPage < result.pageTotal } else { @@ -201,7 +216,40 @@ } ) } - + + + private fun lossPost(cardNumber: String) { + val map = mutableMapOf<String, Any>() + + map["cardNum"] = cardNumber + map["operator"] = BaseApplication.userId + ApiManager.getInstance().requestGetLoading( + this, + "/sell/card/loss", + SearchCardResult::class.java, + map, + object : SubscriberListener<BaseResponse<SearchCardResult>>() { + override fun onNext(t: BaseResponse<SearchCardResult>) { + + + if (t.success) { + + } else { + // 澶勭悊鎼滅储澶辫触鐨勬儏鍐� + ToastUtil.show(t.msg) + } + } + + override fun onError(e: Throwable?) { + super.onError(e) + // 瀹屾垚鍒锋柊鎴栧姞杞藉姩浣� + ToastUtil.show("鎼滅储澶辫触: ${e?.message ?: "鏈煡閿欒"}") + } + } + ) + } + + /** * 瀹屾垚鍒锋柊鎴栧姞杞芥搷浣� * @param isRefresh 鏄惁涓哄埛鏂版搷浣� @@ -213,4 +261,9 @@ binding?.refreshLayout?.finishLoadMore(true) } } + + override fun onDestroy() { + super.onDestroy() + searchDialog?.dismiss() + } } \ No newline at end of file -- Gitblit v1.8.0