From 0ec9693c39a910233fc186a8cefab9f61030df78 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 07 三月 2025 18:09:32 +0800
Subject: [PATCH] refactor(generallibrary):重构网络请求模块
---
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java | 185 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 185 insertions(+), 0 deletions(-)
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java
new file mode 100644
index 0000000..cc41fe9
--- /dev/null
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java
@@ -0,0 +1,185 @@
+package com.dayu.qihealonelibrary.activity;
+
+
+import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.dayu.baselibrary.utils.ArithUtil;
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.baselibrary.view.datepicker.CustomDatePicker;
+import com.dayu.baselibrary.view.datepicker.DateFormatUtils;
+import com.dayu.qihealonelibrary.adapter.RechargeAdapter;
+import com.dayu.qihealonelibrary.databinding.ActivityRechargeListQhaBinding;
+import com.dayu.qihealonelibrary.dbBean.RechargeBean;
+import com.scwang.smart.refresh.footer.ClassicsFooter;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
+import io.reactivex.rxjava3.core.Observable;
+import io.reactivex.rxjava3.schedulers.Schedulers;
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-5 09:52
+ * Description: 鍏呭�艰褰�
+ */
+public class RechargeListActivityQHAlone extends QHAloneBaseActivity {
+
+ ActivityRechargeListQhaBinding rechargeListBinding;
+ RechargeAdapter adapter;
+ List<RechargeBean> rechargeList = new ArrayList<>();
+
+ private CustomDatePicker beginDatePicker;
+ private CustomDatePicker endDatePicker;
+ long beginTime;
+ long endTime;
+
+ int page = 0;
+
+ //姣忛〉鏁版嵁鏉℃暟
+ int limit = 30;
+ RefreshLayout myRefreshLayout;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ rechargeListBinding = ActivityRechargeListQhaBinding.inflate(LayoutInflater.from(this));
+ setContentView(rechargeListBinding.getRoot());
+ setRightButton();
+ initDatePicker();
+ initList();
+ getList();
+ }
+
+ private void initList() {
+ myRefreshLayout = (RefreshLayout) rechargeListBinding.refreshLayout;
+ myRefreshLayout.setEnableRefresh(false);
+ myRefreshLayout.setRefreshFooter(new ClassicsFooter(this));
+ myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(RefreshLayout refreshlayout) {
+ page = page + 1;
+ getList();
+ }
+ });
+ adapter = new RechargeAdapter(this, rechargeList);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+ rechargeListBinding.recyclerView.setLayoutManager(layoutManager);
+ rechargeListBinding.recyclerView.setAdapter(adapter);
+ }
+
+ private void getTotal() {
+ if (rechargeList != null) {
+ double total = 0;
+ for (int i = 0; i < rechargeList.size(); i++) {
+ double b = Double.parseDouble(rechargeList.get(i).getMorny());
+ total = ArithUtil.add(total, b);
+ }
+ rechargeListBinding.rechargeTotal.setText("宸插姞杞芥暟鎹疮璁″厖鍊硷細" + String.valueOf(total) + "鍏�");
+ }
+
+ }
+
+ private void getList() {
+ // 鍒涘缓涓�涓� Observable
+ Observable<List<RechargeBean>> observable = Observable.create(emitter -> {
+ // 鍦ㄨ繖閲屾墽琛屽紓姝ユ搷浣�
+ List<RechargeBean> beanList;
+ if (beginTime == 0 && endTime == 0) {
+ beanList = asynchBaseDao.rechargeDao().findAll(page * limit, limit);
+ } else {
+ beanList = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime);
+ }
+ // 灏嗙粨鏋滃彂閫佺粰瑙傚療鑰�
+ emitter.onNext(beanList);
+ emitter.onComplete();
+ });
+ // 璁㈤槄瑙傚療鑰�
+ observable.subscribeOn(Schedulers.io()) // 鎸囧畾鍦� IO 绾跨▼鎵ц
+ .observeOn(AndroidSchedulers.mainThread()) // 鎸囧畾鍦ㄥ崟涓�绾跨▼瑙傚療缁撴灉
+ .subscribe(
+ result -> {
+ // 鍦ㄨ繖閲屽鐞嗙粨鏋滐紝杩欓噷鏄湪涓荤嚎绋嬩腑
+// System.out.println("Result: " + result);
+ if (result.size() < limit) {
+ myRefreshLayout.finishLoadMoreWithNoMoreData();
+ }
+ if (result != null && result.size() > 0) {
+ rechargeList.addAll(result);
+ }
+ adapter.notifyDataSetChanged();
+ getTotal();
+ },
+ error -> {
+ // 澶勭悊閿欒
+ System.err.println("Error: " + error.getMessage());
+ }
+ );
+ }
+
+
+ private void setRightButton() {
+ titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ beginDatePicker.show(System.currentTimeMillis());
+ }
+ });
+ }
+
+ private void initDatePicker() {
+ long beginTimestamp = DateFormatUtils.str2Long("2009-05-01", false);
+ final long endTimestamp = System.currentTimeMillis();
+
+ // 閫氳繃鏃堕棿鎴冲垵濮嬪寲鏃ユ湡锛屾绉掔骇鍒�
+ beginDatePicker = new CustomDatePicker(this, "閫夋嫨寮�濮嬫椂闂�", new CustomDatePicker.Callback() {
+ @Override
+ public void onTimeSelected(long timestamp) {
+ beginTime = timestamp;
+ endDatePicker.show(timestamp);
+ }
+ }, beginTimestamp, endTimestamp);
+ // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂�
+ beginDatePicker.setCancelable(false);
+ // 涓嶆樉绀烘椂鍜屽垎
+ beginDatePicker.setCanShowPreciseTime(false);
+ // 涓嶅厑璁稿惊鐜粴鍔�
+ beginDatePicker.setScrollLoop(false);
+ // 涓嶅厑璁告粴鍔ㄥ姩鐢�
+ beginDatePicker.setCanShowAnim(false);
+
+ endDatePicker = new CustomDatePicker(this, "閫夋嫨缁撴潫鏃堕棿", new CustomDatePicker.Callback() {
+ @Override
+ public void onTimeSelected(long timestamp) {
+ endTime = timestamp;
+ if ((endTime < beginTime) && endTime != beginTime) {
+ TipUtil.show(RechargeListActivityQHAlone.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+ } else {
+ endTime = endTime + (1000 * 60 * 60 * 24) - 1;
+ rechargeList.clear();
+ getList();
+ }
+ }
+ }, beginTimestamp, endTimestamp);
+ // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂�
+ endDatePicker.setCancelable(false);
+ // 涓嶆樉绀烘椂鍜屽垎
+ endDatePicker.setCanShowPreciseTime(false);
+ // 涓嶅厑璁稿惊鐜粴鍔�
+ endDatePicker.setScrollLoop(false);
+ // 涓嶅厑璁告粴鍔ㄥ姩鐢�
+ endDatePicker.setCanShowAnim(false);
+ }
+
+
+}
--
Gitblit v1.8.0