Przeglądaj źródła

Merge remote-tracking branch 'origin/sheep_develop' into sheep_develop

zengjiebin 7 lat temu
rodzic
commit
4e3f35650b

+ 4 - 2
app/src/main/java/com/sheep/gamegroup/absBase/BaseActivity.java

@@ -91,7 +91,9 @@ public abstract class BaseActivity extends RxAppCompatActivity {
             Toolbar toolbar = (Toolbar) actionBar.getCustomView().getParent();
             toolbar.setContentInsetsRelative(0, 0);
         }
-        setContentView(getLayoutId());
+        if (getLayoutId() != 0) {
+            setContentView(getLayoutId());
+        }
         if (needButterKnife())
             unbinder = ButterKnife.bind(this);
         if (needRegisterEventBus())
@@ -99,7 +101,7 @@ public abstract class BaseActivity extends RxAppCompatActivity {
     }
 
     @Override
-    public void onPostCreate(Bundle bundle){
+    public void onPostCreate(Bundle bundle) {
         super.onPostCreate(bundle);
         initView();
         initListener();

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/util/Constant.java

@@ -0,0 +1,6 @@
+package com.sheep.gamegroup.util;
+
+public class Constant {
+    public final static int INTENT_PAY = 1003;
+    public final static int INTENT_RECHARGE = 1004;
+}

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -1089,6 +1089,12 @@ public class Jump2View {
         RECHARGE.onEvent("from", from);
     }
 
+    public void goRechargeActForResult(Activity activity, String from) {
+        Intent intent = new Intent(activity, RechargeAct.class);
+        activity.startActivityForResult(intent, Constant.INTENT_RECHARGE);
+        RECHARGE.onEvent("from", from);
+    }
+
     /**
      * 跳到绵羊币充值充值页面
      *

+ 10 - 1
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -105,7 +105,16 @@ public class KFZSJs {
 
     @JavascriptInterface
     public void gotoRecharge() {
-        Jump2View.getInstance().goRechargeAct(activity, "内部H5");//进入充值绵羊币界面
+        gotoRecharge(false);
+    }
+
+    @JavascriptInterface
+    public void gotoRecharge(boolean forResult) {
+        if(forResult){
+            Jump2View.getInstance().goRechargeActForResult(activity, "内部H5");//进入充值绵羊币界面
+        } else {
+            Jump2View.getInstance().goRechargeAct(activity, "内部H5");//进入充值绵羊币界面
+        }
     }
 
     @JavascriptInterface

+ 10 - 307
app/src/main/java/com/sheep/gamegroup/view/activity/ActPay.java

@@ -2,38 +2,12 @@ package com.sheep.gamegroup.view.activity;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.DialogConfig;
-import com.sheep.gamegroup.model.entity.PayOrder;
-import com.sheep.gamegroup.model.entity.UserAssets;
 import com.sheep.gamegroup.model.entity.WebParams;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.Constant;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.Config;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-
-import org.afinal.simplecache.ApiKey;
-
-import java.util.List;
-import java.util.Locale;
-
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.schedulers.Schedulers;
 
 /**
  * Created by realicing on 2018/10/18.
@@ -42,9 +16,6 @@ import io.reactivex.schedulers.Schedulers;
  */
 public class ActPay extends BaseActivity {
 
-    public final static int ACTION_FOR_H5_PAY = 1003;
-    public final static int ACTION_FOR_RECHARGE = 1004;
-
     @Override
     protected boolean needButterKnife() {
         return false;
@@ -52,275 +23,49 @@ public class ActPay extends BaseActivity {
 
     @Override
     protected int getLayoutId() {
-        return R.layout.act_pay;
+        return 0;
     }
 
-    private TextView pay_commit;
-    private TextView pay_msg_tv;
-    private TextView pay_info;
-    private TextView pay_amount;
-    private TextView pay_amount2;
-    private View directionalPayBtn;
-    private View rechargeLayout;
-
-    private View pay_amount_layout;
-    private TextView sheep_coin_amount;
-    private TextView game_golden_amount;
-    private TextView order_amount;
-    private TextView golden_sub_amount;
-    private TextView yiyouhui_amount;
-
-    private List<View> payOrderViewList = ListUtil.emptyList();
-    private List<View> successViewList = ListUtil.emptyList();
-    private List<View> failedViewList = ListUtil.emptyList();
-
-    private boolean orderOk = false;
-    private boolean assetsOk = false;
-    private UserAssets assets;
-    private PayOrder payOrder;
     private String token;
+    private String order_no;
 
     @Override
     public void initView() {
-        ImageView title_img_back = findViewById(R.id.title_img_back);
-        pay_amount_layout = findViewById(R.id.pay_amount_layout);
-        sheep_coin_amount = findViewById(R.id.sheep_coin_amount);
-        game_golden_amount = findViewById(R.id.game_golden_amount);
-        order_amount = findViewById(R.id.order_amount);
-        golden_sub_amount = findViewById(R.id.golden_sub_amount);
-        yiyouhui_amount = findViewById(R.id.yiyouhui_amount);
-
-        rechargeLayout = findViewById(R.id.recharge_layout);
-        directionalPayBtn = findViewById(R.id.directional_pay_btn);
-        pay_commit = findViewById(R.id.pay_commit);
-        TextView title_cancel = findViewById(R.id.title_cancel);
-        pay_msg_tv = findViewById(R.id.pay_msg_tv);
-        View pay_line = findViewById(R.id.pay_line);
-        ImageView pay_sheep_iv = findViewById(R.id.pay_sheep_iv);
-        pay_info = findViewById(R.id.pay_info);
-        pay_amount = findViewById(R.id.pay_amount);
-        pay_amount2 = findViewById(R.id.pay_amount2);
-        TextView pay_success = findViewById(R.id.pay_success);
-        TextView pay_failed = findViewById(R.id.pay_failed);
-        TextView pay_failed_reason = findViewById(R.id.pay_failed_reason);
-        payOrderViewList.add(title_img_back);
-        payOrderViewList.add(title_cancel);
-        payOrderViewList.add(pay_msg_tv);
-        payOrderViewList.add(pay_amount_layout);
-        payOrderViewList.add(rechargeLayout);
-        payOrderViewList.add(pay_line);
-
-        successViewList.add(pay_sheep_iv);
-        successViewList.add(pay_info);
-        successViewList.add(pay_amount2);
-        successViewList.add(pay_success);
-
-        failedViewList.add(pay_sheep_iv);
-        failedViewList.add(pay_info);
-        failedViewList.add(pay_amount2);
-        failedViewList.add(pay_failed);
-        failedViewList.add(pay_failed_reason);
-        setViewListVisible(successViewList, View.INVISIBLE);
-        setViewListVisible(failedViewList, View.INVISIBLE);
-        resetView();
-    }
-
-    //设置viewList中的view是否可见
-    private void setViewListVisible(List<View> viewList, int visible) {
-        for (View view : viewList) {
-            view.setVisibility(visible);
-        }
-    }
-
-    private void resetView() {
-        ViewUtil.setDefaultText(pay_msg_tv);
-        ViewUtil.setDefaultText(pay_amount);
-    }
 
-    @Override
-    public void initListener() {
-        pay_commit.setEnabled(false);
     }
 
     @Override
     public void initData() {
         Intent intent = getIntent();
         Bundle bundle = intent.getExtras();
-        String order_no = null;
         if (bundle != null) {
             order_no = bundle.getString("order_no");
             token = bundle.getString("token");
-        }
-        if (TextUtils.isEmpty(order_no)) {//传过来的数据有问题
-            status = STATUS_INIT_ERROR_ORDER_NO;
-            G.showToast(R.string.coming_soon);
-            return;
-        }
-        if (TextUtils.isEmpty(order_no)) {//传过来的数据有问题
-            status = STATUS_INIT_ERROR_TOKEN;
-            G.showToast(R.string.coming_soon);
-            return;
-        }
-        if (BuildConfig.DEBUG)
-            G.showToast(String.format(Locale.CHINA, "%s\t%s", order_no, token));
-        //初始化PayOrder
-        SheepApp.getInstance().getNetComponent().getApiService().sdkFindOrder(token, order_no)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        payOrder = baseMessage.getData(PayOrder.class);
-                        if (payOrder != null) {
-                            status = STATUS_GET_ORDER_SUCCESS;
-                            pay_commit.setEnabled(true);
-                            orderOk = true;
-                            loadAssets();
-                        } else {
-                            status = STATUS_GET_ORDER_SUCCESS_ERROR;
-                        }
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        status = STATUS_GET_ORDER_ERROR;
-                        G.showToast(baseMessage);
-                    }
-                });
-    }
-
-    //加载PayOrder
-    private synchronized void loadPayOrder() {
-        if (orderOk && assetsOk) {
-            String amountText = getString(R.string.x_yuan, NumberFormatUtils.retainMost2(payOrder.getPayMoney()));
-            if (payOrder.getMerchantId() == 1001) {
-                directionalPayBtn.setVisibility(View.VISIBLE);
-                sheep_coin_amount.setText("拥有绵羊币: " + assets.getSheep_bi_total());
-                game_golden_amount.setText("拥有金丹: " + assets.getGame_golden_dan());
-                order_amount.setText(payOrder.getPayMoney() + "");
-                float subAmount = payOrder.getPayMoney() < assets.getGame_golden_dan() ? payOrder.getPayMoney() : assets.getGame_golden_dan();
-                golden_sub_amount.setText("-" + subAmount);
-                yiyouhui_amount.setText("已优惠: " + subAmount);
-                float mustPay = payOrder.getPayMoney() < assets.getGame_golden_dan() ? 0 : (payOrder.getPayMoney() - assets.getGame_golden_dan());
-                pay_amount.setText("应付金额: " + mustPay + "元");
-            } else {
-                game_golden_amount.setVisibility(View.GONE);
-                yiyouhui_amount.setVisibility(View.GONE);
-                ((View) golden_sub_amount.getParent()).setVisibility(View.GONE);
-                directionalPayBtn.setVisibility(View.GONE);
-                pay_amount.setText("应付金额: " + payOrder.getPayMoney() + "元");
-            }
-
-            ViewUtil.setText(pay_msg_tv, payOrder.getName());
-            ViewUtil.setColorMapText(pay_amount2, amountText, "元", "#FFFFFF");
-            ViewUtil.setText(pay_info, getString(R.string.sheep_order_no, payOrder.getName(), payOrder.getOrderNo()));
+            CommonUtil.getInstance().initUrlConfigByNet(Config.KEY_DIRECTIONAL_PAY_URL, url -> {
+                url = url + "?authorization=" + token + "&order=" + order_no + "&ssnocache=1";
+                WebParams webParams = new WebParams(url, "支付").setShowTitle(false).setForResult(true).setAction(Constant.INTENT_PAY);
+                Jump2View.getInstance().goWeb(this, webParams);
+            });
         }
     }
 
-    private void loadAssets() {
-        SheepApp.getInstance().getNetComponent().getApiService().getMyAssets()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(this) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        assets = baseMessage.getData(UserAssets.class);
-                        assetsOk = true;
-                        loadPayOrder();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
-                    }
-                });
-    }
-
-    public void onRechargeBtnClick(View v) {
-        Intent intent = new Intent(this, RechargeAct.class);
-        intent.putExtra("forResult", true);
-        startActivityForResult(intent, ACTION_FOR_RECHARGE);
-        rechargeLayout.setVisibility(View.GONE);
-    }
-
-    //点击底部按钮
-    public void onClickBottomBtn(View view) {
-        switch (status) {
-            case STATUS_GET_ORDER_SUCCESS://立即支付
-                float mustPay = payOrder.getPayMoney() < assets.getGame_golden_dan() ? 0 : (payOrder.getPayMoney() - assets.getGame_golden_dan());
-                if (Float.parseFloat(assets.getSheep_bi_total()) < mustPay) {
-                    rechargeLayout.setVisibility(View.VISIBLE);
-                    return;
-                }
-                SheepApp.getInstance().getNetComponent().getApiService().sdkPayOrder(token, payOrder.getOrderNo())
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                status = STATUS_PAY_ORDER_SUCCESS;
-                                G.showToast(baseMessage);
-                                showPaySuccess();
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                status = STATUS_PAY_ORDER_ERROR;
-                                G.showToast(baseMessage);
-                                showPayFailed();
-                                failedReason = baseMessage.getMsg();
-                            }
-                        });
-                break;
-            case STATUS_PAY_ORDER_SUCCESS:
-            case STATUS_PAY_ORDER_ERROR://返回商家
-                setStatusResult();
-                finish();
-                break;
-        }
-    }
-
-    public void onDirectionalPayClicked(View v) {
-        CommonUtil.getInstance().initUrlConfigByNet(Config.KEY_DIRECTIONAL_PAY_URL, url -> {
-            url = url + "?authorization=" + token + "&order=" + payOrder.getOrderNo() + "&ssnocache=1";
-            WebParams webParams = new WebParams(url, "定向优惠").setShowTitle(false).setForResult(true).setAction(ACTION_FOR_H5_PAY);
-            Jump2View.getInstance().goWeb(this, webParams);
-        });
-    }
-
     public void onActivityResult(int requestCode, int resultCode, Intent in) {
         if (resultCode == RESULT_OK) {
-            if (requestCode == ACTION_FOR_H5_PAY) {
+            if (requestCode == Constant.INTENT_PAY) {
                 if (in.getBooleanExtra("ret", false)) {
                     status = STATUS_PAY_ORDER_SUCCESS;
-                    showPaySuccess();
                 } else {
                     status = STATUS_PAY_ORDER_ERROR;
-                    showPayFailed();
                 }
-                G.showToast(in.getStringExtra("msg"));
                 Intent intent = new Intent();
                 intent.putExtra(EXTRA_NAME_ORDERNO, in.getStringExtra("order_no"));
                 intent.putExtra(EXTRA_NAME_STATUS, status);
                 setResult(RESULT_CODE, intent);
+                finish();
             }
-        } else if (resultCode == 777 && requestCode == ACTION_FOR_RECHARGE) {
-            loadAssets();
         }
     }
 
-    private String failedReason;
-
-    //点击查看失败原因
-    public void onClickFailedReason(View view) {
-        G.showToast(failedReason);
-    }
-
-    @Override
-    public void onBackPressed() {
-        onClickCancel(null);
-    }
-
     private int status = STATUS_INIT;//状态 正常状态大于0 错误状态小于0
     public static final int STATUS_INIT = 0;//初始状态
     public static final int STATUS_GET_ORDER_SUCCESS = 1;//获取order成功
@@ -331,51 +76,9 @@ public class ActPay extends BaseActivity {
     public static final int STATUS_INIT_ERROR_TOKEN = -4;//初始化时获取到的token为空
     public static final int STATUS_GET_ORDER_SUCCESS_ERROR = -5;//获取order接口成功,但是无数据
 
-    //点击返回
-    public void onClickBackImg(View view) {
-        onClickCancel(null);
-    }
-
-    //取消订单
-    public void onClickCancel(View view) {
-        if (status == STATUS_PAY_ORDER_SUCCESS || status < STATUS_INIT) {//支付成功或者各种失败的情况下直接退出界面
-            setStatusResult();
-            finish();
-            return;
-        }
-        ViewUtil.showMsgDialog(this, new DialogConfig().setTitle("提示").setMsg("您要取消订单吗?")
-                .setBtnRightText("取消").setBtnLeftText("确认").setBtnLeftOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        setStatusResult();
-                        finish();
-                    }
-                }));
-    }
 
     public static final int RESULT_CODE = 666;
     public static final String EXTRA_NAME_STATUS = "status";
     public static final String EXTRA_NAME_ORDERNO = "orderno";
 
