admin
2021-06-07 01e23be6118d68d38a71d186296d440eadcaa197
app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java
@@ -1,5 +1,6 @@
package com.tejia.lijin.app.ui.recommend;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -42,14 +43,18 @@
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
import com.tejia.lijin.app.R;
import com.tejia.lijin.app.ShoppingApi;
import com.tejia.lijin.app.entity.CouponInfo;
import com.tejia.lijin.app.entity.CouponUser;
import com.tejia.lijin.app.entity.GoodsDetail;
import com.tejia.lijin.app.entity.PushEventData;
import com.tejia.lijin.app.entity.TaoBaoGoodsBrief;
import com.tejia.lijin.app.entity.common.ImageShowEntity;
import com.tejia.lijin.app.entity.goods.GoodsDetailVO;
import com.tejia.lijin.app.entity.user.UserLijinLevelInfoVO;
import com.tejia.lijin.app.ui.BaseActivity;
import com.tejia.lijin.app.ui.dialog.GoodsDetailHongBaoAndCouponSelectDialog;
import com.tejia.lijin.app.ui.dialog.GoodsDetailJumpLoaingDialog;
import com.tejia.lijin.app.ui.dialog.GoodsDetailNotifyDialog;
import com.tejia.lijin.app.ui.dialog.JumpTaoBaoDialog;
import com.tejia.lijin.app.ui.goods.GoodsDetailHongBaoListAdapter;
import com.tejia.lijin.app.ui.goods.GoodsDetailPreEventManager;
@@ -61,12 +66,15 @@
import com.tejia.lijin.app.util.FlowLayout;
import com.tejia.lijin.app.util.GlideCircleTransform;
import com.tejia.lijin.app.util.GlideRoundTransform;
import com.tejia.lijin.app.util.GoodsBuyJumpUtil;
import com.tejia.lijin.app.util.ImageUtil;
import com.tejia.lijin.app.util.SetLabels;
import com.tejia.lijin.app.util.Toast_Dialog;
import com.tejia.lijin.app.util.TopStatusSettings;
import com.tejia.lijin.app.util.clipboard.ClipboardUtil;
import com.tejia.lijin.app.util.goods.GoodsBuyUtil;
import com.tejia.lijin.app.util.ui.GoodsDetailUtil;
import com.tejia.lijin.app.util.ui.dialog.DialogUtil;
import com.tejia.lijin.app.util.umengCustomEvent.GoodsCustomEvent;
import com.tejia.lijin.app.util.user.LoginAndInviteStatusUtil;
import com.tejia.lijin.app.util.user.UserUtil;
@@ -150,6 +158,7 @@
    private LinearLayout ll_loading;
    private ImageView iv_loading;
    private TextView tv_loading;
    private View view_goods_imgs_tag;//用来标识导航栏选中
    //猜你喜欢
    private LinearLayout ll_guess_like;
@@ -220,6 +229,7 @@
        tv_loading = findViewById(R.id.tv_loading);
        iv_loading = findViewById(R.id.iv_loading);
        webView = findViewById(R.id.webView);
        view_goods_imgs_tag = findViewById(R.id.view_goods_imgs_tag);
        vp_goods_detail = findViewById(R.id.vp_goods_img);
@@ -307,7 +317,6 @@
        avLoadingIndicatorView.setVisibility(View.VISIBLE);
        Animation ani = AnimationUtils.loadAnimation(this, R.anim.touming); //申明一个动画
        avLoadingIndicatorView.setAnimation(ani);//为图片绑定动画
        ll_content.setVisibility(View.GONE);
        fl_face.setVisibility(View.VISIBLE);
        bannerAdapter = new ImageAdapter(mBanners, this);
        vp_goods_detail.setAdapter(bannerAdapter);
@@ -402,10 +411,8 @@
                if (scrollY < fl_goods_detail.getTop()) {//头部
                    setPosition(1);
                } else if (scrollY >= (fl_goods_detail.getTop() - titleHeight)
                        && scrollY < ll_guess_like.getTop()) {//详情图片
                        && scrollY < view_goods_imgs_tag.getTop()) {//详情图片
                    setPosition(2);
                } else if (scrollY >= ll_guess_like.getTop() - titleHeight) {//猜你喜欢
                    setPosition(4);
                } else {
                    setPosition(4);
                }
