Commit 8afa25ee authored by zhang_z's avatar zhang_z

Merge remote-tracking branch 'origin/master'

parents 6e81cf77 c53d86cf
...@@ -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.zzdpos.base.BaseBean; import com.xingdata.zzdpos.base.BaseBean;
import java.util.Date; import java.util.Date;
public class Ticket implements BaseBean { public class Ticket extends SectionEntity<MediaStore.Video> implements BaseBean {
private boolean isSelected; private boolean isSelected;
...@@ -16,9 +19,19 @@ public class Ticket implements BaseBean { ...@@ -16,9 +19,19 @@ public class Ticket implements BaseBean {
isSelected = selected; isSelected = selected;
} }
public Ticket(boolean isHeader, String header) {
super(isHeader, header);
}
public Ticket(MediaStore.Video video) {
super(video);
}
public Ticket() { public Ticket() {
super(false, "");
} }
/** /**
* 创建默认优惠卷(无优惠) * 创建默认优惠卷(无优惠)
* *
...@@ -32,6 +45,7 @@ public class Ticket implements BaseBean { ...@@ -32,6 +45,7 @@ public class Ticket implements BaseBean {
@Deprecated @Deprecated
public Ticket(Long l) { public Ticket(Long l) {
super(false, "");
this.id = l; this.id = l;
this.ticketNo = l; this.ticketNo = l;
this.ticketValAmt = 0L; this.ticketValAmt = 0L;
......
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);
}
}
...@@ -92,7 +92,6 @@ public class SplashActivity extends BaseActivity<com.xingdata.zzdpos.ui.splash.S ...@@ -92,7 +92,6 @@ public class SplashActivity extends BaseActivity<com.xingdata.zzdpos.ui.splash.S
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
} }
} }
...@@ -49,7 +49,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter { ...@@ -49,7 +49,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter {
}) })
.subscribe(orderlist -> { .subscribe(orderlist -> {
fragment.setData(orderlist, orderlist.isFirstPage()); fragment.setData(orderlist);
}, throwable -> { }, throwable -> {
ToastUtils.showShort(throwable.getMessage()); ToastUtils.showShort(throwable.getMessage());
}); });
...@@ -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());
}); });
...@@ -104,7 +104,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter { ...@@ -104,7 +104,7 @@ public class StatisticsPresenter extends StatisticsContract.Presenter {
mView.isShowLoading(true); mView.isShowLoading(true);
ApiFactory.Ticket.query(pageNumber, nowPageSize, 2).doFinally(()-> mView.isShowLoading(false)) ApiFactory.Ticket.query(pageNumber, nowPageSize, 2).doFinally(()-> mView.isShowLoading(false))
.subscribe(ticketPager -> { .subscribe(ticketPager -> {
msListFragment.setData(ticketPager, ticketPager.isFirstPage()); msListFragment.setData(ticketPager);
}, throwable -> { }, throwable -> {
ToastUtils.showShort(throwable.getMessage()); ToastUtils.showShort(throwable.getMessage());
}); });
......
package com.xingdata.zzdpos.ui.statistics.adapter;
import android.support.v7.widget.RecyclerView;
import com.chad.library.adapter.base.BaseSectionQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xingdata.zzdpos.model.Saleorder;
import java.util.List;
/**
* Created by Administrator on 2017/12/26.
*/
public class StatisticsGroupAdapter extends BaseSectionQuickAdapter<Saleorder, BaseViewHolder> {
public StatisticsGroupAdapter(int layoutResId, int sectionHeadResId, List<Saleorder> data) {
super(layoutResId, sectionHeadResId, data);
}
@Override
protected void convertHead(com.chad.library.adapter.base.BaseViewHolder helper, Saleorder item) {
}
@Override
protected void convert(BaseViewHolder helper, Saleorder item) {
}
}
\ No newline at end of file
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.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* Created by Administrator on 2017/12/26.
*/
public class StatisticsOrderGroupAdapter extends BaseSectionQuickAdapter<Saleorder, BaseViewHolder> {
public StatisticsOrderGroupAdapter(List<Saleorder> data) {
super(R.layout.item_statistics, R.layout.item_string_head, data);
}
@Override
protected void convertHead(BaseViewHolder helper, Saleorder item) {
helper.setText(R.id.item_tv, item.header);
}
@Override
protected void convert(BaseViewHolder helper, Saleorder item) {
if (item.getFirstName() != null) {
helper.setText(R.id.tv_left_top, item.getFirstName());
} else {
helper.setText(R.id.tv_left_top, item.getOrderNo());
}
if (item.getOrderPayAmt() > 0) {
helper.setText(R.id.tv_right_top, "+" + item.getPayAmt());
} else {
helper.setText(R.id.tv_right_top, item.getPayAmt());
}
helper.setText(R.id.tv_left_bottom, com.blankj.utilcode.util.TimeUtils.millis2String(item.getCreateTime(), new SimpleDateFormat(StringUtil.mmddhhmmmDatePattern)));
switch (item.getPayType()) {
case C.PAY_CHANNEL.CASH:
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.pay_cash);
break;
case C.PAY_CHANNEL.WECHAT:
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.pay_wechat);
break;
case C.PAY_CHANNEL.ALI:
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.pay_alipay);
break;
case C.PAY_CHANNEL.BANK:
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.pay_card);
break;
case C.PAY_CHANNEL.CARD:
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.pay_membershipcard);
break;
case C.PAY_CHANNEL.TALLY:
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.pay_credit);
break;
}
}
}
\ No newline at end of file
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 com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* Created by Administrator on 2017/12/26.
*/
public class StatisticsRechargeGroupAdapter extends BaseSectionQuickAdapter<VipRechargeOrder, BaseViewHolder> {
public StatisticsRechargeGroupAdapter(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, VipRechargeOrder item) {
helper.setText(R.id.item_tv,item.header);
}
@Override
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(),new SimpleDateFormat(StringUtil.mmddhhmmmDatePattern)));
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
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 com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
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(),new SimpleDateFormat(StringUtil.mmddhhmmmDatePattern)));
((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 ...@@ -225,7 +225,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
return true; return true;
} }
if (mTicketSearchFragment.isAdded()) { if (mTicketSearchFragment.isAdded()) {
FragmentUtils.remove(mRechargeSearchFragment); FragmentUtils.remove(mTicketSearchFragment);
return true; return true;
} }
mViewBinding.icTitle.edTitle.setText(""); mViewBinding.icTitle.edTitle.setText("");
......
...@@ -6,6 +6,7 @@ import android.support.v7.widget.LinearLayoutManager; ...@@ -6,6 +6,7 @@ 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;
...@@ -14,14 +15,23 @@ import com.xingdata.zzdpos.model.Pager; ...@@ -14,14 +15,23 @@ import com.xingdata.zzdpos.model.Pager;
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.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.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 RechargeListFragment extends BaseFragment<StatisticsPresenter, FragmentMsListBinding> { public class RechargeListFragment extends BaseFragment<StatisticsPresenter, FragmentMsListBinding> {
private StatisticsRechargeAdapter mStatisticsRechargeAdapter; private StatisticsRechargeGroupAdapter mStatisticsGroupAdapter;
private int pagerNum; private int pagerNum;
private String monthDate;
@Override @Override
...@@ -33,30 +43,36 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag ...@@ -33,30 +43,36 @@ 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 StatisticsRechargeGroupAdapter(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); if (!mStatisticsGroupAdapter.getData().get(position).isHeader) {
intent.putExtra(VipRechargeOrder.class.getName(), mStatisticsRechargeAdapter.getData().get(position)); Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
ActivityUtils.startActivity(intent); intent.putExtra(VipRechargeOrder.class.getName(), mStatisticsGroupAdapter.getData().get(position));
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 +94,15 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag ...@@ -78,15 +94,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 +111,44 @@ public class RechargeListFragment extends BaseFragment<StatisticsPresenter, Frag ...@@ -95,9 +111,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();
}
} }
...@@ -6,6 +6,7 @@ import android.support.v7.widget.LinearLayoutManager; ...@@ -6,6 +6,7 @@ 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;
...@@ -14,17 +15,25 @@ import com.xingdata.zzdpos.model.Pager; ...@@ -14,17 +15,25 @@ import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
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.StatisticsTicketAdapter; import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsRechargeGroupAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketAdapter; import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketGroupAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList; 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> { public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, FragmentMsListBinding> {
private StatisticsTicketAdapter mStatisticsTicketAdapter; private StatisticsTicketGroupAdapter mStatisticsGroupAdapter;
private int pagerNum; private int pagerNum;
private String monthDate;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -36,27 +45,30 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr ...@@ -36,27 +45,30 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr
pagerNum = 1; pagerNum = 1;
mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_ticket); mViewBinding.tvEmpty.setText(R.string.statistics_search_empty_ticket);
if (mStatisticsTicketAdapter == null) { if (mStatisticsGroupAdapter == null) {
mStatisticsTicketAdapter = new StatisticsTicketAdapter(new ArrayList<>()); mStatisticsGroupAdapter = new StatisticsTicketGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsTicketAdapter); mViewBinding.statisticsRecycler.setAdapter(mStatisticsGroupAdapter);
} else { } else {
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity())); 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 @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); if (!mStatisticsGroupAdapter.getData().get(position).isHeader) {
intent.putExtra(Ticket.class.getName(), mStatisticsTicketAdapter.getData().get(position)); Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
ActivityUtils.startActivity(intent); intent.putExtra(Ticket.class.getName(), mStatisticsGroupAdapter.getData().get(position));
ActivityUtils.startActivity(intent);
}
} }
}); });
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh); mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsTicketAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler); mStatisticsGroupAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
mPresenter.getTicketList(pagerNum, this); mPresenter.getTicketList(pagerNum, this);
} }
...@@ -80,15 +92,15 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr ...@@ -80,15 +92,15 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr
*/ */
public void setData(Pager<Ticket> pager, boolean isRefresh) { public void setData(Pager<Ticket> pager, boolean isRefresh) {
if (isRefresh) { if (isRefresh) {
mStatisticsTicketAdapter.setEnableLoadMore(true); mStatisticsGroupAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false); mViewBinding.srlProduct.setRefreshing(false);
} }
if (isRefresh) mStatisticsTicketAdapter.setNewData(pager.getList()); if (isRefresh) mStatisticsGroupAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mStatisticsTicketAdapter.addData(pager.getList()); else if (pager.getList().size() > 0) mStatisticsGroupAdapter.addData(pager.getList());
if (pager.isLastPage()) mStatisticsTicketAdapter.loadMoreEnd(isRefresh); if (pager.isLastPage()) mStatisticsGroupAdapter.loadMoreEnd(isRefresh);
else mStatisticsTicketAdapter.loadMoreComplete(); else mStatisticsGroupAdapter.loadMoreComplete();
if (mStatisticsTicketAdapter.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 {
...@@ -97,6 +109,36 @@ public class UsedTicketListFragment extends BaseFragment<StatisticsPresenter, Fr ...@@ -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 @Override
public String getTabTitle() { public String getTabTitle() {
......
...@@ -8,6 +8,7 @@ import android.view.View; ...@@ -8,6 +8,7 @@ import android.view.View;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
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;
...@@ -21,18 +22,29 @@ import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity; ...@@ -21,18 +22,29 @@ 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.StatisticsOrderAdapter; import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderGroupAdapter;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
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.Calendar;
import java.util.List; import java.util.List;
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 OrderListFragment extends BaseFragment<StatisticsPresenter, FragmentOrderListBinding> { public class OrderListFragment extends BaseFragment<StatisticsPresenter, FragmentOrderListBinding> {
private StatisticsOrderAdapter mStatisticsAdapter; private StatisticsOrderGroupAdapter mStatisticsAdapter;
private Long monthDateStart; private Long monthDateStart;
private Long monthDateEnd; private Long monthDateEnd;
private int pagerNum ; private int pagerNum ;
private String monthDate;
public OrderListFragment setDate(Long end, Long start) { public OrderListFragment setDate(Long end, Long start) {
monthDateStart = start; monthDateStart = start;
...@@ -49,27 +61,27 @@ public class OrderListFragment extends BaseFragment<StatisticsPresenter, Fragmen ...@@ -49,27 +61,27 @@ public class OrderListFragment extends BaseFragment<StatisticsPresenter, Fragmen
@Override @Override
public void initView() { public void initView() {
pagerNum=1; pagerNum=1;
Calendar calendar = Calendar.getInstance(); // Calendar calendar = Calendar.getInstance();
//获得当前时间的月份,月份从0开始所以结果要加1 ////获得当前时间的月份,月份从0开始所以结果要加1
int monthNow = calendar.get(Calendar.MONTH) + 1; // int monthNow = calendar.get(Calendar.MONTH) + 1;
calendar.setTimeInMillis(monthDateStart); // calendar.setTimeInMillis(monthDateStart);
int monthStart = calendar.get(Calendar.MONTH) + 1; // int monthStart = calendar.get(Calendar.MONTH) + 1;
if (monthStart == monthNow) { // if (monthStart == monthNow) {
mViewBinding.setMonth("本月"); // mViewBinding.setMonth("本月");
} else { // } else {
mViewBinding.setMonth(monthStart + "月"); // mViewBinding.setMonth(monthStart + "月");
} // }
mViewBinding.setAmt("收入:¥230.00"); // mViewBinding.setAmt("收入:¥230.00");
mViewBinding.llTitle.setOnClickListener(new OnClickListener() { // mViewBinding.llTitle.setOnClickListener(new OnClickListener() {
@Override // @Override
protected void myOnClickListener(View v) { // protected void myOnClickListener(View v) {
pop(); // pop();
} // }
}); // });
mViewBinding.tvEmpty.setText(R.string.statistics_search_empty); mViewBinding.tvEmpty.setText(R.string.statistics_search_empty);
if (mStatisticsAdapter == null) { if (mStatisticsAdapter == null) {
mStatisticsAdapter = new StatisticsOrderAdapter(new ArrayList<>()); mStatisticsAdapter = new StatisticsOrderGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsAdapter); mViewBinding.statisticsRecycler.setAdapter(mStatisticsAdapter);
...@@ -128,4 +140,36 @@ public class OrderListFragment extends BaseFragment<StatisticsPresenter, Fragmen ...@@ -128,4 +140,36 @@ public class OrderListFragment extends BaseFragment<StatisticsPresenter, Fragmen
mViewBinding.statisticsRecycler.setVisibility(View.VISIBLE); mViewBinding.statisticsRecycler.setVisibility(View.VISIBLE);
} }
} }
public void setData(Pager<Saleorder> pager) {
if (pager.isFirstPage()) {
monthDate = "";
}
io.reactivex.Observable.create(new ObservableOnSubscribe<Pager<Saleorder>>() {
@Override
public void subscribe(ObservableEmitter<Pager<Saleorder>> 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 Saleorder(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();
}
} }
...@@ -16,6 +16,7 @@ import java.util.Date; ...@@ -16,6 +16,7 @@ import java.util.Date;
public class StringUtil { public class StringUtil {
public static String defaultDatePattern = "yyyy-MM-dd"; public static String defaultDatePattern = "yyyy-MM-dd";
public static String mmddhhmmmDatePattern = "MM-dd HH:mm";
/** /**
......
<?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>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width" android:layout_height="@dimen/all_line_width"
android:background="@drawable/red_border"></View> android:background="@color/gray_huanggai"></View>
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
android:id="@+id/tv_status" android:id="@+id/tv_status"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="2"
android:text="启用状态:" android:text="启用状态:"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/et_textsize"/> android:textSize="@dimen/et_textsize"/>
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
<RadioGroup <RadioGroup
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="5"
android:checkedButton="@id/rb_suspended" android:checkedButton="@id/rb_suspended"
android:orientation="horizontal"> android:orientation="horizontal">
......
...@@ -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"
......
...@@ -24,33 +24,33 @@ ...@@ -24,33 +24,33 @@
<!-- TODO: Update blank fragmfragment_integral_indexyout --> <!-- TODO: Update blank fragmfragment_integral_indexyout -->
<LinearLayout <!--<LinearLayout-->
android:id="@+id/ll_title" <!--android:id="@+id/ll_title"-->
android:layout_width="match_parent" <!--android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!--android:layout_height="wrap_content"-->
android:orientation="horizontal" <!--android:orientation="horizontal"-->
android:weightSum="2" <!--android:weightSum="2"-->
app:layout_constraintEnd_toEndOf="parent" <!--app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!--app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toTopOf="parent"> <!--app:layout_constraintTop_toTopOf="parent">-->
<TextView <!--<TextView-->
android:layout_width="0dp" <!--android:layout_width="0dp"-->
android:layout_height="wrap_content" <!--android:layout_height="wrap_content"-->
android:layout_weight="1" <!--android:layout_weight="1"-->
android:gravity="left" <!--android:gravity="left"-->
android:padding="@dimen/all_padding" <!--android:padding="@dimen/all_padding"-->
android:text="@{month}" /> <!--android:text="@{month}" />-->
<TextView <!--<TextView-->
android:layout_width="0dp" <!--android:layout_width="0dp"-->
android:layout_height="wrap_content" <!--android:layout_height="wrap_content"-->
android:layout_weight="1" <!--android:layout_weight="1"-->
android:gravity="right" <!--android:gravity="right"-->
android:padding="@dimen/all_padding" <!--android:padding="@dimen/all_padding"-->
android:text="@{amt}" <!--android:text="@{amt}"-->
android:visibility="invisible" /> <!--android:visibility="invisible" />-->
</LinearLayout> <!--</LinearLayout>-->
<android.support.v4.widget.SwipeRefreshLayout <android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_product" android:id="@+id/srl_product"
......
...@@ -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