Commit ddd080de authored by 姜敏's avatar 姜敏

Merge remote-tracking branch 'origin/master'

parents 085fb9fa c08cca75
......@@ -539,6 +539,10 @@ public final class ApiFactory {
skuGrpId, keyword));
}
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(String wd) {
return run(Api.getInstance().service.querySssku(wd));
}
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum,
String keyword) {
return run(Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, keyword));
......@@ -784,22 +788,12 @@ public final class ApiFactory {
public static class Recard {
public static Observable<Boolean> checkPwd(Long vipId, String cardNo, String pwd) {
return run(Api.getInstance().service.checkPwd(vipId, cardNo, EncryptUtils
.encryptMD5ToString(pwd)));
return run(Api.getInstance().service.checkPwd(vipId, cardNo, EncryptUtils.encryptMD5ToString(pwd)));
}
public static Observable<Vip> fullVip(Long vipId, Long amtPay, Long amtSend) {
return run(Api.getInstance().service.fullVip(vipId, amtPay, amtSend));
}
// public static Observable<Pager<VipRechargeOrder>> queryCard(Long vipId) {
// return Api.getInstance().service.queryRecharge(vipId,0,10)
// .onErrorReturn(new ErrorFilter<>())
// .map(new ResultFilter<>())
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .retryWhen(new RetryHelper(3));
// }
}
public static class Ms {
......
......@@ -417,6 +417,9 @@ interface ApiService {
@POST(C.URL.SSSKU.detail)
Observable<HttpMessage<Sssku>> detailSssku(@Query("id") Long id);
@POST(C.URL.SSSKU.query)
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("wd") String barcode);
@POST(C.URL.SSSKU.update)
Observable<HttpMessage<Sssku>> updateSssku(@Body Sssku sssku);
......
......@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.manage.inventory;
import com.blankj.utilcode.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.db.DB;
......@@ -11,6 +12,7 @@ import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
......@@ -71,20 +73,9 @@ public class InventoryPresenter extends InventoryContract.Presenter {
* @param barcode 条形码
*/
public void getProductByBarcode(String barcode) {
mView.isShowLoading(true);
mCompositeDisposable.add(
queryProductsByScan(barcode).subscribe(ssskus -> {
mView.isShowLoading(false);
mView.searchGoodsSuc();
if (ssskus.size() > 1) {
mView.addInventoryGoodsItem(ssskus);
} else if (ssskus.size() == 1) {
mView.addInventoryGoodsItem(ssskus.get(0));
} else {
ToastUtils.showShort("没有此商品");
}
})
);
queryProductsByScan(barcode);
}
/**
......@@ -93,11 +84,22 @@ public class InventoryPresenter extends InventoryContract.Presenter {
* @param barcode 扫描出的条形码
* @return 商品信息
*/
public static Observable<List<Sssku>> queryProductsByScan(String barcode) {
RealmQuery<Sssku> query = DB.getInstance().get(MainPresenter.class).where(Sssku.class);
query.equalTo("spuBarcode", StringUtil.strToLong(barcode)).equalTo("skuStatus", 0);
return Observable.just(query.findAll())
.flatMap(ssskus -> Observable.just(getList(ssskus)));
public void queryProductsByScan(String barcode) {
mView.isShowLoading(true);
ApiFactory.Sssku.querySssku(barcode).doFinally(() -> mView.isShowLoading(false))
.subscribe(
ssskuPager -> {
mView.searchGoodsSuc();
if (ssskuPager.getList().size() > 1) {
mView.addInventoryGoodsItem(ssskuPager.getList());
} else if (ssskuPager.getList().size() == 1) {
mView.addInventoryGoodsItem(ssskuPager.getList().get(0));
} else {
ToastUtils.showShort("没有此商品");
}
}, throwable -> {
ToastUtils.showShort("删除" + throwable.getMessage());
});
}
@Override
......@@ -117,7 +119,7 @@ public class InventoryPresenter extends InventoryContract.Presenter {
mView.isShowLoading(true);
ApiFactory.Cs.delCsDetail(cs.getId(), cs.getCsNo()).doFinally(() -> mView.isShowLoading(false))
.subscribe(object -> {
mView.delSucc();
mView.delSucc();
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
......@@ -130,7 +132,7 @@ public class InventoryPresenter extends InventoryContract.Presenter {
@Override
public void changeTitle(String s, boolean b) {
mView.changeTitle(s,b);
mView.changeTitle(s, b);
}
@Override
......@@ -140,7 +142,7 @@ public class InventoryPresenter extends InventoryContract.Presenter {
.subscribe(object -> {
mView.disInventoryDetailFragment(false);
}, throwable -> {
ToastUtils.showShort("删除"+throwable.getMessage());
ToastUtils.showShort("删除" + throwable.getMessage());
});
}
......
......@@ -15,8 +15,7 @@ import me.dm7.barcodescanner.core.IViewFinder;
import me.dm7.barcodescanner.core.ViewFinderView;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class ScanFragment<P extends BasePresenter> extends BaseFragment<P,
FragmentStoreScanBinding> {
public class ScanFragment<P extends BasePresenter> extends BaseFragment<P, FragmentStoreScanBinding> {
private ZXingScannerView mScannerView;
private ZXingScannerView.ResultHandler mResultHandler;
......@@ -125,8 +124,6 @@ public class ScanFragment<P extends BasePresenter> extends BaseFragment<P,
this.setLaserColor(themeColor);
this.setLaserEnabled(true);
}
}
public void setTitle(String titleStr) {
......
......@@ -4,6 +4,9 @@ import android.animation.Keyframe;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.content.Intent;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
......@@ -195,6 +198,14 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
mScanFragment.resetScanner();
}
@Override
public void startAlarm(boolean result) {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
if (notification == null) return;
Ringtone r = RingtoneManager.getRingtone(mContext, notification);
r.play();
}
/**
* 执行抖动动画
......
......@@ -132,6 +132,13 @@ interface StoreContract {
* 重置扫描器
*/
void resetScanner();
/**
* 播放提示音
*
* @param result 提示音
*/
void startAlarm(boolean result);
}
abstract class Presenter extends BasePresenter<View> {
......
......@@ -355,11 +355,14 @@ public class StorePresenter extends StoreContract.Presenter {
mView.showSearchFragment(barcode);
} else if (ssskus.size() == 1 && usskus.size() == 0) {
this.clickAddSku(ssskus.get(0), 1);
mView.startAlarm(true);
} else if (ssskus.size() == 0 && usskus.size() == 1) {
this.clickAddSku(usskus.get(0), 1);
mView.startAlarm(true);
} else {
mView.showMsg("没有找到此商品~");
mView.resetScanner();
mView.startAlarm(false);
}
mView.dismissLoadingDialog();
}
......
......@@ -555,6 +555,11 @@
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_margin" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
......
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