Commit 44998473 authored by 陈前's avatar 陈前

营销统计分组

parent fccb5c07
package com.xingdata.zzdpos.model;
import android.provider.MediaStore;
import com.chad.library.adapter.base.entity.SectionEntity;
import com.xingdata.zzdpos.base.BaseBean;
import java.util.Date;
public class Ticket implements BaseBean {
public class Ticket extends SectionEntity<MediaStore.Video> implements BaseBean {
private boolean isSelected;
......@@ -16,9 +19,19 @@ public class Ticket implements BaseBean {
isSelected = selected;
}
public Ticket(boolean isHeader, String header) {
super(isHeader, header);
}
public Ticket(MediaStore.Video video) {
super(video);
}
public Ticket() {
super(false, "");
}
/**
* 创建默认优惠卷(无优惠)
*
......@@ -32,6 +45,7 @@ public class Ticket implements BaseBean {
@Deprecated
public Ticket(Long l) {
super(false, "");
this.id = l;
this.ticketNo = l;
this.ticketValAmt = 0L;
......
......@@ -104,7 +104,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter {
mView.isShowLoading(true);
ApiFactory.Ticket.query(pageNumber, nowPageSize, 2).doFinally(()-> mView.isShowLoading(false))
.subscribe(ticketPager -> {
msListFragment.setData(ticketPager, ticketPager.isFirstPage());
msListFragment.setData(ticketPager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
......
......@@ -17,9 +17,9 @@ import java.util.List;
* Created by Administrator on 2017/12/26.
*/
public class StatisticsGroupAdapter extends BaseSectionQuickAdapter<VipRechargeOrder, BaseViewHolder> {
public class StatisticsRechargeGroupAdapter extends BaseSectionQuickAdapter<VipRechargeOrder, BaseViewHolder> {
public StatisticsGroupAdapter( List<VipRechargeOrder> data) {
public StatisticsRechargeGroupAdapter(List<VipRechargeOrder> data) {
super(R.layout.item_statistics, R.layout.item_string_head, data);
}
......
package com.xingdata.zzdpos.ui.statistics.adapter;
import android.widget.ImageView;
import com.blankj.utilcode.util.TimeUtils;
import com.chad.library.adapter.base.BaseSectionQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
/**
* Created by Administrator on 2017/12/26.
*/
public class StatisticsTicketGroupAdapter extends BaseSectionQuickAdapter<Ticket, BaseViewHolder> {
public StatisticsTicketGroupAdapter(List<Ticket> data) {
super(R.layout.item_statistics, R.layout.item_string_head, data);
}
@Override
protected void convertHead(BaseViewHolder helper, Ticket item) {
helper.setText(R.id.item_tv, item.header);
}
@Override
protected void convert(BaseViewHolder helper, Ticket item) {
helper.setText(R.id.tv_left_top, ConvertUtil.fenToYuanNoZero(item.getTicketValAmt()) + "元优惠券");
helper.setText(R.id.tv_left_bottom, TimeUtils.date2String(item.getCreateTime()));
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.ic_text_ticket);
}
}
\ No newline at end of file
......@@ -225,7 +225,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
return true;
}
if (mTicketSearchFragment.isAdded()) {
FragmentUtils.remove(mRechargeSearchFragment);
FragmentUtils.remove(mTicketSearchFragment);
return true;
}
mViewBinding.icTitle.edTitle.setText("");
......
......@@ -2,7 +2,6 @@ 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;
......@@ -13,32 +12,24 @@ 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.ui.statistics.adapter.StatisticsRechargeGroupAdapter;
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 StatisticsGroupAdapter mStatisticsGroupAdapter;
private StatisticsRechargeGroupAdapter mStatisticsGroupAdapter;
private int pagerNum;
private String monthDate;
......@@ -55,7 +46,7 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_recharge);
if (mStatisticsGroupAdapter == null) {
mStatisticsGroupAdapter = new StatisticsGroupAdapter(new ArrayList<>());
mStatisticsGroupAdapter = new StatisticsRechargeGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
......@@ -67,10 +58,13 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
mStatisticsGroupAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (!mStatisticsGroupAdapter.getData().get(position).isHeader) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
intent.putExtra(VipRechargeOrder.class.getName(), mStatisticsGroupAdapter.getData().get(position));
ActivityUtils.startActivity(intent);
}
}
});
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
......
......@@ -6,6 +6,7 @@ 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;
......@@ -14,17 +15,25 @@ import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsRechargeGroupAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketGroupAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.schedulers.Schedulers;
public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, FragmentMsListBinding> {
private StatisticsTicketAdapter mStatisticsTicketAdapter;
private StatisticsTicketGroupAdapter mStatisticsGroupAdapter;
private int pagerNum;
private String monthDate;
@Override
public int getLayoutId() {
......@@ -36,27 +45,30 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr
pagerNum = 1;
mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_ticket);
if (mStatisticsTicketAdapter == null) {
mStatisticsTicketAdapter = new StatisticsTicketAdapter(new ArrayList<>());
if (mStatisticsGroupAdapter == null) {
mStatisticsGroupAdapter = new StatisticsTicketGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsTicketAdapter);
mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
} else {
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsTicketAdapter);
mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
}
mStatisticsTicketAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
mStatisticsGroupAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (!mStatisticsGroupAdapter.getData().get(position).isHeader) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
intent.putExtra(Ticket.class.getName(), mStatisticsTicketAdapter.getData().get(position));
intent.putExtra(Ticket.class.getName(), mStatisticsGroupAdapter.getData().get(position));
ActivityUtils.startActivity(intent);
}
}
});
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsTicketAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
mStatisticsGroupAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
mPresenter.getTicketList(pagerNum, this);
}
......@@ -80,15 +92,15 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr
*/
public void setData(Pager<Ticket> pager, boolean isRefresh) {
if (isRefresh) {
mStatisticsTicketAdapter.setEnableLoadMore(true);
mStatisticsGroupAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
}
if (isRefresh) mStatisticsTicketAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mStatisticsTicketAdapter.addData(pager.getList());
if (pager.isLastPage()) mStatisticsTicketAdapter.loadMoreEnd(isRefresh);
else mStatisticsTicketAdapter.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 (mStatisticsTicketAdapter.getData().size() == 0) {
if (mStatisticsGroupAdapter.getData().size() == 0) {
mViewBinding.llEmpty.setVisibility(View.VISIBLE);
mViewBinding.statisticsRecycler.setVisibility(View.GONE);
} else {
......@@ -97,6 +109,36 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr
}
}
public void setData(Pager<Ticket> pager) {
if (pager.isFirstPage()) {
monthDate = "";
}
io.reactivex.Observable.create(new ObservableOnSubscribe<Pager<Ticket>>() {
@Override
public void subscribe(ObservableEmitter<Pager<Ticket>> e) throws Exception {
for (int i = 0; i < pager.getList().size(); i++) {
String m = TimeUtils.date2String(pager.getList().get(i).getCreateTime(), new SimpleDateFormat(StringUtil.defaultDatePattern));
if (!m.equals(monthDate)) {
monthDate = m;
pager.getList().add(i, new Ticket(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() {
......
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