Commit bf82ac4d by 宁斌

修改訂單刪除食品-》結賬 沒有提示先送單問題

parent 4b0e819f
......@@ -123,7 +123,7 @@ dependencies {
addComponent 'component-delivery-pick'
addComponent 'component-manager'
addComponent 'component-coldchain'
addComponent 'component-supply-chain'
// addComponent 'component-supply-chain'
addComponent 'component-webview'
addComponent 'component-scan'
addComponent 'component-pay'
......
......@@ -3,18 +3,62 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.gingersoft.gsa.cloud.login">
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission
android:name="android.permission.ACCESS_MOCK_LOCATION"
tools:ignore="MockLocation" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--相机权限-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.VIBRATE" />
<!-- 使用照相机权限 -->
<uses-permission android:name="android.permission.REORDER_TASKS" />
<!-- 自动聚焦权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!--相机权限-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<application
android:name="com.gingersoft.gsa.cloud.app.GsaCloudApplication"
android:allowBackup="true"
......@@ -22,13 +66,24 @@
android:label="@string/user_login_name"
android:maxAspectRatio="2.4"
android:networkSecurityConfig="@xml/network_android"
android:requestLegacyExternalStorage="true"
android:resizeableActivity="true"
android:roundIcon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:label">
<!--适配android 7.0文件访问 -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.gingersoft.gsa.cloud.login"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.WelcomeActivity"
android:launchMode="singleTop"
......@@ -41,7 +96,7 @@
</intent-filter>
</activity>
<!-- HywebPOS支付頁 -->
<!-- HywebPOS支付頁 -->
<activity
android:name="com.etps.aca.lib.activity.CommandActivity"
android:exported="true" />
......@@ -59,6 +114,7 @@
<activity
android:name=".mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity"
android:screenOrientation="portrait" />
<meta-data
android:name="com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
......@@ -80,16 +136,6 @@
android:name="notch.config"
android:value="portrait|landscape" />
<!--适配android 7.0文件访问 -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.gingersoft.gsa.cloud.login"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
</manifest>
......@@ -2,6 +2,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.login">
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<application
android:name="com.gingersoft.gsa.cloud.app.GsaCloudApplication"
android:allowBackup="true"
......
package com.gingersoft.gsa.cloud.login.mvp.presenter;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
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;
......@@ -68,6 +71,10 @@ public class LoginPresenter extends BaseLoginPresenter<LoginContract.Model, Logi
PermissionUtil.externalStorage(new PermissionUtil.RequestPermission() {
@Override
public void onRequestPermissionSuccess() {
if (TextUtils.isEmpty(DeviceID.getDeviceId())) {
//獲取權限成功重新獲取deviceId
GsaCloudApplication.initDeviceId();
}
}
@Override
......@@ -78,6 +85,8 @@ public class LoginPresenter extends BaseLoginPresenter<LoginContract.Model, Logi
@Override
public void onRequestPermissionFailureWithAskNeverAgain(List<String> permissions) {
mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "external.storage.permission.hint", ArmsUtils.getString(mApplication, R.string.queue_write_external_storage_permission_hint)));
mRootView.killMyself();
}
}, new RxPermissions(IAcitivty), mErrorHandler);
}
......
......@@ -36,8 +36,10 @@ import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.GuideAdapter;
import com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
......@@ -80,6 +82,11 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
ScaleAnimation animation = new ScaleAnimation(1.0f, 1.06f, 1.0f, 1.06f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setDuration(2000);
......
......@@ -33,10 +33,11 @@ public class ComponentMain implements IComponent {
new FModule("main/manager/bill", R.drawable.ic_meals_menu_management, R.drawable.ic_meals_menu_management_close),
new FModule("main/manager/table", R.drawable.ic_dining_table_management, R.drawable.ic_dining_table_management_close),
new FModule("main/manager/printer", R.drawable.ic_print_management, R.drawable.ic_print_management_close),
new FModule("main/manager/printQuery", R.drawable.ic_kitchen_print_query, R.drawable.ic_kitchen_print_query),
new FModule("main/manager/pay", R.drawable.ic_pay_management, R.drawable.ic_pay_management_close),
new FModule("main/manager/discout", R.drawable.ic_discount_management, R.drawable.ic_discount_management_close),
new FModule("main/manager/soldoutCtr", R.drawable.ic_sell_off_manger, R.drawable.ic_sell_off_manger),
new FModule("main/manager/qrCode", R.drawable.ic_discount_management, R.drawable.ic_discount_management_close)
new FModule("main/manager/qrCode", R.drawable.ic_qr_code, R.drawable.ic_qr_code)
};
/**
* 首頁- 員工管理
......
......@@ -37,10 +37,11 @@ public class FunctionMain {
new FModule(MANAGER_GROUP + "bill", R.drawable.ic_meals_menu_management, R.drawable.ic_meals_menu_management_close),
new FModule(MANAGER_GROUP + "table", R.drawable.ic_dining_table_management, R.drawable.ic_dining_table_management_close),
new FModule(MANAGER_GROUP + "printer", R.drawable.ic_print_management, R.drawable.ic_print_management_close),
new FModule(MANAGER_GROUP + "printQuery", R.drawable.ic_kitchen_print_query, R.drawable.ic_kitchen_print_query),
new FModule(MANAGER_GROUP + "pay", R.drawable.ic_pay_management, R.drawable.ic_pay_management_close),
new FModule(MANAGER_GROUP + "discout", R.drawable.ic_discount_management, R.drawable.ic_discount_management_close),
new FModule(MANAGER_GROUP + "soldoutCtr", R.drawable.ic_sell_off_manger, R.drawable.ic_sell_off_manger),
new FModule(MANAGER_GROUP + "qrCode", R.drawable.ic_discount_management, R.drawable.ic_discount_management_close)
new FModule(MANAGER_GROUP + "qrCode", R.drawable.ic_qr_code, R.drawable.ic_qr_code)
};
/**
......
......@@ -284,9 +284,9 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager");
managerFuncations.add(new Function(171, 163, 5, "二維碼", R.drawable.ic_qr_code, 0));
// managerFuncations.add(new Function(171, 163, 5, "二維碼", R.drawable.ic_qr_code, 0));
managerFuncations.add(new Function(171, 163, 5, "配置列表", R.drawable.ic_expand_list, 0));
managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0));
// managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0));
managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0));
managerFuncations.add(new Function(171, 163, 5, "採購", R.drawable.ic_purchase, 0));
......
......@@ -33,10 +33,10 @@
android:name="design_height_in_dp"
android:value="640" />
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
<!-- <activity-->
<!-- android:name="com.yalantis.ucrop.UCropActivity"-->
<!-- android:screenOrientation="portrait"-->
<!-- android:theme="@style/Theme.AppCompat.Light.NoActionBar" />-->
</application>
</manifest>
\ No newline at end of file
......@@ -2,10 +2,14 @@ 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.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.hywebpos.constant.PayMethodConstant;
import java.io.Serializable;
import java.util.List;
......@@ -174,5 +178,22 @@ public class OrderManagerResponse implements Serializable {
private double paySales;
private String payName;
public boolean withHywebPay() {
if (payType == PayMethod.HYWEB_POS_TYPE_CC || payType == PayMethod.HYWEB_POS_TYPE_QRC) {
return true;
}
return false;
}
@Nullable
public String getHywebPayMethodByType() {
if (payType == PayMethod.HYWEB_POS_TYPE_CC) {
return PayMethodConstant.PAY_TYPE_CC;
}
if (payType == PayMethod.HYWEB_POS_TYPE_QRC) {
return PayMethodConstant.PAY_TYPE_QRC;
}
return null;
}
}
}
......@@ -198,7 +198,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// if (!canPay()) {
// return;
// }
if (hasNesOrderFoods() || getNewDiscount() != null || mDoshokuOrder.needUpdateMemberInfo()) {
if (hasNesOrderFoods() || getNewDiscount() != null || hasModifyFoods() || mDoshokuOrder.needUpdateMemberInfo()) {
Class[] parameterTypes = {boolean.class, Class.class};
Object[] parameters = {false, OrderPayActivity.class};
CommonTipDialog.showDoubtDialog(IActivity, "賬單已變化,是否送單后去結賬", BaseOrderPresenter.class, mBaseOrderPresenter,
......@@ -883,6 +883,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
}
/**
* 修改訂單包含修改或刪除過的的食品
* @return
*/
private boolean hasModifyFoods() {
for (OrderDetail orderDetail : getOrderFoodLists()) {
if(orderDetail.isModify()){
return true;
}
}
return false;
}
private boolean canPrint() {
if (getFoodCount() == 0) {
......
......@@ -19,21 +19,12 @@ 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;
import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.utils.AppDevice;
import com.gingersoft.gsa.cloud.common.utils.BigDecimalUtils;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
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;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract;
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.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;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
......@@ -483,38 +474,38 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
gsaPayView.loadInfo(this, payMethods, mPresenter.getTotalAmount(), mPresenter.getFoodCount());
gsaPayView.setmOnSureClickLisenter(mBillMoneyList -> {
PayMethod hywebPayMethod = PayMethodUtils.filterPaymentMethodById(mBillMoneyList, PayTypeContract.PAY_METHOD_ID_1001);
if (AppDevice.isHywebPos()) {
if (hywebPayMethod != null) {
SaleRequest saleRequest = new SaleRequest();
saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_CC);
saleRequest.setTXN_AMT(DoshokuOrder.getInstance().getShoppingCart().getTotalAmount());
saleRequest.setTIPS(0);
GetTxnIdRequest txnIdRequest = new GetTxnIdRequest();
txnIdRequest.setOrderId(DoshokuOrder.getInstance().getOrderId());
if (!TextUtils.isEmpty(DoshokuOrder.getInstance().getOpenTableInfo().getTableNumber())) {
txnIdRequest.setTableExtId(DoshokuOrder.getInstance().getOpenTableInfo().getId());
} else {
txnIdRequest.setTableId(DoshokuOrder.getInstance().getOpenTableInfo().getId());
}
txnIdRequest.setPayMethodId(hywebPayMethod.getId());
txnIdRequest.setAmount(hywebPayMethod.getPayMoney());
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);
} else {
}
} else {
// PayMethod hywebPayMethod = PayMethodUtils.filterPaymentMethodById(mBillMoneyList, PayTypeContract.PAY_METHOD_ID_1001);
//
// if (AppDevice.isHywebPos()) {
//
// if (hywebPayMethod != null) {
//
// SaleRequest saleRequest = new SaleRequest();
// saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_CC);
// saleRequest.setTXN_AMT(DoshokuOrder.getInstance().getShoppingCart().getTotalAmount());
// saleRequest.setTIPS(0);
//
// GetTxnIdRequest txnIdRequest = new GetTxnIdRequest();
// txnIdRequest.setOrderId(DoshokuOrder.getInstance().getOrderId());
// if (!TextUtils.isEmpty(DoshokuOrder.getInstance().getOpenTableInfo().getTableNumber())) {
// txnIdRequest.setTableExtId(DoshokuOrder.getInstance().getOpenTableInfo().getId());
// } else {
// txnIdRequest.setTableId(DoshokuOrder.getInstance().getOpenTableInfo().getId());
// }
// txnIdRequest.setPayMethodId(hywebPayMethod.getId());
// txnIdRequest.setAmount(hywebPayMethod.getPayMoney());
//
// 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);
// } else {
//
// }
// } else {
mPresenter.setBillMoneyList(mBillMoneyList);
mPresenter.sendOrderBefore();
}
// }
});
}
......
......@@ -82,6 +82,8 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
QMUIAlphaButton btn_order_status;
@BindView(R2.id.ll_bottom)
LinearLayout ll_bottom;
@BindView(R2.id.ll_pos_bottom)
LinearLayout ll_pos_bottom;
public OrderCenterItemHolder(View itemView) {
super(itemView);
......@@ -140,12 +142,17 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
btn_order_status.setVisibility(View.VISIBLE);
ll_pos_bottom.setVisibility(View.GONE);
} else {
btn_print_order.setVisibility(View.VISIBLE);
btn_modify_order.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE);
btn_order_status.setVisibility(View.GONE);
if (item.withHywebPay()) {
ll_pos_bottom.setVisibility(View.VISIBLE);
setOrderStatusByTxnId(item.getPayTxnId(), item.getCancelTxnId(), item.getRefundTxnId());
} else {
ll_pos_bottom.setVisibility(View.GONE);
}
btn_print_order.setText(LanguageUtils.get_language_system(mContext, "print.order", "打印賬單"));
btn_tips.setText(LanguageUtils.get_language_system(mContext, "public.tips", "貼士"));
......@@ -192,17 +199,28 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
}
});
}
// btn_modify_order.setVisibility(View.GONE);
}
private void setOrderCancelVisbility() {
btn_print_order.setVisibility(View.GONE);
btn_refund.setVisibility(View.GONE);
btn_tips.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE);
}
private void setOrderStatusByTxnId(String payTxnId, String cancelTxnId, String refundTxnId) {
if (!TextUtils.isEmpty(cancelTxnId)) {
btn_order_status.setText("已取消");
btn_order_status.setVisibility(View.VISIBLE);
setOrderCancelVisbility();
return;
}
if (!TextUtils.isEmpty(refundTxnId)) {
btn_order_status.setVisibility(View.VISIBLE);
btn_order_status.setText("已退款");
setOrderCancelVisbility();
return;
}
if (!TextUtils.isEmpty(payTxnId)) {
......@@ -211,8 +229,6 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
btn_tips.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE);
btn_modify_order.setVisibility(View.VISIBLE);
} else {
btn_order_status.setVisibility(View.GONE);
}
}
......
......@@ -25,28 +25,28 @@
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_tips"
android:id="@+id/btn_modify_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/green_400"
android:background="@color/blue_400"
android:clickable="true"
android:text="貼士"
android:visibility="gone"
android:visibility="visible"
android:text="修改訂單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_modify_order"
android:id="@+id/btn_tips"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/blue_400"
android:background="@color/green_400"
android:clickable="true"
android:visibility="visible"
android:text="修改訂單"
android:text="貼士"
android:visibility="gone"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
......
......@@ -118,20 +118,21 @@
android:id="@+id/btn_modify_order"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/blue_300"
android:text="修改訂單"
android:layout_marginRight="@dimen/dp_10"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
android:visibility="visible" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_tips"
android:id="@+id/btn_order_status"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/green_400"
android:text="貼士"
android:background="@color/gray"
android:clickable="false"
android:text="已取消"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
android:visibility="gone" />
......@@ -140,12 +141,21 @@
android:id="@+id/btn_cancel_order"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/red_400"
android:text="取消訂單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
android:visibility="visible"/>
android:visibility="visible" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_pos_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:gravity="right|center_vertical"
android:orientation="horizontal"
android:visibility="gone">
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_refund"
......@@ -155,18 +165,15 @@
android:background="@color/red_500"
android:text="退款"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
android:visibility="gone" />
android:textSize="@dimen/sp_13" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_order_status"
android:id="@+id/btn_tips"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:background="@color/gray"
android:clickable="false"
android:text="已取消"
android:background="@color/green_400"
android:text="貼士"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
android:visibility="gone" />
android:textSize="@dimen/sp_13" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
......@@ -18,6 +18,8 @@ package com.jess.arms.utils;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions;
......@@ -113,14 +115,30 @@ public class PermissionUtil {
/**
* 是否拥有某个权限
*
* @return
*/
public static boolean isGranted(Activity context, String permission){
public static boolean isGranted(Activity context, String permission) {
RxPermissions rxPermissions = new RxPermissions(context);
return rxPermissions.isGranted(permission);
}
/**
* 是否拥有某个权限
* @param context
* @param permission
* @return
*/
public static boolean isGranted(Context context, String permission) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED;
} else {
return true;
}
}
/**
* 请求摄像头权限
*/
public static void launchCamera(RequestPermission requestPermission, RxPermissions rxPermissions, RxErrorHandler errorHandler) {
......
......@@ -13,7 +13,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
@Override
public Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response) {
// 统一处理http响应。eg:状态码不是200时,根据状态码做相应的处理。
LoganManager.w_network("發送請求: "+httpResult);
LoganManager.w_network("發送請求: " + httpResult);
return response;
}
......@@ -21,7 +21,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
public Request onHttpRequestBefore(Interceptor.Chain chain, Request request) {
// 统一处理http请求。eg:给request统一添加token或者header以及参数加密等操作
String requestReult = request.toString();
LoganManager.w_network("接收請求: "+requestReult);
LoganManager.w_network("接收請求: " + requestReult);
return chain.request().newBuilder()
.build();
}
......
......@@ -21,6 +21,7 @@ import androidx.annotation.NonNull;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.oaId.defaultImp.DefaultDeviceIdUtils;
import com.gingersoft.gsa.cloud.common.oaId.impl.AsusDeviceIdImpl;
import com.gingersoft.gsa.cloud.common.oaId.impl.DefaultDeviceIdImpl;
import com.gingersoft.gsa.cloud.common.oaId.impl.HuaweiDeviceIdImpl;
......@@ -40,7 +41,7 @@ import com.gingersoft.gsa.cloud.common.oaId.impl.XiaomiDeviceIdImpl;
*/
public final class DeviceID {
private static String mDeviceId;
private static String mDeviceId = "";
private DeviceID() {
......@@ -73,7 +74,7 @@ public final class DeviceID {
deviceId = new DefaultDeviceIdImpl();
}
// Logger.print(deviceInfo() + "\nsupportOAID: " + deviceId.supportOAID());
LoganManager.w_code("DeviceID",deviceInfo() + "\nsupportOAID: " + deviceId.supportOAID());
LoganManager.w_code("DeviceID", deviceInfo() + "\nsupportOAID: " + deviceId.supportOAID());
return deviceId;
}
......@@ -102,20 +103,24 @@ public final class DeviceID {
@Override
public void onOAIDGetComplete(@NonNull String oaid) {
mDeviceId = oaid;
if (TextUtils.isEmpty(oaid)) {
mDeviceId = DefaultDeviceIdUtils.getDefaultDeviceIds(GsaCloudApplication.getAppContext());
} else {
mDeviceId = oaid;
}
}
@Override
public void onOAIDGetError(@NonNull Exception exception) {
int i =2;
mDeviceId = DefaultDeviceIdUtils.getDefaultDeviceIds(GsaCloudApplication.getAppContext());
}
});
}
public static String getDeviceId() {
if (TextUtils.isEmpty(mDeviceId)) {
throw new RuntimeException("Please initialize the device id first!");
}
// if (TextUtils.isEmpty(mDeviceId)) {
// throw new RuntimeException("Please initialize the device id first!");
// }
return mDeviceId;
}
}
package com.gingersoft.gsa.cloud.common.utils.crash;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
......@@ -22,6 +23,7 @@ import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.PermissionUtil;
import com.qmuiteam.qmui.BuildConfig;
import java.io.File;
......@@ -273,19 +275,21 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
String time = format.format(new Date());
String MemberName = UserContext.newInstance().getMemberName();
String fileName = "crash-" + MemberName + "-" + time + "-" + timetamp + "-" + DeviceUtils.getVersionName(mContext) + CRASH_REPORTER_EXTENSION;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡
try {
File dir = new File(FileUtils.ERRORLOG_PATH);
//不存在就創建目錄
if (!dir.exists()) {
dir.mkdirs();
if (PermissionUtil.isGranted(mContext, Manifest.permission.READ_EXTERNAL_STORAGE) && PermissionUtil.isGranted(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡
try {
File dir = new File(FileUtils.ERRORLOG_PATH);
//不存在就創建目錄
if (!dir.exists()) {
dir.mkdirs();
}
FileOutputStream fos = new FileOutputStream(new File(FileUtils.ERRORLOG_PATH, fileName));
fos.write(sb.toString().getBytes());
fos.close();
return fileName;
} catch (IOException e) {
e.printStackTrace();
}
FileOutputStream fos = new FileOutputStream(new File(FileUtils.ERRORLOG_PATH, fileName));
fos.write(sb.toString().getBytes());
fos.close();
return fileName;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
......
<?xml version="1.0" encoding="utf-8"?>
<!-- <root-path/> :代表设备的根目录new File("/")
<files-path/> : 代表context.getFilesDir()
<cache-path/> : 代表context.getCacheDir()
......@@ -36,7 +35,6 @@
<!--name="hm_external_cache"-->
<!--path="images" />-->
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<root-path
name="root"
......@@ -60,4 +58,4 @@
name="external_cache_path"
path="" />
</paths>
\ No newline at end of file
</paths>
......@@ -91,10 +91,15 @@ public class PayMethod implements Parcelable {
*/
private double amountValue;
/**
* 支付方式(1:寶達通 8:支付寶 1001:現金 1023:支付寶HK
* 支付方式(1:寶達通 8:支付寶 1001:現金 1023:支付寶HK,1030:N5刷卡 1031:N5掃碼
*/
private int payType;
/**
* N5支付支付類型
*/
public static final int HYWEB_POS_TYPE_CC = 1030;
public static final int HYWEB_POS_TYPE_QRC = 1031;
/**
* 最小支付金額(是否有小數點)
......@@ -165,10 +170,10 @@ public class PayMethod implements Parcelable {
private int payModeSize = 14;
private int payMoneySize = 14;
public static final int PAY_TYPE_CASH = 1001;
public static final int PAY_TYPE_INTEGRAL = 2000;
public PayMethod() {
}
......@@ -222,6 +227,8 @@ public class PayMethod implements Parcelable {
this.payMoneySize = method.payMoneySize;
}
public String getPayName() {
if (!TextUtils.isEmpty(nameFirst)) {
return nameFirst;
......
......@@ -16,6 +16,10 @@ public interface PayErrorCode {
* pos回調status != 00
*/
String pos_response_101 = "[101]";
/**
* pos回調 withException == true
*/
String pos_response_102 = "[102]";
/**
* SaleActionImp getTxnId
......
......@@ -78,13 +78,27 @@ public abstract class IPosAction {
mStatusLoadingDialog.setStatusText(e.getMessage());
mStatusLoadingDialog.loadFailure();
}
if (e.getMessage().contains(PayErrorCode.pos_response_null)) {
String errorMsg = e.getMessage();
if (errorMsg.contains(PayErrorCode.pos_response_null) || errorMsg.contains(PayErrorCode.pos_response_102)) {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosException(null);
}
}
}
/**
* POS回調為null或狀態異常
*/
public void onPosException(HywebPosResponse posResponse) {
if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setStatusText("回調異常");
mStatusLoadingDialog.loadFailure();
}
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosException(null);
}
}
protected void canCelLoadingDialog() {
if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.cancel();
......
......@@ -15,11 +15,15 @@ import lombok.Data;
public class RefundRequest {
private String EVENT_NAME = Constant.EVENT.NAME.REFUND;
/**
* 退款方式:CC ,QRC
*/
private String PAYMENT_APP_ID;
private String TXN_ID;
private double TXN_AMT;
private String QRC_VALUE;
private boolean PRINT_SS;
private String QRC_VALUE = "";
private boolean PRINT_SS = false;
}
......@@ -22,6 +22,7 @@ public class HywebPosResponse implements Parcelable {
protected double TIPS = 0.0;
@Override
public int describeContents() {
return 0;
......
......@@ -122,11 +122,13 @@ public class RefundActionImpl extends IPosAction {
*/
@Override
public void onActionComplte(Context context, HywebPosResponse response, Activity originalActivity) {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
if (PayStatusCode.withException(response.getSTATUS())) {
onActionError(new Exception("回調異常" + PayErrorCode.pos_response_102));
} else {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
}
}
//1、更新上傳退款狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest((RefundRespose) response))
.subscribeOn(Schedulers.io())
......
......@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalReque
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.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
......@@ -63,8 +64,12 @@ public class RetrievalActionImpl extends IPosAction {
@Override
public void onActionComplte(Context context, HywebPosResponse response, Activity originalActivity) {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
if (PayStatusCode.withException(response.getSTATUS())) {
onActionError(new Exception("回調異常" + PayErrorCode.pos_response_102));
} else {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
}
}
String url = null;
......
......@@ -25,6 +25,7 @@ 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.PayStatusCode;
import com.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
......@@ -153,8 +154,12 @@ public class SaleActionImpl extends IPosAction {
*/
@Override
public void onActionComplte(Context context, HywebPosResponse response, Activity originalActivity) {
if (mOnPosActionListener != null) {
mOnPosActionListener.onSuccess(response);
if (PayStatusCode.withException(response.getSTATUS())) {
onActionError(new Exception("回調異常" + PayErrorCode.pos_response_102));
} else {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
}
}
//1、更新上傳支付狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest((SaleRespose) response))
......
......@@ -129,8 +129,12 @@ public class TipsActionImpl extends IPosAction {
@Override
public void onActionComplte(Context context, HywebPosResponse response, Activity originalActivity) {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
if (PayStatusCode.withException(response.getSTATUS())) {
onActionError(new Exception("回調異常" + PayErrorCode.pos_response_102));
} else {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
}
}
//1、更新上傳小費狀態
......
......@@ -125,8 +125,12 @@ public class VoidActionImpl extends IPosAction {
@Override
public void onActionComplte(Context context, HywebPosResponse response, Activity originalActivity) {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
if (PayStatusCode.withException(response.getSTATUS())) {
onActionError(new Exception("回調異常" + PayErrorCode.pos_response_102));
} else {
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(response);
}
}
//1、更新上傳取消狀態
......
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