@@ -554,6 +561,8 @@
    }
    GoodsDetailNotifyDialog notifyDialog;
    @Override
    protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
@@ -565,6 +574,31 @@
        initView();
        initData();
        getAppPageNotification();
//        new GoodsDetailJumpLoaingDialog.Builder(this).setHasAd(true).setAdPid("").setNotify("铂金会员免广告,礼金提高100%", "http://www.baidu.com").setPlatform(Constant.GOODS_TYPE_TB).setOnCloseListener(new GoodsDetailJumpLoaingDialog.Builder.IDialogClose() {
//            @Override
//            public void onClose(boolean auto) {
//            }
//        }).create().show();
    }
    public void showNotifyDialog(String btnName, String link) {
        DialogUtil.dismiss(notifyDialog);
        notifyDialog = new GoodsDetailNotifyDialog.Builder(this).setLeftBtnInfo(btnName, link).setOnButtonClickListener(new GoodsDetailNotifyDialog.Builder.IDialogButtonClick() {
            @Override
            public void onLeftClick() {
                DialogUtil.dismiss(notifyDialog);
            }
            @Override
            public void onRightClick() {
                DialogUtil.dismiss(notifyDialog);
                goFanli();
            }
        }).create();
        DialogUtil.show(notifyDialog);
    }
@@ -710,7 +744,10 @@
                    tv_name.setText(mInfo.getGoods().getTitle());
                    webView.loadUrl(mInfo.getExtra().getDetailUrl());
                    tv_sales_num.setText(GoodsDetailUtil.getSalesTypeDesc(mInfo.getGoods().getSalesType()) + " " + mInfo.getGoods().getSalesCount());
                    if (StringUtils.isNullOrEmpty(mInfo.getGoods().getSalesCount())) {
                        tv_sales_num.setText("");
                    } else
                        tv_sales_num.setText(GoodsDetailUtil.getSalesTypeDesc(mInfo.getGoods().getSalesType()) + " " + mInfo.getGoods().getSalesCount());
                    if (mInfo.getGoods().getShopInfo() != null) {
                        ll_shop.setVisibility(View.VISIBLE);
@@ -722,7 +759,7 @@
                        tv_shop_name.setText(mInfo.getGoods().getShopInfo().getShopName());
                        try {
                            GoodsDetailUtil.fillShopType(tv_shop_type, mInfo.getGoods().getShopInfo().getUserType());
                            GoodsDetailUtil.fillShopType(tv_shop_type, mInfo.getGoods().getShopType());
                            if (!StringUtils.isNullOrEmpty(mInfo.getGoods().getShopInfo().getScoreGoods())) {
                                tv_shop_des.setText("宝贝描述: " + mInfo.getGoods().getShopInfo().getScoreGoods());
@@ -781,10 +818,7 @@
                    initFanliAndBuyBtn(mInfo.getExtra().isBuyValid(), mInfo.getExtra().isFanliValid());
                    requestState(0);
                    sv_goods.scrollTo(0, 0);
//                    ll_content.setVisibility(View.VISIBLE);
//                    fl_face.setVisibility(View.GONE);
                } else if (jsonObject.optString("code").equalsIgnoreCase("2")) {
                    ll_content.setVisibility(View.GONE);
                    findViewById(R.id.ll_goods_nothing).setVisibility(View.VISIBLE);
                    fl_face.setVisibility(View.VISIBLE);
                }
@@ -1101,10 +1135,15 @@
     * @param state
     */
    private void requestState(int state) {
        ll_content.setVisibility(state == 0 ? View.VISIBLE : View.GONE);
//        fl_face.setVisibility(state != 0 ? View.VISIBLE : View.GONE);
        ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
        ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE);
        ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE);
        if (mInfo == null) {
            fl_face.setVisibility(View.VISIBLE);
        } else {
            fl_face.setVisibility(View.GONE);
        }
    }
    @Override
