Commit 8c7684aa authored by 陈前's avatar 陈前

Merge remote-tracking branch 'origin/master'

parents ae4a2d6f a25b37a4
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<w>liubei</w> <w>liubei</w>
<w>lvzhi</w> <w>lvzhi</w>
<w>mawu</w> <w>mawu</w>
<w>nong</w>
<w>patt</w> <w>patt</w>
<w>shixiu</w> <w>shixiu</w>
<w>sunquan</w> <w>sunquan</w>
...@@ -25,6 +26,7 @@ ...@@ -25,6 +26,7 @@
<w>yuji</w> <w>yuji</w>
<w>zhangfei</w> <w>zhangfei</w>
<w>zhouyu</w> <w>zhouyu</w>
<w>zzdpos</w>
</words> </words>
</dictionary> </dictionary>
</component> </component>
\ No newline at end of file
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
android:label="@string/title_activity_ticket" android:label="@string/title_activity_ticket"
android:theme="@style/AppTheme" /> android:theme="@style/AppTheme" />
<activity <activity
android:name=".ui.sendTicke.SendTicketActivity" android:name=".ui.sendticke.SendTicketActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden" android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:label="@string/title_activity_ticket" android:label="@string/title_activity_ticket"
android:theme="@style/AppTheme" /> android:theme="@style/AppTheme" />
......
...@@ -49,6 +49,13 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends ...@@ -49,6 +49,13 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends
this.mOnItemClickListener = listener; this.mOnItemClickListener = listener;
} }
public T getSelectedItemObject() {
if (mSelectedPosition > 0) {
return getData().get(mSelectedPosition);
} else {
return null;
}
}
public int getSelectedPosition() { public int getSelectedPosition() {
return mSelectedPosition; return mSelectedPosition;
......
package com.xingdata.zzdpos.model; package com.xingdata.zzdpos.model;
import com.alibaba.fastjson.annotation.JSONField;
import com.bigkoo.pickerview.model.IPickerViewData; import com.bigkoo.pickerview.model.IPickerViewData;
import com.xingdata.zzdpos.base.BaseBean; import com.xingdata.zzdpos.base.BaseBean;
import com.xingdata.zzdpos.base.BaseModel; import com.xingdata.zzdpos.base.BaseModel;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.Ignore;
import io.realm.annotations.Index; import io.realm.annotations.Index;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
...@@ -13,6 +15,9 @@ import io.realm.annotations.PrimaryKey; ...@@ -13,6 +15,9 @@ import io.realm.annotations.PrimaryKey;
*/ */
public class Level extends RealmObject implements BaseModel, BaseBean, IPickerViewData { public class Level extends RealmObject implements BaseModel, BaseBean, IPickerViewData {
@JSONField(serialize = false)
@Ignore
private boolean isSelect = false;
@PrimaryKey @PrimaryKey
private Long id; private Long id;
...@@ -139,6 +144,13 @@ public class Level extends RealmObject implements BaseModel, BaseBean, IPickerVi ...@@ -139,6 +144,13 @@ public class Level extends RealmObject implements BaseModel, BaseBean, IPickerVi
this.vipUpgradeAmtTc = vipUpgradeAmtTc; this.vipUpgradeAmtTc = vipUpgradeAmtTc;
} }
public boolean isSelect() {
return isSelect;
}
public void setSelect(boolean select) {
isSelect = select;
}
@Override @Override
public Long getSyncId() { public Long getSyncId() {
......
...@@ -45,7 +45,7 @@ public class Saleorder implements BaseModel, BaseBean, BaseOrderPrint { ...@@ -45,7 +45,7 @@ public class Saleorder implements BaseModel, BaseBean, BaseOrderPrint {
if (param.offFlag) { if (param.offFlag) {
param.offBal = vipOffAmt; param.offBal = vipOffAmt;
} }
param.boundFlag = this.boundNum > 0; param.boundFlag = isUseBound;
if (param.boundFlag) { if (param.boundFlag) {
param.boundBal = this.boundAmt; param.boundBal = this.boundAmt;
param.boundCount = this.boundNum; param.boundCount = this.boundNum;
...@@ -384,10 +384,10 @@ public class Saleorder implements BaseModel, BaseBean, BaseOrderPrint { ...@@ -384,10 +384,10 @@ public class Saleorder implements BaseModel, BaseBean, BaseOrderPrint {
//积分 //积分
long poIntegers = orderPayAmt / 10; long poIntegers = orderPayAmt / 10;
if (poIntegers > vipBound) poIntegers = vipBound; if (poIntegers > vipBound) poIntegers = vipBound;
this.boundNum = isUseBound ? poIntegers : 0; this.boundNum = poIntegers;
this.boundAmt = isUseBound ? poIntegers : 0; this.boundAmt = poIntegers;
//积分优惠后金额 //积分优惠后金额
this.orderPayAmt -= this.boundAmt; this.orderPayAmt -= isUseBound ? this.boundAmt : 0;
//抹零 //抹零
//抹零后金额 //抹零后金额
...@@ -1077,6 +1077,10 @@ public class Saleorder implements BaseModel, BaseBean, BaseOrderPrint { ...@@ -1077,6 +1077,10 @@ public class Saleorder implements BaseModel, BaseBean, BaseOrderPrint {
this.payType = payType; this.payType = payType;
} }
public long getMsDisAmt() {
return msDisAmt;
}
/** /**
* 优惠项目实体类 * 优惠项目实体类
*/ */
......
...@@ -31,8 +31,8 @@ public class Ticket { ...@@ -31,8 +31,8 @@ public class Ticket {
@Deprecated @Deprecated
public Ticket(Long l) { public Ticket(Long l) {
this.ticketNo = l; this.ticketNo = l;
this.ticketValAmt = 3000L; this.ticketValAmt = 0L;
this.truleOrderAmt = 5000L; this.truleOrderAmt = 0L;
this.mac = "MAC"; this.mac = "MAC";
} }
...@@ -54,7 +54,7 @@ public class Ticket { ...@@ -54,7 +54,7 @@ public class Ticket {
private Long vipId; private Long vipId;
private Date ticketExp; private Long ticketExp;
private Long ticketValAmt; private Long ticketValAmt;
...@@ -122,11 +122,11 @@ public class Ticket { ...@@ -122,11 +122,11 @@ public class Ticket {
this.vipId = vipId; this.vipId = vipId;
} }
public Date getTicketExp() { public Long getTicketExp() {
return ticketExp; return ticketExp;
} }
public void setTicketExp(Date ticketExp) { public void setTicketExp(Long ticketExp) {
this.ticketExp = ticketExp; this.ticketExp = ticketExp;
} }
......
...@@ -9,6 +9,16 @@ import com.xingdata.zzdpos.base.BaseModel; ...@@ -9,6 +9,16 @@ import com.xingdata.zzdpos.base.BaseModel;
*/ */
public class Trule implements BaseModel, BaseBean { public class Trule implements BaseModel, BaseBean {
private boolean isSelect = false;
public boolean isSelect() {
return isSelect;
}
public void setSelect(boolean select) {
isSelect = select;
}
private Long id; private Long id;
private Long issuerMapId; private Long issuerMapId;
......
package com.xingdata.zzdpos.ui.main.fragment; package com.xingdata.zzdpos.ui.main.fragment;
import android.content.Intent; import android.content.Intent;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
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.ActivityUtils;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
...@@ -16,10 +12,11 @@ import com.xingdata.zzdpos.base.BaseFragment; ...@@ -16,10 +12,11 @@ import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentCasherBinding; import com.xingdata.zzdpos.databinding.FragmentCasherBinding;
import com.xingdata.zzdpos.ui.main.MainPresenter; import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.main.adapter.MenuRecyclerAdapter; import com.xingdata.zzdpos.ui.main.adapter.MenuRecyclerAdapter;
import com.xingdata.zzdpos.ui.vip.VipActivity;
import com.xingdata.zzdpos.ui.payment.PaymentActivity; import com.xingdata.zzdpos.ui.payment.PaymentActivity;
import com.xingdata.zzdpos.ui.sendticke.SendTicketActivity;
import com.xingdata.zzdpos.ui.splash.SplashActivity; import com.xingdata.zzdpos.ui.splash.SplashActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsActivity; import com.xingdata.zzdpos.ui.statistics.StatisticsActivity;
import com.xingdata.zzdpos.ui.vip.VipActivity;
import com.xingdata.zzdpos.util.MyMenuItemDecoration; import com.xingdata.zzdpos.util.MyMenuItemDecoration;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
...@@ -39,7 +36,8 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi ...@@ -39,7 +36,8 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
@Override @Override
public void initView() { public void initView() {
mViewBinding.fragmentCasherRecycler.setLayoutManager(new GridLayoutManager(getActivity(), 2)); mViewBinding.fragmentCasherRecycler.setLayoutManager(new GridLayoutManager(getActivity(),
2));
integers = new ArrayList<>(); integers = new ArrayList<>();
integers.add(101); integers.add(101);
integers.add(102); integers.add(102);
...@@ -49,13 +47,14 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi ...@@ -49,13 +47,14 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
integers.add(106); integers.add(106);
mMenuRecyclerAdapter = new MenuRecyclerAdapter(getActivity(), integers); mMenuRecyclerAdapter = new MenuRecyclerAdapter(getActivity(), integers);
mMenuRecyclerAdapter.bindToRecyclerView(mViewBinding.fragmentCasherRecycler); mMenuRecyclerAdapter.bindToRecyclerView(mViewBinding.fragmentCasherRecycler);
mViewBinding.fragmentCasherRecycler.addItemDecoration(new MyMenuItemDecoration(getActivity(), 5, getResources().getColor(R.color.golden_yuji))); mViewBinding.fragmentCasherRecycler.addItemDecoration(new MyMenuItemDecoration
(getActivity(), 5, getResources().getColor(R.color.golden_yuji)));
mMenuRecyclerAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { mMenuRecyclerAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
switch ((int) adapter.getData().get(position)) { switch ((int) adapter.getData().get(position)) {
case C.MENU.MENU_VIP://会员 case C.MENU.MENU_VIP://会员
ActivityUtils.startActivity(new Intent(getActivity(),VipActivity.class)); ActivityUtils.startActivity(new Intent(getActivity(), VipActivity.class));
break; break;
case C.MENU.MENU_RECHARGE://充值 case C.MENU.MENU_RECHARGE://充值
...@@ -64,7 +63,7 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi ...@@ -64,7 +63,7 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
break; break;
case C.MENU.MENU_TICKET://优惠券 case C.MENU.MENU_TICKET://优惠券
ActivityUtils.startActivity(getActivity(), SendTicketActivity.class);
break; break;
case C.MENU.MENU_STATISTICS://统计 case C.MENU.MENU_STATISTICS://统计
ActivityUtils.startActivity(getActivity(), StatisticsActivity.class); ActivityUtils.startActivity(getActivity(), StatisticsActivity.class);
......
...@@ -4,7 +4,6 @@ package com.xingdata.zzdpos.ui.payment.view; ...@@ -4,7 +4,6 @@ package com.xingdata.zzdpos.ui.payment.view;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.blankj.utilcode.util.LogUtils;
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.base.BasePresenter; import com.xingdata.zzdpos.base.BasePresenter;
...@@ -58,7 +57,6 @@ public class CalculatorView<P extends BasePresenter> extends BaseFragment<P, Vie ...@@ -58,7 +57,6 @@ public class CalculatorView<P extends BasePresenter> extends BaseFragment<P, Vie
settle(); settle();
break; break;
default: default:
LogUtils.e("mExp : " + mExp + "\nmValue : " + mValue + "\nmLast" + mLast);
if (view instanceof TextView) { if (view instanceof TextView) {
String str = ((TextView) view).getText().toString(); String str = ((TextView) view).getText().toString();
...@@ -71,13 +69,12 @@ public class CalculatorView<P extends BasePresenter> extends BaseFragment<P, Vie ...@@ -71,13 +69,12 @@ public class CalculatorView<P extends BasePresenter> extends BaseFragment<P, Vie
if (str.matches("[0-9]+") && mValue.split("[.]").length > 1 && mValue.split("[.]")[1].length() == 2) if (str.matches("[0-9]+") && mValue.split("[.]").length > 1 && mValue.split("[.]")[1].length() == 2)
return; return;
//限制小数点 //限制小数点
if ((mExp.length() == 0 || mValue.contains(".")) && str.matches("[.]")) if (mValue.contains(".") && str.matches("[.]"))
return; return;
//限制符号 //限制符号
if (mLast.matches("[+\\-×÷.]") && str.matches("[+\\-×÷.]")) if ((mExp.length() == 0 || mLast.matches("[+\\-×÷.]")) && str.matches("[+\\-×÷.]"))
return; return;
mLast = str; mLast = str;
mExp += str; mExp += str;
} }
......
package com.xingdata.zzdpos.ui.sendTicke;
import com.xingdata.zzdpos.ui.sendTicke.fragment.SendTickerIndexFragment;
/**
* Created by Administrator on 2017/11/24.
*/
public class SendTicketPresenter extends SendTicketContract.Presenter {
public SendTickerIndexFragment sendTickerIndexFragment = new SendTickerIndexFragment();
@Override
public void onAttached() {
}
}
package com.xingdata.zzdpos.ui.sendticke;
import com.xingdata.zzdpos.model.Level;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/12/25.
*/
public class SendTickerC {
public static List<Level> vipTypeList;
public static List<Level> getVipType() {
if (vipTypeList == null) {
vipTypeList = new ArrayList<>();
Level vipType = new Level();
vipType.setId(10000l);
vipType.setVipLevelName("全部会员");
Level vipTypeNowMonth = new Level();
vipTypeNowMonth.setId(10001l);
vipTypeNowMonth.setVipLevelName("本月生日");
Level vipTypeNextMonth = new Level();
vipTypeNextMonth.setId(10002l);
vipTypeNextMonth.setVipLevelName("下月生日");
Level vipTypeLoss = new Level();
vipTypeLoss.setId(10003l);
vipTypeLoss.setVipLevelName("流失会员");
vipTypeList.add(vipType);
vipTypeList.add(vipTypeNowMonth);
vipTypeList.add(vipTypeNextMonth);
vipTypeList.add(vipTypeLoss);
}
return vipTypeList;
}
}
package com.xingdata.zzdpos.ui.sendTicke; package com.xingdata.zzdpos.ui.sendticke;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivitySendTicketBinding; import com.xingdata.zzdpos.databinding.ActivitySendTicketBinding;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import java.util.List;
public class SendTicketActivity extends BaseActivity<SendTicketPresenter, public class SendTicketActivity extends BaseActivity<SendTicketPresenter,
ActivitySendTicketBinding> ActivitySendTicketBinding>
implements SendTicketContract.View { implements SendTicketContract.View {
...@@ -30,7 +35,25 @@ public class SendTicketActivity extends BaseActivity<SendTicketPresenter, ...@@ -30,7 +35,25 @@ public class SendTicketActivity extends BaseActivity<SendTicketPresenter,
ToastUtils.showLong(errorMsg); ToastUtils.showLong(errorMsg);
} }
@Override
public void loadVips(List<Vip> vips) {
mPresenter.vipFragment.loadVips(vips);
}
@Override
public void loadVip(Vip vip) {
// mPresenter.vipFragment.loadVip(vip);
}
@Override
public void truleQuerySucc(Pager<Trule> trulePager, LoadingDialog loadingDialog) {
mPresenter.sendTickerFragment.truleQuerySucc(trulePager, loadingDialog);
}
@Override
protected void onResume() {
super.onResume();
}
private void closeLoading(LoadingDialog loadingDialog) { private void closeLoading(LoadingDialog loadingDialog) {
if (loadingDialog != null) { if (loadingDialog != null) {
loadingDialog.dismiss(); loadingDialog.dismiss();
......
package com.xingdata.zzdpos.ui.sendTicke; package com.xingdata.zzdpos.ui.sendticke;
import com.xingdata.zzdpos.base.BasePresenter; import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView; import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import java.util.List;
/** /**
* Created by Administrator on 2017/11/24. * Created by Administrator on 2017/11/24.
...@@ -13,10 +18,39 @@ public interface SendTicketContract { ...@@ -13,10 +18,39 @@ public interface SendTicketContract {
interface View extends BaseView { interface View extends BaseView {
void error(String errorMsg, LoadingDialog loadingDialog); void error(String errorMsg, LoadingDialog loadingDialog);
/**
* 加载会员列表
*
* @param vips 会员列表
*/
void loadVips(List<Vip> vips);
/**
* 加载会员信息
*
* @param vip 会员信息
*/
void loadVip(Vip vip);
void truleQuerySucc(Pager<Trule> trulePager, LoadingDialog loadingDialog);
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
/**
* 会员页面 - 选择会员
*
* @param vip 会员
*/
public abstract void selectVip(Vip vip);
/**
* 会员界面 - 查找会员
*
* @param keyword 搜索关键字
*/
public abstract void searchVip(String keyword);
abstract void truleQuery(LoadingDialog loadingDialog);
} }
} }
package com.xingdata.zzdpos.ui.sendticke;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.sendticke.fragment.SendTickerFragment;
import com.xingdata.zzdpos.ui.sendticke.fragment.SendTickerIndexFragment;
import com.xingdata.zzdpos.ui.sendticke.fragment.VipFragment;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/11/24.
*/
public class SendTicketPresenter extends SendTicketContract.Presenter {
public SendTickerIndexFragment sendTickerIndexFragment = new SendTickerIndexFragment();
public VipFragment vipFragment = new VipFragment();
public SendTickerFragment sendTickerFragment = new SendTickerFragment();
/**
* 当前会员
*/
private Vip mVip;
@Override
public void onAttached() {
}
@Override
public void selectVip(Vip vip) {
mVip = vip;
mView.loadVip(mVip);
}
@Override
public void searchVip(String keyword) {
ApiFactory.User.queryUserDetailByKeyword(keyword).subscribe(
vip -> {
List<Vip> vips = new ArrayList<>();
vips.add(vip);
mView.loadVips(vips);
},
throwable -> {
});
}
@Override
public void truleQuery(LoadingDialog loadingDialog) {
ApiFactory.TRULE.truleQuery().subscribe(pager -> {
mView.truleQuerySucc(pager, loadingDialog);
}, throwable -> {
mView.error(throwable.getMessage(), loadingDialog);
});
}
}
package com.xingdata.zzdpos.ui.sendticke.adapter;
import android.support.annotation.Nullable;
import android.view.View;
import com.blankj.utilcode.util.TimeUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemReturnTicketBinding;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.ui.sendticke.SendTicketActivity;
import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.text.SimpleDateFormat;
import java.util.List;
public class ReturnTicketAdapter extends BaseAdapter<Trule, ItemReturnTicketBinding> {
SendTicketPresenter mPersenter;
SendTicketActivity sendTicketActivity;
public ReturnTicketAdapter(@Nullable List<Trule> data, SendTicketPresenter mPersenter,
SendTicketActivity sendTicketActivity) {
super(R.layout.item_return_ticket, data);
this.mPersenter = mPersenter;
this.sendTicketActivity = sendTicketActivity;
}
@Override
protected void convert(ItemReturnTicketBinding mViewBinding, Trule item) {
if (item.isSelect()) {
mViewBinding.ivSelect.setImageResource(R.mipmap.but_elect01_stroke);
} else {
mViewBinding.ivSelect.setImageResource(R.mipmap.but_elect02_stroke);
}
mViewBinding.ivSelect.setVisibility(View.VISIBLE);
mViewBinding.tvTicketMoney.setText(mContext.getResources().getString(R.string.tv_money,
ConvertUtil.fenToYuanNoPoint(item.getTruleValAmt())));
mViewBinding.tvTicketMoneys.setText(mContext.getResources().getString(R.string.money,
ConvertUtil.fenToYuanNoPoint(item.getTruleValAmt())));
mViewBinding.tvRule.setText(mContext.getResources().getString(R.string.tv_rule,
ConvertUtil.fenToYuanNoPoint(item.getTruleOrderAmt())));
mViewBinding.tvDate.setText(mContext.getResources().getString(R.string.tv_date,
TimeUtils.millis2String(item.getTruleExp(), new SimpleDateFormat("yyy-mm-dd"))));
}
}
package com.xingdata.zzdpos.ui.sendticke.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemSettleVipBinding;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
public class VipAdapter extends BaseAdapter<Vip, ItemSettleVipBinding> {
public VipAdapter() {
super(R.layout.item_settle_vip, new ArrayList<>());
}
@Override
protected void convert(ItemSettleVipBinding mViewBinding, Vip item) {
mViewBinding.setName(item.getVipName());
mViewBinding.setPhone(ConvertUtil.longToString(item.getVipMobile()));
if (item.getVipDefDiscount() < 100 && item.getVipDefDiscount() > 0) {
mViewBinding.setDisRate(String.valueOf((double) item.getVipDefDiscount() / 10));
}
switch (item.getVipLevel()) {
case 1:
mViewBinding.ivLevel.setImageResource(R.mipmap.mk_grade01);
break;
case 2:
mViewBinding.ivLevel.setImageResource(R.mipmap.mk_grade02);
break;
case 3:
mViewBinding.ivLevel.setImageResource(R.mipmap.mk_grade03);
break;
}
}
}
package com.xingdata.zzdpos.ui.sendticke.adapter;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemVipGroupBinding;
import com.xingdata.zzdpos.model.Level;
import java.util.ArrayList;
public class VipGroupAdapter extends BaseAdapter<Level, ItemVipGroupBinding> {
public VipGroupAdapter() {
super(R.layout.item_vip_group, new ArrayList<>());
}
@Override
protected void convert(ItemVipGroupBinding mViewBinding, Level item) {
mViewBinding.tvItem.setText(item.getPickerViewText());
mViewBinding.tvItemSelect.setText(item.getPickerViewText());
if (item.isSelect()) {
mViewBinding.tvItem.setVisibility(View.GONE);
mViewBinding.tvItemSelect.setVisibility(View.VISIBLE);
} else {
mViewBinding.tvItem.setVisibility(View.VISIBLE);
mViewBinding.tvItemSelect.setVisibility(View.GONE);
}
}
}
package com.xingdata.zzdpos.ui.sendticke.fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSendTickerBinding;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.sendticke.SendTickerC;
import com.xingdata.zzdpos.ui.sendticke.SendTicketActivity;
import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.ui.sendticke.adapter.ReturnTicketAdapter;
import com.xingdata.zzdpos.ui.sendticke.adapter.VipGroupAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.OnClickListener;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
import java.util.List;
import io.realm.RealmResults;
public class SendTickerFragment extends BaseFragment<SendTicketPresenter,
FragmentSendTickerBinding> {
//0单个会员发券,1按会员类型发券
private int nowtype = -1;
//当前单个会员发券操作对象
private Vip nowVip;
//当前组别发券组
private List<Level> levelList = new ArrayList<>();
ReturnTicketAdapter returnTicketAdapter;
VipGroupAdapter vipGroupAdapter;
LoadingDialog loadingDialog = new LoadingDialog();
//当前优惠券点击的item id
int nowTickerItemId = -1;
List<Trule> truleList = new ArrayList<>();
//当前选中会员组别Item ID
int nowVipGroupId = 0;
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker;
}
@Override
public void initView() {
loadingDialog.show((BaseActivity) getActivity());
mPresenter.truleQuery(loadingDialog);
mViewBinding.icTitle.tvTitle.setText("发券");
mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
pop();
}
});
returnTicketAdapter = new ReturnTicketAdapter(new ArrayList<>(), mPresenter,
(SendTicketActivity) getActivity());
vipGroupAdapter = new VipGroupAdapter();
mViewBinding.rlTicker.setAdapter(returnTicketAdapter);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mViewBinding.rlTicker.setLayoutManager(linearLayoutManager);
if (nowtype == 0) {
initOneVipData();
} else if (nowtype == 1) {
initVipGroupData();
}
mViewBinding.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
switch (v.getId()) {
case R.id.ll_vip_single: {
mPresenter.vipFragment = new VipFragment();
startWithPop(mPresenter.vipFragment);
}
break;
case R.id.btn_send: {
if (isNull()) {
ToastUtils.showLong("发券");
}
}
break;
default: {
}
break;
}
}
});
vipGroupAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
levelList.get(nowVipGroupId).setSelect(false);
nowVipGroupId = position;
levelList.get(nowVipGroupId).setSelect(true);
vipGroupAdapter.notifyDataSetChanged();
mViewBinding.tvSelect.setText(levelList.get(position).getVipLevelName());
}
});
returnTicketAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (nowTickerItemId >= 0) {
truleList.get(nowTickerItemId).setSelect(false);
}
nowTickerItemId = position;
truleList.get(nowTickerItemId).setSelect(true);
returnTicketAdapter.notifyDataSetChanged();
}
});
}
private void initOneVipData() {
mViewBinding.tvSelect.setText("");
mViewBinding.llVipSingle.setVisibility(View.VISIBLE);
mViewBinding.llAll.setVisibility(View.GONE);
if (nowVip != null) {
mViewBinding.tvSelect.setText(nowVip.getVipName());
mViewBinding.setName(nowVip.getVipName());
mViewBinding.setPhone(ConvertUtil.longToString(nowVip.getVipMobile()));
if (nowVip.getVipDefDiscount() < 100 && nowVip.getVipDefDiscount() > 0) {
mViewBinding.setDisRate(String.valueOf((double) nowVip.getVipDefDiscount() /
10));
}
switch (nowVip.getVipLevel()) {
case 1:
mViewBinding.ivLevel.setImageResource(R.mipmap.mk_grade01);
break;
case 2:
mViewBinding.ivLevel.setImageResource(R.mipmap.mk_grade02);
break;
case 3:
mViewBinding.ivLevel.setImageResource(R.mipmap.mk_grade03);
break;
}
} else {
LogUtils.e("nowVip为null");
ToastUtils.showLong("nowVip为null");
}
}
private void initVipGroupData() {
mViewBinding.llVipSingle.setVisibility(View.GONE);
mViewBinding.llAll.setVisibility(View.VISIBLE);
RealmResults<Level> levels = DBFactory.getRealm().where(Level.class).findAll();
levelList = new ArrayList<>();
SendTickerC.getVipType().get(0).setSelect(true);
levelList.add(SendTickerC.getVipType().get(0));
for (int i = 0; i < levels.size(); i++) {
levelList.add(levels.get(i));
}
for (int i = 1; i < SendTickerC.getVipType().size(); i++) {
levelList.add(SendTickerC.getVipType().get(i));
}
mViewBinding.tvSelect.setText(levelList.get(nowVipGroupId).getVipLevelName());
mViewBinding.vipType.setAdapter(vipGroupAdapter);
mViewBinding.vipType.setLayoutManager(new GridLayoutManager(mContext, 3));
final int SPACING = mContext.getResources().getDimensionPixelOffset(R.dimen
.ticker_vip_three_item_spacing);
mViewBinding.vipType.addItemDecoration(new RecyclerViewUtil.GridSpacingItemDecoration
(3, SPACING, true));
vipGroupAdapter.setNewData(levelList);
}
public void truleQuerySucc(Pager<Trule> trulePager, LoadingDialog loadingDialog) {
closeLoading(loadingDialog);
if (trulePager == null || trulePager.getList() == null || trulePager.getList().size() <=
0) {
mViewBinding.tvEmpty.setVisibility(View.VISIBLE);
mViewBinding.rlTicker.setVisibility(View.GONE);
}
if (trulePager != null && trulePager.getList() != null) {
truleList = trulePager.getList();
mViewBinding.tvEmpty.setVisibility(View.GONE);
mViewBinding.rlTicker.setVisibility(View.VISIBLE);
returnTicketAdapter.setNewData(trulePager.getList());
}
}
/**
* 0单个会员发券,1按会员类型发券
*
* @param type
*/
public void setNowtype(int type) {
this.nowtype = type;
}
public void setNowVip(Vip nowVip) {
this.nowVip = nowVip;
}
private void closeLoading(LoadingDialog loadingDialog) {
if (loadingDialog != null) {
loadingDialog.dismiss();
}
}
private boolean isNull() {
if (nowtype == 0) {
//单个会员发券
if (null == nowVip || nowTickerItemId < 0) {
ToastUtils.showLong("请选择会员或优惠券");
return false;
}
} else if (nowtype == 1) {
//分组发券
if (nowTickerItemId < 0) {
ToastUtils.showLong("请选择优惠券");
return false;
}
}
return true;
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.sendTicke.fragment; package com.xingdata.zzdpos.ui.sendticke.fragment;
import android.view.View; import android.view.View;
...@@ -8,7 +8,7 @@ import com.xingdata.zzdpos.base.BaseFragment; ...@@ -8,7 +8,7 @@ import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSendTickerMainBinding; import com.xingdata.zzdpos.databinding.FragmentSendTickerMainBinding;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity; import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity;
import com.xingdata.zzdpos.ui.sendTicke.SendTicketPresenter; import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
public class SendTickerIndexFragment extends BaseFragment<SendTicketPresenter, public class SendTickerIndexFragment extends BaseFragment<SendTicketPresenter,
...@@ -21,13 +21,35 @@ public class SendTickerIndexFragment extends BaseFragment<SendTicketPresenter, ...@@ -21,13 +21,35 @@ public class SendTickerIndexFragment extends BaseFragment<SendTicketPresenter,
@Override @Override
public void initView() { public void initView() {
mViewBinding.icTitle.tvTitle.setText("积分规则"); mViewBinding.icTitle.tvTitle.setText("发券");
mViewBinding.icTitle.setOnClickListener(new OnClickListener() { mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override @Override
protected void myOnClickListener(View v) { protected void myOnClickListener(View v) {
ActivityUtils.finishActivity(IntegralActivity.class); ActivityUtils.finishActivity(IntegralActivity.class);
} }
}); });
mViewBinding.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
switch (v.getId()) {
case R.id.ll_one: {
mPresenter.vipFragment = new VipFragment();
start(mPresenter.vipFragment);
}
break;
case R.id.ll_all: {
mPresenter.sendTickerFragment = new SendTickerFragment();
mPresenter.sendTickerFragment.setNowtype(1);
start(mPresenter.sendTickerFragment);
}
break;
default: {
}
break;
}
}
});
} }
......
package com.xingdata.zzdpos.ui.sendticke.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.TextView;
import com.blankj.utilcode.util.KeyboardUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSendTickerVipBinding;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.ui.sendticke.adapter.VipAdapter;
import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.util.OnClickListener;
import java.util.List;
public class VipFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
private VipAdapter mVipAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker_vip;
}
@Override
public void initView() {
mViewBinding.setEmpty(true);
mVipAdapter = new VipAdapter();
mViewBinding.rlVip.setAdapter(mVipAdapter);
mViewBinding.rlVip.setLayoutManager(new LinearLayoutManager(mContext));
@SuppressLint("InflateParams") View emptyView = getLayoutInflater().inflate(R.layout
.view_empty, null);
((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string
.settle_vip_search_empty);
mVipAdapter.setEmptyView(emptyView);
mVipAdapter.setOnItemClickListener((adapter, view, position) -> {
mPresenter.selectVip(mVipAdapter.getData().get(position));
mPresenter.sendTickerFragment = new SendTickerFragment();
mPresenter.sendTickerFragment.setNowtype(0);
mPresenter.sendTickerFragment.setNowVip(mVipAdapter.getData().get(position));
startWithPop(mPresenter.sendTickerFragment);
});
mViewBinding.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
switch (v.getId()) {
case R.id.btn_back: {
pop();
}
break;
default: {
}
break;
}
}
});
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchVip(textView.getText().toString());
return false;
});
}
/**
* 加载会员信息
*
* @param vips 会员列表
*/
public void loadVips(List<Vip> vips) {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
}
@Override
public void onDestroyView() {
if (getActivity() instanceof SettleActivity) {
((SettleActivity) getActivity()).showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
}
super.onDestroyView();
}
}
...@@ -87,16 +87,12 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle ...@@ -87,16 +87,12 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle
@Override @Override
public void showTicketFragment() { public void showTicketFragment() {
this.start(mTicketFragment);
} }
@Override @Override
public void loadTickets(List<Ticket> tickets) { public void loadTickets(List<Ticket> tickets) {
} mTicketFragment.loadTickets(tickets);
@Override
public void loadTicket(Ticket ticket) {
} }
@Override @Override
......
...@@ -56,13 +56,6 @@ interface SettleContract { ...@@ -56,13 +56,6 @@ interface SettleContract {
*/ */
void loadTickets(List<Ticket> tickets); void loadTickets(List<Ticket> tickets);
/**
* 加载优惠券信息
*
* @param ticket 优惠券信息
*/
void loadTicket(Ticket ticket);
/** /**
* 加载可用优惠券数量 * 加载可用优惠券数量
* *
...@@ -164,7 +157,7 @@ interface SettleContract { ...@@ -164,7 +157,7 @@ interface SettleContract {
/** /**
* 结算页面 - 查询优惠券 * 结算页面 - 查询优惠券
*/ */
public abstract void searchTicket(Long vipId); public abstract void searchTicket();
/** /**
* 优惠券页面 - 选择优惠券 * 优惠券页面 - 选择优惠券
......
...@@ -4,6 +4,7 @@ package com.xingdata.zzdpos.ui.settle; ...@@ -4,6 +4,7 @@ package com.xingdata.zzdpos.ui.settle;
import com.blankj.utilcode.util.StringUtils; import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory; import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Ms; import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Pay; import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saledetail; import com.xingdata.zzdpos.model.Saledetail;
...@@ -28,6 +29,11 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -28,6 +29,11 @@ public class SettlePresenter extends SettleContract.Presenter {
*/ */
private Vip mVip; private Vip mVip;
/**
* 当前会员的优惠券
*/
private List<Ticket> mTickets;
/** /**
* 当前的营销活动列表 * 当前的营销活动列表
*/ */
...@@ -73,7 +79,7 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -73,7 +79,7 @@ public class SettlePresenter extends SettleContract.Presenter {
private void getPaymentIntent() { private void getPaymentIntent() {
Long payAmt = getIntent().getLongExtra(C.EXTRA_KEY.SETTLE_EXTRA, 0); Long payAmt = getIntent().getLongExtra(C.EXTRA_KEY.SETTLE_EXTRA, 0);
mSaledetails.add(0, Saledetail.create("收款", payAmt, mVip)); mSaledetails.add(0, Saledetail.create("收款", payAmt, mVip));
mSaleorder.setSaledetails(mSaledetails).settle(); mSaleorder.setSaledetails(mSaledetails);
} }
/** /**
...@@ -86,13 +92,13 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -86,13 +92,13 @@ public class SettlePresenter extends SettleContract.Presenter {
@Override @Override
public void initSettle() { public void initSettle() {
ApiFactory.Pay.query().subscribe( DBFactory.Settle.queryPays().subscribe(
pays -> mView.loadPays(pays), pays -> mView.loadPays(pays),
throwable -> { throwable -> {
} }
); );
mView.loadSaleorder(mSaleorder);
mView.setSettleFragmentBySettleMode(mSettleMode); mView.setSettleFragmentBySettleMode(mSettleMode);
this.reprice();
} }
@Override @Override
...@@ -100,6 +106,7 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -100,6 +106,7 @@ public class SettlePresenter extends SettleContract.Presenter {
mView.showVipFragment(); mView.showVipFragment();
} }
@Override @Override
public void searchVip(String keyword) { public void searchVip(String keyword) {
ApiFactory.User.queryUserDetailByKeyword(keyword).subscribe( ApiFactory.User.queryUserDetailByKeyword(keyword).subscribe(
...@@ -114,8 +121,19 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -114,8 +121,19 @@ public class SettlePresenter extends SettleContract.Presenter {
@Override @Override
public void selectVip(Vip vip) { public void selectVip(Vip vip) {
mVip = vip; // 设置会员
mView.loadVip(mVip); this.setVip(vip);
// 计算价格
this.reprice();
// 获取订单
ApiFactory.Ticket.query(mVip.getVipId()).subscribe(
tickets -> {
this.mTickets = tickets;
this.searchAvlTicket();
},
throwable -> {
});
} }
@Override @Override
...@@ -124,30 +142,27 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -124,30 +142,27 @@ public class SettlePresenter extends SettleContract.Presenter {
} }
@Override @Override
public void searchTicket(Long vipId) { public void searchTicket() {
ApiFactory.Ticket.query(vipId).subscribe( List<Ticket> _tickets = new ArrayList<>();
tickets -> { for (int i = 0; i < mTickets.size(); i++) {
mView.loadTickets(tickets); if (mSaleorder.getOrderVipOffAmt() - mSaleorder.getMsDisAmt() >= mTickets.get(i).getTruleOrderAmt()) {
int avlTicketNum = 0; mTickets.get(i).setSelected(mSaleorder.getTicketId() == mTickets.get(i).getTicketNo());
for (int i = 0; i < tickets.size(); i++) { _tickets.add(mTickets.get(i));
if (tickets.get(i).getTruleOrderAmt() <= mSaleorder.getOrderPayAmt())
avlTicketNum++;
} }
mView.loadAvlTicketNum(avlTicketNum); }
}, mView.loadTickets(_tickets);
throwable -> {
});
} }
@Override @Override
public void selectTicket(Ticket ticket) { public void selectTicket(Ticket ticket) {
mView.loadTicket(ticket); mSaleorder.setTicket(ticket);
this.reprice();
} }
@Override @Override
public void changePointState(boolean isUsePoint) { public void changePointState(boolean isUsePoint) {
mSaleorder.setBound(isUsePoint, mVip.getBoundCbal()).settle(); mSaleorder.setBound(isUsePoint, mVip.getBoundCbal());
mView.loadSaleorder(mSaleorder); this.reprice();
} }
@Override @Override
...@@ -245,4 +260,43 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -245,4 +260,43 @@ public class SettlePresenter extends SettleContract.Presenter {
mView.showPayFailFragment(throwable, mSaleorder); mView.showPayFailFragment(throwable, mSaleorder);
} }
/**
* 设置会员
*
* @param vip 会员信息
*/
private void setVip(Vip vip) {
this.mVip = vip;
for (int i = 0; i < mSaledetails.size(); i++) mSaledetails.get(i).setVip(mVip);
if (vip.getBoundCbal() != null) {
//清空优惠券和积分
mSaleorder.setBound(false, vip.getBoundCbal()).setTicket(Ticket.defualt());
}
//加载会员信息
mView.loadVip(mVip);
}
/**
* 查询可用的优惠券数量
*/
private void searchAvlTicket() {
int avlTicketNum = 0;
for (int i = 0; i < mTickets.size(); i++) {
if (mTickets.get(i).getTruleOrderAmt() <= mSaleorder.getOrderPayAmt())
avlTicketNum++;
}
mView.loadAvlTicketNum(avlTicketNum);
}
/**
* 统计订单信息
*/
private void reprice() {
mSaleorder.settle();
mView.loadSaleorder(mSaleorder);
}
} }
package com.xingdata.zzdpos.ui.settle.adapter;
import android.support.annotation.Nullable;
import android.view.View;
import com.blankj.utilcode.util.TimeUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemReturnTicketBinding;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.ui.marketing.ticket.ReturnTicketActivity;
import com.xingdata.zzdpos.ui.marketing.ticket.ReturnTicketPresenter;
import com.xingdata.zzdpos.ui.marketing.ticket.fragment.TickerAddFragment;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.text.SimpleDateFormat;
import java.util.List;
public class ReturnTicketAdapter extends BaseAdapter<Trule, ItemReturnTicketBinding> {
ReturnTicketPresenter mPersenter;
ReturnTicketActivity returnTicketActivity;
public ReturnTicketAdapter(@Nullable List<Trule> data, ReturnTicketPresenter mPersenter,
ReturnTicketActivity returnTicketActivity) {
super(R.layout.item_return_ticket, data);
this.mPersenter = mPersenter;
this.returnTicketActivity = returnTicketActivity;
}
@Override
protected void convert(ItemReturnTicketBinding mViewBinding, Trule item) {
mViewBinding.tvTicketMoney.setText(mContext.getResources().getString(R.string.tv_money,
ConvertUtil.fenToYuanNoPoint(item.getTruleValAmt())));
mViewBinding.tvTicketMoneys.setText(mContext.getResources().getString(R.string.money,
ConvertUtil.fenToYuanNoPoint(item.getTruleValAmt())));
mViewBinding.tvRule.setText(mContext.getResources().getString(R.string.tv_rule,
ConvertUtil.fenToYuanNoPoint(item.getTruleOrderAmt())));
mViewBinding.tvDate.setText(mContext.getResources().getString(R.string.tv_date,
TimeUtils.millis2String(item.getTruleExp(), new SimpleDateFormat("yyy-mm-dd"))));
mViewBinding.clSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ToastUtils.showLong("发券");
}
});
mViewBinding.clItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mPersenter.tickerAddFragment = new TickerAddFragment();
mPersenter.tickerAddFragment.setNowType(2);
mPersenter.tickerAddFragment.editTicketData(item);
returnTicketActivity.start(mPersenter.tickerAddFragment);
}
});
}
}
package com.xingdata.zzdpos.ui.settle.adapter;
import com.blankj.utilcode.util.TimeUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemSettleTicketBinding;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Locale;
public class TicketAdapter extends BaseAdapter<Ticket, ItemSettleTicketBinding> {
public TicketAdapter() {
super(R.layout.item_settle_ticket, new ArrayList<>());
}
@Override
protected void convert(ItemSettleTicketBinding mViewBinding, Ticket item) {
mViewBinding.tvTicketMoney.setText(mContext.getResources().getString(R.string.tv_money,
ConvertUtil.fenToYuanNoPoint(item.getTicketValAmt())));
mViewBinding.tvTicketMoneys.setText(mContext.getResources().getString(R.string.money,
ConvertUtil.fenToYuanNoPoint(item.getTicketValAmt())));
mViewBinding.tvRule.setText(mContext.getResources().getString(R.string.tv_rule,
ConvertUtil.fenToYuanNoPoint(item.getTruleOrderAmt())));
mViewBinding.tvDate.setText(mContext.getResources().getString(R.string.tv_date,
TimeUtils.millis2String(item.getTicketExp(), new SimpleDateFormat("yyy-mm-dd", Locale.getDefault()))));
mViewBinding.ivSelected.setImageResource(item.isSelected() ? R.mipmap.but_elect01 : R.mipmap.but_elect02);
}
}
...@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.settle.fragment; ...@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.settle.fragment;
import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.BottomSheetBehavior;
import android.support.v7.widget.StaggeredGridLayoutManager; import android.support.v7.widget.StaggeredGridLayoutManager;
import com.xingdata.zzdpos.C;
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.FragmentSettleBinding; import com.xingdata.zzdpos.databinding.FragmentSettleBinding;
...@@ -14,11 +15,13 @@ import com.xingdata.zzdpos.ui.settle.adapter.PayAdapter; ...@@ -14,11 +15,13 @@ import com.xingdata.zzdpos.ui.settle.adapter.PayAdapter;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.RecyclerViewUtil; import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettleBinding> { public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettleBinding> {
private PayAdapter mPayAdapter; private PayAdapter mPayAdapter;
private List<Pay> mPays;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -27,6 +30,7 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -27,6 +30,7 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
@Override @Override
public void initView() { public void initView() {
mPays = new ArrayList<>();
mViewBinding.setDefualtVip(true); mViewBinding.setDefualtVip(true);
// pay adapter // pay adapter
...@@ -50,6 +54,14 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -50,6 +54,14 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
mPresenter.initSettle(); mPresenter.initSettle();
} }
@Override
public boolean onBackPressedSupport() {
if (BottomSheetBehavior.from(mViewBinding.llSheet).getState() == BottomSheetBehavior.STATE_EXPANDED) {
BottomSheetBehavior.from(mViewBinding.llSheet).setState(BottomSheetBehavior.STATE_COLLAPSED);
return true;
}
return super.onBackPressedSupport();
}
/** /**
* 设置界面 * 设置界面
...@@ -65,9 +77,24 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -65,9 +77,24 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
* @param vip 会员信息 * @param vip 会员信息
*/ */
public void loadVip(Vip vip) { public void loadVip(Vip vip) {
if (vip.isDefaultVip()) {
for (int i = 0; i < mPayAdapter.getData().size(); i++) {
if (mPayAdapter.getData().get(i).isNeedVip()) mPayAdapter.remove(i);
}
} else {
for (int i = 0; i < mPays.size(); i++) {
if (mPays.get(i).isNeedVip() && (mPays.get(i).getPayType() != C.PAY_CHANNEL.CARD || vip.getAcctCbal() > mViewBinding.getOrderPayAmt())) {
mPayAdapter.addData(mPays.get(i));
}
}
}
mViewBinding.setDefualtVip(vip.isDefaultVip()); mViewBinding.setDefualtVip(vip.isDefaultVip());
mViewBinding.setName(vip.getVipName()); mViewBinding.setName(vip.getVipName());
mViewBinding.setPhone(ConvertUtil.longToString(vip.getVipMobile())); mViewBinding.setPhone(ConvertUtil.longToString(vip.getVipMobile()));
mViewBinding.setBalance(vip.getAcctCbal());
mViewBinding.cbPoint.setChecked(false);
if (vip.getVipDefDiscount() < 100 && vip.getVipDefDiscount() > 0) { if (vip.getVipDefDiscount() < 100 && vip.getVipDefDiscount() > 0) {
mViewBinding.setDisRate(String.valueOf((double) vip.getVipDefDiscount() / 10)); mViewBinding.setDisRate(String.valueOf((double) vip.getVipDefDiscount() / 10));
} }
...@@ -94,21 +121,33 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -94,21 +121,33 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
mViewBinding.setAvlTicketNum(avlNum); mViewBinding.setAvlTicketNum(avlNum);
} }
/** /**
* 加载订单信息 * 加载订单信息
* *
* @param saleorder 订单信息 * @param saleorder 订单信息
*/ */
public void loadSaleorder(Saleorder saleorder) { public void loadSaleorder(Saleorder saleorder) {
mViewBinding.tvPayAmt.setText(ConvertUtil.fenToYuan(saleorder.getOrderPayAmt())); mViewBinding.setOrderAuthAmt(saleorder.getOrderAuthAmt());
mViewBinding.tvAuthAmt.setText(ConvertUtil.fenToYuan(saleorder.getOrderAuthAmt())); mViewBinding.setOrderPayAmt(saleorder.getOrderPayAmt());
mViewBinding.setTicketAmt(saleorder.getTicketAmt());
mViewBinding.setAvlPoints(saleorder.getBoundNum());
mViewBinding.setPointDisAmt(ConvertUtil.fenToYuan(saleorder.getBoundAmt()));
} }
/** /**
* 加载支付方式 * 加载支付方式
*/ */
public void loadPays(List<Pay> pays) { public void loadPays(List<Pay> pays) {
mPayAdapter.setNewData(pays); mPays.addAll(pays);
List<Pay> _pays = new ArrayList<>();
for (int i = 0; i < pays.size(); i++) {
pays.get(i).init();
if (!pays.get(i).isNeedVip()) _pays.add(pays.get(i));
}
mPayAdapter.setNewData(_pays);
} }
......
package com.xingdata.zzdpos.ui.settle.fragment; package com.xingdata.zzdpos.ui.settle.fragment;
public class TicketFragment { import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSettleTicketBinding;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.ui.settle.adapter.TicketAdapter;
import java.util.ArrayList;
import java.util.List;
public class TicketFragment extends BaseFragment<SettlePresenter, FragmentSettleTicketBinding> {
private Ticket mTicket;
private List<Ticket> mTicketList;
private TicketAdapter mTicketAdapter;
private int mPosition = -1;
@Override
public int getLayoutId() {
return R.layout.fragment_settle_ticket;
}
@Override
public void initView() {
mTicketList = new ArrayList<>();
mTicket = Ticket.defualt();
mTicketAdapter = new TicketAdapter();
mViewBinding.rlTicket.setAdapter(mTicketAdapter);
mViewBinding.rlTicket.setLayoutManager(new LinearLayoutManager(mContext));
mTicketAdapter.setOnItemClickListener((adapter, view, position) -> changeSelectedTicket(position));
mViewBinding.tvConfirm.setOnClickListener(view -> {
mPresenter.selectTicket(mTicket);
this.pop();
});
mPresenter.searchTicket();
}
/**
* 加载优惠券信息
*
* @param tickets 优惠券列表
*/
public void loadTickets(List<Ticket> tickets) {
for (int i = 0; i < tickets.size(); i++) {
if (tickets.get(i).isSelected()) {
mTicket = tickets.get(i);
mViewBinding.setSelectedNum(1);
mPosition = i;
break;
}
}
mTicketAdapter.setNewData(tickets);
}
/**
* 切换选中的优惠券
*
* @param position 被选中优惠券的position
*/
@SuppressLint("SetTextI18n")
private void changeSelectedTicket(int position) {
if (mPosition != -1) {
//取消选择
if (mPosition == position && mTicketAdapter.getData().get(mPosition).isSelected()) {
mTicketAdapter.getData().get(mPosition).setSelected(false);
mTicketAdapter.notifyDataSetChanged();
mTicket = Ticket.defualt();
mViewBinding.setSelectedNum(0);
return;
}
if (mTicketAdapter.getData().size() > mPosition) {
mTicketAdapter.getData().get(mPosition).setSelected(false);
} else {
for (int i = 0; i < mTicketList.size(); i++) {
mTicketList.get(i).setSelected(false);
}
}
}
mPosition = position;
mTicketAdapter.getData().get(position).setSelected(true);
mTicket = mTicketAdapter.getData().get(position);
mViewBinding.setSelectedNum(1);
mTicketAdapter.notifyDataSetChanged();
}
} }
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<stroke <stroke
android:width="0.5dp" android:width="1dp"
android:color="@color/black" /> android:color="@color/black" />
<solid android:color="@color/all_transparent" /> <solid android:color="@color/all_transparent" />
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="@dimen/all_shape_radius" />
<stroke
android:width="1dp"
android:color="@color/red_guanyu" />
<solid android:color="@color/all_transparent" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>
<variable
name="empty"
type="boolean"/>
<variable
name="OnClickListener"
type="com.xingdata.zzdpos.util.OnClickListener"/>
<variable
name="titleMode"
type="int"/>
<variable
name="name"
type="String"/>
<variable
name="phone"
type="String"/>
<variable
name="disRate"
type="String"/>
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu">
<LinearLayout
android:id="@+id/ll_top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/ic_title"
layout="@layout/title"/>
<LinearLayout
android:id="@+id/ll_vip_single"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.2"
android:onClick="@{OnClickListener}"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai"/>
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_vip"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_padding"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_head"
android:layout_width="@dimen/settle_vip_head"
android:layout_height="@dimen/settle_vip_head"
android:layout_marginStart="@dimen/all_margin"
app:backgroundImage="@color/white_caocao"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:placeholderImage="@mipmap/icon_menu_service_1"
app:roundAsCircle="true"
app:roundingBorderColor="@color/gray_huanggai"
app:roundingBorderWidth="@dimen/all_line_width"/>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_level"
android:layout_width="@dimen/settle_vip_level"
android:layout_height="@dimen/settle_vip_level"
app:layout_constraintBottom_toBottomOf="@id/iv_head"
app:layout_constraintRight_toRightOf="@id/iv_head"
app:roundAsCircle="true"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/iv_head"
app:layout_constraintTop_toBottomOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{name}"
android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_text_size"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{phone}"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_caption_size"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:text="@{@string/settle_vip_dis_rate_hint + disRate + @string/settle_vip_dis_rate}"
android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_caption_size"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@id/cb_point"
app:layout_constraintTop_toBottomOf="parent"/>
<CheckBox
android:id="@+id/cb_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
android:button="@mipmap/but_elect02"
android:contentDescription="@string/settle_balance"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent"/>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical"
android:visibility="gone">
<android.support.v7.widget.RecyclerView
android:id="@+id/vip_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_ticker"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:paddingLeft="@dimen/all_padding"
android:paddingRight="@dimen/all_padding"/>
<TextView
android:id="@+id/tv_empty"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="9"
android:background="@color/appBack"
android:drawableTop="@mipmap/icon_things_null"
android:gravity="center"
android:padding="100dp"
android:text="@string/empty_other_select"
android:textColor="@color/white_half"
android:textSize="@dimen/all_text_size_big"
android:visibility="gone"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/all_padding">
<TextView
android:id="@+id/tv_select"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/all_padding"
android:layout_weight="3"
android:gravity="center|left"
android:text="白金会员"
android:textSize="@dimen/et_textsize"/>
<Button
android:id="@+id/btn_send"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/red_border_allradius"
android:text="发券"
android:onClick="@{OnClickListener}"
android:textColor="@color/white"
android:textSize="@dimen/et_textsize"/>
</LinearLayout>
</RelativeLayout>
</layout>
\ No newline at end of file
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
android:layout_marginTop="@dimen/all_padding" android:layout_marginTop="@dimen/all_padding"
android:background="@color/white" android:background="@color/white"
android:gravity="center" android:gravity="center"
android:onClick="@{OnClickListener}"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="@dimen/all_margin" android:paddingLeft="@dimen/all_margin"
app:layout_constraintTop_toBottomOf="@+id/ic_title"> app:layout_constraintTop_toBottomOf="@+id/ic_title">
...@@ -60,6 +61,7 @@ ...@@ -60,6 +61,7 @@
android:layout_marginTop="@dimen/all_padding" android:layout_marginTop="@dimen/all_padding"
android:background="@color/white" android:background="@color/white"
android:gravity="center" android:gravity="center"
android:onClick="@{OnClickListener}"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="@dimen/all_margin" android:paddingLeft="@dimen/all_margin"
app:layout_constraintTop_toBottomOf="@+id/ll_one"> app:layout_constraintTop_toBottomOf="@+id/ll_one">
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>
<variable
name="empty"
type="boolean"/>
<variable
name="OnClickListener"
type="com.xingdata.zzdpos.util.OnClickListener"/>
<variable
name="titleMode"
type="int"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai"/>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao">
<ImageButton
android:id="@+id/btn_back"
android:layout_width="@dimen/title_height"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackground"
android:contentDescription="@string/all_go_back"
android:gravity="center"
android:onClick="@{OnClickListener}"
android:padding="@dimen/all_margin"
android:src="@mipmap/back_black"
app:layout_constraintLeft_toLeftOf="parent"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/et_search"
style="@style/searchBarEditor"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:inputType="number"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginBottom="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{empty?View.GONE:View.VISIBLE}"/>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_vip"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -7,6 +7,16 @@ ...@@ -7,6 +7,16 @@
<import type="android.view.View" /> <import type="android.view.View" />
<import type="com.xingdata.zzdpos.util.ConvertUtil" />
<variable
name="orderAuthAmt"
type="long" />
<variable
name="orderPayAmt"
type="long" />
<variable <variable
name="defualtVip" name="defualtVip"
type="boolean" /> type="boolean" />
...@@ -28,17 +38,20 @@ ...@@ -28,17 +38,20 @@
type="int" /> type="int" />
<variable <variable
name="usePoint" name="ticketAmt"
type="boolean" /> type="long" />
<variable <variable
name="pointVip" name="avlPoints"
type="int" /> type="long" />
<variable <variable
name="pointAmt" name="pointDisAmt"
type="String" /> type="String" />
<variable
name="balance"
type="long" />
</data> </data>
...@@ -89,7 +102,7 @@ ...@@ -89,7 +102,7 @@
android:id="@+id/iv_level" android:id="@+id/iv_level"
android:layout_width="@dimen/settle_vip_level" android:layout_width="@dimen/settle_vip_level"
android:layout_height="@dimen/settle_vip_level" android:layout_height="@dimen/settle_vip_level"
android:visibility="@{defualtVip?View.GONE:View.VISIBLE}" android:visibility="@{defualtVip?View.INVISIBLE:View.VISIBLE}"
app:layout_constraintBottom_toBottomOf="@id/iv_head" app:layout_constraintBottom_toBottomOf="@id/iv_head"
app:layout_constraintRight_toRightOf="@id/iv_head" app:layout_constraintRight_toRightOf="@id/iv_head"
app:roundAsCircle="true" /> app:roundAsCircle="true" />
...@@ -99,7 +112,7 @@ ...@@ -99,7 +112,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin" android:layout_marginStart="@dimen/all_margin"
android:orientation="vertical" android:orientation="vertical"
android:visibility="@{defualtVip?View.GONE:View.VISIBLE}" android:visibility="@{defualtVip?View.INVISIBLE:View.VISIBLE}"
app:layout_constraintBottom_toTopOf="parent" app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/iv_head" app:layout_constraintLeft_toRightOf="@id/iv_head"
app:layout_constraintTop_toBottomOf="parent"> app:layout_constraintTop_toBottomOf="parent">
...@@ -126,7 +139,7 @@ ...@@ -126,7 +139,7 @@
android:text="@string/settle_select_vip" android:text="@string/settle_select_vip"
android:textColor="@color/black_zhangfei" android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_text_size"
android:visibility="@{defualtVip?View.VISIBLE:View.GONE}" android:visibility="@{defualtVip?View.VISIBLE:View.INVISIBLE}"
app:layout_constraintBottom_toTopOf="parent" app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/iv_head" app:layout_constraintLeft_toRightOf="@id/iv_head"
app:layout_constraintTop_toBottomOf="parent" /> app:layout_constraintTop_toBottomOf="parent" />
...@@ -138,7 +151,7 @@ ...@@ -138,7 +151,7 @@
android:text="@{@string/settle_vip_dis_rate_hint + disRate + @string/settle_vip_dis_rate}" android:text="@{@string/settle_vip_dis_rate_hint + disRate + @string/settle_vip_dis_rate}"
android:textColor="@color/black_zhangfei" android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_caption_size" android:textSize="@dimen/all_caption_size"
android:visibility="@{defualtVip?View.GONE:View.VISIBLE}" android:visibility="@{defualtVip?View.INVISIBLE:View.VISIBLE}"
app:layout_constraintBottom_toTopOf="parent" app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@id/iv_arrow" app:layout_constraintRight_toLeftOf="@id/iv_arrow"
app:layout_constraintTop_toBottomOf="parent" /> app:layout_constraintTop_toBottomOf="parent" />
...@@ -195,11 +208,11 @@ ...@@ -195,11 +208,11 @@
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_text_size" />
<TextView <TextView
android:id="@+id/tv_auth_amt"
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="end" android:gravity="end"
android:text="@{ConvertUtil.fenToYuan(orderAuthAmt,true)}"
android:textColor="@color/red_guanyu" android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -216,6 +229,7 @@ ...@@ -216,6 +229,7 @@
android:id="@+id/ll_ticket" android:id="@+id/ll_ticket"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/title_height" android:layout_height="@dimen/title_height"
android:clickable="@{avlTicketNum>0}"
android:foreground="?android:attr/selectableItemBackground" android:foreground="?android:attr/selectableItemBackground"
android:gravity="center" android:gravity="center"
android:paddingEnd="@dimen/all_margin" android:paddingEnd="@dimen/all_margin"
...@@ -240,7 +254,7 @@ ...@@ -240,7 +254,7 @@
android:paddingEnd="@dimen/all_padding" android:paddingEnd="@dimen/all_padding"
android:paddingStart="@dimen/all_padding" android:paddingStart="@dimen/all_padding"
android:paddingTop="@dimen/all_shape_radius" android:paddingTop="@dimen/all_shape_radius"
android:text="@{avlTicketNum + @string/settle_ticket_text}" android:text="@{ticketAmt>0 ?ConvertUtil.fenToYuanNoPoint(ticketAmt)+@string/settle_ticket_info : avlTicketNum + @string/settle_ticket_text}"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/all_caption_size" /> android:textSize="@dimen/all_caption_size" />
...@@ -263,6 +277,7 @@ ...@@ -263,6 +277,7 @@
android:id="@+id/ll_point" android:id="@+id/ll_point"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/title_height" android:layout_height="@dimen/title_height"
android:clickable="@{!defualtVip}"
android:foreground="?android:attr/selectableItemBackground" android:foreground="?android:attr/selectableItemBackground"
android:gravity="center" android:gravity="center"
android:paddingEnd="@dimen/all_margin" android:paddingEnd="@dimen/all_margin"
...@@ -281,7 +296,7 @@ ...@@ -281,7 +296,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing" android:layout_marginEnd="@dimen/all_spacing"
android:text="@{@string/settle_point_vip_text + pointVip + @string/settle_point_amt_text + pointAmt}" android:text="@{@string/settle_point_vip_text + avlPoints + @string/settle_point_amt_text + pointDisAmt}"
android:textColor="@color/black_likui" /> android:textColor="@color/black_likui" />
<CheckBox <CheckBox
...@@ -315,11 +330,11 @@ ...@@ -315,11 +330,11 @@
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_text_size" />
<TextView <TextView
android:id="@+id/tv_balance"
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="end" android:gravity="end"
android:text="@{ConvertUtil.fenToYuan(balance,true)}"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -375,10 +390,10 @@ ...@@ -375,10 +390,10 @@
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_text_size" />
<TextView <TextView
android:id="@+id/tv_pay_amt"
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:text="@{ConvertUtil.fenToYuan(orderPayAmt)}"
android:textColor="@color/red_guanyu" android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" /> android:textStyle="bold" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="selectedNum"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_ticket"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:gravity="center_vertical"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settle_ticket_selected"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:layout_marginStart="@dimen/all_spacing"
android:text='@{selectedNum+""}'
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settle_ticket_unit"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<TextView
android:id="@+id/tv_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big"
android:paddingTop="@dimen/all_spacing"
android:text="@string/all_confirm"
android:textColor="@color/white_caocao" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -9,12 +9,17 @@ ...@@ -9,12 +9,17 @@
</data> </data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin" android:layout_marginTop="@dimen/all_padding"
android:orientation="horizontal"> android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_padding"
android:orientation="horizontal">
<android.support.constraint.ConstraintLayout <android.support.constraint.ConstraintLayout
android:id="@+id/cl_item" android:id="@+id/cl_item"
...@@ -136,6 +141,15 @@ ...@@ -136,6 +141,15 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/vw_line"/> app:layout_constraintTop_toBottomOf="@+id/vw_line"/>
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/iv_select"
android:layout_width="30dp"
android:layout_height="30dp"
android:visibility="gone"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/all_margin"
android:src="@mipmap/but_elect02_stroke"/>
</RelativeLayout>
</layout> </layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<data>
<variable
name="ticket"
type="com.xingdata.zzdpos.model.Ticket" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:foreground="?android:attr/selectableItemBackground">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:baselineAligned="false"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_item"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2.3">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/return_ticket_one"
android:contentDescription="@null" />
<LinearLayout
android:id="@+id/ll_top"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/all_padding"
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_weight="4">
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_weight="1.8"
android:contentDescription="@null"
android:src="@mipmap/bg_return_ticker_logo" />
<TextView
android:id="@+id/tv_ticket_money"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="5"
android:gravity="center"
android:text="@string/tv_money"
android:textColor="@color/white"
android:textSize="@dimen/text_secondary_title"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_top"
app:layout_constraintVertical_weight="2">
<TextView
android:id="@+id/tv_date"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:text="@string/tv_date"
android:textColor="@color/white"
android:textSize="@dimen/et_textsize" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_send"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@mipmap/return_ticket_two"
android:contentDescription="@null" />
<TextView
android:id="@+id/tv_ticket_moneys"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:text="@string/money"
android:textColor="@color/white"
android:textSize="@dimen/text_primary_title_smile"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/vw_line"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/vw_line"
android:layout_width="0dp"
android:layout_height="@dimen/all_line_width"
android:layout_marginLeft="@dimen/all_padding"
android:layout_marginRight="@dimen/all_padding"
android:background="@color/gray1"
app:layout_constraintBottom_toTopOf="@id/tv_rule"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_ticket_moneys" />
<TextView
android:id="@+id/tv_rule"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center"
android:text="@string/tv_rule"
android:textColor="@color/white"
android:textSize="@dimen/et_textsize"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/vw_line" />
</android.support.constraint.ConstraintLayout>
</LinearLayout>
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="center"
app:backgroundImage="@color/gray_zhouyu"
app:layout_constraintBottom_toBottomOf="@id/iv_selected"
app:layout_constraintLeft_toLeftOf="@id/iv_selected"
app:layout_constraintRight_toRightOf="@id/iv_selected"
app:layout_constraintTop_toTopOf="@id/iv_selected"
app:roundAsCircle="true" />
<ImageView
android:id="@+id/iv_selected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/all_margin_big"
android:layout_marginTop="@dimen/all_spacing"
android:contentDescription="@null"
android:padding="@dimen/view_line_L1"
android:src="@mipmap/but_elect01"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<data>
<variable
name="OnClickListener"
type="com.xingdata.zzdpos.util.OnClickListener"/>
</data>
<LinearLayout
android:id="@+id/cl_vip"
android:layout_width="115dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tv_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/black_border_thr"
android:gravity="center"
android:maxEms="4"
android:maxLength="4"
android:padding="@dimen/all_padding"
android:singleLine="true"
android:text="全部会员"
android:textColor="@color/black"
android:textSize="@dimen/et_textsize"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tv_item_select"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/red_border_thr"
android:gravity="center"
android:maxEms="4"
android:maxLength="4"
android:padding="@dimen/all_padding"
android:singleLine="true"
android:text="全部会员"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/et_textsize"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</LinearLayout>
</layout>
...@@ -167,6 +167,7 @@ ...@@ -167,6 +167,7 @@
<dimen name="vip_message_view_height_big">110dp</dimen> <dimen name="vip_message_view_height_big">110dp</dimen>
<dimen name="vip_message_item_spacing">8dp</dimen> <dimen name="vip_message_item_spacing">8dp</dimen>
<integer name="vip_message_item_span_count">4</integer> <integer name="vip_message_item_span_count">4</integer>
<!--积分规则--> <!--积分规则-->
<dimen name="cl_padding">40dp</dimen> <dimen name="cl_padding">40dp</dimen>
...@@ -174,6 +175,7 @@ ...@@ -174,6 +175,7 @@
<dimen name="fragment_detail_padding_end">50dp</dimen> <dimen name="fragment_detail_padding_end">50dp</dimen>
<!--优惠券--> <!--优惠券-->
<dimen name="et_text_mini">13sp</dimen> <dimen name="et_text_mini">13sp</dimen>
<dimen name="ticker_vip_three_item_spacing">12dp</dimen>
<!--商品组合--> <!--商品组合-->
<dimen name="image_margin">30dp</dimen> <dimen name="image_margin">30dp</dimen>
<dimen name="textview_width">75dp</dimen> <dimen name="textview_width">75dp</dimen>
......
...@@ -527,6 +527,10 @@ ...@@ -527,6 +527,10 @@
<string name="settle_vip_search_empty">请输入会员手机号进行搜索~</string> <string name="settle_vip_search_empty">请输入会员手机号进行搜索~</string>
<string name="settle_vip_none">不需要会员</string> <string name="settle_vip_none">不需要会员</string>
<!--支付里的优惠券-->
<string name="settle_ticket_selected">已选</string>
<string name="settle_ticket_unit"></string>
<string name="settle_ticket_info">元优惠券</string>
<!--帮助POS--> <!--帮助POS-->
<string name="help_hint">帮助</string> <string name="help_hint">帮助</string>
......
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