-    //返回结果给sdk
-    private void setStatusResult() {
-        Intent intent = new Intent();
-        intent.putExtra(EXTRA_NAME_ORDERNO, payOrder.getOrderNo());
-        intent.putExtra(EXTRA_NAME_STATUS, status);
-        setResult(RESULT_CODE, intent);
-    }
-
-    //展示支付失败界面
-    private void showPayFailed() {
-        setViewListVisible(payOrderViewList, View.INVISIBLE);
-        setViewListVisible(failedViewList, View.VISIBLE);
-        pay_commit.setText("返回商家");
-    }
-
-    //展示支付成功界面
-    private void showPaySuccess() {
-        setViewListVisible(payOrderViewList, View.INVISIBLE);
-        setViewListVisible(successViewList, View.VISIBLE);
-        pay_commit.setText("返回商家");
-    }
 }

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java

@@ -24,6 +24,7 @@ import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.module.webview.util.WebResourceRequestAdapter;
 import com.sheep.gamegroup.module.webview.util.WebResourceResponseAdapter;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.Constant;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
@@ -480,6 +481,8 @@ public class ActWebX5 extends BaseActWeb {
 
             mFilePathCallback.onReceiveValue(results);
             mFilePathCallback = null;
+        } else if(Constant.INTENT_RECHARGE == requestCode) {
+            mWebView.reload();
         } else {
             super.onActivityResult(requestCode, resultCode, data);
             return;