@@ -1125,43 +1164,56 @@
    private void goFanli() {
        new GoodsDetailHongBaoAndCouponSelectDialog.Builder(this).setCouponList(mInfo.getGoods().getCouponInfoList()).setItemClickListener(new GoodsDetailHongBaoAndCouponSelectDialog.OnItemClickListener() {
            @Override
            public void onClick(int p) {
                goodsDetailPreEventManager.startClick(0, new GoodsDetailPreEventManager.IPreEventListener() {
                    @Override
                    public void onPreSuccess() {
                        //TODO 返利
                    }
                });
            }
        }).create().show();
        if (mInfo.getGoods().getCouponInfoList() != null && mInfo.getGoods().getCouponInfoList().size() > 1) {
            new GoodsDetailHongBaoAndCouponSelectDialog.Builder(this).setCouponList(mInfo.getGoods().getCouponInfoList()).setItemClickListener(new GoodsDetailHongBaoAndCouponSelectDialog.OnItemClickListener() {
                @Override
                public void onClick(int p) {
                    goFanli(mInfo.getGoods().getCouponInfoList().get(p));
                }
            }).create().show();
        } else {
            goFanli(null);
        }
        //判断是否有多张券情况
    }
    private void goFanli(final CouponInfo couponInfo) {
        goodsDetailPreEventManager.startClick(0, new GoodsDetailPreEventManager.IPreEventListener() {
            @Override
            public void onPreSuccess() {
                fanliRequest(couponInfo);
            }
        });
    }
    private void goBuy() {
        List<GoodsDetailVO.GoodsHongBaoListVO> hongBaoList = new ArrayList<>();
        final List<GoodsDetailVO.GoodsHongBaoListVO> hongBaoList = new ArrayList<>();
        hongBaoList.addAll(mInfo.getGoods().getPriceList());
        for (int i = 0; i < hongBaoList.size(); i++) {
            if (hongBaoList.get(i).getType() != 2) {
                hongBaoList.remove(i--);
            }
        }
        if (hongBaoList.size() > 1) {
            new GoodsDetailHongBaoAndCouponSelectDialog.Builder(this).setHongBaoList(hongBaoList).setItemClickListener(new GoodsDetailHongBaoAndCouponSelectDialog.OnItemClickListener() {
                @Override
                public void onClick(int p) {
                    goBuy(hongBaoList.get(p));
                }
            }).create().show();
        } else {
            if (hongBaoList.size() > 0)
                goBuy(hongBaoList.get(0));
        }
    }
        new GoodsDetailHongBaoAndCouponSelectDialog.Builder(this).setHongBaoList(hongBaoList).setItemClickListener(new GoodsDetailHongBaoAndCouponSelectDialog.OnItemClickListener() {
    private void goBuy(final GoodsDetailVO.GoodsHongBaoListVO lijinVO) {
        goodsDetailPreEventManager.startClick(1, new GoodsDetailPreEventManager.IPreEventListener() {
            @Override
            public void onClick(int p) {
                goodsDetailPreEventManager.startClick(1, new GoodsDetailPreEventManager.IPreEventListener() {
                    @Override
                    public void onPreSuccess() {
                        //TODO 购买
                    }
                });
            public void onPreSuccess() {
                buyRequest(lijinVO);
            }
        }).create().show();
        });
    }
@@ -1239,7 +1291,11 @@
            @Override
            public void onHongBaoClick(int p, GoodsDetailVO.GoodsHongBaoListVO info) {
                if (info.getType() == 4) {
                    goFanli(null);
                } else {
                    goBuy(info);
                }
            }
            @Override
@@ -1292,4 +1348,152 @@
        });
    }
    private void buyRequest(GoodsDetailVO.GoodsHongBaoListVO goodsHongBaoListVO) {
        ShoppingApi.buyWithLijin(getApplicationContext(), mInfo.getGoods().getGoodsId(), mInfo.getGoods().getGoodsType(), goodsHongBaoListVO.getId(), UserUtil.getUid(getApplicationContext()), from, new BasicTextHttpResponseHandler() {
            @Override
            public void onStart() {
                super.onStart();
                DialogUtil.show(loadingDialog);
            }
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                super.onSuccessPerfect(statusCode, headers, jsonObject);
                int code = jsonObject.optInt("code");
                if (code == 0) {
                    JSONObject data = jsonObject.optJSONObject("data");
                    JSONObject link = data.optJSONObject("link");
                    UserLijinLevelInfoVO userLevel = null;
                    if (data.optJSONObject("userLevel") != null) {
                        userLevel = new Gson().fromJson(data.optJSONObject("userLevel").toString(), UserLijinLevelInfoVO.class);
                    }
                    if (link != null) {
                        final String linkUrl = link.optString("clickUrl");
                        GoodsBuyJumpUtil.jumpTB(GoodsDetailActivity.this, null, linkUrl, linkUrl, userLevel, null);
                    }
                } else {
                    if (code == 2001) {
                        //用户机会已经用完了
                        getBuyChanceInfoRequest();
                    } else
                        Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
                super.onFailure(statusCode, headers, jsonObject, e);
            }
            @Override
            public void onFinish() {
                super.onFinish();
                DialogUtil.dismiss(loadingDialog);
            }
        });
    }
    private void fanliRequest(CouponInfo couponInfo) {
        GoodsBuyUtil.GoodsBuyRequestInfo requestInfo = new GoodsBuyUtil.GoodsBuyRequestInfo();
        requestInfo.setGoodsId(mInfo.getGoods().getGoodsId());
        requestInfo.setGoodsType(mInfo.getGoods().getGoodsType());
        if (couponInfo != null)
            requestInfo.setCouponLink(couponInfo.getLink());
        requestInfo.setUid(UserUtil.getUid(getApplicationContext()));
        requestInfo.setFrom(from);
        //返利
        GoodsBuyUtil.fanli(this, getApplicationContext(), requestInfo, new GoodsBuyUtil.IBuyGoodsResultListener() {
            @Override
            public void onConvertLinkStart() {
                DialogUtil.show(loadingDialog);
            }
            @Override
            public void onConvertLinkSuccess() {
                DialogUtil.dismiss(loadingDialog);
            }
            @Override
            public void onConvertLinkFail(String msg) {
                DialogUtil.dismiss(loadingDialog);
            }
            @Override
            public void onConvertLinkComplete() {
                DialogUtil.dismiss(loadingDialog);
            }
            @Override
            public void onJumpThirdAppStart() {
            }
            @Override
            public void onJumpThirdAppSuccess() {
            }
            @Override
            public void onJumpThirdAppFail() {
            }
        });
    }
    /**
     * 获取购买机会信息
     */
    private void getBuyChanceInfoRequest() {
        ShoppingApi.getUserLijinCreatedInfo(getApplicationContext(), mInfo.getGoods().getGoodsId(), mInfo.getGoods().getGoodsType(), UserUtil.getUid(getApplicationContext()), new BasicTextHttpResponseHandler() {
            @Override
            public void onStart() {
                super.onStart();
            }
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                super.onSuccessPerfect(statusCode, headers, jsonObject);
                if (jsonObject.optInt("code") == 0) {
                    JSONObject data = jsonObject.optJSONObject("data");
                    int leftCount = data.optInt("leftCount");
//                    if (leftCount <= 0) {
                    JSONObject openInfo = data.optJSONObject("openInfo");
                    if (openInfo != null) {
                        showNotifyDialog(openInfo.optString("btnName"), openInfo.optString("vipLink"));
                    } else {
                        showNotifyDialog(null, null);
                    }
//                    }
                } else {
                    Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
                super.onFailure(statusCode, headers, jsonObject, e);
                Toast.makeText(GoodsDetailActivity.this, "网络请求出错", Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onFinish() {
                super.onFinish();
                DialogUtil.dismiss(loadingDialog);
            }
        });
    }
}