Commit 5eebf3c9 by 宁斌

1、library-order pay模块调整

parent d1c04ab7
......@@ -86,7 +86,7 @@
</provider>
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.WelcomeActivity"
android:name=".mvp.ui.activity.WelcomeActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait">
<intent-filter>
......@@ -103,17 +103,17 @@
android:exported="true" />
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.LoginActivity"
android:name=".mvp.ui.activity.LoginActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.SwitchServerActivity"
android:name=".mvp.ui.activity.SwitchServerActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.RecoverPasswordActivity"
android:name=".mvp.ui.activity.RecoverPasswordActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity"
android:name=".mvp.ui.activity.ChooseRestaurantActivity"
android:screenOrientation="portrait" />
<meta-data
......
......@@ -8,14 +8,13 @@ import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent;
import com.etps.aca.lib.activity.CommandActivity;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.component.ComponentAction;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.SwitchServerActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.WelcomeActivity;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.command.CommandImpl;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.ChooseRestaurantActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.SwitchServerActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.WelcomeActivity;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.command.CommandImpl;
public class ComponentLogin implements IComponent {
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.component;
package com.gingersoft.gsa.cloud.login.di.component;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module.ChooseRestaurantModule;
import com.gingersoft.gsa.cloud.login.di.module.ChooseRestaurantModule;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.ChooseRestaurantActivity;
@ActivityScope
@Component(modules = ChooseRestaurantModule.class,dependencies = AppComponent.class)
......
......@@ -8,7 +8,7 @@ import com.gingersoft.gsa.cloud.login.di.module.LoginModule;
import com.gingersoft.gsa.cloud.login.mvp.contract.LoginContract;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.LoginActivity;
/**
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.component;
package com.gingersoft.gsa.cloud.login.di.component;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module.RecoverPasswordModule;
import com.gingersoft.gsa.cloud.login.di.module.RecoverPasswordModule;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.RecoverPasswordActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.RecoverPasswordActivity;
@ActivityScope
@Component(modules = RecoverPasswordModule.class,dependencies = AppComponent.class)
......
......@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.login.di.module.SwitchServerModule;
import com.gingersoft.gsa.cloud.login.mvp.contract.SwitchServerContract;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.SwitchServerActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.SwitchServerActivity;
/**
......
package com.gingersoft.gsa.cloud.login.di.component;
import com.gingersoft.gsa.cloud.login.di.module.WelcomeModule;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.WelcomeActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.WelcomeActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.di.scope.ActivityScope;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module;
package com.gingersoft.gsa.cloud.login.di.module;
import com.jess.arms.di.scope.ActivityScope;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.model.ChooseRestaurantModel;
import com.gingersoft.gsa.cloud.login.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.model.ChooseRestaurantModel;
@Module
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module;
package com.gingersoft.gsa.cloud.login.di.module;
import com.jess.arms.di.scope.ActivityScope;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.RecoverPasswordContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.model.RecoverPasswordModel;
import com.gingersoft.gsa.cloud.login.mvp.contract.RecoverPasswordContract;
import com.gingersoft.gsa.cloud.login.mvp.model.RecoverPasswordModel;
@Module
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract;
package com.gingersoft.gsa.cloud.login.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.bean.BrandsBean;
......
......@@ -24,9 +24,9 @@ import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.login.R;
import com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean;
import com.gingersoft.gsa.cloud.login.mvp.presenter.BaseLoginPresenter;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.SwitchServerActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.ChooseRestaurantActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.SwitchServerActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.LoginLimitAdapter;
import com.gingersoft.gsa.cloud.ui.utils.DialogUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract;
package com.gingersoft.gsa.cloud.login.mvp.contract;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.model;
package com.gingersoft.gsa.cloud.login.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.bean.BrandsBean;
import com.gingersoft.gsa.cloud.login.mvp.server.LoginService;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.contract.ChooseRestaurantContract;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.model;
package com.gingersoft.gsa.cloud.login.mvp.model;
import android.app.Application;
import com.google.gson.Gson;
......@@ -8,7 +8,7 @@ import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.RecoverPasswordContract;
import com.gingersoft.gsa.cloud.login.mvp.contract.RecoverPasswordContract;
@ActivityScope
......
......@@ -15,9 +15,7 @@ import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean;
import com.gingersoft.gsa.cloud.login.mvp.contract.BaseLoginContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.LoginActivity;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.presenter;
package com.gingersoft.gsa.cloud.login.mvp.presenter;
import android.app.Application;
......@@ -7,8 +7,8 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.bean.BrandsBean;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.LoginActivity;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.jess.arms.di.scope.ActivityScope;
......
......@@ -8,7 +8,7 @@ import com.gingersoft.gsa.cloud.common.oaId.DeviceID;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.login.R;
import com.gingersoft.gsa.cloud.login.mvp.contract.LoginContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.LoginActivity;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.presenter;
package com.gingersoft.gsa.cloud.login.mvp.presenter;
import android.app.Application;
......@@ -9,7 +9,7 @@ import com.jess.arms.http.imageloader.ImageLoader;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.RecoverPasswordContract;
import com.gingersoft.gsa.cloud.login.mvp.contract.RecoverPasswordContract;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity;
package com.gingersoft.gsa.cloud.login.mvp.ui.activity;
import android.app.Activity;
import android.app.Dialog;
......@@ -29,11 +29,11 @@ import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.login.R;
import com.gingersoft.gsa.cloud.login.R2;
import com.gingersoft.gsa.cloud.login.di.component.DaggerChooseRestaurantComponent;
import com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.component.DaggerChooseRestaurantComponent;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module.ChooseRestaurantModule;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.presenter.ChooseRestaurantPresenter;
import com.gingersoft.gsa.cloud.login.di.module.ChooseRestaurantModule;
import com.gingersoft.gsa.cloud.login.mvp.contract.ChooseRestaurantContract;
import com.gingersoft.gsa.cloud.login.mvp.presenter.ChooseRestaurantPresenter;
import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.LoginLimitAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity;
package com.gingersoft.gsa.cloud.login.mvp.ui.activity;
import android.app.Activity;
import android.os.Bundle;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity;
package com.gingersoft.gsa.cloud.login.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.gingersoft.gsa.cloud.login.R;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.component.DaggerRecoverPasswordComponent;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module.RecoverPasswordModule;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.RecoverPasswordContract;
import com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.presenter.RecoverPasswordPresenter;
import com.gingersoft.gsa.cloud.login.di.component.DaggerRecoverPasswordComponent;
import com.gingersoft.gsa.cloud.login.di.module.RecoverPasswordModule;
import com.gingersoft.gsa.cloud.login.mvp.contract.RecoverPasswordContract;
import com.gingersoft.gsa.cloud.login.mvp.presenter.RecoverPasswordPresenter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......
package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity;
package com.gingersoft.gsa.cloud.login.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
......
......@@ -49,7 +49,7 @@ public interface BusinessReportContract {
interface Model extends IModel {
Observable<MainBusinessBean> getRestaurantBusinessAmount(Map<String, String> map);
Observable<BusinessDetailsBean> getRestaurantBusinessDetails(Map<String, String> map);
// Observable<BusinessDetailsBean> getRestaurantBusinessDetails(Map<String, String> map);
Observable<DaySalesReportBean> getDaySalesReport(Map<String, String> map);
......
......@@ -40,7 +40,7 @@ public interface SalesContract {
interface Model extends IModel {
Observable<SalesFoodsBean> getSalesReportInfo(Map<String, Object> map);
Observable<SalesFoodsBean> getSalesReportInfo(RequestBody requestBody);
// Observable<SalesFoodsBean> getSalesReportInfo(RequestBody requestBody);
Observable<DeliveryLineChartBean> getDeliveryOrderCurveInfo(Map<String, Object> map);
......
......@@ -59,11 +59,11 @@ public class BusinessReportModel extends BaseModel implements BusinessReportCont
.getRestaurantAmount(map);
}
@Override
public Observable<BusinessDetailsBean> getRestaurantBusinessDetails(Map<String, String> map) {
return mRepositoryManager.obtainRetrofitService(MainReportService.class)
.getRestaurantDetails(map);
}
// @Override
// public Observable<BusinessDetailsBean> getRestaurantBusinessDetails(Map<String, String> map) {
// return mRepositoryManager.obtainRetrofitService(MainReportService.class)
// .getRestaurantDetails(map);
// }
@Override
public Observable<DaySalesReportBean> getDaySalesReport(Map<String, String> map) {
......
......@@ -57,11 +57,11 @@ public class SalesModel extends BaseModel implements SalesContract.Model {
.getSalesReportInfo(map);
}
@Override
public Observable<SalesFoodsBean> getSalesReportInfo(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MainReportService.class)
.getSalesReportInfo(requestBody);
}
// @Override
// public Observable<SalesFoodsBean> getSalesReportInfo(RequestBody requestBody) {
// return mRepositoryManager.obtainRetrofitService(MainReportService.class)
// .getSalesReportInfo(requestBody);
// }
@Override
public Observable<DeliveryLineChartBean> getDeliveryOrderCurveInfo(Map<String, Object> map) {
......
......@@ -41,9 +41,9 @@ public interface MainReportService {
Observable<SalesFoodsBean> getSalesReportInfo(@QueryMap Map<String, Object> map);
//銷售分析報表
@Headers({"Domain-Name: wechat_report"})
@POST("report/findFoodTop" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<SalesFoodsBean> getSalesReportInfo(@Body RequestBody requestBody);
// @Headers({"Domain-Name: wechat_report"})
// @POST("report/findFoodTop" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
// Observable<SalesFoodsBean> getSalesReportInfo(@Body RequestBody requestBody);
//外送訂單折線圖
@Headers({"Domain-Name: gsa_report"})
......@@ -60,10 +60,10 @@ public interface MainReportService {
@GET("restaurantOperation/business" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<MainBusinessBean> getRestaurantReport(@Query("restaurantId") String restaurantId);
//營業詳情
@Headers({"Domain-Name: gsa_report"})
@GET("restaurantOperation/business/dtails" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BusinessDetailsBean> getRestaurantDetails(@QueryMap Map<String, String> map);
// //營業詳情
// @Headers({"Domain-Name: gsa_report"})
// @GET("restaurantOperation/business/dtails" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
// Observable<BusinessDetailsBean> getRestaurantDetails(@QueryMap Map<String, String> map);
//營業金額
@Headers({"Domain-Name: gsa_report"})
......@@ -78,12 +78,12 @@ public interface MainReportService {
@GET("user/resource/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<String> getRestaurantFunList(@Query("restaurantId") String restaurantId);
//每日營業詳情
//每日營業詳情,賬單分析
@Headers({"Domain-Name: gsa_report"})
@GET("cloudGsaReport/daySalesReport" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<DaySalesReportBean> getDaySalesReport(@QueryMap Map<String, String> map);
//賬單分析
//營業金額淨值
@Headers({"Domain-Name: gsa_report"})
@GET("cloudGsaReport/orderAnalysis" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<OrderAnalysisBean> getOrderAnalysis(@QueryMap Map<String, String> map);
......
......@@ -17,11 +17,10 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.HomeContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.CheckVersionRequest;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.MainBusinessBean;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.MainActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.HomeFragment;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......@@ -254,7 +253,7 @@ public class HomePresenter extends BasePresenter<HomeContract.Model, HomeContrac
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response,Exception e) {
mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(), 0);
}
......
......@@ -16,7 +16,7 @@ import com.gingersoft.gsa.cloud.main.mvp.model.bean.CheckVersionRequest;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......@@ -188,7 +188,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response,Exception e) {
mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(), 0);
}
......
......@@ -5,12 +5,8 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......@@ -24,8 +20,6 @@ import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
/**
......
......@@ -16,7 +16,7 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItem5Adapter
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem5;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
......@@ -238,7 +238,7 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response,Exception e) {
mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(), 0);
}
......
......@@ -69,10 +69,6 @@ public class MainActivity extends BaseFragmentActivity<MainPresenter> implements
.inject(this);
}
@Override
public void configImmersionBar(ImmersionBar immersionBar) {
immersionBar.init();
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
......
......@@ -59,8 +59,6 @@ public class ReportActivity extends BaseFragmentActivity<ReportPresenter> implem
private TabFragmentAdapter mTabFragmentAdapter;
private List<String> titles;
private BusinessReportFragment businessReportFragment;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerReportComponent //如找不到该类,请编译一下项目
......@@ -91,7 +89,7 @@ public class ReportActivity extends BaseFragmentActivity<ReportPresenter> implem
titles.add("銷售分析");
titles.add("支付分析");
businessReportFragment = BusinessReportFragment.newInstance();
BusinessReportFragment businessReportFragment = BusinessReportFragment.newInstance();
List<Fragment> mFragments = new ArrayList<>();
mFragments.add(businessReportFragment);
......
......@@ -228,8 +228,6 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
private void showSendSettlementDialog() {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(this);
dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage("是否確認清機");
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
mPresenter.sendSettlement(type);
......
......@@ -172,12 +172,8 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
}
@Override
public void configImmersionBar(ImmersionBar immersionBar) {
immersionBar
.statusBarColor(R.color.gray)
.barColor(R.color.gray)
.fitsSystemWindows(true)
.init();
public void initImmersionBar() {
ImmersionBar.setTitleBar(this, slideMenu);
}
@Override
......
<?xml version="1.0" encoding="utf-8"?>
<!--<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"-->
<!-- xmlns:tools="http://schemas.android.com/tools"-->
<!-- android:id="@+id/recycler_report"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:orientation="vertical">-->
<!--</androidx.recyclerview.widget.RecyclerView>-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
......@@ -15,15 +7,23 @@
android:orientation="vertical">
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topBar"
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="@dimen/pickerview_topbar_height"
app:qmui_topbar_text_btn_color_state_list="@color/theme_white_color"
android:layout_height="?attr/qmui_topbar_height"
app:qmui_topbar_title_color="@color/theme_white_color" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_report"
<com.google.android.material.tabs.TabLayout
android:id="@+id/table_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/tabIndicator_height"
android:background="@color/white"
app:tabIndicator="@drawable/tablayout_indicator"
app:tabIndicatorColor="@color/theme_color"
app:tabIndicatorFullWidth="false"/>
<androidx.viewpager.widget.ViewPager
android:id="@+id/report_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
......@@ -30,21 +30,19 @@ import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.R;
import com.gingersoft.gsa.cloud.pay.R2;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.di.component.DaggerPayResultComponent;
import com.gingersoft.gsa.cloud.pay.mvp.contract.PayResultContract;
import com.gingersoft.gsa.cloud.pay.mvp.presenter.PayResultPresenter;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
......@@ -227,7 +225,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response, Exception e) {
loadService.showCallback(PosPayStatusExceptionCallback.class);
}
......@@ -280,7 +278,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response, Exception e) {
printBill();
}
......@@ -414,7 +412,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
}
@Override
public void onPosException(Exception e) {
public void onPosException(AdjustTipRespose response,Exception e) {
//POS回调异常,去重试查询
// if (findFragment(PosActionStatusExceptionFragment.class) == null) {
// PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
......
......@@ -3,13 +3,13 @@ package com.gingersoft.gsa.cloud.table.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionFragmentContract;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionTableContract;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.table.di.module.AllTableModule;
import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
/**
......@@ -27,12 +27,12 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
@FragmentScope
@Component(modules = AllTableModule.class, dependencies = AppComponent.class)
public interface AllTableComponent {
void inject(RegionFragment fragment);
void inject(RegionTableFragment fragment);
@Component.Builder
interface Builder {
@BindsInstance
AllTableComponent.Builder view(RegionFragmentContract.View view);
AllTableComponent.Builder view(RegionTableContract.View view);
AllTableComponent.Builder appComponent(AppComponent appComponent);
......
package com.gingersoft.gsa.cloud.table.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.table.di.module.StateTableModule;
import com.gingersoft.gsa.cloud.table.mvp.contract.StateTableContract;
import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.StateTableFragment;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2019 17:33
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
@Component(modules = StateTableModule.class, dependencies = AppComponent.class)
public interface StateTableComponent {
void inject(StateTableFragment fragment);
@Component.Builder
interface Builder {
@BindsInstance
StateTableComponent.Builder view(StateTableContract.View view);
StateTableComponent.Builder appComponent(AppComponent appComponent);
StateTableComponent build();
}
}
\ No newline at end of file
......@@ -3,8 +3,8 @@ package com.gingersoft.gsa.cloud.table.di.module;
import dagger.Binds;
import dagger.Module;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionFragmentContract;
import com.gingersoft.gsa.cloud.table.mvp.model.RegionFragmentModel;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionTableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.RegionTableModel;
/**
......@@ -23,5 +23,5 @@ import com.gingersoft.gsa.cloud.table.mvp.model.RegionFragmentModel;
public abstract class AllTableModule {
@Binds
abstract RegionFragmentContract.Model bindAllTableModel(RegionFragmentModel model);
abstract RegionTableContract.Model bindAllTableModel(RegionTableModel model);
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.di.module;
import dagger.Binds;
import dagger.Module;
import com.gingersoft.gsa.cloud.table.mvp.contract.StateTableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.StateTableModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2019 17:33
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class StateTableModule {
@Binds
abstract StateTableContract.Model bindStateTableModel(StateTableModel model);
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.action.discount;
import android.app.Activity;
import com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.order.discount.NomalDiscount;
import java.util.List;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:賬單優惠券邏輯
*/
public class BillCouponAction implements Strategy<MemberCoupon> {
private Activity mContext;
/**
* 賬單優惠券列表
*/
private List<NomalDiscount> mNomalDiscountList;
private OnCallBackListener mListener;
public BillCouponAction(Activity context, OnCallBackListener listener) {
this.mContext = context;
this.mListener = listener;
}
public void setNomalDiscountList(List<NomalDiscount> nomalDiscountList) {
this.mNomalDiscountList = nomalDiscountList;
}
@Override
public void action(MemberCoupon discount) {
if (mListener == null) {
return;
}
}
@Override
public void destroy() {
}
private void exclusiveDiscount(MemberCoupon discount) {
if (mListener != null) {
}
}
public interface OnCallBackListener {
void exclusiveRemoveOthers(List<NomalDiscount> nomalDiscountList);
void preformAddDiscount(MemberCoupon discount);
}
}
package com.gingersoft.gsa.cloud.table.mvp.action.discount;
import android.app.Activity;
import android.text.InputType;
import com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.List;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:食品優惠券邏輯
*/
public class MealCouponAction implements Strategy<MemberCoupon> {
private Activity mContext;
/**
* 食品優惠券列表
*/
private List<NomalDiscount> mNomalDiscountList;
private OnCallBackListener mListener;
public MealCouponAction(Activity context, OnCallBackListener listener) {
this.mContext = context;
this.mListener = listener;
}
public void setNomalDiscountList(List<NomalDiscount> nomalDiscountList) {
this.mNomalDiscountList = nomalDiscountList;
}
@Override
public void action(MemberCoupon discount) {
if (mListener == null) {
return;
}
}
@Override
public void destroy() {
}
private void exclusiveDiscount(MemberCoupon discount) {
if (mListener != null) {
}
}
/**
* 是否有獨佔折扣
*
* @return
*/
private boolean hasExclusiveDiscount() {
for (NomalDiscount nomalDiscount : mNomalDiscountList) {
if (nomalDiscount.getDiscount().getExclusive() == 1) {
return true;
}
}
return false;
}
public interface OnCallBackListener {
void exclusiveRemoveOthers(List<NomalDiscount> nomalDiscountList);
void preformAddDiscount(MemberCoupon discount);
}
}
......@@ -10,13 +10,12 @@ import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.mvp.IView;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
......@@ -90,7 +89,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
}
@Override
public void onPosException(Exception e) {
public void onPosException(VoidRespose response, Exception e) {
LoganManager.w_order(TAG, "onPosException: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
......
package com.gingersoft.gsa.cloud.table.mvp.action.order;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
import com.gingersoft.gsa.cloud.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.mvp.IView;
import java.util.Date;
import java.util.List;
/**
......
package com.gingersoft.gsa.cloud.table.mvp.action.order;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
......@@ -21,10 +20,9 @@ import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
......@@ -116,7 +114,7 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response, Exception e) {
if(printlListener != null){
printlListener.printPosStubResult(false);
}
......
package com.gingersoft.gsa.cloud.table.mvp.action.order;
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
......@@ -10,9 +8,9 @@ import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.jess.arms.base.BaseFragmentActivity;
......@@ -87,7 +85,7 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
}
@Override
public void onPosException(Exception e) {
public void onPosException(RefundRespose response,Exception e) {
LoganManager.w_order(TAG, "onPosException: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
......
......@@ -9,9 +9,9 @@ import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
......@@ -75,7 +75,7 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
}
@Override
public void onPosException(Exception e) {
public void onPosException(AdjustTipRespose response,Exception e) {
LoganManager.w_order(TAG, "onPosException: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
......
......@@ -5,8 +5,7 @@ import android.content.Intent;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.jess.arms.base.DefaultAdapter;
import java.util.List;
......@@ -34,7 +33,7 @@ public interface OrderContentContract {
void returnTableList(List<TableBean.DataBean> dataBeanList);
RegionFragment getCurrentTableFragment();
RegionTableFragment getCurrentTableFragment();
void clickTableItem(TableBean.DataBean dataBean);
......
......@@ -17,11 +17,11 @@ import com.jess.arms.mvp.IModel;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface RegionFragmentContract {
public interface RegionTableContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void showEmptyView(boolean isSuccess, int size, Throwable t);
void showLoadSirCall(boolean isSuccess, int size, Throwable t);
void setAllTableAdapter(DefaultAdapter adapter);
}
......
package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2019 17:33
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface StateTableContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void setStateTableAdapter(DefaultAdapter adapter);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
}
}
......@@ -4,7 +4,7 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.jess.arms.base.DefaultAdapter;
......@@ -37,7 +37,7 @@ public interface TableContract {
void returnTableList(List<TableBean.DataBean> dataBeanList);
RegionFragment getCurrentTableFragment();
RegionTableFragment getCurrentTableFragment();
void clickTableItem(TableBean.DataBean dataBean);
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionTableContract;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
......@@ -10,8 +11,6 @@ import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionFragmentContract;
/**
* ================================================
......@@ -26,14 +25,14 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.RegionFragmentContract;
* ================================================
*/
@FragmentScope
public class RegionFragmentModel extends BaseModel implements RegionFragmentContract.Model {
public class RegionTableModel extends BaseModel implements RegionTableContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public RegionFragmentModel(IRepositoryManager repositoryManager) {
public RegionTableModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
......
package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.table.mvp.contract.StateTableContract;
import com.google.gson.Gson;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import javax.inject.Inject;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2019 17:33
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
public class StateTableModel extends BaseModel implements StateTableContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public StateTableModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
}
\ No newline at end of file
......@@ -2,8 +2,6 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean.response;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.oaId.DeviceID;
......@@ -12,7 +10,7 @@ import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.PayMethodConstant;
import java.io.Serializable;
import java.util.List;
......
......@@ -53,8 +53,12 @@ public class CouponPresenter extends BasePresenter<CouponContract.Model, CouponC
//是否可以繼續上拉刷新
private boolean noMoreData = false;
private int limitType = 1;
/**
* 0=沒有限制
* 1=食品專有
* 2=帳單專有
*/
private int limitType = 0;
private int pageIndex = 1;
private int pageSize = 20;
......
......@@ -4,7 +4,6 @@ import android.app.Application;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.View;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
......@@ -110,68 +109,31 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Inject
AppManager mAppManager;
// @Inject
// @Named("foodList")
// List<Food> mFoodList;
// @Inject
// List<ComboItem> mFoodComboList; //套餐细项数据
// @Inject
// List<Modifier> mModifierList; //细项数据
// @Inject
// List<Discount> mDiscountList; //折扣数据
// @Inject
// List<SoldoutCtrFood> mSoldoutCtrList;//沽清食品數據
//
// @Inject
// FoodAdapter mFoodAdapter;
// @Inject
// ComboAdapter mComboAdapter;
// @Inject
// ModifierAdapter mModifierAdapter;
// @Inject
// DiscountAdapter mDiscountAdapter;
//
// private MealStandActivity IActivity;
//
// private CancelFoodDialog mCancelFoodDialog;
//
// private MealDiscountAction mMealDiscountAction;
//
// private OrderDetail mCurrentOrderDetailBean;
// private boolean RvMealClicked;
@Inject
@Named("foodList")
List<Food> mFoodList;
@Inject
List<ComboItem> mFoodComboList; //套餐细项数据
@Inject
List<Modifier> mModifierList; //细项数据
@Inject
List<Discount> mDiscountList; //折扣数据
@Inject
List<SoldoutCtrFood> mSoldoutCtrList;//沽清食品數據
@Inject
FoodAdapter mFoodAdapter;
@Inject
ComboAdapter mComboAdapter;
@Inject
ModifierAdapter mModifierAdapter;
@Inject
DiscountAdapter mDiscountAdapter;
private MealStandActivity IActivity;
private CancelFoodDialog mCancelFoodDialog;
private FoodAdapter mFoodAdapter;
private ComboAdapter mComboAdapter;
private ModifierAdapter mModifierAdapter;
private DiscountAdapter mDiscountAdapter;
/**
* 食品数据
*/
private List<Food> mFoodGroupList = new ArrayList<>();
/**
* 當前食品組下食品
*/
private List<Food> mFoodList = new ArrayList<>();
/**
* 套餐细项数据
*/
private List<ComboItem> mFoodComboList = new ArrayList<>();
private List<Modifier> mModifierList = new ArrayList<>();
/**
* 折扣数据
*/
private List<Discount> mDiscountList = new ArrayList<>();
/**
* 沽清食品數據
*/
private List<SoldoutCtrFood> mSoldoutCtrList = new ArrayList<>();
private MealDiscountAction mMealDiscountAction;
private OrderDetail mCurrentOrderDetailBean;
......@@ -253,9 +215,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (foodGroupList != null && foodGroupList.size() > 0) {
// mRootView.getFoodGroupList().addAll(foodGroupList);
mFoodGroupList.addAll(foodGroupList);
mRootView.getFoodGroupList().addAll(foodGroupList);
Food defalutFoodGroup = getDefalutFoodGroup(mRootView.getFoodGroupList());
if (defalutFoodGroup != null) {
......@@ -287,19 +247,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (mSelectMealAdapter != null) {
mRootView.setSelectFoodAdapter(mSelectMealAdapter);
}
if (mFoodAdapter == null) {
if (mFoodAdapter != null) {
mRootView.setFoodAdapter(mFoodAdapter);
}
if (mComboAdapter == null) {
mComboAdapter = new ComboAdapter(IActivity, mFoodComboList);
if (mComboAdapter != null) {
mRootView.setComboAdapter(mComboAdapter);
}
if (mModifierAdapter == null) {
mModifierAdapter = new ModifierAdapter(IActivity, mModifierList);
if (mModifierAdapter != null) {
mRootView.setModifierAdapter(mModifierAdapter);
}
if (mDiscountAdapter == null) {
mDiscountAdapter = new DiscountAdapter(IActivity, mDiscountList);
if (mDiscountAdapter != null) {
mRootView.setDiscountAdapter(mDiscountAdapter);
}
}
......
......@@ -612,13 +612,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
sortTableList(tableBeanData);
mRootView.returnTableList(tableBeanData);
} else {
mRootView.getCurrentTableFragment().showEmptyView(true, 0, null);
mRootView.getCurrentTableFragment().showLoadSirCall(true, 0, null);
}
} else {
if (show) {
mRootView.getCurrentTableFragment().showMessage(tableBean.getErrMsg());
}
mRootView.getCurrentTableFragment().showEmptyView(false, 0, null);
mRootView.getCurrentTableFragment().showLoadSirCall(false, 0, null);
}
resetRefreshLayout();
}
......@@ -626,7 +626,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.getCurrentTableFragment().showEmptyView(false, 0, t);
mRootView.getCurrentTableFragment().showLoadSirCall(false, 0, t);
resetRefreshLayout();
}
......
......@@ -5,12 +5,12 @@ import android.app.Application;
import android.content.Context;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionFragmentContract;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionTableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......@@ -38,7 +38,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
* ================================================
*/
@FragmentScope
public class RegionFragmentPresenter extends BasePresenter<RegionFragmentContract.Model, RegionFragmentContract.View> {
public class RegionTablePresenter extends BasePresenter<RegionTableContract.Model, RegionTableContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
......@@ -51,16 +51,16 @@ public class RegionFragmentPresenter extends BasePresenter<RegionFragmentContrac
private TableActivity mTableActivity;
private OrderContentActivity mOrderContentActivity;
private RegionFragment IView;
private RegionTableFragment IView;
private TableAdapter mTableAdapter;
private List<TableBean.DataBean> mTableList = new ArrayList<>();
@Inject
public RegionFragmentPresenter(RegionFragmentContract.Model model, RegionFragmentContract.View rootView) {
public RegionTablePresenter(RegionTableContract.Model model, RegionTableContract.View rootView) {
super(model, rootView);
this.IView = (RegionFragment) rootView;
this.IView = (RegionTableFragment) rootView;
Activity activity = IView.getCurrentActivity();
if (activity instanceof TableActivity) {
......
......@@ -396,13 +396,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
setAreaListByTableList(tableBeanData);
} else {
mRootView.getCurrentTableFragment().showEmptyView(true, 0, null);
mRootView.getCurrentTableFragment().showLoadSirCall(true, 0, null);
}
} else {
if (show) {
mRootView.getCurrentTableFragment().showMessage(tableBean.getErrMsg());
}
mRootView.getCurrentTableFragment().showEmptyView(false, 0, null);
mRootView.getCurrentTableFragment().showLoadSirCall(false, 0, null);
}
resetRefreshLayout();
}
......@@ -411,7 +411,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void onError(Throwable t) {
super.onError(t);
if (mRootView.getCurrentTableFragment() != null) {
mRootView.getCurrentTableFragment().showEmptyView(false, 0, t);
mRootView.getCurrentTableFragment().showLoadSirCall(false, 0, t);
}
resetRefreshLayout();
}
......
......@@ -3,65 +3,22 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.Nullable;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderDetailActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
......
......@@ -255,8 +255,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@BindView(R2.id.tv_fine_type)
TextView tv_fine_type;
private FragmentManager fm;
private FineItemAllFragment modMsgFineItemFragment, modSasteFineItemFragment;
private ChooseNumberDialog mChooseNumberDialog;
......@@ -284,17 +282,13 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private ImageView[] ivPoints;
private int mPageIndex;
private int totalPage;
// @Inject
// @Named("foodGroupList")
@Inject
@Named("foodGroupList")
List<Food> mFoodGroupList;
// @Inject
@Inject
FoodGroupAdapter mFoodGroupAdapter;
private PagerGridLayoutManager mLayoutManager;
private static final int FINISH = 101;
private static final int ORDER_CONTENT_CODE = 1002;
public static final int SCAN_REQUEST_CODE = 0x0000c0de;
private int foodGroupRow = 2;
private int foodGroupColumn = 6;
......@@ -412,14 +406,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
if (Rows == 0) {
Rows = 2;
}
mLayoutManager = new PagerGridLayoutManager(Rows, foodGroupColumn, PagerGridLayoutManager.HORIZONTAL);
PagerGridLayoutManager mLayoutManager = new PagerGridLayoutManager(Rows, foodGroupColumn, PagerGridLayoutManager.HORIZONTAL);
//水平分页布局管理器
mLayoutManager.setPageListener(this);
//设置页面变化监听器
rv_food_group.setLayoutManager(mLayoutManager);
// 设置滚动辅助工具
//设置滚动辅助工具
PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
pageSnapHelper.attachToRecyclerView(rv_food_group);
......@@ -427,9 +421,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
PagerConfig.setShowLog(true);
// 使用原生的 Adapter 即可
mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList, 1);
// mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList, 1);
// mFoodGroupAdapter.setFoodGroupList(mFoodGroupList);
mFoodGroupAdapter.setFoodGroupList(mFoodGroupList);
rv_food_group.setAdapter(mFoodGroupAdapter);
mFoodGroupAdapter.setOnItemClickListener(new FoodGroupAdapter.OnItemClickListener() {
@Override
......@@ -490,7 +484,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void initFineItemTabBarViewPage() {
fm = getSupportFragmentManager();
FragmentManager fm = getSupportFragmentManager();
List<Fragment> fragmentList = new ArrayList<>();
// Fragment标签
modSasteFineItemFragment = FineItemAllFragment.newInstance();
......
......@@ -34,7 +34,6 @@ import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.common.utils.encryption.DESUtil;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.table.R;
......@@ -45,7 +44,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.OrderConentActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
......@@ -145,7 +144,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
private ViewPager mContentViewPager;
private InputTableFragment inputTableFragment;
private RegionFragment allTableFragment, stateTableFragment;
private RegionTableFragment allTableFragment, stateTableFragment;
private String[] mTabTitles = {"編號", "全部", "狀態:全部"};
/**
* 切換餐檯狀態下拉框
......@@ -347,7 +346,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
}
@Override
public RegionFragment getCurrentTableFragment() {
public RegionTableFragment getCurrentTableFragment() {
switch (mCurrentPageIndex) {
case FUNCTION_STATE_TABLE:
return stateTableFragment;
......@@ -685,7 +684,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
if (allTableFragment != null) {
return allTableFragment;
}
allTableFragment = RegionFragment.newInstance();
allTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
allTableFragment.setArguments(bundle);
return allTableFragment;
......@@ -693,7 +692,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
if (stateTableFragment != null) {
return stateTableFragment;
}
stateTableFragment = RegionFragment.newInstance();
stateTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_STATE_TABLE);
stateTableFragment.setArguments(bundle);
return stateTableFragment;
......
......@@ -39,7 +39,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.action.table.PrintSkyorderAction;
import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity;
......@@ -129,7 +129,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
public static final int FUNCTION_STATE_TABLE = 2;
private InputTableFragment inputTableFragment;
private RegionFragment allTableFragment, stateTableFragment;
private RegionTableFragment allTableFragment, stateTableFragment;
private String[] mTabTitles = {"編號", "全部", "狀態:全部"};
/**
......@@ -294,7 +294,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
}
@Override
public RegionFragment getCurrentTableFragment() {
public RegionTableFragment getCurrentTableFragment() {
switch (mCurrentPageIndex) {
case FUNCTION_STATE_TABLE:
return stateTableFragment;
......@@ -487,7 +487,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
if (allTableFragment != null) {
return allTableFragment;
}
allTableFragment = RegionFragment.newInstance();
allTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
allTableFragment.setArguments(bundle);
return allTableFragment;
......@@ -495,7 +495,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
if (stateTableFragment != null) {
return stateTableFragment;
}
stateTableFragment = RegionFragment.newInstance();
stateTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_STATE_TABLE);
stateTableFragment.setArguments(bundle);
return stateTableFragment;
......
......@@ -4,11 +4,9 @@ import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import androidx.annotation.NonNull;
......@@ -18,46 +16,16 @@ import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.oaId.DeviceID;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.contract.OrderStatusContract;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
......@@ -68,22 +36,16 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager.OrderDetailPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterDetailFoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterMoneyAdapter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import org.jetbrains.annotations.NotNull;
import org.simple.eventbus.Subscriber;
import java.util.ArrayList;
......
......@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment;
import android.app.Activity;
import android.content.Intent;
import android.net.ParseException;
import android.os.Bundle;
import android.os.Message;
import android.view.LayoutInflater;
......@@ -11,30 +10,29 @@ import android.view.View;
import android.view.ViewGroup;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.common.loadsir.FailureCallback;
import com.gingersoft.gsa.cloud.common.loadsir.LoadsirUtil;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerAllTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionFragmentContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.RegionFragmentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.contract.RegionTableContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.RegionTablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.kingja.loadsir.callback.Callback;
import com.kingja.loadsir.core.LoadService;
import com.kingja.loadsir.core.LoadSir;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import org.json.JSONException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.List;
import androidx.annotation.NonNull;
......@@ -63,7 +61,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implements RegionFragmentContract.View {
public class RegionTableFragment extends BaseFragment<RegionTablePresenter> implements RegionTableContract.View {
@BindView(R2.id.refreshLayout)
......@@ -71,8 +69,10 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
@BindView(R2.id.recycle_all_table)
RecyclerView recycle_all_table;
@BindView(R2.id.emptyView)
QMUIEmptyView mEmptyView;
// @BindView(R2.id.emptyView)
// QMUIEmptyView mEmptyView;
private LoadService loadService;
private TableActivity mTableActivity;
private OrderContentActivity mOrderContentActivity;
......@@ -83,10 +83,8 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
*/
private int currentPageIndex;
private List<TableBean.DataBean> datasBeans;
public static RegionFragment newInstance() {
RegionFragment fragment = new RegionFragment();
public static RegionTableFragment newInstance() {
RegionTableFragment fragment = new RegionTableFragment();
return fragment;
}
......@@ -113,6 +111,16 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
} else if (mContext instanceof OrderContentActivity) {
mOrderContentActivity = (OrderContentActivity) mContext;
}
loadService = LoadSir.getDefault().register(refreshLayout, new Callback.OnReloadListener() {
@Override
public void onReload(View v) {
if (mContext instanceof TableActivity) {
mTableActivity.getTables(true, refreshLayout);
} else if (mContext instanceof OrderContentActivity) {
mOrderContentActivity.getTables(true, refreshLayout);
}
}
});
initRefreshLayout();
initRecycleScrollListener();
}
......@@ -192,6 +200,7 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
@Override
public void setData(@Nullable Object data) {
List<TableBean.DataBean> datasBeans;
if (data != null && data instanceof Message) {
switch (((Message) data).what) {
case 0:
......@@ -210,10 +219,12 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
}
}
}
if (mEmptyView != null)
mEmptyView.hide();
if (recycle_all_table != null)
if (loadService != null) {
loadService.showSuccess();
}
if (recycle_all_table != null) {
recycle_all_table.setVisibility(View.VISIBLE);
}
break;
case 2://刷新状态已变数据
datasBeans = (List<TableBean.DataBean>) ((Message) data).obj;
......@@ -224,8 +235,8 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
mPresenter.updataTableItem(datasBeans);
}
}
if (mEmptyView != null) {
mEmptyView.hide();
if (loadService != null) {
loadService.showSuccess();
}
if (recycle_all_table != null) {
recycle_all_table.setVisibility(View.VISIBLE);
......@@ -252,7 +263,6 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
// ArmsUtils.snackbarText(message);
ToastUtils.show(mContext, message);
}
......@@ -271,47 +281,24 @@ public class RegionFragment extends BaseFragment<RegionFragmentPresenter> implem
return (Activity) mContext;
}
private View.OnClickListener onRetryClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mTableActivity != null) {
mTableActivity.getTables(true, refreshLayout);
} else if (mOrderContentActivity != null) {
mOrderContentActivity.getTables(true, refreshLayout);
}
}
};
@Override
public void showEmptyView(boolean isSuccess, int size, Throwable t) {
public void showLoadSirCall(boolean isSuccess, int size, Throwable t) {
if (t != null) {
if (t instanceof UnknownHostException) {
//沒有網絡
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), getResources().getString(R.string.emptyView_mode_desc_fail_desc), getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
} else if (t instanceof SocketTimeoutException) {
//請求超時
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), getResources().getString(R.string.emptyView_mode_desc_fail_desc), getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
} else if (t instanceof JsonParseException || t instanceof ParseException || t instanceof JSONException || t instanceof JsonIOException) {
//數據解析錯誤
mEmptyView.show(false, getResources().getString(R.string.response_error_data_parsing_error), null, getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
} else {
//其他error
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), null, getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
}
LoadsirUtil.showCallbackByError(t, loadService);
recycle_all_table.setVisibility(View.INVISIBLE);
return;
}
if (!isSuccess) {
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), null, getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
loadService.showCallback(FailureCallback.class);
recycle_all_table.setVisibility(View.INVISIBLE);
return;
}
if (size == 0) {
mEmptyView.show(getResources().getString(R.string.emptyView_mode_desc_double), null);
loadService.showCallback(EmptyCallback.class);
recycle_all_table.setVisibility(View.INVISIBLE);
return;
}
mEmptyView.hide();
loadService.showSuccess();
recycle_all_table.setVisibility(View.VISIBLE);
}
......
package com.gingersoft.gsa.cloud.table.mvp.ui.fragment;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerStateTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.StateTableContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.StateTablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import static android.widget.AbsListView.OnScrollListener.SCROLL_STATE_IDLE;
import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_DRAGGING;
import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_SETTLING;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2019 17:33
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class StateTableFragment extends BaseFragment<StateTablePresenter> implements StateTableContract.View {
@BindView(R2.id.recycle_state_table)
RecyclerView recycle_state_table;
private TableActivity mTableActivity;
private OrderContentActivity mOrderContentActivity;
private List<TableBean.DataBean> datasBeans;
private int status;
public static StateTableFragment newInstance() {
StateTableFragment fragment = new StateTableFragment();
return fragment;
}
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
DaggerStateTableComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.table_fragment_state_table, container, false);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
if (mContext instanceof TableActivity) {
mTableActivity = (TableActivity) mContext;
} else if(mContext instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) mContext;
}
initRecycleScrollListener();
}
private void initRecycleScrollListener() {
recycle_state_table.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
switch (newState) {
case SCROLL_STATE_IDLE://停止滚动
if (mTableActivity != null) {
mTableActivity.onStartRefreshTableData();
} else if (mOrderContentActivity != null) {
mOrderContentActivity.onStartRefreshTableData();
}
break;
case SCROLL_STATE_DRAGGING://正在被外部拖拽,一般为用户正在用手指滚动
case SCROLL_STATE_SETTLING://自动滚动开始
if (mTableActivity != null) {
mTableActivity.onPauseRefreshTableData();
} else if (mOrderContentActivity != null) {
mOrderContentActivity.onPauseRefreshTableData();
}
break;
}
}
});
recycle_state_table.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE: //用户滑动 先停止刷新餐台数据
if (mTableActivity != null) {
mTableActivity.onPauseRefreshTableData();
} else if (mOrderContentActivity != null) {
mOrderContentActivity.onPauseRefreshTableData();
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
if (mTableActivity != null) {
mTableActivity.onStartRefreshTableData();
} else if (mOrderContentActivity != null) {
mOrderContentActivity.onStartRefreshTableData();
}
//用户手抬起是 继续刷新餐台数据
break;
}
return false;
}
});
}
@Override
public void setData(@Nullable Object data) {
if (data != null && data instanceof Message) {
switch (((Message) data).what) {
case 0:
break;
case 1://刷新全部数据
datasBeans = (List<TableBean.DataBean>) ((Message) data).obj;
status = ((Message) data).arg1;
if (mPresenter != null) {
//recycleView正在滑动
if (recycle_state_table != null && recycle_state_table.getScrollState() != 0) {
} else {
mPresenter.updateAllTableData(mContext, datasBeans, status);
}
}
break;
case 2://刷新状态已变数据
datasBeans = (List<TableBean.DataBean>) ((Message) data).obj;
if (mPresenter != null) {
//recycleView正在滑动
if (recycle_state_table != null && recycle_state_table.getScrollState() != 0) {
} else {
mPresenter.updataTableItem(datasBeans);
}
}
break;
default:
//do something
break;
}
}
}
@Override
public void showLoading(String message) {
}
@Override
public void hideLoading() {
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
// ArmsUtils.snackbarText(message);
ToastUtils.show(mContext, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
}
public Activity getCurrentActivity() {
return (Activity) mContext;
}
@Override
public void setStateTableAdapter(DefaultAdapter adapter) {
recycle_state_table.setAdapter(adapter);
initStateTableRecycleViewLayout();
}
private GridLayoutManager mStateTableRecycleLayoutManager;
private void initStateTableRecycleViewLayout() {
// if (GSAApplication.androidSetting.getTableDirection() == 2) { //横向展示
// mStateTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 5, LinearLayoutManager.HORIZONTAL, false);
// recycle_state_table.setLayoutManager(mStateTableRecycleLayoutManager);
// recycle_state_table.setItemAnimator(new DefaultItemAnimator());
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
// } else {
mStateTableRecycleLayoutManager = new GridLayoutManager(mContext, 4, LinearLayoutManager.VERTICAL, false);
recycle_state_table.setLayoutManager(mStateTableRecycleLayoutManager);
// recycle_state_table.addItemDecoration(new GridDividerItemDecoration(ArmsUtils.dip2px(getActivity(),1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color)));
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
// }
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
......@@ -15,10 +12,7 @@ import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDialogFragment;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon;
......@@ -28,20 +22,12 @@ import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.DiscountDialog;
import com.gingersoft.gsa.cloud.ui.view.TriangleView;
import com.jess.arms.base.BaseDialogFragment;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ThirdViewUtil;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
......@@ -51,7 +37,6 @@ import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* @作者: bin
......@@ -63,8 +48,6 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
private final String TAG = "DiscountFragment";
// @BindView(R2.id.topbar)
// QMUITopBar topbar;
@BindView(R2.id.tabSegment)
QMUITabSegment tabSegment;
@BindView(R2.id.contentViewPager)
......@@ -75,7 +58,6 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
private CouponFragment couponFragment;
private BillDiscountFragment billDiscountFragment;
private boolean canScan = true;
private List<String> mTabTitles = new ArrayList<>();
private int mCurrentPageIndex = 0;
......@@ -97,7 +79,6 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
@Override
public void onStart() {
super.onStart();
mWindow.getDecorView().setPadding(0, 0, 0, 0);
mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
WindowManager.LayoutParams lp = mWindow.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
......
package com.gingersoft.gsa.cloud.table.mvp.ui.widget;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
......@@ -14,22 +13,16 @@ import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.PagerTabStrip;
import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.jess.arms.utils.ThirdViewUtil;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
......@@ -39,7 +32,6 @@ import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabView;
import java.util.ArrayList;
import java.util.List;
......
......@@ -6,7 +6,7 @@
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<androidx.recyclerview.widget.RecyclerView
......
......@@ -15,8 +15,8 @@
android:background="@color/theme_background_color" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<com.qmuiteam.qmui.widget.QMUIEmptyView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- <com.qmuiteam.qmui.widget.QMUIEmptyView-->
<!-- android:id="@+id/emptyView"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent" />-->
</FrameLayout>
......@@ -16,8 +16,8 @@
android:overScrollMode="never" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<com.qmuiteam.qmui.widget.QMUIEmptyView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- <com.qmuiteam.qmui.widget.QMUIEmptyView-->
<!-- android:id="@+id/emptyView"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent" />-->
</FrameLayout>
\ No newline at end of file
......@@ -166,14 +166,6 @@ public abstract class BaseDialogFragment<P extends IPresenter> extends AppCompat
return view;
}
@Override
public void configImmersionBar(ImmersionBar immersionBar) {
// immersionBar.statusBarColor("#398BED") //状态栏颜色,不写默认透明色
// .statusBarDarkFont(true) //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持
// .fitsSystemWindows(true)
//// .fullScreen(true)
// .init();
}
/**
* 是否使用eventBus,默认为使用(true),
......
......@@ -26,6 +26,8 @@ import android.view.ViewGroup;
import android.view.animation.Animation;
import com.gyf.immersionbar.ImmersionBar;
import com.gyf.immersionbar.components.ImmersionFragment;
import com.jess.arms.R;
import com.jess.arms.base.delegate.IFragment;
import com.jess.arms.integration.cache.Cache;
import com.jess.arms.integration.cache.CacheType;
......@@ -64,7 +66,7 @@ import me.yokeyword.fragmentation.anim.FragmentAnimator;
* <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================
*/
public abstract class BaseFragment<P extends IPresenter> extends Fragment implements IFragment, ISupportFragment, FragmentLifecycleable {
public abstract class BaseFragment<P extends IPresenter> extends ImmersionFragment implements IFragment, ISupportFragment, FragmentLifecycleable {
protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<FragmentEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache;
......@@ -77,6 +79,8 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
final SupportFragmentDelegate mDelegate = new SupportFragmentDelegate(this);
protected BaseFragmentActivity _mActivity;
private View toolbar;
@NonNull
@Override
public synchronized Cache<String, Object> provideCache() {
......@@ -152,6 +156,23 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
toolbar = view.findViewById(R.id.topbar);
fitsLayoutOverlap();
}
private void fitsLayoutOverlap() {
if (toolbar != null) {
ImmersionBar.setTitleBar(this, toolbar);
}
}
@Override
public void initImmersionBar() {
}
@Nullable
@Override
......@@ -160,17 +181,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
}
@SuppressLint("ResourceType")
@Override
public void configImmersionBar(ImmersionBar immersionBar) {
immersionBar
.statusBarColor("#398BED") //状态栏颜色,不写默认透明色
.statusBarDarkFont(true) //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持
.fitsSystemWindows(true)
// .fullScreen(true)
.init();
}
/**
* 是否使用eventBus,默认为使用(true),
*
......
......@@ -54,7 +54,7 @@ public class ActivityDelegateImpl implements ActivityDelegate {
EventBus.getDefault().register(mActivity);
}
iActivity.configImmersionBar(ImmersionBar.with(mActivity));
// iActivity.configImmersionBar(ImmersionBar.with(mActivity));
//这里提供 AppComponent 对象给 BaseActivity 的子类, 用于 Dagger2 的依赖注入
iActivity.setupActivityComponent(ArmsUtils.obtainAppComponentFromContext(mActivity));
}
......
......@@ -67,7 +67,7 @@ public interface IFragment {
/**
* 重写此方法可配置当前页面的沉浸式主题
*/
void configImmersionBar(ImmersionBar immersionBar);
// void configImmersionBar(ImmersionBar immersionBar);
/**
* 是否使用 {@link EventBus}
......
......@@ -4,4 +4,5 @@
<item type="id" name="statusbarutil_fake_status_bar_view" />
<item type="id" name="statusbarutil_translucent_view" />
<item type="id" name="topbar" />
</resources>
\ No newline at end of file
......@@ -97,6 +97,8 @@ dependencies {
api 'com.sunmi:printerlibrary:1.0.7'
//扫码
api 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'
// loadingView
api rootProject.ext.dependencies["loadingIndicatorView"]
//加载反馈页管理
api rootProject.ext.dependencies["loadsir"]
//rxjava,rxbinding相關工具類
......
......@@ -28,13 +28,14 @@ public class MemberCoupon extends AbstractDiscount {
public Discount castDiscount() {
Discount discount = new Discount();
discount.setId(getId());
discount.setDiscountValue(getDiscount());
discount.setMinBillAmount(getBillMinAmount());
discount.setRemark(getRemark());
discount.setBeginTime(getBeginDate());
discount.setEndTime(getEndDate());
return discount;
Discount discountBean = new Discount();
discountBean.setId(id);
discountBean.setDiscountValue(discount);
discountBean.setAmount(amount);
discountBean.setMinBillAmount(billMinAmount);
discountBean.setRemark(remark);
discountBean.setBeginTime(beginDate);
discountBean.setEndTime(endDate);
return discountBean;
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.common.loadsir;
import com.gingersoft.gsa.cloud.common.R;
import com.kingja.loadsir.callback.Callback;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:加載失敗
* */
public class FailureCallback extends Callback {
@Override
protected int onCreateView() {
return R.layout.loadsir_failure;
}
}
......@@ -9,10 +9,13 @@ import com.kingja.loadsir.callback.Callback;
* @update date: 2020-10-27
* @description:
*/
public class LoadingCallback extends Callback {
public class LoadingCallback extends Callback {
@Override
protected int onCreateView() {
return R.layout.loadsir_loading;
}
}
......@@ -27,7 +27,7 @@ public class WebviewHelper {
public static final int RIGHT_TYPE_REFRESH = 202;
public static final void openWebview(String url){
public static final void openUrl(String url){
CC.obtainBuilder(ComponentName.COMPONENT_WEBVIEW)
.setActionName("openWebActivity")
.addParam(WebviewHelper.URL_KEY, url)
......
......@@ -26,8 +26,9 @@
android:layout_height="wrap_content"
android:text="@string/emptyView_mode_desc_fail_click_blank_refresh"
android:textColor="#999999"
android:textSize="@dimen/text_size_default"
android:visibility="gone"
android:textSize="@dimen/load_dialog_text_size"
android:textStyle="bold"
android:visibility="visible"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......@@ -35,9 +36,12 @@
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="@dimen/button_height"
android:layout_margin="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingBottom="@dimen/dp_5"
android:paddingLeft="@dimen/dp_50"
android:paddingRight="@dimen/dp_50"
android:background="@color/theme_color"
android:text="@string/emptyView_mode_desc_retry"
android:textColor="@color/theme_white_color"
......@@ -47,6 +51,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:qmui_backgroundColor="@color/theme_color"
app:qmui_radius="@dimen/dp_5" />
app:qmui_radius="@dimen/dp_90" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_loadsir_error_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/loadsir_network"
android:gravity="center"
android:drawablePadding="@dimen/dp_10"
android:textColor="#999999"
android:textSize="@dimen/load_dialog_text_size"
android:text="@string/emptyView_mode_desc_fail_title"
android:layout_marginBottom="@dimen/head_height"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/emptyView_mode_desc_fail_click_blank_refresh"
android:textColor="#999999"
android:textSize="@dimen/load_dialog_text_size"
android:textStyle="bold"
android:visibility="visible"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_loadsir_error_img" />
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@color/theme_color"
android:layout_margin="@dimen/dp_10"
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
android:text="@string/emptyView_mode_desc_retry"
app:qmui_radius="@dimen/dp_5"
android:visibility="gone"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
......@@ -14,10 +15,14 @@
android:orientation="vertical"
android:padding="10dp">
<ProgressBar
style="@style/AppTheme.Base"
<com.wang.avi.AVLoadingIndicatorView
style="@style/AVLoadingIndicatorView"
app:indicatorColor="@color/theme_white_color"
app:indicatorName="BallSpinFadeLoaderIndicator"
android:id="@+id/loading_progress"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:visibility="visible" />
<TextView
android:id="@+id/tv_loading_dialog_text"
......@@ -27,7 +32,5 @@
android:text="@string/ui_loading"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/load_dialog_text_size" />
</LinearLayout>
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/loadsir_empty"
android:gravity="center"
android:drawablePadding="@dimen/dp_10"
android:textColor="#999999"
android:textSize="@dimen/load_dialog_text_size"
android:text="@string/emptyView_mode_desc_fail_desc"
android:layout_marginBottom="@dimen/head_height"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -6,8 +6,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_loadsir_error_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/loadsir_network"
......@@ -22,6 +22,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/emptyView_mode_desc_fail_click_blank_refresh"
android:textColor="#999999"
android:textSize="@dimen/load_dialog_text_size"
android:textStyle="bold"
android:visibility="visible"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_loadsir_error_img" />
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
......@@ -32,6 +44,7 @@
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
android:text="@string/emptyView_mode_desc_retry"
android:visibility="gone"
app:qmui_radius="@dimen/dp_5"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
......
......@@ -7,7 +7,7 @@ import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest;
import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.SaleRespose;
import java.util.List;
import lombok.Data;
......
package com.gingersoft.gsa.cloud.pay.pos;
import com.gingersoft.gsa.cloud.common.loadsir.pos.BasePosCallback;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosResponse;
/**
* @作者: bin
......@@ -9,22 +8,23 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosRespo
* @更新時間: 2020-12-29 20:15
* @描述:POS事件回調
*/
public interface OnPosActionListener<T extends HywebPosResponse> {
public interface OnPosActionListener<T extends BasePosResponse> {
/**
* N5回調成功
* 回調成功
* @param response
*/
void onPosSuccess(T response);
/**
* N5回調狀態異常,需要去重試查詢
* 回調狀態異常,需要去重試查詢
* @param response
* @param e
*/
void onPosException(Exception e);
void onPosException(T response,Exception e);
/**
* N5調起失敗
* 調起失敗
* @param e
*/
void onPosInvalid(String e);
......
......@@ -3,27 +3,24 @@ package com.gingersoft.gsa.cloud.pay.pos;
import android.content.Context;
import com.etps.aca.lib.activity.CommandActivity;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest;
import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.command.CommandImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.PrintPaymentStubImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.RefundActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.RetrievalActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.SaleActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.SettlementActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.TipsActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.VoidActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.bean.BaseBgRequest;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.command.CommandImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.IHywebAction;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.PrintPaymentStubImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.RefundActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.RetrievalActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.SaleActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.SettlementActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.TipsActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.VoidActionImpl;
import com.jess.arms.mvp.IView;
import java.util.List;
import lombok.Builder;
import okhttp3.internal.ws.RealWebSocket;
/**
* @作者: bin
......@@ -31,9 +28,18 @@ import java.util.List;
* @更新時間: 2020-12-26 10:32
* @描述:
*/
@Builder
public final class PosPay {
public static void sendRequest(IPosAction action) {
final Context context;
final IView lifecycleView;
final BasePosRequest posRequest;
final BaseBgRequest bgRequest;
final PosAction retrievalAction;
final OnPosActionListener onPosActionListener;
final boolean showLoading;
public static void sendRequest(IHywebAction action) {
CommandActivity.setCommand(new CommandImpl(action));
// if (AppDevice.isHywebPos()) {
if (action != null) {
......@@ -44,31 +50,31 @@ public final class PosPay {
// }
}
public static void pay(Context context, IView iView, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest orderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new SaleActionImpl(context, iView, PosAction.SALE, saleRequest, getTxnIdRequest, tableBean, orderPayRequest, billItemList, payMethodList, onPosActionListener,true));
public void pay() {
PosPay.sendRequest(new SaleActionImpl(context, lifecycleView, PosAction.SALE, (SaleRequest) posRequest, (GetTxnIdRequest) bgRequest, onPosActionListener, true));
}
public static void tip(Context context, IView iView, GetTxnIdRequest txnIdRequest, AdjustTipRequest tipRequest, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new TipsActionImpl(context, iView, PosAction.TIP, txnIdRequest, tipRequest, onPosActionListener, true));
public void tip() {
PosPay.sendRequest(new TipsActionImpl(context, lifecycleView, PosAction.TIP, txnIdRequest, tipRequest, onPosActionListener, true));
}
public static void refund(Context context, IView iView, RefundRequest request, GetTxnIdRequest getTxnIdRequest, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new RefundActionImpl(context, iView, PosAction.REFUND, request, getTxnIdRequest, onPosActionListener, true));
public void refund() {
PosPay.sendRequest(new RefundActionImpl(context, lifecycleView, PosAction.REFUND, request, getTxnIdRequest, onPosActionListener, true));
}
public static void voidO(Context context, IView iView, VoidRequest request, GetTxnIdRequest getTxnIdRequest, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new VoidActionImpl(context, iView, PosAction.VOID, request, getTxnIdRequest, onPosActionListener, true));
public void voidO() {
PosPay.sendRequest(new VoidActionImpl(context, lifecycleView, PosAction.VOID, request, getTxnIdRequest, onPosActionListener, true));
}
public static void retrieval(Context context, IView iView,Long orderId, PosAction retrievalAction, RetrievalRequest request, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL,retrievalAction, orderId, request, onPosActionListener, false));
public static void retrieval(Context context, IView lifecycleView, Long orderId, PosAction retrievalAction, RetrievalRequest request, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new RetrievalActionImpl(context, lifecycleView, PosAction.RETRIEVAL, retrievalAction, orderId, request, onPosActionListener, false));
}
public static void printStub(Context context, IView iView, String txnId, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new PrintPaymentStubImpl(context, iView, PosAction.PRINT, txnId,onPosActionListener,true));
public void printStub() {
PosPay.sendRequest(new PrintPaymentStubImpl(context, lifecycleView, PosAction.PRINT, txnId, onPosActionListener, true));
}
public static void settlement(Context context, IView iView,OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new SettlementActionImpl(context, iView, PosAction.SETTLEMENT,onPosActionListener,true));
public void settlement() {
PosPay.sendRequest(new SettlementActionImpl(context, lifecycleView, PosAction.SETTLEMENT, onPosActionListener, true));
}
}
package com.gingersoft.gsa.cloud.pay.pos;
/**
* @作者: bin
* @創建時間: 2021-04-13 17:44
* @更新時間: 2021-04-13 17:44
* @描述:
*/
public class RealPayPos {
}
package com.gingersoft.gsa.cloud.pay.pos.bbpos;
import android.content.Context;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.jess.arms.mvp.IView;
/**
* @作者: bin
* @創建時間: 2020-12-26 10:38
* @更新時間: 2020-12-26 10:38
* @描述:BBPos支付
*/
public class BBPosAction extends IPosAction {
public BBPosAction(Context context, IView iView, PosAction action, boolean showLoading) {
super(context, iView, action, showLoading);
}
@Override
protected void onPosActionBefore() {
}
}
package com.gingersoft.gsa.cloud.pay.pos.bean;
/**
* @作者: bin
* @創建時間: 2021-04-13 17:52
* @更新時間: 2021-04-13 17:52
* @描述:
*/
public interface BaseBgRequest {
}
package com.gingersoft.gsa.cloud.pay.pos.bean;
/**
* @作者: bin
* @創建時間: 2021-04-13 17:52
* @更新時間: 2021-04-13 17:52
* @描述:
*/
public interface BaseBgResponse {
}
package com.gingersoft.gsa.cloud.pay.pos.bean;
/**
* @作者: bin
* @創建時間: 2021-04-13 17:52
* @更新時間: 2021-04-13 17:52
* @描述:
*/
public interface BasePosRequest {
}
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