Commit f831f4d6 authored by zhang_z's avatar zhang_z

提交代码;

parent c4a3caf6
......@@ -11,9 +11,6 @@ android {
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk{
abiFilters("armeabi", "armeabi-v7a","x86")
}
}
//解决问题的代码
dexOptions {
......@@ -47,7 +44,6 @@ android {
sourceSets {
main {
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
jniLibs.srcDirs = ['libs']
}
}
}
......
......@@ -531,6 +531,8 @@ public class C {
public static final int GIFT = 5;
//第二件促销
public static final int SECOND_PRO = 6;
//满送
public static final int TICKET = 7;
}
public final class DIS_TYPE {
......
......@@ -566,6 +566,7 @@ public class Ossku implements BaseBean {
}
public String getSpuImg() {
if (spuImg.contains("ngoods.png")) return "";
return spuImg;
}
......
......@@ -12,7 +12,7 @@ import com.xingdata.zzdpos.util.ConvertUtil;
/**
* 订单详情(购物车商品明细)
*/
public class Saledetail implements BaseModel, BaseBean,BaseGoodPrint {
public class Saledetail implements BaseModel, BaseBean, BaseGoodPrint {
public boolean isDiscount() {
return skuPrice.longValue() != skuPricePay.longValue();
......@@ -676,6 +676,7 @@ public class Saledetail implements BaseModel, BaseBean,BaseGoodPrint {
public String getSpuImg() {
if (spuImg.contains("ngoods.png")) return "";
return spuImg;
}
......
......@@ -138,6 +138,7 @@ public class Sspr extends RealmObject implements BaseModel, BaseBean {
}
public String getSpuImg() {
if (spuImg.contains("ngoods.png")) return "";
return spuImg;
}
......
......@@ -16,7 +16,7 @@ import io.realm.annotations.PrimaryKey;
/**
* 商品详情
*/
public class Sssku extends RealmObject implements BaseModel, BaseBean, BaseSku,BaseGoodPrint {
public class Sssku extends RealmObject implements BaseModel, BaseBean, BaseSku, BaseGoodPrint {
@JSONField(serialize = false)
@Ignore
private boolean isSelected;
......@@ -463,6 +463,7 @@ public class Sssku extends RealmObject implements BaseModel, BaseBean, BaseSku,B
}
public String getSpuImg() {
if (spuImg.contains("ngoods.png")) return "";
return spuImg;
}
......@@ -766,7 +767,7 @@ public class Sssku extends RealmObject implements BaseModel, BaseBean, BaseSku,B
@Override
public String getCnt() {
return getSkuCnt()+"";
return getSkuCnt() + "";
}
@Override
......@@ -776,13 +777,13 @@ public class Sssku extends RealmObject implements BaseModel, BaseBean, BaseSku,B
@Override
public String getPrice() {
return ConvertUtil.fenToYuan(getSkuCost(),false);
return ConvertUtil.fenToYuan(getSkuCost(), false);
}
@Override
public String getSubtotal() {
return ConvertUtil.fenToYuan(getSellSumAmt(),false);
return ConvertUtil.fenToYuan(getSellSumAmt(), false);
}
@Override
......
......@@ -290,6 +290,7 @@ public class Ussku extends RealmObject implements BaseModel, BaseBean, BaseSku {
}
public String getSpuImg() {
if (spuImg.contains("ngoods.png")) return "";
return spuImg;
}
......
......@@ -28,8 +28,7 @@ import com.xingdata.zzdpos.util.Global;
import java.util.List;
public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBinding> implements
SsskuContract.View {
public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBinding> implements SsskuContract.View {
private ManagerFragment mManagerFragment = new ManagerFragment();
private SearchFragment mSearchFragment = new SearchFragment();
......@@ -127,6 +126,7 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
public void showSearchFragment(int searchType) {
if (mSearchFragment.isAdded()) return;
mViewBinding.etSearch.requestFocus();
KeyboardUtils.showSoftInput(mViewBinding.etSearch);
this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setSearchType(searchType));
}
......@@ -220,6 +220,12 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
this.pop();
}
@Override
public void backToMenuActivity() {
mPresenter.doOnFinish();
this.finish();
}
@Override
public void addSku(Sssku sssku) {
mManagerFragment.addSku(sssku);
......
......@@ -147,6 +147,11 @@ public interface SsskuContract {
*/
void backToDetailFragment();
/**
* 返回菜单页面
*/
void backToMenuActivity();
/**
* 添加商品
*
......@@ -326,5 +331,11 @@ public interface SsskuContract {
* 主页面 - 点击菜单按钮
*/
public abstract void clickSkuMenu();
/**
* 主页面 - 关闭
*/
public abstract void doOnFinish();
}
}
package com.xingdata.zzdpos.ui.manage.sssku;
import com.blankj.utilcode.util.SPUtils;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.splash.SplashActivity;
import com.xingdata.zzdpos.ui.splash.SplashPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
public class SsskuPresenter extends SsskuContract.Presenter {
/**
* 是否需要同步
*/
private boolean isNeedSync = false;
private int mPageNum;
private Long mSkuGrpId;
......@@ -209,6 +217,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
isNeedSync = true;
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
......@@ -221,6 +230,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
ApiFactory.Sssku.update(sssku).subscribe(
sssku1 -> {
mView.showMsg("修改成功");
isNeedSync = true;
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId || mSkuGrpId == 0L) {
......@@ -234,6 +244,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
isNeedSync = true;
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
......@@ -255,6 +266,31 @@ public class SsskuPresenter extends SsskuContract.Presenter {
mView.showSkuMenuDialog();
}
@Override
public void doOnFinish() {
if (!isNeedSync) return;
final double[] nowPro = {0.0};
mView.showLoadingDialog();
SPUtils.getInstance().put(SplashActivity.SYNCHRONOUSERRORCODE, "");
SPUtils.getInstance().put(SplashActivity.SYNCHRONOUSERRORMSG, "");
for (int i = 0; i < SplashPresenter.listSync.size(); i++) {
ApiFactory.Sync.allDownload(SplashPresenter.listSync.get(i), new SplashPresenter.SynchronousTask() {
@Override
public void getPro(double pro) {
nowPro[0] += pro;
if (nowPro[0] >= 100) {
mView.dismissLoadingDialog();
}
}
@Override
public void error(String table, String errCode, String errMsg) {
}
}, (100.00 / SplashPresenter.listSync.size()));
}
}
/**
* 获取商品
*/
......
......@@ -2,7 +2,6 @@ package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.annotation.SuppressLint;
import android.support.v4.app.ActivityCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.TextView;
......@@ -13,6 +12,7 @@ import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuManagerBinding;
import com.xingdata.zzdpos.model.Sskugrp;
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.manage.sssku.adapter.SkuAdapter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkugrpAdapter;
......@@ -156,7 +156,7 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
*/
public void updateSku(Sssku sssku) {
for (int i = 0; i < mSkuAdapter.getData().size(); i++) {
if (mSkuAdapter.getData().get(i).getId().longValue() == sssku.getSkuId().longValue()) {
if (mSkuAdapter.getData().get(i).getId().longValue() == sssku.getId().longValue()) {
mSkuAdapter.setData(i, sssku);
return;
}
......@@ -194,7 +194,7 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
@Override
public boolean onBackPressedSupport() {
ActivityCompat.finishAfterTransition(getActivity());
((SsskuActivity) getActivity()).backToMenuActivity();
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.marketing.ms;
import android.content.Context;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.ToastUtils;
......@@ -20,25 +16,24 @@ import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.AddFragment;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.EditorFragment;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.ManagerFragment;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.ScanFragment;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.SearchFragment;
import com.xingdata.zzdpos.ui.marketing.ms.model.Area;
import com.xingdata.zzdpos.ui.marketing.ms.model.Group;
import com.xingdata.zzdpos.ui.marketing.ms.model.Type;
import com.xingdata.zzdpos.ui.marketing.ms.model.User;
import com.xingdata.zzdpos.ui.scan.ScanFragment;
import com.xingdata.zzdpos.util.Global;
import java.util.List;
public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, ActivityMsBinding>
implements MsContract.View<Sku> {
public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, ActivityMsBinding> implements MsContract.View<Sku> {
private ManagerFragment mManagerFragment = new ManagerFragment();
private EditorFragment mEditorFragment = new EditorFragment();
private AddFragment mAddFragment = new AddFragment();
private SearchFragment<Sku> mSearchFragment = new SearchFragment<>();
private ScanFragment<Sku> mScanFragment = new ScanFragment<>();
private ScanFragment mScanFragment = new ScanFragment<>();
private LoadingDialog mLoadingDialog = new LoadingDialog();
......@@ -50,12 +45,8 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
@Override
public void initView() {
this.loadRootFragment(R.id.f_ms, mManagerFragment);
mViewBinding.setTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.btnBack.setOnClickListener(view -> {
getTopFragment().onBackPressedSupport();
onBackPressedSupport();
});
mViewBinding.btnBack.setOnClickListener(view -> getTopFragment().onBackPressedSupport());
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH) {
KeyboardUtils.hideSoftInput(textView);
......@@ -65,6 +56,10 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
});
}
@Override
public void onBackPressedSupport() {
}
@Override
public void showMsg(String msg) {
ToastUtils.showShort(msg);
......@@ -82,11 +77,15 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
@Override
public void showEditorFragment(Ms ms) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(getTitleRes(ms.getMsTools()));
start(mEditorFragment.setMs(ms).setEditMode(C.MS_EDITOR_MODE.UPDATE));
}
@Override
public void showEditorFragment(int msType) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(getTitleRes(msType));
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.ADD));
}
......@@ -96,10 +95,20 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
this.start(mSearchFragment.setSearchType(searchType));
}
@Override
public void showSearchFragment(String keyword, int searchType) {
this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setKeyword(keyword).setSearchType(searchType));
}
@Override
public void showScanFragment(int searchType) {
this.showTitleBarByTitleMode(searchType);
this.start(mScanFragment.setSearchType(searchType));
mScanFragment.setOnScanCompletedListener(barcode -> {
mScanFragment.pop();
mPresenter.scanCompleted(barcode, searchType);
});
this.start(mScanFragment);
}
......@@ -150,13 +159,21 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
@Override
public void backToEditFragment() {
this.popTo(EditorFragment.class, false);
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
this.pop();
}
@Override
public void backToManagerFragment() {
this.popTo(ManagerFragment.class, false);
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.ms_title);
this.pop();
}
@Override
public void backToMenuActivity() {
mPresenter.doOnFinish();
this.finish();
}
@Override
......@@ -189,6 +206,29 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
}
}
/**
* 获取文字信息
*
* @param msType 营销计划类型
* @return 营销计划名称
*/
private int getTitleRes(int msType) {
switch (msType) {
case C.MS_TYPE.DIS:
return R.string.ms_type_dis;
case C.MS_TYPE.PROMOTION:
return R.string.ms_type_promotion;
case C.MS_TYPE.MONEY_OFF:
return R.string.ms_type_money_off;
case C.MS_TYPE.GIFT:
return R.string.ms_type_gift;
case C.MS_TYPE.SECOND:
return R.string.ms_type_dis;
default:
return R.string.ms_title;
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
Global.clickHideKeyboard(ev, this);
......
......@@ -47,9 +47,19 @@ interface MsContract {
/**
* 显示搜索页面
*
* @param searchType 搜索类型
*/
void showSearchFragment(int searchType);
/**
* 显示搜素页面
*
* @param keyword 关键字
* @param searchType 搜索类型
*/
void showSearchFragment(String keyword, int searchType);
/**
* 显示扫描页面
*
......@@ -131,6 +141,11 @@ interface MsContract {
*/
void backToManagerFragment();
/**
* 退回到菜单页面
*/
void backToMenuActivity();
/**
* 显示读取对话框
*/
......@@ -184,6 +199,11 @@ interface MsContract {
*/
public abstract void clickGroupSkuSearch();
/**
* 编辑页面 - 点击营销主体商品的扫描键
*/
public abstract void clickGroupSkuScan();
/**
* 编辑页面 - 点击营销类型商品的搜索框
*/
......@@ -218,9 +238,17 @@ interface MsContract {
public abstract void clickSku(Sku sku, int searchType);
/**
* 搜素页面 - 退出
* 扫描页面 - 扫描成功
*
* @param barcode 条码
* @param searchType 扫描类型
*/
public abstract void scanCompleted(String barcode, int searchType);
/**
* 主页面 - 退出
*/
public abstract void exitSearchFragment();
public abstract void doOnFinish();
}
}
package com.xingdata.zzdpos.ui.marketing.ms;
import com.blankj.utilcode.util.SPUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.base.BaseSku;
......@@ -11,12 +12,18 @@ import com.xingdata.zzdpos.ui.marketing.ms.model.Area;
import com.xingdata.zzdpos.ui.marketing.ms.model.Group;
import com.xingdata.zzdpos.ui.marketing.ms.model.Type;
import com.xingdata.zzdpos.ui.marketing.ms.model.User;
import com.xingdata.zzdpos.ui.splash.SplashActivity;
import com.xingdata.zzdpos.ui.splash.SplashPresenter;
import java.util.ArrayList;
import java.util.List;
public class MsPresenter<Sku extends BaseSku> extends MsContract.Presenter<Sku> {
/**
* 是否需要同步
*/
private boolean isNeedSync = false;
/**
* 页码
*/
......@@ -106,6 +113,11 @@ public class MsPresenter<Sku extends BaseSku> extends MsContract.Presenter<Sku>
mView.showSearchFragment(C.TITLE_MODE.SKU);
}
@Override
public void clickGroupSkuScan() {
mView.showScanFragment(C.TITLE_MODE.SKU);
}
@Override
public void clickTypeSkuSearch() {
mView.showSearchFragment(C.TITLE_MODE.GIFT);
......@@ -128,6 +140,7 @@ public class MsPresenter<Sku extends BaseSku> extends MsContract.Presenter<Sku>
.doOnSubscribe(disposable -> mView.dismissLoadingDialog())
.subscribe(ms1 -> {
mView.showMsg("添加成功");
isNeedSync = true;
mView.backToManagerFragment();
mView.addMs(ms1);
}, throwable -> {
......@@ -139,6 +152,7 @@ public class MsPresenter<Sku extends BaseSku> extends MsContract.Presenter<Sku>
.doOnSubscribe(disposable -> mView.dismissLoadingDialog())
.subscribe(ms1 -> {
mView.showMsg("修改成功");
isNeedSync = true;
mView.backToManagerFragment();
mView.updateMs(ms1);
}, throwable -> {
......@@ -166,10 +180,34 @@ public class MsPresenter<Sku extends BaseSku> extends MsContract.Presenter<Sku>
}
}
@Override
public void scanCompleted(String barcode, int searchType) {
mView.showSearchFragment(barcode, searchType);
}
@Override
public void exitSearchFragment() {
mView.backToEditFragment();
public void doOnFinish() {
if (!isNeedSync) return;
final double[] nowPro = {0.0};
mView.showLoadingDialog();
SPUtils.getInstance().put(SplashActivity.SYNCHRONOUSERRORCODE, "");
SPUtils.getInstance().put(SplashActivity.SYNCHRONOUSERRORMSG, "");
for (int i = 0; i < SplashPresenter.listSync.size(); i++) {
ApiFactory.Sync.allDownload(SplashPresenter.listSync.get(i), new SplashPresenter.SynchronousTask() {
@Override
public void getPro(double pro) {
nowPro[0] += pro;
if (nowPro[0] >= 100) {
mView.dismissLoadingDialog();
}
}
@Override
public void error(String table, String errCode, String errMsg) {
}
}, (100.00 / SplashPresenter.listSync.size()));
}
}
/**
......
......@@ -5,6 +5,7 @@ import android.support.v7.widget.GridLayoutManager;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentMsAddBinding;
import com.xingdata.zzdpos.ui.marketing.ms.MsActivity;
import com.xingdata.zzdpos.ui.marketing.ms.MsPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.TypeAdapter;
import com.xingdata.zzdpos.ui.marketing.ms.model.Type;
......@@ -48,4 +49,9 @@ public class AddFragment extends BaseFragment<MsPresenter, FragmentMsAddBinding>
mTypeAdapter.setNewData(types);
}
@Override
public boolean onBackPressedSupport() {
((MsActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
......@@ -21,6 +21,7 @@ import com.xingdata.zzdpos.databinding.FragmentMsEditorBinding;
import com.xingdata.zzdpos.databinding.ViewTimeDetailBinding;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.MsActivity;
import com.xingdata.zzdpos.ui.marketing.ms.MsPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.BeanAdapter;
import com.xingdata.zzdpos.ui.marketing.ms.model.Area;
......@@ -502,4 +503,10 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
mPresenter.clickEditorConfirm(mMs, mEditorMode);
}
@Override
public boolean onBackPressedSupport() {
((MsActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
......@@ -8,6 +8,7 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentMsManagerBinding;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.ui.marketing.ms.MsActivity;
import com.xingdata.zzdpos.ui.marketing.ms.MsPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.MsAdapter;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
......@@ -43,6 +44,12 @@ public class ManagerFragment extends BaseFragment<MsPresenter, FragmentMsManager
refreshMs();
}
@Override
public boolean onBackPressedSupport() {
((MsActivity) getActivity()).backToMenuActivity();
return super.onBackPressedSupport();
}
/**
* 加载营销计划数据
*
......
package com.xingdata.zzdpos.ui.marketing.ms.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.base.BaseSku;
import com.xingdata.zzdpos.databinding.FragmentMsScanBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
public class ScanFragment<Sku extends BaseSku> extends BaseFragment<StorePresenter, FragmentMsScanBinding> {
private int mSearchType;
@Override
public int getLayoutId() {
return R.layout.fragment_ms_scan;
}
@Override
public void initView() {
}
/**
* 设置搜索类型
*
* @param searchType 搜索类型
* @return this
*/
public ScanFragment setSearchType(int searchType) {
this.mSearchType = searchType;
return this;
}
}
......@@ -3,19 +3,25 @@ package com.xingdata.zzdpos.ui.marketing.ms.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.TextView;
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.base.BaseSku;
import com.xingdata.zzdpos.databinding.FragmentMsSearchBinding;
import com.xingdata.zzdpos.ui.marketing.ms.MsActivity;
import com.xingdata.zzdpos.ui.marketing.ms.MsPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresenter, FragmentMsSearchBinding> {
private int mSearchType;
private String mKeyword;
private SkuAdapter<Sku> mSkuAdapter;
@Override
......@@ -39,15 +45,12 @@ public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresente
// set empty
@SuppressLint("InflateParams") View view = getLayoutInflater().inflate(R.layout.view_empty, null);
((TextView) view.findViewById(R.id.tv_empty)).setText(R.string.sku_empty_hint);
mSkuAdapter.setEmptyView(view);
mSkuAdapter.isUseEmpty(false);
}
@Override
public void onDestroyView() {
mPresenter.exitSearchFragment();
super.onDestroyView();
//init
if (!StringUtils.isEmpty(mKeyword)) mPresenter.clickSearchButton(mKeyword);
}
/**
......@@ -84,4 +87,20 @@ public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresente
this.mSearchType = searchType;
return this;
}
/**
* 设置搜索关键字
*
* @param keyword 关键字
*/
public SearchFragment setKeyword(String keyword) {
this.mKeyword = keyword;
return this;
}
@Override
public boolean onBackPressedSupport() {
((MsActivity) getActivity()).backToEditFragment();
return super.onBackPressedSupport();
}
}
......@@ -29,6 +29,9 @@ public class GroupSkuView<Sku extends BaseSku> extends BaseGroupView<ViewGroupSk
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> {
if (b) mPresenter.clickGroupSkuSearch();
});
mViewBinding.btnScan.setOnClickListener(view -> {
mPresenter.clickGroupSkuScan();
});
}
@SuppressLint("SetTextI18n")
......@@ -37,6 +40,7 @@ public class GroupSkuView<Sku extends BaseSku> extends BaseGroupView<ViewGroupSk
if (mMs.getMsTouchTag2() == null || mMs.getMsTouchTag2() != C.MS_GROUP.SKU) return;
mViewBinding.llProduct.setVisibility(View.VISIBLE);
mViewBinding.etSearch.setText(ConvertUtil.longToString(mMs.getSkuBarCode()));
mViewBinding.setName(mMs.getSkuName());
mViewBinding.setPrice(ConvertUtil.fenToYuan(mMs.getSkuPrice1(), true));
}
......
......@@ -19,6 +19,7 @@ import com.xingdata.zzdpos.util.InputFilters;
*/
public class TypeMoneyOffView extends BaseTypeView<ViewTypeMoneyOffBinding> {
private View.OnFocusChangeListener mOnFocusChangeListener;
public TypeMoneyOffView() {
......
package com.xingdata.zzdpos.ui.settle;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
......@@ -159,6 +157,7 @@ public class SettlePresenter extends SettleContract.Presenter {
mView.loadVips(vips);
},
throwable -> {
mView.loadVips(new ArrayList<>());
});
}
......@@ -387,9 +386,9 @@ public class SettlePresenter extends SettleContract.Presenter {
private void paySucc(Saleorder saleorder) {
mView.showPaySuccFragment(saleorder);
this.updateHandover(MainPresenter.handoverInfo);
try{
try {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, saleorder);
}catch (Exception e){
} catch (Exception e) {
ToastUtils.showShort("打印异常");
}
......
......@@ -8,6 +8,7 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSettleTicketBinding;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.ui.settle.adapter.TicketAdapter;
......@@ -96,4 +97,10 @@ public class TicketFragment extends BaseFragment<SettlePresenter, FragmentSettle
mTicketAdapter.notifyDataSetChanged();
}
@Override
public boolean onBackPressedSupport() {
((SettleActivity) getActivity()).backToSettleFragment();
return super.onBackPressedSupport();
}
}
......@@ -9,6 +9,7 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSettleVipBinding;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.ui.settle.adapter.VipAdapter;
......@@ -48,13 +49,10 @@ public class VipFragment extends BaseFragment<SettlePresenter, FragmentSettleVip
* @param vips 会员列表
*/
public void loadVips(List<Vip> vips) {
((TextView) mVipAdapter.getEmptyView().findViewById(R.id.tv_empty)).setText(R.string.settle_vip_search_none);
if (vips.size() == 1) {
mPresenter.selectVip(vips.get(0));
this.pop();
} else if (vips.size() == 0) {
mVipAdapter.setNewData(vips);
mViewBinding.setEmpty(vips.size() == 0);
((TextView) mVipAdapter.getEmptyView().findViewById(R.id.tv_empty)).setText(R.string.settle_vip_search_none);
} else {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
......@@ -63,8 +61,8 @@ public class VipFragment extends BaseFragment<SettlePresenter, FragmentSettleVip
@Override
public void onDestroyView() {
mPresenter.exitVipFragment();
super.onDestroyView();
public boolean onBackPressedSupport() {
((SettleActivity) getActivity()).backToSettleFragment();
return super.onBackPressedSupport();
}
}
......@@ -67,18 +67,20 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
return false;
});
mViewBinding.btnScan.setOnClickListener(view -> PermissionUtils.permission(PermissionConstants.CAMERA)
.callback(new PermissionUtils.FullCallback() {
@Override
public void onGranted(List<String> permissionsGranted) {
mPresenter.clickScan();
}
@Override
public void onDenied(List<String> permissionsDeniedForever, List<String> permissionsDenied) {
}
})
.request());
mViewBinding.btnScan.setOnClickListener(view ->
PermissionUtils.permission(PermissionConstants.CAMERA)
.callback(new PermissionUtils.FullCallback() {
@Override
public void onGranted(List<String> permissionsGranted) {
mPresenter.clickScan();
}
@Override
public void onDenied(List<String> permissionsDeniedForever, List<String> permissionsDenied) {
}
})
.request()
);
mScanFragment.setOnScanCompletedListener(barcode -> mPresenter.scanComplete(barcode));
}
......@@ -159,8 +161,10 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
public void showSearchFragment() {
if (!mSearchFragment.isAdded()) {
mViewBinding.setTitleMode(C.TITLE_MODE.SKU);
mViewBinding.etSearch.setVisibility(View.VISIBLE);
mViewBinding.etSearch.setText("");
mViewBinding.etSearch.requestFocus();
KeyboardUtils.showSoftInput(mViewBinding.etSearch);
this.start(mSearchFragment.setKeyword(""));
}
}
......
......@@ -10,6 +10,7 @@ import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.StringUtils;
......@@ -53,6 +54,7 @@ public class SearchFragment extends BaseFragment<StorePresenter, FragmentStoreSe
// set empty
@SuppressLint("InflateParams") View view = getLayoutInflater().inflate(R.layout.view_empty, null);
((TextView) view.findViewById(R.id.tv_empty)).setText(R.string.sku_empty_hint);
mSkuAdapter.setEmptyView(view);
mSkuAdapter.isUseEmpty(false);
......
......@@ -10,6 +10,7 @@ import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.StringUtils;
......@@ -64,6 +65,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
else mPresenter.clickRemoveSku(sku, value);
});
// set grp listener
mSkugrpAdapter.setOnItemClickListener((adapter, view, position) -> mPresenter.clickSkugrp(mSkugrpAdapter.getData().get(position)));
......@@ -73,12 +75,10 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
// set empty
@SuppressLint("InflateParams") View emptyView = getLayoutInflater().inflate(R.layout.view_empty, null);
((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string.sku_empty_hint);
mSkuAdapter.setEmptyView(emptyView);
mSkuAdapter.isUseEmpty(false);
// init data
mPresenter.initStore();
}
......
......@@ -19,7 +19,7 @@
<TextView
android:id="@+id/tv_update"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_height="@dimen/list1_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update"
......@@ -36,7 +36,7 @@
<TextView
android:id="@+id/tv_update_price"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_height="@dimen/list1_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_price"
......@@ -53,7 +53,7 @@
<TextView
android:id="@+id/tv_update_vip"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_height="@dimen/list1_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_vip"
......@@ -64,7 +64,7 @@
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_height="@dimen/list1_height"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_white_r1"
android:foreground="?android:attr/selectableItemBackground"
......
......@@ -81,6 +81,7 @@
android:hint="@string/ms_editor_name_hint"
android:inputType="text"
android:lines="1"
android:maxLength="16"
android:text="@{name}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_body_size" />
......
......@@ -67,7 +67,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:background="@drawable/shape_black_b2"
android:padding="@dimen/all_spacing"
android:text="@{@string/sku_size+sku.spuUnitName}"
android:textSize="@dimen/all_caption_size"
......
......@@ -134,6 +134,7 @@
android:hint="@string/sku_name_hint"
android:inputType="text"
android:labelFor="@+id/et_name"
android:maxLength="16"
android:saveEnabled="false"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_body_size"
......
......@@ -164,32 +164,36 @@
android:layout_height="match_parent"
android:baselineAligned="false">
<LinearLayout
<android.support.v4.widget.NestedScrollView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_weight="1">
<FrameLayout
android:id="@+id/ll_skugrp_add"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:foreground="?android:attr/selectableItemBackground">
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@mipmap/grp_add" />
</FrameLayout>
android:layout_height="wrap_content" />
</LinearLayout>
<FrameLayout
android:id="@+id/ll_skugrp_add"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:foreground="?android:attr/selectableItemBackground">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@mipmap/grp_add" />
</FrameLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_sku"
......
......@@ -54,7 +54,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:background="@drawable/shape_black_b2"
android:padding="@dimen/all_spacing"
android:text="@{@string/sku_size+sku.spuUnitName}"
android:textSize="@dimen/all_caption_size"
......
......@@ -54,7 +54,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:background="@drawable/shape_black_b2"
android:padding="@dimen/all_spacing"
android:text="@{@string/sku_size+sku.spuUnitName}"
android:textSize="@dimen/all_caption_size"
......
......@@ -22,8 +22,8 @@
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_pic"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_width="64dp"
android:layout_height="64dp"
app:failureImage="@mipmap/icon_goods_default"
app:placeholderImage="@mipmap/icon_goods_default"
app:roundedCornerRadius="@dimen/all_shape_radius" />
......@@ -42,7 +42,7 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:layout_marginTop="@dimen/all_spacing"
app:layout_constraintLeft_toLeftOf="@id/tv_name"
app:layout_constraintTop_toBottomOf="@id/tv_name">
......
......@@ -21,8 +21,8 @@
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_pic"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_width="80dp"
android:layout_height="80dp"
app:failureImage="@mipmap/icon_goods_default"
app:placeholderImage="@mipmap/icon_goods_default"
app:roundedCornerRadius="@dimen/all_shape_radius" />
......
......@@ -708,7 +708,7 @@
<string name="sku_subtitle_price">调整价格</string>
<string name="sku_price1">售价:</string>
<string name="sku_price2">促销价:</string>
<string name="sku_subtitle_vip">会员信息</string>
<string name="sku_subtitle_vip">折扣信息</string>
<string name="sku_vip_dis">会员折扣</string>
<string name="sku_point1">消费每满</string>
<string name="sku_point2">元等于1积分</string>
......@@ -727,11 +727,10 @@
<string name="sku_update">编辑商品</string>
<string name="sku_update_price">调整价格</string>
<string name="sku_update_vip">调整会员</string>
<string name="sku_update_vip">调整积分</string>
<string name="sku_name_hint">请输入商品名称</string>
<string name="sku_empty_hint">没有找到对应商品~</string>
</resources>
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