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
......
......@@ -3,14 +3,18 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.fragment;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
......@@ -22,6 +26,8 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.ReportListContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.ReportListItem;
import com.gingersoft.gsa.cloud.main.mvp.presenter.ReportListPresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.ReportListAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.TabFragmentAdapter;
import com.google.android.material.tabs.TabLayout;
import com.gyf.immersionbar.ImmersionBar;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
......@@ -50,12 +56,22 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/
public class ReportListFragment extends BaseFragment<ReportListPresenter> implements ReportListContract.View {
@BindView(R2.id.topBar)
QMUITopBar topBar;
@BindView(R2.id.recycler_report)
RecyclerView recyclerReport;
// @BindView(R2.id.topBar)
// QMUITopBar topBar;
// @BindView(R2.id.recycler_report)
// RecyclerView recyclerReport;
//
// private ReportListAdapter mReportListAdapter;
private ReportListAdapter mReportListAdapter;
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.table_layout)
TabLayout mTabLayout;
@BindView(R2.id.report_viewpager)
ViewPager mViewPager;
private TabFragmentAdapter mTabFragmentAdapter;
private List<String> titles;
public static ReportListFragment newInstance() {
ReportListFragment fragment = new ReportListFragment();
......@@ -73,14 +89,6 @@ public class ReportListFragment extends BaseFragment<ReportListPresenter> implem
}
@Override
public void configImmersionBar(ImmersionBar immersionBar) {
immersionBar
.statusBarColor(R.color.red)
.barColor(R.color.red)
.init();
}
@Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_report_list, container, false);
}
......@@ -88,28 +96,108 @@ public class ReportListFragment extends BaseFragment<ReportListPresenter> implem
@Override
public void initData(@Nullable Bundle savedInstanceState) {
topBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
topBar.addLeftBackImageButton().setVisibility(View.GONE);
topBar.setTitle("报表");
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
mTopBar.setTitle("報表");
initTitlte();
initViewPager();
// topBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
// topBar.addLeftBackImageButton().setVisibility(View.GONE);
// topBar.setTitle("报表");
//
// Drawable drawable = getResources().getDrawable(R.drawable.ic_line);
// drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
//
// List<ReportListItem> reportListItems = new ArrayList<>(5);
// reportListItems.add(new ReportListItem(drawable,"食品销售排行","https://wyn.ricepon.com/reports/view/eea52d08-cad6-4afe-bb09-2e8349b81f5f?display=pageless&size=fitwidth&parampanel=top&dp=%7B%22userId%22%3A%5B%22340%22%5D%2C%22%E5%B7%B2%E6%9C%89%E5%93%81%E7%89%8C%22%3A%5B%22-1%22%5D%2C%22%E5%B7%B2%E6%9C%89%E9%A4%90%E5%BB%B3%22%3A%5B%22-1%22%5D%2C%22%E5%93%81%E7%89%8C%22%3A%5B%221%22%5D%2C%22%E9%A4%90%E5%BB%B3%22%3A%5B%2226%22%5D%2C%22%E6%8E%92%E5%BA%8F%E9%A1%9E%E5%9E%8B%22%3A%5B%221%22%5D%2C%22%E9%96%8B%E5%A7%8B%E6%97%A5%E6%9C%9F%22%3A%5B%222021-01-31T16%3A00%3A00.000Z%22%5D%2C%22%E7%B5%90%E6%9D%9F%E6%97%A5%E6%9C%9F%22%3A%5B%222021-03-23T16%3A00%3A00.000Z%22%5D%7D&theme=default&lng=zh-TW&token=5c80dba856cd9ef65b55aa487571d101ef11bdbd1256de11b862845a99ca8d01"));
// reportListItems.add(new ReportListItem(drawable,"营业报表","https://wyn.ricepon.com/reports/view/eea52d08-cad6-4afe-bb09-2e8349b81f5f?display=pageless&size=fitwidth&parampanel=top&dp=%7B%22userId%22%3A%5B%22340%22%5D%2C%22%E5%B7%B2%E6%9C%89%E5%93%81%E7%89%8C%22%3A%5B%22-1%22%5D%2C%22%E5%B7%B2%E6%9C%89%E9%A4%90%E5%BB%B3%22%3A%5B%22-1%22%5D%2C%22%E5%93%81%E7%89%8C%22%3A%5B%221%22%5D%2C%22%E9%A4%90%E5%BB%B3%22%3A%5B%2226%22%5D%2C%22%E6%8E%92%E5%BA%8F%E9%A1%9E%E5%9E%8B%22%3A%5B%221%22%5D%2C%22%E9%96%8B%E5%A7%8B%E6%97%A5%E6%9C%9F%22%3A%5B%222021-01-31T16%3A00%3A00.000Z%22%5D%2C%22%E7%B5%90%E6%9D%9F%E6%97%A5%E6%9C%9F%22%3A%5B%222021-03-23T16%3A00%3A00.000Z%22%5D%7D&theme=default&lng=zh-TW&token=5c80dba856cd9ef65b55aa487571d101ef11bdbd1256de11b862845a99ca8d01"));
// reportListItems.add(new ReportListItem(drawable,"订单报表","https://wyn.ricepon.com/reports/view/eea52d08-cad6-4afe-bb09-2e8349b81f5f?display=pageless&size=fitwidth&parampanel=top&dp=%7B%22userId%22%3A%5B%22340%22%5D%2C%22%E5%B7%B2%E6%9C%89%E5%93%81%E7%89%8C%22%3A%5B%22-1%22%5D%2C%22%E5%B7%B2%E6%9C%89%E9%A4%90%E5%BB%B3%22%3A%5B%22-1%22%5D%2C%22%E5%93%81%E7%89%8C%22%3A%5B%221%22%5D%2C%22%E9%A4%90%E5%BB%B3%22%3A%5B%2226%22%5D%2C%22%E6%8E%92%E5%BA%8F%E9%A1%9E%E5%9E%8B%22%3A%5B%221%22%5D%2C%22%E9%96%8B%E5%A7%8B%E6%97%A5%E6%9C%9F%22%3A%5B%222021-01-31T16%3A00%3A00.000Z%22%5D%2C%22%E7%B5%90%E6%9D%9F%E6%97%A5%E6%9C%9F%22%3A%5B%222021-03-23T16%3A00%3A00.000Z%22%5D%7D&theme=default&lng=zh-TW&token=5c80dba856cd9ef65b55aa487571d101ef11bdbd1256de11b862845a99ca8d01"));
//
// mReportListAdapter = new ReportListAdapter(reportListItems);
// recyclerReport.setAdapter(mReportListAdapter);
// mReportListAdapter.setOnItemClickListener(new OnItemClickListener() {
// @Override
// public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
// WebviewHelper.openUrl(reportListItems.get(position).getReportUrl());
// }
// });
}
Drawable drawable = getResources().getDrawable(R.drawable.ic_line);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
/**
* 设置顶部数据
*/
private void initTitlte() {
titles = new ArrayList<>();
titles.add("營業分析");
titles.add("銷售分析");
titles.add("支付分析");
BusinessReportFragment businessReportFragment = BusinessReportFragment.newInstance();
List<Fragment> mFragments = new ArrayList<>();
mFragments.add(businessReportFragment);
mFragments.add(SalesFragment.newInstance());
mFragments.add(PaymentMethodReportFragment.newInstance());
//实例化适配器
mTabFragmentAdapter = new TabFragmentAdapter(getChildFragmentManager(), 1);
//设置加载的Fragment集合
mTabFragmentAdapter.setFragments(mFragments);
}
List<ReportListItem> reportListItems = new ArrayList<>(5);
reportListItems.add(new ReportListItem(drawable,"食品销售排行","https://wyn.ricepon.com/reports/view/eea52d08-cad6-4afe-bb09-2e8349b81f5f?display=pageless&size=fitwidth&parampanel=top&dp=%7B%22userId%22%3A%5B%22340%22%5D%2C%22%E5%B7%B2%E6%9C%89%E5%93%81%E7%89%8C%22%3A%5B%22-1%22%5D%2C%22%E5%B7%B2%E6%9C%89%E9%A4%90%E5%BB%B3%22%3A%5B%22-1%22%5D%2C%22%E5%93%81%E7%89%8C%22%3A%5B%221%22%5D%2C%22%E9%A4%90%E5%BB%B3%22%3A%5B%2226%22%5D%2C%22%E6%8E%92%E5%BA%8F%E9%A1%9E%E5%9E%8B%22%3A%5B%221%22%5D%2C%22%E9%96%8B%E5%A7%8B%E6%97%A5%E6%9C%9F%22%3A%5B%222021-01-31T16%3A00%3A00.000Z%22%5D%2C%22%E7%B5%90%E6%9D%9F%E6%97%A5%E6%9C%9F%22%3A%5B%222021-03-23T16%3A00%3A00.000Z%22%5D%7D&theme=default&lng=zh-TW&token=5c80dba856cd9ef65b55aa487571d101ef11bdbd1256de11b862845a99ca8d01"));
reportListItems.add(new ReportListItem(drawable,"营业报表","https://wyn.ricepon.com/reports/view/eea52d08-cad6-4afe-bb09-2e8349b81f5f?display=pageless&size=fitwidth&parampanel=top&dp=%7B%22userId%22%3A%5B%22340%22%5D%2C%22%E5%B7%B2%E6%9C%89%E5%93%81%E7%89%8C%22%3A%5B%22-1%22%5D%2C%22%E5%B7%B2%E6%9C%89%E9%A4%90%E5%BB%B3%22%3A%5B%22-1%22%5D%2C%22%E5%93%81%E7%89%8C%22%3A%5B%221%22%5D%2C%22%E9%A4%90%E5%BB%B3%22%3A%5B%2226%22%5D%2C%22%E6%8E%92%E5%BA%8F%E9%A1%9E%E5%9E%8B%22%3A%5B%221%22%5D%2C%22%E9%96%8B%E5%A7%8B%E6%97%A5%E6%9C%9F%22%3A%5B%222021-01-31T16%3A00%3A00.000Z%22%5D%2C%22%E7%B5%90%E6%9D%9F%E6%97%A5%E6%9C%9F%22%3A%5B%222021-03-23T16%3A00%3A00.000Z%22%5D%7D&theme=default&lng=zh-TW&token=5c80dba856cd9ef65b55aa487571d101ef11bdbd1256de11b862845a99ca8d01"));
reportListItems.add(new ReportListItem(drawable,"订单报表","https://wyn.ricepon.com/reports/view/eea52d08-cad6-4afe-bb09-2e8349b81f5f?display=pageless&size=fitwidth&parampanel=top&dp=%7B%22userId%22%3A%5B%22340%22%5D%2C%22%E5%B7%B2%E6%9C%89%E5%93%81%E7%89%8C%22%3A%5B%22-1%22%5D%2C%22%E5%B7%B2%E6%9C%89%E9%A4%90%E5%BB%B3%22%3A%5B%22-1%22%5D%2C%22%E5%93%81%E7%89%8C%22%3A%5B%221%22%5D%2C%22%E9%A4%90%E5%BB%B3%22%3A%5B%2226%22%5D%2C%22%E6%8E%92%E5%BA%8F%E9%A1%9E%E5%9E%8B%22%3A%5B%221%22%5D%2C%22%E9%96%8B%E5%A7%8B%E6%97%A5%E6%9C%9F%22%3A%5B%222021-01-31T16%3A00%3A00.000Z%22%5D%2C%22%E7%B5%90%E6%9D%9F%E6%97%A5%E6%9C%9F%22%3A%5B%222021-03-23T16%3A00%3A00.000Z%22%5D%7D&theme=default&lng=zh-TW&token=5c80dba856cd9ef65b55aa487571d101ef11bdbd1256de11b862845a99ca8d01"));
/**
* 设置Viewpager的适配器
*/
private void initViewPager() {
//设置Viewpager的适配器
mViewPager.setAdapter(mTabFragmentAdapter);
mTabLayout.setupWithViewPager(mViewPager);//TabLayout绑定ViewPager
mTabLayout.setTabsFromPagerAdapter(mTabFragmentAdapter);//TabLayout的标签从Adapter中获取
//用来循环适配器中的视图总数
for (int i = 0; i < mTabFragmentAdapter.getCount(); i++) {
//获取每一个tab对象
TabLayout.Tab tabAt = mTabLayout.getTabAt(i);
if (tabAt != null) {
//将每一个条目设置我们自定义的视图
tabAt.setCustomView(R.layout.layout_table_item);
//默认选中第一个
if (i == 0) {
// 设置第一个tab的TextView是被选择的样式
setSelectTab(tabAt, true);
}
//通过tab对象找到自定义视图的ID
TextView textView = tabAt.getCustomView().findViewById(R.id.tv_tab);
textView.setText(titles.get(i));//设置tab上的文字
}
}
mReportListAdapter = new ReportListAdapter(reportListItems);
recyclerReport.setAdapter(mReportListAdapter);
mReportListAdapter.setOnItemClickListener(new OnItemClickListener() {
mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
WebviewHelper.openWebview(reportListItems.get(position).getReportUrl());
public void onTabSelected(TabLayout.Tab tab) {
setSelectTab(tab, true);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
setSelectTab(tab, false);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
private void setSelectTab(TabLayout.Tab tabAt, boolean isSelected) {
if (tabAt.getCustomView() != null) {
TextView tab = tabAt.getCustomView().findViewById(R.id.tv_tab);//第一个tab被选中
tab.setSelected(isSelected);
//设置选中标签的文字大小
tab.setTextSize(TypedValue.COMPLEX_UNIT_PX, isSelected ? getResources().getDimensionPixelSize(R.dimen.sp_16) : getResources().getDimensionPixelSize(R.dimen.sp_14));
tab.getPaint().setFakeBoldText(isSelected);
}
}
@Override
public void setData(@Nullable Object data) {
......@@ -141,4 +229,5 @@ public class ReportListFragment extends BaseFragment<ReportListPresenter> implem
public void killMyself() {
_mActivity.finish();
}
}
<?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) {
......
package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity;
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.StateTableContract;
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.StateTableFragment;
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.jess.arms.utils.DeviceUtils;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity.FUNCTION_STATE_TABLE;
/**
* ================================================
* 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 StateTablePresenter extends BasePresenter<StateTableContract.Model, StateTableContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
private TableActivity mTableActivity;
private OrderContentActivity mOrderContentActivity;
private StateTableFragment IView;
private TableAdapter mTableAdapter;
private List<TableBean.DataBean> mTableList = new ArrayList<>();
@Inject
public StateTablePresenter(StateTableContract.Model model, StateTableContract.View rootView) {
super(model, rootView);
this.IView = (StateTableFragment) rootView;
Activity activity = IView.getCurrentActivity();
if (activity instanceof TableActivity) {
mTableActivity = (TableActivity) activity;
} else if (activity instanceof OrderContentActivity) {
mOrderContentActivity = (OrderContentActivity) activity;
}
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
public void initTableAdapter(Context context) {
if (mTableAdapter == null) {
mTableAdapter = new TableAdapter(context, mTableList, DeviceUtils.getScreenHeight(mApplication), FUNCTION_STATE_TABLE);
mTableAdapter.setStyle(0);
mRootView.setStateTableAdapter(mTableAdapter);
initItemClickListener(context);
}
}
/**
* 更新所有餐台数据
*
* @param context
* @param tableList
*/
public void updateAllTableData(Context context, List<TableBean.DataBean> tableList, int status) {
if (tableList != null) {
//这里先清空
mTableList.clear();
if (status == TableActionConstant.table_status_0) {
//显示全部台号 按照狀態排序
initTableByStauts(tableList);
} else {
//根据状态只显示相应状态台号
filterTableByTableStatus(tableList, status);
}
initTableAdapter(context);
mTableAdapter.notifyDataSetChanged();
}
}
/**
* 更新状态以改变餐台
*
* @param newTableList
*/
public void updataTableItem(List<TableBean.DataBean> newTableList) {
// for (int i = 0; i < newTableList.size(); i++) {
// TableBean.DataBean newTableBean = newTableList.get(i);
// for (int j = 0; j < mTableList.size(); j++) {
// TableBean.DataBean tableBean = mTableList.get(j);
// if (tableBean.getTableno() == newTableBean.getTableno()) {
// tableBean.setOrderid(newTableBean.getOrderid());
// tableBean.setOrderid_1(newTableBean.getOrderid_1());
// tableBean.setStatus(newTableBean.getStatus());
// tableBean.setUsing(newTableBean.isUsing());
// tableBean.setMainshowtable(newTableBean.getMainshowtable());
// tableBean.setSplitStatus(newTableBean.getSplitStatus());
// tableBean.setOropentime_diff(newTableBean.getOropentime_diff());
// tableBean.setPrtime_diff(newTableBean.getPrtime_diff());
// tableBean.setClearstate(newTableBean.getClearstate());
// tableBean.setOpentime(newTableBean.getOpentime());
// tableBean.setMemid(newTableBean.getMemid());
// tableBean.setSc_rate(newTableBean.getSc_rate());
// tableBean.setPax(newTableBean.getPax());
// tableBean.setQr_code(newTableBean.getQr_code());
// tableBean.setRiceponorderid(newTableBean.getRiceponorderid());
//
// mTableAdapter.notifyItemChanged(j);
// }
// }
// }
}
/**
* 根据餐台状态 过滤餐台
* 0#全部
* 1#可使用
* 2#已使用
* 3#已送單
* 4#已印單
* 5#已分檯
*/
public void filterTableByTableStatus(List<TableBean.DataBean> datasBeans, int status) {
if (datasBeans.size() == 0) {
return;
}
switch (status) {
case TableActionConstant.table_status_1:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 0 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableActionConstant.table_status_2:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getUseStatus() == 1) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableActionConstant.table_status_3:
for (int i = 0; i < datasBeans.size(); i++) {
if ((datasBeans.get(i).getStatus() == 1 || datasBeans.get(i).getStatus() == 2) && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableActionConstant.table_status_4:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 3 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableActionConstant.table_status_5:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getSplitStatus() == 1 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
// case 4:
// for (int i = 0; i < datasBeans.size(); i++) {
// if (datasBeans.get(i).getStatus() == 2 && datasBeans.get(i).getStatus() != 1) {
// mTableList.add(datasBeans.get(i));
// }
// }
// break;
// case 5:
// for (int i = 0; i < datasBeans.size(); i++) {
// if (datasBeans.get(i).getStatus() == 3) {
// mTableList.add(datasBeans.get(i));
// }
// }
// break;
// case 6:
// for (int i = 0; i < datasBeans.size(); i++) {
//// if (datasBeans.get(i).getSplitStatus() == 1) {
// mTableList.add(datasBeans.get(i));
//// }
// }
// break;
default:
mTableList.addAll(datasBeans);
break;
}
}
private void initTableByStauts(List<TableBean.DataBean> tableList) {
List<TableBean.DataBean> tb_yellow = new ArrayList<>();
List<TableBean.DataBean> tb_green = new ArrayList<>();
List<TableBean.DataBean> tb_red = new ArrayList<>();
List<TableBean.DataBean> tb_white = new ArrayList<>();
List<TableBean.DataBean> tb_w6 = new ArrayList<>();
List<TableBean.DataBean> tb_unkown = new ArrayList<>();
//黃色=状态=3 , 綠色=2, 紅色=using=1, 白色=0
for (TableBean.DataBean datasBean : tableList) {
if (datasBean.getUseStatus() == 1) {
tb_red.add(datasBean);
} else {
switch (datasBean.getStatus()) {
case 0:
tb_white.add(datasBean);
break;
case 2:
tb_green.add(datasBean);
break;
case 3:
tb_yellow.add(datasBean);
break;
case 6:
tb_w6.add(datasBean);
break;
default:
tb_unkown.add(datasBean);
break;
}
}
}
// if (GSAApplication.tableContract.getTime_foropentable() == true) {
mTableList.addAll(tb_yellow);
mTableList.addAll(tb_green);
mTableList.addAll(tb_red);
mTableList.addAll(tb_w6);
// } else {
// mTableList.addAll(tb_w6);
// mTableList.addAll(tb_red);
// mTableList.addAll(tb_green);
// mTableList.addAll(tb_yellow);
// }
mTableList.addAll(tb_unkown);
mTableList.addAll(tb_white);
}
private void initItemClickListener(Context context) {
mTableAdapter.setOnItemClickListener(new TableAdapter.OnItemClickListener() {
@Override
public void onItemClick(TableBean.DataBean item, int position) {
VibratorUtils.pressButtonSound(mApplication);
if (mTableActivity != null) {
mTableActivity.clickTableItem(item);
} else if (mOrderContentActivity != null) {
mOrderContentActivity.clickTableItem(item);
}
}
});
}
}
......@@ -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;
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.print.PrintManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
......@@ -18,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.IComponentCallback;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
......@@ -25,12 +23,12 @@ import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.BigDecimalUtils;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.component.ComponentAction;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils;
import com.gingersoft.gsa.cloud.order.bean.event.MealPayResultParam;
import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest;
import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
......@@ -38,12 +36,12 @@ import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract;
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.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
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.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.SaleRequest;
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.pos.hyweb.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.PrinterUtils;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
......@@ -51,7 +49,6 @@ 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.DaggerOrderPayComponent;
import com.gingersoft.gsa.cloud.table.mvp.action.order.PrintOrderAction;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderPayPresenter;
......@@ -66,25 +63,19 @@ import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import org.simple.eventbus.EventBus;
import java.sql.Time;
import java.util.Date;
import java.util.List;
import java.util.Observer;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.OnClick;
import butterknife.OnLongClick;
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -238,7 +229,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
tv_whole.setText("合計 $" + wholeAmount);
LoganManager.w_pay(TAG, "合計金額=" + wholeAmount);
DoshokuOrder.getInstance().getShoppingCart().setWholeAmount(wholeAmount);
}
......@@ -464,7 +455,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.addParam(PrintConstans.PRINT_ORDER_NO, DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override
......@@ -493,7 +484,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.addParam(PrintConstans.PRINT_ORDER_NO, DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override
......@@ -578,35 +569,73 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
MealOrderPayRequest orderPayRequest = mPresenter.getOrderPayRequest(gsaPayView);
List<BillItem> billItemList = DoshokuOrder.getInstance().getShoppingCart().getBillItemList();
PosPay.pay(mContext, OrderPayActivity.this, saleRequest, txnIdRequest, DoshokuOrder.getInstance().getOpenTableInfo(), orderPayRequest, billItemList, mBillMoneyList, new OnPosActionListener<SaleRespose>() {
@Override
public void onPosSuccess(SaleRespose response) {
}
@Override
public void onPosException(Exception e) {
}
@Override
public void onPosInvalid(String e) {
}
@Override
public void onUpdateStatusSuccess(SaleRespose response) {
if (HywebActionStatusCode.withSuccess(response.getSTATUS())) {
paySuccess();
}
}
@Override
public void onUpdateStatusError(Throwable e) {
}
});
txnIdRequest.setContent(GsonUtils.GsonString(orderPayRequest));
PosPay.builder()
.context(GsaCloudApplication.getAppContext())
.lifecycleView(OrderPayActivity.this)
.posRequest(saleRequest)
.bgRequest(txnIdRequest)
.onPosActionListener(new OnPosActionListener<SaleRespose>() {
@Override
public void onPosSuccess(SaleRespose response) {
startPaymentDetailActivity(saleRequest.getTXN_ID(), DoshokuOrder.getInstance().getOpenTableInfo(), orderPayRequest, billItemList, payMethods, response);
}
@Override
public void onPosException(SaleRespose response, Exception e) {
startPaymentDetailActivity(saleRequest.getTXN_ID(), DoshokuOrder.getInstance().getOpenTableInfo(), orderPayRequest, billItemList, payMethods, response);
}
@Override
public void onPosInvalid(String e) {
}
@Override
public void onUpdateStatusSuccess(SaleRespose response) {
if (HywebActionStatusCode.withSuccess(response.getSTATUS())) {
paySuccess();
}
}
@Override
public void onUpdateStatusError(Throwable e) {
}
})
.build()
.pay();
// PosPay.pay(mContext, OrderPayActivity.this, saleRequest, txnIdRequest, new OnPosActionListener<SaleRespose>() {
//
// @Override
// public void onPosSuccess(SaleRespose response) {
// startPaymentDetailActivity(saleRequest.getTXN_ID(), DoshokuOrder.getInstance().getOpenTableInfo(),orderPayRequest,billItemList,payMethods,response);
// }
//
// @Override
// public void onPosException(SaleRespose response,Exception e) {
// startPaymentDetailActivity(saleRequest.getTXN_ID(), DoshokuOrder.getInstance().getOpenTableInfo(),orderPayRequest,billItemList,payMethods,response);
// }
//
// @Override
// public void onPosInvalid(String e) {
//
// }
//
// @Override
// public void onUpdateStatusSuccess(SaleRespose response) {
// if (HywebActionStatusCode.withSuccess(response.getSTATUS())) {
// paySuccess();
// }
// }
//
// @Override
// public void onUpdateStatusError(Throwable e) {
//
// }
// });
} else {
mPresenter.sendOrderBefore();
}
......@@ -616,6 +645,35 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
});
}
private void startPaymentDetailActivity(String txnId, TableBean.DataBean tableBean, MealOrderPayRequest orderPayRequest, List<BillItem> billItemList,
List<PayMethod> payMethodList, HywebPosResponse response) {
MealPayResultParam payResultParam = new MealPayResultParam();
payResultParam.setTxnId(txnId);
payResultParam.setTableBean(tableBean);
payResultParam.setMealOrderPayRequest(orderPayRequest);
payResultParam.setBillItemList(billItemList);
payResultParam.setPayMethodList(payMethodList);
payResultParam.setSaleRespose((SaleRespose) response);
//等待Dialog動畫加載完再跳轉支付結果頁面
RxJavaUtils.delay(2, TimeUnit.SECONDS)
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
//kill orderPayActivity,orderContentActivity,mealActivity
CC.obtainBuilder(ComponentName.COMPONENT_TABLE)
.setActionName(ComponentAction.Table.KILL_MEAL_ORDER_PAY)
.build()
.call();
CC.obtainBuilder(ComponentName.COMPONENT_PAY)
.setActionName(ComponentAction.Pay.OPEN_PAY_RESULT)
.addParam("payResultParam", payResultParam)
.build()
.call();
}
});
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
......
......@@ -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 {
}
package com.gingersoft.gsa.cloud.pay.pos.bean;
/**
* @作者: bin
* @創建時間: 2021-04-13 17:52
* @更新時間: 2021-04-13 17:52
* @描述:
*/
public interface BasePosResponse {
}
......@@ -26,9 +26,9 @@ import com.gingersoft.gsa.cloud.order.R2;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
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.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.IView;
......@@ -188,7 +188,7 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
}
@Override
public void onPosException(Exception e) {
public void onPosException(HywebPosResponse response,Exception e) {
}
@Override
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.bg;
import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest;
import com.gingersoft.gsa.cloud.pay.pos.bean.BaseBgRequest;
import lombok.Data;
......@@ -11,7 +11,7 @@ import lombok.Data;
* @描述:
*/
@Data
public class GetTxnIdRequest {
public class GetTxnIdRequest implements BaseBgRequest {
private Long orderId;
private Integer tableId;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.etps.aca.lib.constant.Constant;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -12,7 +13,7 @@ import lombok.Data;
* 描述:
*/
@Data
public class AdjustTipRequest {
public class AdjustTipRequest implements BasePosRequest {
private String EVENT_NAME = Constant.EVENT.NAME.ADJUST;
private String TXN_ID;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.etps.aca.lib.constant.Constant;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -11,7 +12,7 @@ import lombok.Data;
* @描述:
*/
@Data
public class PrintPaymentStubRequest {
public class PrintPaymentStubRequest implements BasePosRequest {
private String EVENT_NAME = Constant.EVENT.NAME.PRINT;
private String TXN_ID;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.etps.aca.lib.constant.Constant;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -12,7 +13,7 @@ import lombok.Data;
* 描述:
*/
@Data
public class RefundRequest {
public class RefundRequest implements BasePosRequest {
private String EVENT_NAME = Constant.EVENT.NAME.REFUND;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -10,7 +12,7 @@ import lombok.Data;
* 描述:
*/
@Data
public class RetrievalRequest {
public class RetrievalRequest implements BasePosRequest {
private String EVENT_NAME = "RETRIEVAL";
private String TXN_ID;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -10,7 +12,7 @@ import lombok.Data;
* 描述:
*/
@Data
public class SaleRequest {
public class SaleRequest implements BasePosRequest {
private final String EVENT_NAME = com.etps.aca.lib.constant.Constant.EVENT.NAME.SALE;
private String PAYMENT_APP_ID;//支付類型
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -10,7 +12,7 @@ import lombok.Data;
* 描述:
*/
@Data
public class SettlementRequest {
public class SettlementRequest implements BasePosRequest {
private String EVENT_NAME = "SETTLEMENT";
private boolean PRINT_SS;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos;
import com.etps.aca.lib.constant.Constant;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosRequest;
import lombok.Data;
......@@ -12,7 +13,7 @@ import lombok.Data;
* 描述:取消請求數據
*/
@Data
public class VoidRequest {
public class VoidRequest implements BasePosRequest {
private String EVENT_NAME= Constant.EVENT.NAME.VOID;
private String TXN_ID;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg;
import lombok.Getter;
import lombok.Setter;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg;
import lombok.Getter;
import lombok.Setter;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg;
import lombok.Getter;
import lombok.Setter;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg;
import lombok.Getter;
import lombok.Setter;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.pay.pos.bean.BasePosResponse;
import lombok.Data;
/**
......@@ -12,7 +14,7 @@ import lombok.Data;
* @描述:
*/
@Data
public class HywebPosResponse implements Parcelable {
public class HywebPosResponse implements BasePosResponse, Parcelable {
protected String EVENT_NAME;
protected String STATUS;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.command;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.command;
import android.app.Activity;
import android.content.Context;
......@@ -15,17 +15,17 @@ import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.component.ComponentAction;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.imp.IHywebAction;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
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.PrintPaymentStubResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
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.PrintPaymentStubResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.RetrievalRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.SettlementRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils;
......@@ -36,12 +36,12 @@ public class CommandImpl implements ICommand {
private static final String TAG = CommandImpl.class.getSimpleName();
private IPosAction mPosAction;
private IHywebAction mPosAction;
public CommandImpl() {
}
public CommandImpl(IPosAction posAction) {
public CommandImpl(IHywebAction posAction) {
this.mPosAction = posAction;
}
......
package com.gingersoft.gsa.cloud.pay.pos;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
import com.etps.aca.lib.util.CommandUtil;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView;
......@@ -18,7 +20,7 @@ import com.jess.arms.mvp.IView;
* 修订历史:2019/6/13
* 描述:
*/
public abstract class IPosAction<T extends HywebPosResponse> {
public abstract class IHywebAction<T extends HywebPosResponse> {
protected final String TAG = this.getClass().getSimpleName();
protected Context mContext;
......@@ -33,7 +35,7 @@ public abstract class IPosAction<T extends HywebPosResponse> {
private final long mCancelDelayMillis = 2000;
public IPosAction(Context context, IView iView, PosAction action, boolean showLoading) {
public IHywebAction(Context context, IView iView, PosAction action, boolean showLoading) {
this.mContext = context;
this.mView = iView;
this.mPosAction = action;
......@@ -101,7 +103,7 @@ public abstract class IPosAction<T extends HywebPosResponse> {
mStatusLoadingDialog.cancel();
}
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosException(new Exception(codeRequest));
mOnPosActionListener.onPosException(response,new Exception(codeRequest));
}
}
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.PrintPaymentStubRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.PrintPaymentStubRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.HywebPosResponse;
import com.jess.arms.mvp.IView;
/**
......@@ -17,7 +16,7 @@ import com.jess.arms.mvp.IView;
* @更新時間: 2021-01-12 14:47
* @描述:
*/
public class PrintPaymentStubImpl extends IPosAction {
public class PrintPaymentStubImpl extends IHywebAction {
private String mTxnId;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
......@@ -10,16 +10,14 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
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.bg.GetRefundIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
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.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg.GetRefundIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -35,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class RefundActionImpl extends IPosAction<RefundRespose> {
public class RefundActionImpl extends IHywebAction<RefundRespose> {
private GetTxnIdRequest mGetTxnIdRequest;
private GetRefundIdResponse mGetRefundIdResponse;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
......@@ -12,18 +12,15 @@ import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.TransactionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.RetrievalRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.SettlementRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.TransactionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import io.reactivex.Observer;
......@@ -37,7 +34,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:查詢狀態,支持(銷售,小費,退款)
*/
public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
public class RetrievalActionImpl extends IHywebAction<RetrievalRespose> {
private RetrievalRequest mRetrievalRequest;
private Long mOrderId;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
......@@ -7,7 +7,6 @@ import android.text.TextUtils;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
......@@ -15,27 +14,22 @@ import com.gingersoft.gsa.cloud.component.ComponentAction;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.order.bean.event.MealPayResultParam;
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.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
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.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetTxnIdResponse;
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.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg.GetTxnIdResponse;
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.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observer;
......@@ -50,25 +44,16 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class SaleActionImpl extends IPosAction<SaleRespose> {
public class SaleActionImpl extends IHywebAction<SaleRespose> {
private SaleRequest mSaleRequest;
private GetTxnIdRequest mTxnIdRequest;
private GetTxnIdResponse mTxnIdResponse;
private TableBean.DataBean mTableBean;
private MealOrderPayRequest mMealOrderPayRequest;
private List<BillItem> mBillItemList;
private List<PayMethod> mPayMethodList;
public SaleActionImpl(Context context, IView iView, PosAction action, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest mealOrderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList, OnPosActionListener onPosActionListener, boolean showLoading) {
public SaleActionImpl(Context context, IView iView, PosAction action, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, OnPosActionListener onPosActionListener, boolean showLoading) {
super(context, iView, action, showLoading);
this.mSaleRequest = saleRequest;
this.mTxnIdRequest = getTxnIdRequest;
this.mTableBean = tableBean;
this.mMealOrderPayRequest = mealOrderPayRequest;
this.mBillItemList = billItemList;
this.mPayMethodList = payMethodList;
this.mOnPosActionListener = onPosActionListener;
if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setOnLoadStautsListener(new StatusLoadingDialog.OnLoadStautsListener() {
......@@ -89,7 +74,6 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
@Override
protected void onPosActionBefore() {
mTxnIdRequest.setContent(GsonUtils.GsonString(mMealOrderPayRequest));
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
String json = GsonUtils.GsonString(mTxnIdRequest);
......@@ -141,18 +125,18 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
}
@Override
public void onPosSuccess(Context context, Activity originalActivity,SaleRespose response) {
updateMatter(context,originalActivity,response,response.getSTATUS());
public void onPosSuccess(Context context, Activity originalActivity, SaleRespose response) {
updateMatter(context, originalActivity, response, response.getSTATUS());
}
@Override
public void onPosException(Context context, Activity originalActivity, SaleRespose response) {
updateMatter(context,originalActivity,response,response.getSTATUS());
updateMatter(context, originalActivity, response, response.getSTATUS());
}
@Override
public void onPosInvalid(Context context, Activity originalActivity, SaleRespose response) {
updateMatter(context,originalActivity,response,response.getSTATUS());
updateMatter(context, originalActivity, response, response.getSTATUS());
}
/**
......@@ -166,9 +150,9 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
* @param response
* @param status
*/
private void updateMatter(Context context, Activity originalActivity, SaleRespose response, String status){
private void updateMatter(Context context, Activity originalActivity, SaleRespose response, String status) {
//1、更新上傳支付狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest(GsonUtils.GsonString(response),status,mTxnIdResponse.getTxnId()))
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest(GsonUtils.GsonString(response), status, mTxnIdResponse.getTxnId()))
.compose(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() {
......@@ -212,19 +196,20 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
/**
* 2、顯示支付結果
*
* @param context
* @param response
* @param response
* @param originalActivity
*/
private void displayPaymentResult(Context context, SaleRespose response, Activity originalActivity) {
if (HywebActionStatusCode.withSuccess(response.getSTATUS())) {
super.onPosSuccess(context,originalActivity,response);
startPaymentDetailActivity(context, response);
} else if(HywebActionStatusCode.withException(response.getSTATUS())){
super.onPosException(context,originalActivity,response);
startPaymentDetailActivity(context, response);
}else {
super.onPosInvalid(context,originalActivity,response);
super.onPosSuccess(context, originalActivity, response);
// startPaymentDetailActivity(context, response);
} else if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(context, originalActivity, response);
// startPaymentDetailActivity(context, response);
} else {
super.onPosInvalid(context, originalActivity, response);
}
}
......@@ -236,10 +221,10 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
private void startPaymentDetailActivity(Context context, HywebPosResponse response) {
MealPayResultParam payResultParam = new MealPayResultParam();
payResultParam.setTxnId(mTxnIdResponse.getTxnId());
payResultParam.setTableBean(mTableBean);
payResultParam.setMealOrderPayRequest(mMealOrderPayRequest);
payResultParam.setBillItemList(mBillItemList);
payResultParam.setPayMethodList(mPayMethodList);
// payResultParam.setTableBean(mTableBean);
// payResultParam.setMealOrderPayRequest(mMealOrderPayRequest);
// payResultParam.setBillItemList(mBillItemList);
// payResultParam.setPayMethodList(mPayMethodList);
payResultParam.setSaleRespose((SaleRespose) response);
//等待Dialog動畫加載完再跳轉支付結果頁面
......@@ -261,17 +246,19 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
});
}
private RequestBody getPosMatterRequest(String response,String status,String txnId) {
private RequestBody getPosMatterRequest(String response, String status, String txnId) {
MealOrderPayRequest mealOrderPayRequest = GsonUtils.GsonToBean(mTxnIdRequest.getContent(),MealOrderPayRequest.class);
PosMatter posMatter = new PosMatter();
posMatter.setOrderId(mTxnIdRequest.getOrderId());
posMatter.setPayId(txnId);
posMatter.setContent(response);
posMatter.setStatus(getPosMatterStatus(status));
mMealOrderPayRequest.setPosMatter(posMatter);
mealOrderPayRequest.setPosMatter(posMatter);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mMealOrderPayRequest));
String json = GsonUtils.GsonString(mMealOrderPayRequest);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),GsonUtils.GsonString(mealOrderPayRequest));
String json = GsonUtils.GsonString(mealOrderPayRequest);
LoganManager.w_pay(TAG, "SaleRequest JSON :" + json);
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
......@@ -10,28 +10,17 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SettlementRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetRefundIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.request.pos.SettlementRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.SettlementRespose;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import javax.inject.Inject;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
......@@ -40,7 +29,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class SettlementActionImpl extends IPosAction<SettlementRespose> {
public class SettlementActionImpl extends IHywebAction<SettlementRespose> {
public SettlementActionImpl(Context context, IView iView, PosAction action, OnPosActionListener onPosActionListener, boolean showLoading) {
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
......@@ -10,15 +10,14 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
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.bg.GetTipTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
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.response.bg.GetTipTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -34,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class TipsActionImpl extends IPosAction<AdjustTipRespose> {
public class TipsActionImpl extends IHywebAction<AdjustTipRespose> {
private AdjustTipRequest mAdjustTipRequest;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
package com.gingersoft.gsa.cloud.pay.pos.hyweb.imp;
import android.app.Activity;
import android.content.Context;
......@@ -10,15 +10,14 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
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.bg.GetCancelTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
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.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.bg.GetCancelTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hyweb.constant.HywebActionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -34,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class VoidActionImpl extends IPosAction<VoidRespose> {
public class VoidActionImpl extends IHywebAction<VoidRespose> {
private VoidRequest mVoidRequest;
......
......@@ -84,6 +84,4 @@ dependencies {
api 'com.github.lihangleo2:ShadowLayout:2.1.6'
//lottie
api rootProject.ext.dependencies["lottie"]
// loadingView
api rootProject.ext.dependencies["loadingIndicatorView"]
}
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