Commit fccb5c07 authored by 陈前's avatar 陈前

优惠券统计分组

parent 2ff3135d
......@@ -92,6 +92,7 @@
android:name=".ui.manage.manageMenu.ManageMenuActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
<activity android:name=".ui.manage.replenishment.ReplenishmentActivity"></activity>
</application>
</manifest>
\ No newline at end of file
package com.xingdata.zzdpos.model;
import android.provider.MediaStore;
import com.chad.library.adapter.base.entity.SectionEntity;
import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.base.BaseBean;
......@@ -12,7 +15,7 @@ import java.util.List;
* Created by Administrator on 2017/12/15.
*/
public class VipRechargeOrder implements BaseOrderPrint, BaseBean {
public class VipRechargeOrder extends SectionEntity<MediaStore.Video> implements BaseOrderPrint, BaseBean {
private Long cardAmtPay;
private Long cardAmtSend;
private String orderNo;
......@@ -23,6 +26,17 @@ public class VipRechargeOrder implements BaseOrderPrint, BaseBean {
private String vipMobile;
private Long createTime;
public VipRechargeOrder(boolean isHeader, String header) {
super(isHeader, header);
}
public VipRechargeOrder(MediaStore.Video video) {
super(video);
}
public VipRechargeOrder() {
super(false, "");
}
public Long getCreateTime() {
return createTime;
}
......
package com.xingdata.zzdpos.ui.manage.replenishment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.xingdata.zzdpos.R;
public class ReplenishmentActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_replenishment);
}
}
......@@ -77,7 +77,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter {
mView.isShowLoading(true);
ApiFactory.Rctrace.queryRecharge(pageNumber, nowPageSize).doFinally(()-> mView.isShowLoading(false))
.subscribe(vipRechargeOrderPager -> {
msListFragment.setData(vipRechargeOrderPager, vipRechargeOrderPager.isFirstPage());
msListFragment.setData(vipRechargeOrderPager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
......
package com.xingdata.zzdpos.ui.statistics.adapter;
import android.support.v7.widget.RecyclerView;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseSectionQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
......@@ -13,20 +17,27 @@ import java.util.List;
* Created by Administrator on 2017/12/26.
*/
public class StatisticsGroupAdapter extends BaseSectionQuickAdapter<Saleorder, BaseViewHolder> {
public class StatisticsGroupAdapter extends BaseSectionQuickAdapter<VipRechargeOrder, BaseViewHolder> {
public StatisticsGroupAdapter(int layoutResId, int sectionHeadResId, List<Saleorder> data) {
super(layoutResId, sectionHeadResId, data);
public StatisticsGroupAdapter( List<VipRechargeOrder> data) {
super(R.layout.item_statistics, R.layout.item_string_head, data);
}
@Override
protected void convertHead(com.chad.library.adapter.base.BaseViewHolder helper, Saleorder item) {
protected void convertHead(com.chad.library.adapter.base.BaseViewHolder helper, VipRechargeOrder item) {
helper.setText(R.id.item_tv,item.header);
}
@Override
protected void convert(BaseViewHolder helper, Saleorder item) {
protected void convert(BaseViewHolder helper, VipRechargeOrder item) {
helper.setText(R.id.tv_left_top,item.getUserName());
helper.setText(R.id.tv_left_bottom,com.blankj.utilcode.util.TimeUtils.millis2String(item.getCreateTime()));
helper.setText(R.id.tv_right_top,"+"+ ConvertUtil.fenToYuan(item.getCardAmtPay(),false));
((ImageView)helper.getView(R.id.img_left)).setImageResource(R.mipmap.ic_text_recharge);
}
}
\ No newline at end of file
......@@ -2,26 +2,45 @@ package com.xingdata.zzdpos.ui.statistics.fragment.ms;
import android.content.Intent;
import android.database.Observable;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentMsListBinding;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsGroupAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsRechargeAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Scheduler;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
public class RechargeListFragment extends BaseFragment<StatisticsPresenter, FragmentMsListBinding> {
private StatisticsRechargeAdapter mStatisticsRechargeAdapter;
private StatisticsGroupAdapter mStatisticsGroupAdapter;
private int pagerNum;
private String monthDate;
@Override
......@@ -33,30 +52,33 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
public void initView() {
pagerNum = 1;
mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_recharge);
if (mStatisticsRechargeAdapter == null) {
mStatisticsRechargeAdapter = new StatisticsRechargeAdapter(new ArrayList<>());
if (mStatisticsGroupAdapter == null) {
mStatisticsGroupAdapter = new StatisticsGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsRechargeAdapter);
mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
} else {
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsRechargeAdapter);
mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
}
mStatisticsRechargeAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
mStatisticsGroupAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
intent.putExtra(VipRechargeOrder.class.getName(), mStatisticsRechargeAdapter.getData().get(position));
intent.putExtra(VipRechargeOrder.class.getName(), mStatisticsGroupAdapter.getData().get(position));
ActivityUtils.startActivity(intent);
}
});
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
mStatisticsGroupAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
mPresenter.getRechargeList(pagerNum, this);
}
private void onRefresh() {
......@@ -78,15 +100,15 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
*/
public void setData(Pager<VipRechargeOrder> pager, boolean isRefresh) {
if (isRefresh) {
mStatisticsRechargeAdapter.setEnableLoadMore(true);
mStatisticsGroupAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
}
if (isRefresh) mStatisticsRechargeAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mStatisticsRechargeAdapter.addData(pager.getList());
if (pager.isLastPage()) mStatisticsRechargeAdapter.loadMoreEnd(isRefresh);
else mStatisticsRechargeAdapter.loadMoreComplete();
if (isRefresh) mStatisticsGroupAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mStatisticsGroupAdapter.addData(pager.getList());
if (pager.isLastPage()) mStatisticsGroupAdapter.loadMoreEnd(isRefresh);
else mStatisticsGroupAdapter.loadMoreComplete();
if (mStatisticsRechargeAdapter.getData().size() == 0) {
if (mStatisticsGroupAdapter.getData().size() == 0) {
mViewBinding.llEmpty.setVisibility(View.VISIBLE);
mViewBinding.statisticsRecycler.setVisibility(View.GONE);
} else {
......@@ -95,9 +117,44 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
}
}
public void setData(Pager<VipRechargeOrder> pager) {
if (pager.isFirstPage()) {
monthDate = "";
}
io.reactivex.Observable.create(new ObservableOnSubscribe<Pager<VipRechargeOrder>>() {
@Override
public void subscribe(ObservableEmitter<Pager<VipRechargeOrder>> e) throws Exception {
for (int i = 0; i < pager.getList().size(); i++) {
String m = TimeUtils.millis2String(pager.getList().get(i).getCreateTime(), new SimpleDateFormat(StringUtil.defaultDatePattern));
if (!m.equals(monthDate)) {
monthDate = m;
pager.getList().add(i, new VipRechargeOrder(true, monthDate + ""));
i++;
}
}
e.onComplete();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).doOnComplete(new Action() {
@Override
public void run() throws Exception {
setData(pager, pager.isFirstPage());
}
}).subscribe();
}
@Override
public String getTabTitle() {
return "充值记录";
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity">
</android.support.constraint.ConstraintLayout>
......@@ -28,7 +28,6 @@
android:id="@+id/srl_product"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/all_padding"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......
......@@ -10,7 +10,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/white"
android:orientation="horizontal">
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/item_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="left"
android:paddingTop="@dimen/all_padding"
android:paddingBottom="@dimen/all_padding"
android:paddingStart="@dimen/all_padding_left_right"
android:singleLine="true"
android:text="北京店"
android:textColor="@color/black"
android:textSize="14sp" />
</RelativeLayout>
</layout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment