Commit fccb5c07 authored by 陈前's avatar 陈前

优惠券统计分组

parent 2ff3135d
...@@ -92,6 +92,7 @@ ...@@ -92,6 +92,7 @@
android:name=".ui.manage.manageMenu.ManageMenuActivity" android:name=".ui.manage.manageMenu.ManageMenuActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden" android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" /> android:windowSoftInputMode="adjustUnspecified|stateHidden" />
<activity android:name=".ui.manage.replenishment.ReplenishmentActivity"></activity>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
package com.xingdata.zzdpos.model; 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.BaseGoodPrint;
import com.xingdata.api.print.entity.BaseOrderPrint; import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.base.BaseBean; import com.xingdata.zzdpos.base.BaseBean;
...@@ -12,7 +15,7 @@ import java.util.List; ...@@ -12,7 +15,7 @@ import java.util.List;
* Created by Administrator on 2017/12/15. * 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 cardAmtPay;
private Long cardAmtSend; private Long cardAmtSend;
private String orderNo; private String orderNo;
...@@ -23,6 +26,17 @@ public class VipRechargeOrder implements BaseOrderPrint, BaseBean { ...@@ -23,6 +26,17 @@ public class VipRechargeOrder implements BaseOrderPrint, BaseBean {
private String vipMobile; private String vipMobile;
private Long createTime; 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() { public Long getCreateTime() {
return createTime; 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 { ...@@ -77,7 +77,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter {
mView.isShowLoading(true); mView.isShowLoading(true);
ApiFactory.Rctrace.queryRecharge(pageNumber, nowPageSize).doFinally(()-> mView.isShowLoading(false)) ApiFactory.Rctrace.queryRecharge(pageNumber, nowPageSize).doFinally(()-> mView.isShowLoading(false))
.subscribe(vipRechargeOrderPager -> { .subscribe(vipRechargeOrderPager -> {
msListFragment.setData(vipRechargeOrderPager, vipRechargeOrderPager.isFirstPage()); msListFragment.setData(vipRechargeOrderPager);
}, throwable -> { }, throwable -> {
ToastUtils.showShort(throwable.getMessage()); ToastUtils.showShort(throwable.getMessage());
}); });
......
package com.xingdata.zzdpos.ui.statistics.adapter; package com.xingdata.zzdpos.ui.statistics.adapter;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseSectionQuickAdapter; import com.chad.library.adapter.base.BaseSectionQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List; import java.util.List;
...@@ -13,20 +17,27 @@ import java.util.List; ...@@ -13,20 +17,27 @@ import java.util.List;
* Created by Administrator on 2017/12/26. * 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) { public StatisticsGroupAdapter( List<VipRechargeOrder> data) {
super(layoutResId, sectionHeadResId, data); super(R.layout.item_statistics, R.layout.item_string_head, data);
} }
@Override @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 @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; ...@@ -2,26 +2,45 @@ package com.xingdata.zzdpos.ui.statistics.fragment.ms;
import android.content.Intent; import android.content.Intent;
import android.database.Observable;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.view.View; import android.view.View;
import com.blankj.utilcode.util.ActivityUtils; import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentMsListBinding; import com.xingdata.zzdpos.databinding.FragmentMsListBinding;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder; import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity; import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter; 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.StatisticsRechargeAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList; 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> { public class RechargeListFragment extends BaseFragment<StatisticsPresenter, FragmentMsListBinding> {
private StatisticsRechargeAdapter mStatisticsRechargeAdapter; private StatisticsGroupAdapter mStatisticsGroupAdapter;
private int pagerNum; private int pagerNum;
private String monthDate;
@Override @Override
...@@ -33,30 +52,33 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag ...@@ -33,30 +52,33 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
public void initView() { public void initView() {
pagerNum = 1; pagerNum = 1;
mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_recharge); mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_recharge);
if (mStatisticsRechargeAdapter == null) { if (mStatisticsGroupAdapter == null) {
mStatisticsRechargeAdapter = new StatisticsRechargeAdapter(new ArrayList<>()); mStatisticsGroupAdapter = new StatisticsGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsRechargeAdapter); mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
} else { } else {
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity())); 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 @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class); 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); ActivityUtils.startActivity(intent);
} }
}); });
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh); mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler); mStatisticsGroupAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
mPresenter.getRechargeList(pagerNum, this); mPresenter.getRechargeList(pagerNum, this);
} }
private void onRefresh() { private void onRefresh() {
...@@ -78,15 +100,15 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag ...@@ -78,15 +100,15 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag
*/ */
public void setData(Pager<VipRechargeOrder> pager, boolean isRefresh) { public void setData(Pager<VipRechargeOrder> pager, boolean isRefresh) {
if (isRefresh) { if (isRefresh) {
mStatisticsRechargeAdapter.setEnableLoadMore(true); mStatisticsGroupAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false); mViewBinding.srlProduct.setRefreshing(false);
} }
if (isRefresh) mStatisticsRechargeAdapter.setNewData(pager.getList()); if (isRefresh) mStatisticsGroupAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mStatisticsRechargeAdapter.addData(pager.getList()); else if (pager.getList().size() > 0) mStatisticsGroupAdapter.addData(pager.getList());
if (pager.isLastPage()) mStatisticsRechargeAdapter.loadMoreEnd(isRefresh); if (pager.isLastPage()) mStatisticsGroupAdapter.loadMoreEnd(isRefresh);
else mStatisticsRechargeAdapter.loadMoreComplete(); else mStatisticsGroupAdapter.loadMoreComplete();
if (mStatisticsRechargeAdapter.getData().size() == 0) { if (mStatisticsGroupAdapter.getData().size() == 0) {
mViewBinding.llEmpty.setVisibility(View.VISIBLE); mViewBinding.llEmpty.setVisibility(View.VISIBLE);
mViewBinding.statisticsRecycler.setVisibility(View.GONE); mViewBinding.statisticsRecycler.setVisibility(View.GONE);
} else { } else {
...@@ -95,9 +117,44 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag ...@@ -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 @Override
public String getTabTitle() { public String getTabTitle() {
return "充值记录"; 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 @@ ...@@ -28,7 +28,6 @@
android:id="@+id/srl_product" android:id="@+id/srl_product"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/all_padding"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin" android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/white" android:background="@color/white"
android:orientation="horizontal"> 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