package com.bw.movie.activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.alipay.sdk.app.PayTask;
import com.bw.movie.R;
import com.bw.movie.bean.BuyTicketMovieBean;
import com.bw.movie.bean.WXBean;
import com.bw.movie.bean.ZhifuBaoBean;
import com.bw.movie.cinema.bean.OrderBean;
import com.bw.movie.mvp.presenter.IPresenter;
import com.bw.movie.mvp.view.IView;
import com.bw.movie.utils.Api;
import com.bw.movie.utils.EncryptUtil;
import com.bw.movie.wxapi.WXEntryActivity;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ChooseSeatActivity extends AppCompatActivity implements IView {
@BindView(R.id.yingyuanname)
TextView yingyuanname;
@BindView(R.id.yingyuandizhi)
TextView yingyuandizhi;
@BindView(R.id.dianyingname)
TextView dianyingname;
@BindView(R.id.kaishi)
TextView kaishi;
@BindView(R.id.jieshu)
TextView jieshu;
@BindView(R.id.yingting)
TextView yingting;
@BindView(R.id.goupiao1)
SeatTable goupiao1;
@BindView(R.id.zongjiashiwei)
TextView zongjiashiwei;
@BindView(R.id.xiaoshu)
TextView xiaoshu;
@BindView(R.id.fukuan)
ImageView fukuan;
@BindView(R.id.quxiao)
ImageView quxiao;
@BindView(R.id.popgoupiao)
LinearLayout popgoupiao;
private int j;
private int i;
private TextView confirm_pay;
private PopupWindow popupWindow;
private SharedPreferences sharedPreferences;
private BuyTicketMovieBean.ResultBean resultBean;
private String scheduleId;
private double totalPrice;
private int pay = 1;
private String userId,sessionId;
private EncryptUtil util;
private IPresenter iPresenter;
private String orderId1;
private Map<String, String> mapi;
private double d;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_seat);
ButterKnife.bind(this);
iPresenter=new IPresenter(this);
Intent intent=getIntent();
yingyuanname.setText(intent.getStringExtra("start"));
yingyuandizhi.setText(intent.getStringExtra("end"));
dianyingname.setText(intent.getStringExtra("hall"));
String sumprice=intent.getStringExtra("price");
scheduleId=intent.getStringExtra("id");
totalPrice =Double.parseDouble(sumprice);
//获取userid
sharedPreferences = getSharedPreferences("spDemo", MODE_PRIVATE);
userId = sharedPreferences.getString("userId", "");
sessionId = sharedPreferences.getString("sessionId", "");
goupiao1.setScreenName("惠普");//设置屏幕名称
goupiao1.setMaxSelected(5);//设置最多选中
//**********点击购票
goupiao1.setSeatChecker(new SeatTable.SeatChecker() {
@Override
public boolean isValidSeat(int row, int column) {
if (column == 2) {
return false;
}
return true;
}
//***********最多选五张
@Override
public boolean isSold(int row, int column) {
if (row == 6 && column == 6) {
return true;
}
return false;
}
//**********点击选中
@Override
public void checked(int row, int column) {
j++;
d = (((totalPrice * j) * 100)) / 100.0;
zongjiashiwei.setText(d+"");
i = j;
}
//*************点击取消
@Override
public void unCheck(int row, int column) {
i--;
d = (((totalPrice * i) * 100)) / 100.0;
zongjiashiwei.setText(d+"");
j = i;
}
@Override
public String[] checkedSeatTxt(int row, int column) {
return null;
}
});
goupiao1.setData(10, 15);
//*******点击取消
quxiao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
//*********点击 √ 付款
fukuan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (i > 0) {
util=new EncryptUtil();
String entry= EncryptUtil.MD5(userId+ scheduleId+i+"movie");
mapi = new HashMap<>();
mapi.put("scheduleId",scheduleId+"");
mapi.put("amount",i+"");
mapi.put("sign",entry);
Log.i("TAGSSSSSS",entry+"");
iPresenter.FileData(Api.BUYPIAO_PATH,mapi,OrderBean.class);
getPayPopvView();
} else {
Toast.makeText(ChooseSeatActivity.this, "请先选座", Toast.LENGTH_SHORT).show();
}
}
});
}
private void getPayPopvView() {
View view = View.inflate(ChooseSeatActivity.this, R.layout.pay_popupwindow_view, null);
ImageView detail_down = view.findViewById(R.id.detail_down);
RadioGroup radiogroup = view.findViewById(R.id.radiogroup);
confirm_pay = view.findViewById(R.id.confirm_pay);
popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, 550);
//设置焦点
popupWindow.setFocusable(true);
//设置是否可以触摸
popupWindow.setTouchable(true);
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ffffff")));
//关闭
detail_down.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
}
});
radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.pay_wx:
pay = 1;
confirm_pay.setText("微信支付" + d + "元");
break;
case R.id.pay_alipay:
pay = 2;
confirm_pay.setText("支付宝支付" + d + "元");
break;
default:
break;
}
}
});
if (pay == 1) {
confirm_pay.setText("微信支付" + d + "元");
} else if (pay == 2) {
confirm_pay.setText("支付宝支付" + d + "元");
}
//点击选择微信支付
confirm_pay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pay==1){
HashMap<String, String> map1 = new HashMap<>();
map1.put("userId",userId);
map1.put("sessionId",sessionId);
map1.put("payType","1");
map1.put("orderId",orderId1);
iPresenter.FileData(Api.WEIXINPAYFOR_PATH,map1,WXBean.class);
}else {
HashMap<String, String> map2 = new HashMap<>();
map2.put("userId",userId);
map2.put("sessionId",sessionId);
map2.put("payType","2");
map2.put("orderId",orderId1);
iPresenter.FileData(Api.WEIXINPAYFOR_PATH,map2,ZhifuBaoBean.class);
}
}
});
popupWindow.showAtLocation(View.inflate(ChooseSeatActivity.this, R.layout.activity_choose_seat, null),
Gravity.BOTTOM, 0, 0);
}
@Override
public void onSuccess(Object data) {
if (data instanceof OrderBean) {
OrderBean orderBean = (OrderBean) data;
if (orderBean.getMessage().equals("下单成功")) {
orderId1 = orderBean.getOrderId();
Toast.makeText(this, "下单成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "0000", Toast.LENGTH_SHORT).show();
}
}
//微信支付
if (data instanceof WXBean) {
WXBean wxBean = (WXBean) data;
Intent intent = new Intent(this, WXEntryActivity.class);
intent.putExtra("appId", wxBean.getAppId());
intent.putExtra("nonceStr", wxBean.getNonceStr());
intent.putExtra("partnerId", wxBean.getPartnerId());
intent.putExtra("prepayId", wxBean.getPrepayId());
intent.putExtra("sign", wxBean.getSign());
intent.putExtra("timeStamp", wxBean.getTimeStamp());
intent.putExtra("packageValue", wxBean.getPackageValue());
iPresenter.FileData(Api.WEIXINPAYFOR_PATH, mapi, OrderBean.class);
Toast.makeText(this, wxBean.getMessage() + "", Toast.LENGTH_SHORT).show();
startActivity(intent);
}
//支付宝支付
if (data instanceof ZhifuBaoBean) {
final ZhifuBaoBean zhifuBaoBean = (ZhifuBaoBean) data;
if (zhifuBaoBean.getStatus().equals("0000")) {
new Thread() {
@Override
public void run() {
super.run();
final PayTask payTask = new PayTask(ChooseSeatActivity.this);
payTask.payV2(zhifuBaoBean.getResult(), true);
}
}.start();
}
}
}
@Override
public void onfail(String error) {
}
@Override
protected void onDestroy() {
super.onDestroy();
iPresenter.detach();
}
}
WXBean
package com.bw.movie.bean;
public class WXBean {
/**
* appId : wxb3852e6a6b7d9516
* message : 支付成功
* nonceStr : WQ72A7mNfUaA05Gw
* partnerId : 1510865081
* prepayId : wx07084938610450dcaad697243945045542
* sign : 94F2FD993AB97C002E6CE898B04B578A
* status : 0000
* timeStamp : 1533602976
* packageValue : Sign=WXPay
*/
private String appId;
private String message;
private String nonceStr;
private String partnerId;
private String prepayId;
private String sign;
private String status;
private String timeStamp;
private String packageValue;
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getNonceStr() {
return nonceStr;
}
public void setNonceStr(String nonceStr) {
this.nonceStr = nonceStr;
}
public String getPartnerId() {
return partnerId;
}
public void setPartnerId(String partnerId) {
this.partnerId = partnerId;
}
public String getPrepayId() {
return prepayId;
}
public void setPrepayId(String prepayId) {
this.prepayId = prepayId;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getTimeStamp() {
return timeStamp;
}
public void setTimeStamp(String timeStamp) {
this.timeStamp = timeStamp;
}
public String getPackageValue() {
return packageValue;
}
public void setPackageValue(String packageValue) {
this.packageValue = packageValue;
}
}
支付宝Bean
package com.bw.movie.bean;
public class ZhifuBaoBean {
private String message;
private String status;
private String result;
public ZhifuBaoBean(String message, String status, String result) {
this.message = message;
this.status = status;
this.result = result;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}