Commit 52b14f10 authored by 王海's avatar 王海

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	.idea/modules.xml
#	app/src/main/java/com/xingdata/zzdpos/ui/manage/manageMenu/ManageMenuActivity.java
parents aa5df7f2 122d580a
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/TangKuPos.iml" filepath="$PROJECT_DIR$/TangKuPos.iml" /> <module fileurl="file://$PROJECT_DIR$/TangKuPos.iml" filepath="$PROJECT_DIR$/TangKuPos.iml" />
<module fileurl="file://D:\Work\Android\AndroidProject\XingData\TangKuPos\.idea\TangKuPos.iml" filepath="D:\Work\Android\AndroidProject\XingData\TangKuPos\.idea\TangKuPos.iml" />
<module fileurl="file://C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" filepath="C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules> </modules>
</component> </component>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_logo"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity <activity
...@@ -123,6 +123,11 @@ ...@@ -123,6 +123,11 @@
android:name=".ui.manage.inventory.InventoryActivity" android:name=".ui.manage.inventory.InventoryActivity"
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.user.UserActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -563,6 +563,7 @@ public class C { ...@@ -563,6 +563,7 @@ public class C {
public static final int GIFT = 4; public static final int GIFT = 4;
public static final int PKG = 5; public static final int PKG = 5;
public static final int SKU_DETAIL = 6; public static final int SKU_DETAIL = 6;
public static final int ADD_SKU = 7;
} }
......
...@@ -10,7 +10,6 @@ import com.xingdata.zzdpos.db.DBFactory; ...@@ -10,7 +10,6 @@ import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Category; import com.xingdata.zzdpos.model.Category;
import com.xingdata.zzdpos.model.Gbound; import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Mscard; import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.NewSssku;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Trule; import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Ubound; import com.xingdata.zzdpos.model.Ubound;
...@@ -477,6 +476,14 @@ public final class ApiFactory { ...@@ -477,6 +476,14 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<Pager<Trule>> truleQueryByVipId(long vipId) {
return Api.getInstance().service.truleQueryByVipId(vipId)
.onErrorReturn(new
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> truleDetail(String id) { public static Observable<String> truleDetail(String id) {
return Api.getInstance().service.truleDetail(id).onErrorReturn(new return Api.getInstance().service.truleDetail(id).onErrorReturn(new
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io()) ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
...@@ -582,8 +589,9 @@ public final class ApiFactory { ...@@ -582,8 +589,9 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<Pager<com.xingdata.zzdpos.model.Saleorder>> querySaleorderByVipId(Long vipId,int pageNumber ,int pageSize) {
return Api.getInstance().service.querySaleorderByVipId(vipId,pageNumber,pageSize) public static Observable<Pager<com.xingdata.zzdpos.model.Saleorder>> querySaleorderByVipId(Long vipId, int pageNumber, int pageSize) {
return Api.getInstance().service.querySaleorderByVipId(vipId, pageNumber, pageSize)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -658,7 +666,7 @@ public final class ApiFactory { ...@@ -658,7 +666,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<com.xingdata.zzdpos.model.Sssku> update(NewSssku sssku) { public static Observable<com.xingdata.zzdpos.model.Sssku> update(com.xingdata.zzdpos.model.Sssku sssku) {
return Api.getInstance().service.updateSssku(sssku) return Api.getInstance().service.updateSssku(sssku)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
...@@ -667,7 +675,7 @@ public final class ApiFactory { ...@@ -667,7 +675,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<com.xingdata.zzdpos.model.Sssku> addSssku(NewSssku sssku) { public static Observable<com.xingdata.zzdpos.model.Sssku> addSssku(com.xingdata.zzdpos.model.Sssku sssku) {
return Api.getInstance().service.addSssku(sssku) return Api.getInstance().service.addSssku(sssku)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
...@@ -811,11 +819,12 @@ public final class ApiFactory { ...@@ -811,11 +819,12 @@ public final class ApiFactory {
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
/** /**
* 查询充值记录 * 查询充值记录
*/ */
public static Observable<Pager<VipRechargeOrder>> queryRecharge(long vipId,int pageNum, int pageSize) { public static Observable<Pager<VipRechargeOrder>> queryRecharge(long vipId, int pageNum, int pageSize) {
return Api.getInstance().service.queryRecharge(vipId,pageNum, pageSize) return Api.getInstance().service.queryRecharge(vipId, pageNum, pageSize)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -961,8 +970,8 @@ public final class ApiFactory { ...@@ -961,8 +970,8 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<Pager<Vip>> queryUserDetailByWD(String keyword, int pageNumber) { public static Observable<Pager<Vip>> queryUserDetailByWD(String keyword) {
return Api.getInstance().service.queryDetailByWD(keyword, pageNumber, 12) return Api.getInstance().service.queryDetailByWD(keyword, 0, 200)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -970,8 +979,8 @@ public final class ApiFactory { ...@@ -970,8 +979,8 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<Pager<Vip>> getVipList(int pageNumber, String vipLevel) { public static Observable<Pager<Vip>> queryUserDetailByWD(String keyword, int pageNumber) {
return Api.getInstance().service.getVipList(vipLevel, pageNumber, 12) return Api.getInstance().service.queryDetailByWD(keyword, pageNumber, 12)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -979,6 +988,25 @@ public final class ApiFactory { ...@@ -979,6 +988,25 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<Pager<Vip>> getVipList(int pageNumber, String vipLevel) {
if (vipLevel == null) {
return Api.getInstance().service.getAllVipList(pageNumber, 12)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
} else {
return Api.getInstance().service.getVipList(vipLevel, pageNumber, 12)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
}
public static Observable<Vip> addVip(Vip user) { public static Observable<Vip> addVip(Vip user) {
return Api.getInstance().service.addVip(user) return Api.getInstance().service.addVip(user)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
......
...@@ -11,7 +11,6 @@ import com.xingdata.zzdpos.model.Gbound; ...@@ -11,7 +11,6 @@ import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Ms; import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Mscard; import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.NewSssku;
import com.xingdata.zzdpos.model.Notice; import com.xingdata.zzdpos.model.Notice;
import com.xingdata.zzdpos.model.Oper; import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Ossku; import com.xingdata.zzdpos.model.Ossku;
...@@ -197,7 +196,7 @@ interface ApiService { ...@@ -197,7 +196,7 @@ interface ApiService {
("pageSize") int pageSize); ("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query) @POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId,@Query("pageNumber") int pageNum, @Query Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId, @Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize); ("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query) @POST(C.URL.RCTRACE.query)
...@@ -314,6 +313,8 @@ interface ApiService { ...@@ -314,6 +313,8 @@ interface ApiService {
@POST(C.URL.TRULE.truleQuery) @POST(C.URL.TRULE.truleQuery)
Observable<HttpMessage<Pager<Trule>>> truleQuery(@Query("startDate") String data); Observable<HttpMessage<Pager<Trule>>> truleQuery(@Query("startDate") String data);
@POST(C.URL.TRULE.truleQuery)
Observable<HttpMessage<Pager<Trule>>> truleQueryByVipId(@Query("vipId") long vipId);
@POST(C.URL.TRULE.truleDetail) @POST(C.URL.TRULE.truleDetail)
Observable<HttpMessage<String>> truleDetail(@Query("id") String id); Observable<HttpMessage<String>> truleDetail(@Query("id") String id);
...@@ -386,13 +387,13 @@ interface ApiService { ...@@ -386,13 +387,13 @@ interface ApiService {
Observable<HttpMessage<List<Cor>>> queryAllCor(); Observable<HttpMessage<List<Cor>>> queryAllCor();
@POST(C.URL.SSSKU.add) @POST(C.URL.SSSKU.add)
Observable<HttpMessage<Sssku>> addSssku(@Body NewSssku sssku); Observable<HttpMessage<Sssku>> addSssku(@Body Sssku sssku);
@POST(C.URL.SSSKU.detail) @POST(C.URL.SSSKU.detail)
Observable<HttpMessage<Sssku>> detailSssku(@Query("id") Long id); Observable<HttpMessage<Sssku>> detailSssku(@Query("id") Long id);
@POST(C.URL.SSSKU.update) @POST(C.URL.SSSKU.update)
Observable<HttpMessage<Sssku>> updateSssku(@Body NewSssku sssku); Observable<HttpMessage<Sssku>> updateSssku(@Body Sssku sssku);
@POST(C.URL.LEVEL.add) @POST(C.URL.LEVEL.add)
Observable<HttpMessage<Level>> addVipLevel(@Body Level l); Observable<HttpMessage<Level>> addVipLevel(@Body Level l);
...@@ -438,5 +439,9 @@ interface ApiService { ...@@ -438,5 +439,9 @@ interface ApiService {
@Query("pageNumber") int pageNumber, @Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize); @Query("pageSize") int pageSize);
@POST(C.URL.VIP.query)
Observable<HttpMessage<Pager<Vip>>> getAllVipList(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize);
} }
...@@ -16,6 +16,7 @@ import com.xingdata.zzdpos.model.Ussku; ...@@ -16,6 +16,7 @@ import com.xingdata.zzdpos.model.Ussku;
import com.xingdata.zzdpos.ui.main.MainPresenter; import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.settle.SettlePresenter; import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.ui.store.StorePresenter; import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.util.StringUtil; import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -167,7 +168,21 @@ public class DBFactory { ...@@ -167,7 +168,21 @@ public class DBFactory {
.flatMap(ms -> Observable.just(getList(ms))); .flatMap(ms -> Observable.just(getList(ms)));
} }
} }
public static class Vip {
/**
* 查询支付渠道
*
* @return 支付渠道
*/
public static Observable<List<Pay>> queryPays() {
RealmQuery<Pay> query = DB.getInstance().get(VipPresenter.class).where(Pay.class);
query.equalTo("payDispFlag", 1);
return Observable.just(query.findAllSorted("payType", Sort.ASCENDING))
.flatMap(pays -> Observable.just(getList(pays)));
}
}
public static class Settle { public static class Settle {
/** /**
* 查询支付渠道 * 查询支付渠道
...@@ -182,6 +197,8 @@ public class DBFactory { ...@@ -182,6 +197,8 @@ public class DBFactory {
.flatMap(pays -> Observable.just(getList(pays))); .flatMap(pays -> Observable.just(getList(pays)));
} }
/** /**
* 查询营销活动 * 查询营销活动
* *
......
...@@ -960,7 +960,7 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo ...@@ -960,7 +960,7 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
@Override @Override
public String getPayAmt() { public String getPayAmt() {
return ConvertUtil.fenToYuan(orderPayAmt); return ConvertUtil.fenToYuan(orderPayAmt, true);
} }
@Override @Override
......
...@@ -33,6 +33,9 @@ public class Salepay { ...@@ -33,6 +33,9 @@ public class Salepay {
public String getPayName() { public String getPayName() {
String payName = ""; String payName = "";
if (payType==null){
payType=999;
}
switch (payType) { switch (payType) {
case C.PAY_CHANNEL.CASH: case C.PAY_CHANNEL.CASH:
payName = "现金"; payName = "现金";
...@@ -52,6 +55,8 @@ public class Salepay { ...@@ -52,6 +55,8 @@ public class Salepay {
case C.PAY_CHANNEL.TALLY: case C.PAY_CHANNEL.TALLY:
payName = "赊账"; payName = "赊账";
break; break;
default:
payName = "--";
} }
return payName; return payName;
} }
......
...@@ -11,7 +11,6 @@ import io.realm.annotations.PrimaryKey; ...@@ -11,7 +11,6 @@ import io.realm.annotations.PrimaryKey;
public class Sskugrp extends RealmObject implements BaseModel, BaseBean { public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
/** /**
* 创建默认分组 * 创建默认分组
* *
...@@ -116,4 +115,9 @@ public class Sskugrp extends RealmObject implements BaseModel, BaseBean { ...@@ -116,4 +115,9 @@ public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
public String getPrimaryKey() { public String getPrimaryKey() {
return "skuGrpId"; return "skuGrpId";
} }
@Override
public String toString() {
return getSkuGrpName();
}
} }
\ No newline at end of file
package com.xingdata.zzdpos.model;
import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
/**
* Created by Administrator on 2017/12/15.
*/
public class VipRechangeOrder implements BaseOrderPrint {
private Long cardAmtPay;
private Long cardAmtSend;
private Long rechangeBefore;
private Long rechangeAfter;
private String vipName;
private String rctraceNo;
private String vipMobile;
private Long createTime;
public Long getCreateTime() {
return createTime;
}
public void setCreateTime(Long createTime) {
this.createTime = createTime;
}
public Long getCardAmtPay() {
return cardAmtPay;
}
public void setCardAmtPay(Long cardAmtPay) {
this.cardAmtPay = cardAmtPay;
}
public Long getCardAmtSend() {
return cardAmtSend;
}
public void setCardAmtSend(Long cardAmtSend) {
this.cardAmtSend = cardAmtSend;
}
public String getVipName() {
return vipName;
}
public void setVipName(String vipName) {
this.vipName = vipName;
}
public String getRctraceNo() {
return rctraceNo;
}
public void setRctraceNo(String rctraceNo) {
this.rctraceNo = rctraceNo;
}
public String getVipMobile() {
return vipMobile;
}
public void setVipMobile(String vipMobile) {
this.vipMobile = vipMobile;
}
public Long getRechangeBefore() {
return rechangeBefore;
}
public void setRechangeBefore(Long rechangeBefore) {
this.rechangeBefore = rechangeBefore;
}
public Long getRechangeAfter() {
return rechangeAfter;
}
public void setRechangeAfter(Long rechangeAfter) {
this.rechangeAfter = rechangeAfter;
}
public String getVipname() {
return vipName;
}
public void setVipname(String vipname) {
this.vipName = vipname;
}
@Override
public String getPayAmt() {
if (cardAmtSend!=null&&cardAmtSend!=0){
return ConvertUtil.fenToYuan(cardAmtPay,false)+"+"+ConvertUtil.fenToYuan(cardAmtSend,false);
}else {
return ConvertUtil.fenToYuan(cardAmtPay,false);
}
}
@Override
public String getVip_money() {
return ConvertUtil.fenToYuan(getRechangeAfter(),false);
}
@Override
public String getBalanceOld() {
return ConvertUtil.fenToYuan(getRechangeBefore(),false);
}
@Override
public String getTitle() {
return LoginPresenter.loginReturnBean.getMerNameAbcn();
}
@Override
public String getStore() {
return LoginPresenter.loginReturnBean.getShopNameAbcn();
}
@Override
public String getOrderNo() {
return rctraceNo;
}
@Override
public String getOrderTime() {
return com.blankj.utilcode.util.TimeUtils.millis2String(createTime);
}
@Override
public String getCasherName() {
return LoginPresenter.loginReturnBean.getOperName();
}
@Override
public String getUserName() {
return vipName+"("+vipMobile.substring(vipMobile.length()-4)+")";
}
@Override
public String getPayChannel() {
return null;
}
@Override
public String getPayChange() {
return null;
}
@Override
public String getGoodsCnt() {
return null;
}
@Override
public String getGoodsAmtSum() {
return null;
}
@Override
public String getGoodsReduPer() {
return null;
}
@Override
public String getGoodsReduAmt() {
return null;
}
@Override
public List<BaseGoodPrint> getGoodList() {
return null;
}
@Override
public String getDRAW_URL() {
return null;
}
@Override
public String getPrint_state() {
return null;
}
@Override
public String getOper_mobile() {
return null;
}
@Override
public String getStore_tel() {
return null;
}
@Override
public String getSupplier() {
return null;
}
}
...@@ -42,6 +42,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin ...@@ -42,6 +42,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
private List<ItemMenuBottomBinding> itemMenuBottomBindings = new ArrayList<>(); private List<ItemMenuBottomBinding> itemMenuBottomBindings = new ArrayList<>();
private HandoverDialog mHandoverDialog = new HandoverDialog(); private HandoverDialog mHandoverDialog = new HandoverDialog();
LoadingDialog mLoadingDialog = new LoadingDialog(); LoadingDialog mLoadingDialog = new LoadingDialog();
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.activity_main; return R.layout.activity_main;
...@@ -49,7 +50,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin ...@@ -49,7 +50,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override @Override
public void initView() { public void initView() {
mainActivity=this; mainActivity = this;
mPresenter.initHandoverInfo(); mPresenter.initHandoverInfo();
List<BaseFragment> fragments = new ArrayList<>(); List<BaseFragment> fragments = new ArrayList<>();
fragments.add(new CasherFragment()); fragments.add(new CasherFragment());
...@@ -163,4 +164,9 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin ...@@ -163,4 +164,9 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
public void showHandoverDialog() { public void showHandoverDialog() {
mHandoverDialog.show(this); mHandoverDialog.show(this);
} }
@Override
public void onBackPressedSupport() {
}
} }
package com.xingdata.zzdpos.ui.main.fragment; package com.xingdata.zzdpos.ui.main.fragment;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
import android.view.View; import android.view.View;
...@@ -28,6 +29,8 @@ import java.util.List; ...@@ -28,6 +29,8 @@ import java.util.List;
public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBinding> { public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBinding> {
private MenuRecyclerAdapter mMenuRecyclerAdapter; private MenuRecyclerAdapter mMenuRecyclerAdapter;
private List<Integer> integers; private List<Integer> integers;
private Bundle bundle;
private Intent intent;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -55,11 +58,20 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi ...@@ -55,11 +58,20 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
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(), bundle = new Bundle();
VipActivity.class)); intent = new Intent(getActivity(),
VipActivity.class);
bundle.putInt("vipState", 0);
intent.putExtras(bundle);
ActivityUtils.startActivity(intent);
break; break;
case C.MENU.MENU_RECHARGE://充值 case C.MENU.MENU_RECHARGE://充值
bundle = new Bundle();
intent = new Intent(getActivity(),
VipActivity.class);
bundle.putInt("vipState", 1);
intent.putExtras(bundle);
ActivityUtils.startActivity(intent);
break; break;
case C.MENU.MENU_MS://营销 case C.MENU.MENU_MS://营销
ActivityUtils.startActivity(new Intent(getActivity(), ActivityUtils.startActivity(new Intent(getActivity(),
......
...@@ -11,16 +11,11 @@ import com.chad.library.adapter.base.BaseQuickAdapter; ...@@ -11,16 +11,11 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.databinding.ActivityMarketingMenuBinding; import com.xingdata.zzdpos.databinding.ActivityMarketingMenuBinding;
import com.xingdata.zzdpos.ui.manage.bale.BaleActivity;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryActivity; import com.xingdata.zzdpos.ui.manage.inventory.InventoryActivity;
import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectActivity; import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectActivity;
import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity; import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity; import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity;
import com.xingdata.zzdpos.ui.marketing.marketingMenu.MarketingMenuActivity;
import com.xingdata.zzdpos.ui.marketing.marketingMenu.adapter.MarketingMenuAdapter; import com.xingdata.zzdpos.ui.marketing.marketingMenu.adapter.MarketingMenuAdapter;
import com.xingdata.zzdpos.ui.marketing.ms.MsActivity;
import com.xingdata.zzdpos.ui.marketing.ticket.ReturnTicketActivity;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -62,7 +57,7 @@ public class ManageMenuActivity extends AppCompatActivity { ...@@ -62,7 +57,7 @@ public class ManageMenuActivity extends AppCompatActivity {
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
switch (marketingMenuAdapter.getData().get(position)) { switch (marketingMenuAdapter.getData().get(position)) {
case C.MENU.MENU_MANAGER_OPER: { case C.MENU.MENU_MANAGER_OPER: {
ActivityUtils.startActivity(ManageMenuActivity.this, UserActivity.class);
} }
break; break;
case C.MENU.MENU_MANAGER_GOODS: { case C.MENU.MENU_MANAGER_GOODS: {
......
...@@ -2,8 +2,10 @@ package com.xingdata.zzdpos.ui.manage.sssku; ...@@ -2,8 +2,10 @@ package com.xingdata.zzdpos.ui.manage.sssku;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils; import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils; import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
...@@ -12,6 +14,8 @@ import com.xingdata.zzdpos.model.Cor; ...@@ -12,6 +14,8 @@ import com.xingdata.zzdpos.model.Cor;
import com.xingdata.zzdpos.model.Sskugrp; import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku; import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.AddFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.DetailFragment; import com.xingdata.zzdpos.ui.manage.sssku.fragment.DetailFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.EditorFragment; import com.xingdata.zzdpos.ui.manage.sssku.fragment.EditorFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.ManagerFragment; import com.xingdata.zzdpos.ui.manage.sssku.fragment.ManagerFragment;
...@@ -26,6 +30,7 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -26,6 +30,7 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
private SearchFragment mSearchFragment = new SearchFragment(); private SearchFragment mSearchFragment = new SearchFragment();
private SkugrpFragment mSkugrpFragment = new SkugrpFragment(); private SkugrpFragment mSkugrpFragment = new SkugrpFragment();
private AddFragment mAddFragment = new AddFragment();
private EditorFragment mEditorFragment = new EditorFragment(); private EditorFragment mEditorFragment = new EditorFragment();
private DetailFragment mDetailFragment = new DetailFragment(); private DetailFragment mDetailFragment = new DetailFragment();
...@@ -52,7 +57,10 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -52,7 +57,10 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
return false; return false;
}); });
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> { mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> {
mPresenter.searchBarFocusChanged(b); mPresenter.searchBarFocusChanged(b, C.TITLE_MODE.SKU);
});
mViewBinding.btnMenu.setOnClickListener(view -> {
mPresenter.clickSkuMenu();
}); });
} }
...@@ -60,6 +68,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -60,6 +68,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
public void onBackPressedSupport() { public void onBackPressedSupport() {
} }
@Override
public void showMsg(String msg) {
ToastUtils.showShort(msg);
}
@Override @Override
public void loadSkus(List<Sssku> skus, boolean isRefresh) { public void loadSkus(List<Sssku> skus, boolean isRefresh) {
mManagerFragment.loadSkus(skus, isRefresh); mManagerFragment.loadSkus(skus, isRefresh);
...@@ -99,27 +112,51 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -99,27 +112,51 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mEditorFragment.loadCors(cors); mEditorFragment.loadCors(cors);
} }
@Override
public void loadPkgSku(Sssku pkgSku) {
mEditorFragment.loadPkgSku(pkgSku);
}
@Override
public void loadCheckSkus(List<Sssku> ssskus) {
mAddFragment.loadCheckSkus(ssskus);
}
@Override @Override
public void showSearchFragment(int searchType) { public void showSearchFragment(int searchType) {
if (mSearchFragment.isAdded()) return; if (mSearchFragment.isAdded()) return;
mViewBinding.etSearch.requestFocus();
this.showTitleBarByTitleMode(searchType); this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setSearchType(searchType)); this.start(mSearchFragment.setSearchType(searchType));
} }
@Override @Override
public void showEditorFragment(Sssku sku) { public void showAddFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT); this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update); mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku)); this.start(mAddFragment);
} }
@Override @Override
public void showEditorFragment() { public void showEditorFragment(Sssku sku, int editMode) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT); this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_add); switch (editMode) {
this.start(mEditorFragment); case C.SKU_EDITOR_MODE.ADD:
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.ADD));
break;
case C.SKU_EDITOR_MODE.UNKNOWN:
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UNKNOWN));
break;
case C.SKU_EDITOR_MODE.UPDATE:
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UPDATE));
break;
}
} }
@Override @Override
public void showDetailFragment(Sssku sku) { public void showDetailFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL); this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
...@@ -134,17 +171,40 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -134,17 +171,40 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
this.start(mSkugrpFragment); this.start(mSkugrpFragment);
} }
@Override
public void showSkuMenuDialog() {
mDetailFragment.showSkuMenuDialog();
}
@Override @Override
public void backToEditFragment() { public void backToEditFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT); this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.pop(); this.pop();
} }
@Override @Override
public void backToManagerFragment() { public void backToManagerFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU); this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.pop();
this.resetSearchBar(); this.resetSearchBar();
this.pop();
}
@Override
public void backToDetailFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
mViewBinding.tvTitle.setText(R.string.sssku_detail);
this.pop();
}
@Override
public void addSku(Sssku sssku) {
mManagerFragment.addSku(sssku);
}
@Override
public void updateSku(Sssku sssku) {
mManagerFragment.updateSku(sssku);
} }
@Override @Override
...@@ -157,6 +217,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -157,6 +217,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mLoadingDialog.dismiss(); mLoadingDialog.dismiss();
} }
@Override
public void startReplenishmentActivity() {
ActivityUtils.startActivity(this, ReplenishmentActivity.class);
}
/** /**
* 根据titleMode显示TitleBar * 根据titleMode显示TitleBar
* *
......
...@@ -12,6 +12,14 @@ import java.util.List; ...@@ -12,6 +12,14 @@ import java.util.List;
public interface SsskuContract { public interface SsskuContract {
interface View extends BaseView { interface View extends BaseView {
/**
* 显示文字内容
*
* @param msg 要显示的内容
*/
void showMsg(String msg);
/** /**
* 加载商品 * 加载商品
* *
...@@ -61,22 +69,37 @@ public interface SsskuContract { ...@@ -61,22 +69,37 @@ public interface SsskuContract {
*/ */
void loadCors(List<Cor> cors); void loadCors(List<Cor> cors);
/**
* 加载包装内的商品
*
* @param pkgSku 包装内商品
*/
void loadPkgSku(Sssku pkgSku);
/**
* 加载检查出来的商品列表
*
* @param ssskus 商品信息
*/
void loadCheckSkus(List<Sssku> ssskus);
/** /**
* 显示搜索页面 * 显示搜索页面
*/ */
void showSearchFragment(int searchType); void showSearchFragment(int searchType);
/** /**
* 显示编辑页面 * 显示添加检查页面
*
* @param sku 要编辑的商品
*/ */
void showEditorFragment(Sssku sku); void showAddFragment();
/** /**
* 显示编辑页面 * 显示编辑页面
*
* @param sku 要编辑的商品
* @param editMode 编辑模式
*/ */
void showEditorFragment(); void showEditorFragment(Sssku sku, int editMode);
/** /**
* 显示详情页面 * 显示详情页面
...@@ -90,6 +113,11 @@ public interface SsskuContract { ...@@ -90,6 +113,11 @@ public interface SsskuContract {
*/ */
void showSkugrpFragment(); void showSkugrpFragment();
/**
* 显示商品菜单对话框
*/
void showSkuMenuDialog();
/** /**
* 返回编辑页面 * 返回编辑页面
*/ */
...@@ -100,6 +128,25 @@ public interface SsskuContract { ...@@ -100,6 +128,25 @@ public interface SsskuContract {
*/ */
void backToManagerFragment(); void backToManagerFragment();
/**
* 返回详情页面
*/
void backToDetailFragment();
/**
* 添加商品
*
* @param sssku 要添加的商品
*/
void addSku(Sssku sssku);
/**
* 更新商品
*
* @param sssku 更新商品
*/
void updateSku(Sssku sssku);
/** /**
* 显示读取对话框 * 显示读取对话框
*/ */
...@@ -115,6 +162,10 @@ public interface SsskuContract { ...@@ -115,6 +162,10 @@ public interface SsskuContract {
*/ */
void dismissAllDialog(); void dismissAllDialog();
/**
* 跳转到补货界面
*/
void startReplenishmentActivity();
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
...@@ -153,6 +204,7 @@ public interface SsskuContract { ...@@ -153,6 +204,7 @@ public interface SsskuContract {
*/ */
public abstract void clickAddSku(); public abstract void clickAddSku();
/** /**
* 管理页面 - 点击添加分组 * 管理页面 - 点击添加分组
*/ */
...@@ -163,6 +215,11 @@ public interface SsskuContract { ...@@ -163,6 +215,11 @@ public interface SsskuContract {
*/ */
public abstract void clickReplenish(); public abstract void clickReplenish();
/**
* 添加页面 - 检查条码
*/
public abstract void clickCheck(String barcode);
/** /**
* 搜索页面 - 点击搜索 * 搜索页面 - 点击搜索
*/ */
...@@ -188,6 +245,20 @@ public interface SsskuContract { ...@@ -188,6 +245,20 @@ public interface SsskuContract {
*/ */
public abstract void clickEditSku(Sssku sssku); public abstract void clickEditSku(Sssku sssku);
/**
* 详情页面 - 编辑商品价格
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditPriceSku(Sssku sssku);
/**
* 详情页面 - 编辑商品会员信息
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditVipSku(Sssku sssku);
/** /**
* 分组页面 - 添加分组 * 分组页面 - 添加分组
* *
...@@ -209,11 +280,25 @@ public interface SsskuContract { ...@@ -209,11 +280,25 @@ public interface SsskuContract {
*/ */
public abstract void clickEditSkugrp(Sskugrp sskugrp); public abstract void clickEditSkugrp(Sskugrp sskugrp);
/**
* 编辑页面 - 点击提交按钮
*
* @param sssku 商品
* @param editorMode 编辑模式
*/
public abstract void clickConfirm(Sssku sssku, int editorMode);
/** /**
* 主页面 - 搜索框焦点改变 * 主页面 - 搜索框焦点改变
* *
* @param b 获取焦点 * @param b 获取焦点
* @param searchMode 搜索模式
*/
public abstract void searchBarFocusChanged(boolean b, int searchMode);
/**
* 主页面 - 点击菜单按钮
*/ */
public abstract void searchBarFocusChanged(boolean b); public abstract void clickSkuMenu();
} }
} }
package com.xingdata.zzdpos.ui.manage.sssku; package com.xingdata.zzdpos.ui.manage.sssku;
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.model.Sskugrp; import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku; import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.util.ConvertUtil;
public class SsskuPresenter extends SsskuContract.Presenter { public class SsskuPresenter extends SsskuContract.Presenter {
...@@ -55,7 +57,7 @@ public class SsskuPresenter extends SsskuContract.Presenter { ...@@ -55,7 +57,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override @Override
public void clickAddSku() { public void clickAddSku() {
mView.showEditorFragment(); mView.showAddFragment();
} }
@Override @Override
...@@ -65,7 +67,29 @@ public class SsskuPresenter extends SsskuContract.Presenter { ...@@ -65,7 +67,29 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override @Override
public void clickReplenish() { public void clickReplenish() {
//TODO 跳转到补货界面 mView.startReplenishmentActivity();
}
@Override
public void clickCheck(String barcode) {
if (StringUtils.isEmpty(barcode)) return;
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Scsku.queryScsku(barcode)
.doFinally(() -> mView.dismissLoadingDialog())
.subscribe(
ssskuPager -> {
if (ssskuPager.getList().size() > 1) {
mView.loadCheckSkus(ssskuPager.getList());
} else if (ssskuPager.getList().size() == 1) {
mView.showEditorFragment(ssskuPager.getList().get(0), C.SKU_EDITOR_MODE.ADD);
} else {
Sssku sssku = new Sssku();
sssku.setSpuBarcode(ConvertUtil.stringToLong(barcode));
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UNKNOWN);
}
})
);
} }
@Override @Override
...@@ -98,13 +122,27 @@ public class SsskuPresenter extends SsskuContract.Presenter { ...@@ -98,13 +122,27 @@ public class SsskuPresenter extends SsskuContract.Presenter {
); );
break; break;
case C.TITLE_MODE.PKG: case C.TITLE_MODE.PKG:
mView.loadPkgSku(sssku);
break;
case C.TITLE_MODE.ADD_SKU:
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.ADD);
break; break;
} }
} }
@Override @Override
public void clickEditSku(Sssku sssku) { public void clickEditSku(Sssku sssku) {
mView.showEditorFragment(sssku); mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UPDATE);
}
@Override
public void clickEditPriceSku(Sssku sssku) {
//TODO
}
@Override
public void clickEditVipSku(Sssku sssku) {
//TODO
} }
@Override @Override
...@@ -154,8 +192,54 @@ public class SsskuPresenter extends SsskuContract.Presenter { ...@@ -154,8 +192,54 @@ public class SsskuPresenter extends SsskuContract.Presenter {
} }
@Override @Override
public void searchBarFocusChanged(boolean b) { public void clickConfirm(Sssku sssku, int editorMode) {
if (b) mView.showSearchFragment(C.TITLE_MODE.SKU); switch (editorMode) {
case C.SKU_EDITOR_MODE.ADD:
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.addSku(sssku1);
}
},
throwable -> mView.showMsg(throwable.getMessage()));
break;
case C.SKU_EDITOR_MODE.UPDATE:
ApiFactory.Sssku.update(sssku).subscribe(
sssku1 -> {
mView.showMsg("修改成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.updateSku(sssku1);
}
}, throwable -> mView.showMsg(throwable.getMessage()));
break;
case C.SKU_EDITOR_MODE.UNKNOWN:
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.addSku(sssku1);
}
}, throwable -> mView.showMsg(throwable.getMessage()));
break;
}
}
@Override
public void searchBarFocusChanged(boolean b, int searchMode) {
if (b) mView.showSearchFragment(searchMode);
}
@Override
public void clickSkuMenu() {
mView.showSkuMenuDialog();
} }
/** /**
......
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogSsskuMenuBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SsskuMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSsskuMenuBinding> {
private Sssku mSssku;
@Override
protected boolean isTransparentBackground() {
return true;
}
public SsskuMenuDialog setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public int getLayoutId() {
return R.layout.dialog_sssku_menu;
}
@Override
public void initView() {
mViewBinding.tvCancel.setOnClickListener(view -> {
this.dismiss();
});
mViewBinding.tvUpdate.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditSku(mSssku);
});
mViewBinding.tvUpdatePrice.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditPriceSku(mSssku);
});
mViewBinding.tvUpdateVip.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditVipSku(mSssku);
});
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuAddBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class AddFragment extends BaseFragment<SsskuPresenter, FragmentSsskuAddBinding> {
private SkuAdapter<Sssku> mSkuAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_add;
}
@Override
public void initView() {
mViewBinding.etBarcode.requestFocus();
mViewBinding.etBarcode.setOnEditorActionListener((textView, i, keyEvent) -> {
if ((i == EditorInfo.IME_ACTION_SEARCH || i == EditorInfo.IME_ACTION_UNSPECIFIED) && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.clickCheck(mViewBinding.etBarcode.getText().toString());
}
return false;
});
mViewBinding.tvCheck.setOnClickListener(view -> {
mPresenter.clickCheck(mViewBinding.etBarcode.getText().toString());
});
// init sku
mSkuAdapter = new SkuAdapter<>();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
((SsskuActivity) getActivity()).backToManagerFragment();
mPresenter.clickSku(mSkuAdapter.getData().get(position), C.TITLE_MODE.ADD_SKU);
});
}
public void loadCheckSkus(List<Sssku> ssskus) {
mSkuAdapter.setNewData(ssskus);
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
...@@ -9,6 +9,7 @@ import com.xingdata.zzdpos.model.Sskugrp; ...@@ -9,6 +9,7 @@ import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku; import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity; import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter; import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SsskuMenuDialog;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -42,9 +43,6 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe ...@@ -42,9 +43,6 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe
break; break;
} }
} }
if (mSssku.getSkuFlag() == 1) {
}
} }
/** /**
...@@ -66,6 +64,13 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe ...@@ -66,6 +64,13 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe
this.mCors = cors; this.mCors = cors;
} }
/**
* 显示菜单
*/
public void showSkuMenuDialog() {
new SsskuMenuDialog().setSssku(mSssku).show((SsskuActivity) getActivity());
}
/** /**
* 设置商品 * 设置商品
* *
......
...@@ -129,6 +129,31 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM ...@@ -129,6 +129,31 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
mViewBinding.tvTotalCount.setText(String.valueOf(count)); mViewBinding.tvTotalCount.setText(String.valueOf(count));
} }
/**
* 添加商品
*
* @param sssku 要添加的商品
*/
public void addSku(Sssku sssku) {
mSkuAdapter.setEnableLoadMore(false);
mViewBinding.rlSku.scrollToPosition(0);
mSkuAdapter.addData(0, sssku);
}
/**
* 更新商品
*
* @param sssku 要更新的商品
*/
public void updateSku(Sssku sssku) {
for (int i = 0; i < mSkuAdapter.getData().size(); i++) {
if (mSkuAdapter.getData().get(i).getSkuId().longValue() == sssku.getSkuId().longValue()) {
mSkuAdapter.setData(i, sssku);
return;
}
}
}
/** /**
* 刷新商品 * 刷新商品
*/ */
......
...@@ -35,7 +35,14 @@ public class SearchFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSe ...@@ -35,7 +35,14 @@ public class SearchFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSe
// set sku listener // set sku listener
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku); mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> { mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
this.pop(); switch (mSearchType) {
case C.TITLE_MODE.SKU:
((SsskuActivity) getActivity()).backToManagerFragment();
break;
case C.TITLE_MODE.PKG:
((SsskuActivity) getActivity()).backToEditFragment();
break;
}
mPresenter.clickSku(mSkuAdapter.getData().get(position), mSearchType); mPresenter.clickSku(mSkuAdapter.getData().get(position), mSearchType);
}); });
......
package com.xingdata.zzdpos.ui.manage.user;
import android.os.Bundle;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityUserBinding;
import com.xingdata.zzdpos.databinding.ActivityVipBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.manage.user.fragment.UserListFragment;
import com.xingdata.zzdpos.ui.vip.VipContract;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.view.ViewTools;
import java.util.List;
public class UserActivity extends BaseActivity<UserPresenter, ActivityUserBinding> implements UserContract.View {
@Override
public int getLayoutId() {
return R.layout.activity_user;
}
@Override
public void initView() {
loadRootFragment(R.id.user_frame, mPresenter.userListFragment, true, false);
}
@Override
public void queryOperSus(Pager<Oper> operPager) {
mPresenter.userListFragment.queryOperSus(operPager);
}
}
package com.xingdata.zzdpos.ui.manage.user;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import java.util.List;
public interface UserContract {
interface View extends BaseView {
void queryOperSus(Pager<Oper> operPager);
}
abstract class Presenter extends BasePresenter<View> {
public abstract void getUserList(String wd);
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.manage.user;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.ui.manage.user.fragment.UserListFragment;
public class UserPresenter extends UserContract.Presenter {
public UserListFragment userListFragment = new UserListFragment();
@Override
public void onAttached() {
}
@Override
public void getUserList(String wd) {
ApiFactory.Oper.queryOper(wd).subscribe(operPager -> {
},throwable -> {
});
}
}
package com.xingdata.zzdpos.ui.manage.user.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemUserListItemBinding;
import com.xingdata.zzdpos.databinding.ItemVipListItemBinding;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.marketing.ms.model.User;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class UserListAdapter extends BaseAdapter<Oper, ItemUserListItemBinding> {
private Context mContext;
public UserListAdapter(Context mContext, @Nullable List<Oper> data) {
super(R.layout.item_user_list_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemUserListItemBinding mViewBinding, Oper item) {
}
}
package com.xingdata.zzdpos.ui.manage.user.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentUserListBinding;
import com.xingdata.zzdpos.databinding.FragmentVipListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.manage.user.UserPresenter;
import com.xingdata.zzdpos.ui.manage.user.adapter.UserListAdapter;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipListAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 店员管理界面
*/
public class UserListFragment extends BaseFragment<UserPresenter, FragmentUserListBinding> {
private UserListAdapter adapter;
private List<Oper> opers = new ArrayList<>();
private List<Level> levels = null;
@Override
public int getLayoutId() {
return R.layout.fragment_user_list;
}
@Override
public void initView() {
adapter = new UserListAdapter(getActivity(), opers);
mViewBinding.userRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.userRecyclerView.setAdapter(adapter);
adapter.setOnItemClickListener((adapter, view, position) -> {
});
adapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.userRecyclerView);
adapter.setEnableLoadMore(true);
mViewBinding.titleSearch.onBack.setOnClickListener(view -> {
getActivity().finish();
});
mViewBinding.setOnClickListener(view -> {
switch (view.getId()) {
case R.id.addUser:
break;
}
});
onRefresh();
}
private void onLoadMore(){
}
public void onRefresh() {
mPresenter.getUserList(null);
}
public void queryOperSus(Pager<Oper> operPager) {
adapter.setNewData(operPager.getList());
}
}
...@@ -213,11 +213,10 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -213,11 +213,10 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
* 加载支付方式 * 加载支付方式
*/ */
public void loadPays(List<Pay> pays) { public void loadPays(List<Pay> pays) {
for (int i = 0; i < pays.size(); i++) { // for (int i = 0; i < pays.size(); i++) {
pays.get(i).init(); // pays.get(i).init();
} // }
mPays.addAll(pays); mPayAdapter.setNewData(pays);
mPayAdapter.setNewData(getAvlPays(Vip.createDefault()));
} }
......
...@@ -26,6 +26,7 @@ import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding; ...@@ -26,6 +26,7 @@ import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding;
import com.xingdata.zzdpos.model.Cs; import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.Saledetail; import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Salepay;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.VipRechargeOrder; import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
...@@ -34,6 +35,9 @@ import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryDetailAdapter; ...@@ -34,6 +35,9 @@ import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryDetailAdapter;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
import java.util.ArrayList;
import java.util.List;
public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPresenter, ActivityStatisticsDetailBinding> implements StatisticsDetailContract.View { public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPresenter, ActivityStatisticsDetailBinding> implements StatisticsDetailContract.View {
...@@ -121,7 +125,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese ...@@ -121,7 +125,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.btnReturn.setOnClickListener(new OnClickListener() { mViewBinding.btnReturn.setOnClickListener(new OnClickListener() {
@Override @Override
protected void myOnClickListener(View v) { protected void myOnClickListener(View v) {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, cs); ZX_PrintPOS.getInstance(MainActivity.mainActivity).printInventory(1, cs);
mViewBinding.btnReturn.setEnabled(false); mViewBinding.btnReturn.setEnabled(false);
mViewBinding.btnReturn.setText("已打印"); mViewBinding.btnReturn.setText("已打印");
...@@ -233,7 +237,12 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese ...@@ -233,7 +237,12 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.btnPrint.setOnClickListener(new OnClickListener() { mViewBinding.btnPrint.setOnClickListener(new OnClickListener() {
@Override @Override
protected void myOnClickListener(View v) { protected void myOnClickListener(View v) {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, mSaleorder); try {
ZX_PrintPOS.getInstance(StatisticsDetailActivity.this).print(1, mSaleorder);
} catch (Exception e) {
ToastUtils.showShort("打印异常");
}
mViewBinding.btnPrint.setEnabled(false); mViewBinding.btnPrint.setEnabled(false);
mViewBinding.btnPrint.setText("已打印"); mViewBinding.btnPrint.setText("已打印");
} }
......
...@@ -39,9 +39,10 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -39,9 +39,10 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
@Override @Override
public void initView() { public void initView() {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
switch (fragmentMenu) { switch (fragmentMenu) {
case C.MENU.MENU_STATISTICS_ORDER: case C.MENU.MENU_STATISTICS_ORDER:
mViewBinding.viewLine.setVisibility(View.GONE);
FragmentUtils.add(getChildFragmentManager(), mOrderMainFragment, mViewBinding.mainFrame.getId(), false, true); FragmentUtils.add(getChildFragmentManager(), mOrderMainFragment, mViewBinding.mainFrame.getId(), false, true);
mViewBinding.icTitle.edTitle.setOnFocusChangeListener(new View.OnFocusChangeListener() { mViewBinding.icTitle.edTitle.setOnFocusChangeListener(new View.OnFocusChangeListener() {
...@@ -105,6 +106,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -105,6 +106,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
break; break;
case C.MENU.MENU_STATISTICS_MS: case C.MENU.MENU_STATISTICS_MS:
mViewBinding.viewLine.setVisibility(View.GONE);
FragmentUtils.add(getChildFragmentManager(), mMsMainFragment, mViewBinding.mainFrame.getId(), false, true); FragmentUtils.add(getChildFragmentManager(), mMsMainFragment, mViewBinding.mainFrame.getId(), false, true);
mViewBinding.icTitle.edTitle.setVisibility(View.GONE); mViewBinding.icTitle.edTitle.setVisibility(View.GONE);
mViewBinding.icTitle.tvTitle.setText(R.string.menu_ms); mViewBinding.icTitle.tvTitle.setText(R.string.menu_ms);
...@@ -123,6 +125,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -123,6 +125,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
mViewBinding.icTitle.setOnClickListener(new OnClickListener() { mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override @Override
protected void myOnClickListener(View v) { protected void myOnClickListener(View v) {
mViewBinding.viewLine.setVisibility(View.GONE);
if (mViewBinding.icTitle.edTitle.isFocused()) { if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus(); mViewBinding.icTitle.edTitle.clearFocus();
return; return;
...@@ -150,6 +153,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -150,6 +153,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
} }
public void searchSuc(Pager<Saleorder> saleorderPager, int payType) { public void searchSuc(Pager<Saleorder> saleorderPager, int payType) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) { if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus(); mViewBinding.icTitle.edTitle.clearFocus();
} }
...@@ -163,6 +167,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -163,6 +167,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
} }
public void searchSuc(Pager<Saleorder> saleorderPager, String wd) { public void searchSuc(Pager<Saleorder> saleorderPager, String wd) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) { if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus(); mViewBinding.icTitle.edTitle.clearFocus();
} }
...@@ -177,6 +182,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -177,6 +182,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
} }
public void searchSuc(Pager<Saleorder> saleorderPager, long start, long end) { public void searchSuc(Pager<Saleorder> saleorderPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) { if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus(); mViewBinding.icTitle.edTitle.clearFocus();
} }
...@@ -191,6 +197,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -191,6 +197,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
public void searchRechargeSuc(Pager<VipRechargeOrder> vipRechargeOrderPager, long start, long end) { public void searchRechargeSuc(Pager<VipRechargeOrder> vipRechargeOrderPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (!mRechargeSearchFragment.isAdded()) { if (!mRechargeSearchFragment.isAdded()) {
mRechargeSearchFragment.setCreateData(vipRechargeOrderPager, start, end); mRechargeSearchFragment.setCreateData(vipRechargeOrderPager, start, end);
FragmentUtils.add(getChildFragmentManager(), mRechargeSearchFragment, mViewBinding.mainFrame.getId(), false, true); FragmentUtils.add(getChildFragmentManager(), mRechargeSearchFragment, mViewBinding.mainFrame.getId(), false, true);
...@@ -201,6 +208,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -201,6 +208,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
} }
public void searchTicketSuc(Pager<Ticket> ticketPager, long start, long end) { public void searchTicketSuc(Pager<Ticket> ticketPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (!mTicketSearchFragment.isAdded()) { if (!mTicketSearchFragment.isAdded()) {
mTicketSearchFragment.setCreateData(ticketPager, start, end); mTicketSearchFragment.setCreateData(ticketPager, start, end);
FragmentUtils.add(getChildFragmentManager(), mTicketSearchFragment, mViewBinding.mainFrame.getId(), false, true); FragmentUtils.add(getChildFragmentManager(), mTicketSearchFragment, mViewBinding.mainFrame.getId(), false, true);
...@@ -212,6 +220,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F ...@@ -212,6 +220,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
@Override @Override
public boolean onBackPressedSupport() { public boolean onBackPressedSupport() {
mViewBinding.viewLine.setVisibility(View.GONE);
if (mViewBinding.icTitle.edTitle.isFocused()) { if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus(); mViewBinding.icTitle.edTitle.clearFocus();
return true; return true;
......
package com.xingdata.zzdpos.ui.vip; package com.xingdata.zzdpos.ui.vip;
import android.os.Bundle;
import android.view.View;
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.ActivityVipBinding; import com.xingdata.zzdpos.databinding.ActivityVipBinding;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard; import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta; import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder; import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
import com.xingdata.zzdpos.view.ViewTools;
import java.util.List; import java.util.List;
public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding> implements VipContract.View { public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding> implements VipContract.View {
private Bundle mBundle;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.activity_vip; return R.layout.activity_vip;
} }
@Override @Override
public void initView() { public void initView() {
mBundle = getIntent().getExtras();
mPresenter.vipListFragment.setVipState(mBundle.getInt("vipState"));
loadRootFragment(R.id.vip_frame, mPresenter.vipListFragment, true, false); loadRootFragment(R.id.vip_frame, mPresenter.vipListFragment, true, false);
} }
...@@ -50,12 +61,46 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding> ...@@ -50,12 +61,46 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding>
@Override @Override
public void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager) { public void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager) {
mPresenter.vipRechargeListFragment.getRechargeOrderSus(rechargeOrderPager); mPresenter.vipRechargeListFragment.getRechargeOrderSus(rechargeOrderPager);
}
@Override
public void getTruleSus(Pager<Trule> trulePager) {
mPresenter.vipMscardListFragment.getTruleSus(trulePager);
}
@Override
public void searchVipSus(Pager<Vip> vips) {
mPresenter.vipSearchFragment.searchVipSus(vips);
} }
@Override @Override
public void getMscardSus(Pager<Mscard> mscardPager) { public void getMscardSus(Pager<Mscard> mscardPager) {
mPresenter.vipMscardListFragment.getMscardSus(mscardPager); mPresenter.vipRechargeFragment.getMscardSus(mscardPager);
}
@Override
public void loadPays(List<Pay> pays) {
mPresenter.vipRechargeFragment.loadPays(pays);
}
@Override
public void rechangeSus(Vip v) {
ViewTools.toastSuss(this, "充值成功");
mPresenter.vipRechargeFragment.pop();
mPresenter.vipListFragment.onRefresh();
}
@Override
public void rechangeErr(Vip vip, Long amtPay, Long amtSend, String mes) {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_ERROR, "支付失败").setCustomButton("重新支付", new View.OnClickListener() {
@Override
public void onClick(View view) {
mPresenter.fullVip(vip, amtPay, amtSend);
promptDialog.dismiss();
}
}).show(this);
} }
@Override @Override
......
...@@ -5,9 +5,11 @@ import com.xingdata.zzdpos.base.BaseView; ...@@ -5,9 +5,11 @@ import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard; import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta; import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder; import com.xingdata.zzdpos.model.VipRechargeOrder;
...@@ -32,9 +34,14 @@ public interface VipContract { ...@@ -32,9 +34,14 @@ public interface VipContract {
void getSaleorderSus(Pager<Saleorder> saleorderPager); void getSaleorderSus(Pager<Saleorder> saleorderPager);
void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager); void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager);
void getMscardSus(Pager<Mscard> rechargeOrderPager);
void getTruleSus(Pager<Trule> trulePager);
void searchVipSus(Pager<Vip> vips);
void getMscardSus(Pager<Mscard> mscardPager);
void loadPays(List<Pay> pays);
void rechangeSus(Vip v);
void rechangeErr(Vip v, Long amtPay, Long amtSend,String mes);
} }
...@@ -54,6 +61,12 @@ public interface VipContract { ...@@ -54,6 +61,12 @@ public interface VipContract {
public abstract void rechargeorderQuery(Long vipID, int number); public abstract void rechargeorderQuery(Long vipID, int number);
public abstract void mscardQuery(Long vipID); public abstract void truleQuery(Long vipID);
public abstract void searchVip(String keyword);
public abstract void getMscardList(long vipID);
public abstract void initSettle();
public abstract void fullVip(Vip vipOld, Long amtPay, Long amtSend);
} }
} }
\ No newline at end of file
package com.xingdata.zzdpos.ui.vip; package com.xingdata.zzdpos.ui.vip;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.App;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.api.ApiFactory; import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment; import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipSearchFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipTruleListFragment;
import java.util.ArrayList;
import java.util.List;
public class VipPresenter extends VipContract.Presenter { public class VipPresenter extends VipContract.Presenter {
public VipListFragment vipListFragment = new VipListFragment(); public VipListFragment vipListFragment = new VipListFragment();
...@@ -17,10 +34,14 @@ public class VipPresenter extends VipContract.Presenter { ...@@ -17,10 +34,14 @@ public class VipPresenter extends VipContract.Presenter {
public VipInfoFragment vipInfoFragment = new VipInfoFragment(); public VipInfoFragment vipInfoFragment = new VipInfoFragment();
public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment(); public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment();
public VipRechargeListFragment vipRechargeListFragment = new VipRechargeListFragment(); public VipRechargeListFragment vipRechargeListFragment = new VipRechargeListFragment();
public VipMscardListFragment vipMscardListFragment = new VipMscardListFragment(); public VipTruleListFragment vipMscardListFragment = new VipTruleListFragment();
public VipSearchFragment vipSearchFragment = new VipSearchFragment();
public VipRechargeFragment vipRechargeFragment = new VipRechargeFragment();
public int inVipState=0; //1 充值
@Override @Override
public void onAttached() { public void onAttached() {
this.initRealm();
} }
...@@ -92,7 +113,7 @@ public class VipPresenter extends VipContract.Presenter { ...@@ -92,7 +113,7 @@ public class VipPresenter extends VipContract.Presenter {
} }
@Override @Override
public void rechargeorderQuery(Long vipID,int number) { public void rechargeorderQuery(Long vipID, int number) {
ApiFactory.Rctrace.queryRecharge(vipID, number, 10).subscribe(rechargeOrderPager -> { ApiFactory.Rctrace.queryRecharge(vipID, number, 10).subscribe(rechargeOrderPager -> {
mView.getRechargeOrderSus(rechargeOrderPager); mView.getRechargeOrderSus(rechargeOrderPager);
}, throwable -> { }, throwable -> {
...@@ -102,16 +123,94 @@ public class VipPresenter extends VipContract.Presenter { ...@@ -102,16 +123,94 @@ public class VipPresenter extends VipContract.Presenter {
} }
@Override @Override
public void mscardQuery(Long vipID) { public void truleQuery(Long vipID) {
ApiFactory.MsCard.mscardQuery(vipID).subscribe(mscardPager -> { ApiFactory.TRULE.truleQueryByVipId(vipID).subscribe(trulePager -> {
mView.getMscardSus(mscardPager); mView.getTruleSus(trulePager);
}, throwable -> { }, throwable -> {
ToastUtils.showShort(throwable.getMessage()); ToastUtils.showShort(throwable.getMessage());
}); });
}
@Override
public void searchVip(String keyword) {
ApiFactory.User.queryUserDetailByWD(keyword).subscribe(
vipPager -> {
mView.searchVipSus(vipPager);
},
throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void getMscardList(long vipID) {
ApiFactory.MsCard.mscardQuery(vipID).subscribe(
mscardPager -> {
mView.getMscardSus(mscardPager);
},
throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@SuppressLint("ResourceType")
public RadioButton addRadioButton(Context mContext, Mscard mscard) {
RadioButton radioButton = new RadioButton(mContext);
// ArrayList<RadioButton> radioButtons = new ArrayList<>();
radioButton.setTextSize(18);
radioButton.setTag(mscard.getCruleGradeNo());
radioButton.setText("充:" + mscard.getCruleChargeAmt() / 100);
radioButton.setButtonDrawable(null);
radioButton.setGravity(Gravity.CENTER);
radioButton.getPaint().setFakeBoldText(true);
radioButton.setBackgroundResource(R.drawable.selector_paymoney_radiobutton_bg);
radioButton.setTextColor(mContext.getResources().getColorStateList(R.drawable.selector_paymoney_textcolor_bg));
return radioButton;
}
public Mscard getMaxRechange(List<Mscard> realm, Long rechangeMoney) {
Mscard mMscard = null;
ArrayList<String> strings = new ArrayList<>();
long rechangeM = 0;
for (Mscard mscard : realm) {
if (rechangeMoney >= mscard.getCruleChargeAmt()) {
rechangeM = mscard.getCruleChargeAmt();
mMscard = mscard;
}
}
return mMscard;
}
@Override
public void initSettle() {
// Realm.getInstance(App.instance.mRealmConfig).
DBFactory.Vip.queryPays().subscribe(
pays -> mView.loadPays(pays),
throwable -> {
}
);
// mView.setSettleFragmentBySettleMode(mSettleMode);
} }
@Override
public void fullVip(Vip vipOld, Long amtPay, Long amtSend) {
ApiFactory.Recard.fullVip(vipOld.getVipId(), amtPay, amtSend).subscribe(vip -> {
VipRechargeOrder mVipRechangeOrdervip=vip.getRctrace();
mVipRechangeOrdervip.setCreateTime(vip.getUpdateTime());
mVipRechangeOrdervip.setRechangeBefore(vipOld.getAcctCbal());
mVipRechangeOrdervip.setRechangeAfter(vip.getAcctCbal());
try {
ZX_PrintPOS.getInstance(App.instance).printSave(1,mVipRechangeOrdervip);
}catch (Exception e){
ToastUtils.showShort("打印异常");
}
mView.rechangeSus(vip);
}, throwable -> {
mView.rechangeErr(vipOld, amtPay, amtSend,throwable.getMessage());
});
}
} }
...@@ -3,14 +3,10 @@ package com.xingdata.zzdpos.ui.vip.adapter; ...@@ -3,14 +3,10 @@ package com.xingdata.zzdpos.ui.vip.adapter;
import android.content.Context; import android.content.Context;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter; import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding; import com.xingdata.zzdpos.databinding.ItemVipMscardItemBinding;
import com.xingdata.zzdpos.model.Mscard; import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil; import com.xingdata.zzdpos.util.StringUtil;
...@@ -21,18 +17,30 @@ import java.util.List; ...@@ -21,18 +17,30 @@ import java.util.List;
* Created by JM_DEV on 2017/12/25. * Created by JM_DEV on 2017/12/25.
*/ */
public class VipMscardAdapter extends BaseAdapter<Mscard, ItemVipExpenseItemBinding> { public class VipTruleAdapter extends BaseAdapter<Trule, ItemVipMscardItemBinding> {
private Context mContext; private Context mContext;
private String shopName; private String shopName;
public VipMscardAdapter(Context mContext, @Nullable List<Mscard> data) { public VipTruleAdapter(Context mContext, @Nullable List<Trule> data) {
super(R.layout.item_vip_expense_item, data); super(R.layout.item_vip_mscard_item, data);
this.mContext = mContext; this.mContext = mContext;
} }
@Override @Override
protected void convert(ItemVipExpenseItemBinding mViewBinding, Mscard item) { protected void convert(ItemVipMscardItemBinding mViewBinding, Trule item) {
mViewBinding.truleName.setText(item.getTruleName());
mViewBinding.truleMoney.setText(ConvertUtil.fenToYuanNoZero(item.getTruleValAmt()));
mViewBinding.truleValidity.setText(mContext.getString(R.string.vip_mscard_period_of_validity, StringUtil.format(new Date(item.getTruleExp()), "yyyy.MM.dd"), StringUtil.format(new Date(item.getTruleExp()), "yyyy.MM.dd")));
mViewBinding.truleCondition.setText(ConvertUtil.fenToYuanNoPoint(item.getTruleOrderAmt()));
if (item.getTruleStatus().toString().equals("0")) {
mViewBinding.truleBgLeft.setBackgroundResource(R.mipmap.return_ticket_one);
mViewBinding.truleBgRight.setBackgroundResource(R.mipmap.return_ticket_two);
} else {
mViewBinding.truleBgLeft.setBackgroundResource(R.mipmap.bg_return_ticket03);
mViewBinding.truleBgRight.setBackgroundResource(R.mipmap.bg_return_ticket04);
}
// mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay())); // mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
// mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn()); // mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
// //设置支付方式 // //设置支付方式
......
...@@ -4,14 +4,11 @@ import com.xingdata.zzdpos.R; ...@@ -4,14 +4,11 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseSheetDialog; import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogVipMenuBinding; import com.xingdata.zzdpos.databinding.DialogVipMenuBinding;
import com.xingdata.zzdpos.databinding.FragmentVipInfoBinding;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipContract;
import com.xingdata.zzdpos.ui.vip.VipPresenter; import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipTruleListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
import java.util.List; import java.util.List;
...@@ -49,7 +46,7 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe ...@@ -49,7 +46,7 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe
break; break;
//優惠券詳情 //優惠券詳情
case R.id.voucherDetails: case R.id.voucherDetails:
mPresenter.vipMscardListFragment = new VipMscardListFragment(); mPresenter.vipMscardListFragment = new VipTruleListFragment();
mPresenter.vipMscardListFragment.setVip(mVip); mPresenter.vipMscardListFragment.setVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipMscardListFragment); ((BaseActivity) getActivity()).start(mPresenter.vipMscardListFragment);
break; break;
......
...@@ -24,6 +24,7 @@ import com.xingdata.zzdpos.model.Sta; ...@@ -24,6 +24,7 @@ import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipPresenter; import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipListAdapter; import com.xingdata.zzdpos.ui.vip.adapter.VipListAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -37,6 +38,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -37,6 +38,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
private List<Level> levels = null; private List<Level> levels = null;
private int pageNumber = 0; private int pageNumber = 0;
private String strVipLevle; private String strVipLevle;
private int vipState = 0;//0 会员 1 充值
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -48,6 +50,11 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -48,6 +50,11 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
vipListAdapter = new VipListAdapter(getActivity(), vips); vipListAdapter = new VipListAdapter(getActivity(), vips);
mViewBinding.vipRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.vipRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.vipRecyclerView.setAdapter(vipListAdapter); mViewBinding.vipRecyclerView.setAdapter(vipListAdapter);
if (vipState != 0) {
mViewBinding.vipCountAddTodayTitle.setText("充值金额");
mViewBinding.vipCountTitle.setText("今日充值");
mViewBinding.addVipLinearLayout.setVisibility(View.GONE);
}
mViewBinding.vipRefresh.setOnRefreshListener(this::onRefresh); mViewBinding.vipRefresh.setOnRefreshListener(this::onRefresh);
vipListAdapter.setOnItemClickListener((adapter, view, position) -> { vipListAdapter.setOnItemClickListener((adapter, view, position) -> {
toStartVipInfo(vipListAdapter.getData().get(position)); toStartVipInfo(vipListAdapter.getData().get(position));
...@@ -66,12 +73,15 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -66,12 +73,15 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
break; break;
} }
}); });
// mViewBinding.titleSearch.serchEditText.setOnFocusChangeListener((View view, boolean b) -> { mViewBinding.titleSearch.serchEditText.setOnClickListener(view -> {
// if (b){ mPresenter.vipSearchFragment.setLevel(levels);
// VipSearchFragment vipSearchFragment = new VipSearchFragment(); if (vipState==0){
// vipSearchFragment.setBaseFragment(new VipInfoFragment()); mPresenter.vipSearchFragment.setBaseFragment(mPresenter.vipInfoFragment);
// } }else {
// }); mPresenter.vipSearchFragment.setBaseFragment(mPresenter.vipRechargeFragment);
}
start(mPresenter.vipSearchFragment);
});
mPresenter.getVipLevel(0, 200); mPresenter.getVipLevel(0, 200);
mPresenter.getVipNumber(); mPresenter.getVipNumber();
} }
...@@ -86,7 +96,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -86,7 +96,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
RadioButton radioButton = ((RadioButton) mViewBinding.vipLevelR.findViewById(buttonID)); RadioButton radioButton = ((RadioButton) mViewBinding.vipLevelR.findViewById(buttonID));
if (radioButton.isChecked()) { if (radioButton.isChecked()) {
strVipLevle = radioButton.getTag().toString(); strVipLevle = radioButton.getTag()==null?null:radioButton.getTag().toString();
radioButton.getPaint().setFakeBoldText(true); radioButton.getPaint().setFakeBoldText(true);
radioButton.setTextSize(17); radioButton.setTextSize(17);
vipListAdapter.setEnableLoadMore(true); vipListAdapter.setEnableLoadMore(true);
...@@ -114,8 +124,9 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -114,8 +124,9 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void getVipLevelSus(Pager<Level> levelPager) { public void getVipLevelSus(Pager<Level> levelPager) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
layoutParams.height = 120; Level allLevel = new Level();
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; allLevel.setVipLevelName("全部会员");
mViewBinding.vipLevelR.addView(addRadioButton(layoutParams, allLevel));
for (int i = 0; i < levelPager.getPageSize(); i++) { for (int i = 0; i < levelPager.getPageSize(); i++) {
mViewBinding.vipLevelR.addView(addRadioButton(layoutParams, levelPager.getList().get(i))); mViewBinding.vipLevelR.addView(addRadioButton(layoutParams, levelPager.getList().get(i)));
} }
...@@ -129,7 +140,8 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -129,7 +140,8 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
}); });
if (levelPager.getList().size() != 0) { if (levelPager.getList().size() != 0) {
((RadioButton) mViewBinding.vipLevelR.getChildAt(0)).setChecked(true); ((RadioButton) mViewBinding.vipLevelR.getChildAt(0)).setChecked(true);
mPresenter.getVipList(0, mViewBinding.vipLevelR.getChildAt(0).getTag().toString()); //如果是空查询全部会员
// mPresenter.getVipList(0,mViewBinding.vipLevelR.getChildAt(0).getTag()== null ? null : mViewBinding.vipLevelR.getChildAt(0).getTag().toString());
} }
levels = levelPager.getList(); levels = levelPager.getList();
...@@ -139,7 +151,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -139,7 +151,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
mPresenter.getVipList(pageNumber, strVipLevle); mPresenter.getVipList(pageNumber, strVipLevle);
} }
private void onRefresh() { public void onRefresh() {
pageNumber = 0; pageNumber = 0;
mPresenter.getVipList(pageNumber, strVipLevle); mPresenter.getVipList(pageNumber, strVipLevle);
mPresenter.getVipNumber(); mPresenter.getVipNumber();
...@@ -165,15 +177,21 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -165,15 +177,21 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void toStartVipInfo(Vip vip) { public void toStartVipInfo(Vip vip) {
mPresenter.vipRechargeFragment.setVip(vip);
if (vip != null) { if (vip != null) {
mPresenter.vipInfoFragment.setVip(vip); if (vipState==0){
mPresenter.vipInfoFragment.setLevel(levels); mPresenter.vipInfoFragment.setVip(vip);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment); mPresenter.vipInfoFragment.setLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment);
}else {
((BaseActivity) getActivity()).start(mPresenter.vipRechargeFragment);
}
} else { } else {
mPresenter.vipInfoEditFragment.setVipLevel(levels); mPresenter.vipInfoEditFragment.setVipLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment); ((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
} }
} }
public void addVipSus(Vip vip) { public void addVipSus(Vip vip) {
...@@ -183,7 +201,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -183,7 +201,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
* @param sta * @param sta
*/ */
public void getVipNumberSus(Sta sta) { public void getVipNumberSus(Sta sta) {
mViewBinding.vipCount.setText(sta.getVipCount() + ""); if (vipState!=0){
mViewBinding.vipCountAddToday.setText(sta.getVipAddCount() + ""); mViewBinding.vipCount.setText(sta.getCardCount()+ "");
mViewBinding.vipCountAddToday.setText("¥"+ConvertUtil.fenToYuan2(sta.getCardAmt()));
}else {
mViewBinding.vipCount.setText(sta.getVipCount() + "");
mViewBinding.vipCountAddToday.setText(sta.getVipAddCount() + "");
}
}
public void setVipState(int vipState) {
this.vipState = vipState;
} }
} }
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.text.Editable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.SpannedString;
import android.text.TextWatcher;
import android.text.style.AbsoluteSizeSpan;
import android.view.ViewTreeObserver;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipRechargeBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.settle.adapter.PayAdapter;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* 会员充值界面
*/
@SuppressLint("ValidFragment")
public class VipRechargeFragment extends BaseFragment<VipPresenter, FragmentVipRechargeBinding> {
private List<Level> levels;
private List<Mscard> mscards = new ArrayList<>();
private LinearLayout.LayoutParams layoutParams = null;
private HashMap<String, Mscard> mscardHashMap = new HashMap<>();
private PayAdapter mPayAdapter;
private List<Pay> mPays = new ArrayList<>();
private int inWight;
@Override
public int getLayoutId() {
return R.layout.fragment_vip_recharge;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.tvTitle.setText("充值");
mViewBinding.vipBalance.setText(getString(R.string.vip_balance_text, ConvertUtil.fenToYuan2(mVip.getAcctCbal())));
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
mPresenter.getMscardList(mVip.getVipId());
mPayAdapter = new PayAdapter();
mViewBinding.rlPay.setAdapter(mPayAdapter);
mViewBinding.rlPay.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));
mViewBinding.rlPay.addItemDecoration(new RecyclerViewUtil.GridSpacingItemDecoration(3, 24, true));
mPayAdapter.setOnItemClickListener((adapter, view, position) -> {
if (mViewBinding.rechargAMT.getText() == null || ConvertUtil.yuanToFen(mViewBinding.rechargAMT.getText().toString().trim()) <= 0) {
ToastUtils.showShort("请选择充值金额");
return;
}
mPresenter.fullVip(mVip, ConvertUtil.yuanToFen(mViewBinding.rechargAMT.getText().toString()), ConvertUtil.yuanToFen(mViewBinding.sendAmt.getText().toString()));
});
mViewBinding.setOnCheckedChangeListener((radioGroup, i) -> {
if (radioGroup.getCheckedRadioButtonId() != -1) {
RadioButton radioButton = radioGroup.findViewById(radioGroup.getCheckedRadioButtonId());
Mscard mscard = mscardHashMap.get(radioButton.getTag().toString());
setMoney(ConvertUtil.fenToYuan2(mscard.getCruleChargeAmt()), ConvertUtil.fenToYuan2(mscard.getCruleSendAmt()));
mViewBinding.stealMoney.setText("");
}
});
ViewTreeObserver observer = mViewBinding.payMoneyLayout.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout() {
mViewBinding.payMoneyLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
ViewTreeObserver observer = mViewBinding.payMoneyLayout.getViewTreeObserver();
inWight = mViewBinding.payMoneyLayout.getWidth();
mPresenter.initSettle();
}
});
}
@Override
public boolean onBackPressedSupport() {
pop();
return true;
}
public void setVipLevel(List<Level> levels) {
this.levels = levels;
}
public void setVip(Vip mVip) {
this.mVip = mVip;
}
@SuppressLint("ResourceAsColor")
public void getMscardSus(Pager<Mscard> mscardPager) {
mscards.clear();
mscards.addAll(mscardPager.getList());
layoutParams = new LinearLayout.LayoutParams(inWight/3, LinearLayout.LayoutParams.MATCH_PARENT, 1);
layoutParams.setMargins(0, 0, 20, 0);
int mscardLength = 0;
if (mscards.size() <= 3) {
mscardLength = mscards.size();
} else {
mscardLength = 3;
}
for (int i = 0; i < mscardLength; i++) {
Mscard mscard = mscards.get(i);
mscardHashMap.put(mscard.getCruleGradeNo().toString(), mscard);
RadioButton radioButton = mPresenter.addRadioButton(mContext, mscard);
radioButton.setLayoutParams(layoutParams);
mViewBinding.payMoneyLayout.addView(radioButton);
}
String hintStr = "自定义金额";
SpannableString ss = new SpannableString(hintStr);
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(8, true);
mViewBinding.stealMoney.setHintTextColor(R.color.black_likui);
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mViewBinding.stealMoney.setHint(new SpannedString(ss));
mViewBinding.stealMoney.setOnFocusChangeListener((mView1, b) ->
{
//如果点击输入框按钮都清空点击事件
if (b) {
mViewBinding.payMoneyLayout.clearCheck();
setMoney("0", "0");
}
});
//输入监听
mViewBinding.stealMoney.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (mViewBinding.stealMoney.getText().length() == 0)
return;
Mscard mscard = mPresenter.getMaxRechange(mscards, ConvertUtil.yuanToFen(mViewBinding.stealMoney.getText().toString()));
String strSend = "0";
if (mscard == null) {
strSend = "0";
} else {
strSend = ConvertUtil.fenToYuan2(mscard.getCruleSendAmt());
}
setMoney(mViewBinding.stealMoney.getText().toString(), strSend);
}
});
}
/**
* 设置左边金额
*
* @param rechangeMoney
* @param sendMoney
*/
private void setMoney(String rechangeMoney, String sendMoney) {
mViewBinding.sendAmt.setText(sendMoney);
mViewBinding.rechargAMT.setText(rechangeMoney);
// mViewBinding.rechangeMoney.setText(rechangeMoney);
mViewBinding.recargeAccount.setText(ConvertUtil.fenToYuan2(ConvertUtil.yuanToFen(sendMoney) + ConvertUtil.yuanToFen(rechangeMoney)));
}
/**
* 加载支付方式
*/
public void loadPays(List<Pay> pays) {
for (int i = 0; i < pays.size(); i++) {
pays.get(i).init();
}
mPays.clear();
mPays.addAll(pays);
mPayAdapter.setNewData(getAvlPays(Vip.createDefault()));
}
List<Pay> getAvlPays(Vip vip) {
List<Pay> _pays = new ArrayList<>();
for (int i = 0; i < mPays.size(); i++) {
if (!mPays.get(i).isNeedVip() || (!vip.isDefaultVip() && (mPays.get(i).getPayType() != C.PAY_CHANNEL.CARD)))
_pays.add(mPays.get(i));
}
return _pays;
}
}
...@@ -7,6 +7,8 @@ package com.xingdata.zzdpos.ui.vip.fragment; ...@@ -7,6 +7,8 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.view.View; import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
...@@ -14,6 +16,7 @@ import com.xingdata.zzdpos.base.BaseActivity; ...@@ -14,6 +16,7 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipRechargeListBinding; import com.xingdata.zzdpos.databinding.FragmentVipRechargeListBinding;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder; import com.xingdata.zzdpos.model.VipRechargeOrder;
...@@ -23,6 +26,7 @@ import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog; ...@@ -23,6 +26,7 @@ import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
...@@ -34,6 +38,11 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment ...@@ -34,6 +38,11 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment
private List<VipRechargeOrder> orders = new ArrayList<>(); private List<VipRechargeOrder> orders = new ArrayList<>();
private int pageNumber = 0; private int pageNumber = 0;
private List<Level> levels; private List<Level> levels;
private LinearLayout.LayoutParams layoutParams = null;
private HashMap<String, Mscard> mscardHashMap = new HashMap<>();
private ArrayList<Mscard> mscards = new ArrayList<>();
private ArrayList<String> strLevels = new ArrayList<>();
private EditText serchEditText;
@Override @Override
...@@ -71,7 +80,7 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment ...@@ -71,7 +80,7 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment
vipRechargeAdapter.setEnableLoadMore(false); vipRechargeAdapter.setEnableLoadMore(false);
} }
private void onRefresh() { public void onRefresh() {
pageNumber = 0; pageNumber = 0;
mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber); mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber);
} }
......
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentViplevelTitleBinding;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
/**
* 会员消费充值记录
*/
public class VipRecordFragment extends BaseFragment<VipPresenter, FragmentViplevelTitleBinding> {
@Override
public int getLayoutId() {
return R.layout.fragment_viplevel_title;
}
@Override
public void initView() {
}
}
...@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.vip.fragment; ...@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.view.View; import android.view.View;
import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import com.blankj.utilcode.util.KeyboardUtils; import com.blankj.utilcode.util.KeyboardUtils;
...@@ -10,10 +11,14 @@ import com.xingdata.zzdpos.C; ...@@ -10,10 +11,14 @@ 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.FragmentSendTickerVipBinding; import com.xingdata.zzdpos.databinding.FragmentSendTickerVipBinding;
import com.xingdata.zzdpos.databinding.FragmentVipSerchBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter; import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.ui.sendticke.adapter.VipAdapter; import com.xingdata.zzdpos.ui.sendticke.adapter.VipAdapter;
import com.xingdata.zzdpos.ui.settle.SettleActivity; import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
import java.util.List; import java.util.List;
...@@ -22,9 +27,10 @@ import java.util.List; ...@@ -22,9 +27,10 @@ import java.util.List;
/** /**
* 会员搜索界面 * 会员搜索界面
*/ */
public class VipSearchFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> { public class VipSearchFragment extends BaseFragment<VipPresenter, FragmentVipSerchBinding> {
private VipAdapter mVipAdapter; private VipAdapter mVipAdapter;
private BaseFragment baseFragment; private BaseFragment baseFragment;
private List<Level> level;
public void setBaseFragment(BaseFragment baseFragment) { public void setBaseFragment(BaseFragment baseFragment) {
this.baseFragment = baseFragment; this.baseFragment = baseFragment;
...@@ -32,7 +38,7 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen ...@@ -32,7 +38,7 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.fragment_send_ticker_vip; return R.layout.fragment_vip_serch;
} }
@Override @Override
...@@ -46,10 +52,13 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen ...@@ -46,10 +52,13 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string ((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string
.settle_vip_search_empty); .settle_vip_search_empty);
mVipAdapter.setEmptyView(emptyView); mVipAdapter.setEmptyView(emptyView);
((EditText) mViewBinding.etSearch).requestFocus();
mVipAdapter.setOnItemClickListener((adapter, view, position) -> { mVipAdapter.setOnItemClickListener((adapter, view, position) -> {
if (baseFragment instanceof VipInfoFragment) { if (baseFragment instanceof VipInfoFragment) {
((VipInfoFragment) baseFragment).setLevel(this.level);
((VipInfoFragment) baseFragment).setVip(mVipAdapter.getData().get(position)); ((VipInfoFragment) baseFragment).setVip(mVipAdapter.getData().get(position));
}else if (baseFragment instanceof VipRechargeFragment){
((VipRechargeFragment) baseFragment).setVip(mVipAdapter.getData().get(position));
} }
startWithPop(baseFragment); startWithPop(baseFragment);
}); });
...@@ -60,7 +69,11 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen ...@@ -60,7 +69,11 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
case R.id.btn_back: { case R.id.btn_back: {
pop(); pop();
} }
break; case R.id.search_ImageButton:
mPresenter.searchVip(mViewBinding.etSearch.getText().toString());
break;
default: { default: {
} }
...@@ -68,22 +81,12 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen ...@@ -68,22 +81,12 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
} }
} }
}); });
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> { // mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
KeyboardUtils.hideSoftInput(textView); // KeyboardUtils.hideSoftInput(textView);
mPresenter.searchVip(textView.getText().toString()); // mPresenter.searchVip(textView.getText().toString());
return false; // return false;
}); // });
}
/**
* 加载会员信息
*
* @param vips 会员列表
*/
public void loadVips(List<Vip> vips) {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
} }
...@@ -94,4 +97,18 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen ...@@ -94,4 +97,18 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
} }
super.onDestroyView(); super.onDestroyView();
} }
public void searchVipSus(Pager<Vip> vips) {
mVipAdapter.setNewData(vips.getList());
}
public void setLevel(List<Level> level) {
this.level = level;
}
@Override
public void onResume() {
super.onResume();
mViewBinding.etSearch.setText("");
}
} }
...@@ -12,16 +12,13 @@ import com.blankj.utilcode.util.ToastUtils; ...@@ -12,16 +12,13 @@ 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.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding;
import com.xingdata.zzdpos.databinding.FragmentVipMscardListBinding; import com.xingdata.zzdpos.databinding.FragmentVipMscardListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard; import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipPresenter; import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipExpenseAdapter; import com.xingdata.zzdpos.ui.vip.adapter.VipTruleAdapter;
import com.xingdata.zzdpos.ui.vip.adapter.VipMscardAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog; import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
...@@ -32,9 +29,9 @@ import java.util.List; ...@@ -32,9 +29,9 @@ import java.util.List;
* 优惠券列表 * 优惠券列表
*/ */
@SuppressLint("ValidFragment") @SuppressLint("ValidFragment")
public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVipMscardListBinding> { public class VipTruleListFragment extends BaseFragment<VipPresenter, FragmentVipMscardListBinding> {
private VipMscardAdapter adapter; private VipTruleAdapter adapter;
private List<Mscard> mscards = new ArrayList<>(); private List<Trule> trules = new ArrayList<>();
private int valid = 0; private int valid = 0;
private int inValid = 0; private int inValid = 0;
...@@ -49,7 +46,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi ...@@ -49,7 +46,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
@Override @Override
public void initView() { public void initView() {
mViewBinding.infoTitle.tvTitle.setText("优惠券详情"); mViewBinding.infoTitle.tvTitle.setText("优惠券详情");
adapter = new VipMscardAdapter(getActivity(), mscards); adapter = new VipTruleAdapter(getActivity(), trules);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(adapter); mViewBinding.rechargeRecyclerView.setAdapter(adapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh); mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
...@@ -57,7 +54,6 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi ...@@ -57,7 +54,6 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName())); mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.popMenu.setVisibility(View.GONE); mViewBinding.infoTitle.popMenu.setVisibility(View.GONE);
mViewBinding.vipDiscount.setText(getString(R.string.vip_info_discount, ConvertUtil.discount(mVip.getVipDefDiscount()))); mViewBinding.vipDiscount.setText(getString(R.string.vip_info_discount, ConvertUtil.discount(mVip.getVipDefDiscount())));
adapter.setEnableLoadMore(true);
adapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView); adapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> { mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity()); new VipEditMenuDialog().show((BaseActivity) getActivity());
...@@ -74,7 +70,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi ...@@ -74,7 +70,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
} }
private void onRefresh() { private void onRefresh() {
mPresenter.mscardQuery(mVip.getVipId()); mPresenter.truleQuery(mVip.getVipId());
} }
@Override @Override
...@@ -89,31 +85,34 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi ...@@ -89,31 +85,34 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
} }
public void getMscardSus(Pager<Mscard> mscardPager) { public void getTruleSus(Pager<Trule> trulePager) {
if (mscardPager.isFirstPage()) { if (trulePager.isFirstPage()) {
mscards.clear(); trules.clear();
} }
if (mscardPager.getList().size() != 0) { if (trulePager.getList().size() != 0) {
mscards.addAll(mscardPager.getList()); trules.addAll(trulePager.getList());
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
// pageNumber = mscardPager.getPageNumber() + 1; // pageNumber = mscardPager.getPageNumber() + 1;
} }
getMscardValid(); getMscardValid();
if (mscardPager.isLastPage()) { if (trulePager.isLastPage()) {
ToastUtils.showShort("没有更多数据"); ToastUtils.showShort("没有更多数据");
} }
mViewBinding.mscardValid.setText(valid+ ""); mViewBinding.mscardValid.setText(valid+ "");
mViewBinding.macardInvalid.setText(inValid+""); mViewBinding.macardInvalid.setText(inValid+"");
adapter.setEnableLoadMore(!mscardPager.isLastPage()); adapter.setEnableLoadMore(false);
adapter.loadMoreComplete(); adapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false); mViewBinding.rechargeRefresh.setRefreshing(false);
} }
private void getMscardValid() { private void getMscardValid() {
for (Mscard m : mscards) { valid=0;
if (m.getCruleStatus().toString().equals("0")) { inValid=0;
for (Trule t : trules) {
if (t.getTruleStatus().toString().equals("0")) {
valid = valid + 1; valid = valid + 1;
} else { } else {
inValid = inValid + 1; inValid = inValid + 1;
......
...@@ -25,8 +25,8 @@ public final class SystemUtil { ...@@ -25,8 +25,8 @@ public final class SystemUtil {
* @return 设备型号 * @return 设备型号
*/ */
public static String getDeviceModel() { public static String getDeviceModel() {
// return DeviceUtils.getModel(); return DeviceUtils.getModel();
return "AECRC10";
} }
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_black_layout" android:state_checked="false"/>
<item android:drawable="@drawable/shape_red_layout" android:state_checked="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/darkgray" android:state_checked="false" />
<item android:color="@color/deep_red" android:state_checked="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="0.1dp"
android:color="@color/black1" />
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="3dp"
android:bottomRightRadius="3dp"
android:topLeftRadius="3dp"
android:topRightRadius="3dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="0.1dp"
android:color="@color/deep_red" />
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="3dp"
android:bottomRightRadius="3dp"
android:topLeftRadius="3dp"
android:topRightRadius="3dp" />
</shape>
\ No newline at end of file
...@@ -52,7 +52,6 @@ ...@@ -52,7 +52,6 @@
android:textColor="@color/black_likui" android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai" android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_text_size" />
</LinearLayout> </LinearLayout>
<TextView <TextView
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
android:id="@+id/cl_title" android:id="@+id/cl_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:animateLayoutChanges="true"
android:background="@color/white_caocao" android:background="@color/white_caocao"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true"> android:focusableInTouchMode="true">
...@@ -52,7 +51,7 @@ ...@@ -52,7 +51,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:inputType="number" android:inputType="text"
android:labelFor="@+id/et_search" android:labelFor="@+id/et_search"
android:textColor="@color/black_likui" android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai" android:textColorHint="@color/gray_huanggai"
...@@ -72,6 +71,20 @@ ...@@ -72,6 +71,20 @@
app:layout_constraintLeft_toRightOf="parent" app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" /> app:layout_constraintRight_toLeftOf="parent" />
<ImageButton
android:id="@+id/btn_menu"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:background="?attr/actionBarItemBackground"
android:contentDescription="@string/all_go_back"
android:gravity="center"
android:padding="@dimen/all_margin"
android:src="@mipmap/click_down"
android:visibility="@{titleMode==6?0:8}"
app:layout_constraintRight_toRightOf="parent" />
<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"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/user_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/all_margin"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_white_r1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_update"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming"
android:visibility="gone" />
<TextView
android:id="@+id/tv_update_price"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_price"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size"
android:visibility="gone" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming"
android:visibility="gone" />
<TextView
android:id="@+id/tv_update_vip"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_vip"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size"
android:visibility="gone" />
</LinearLayout>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_white_r1"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:padding="@dimen/all_spacing"
android:text="@string/all_cancel"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -84,13 +84,13 @@ ...@@ -84,13 +84,13 @@
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050" android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai" android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" /> app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050" android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai" android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" /> app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" />
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>
</layout> </layout>
\ No newline at end of file
...@@ -41,5 +41,10 @@ ...@@ -41,5 +41,10 @@
</android.support.v4.view.ViewPager> </android.support.v4.view.ViewPager>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="@id/tab_layout" />
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>
</layout> </layout>
\ No newline at end of file
...@@ -80,7 +80,6 @@ ...@@ -80,7 +80,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@id/ll_title" android:layout_below="@id/ll_title"
android:background="@color/white_caocao"
android:gravity="center" android:gravity="center"
android:orientation="vertical" android:orientation="vertical"
android:visibility="gone"> android:visibility="gone">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
android:id="@+id/tab_layout" android:id="@+id/tab_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="30dp" android:layout_height="30dp"
android:background="@color/white_caocao" android:background="@drawable/singleline_white_gray"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:tabIndicatorHeight="0dp" app:tabIndicatorHeight="0dp"
app:tabMinWidth="100dp" app:tabMinWidth="100dp"
......
...@@ -11,12 +11,10 @@ ...@@ -11,12 +11,10 @@
<!-- TODO: Update blank fragmfragment_integral_indexyout --> <!-- TODO: Update blank fragmfragment_integral_indexyout -->
<android.support.v4.widget.SwipeRefreshLayout <android.support.v4.widget.SwipeRefreshLayout
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"
......
<?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="dataCount"
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_marginTop="@dimen/all_spacing"
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">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingEnd="@null"
android:paddingStart="@dimen/all_margin"
android:text="@string/sku_barcode"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3">
<EditText
android:id="@+id/et_barcode"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/transparent"
android:gravity="center_vertical"
android:inputType="number"
android:labelFor="@+id/et_barcode"
android:saveEnabled="false"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:id="@+id/tv_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/actionBarItemBackground"
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/sku_check"
android:textColor="@color/white_caocao" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{dataCount>0?View.VISIBLE:View.GONE}" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -397,6 +397,22 @@ ...@@ -397,6 +397,22 @@
android:layout_height="@dimen/all_line_width" android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" /> android:background="@color/gray_huanggai" />
<TextView
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:gravity="center_vertical"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:text="@string/sku_subtitle_pack"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
...@@ -420,7 +436,7 @@ ...@@ -420,7 +436,7 @@
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text='@{sku.spuUnitName+" "+sku.spuDownNum}' /> android:text='@{ "1"+sku.spuUnitName+" = "+sku.spuDownNum + @string/sssku_pack_default_unit}' />
<TextView <TextView
android:id="@+id/tv_product_name" android:id="@+id/tv_product_name"
......
...@@ -159,5 +159,17 @@ ...@@ -159,5 +159,17 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/guideline" /> app:layout_constraintTop_toTopOf="@id/guideline" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" />
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>
</layout> </layout>
\ No newline at end of file
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L1" android:layout_height="@dimen/view_line_L1"
android:background="@color/gray_zhouyu" android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent"/> app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>
......
...@@ -22,6 +22,12 @@ ...@@ -22,6 +22,12 @@
layout="@layout/title_order" layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_line"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="@id/ic_title" />
<FrameLayout <FrameLayout
android:id="@+id/main_frame" android:id="@+id/main_frame"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="android.view.View.OnClickListener" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">
<include
android:id="@+id/title_search"
layout="@layout/title_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="@dimen/view_line_L5"
android:background="@color/line1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:background="@color/white"
android:orientation="horizontal">
<TextView
android:id="@+id/user_count_title"
style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="店员数量" />
<TextView
android:id="@+id/vip_count_add_today_title"
style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="今日新增" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<TextView
android:id="@+id/vip_count"
style="@style/default_blacktext_bigstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/vip_count_add_today"
style="@style/default_blacktext_bigstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textSize="22sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/addVipLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:id="@+id/addUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{onClickListener}"
android:orientation="horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="5dp"
android:background="@mipmap/add_bg" />
<TextView
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加店员"
android:textColor="@color/deep_red"
android:textSize="22sp" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="@dimen/view_line_L5"
android:background="@color/line1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_margin_left"
android:layout_weight="1"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/user_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/userRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout> <layout>
<data> <data>
<variable <variable
name="onClickListener" name="onClickListener"
type="android.view.View.OnClickListener" /> type="android.view.View.OnClickListener" />
...@@ -15,6 +17,7 @@ ...@@ -15,6 +17,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:orientation="horizontal"> android:orientation="horizontal">
<include <include
android:id="@+id/title_search" android:id="@+id/title_search"
layout="@layout/title_search" layout="@layout/title_search"
...@@ -49,6 +52,7 @@ ...@@ -49,6 +52,7 @@
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/vip_count_title"
style="@style/default_blacktext_smallstyle" style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -57,6 +61,7 @@ ...@@ -57,6 +61,7 @@
android:text="本店会员" /> android:text="本店会员" />
<TextView <TextView
android:id="@+id/vip_count_add_today_title"
style="@style/default_blacktext_smallstyle" style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -93,7 +98,7 @@ ...@@ -93,7 +98,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/addVipLinearLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
......
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
style="@style/default_blacktext_smallstyle" style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="可用优惠卷" /> android:text="可用优惠卷" />
<TextView <TextView
android:id="@+id/macard_invalid" android:id="@+id/macard_invalid"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
<variable
name="onCheckedChangeListener"
type="android.widget.RadioGroup.OnCheckedChangeListener" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg"
android:orientation="vertical">
<include
android:id="@+id/info_title"
layout="@layout/title_pop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/all_margin"
android:background="@mipmap/mk_grade01" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:layout_weight="1"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:id="@+id/vip_name"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/vip_mobile"
style="@style/default_blacktext_nopadding_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:textColor="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/vip_balance"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/all_margin"
android:text="@string/vip_balance_text" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/all_margin_left"
android:gravity="center_vertical"
android:orientation="vertical">
<RadioGroup
android:id="@+id/pay_money_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginBottom="@dimen/all_margin"
android:gravity="center_vertical"
android:onCheckedChanged="@{onCheckedChangeListener}"
android:orientation="horizontal"></RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_weight="2"
android:id="@+id/stealLayout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/selector_paymoney_radiobutton_bg"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="充:"
android:textSize="20sp" />
<EditText
android:id="@+id/steal_money"
android:singleLine="true"
style="@style/dialog_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="1234567890."
android:inputType="phone"
android:maxLength="6"
android:onClick="@{onClickListener}"
android:textCursorDrawable="@null" />
</LinearLayout>
<View
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="1dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:text="送:" />
<TextView
android:id="@+id/sendAmt"
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/deep_red" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="实际到帐:" />
<TextView
android:id="@+id/recargeAccount"
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/white"
android:orientation="horizontal">
<TextView
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:layout_weight="1"
android:text="充值金额:" />
<TextView
android:id="@+id/rechargAMT"
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:textColor="@color/deep_red" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_pay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray_zhouyu"
android:textAppearance="@android:style/TextAppearance.Large" />
</LinearLayout>
</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>
<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:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" />
<TextView
style="@style/textView_body"
android:id="@+id/search_ImageButton"
android:layout_width="60dp"
android:layout_height="match_parent"
android:onClick="@{OnClickListener}"
android:text="搜索" />
</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
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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