package com.ttj.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import lib.view.ViewUtils;
import lib.view.annotation.ViewInject;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.ttj.MyApplication;
import com.ttj.NetActivity;
import com.ttj.R;
import com.ttj.adapter.Order_DetListAdapter;
import com.ttj.alipay.PayMainAty;
import com.ttj.bean.ObjNetResultBean;
import com.ttj.bean.OrderDetailBean;
import com.ttj.bean.OrderDetailBean.goods_bean;
import com.ttj.constants.Url;
import com.ttj.utils.AtyUtils;
import com.ttj.utils.JsonUtils;
import com.ttj.utils.LogUtils;
import com.ttj.utils.MD5;
import com.ttj.utils.SPUtils;
import com.ttj.utils.TextUtils;
import com.ttj.utils.ToastUtil;
/**
* 订单详情
*
* @author Admin
*
*/
public class Order_DetailAty extends NetActivity {
@ViewInject(R.id.p2_img_back)
private ImageView ImgBack;
@ViewInject(R.id.p2_btn_order_detail_cancle)
private ImageView ImgCancle;
@ViewInject(R.id.p2_main_order_detail_sh_name)
private TextView textShName;
@ViewInject(R.id.p2_main_order_detail_sh_address)
private TextView textShAdd;
@ViewInject(R.id.p2_main_order_detail_sh_phone)
private TextView textShPhone;
@ViewInject(R.id.p2_main_order_detail_pay_name)
private TextView textPayName;
@ViewInject(R.id.p2_main_order_detail_send_time)
private TextView textSendTime;
@ViewInject(R.id.p2_main_order_detail_order_sum)
private TextView textOrSum;
@ViewInject(R.id.p2_main_order_detail_goods_sum)
private TextView textGoodsSum;
@ViewInject(R.id.p2_main_order_detail_order_remark)
private TextView textOrderRemark;
@ViewInject(R.id.p2_main_order_detail_net_remark)
private TextView textOrderNetMark;
// @ViewInject(R.id.p2_main_order_detail_order_state)
// private TextView textOrderState;
@ViewInject(R.id.p2_main_order_detail_order_create_time)
private TextView textOrderCreateTime;
//
// @ViewInject(R.id.p2_main_order_detail_order_comp_time)
// private TextView textOrderCompTime;
@ViewInject(R.id.p2_btn_order_detail_cancle)
private ImageView imgCancle;
@ViewInject(R.id.p2_main_order_detail_confirm)
private Button btnConfirmGood;
@ViewInject(R.id.p2_main_order_detail_list)
private ListView lv_Goods;
@ViewInject(R.id.p2_tv_to_car)
private TextView tv_ToCar;
private String orderId, payName, show_OrderInfo;
private Order_DetListAdapter adapter;
private List<goods_bean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyApplication.getInstance().addActivity(this);
setContentView(R.layout.p2_main_order_detail_layout);
ViewUtils.inject(this);
orderId = getIntent().getStringExtra("orderId");
list = new ArrayList<OrderDetailBean.goods_bean>();
adapter = new Order_DetListAdapter(this, list);
lv_Goods.setAdapter(adapter);
lv_Goods.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
final goods_bean bean = list.get(position);
// private String order_state;
// private int order_status_id;
// private String ship_fee;
// private String order_finish_time;
// private String order_time;
// private int IsPay;
// private String UnitSale;
show_OrderInfo = "商品名称:" + bean.getGoods_name() + "\n商品单价:"
+ bean.getGoods_price() + "元/" + bean.getGoods_unit()
+ "\n商品数量:" + bean.getGoods_count() + "\n商品名称:"
+ bean.getGoods_name() + "\n订单运费:" + bean.getShip_fee()
+ "元\n订单总价:" + bean.getGoods_totalprice() + "元\n订单状态:"
+ bean.getOrder_state();
if (bean.getIsPay() != 0) {
show_OrderInfo += "\n支付状态:已支付";
} else {
show_OrderInfo += "\n支付状态:未支付";
}
final String order_DetailID = bean.getTDealDetailID();
String order_State = bean.getOrder_state();
if (order_State.equals("未核单")) {
new AlertDialog.Builder(Order_DetailAty.this)
.setTitle("订单信息").setMessage(show_OrderInfo)
.setNegativeButton("取消订单", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
cancelOrder(order_DetailID);
}
}).create().show();
} else if (order_State.equals("已核单") && bean.getIsPay() == 0) {
new AlertDialog.Builder(Order_DetailAty.this)
.setTitle("订单信息").setMessage(show_OrderInfo)
.setPositiveButton("支付", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
if (payName.equals("余额支付")) {
confirmPay(order_DetailID);
} else {
netPayMethod(bean);
}
}
}).setNegativeButton("取消订单", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
cancelOrder(order_DetailID);
}
}).create().show();
} else if (order_State.equals("已核单") && bean.getIsPay() == 1) {
new AlertDialog.Builder(Order_DetailAty.this)
.setTitle("订单信息").setMessage(show_OrderInfo)
.setNegativeButton("确认收货", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
confirmReceipt(order_DetailID);
}
}).create().show();
} else if (order_State.equals("发货中") && bean.getIsPay() == 0) {
new AlertDialog.Builder(Order_DetailAty.this)
.setTitle("订单信息").setMessage(show_OrderInfo)
.setPositiveButton("支付", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
if (payName.equals("余额支付")) {
confirmPay(order_DetailID);
} else {
netPayMethod(bean);
}
}
}).setNegativeButton("确认收货", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
confirmReceipt(order_DetailID);
}
}).create().show();
} else if (order_State.equals("发货中") && bean.getIsPay() == 1) {
new AlertDialog.Builder(Order_DetailAty.this)
.setTitle("订单信息").setMessage(show_OrderInfo)
.setNegativeButton("确认收货", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
confirmReceipt(order_DetailID);
}
}).create().show();
} else {
new AlertDialog.Builder(Order_DetailAty.this)
.setTitle("订单信息").setMessage(show_OrderInfo)
.create().show();
}
}
});
ImgBack.setOnClickListener(this);
btnConfirmGood.setOnClickListener(this);
imgCancle.setOnClickListener(this);
tv_ToCar.setOnClickListener(this);
}
/**
* 网银支付
*
* @param bean
*/
private void netPayMethod(final goods_bean bean) {
String[] item = { "更改支付方式", "支付宝支付", "微信支付" };
new AlertDialog.Builder(Order_DetailAty.this).setTitle("支付方式")
.setItems(item, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
break;
case 1:
// 支付宝支付
Intent intent = new Intent(Order_DetailAty.this,
PayMainAty.class);
intent.putExtra("pro_Subject", bean.getGoods_name());
intent.putExtra("pro_Desc",
"数量:\tX " + bean.getGoods_count()
+ "\n单价:\t" + bean.getGoods_price()
+ "元/" + bean.getGoods_unit());
intent.putExtra("pro_Price",
bean.getGoods_totalprice());
intent.putExtra("TDealDetailID",
bean.getTDealDetailID());
startActivity(intent);
break;
case 2:
ToastUtil.show(Order_DetailAty.this, "微信支付暂未开通",
500);
break;
default:
break;
}
}
}).setNegativeButton("取消", null).create().show();
}
@Override
protected void onResume() {
super.onResume();
HashMap<String, String> params = new HashMap<String, String>();
params.put("sp_userid", SPUtils.getUid(this) + "");
params.put("sp_order", orderId);
params.put("port_password",
MD5.getMD5ofStr(Url.KET + SPUtils.getUid(this) + orderId));
asynNet(Url.Order_Detail, params, 0);
}
@Override
public void success(String result, int tag) {
LogUtils.log(result);
ObjNetResultBean netBean = JsonUtils.parseNetResult(result);
if (netBean.getStatus().getCode() == 200) {
if (tag == 0) {
String res = netBean.getBackinfo().toString();
OrderDetailBean bean = JsonUtils.parseOrderDetail(res);
textShName.setText(bean.getSh_name());
textShAdd.setText(bean.getSh_address());
textShPhone.setText(bean.getSh_phone());
textPayName.setText(bean.getPay_name());
// "sh_name":"jgxfh","sh_address":"cjkk","sh_phone":"13678925809",
// "pay_name":"在线支付","SendTimeTypeName":"全天可送货","order_totalprice":"0",
// "goods_amount":"0","ship_fee":"0","order_remark":"","shop_remark":null,"order_state":"未付款",
// "order_add_time":"2015-04-14 00:00:00","order_finish_time":"2015-04-14 00:00:00",
textSendTime.setText(bean.getSendTimeTypeName());
textOrSum.setText(bean.getOrder_totalprice());
textGoodsSum.setText(bean.getGoods_amount());
textOrderRemark.setText(bean.getOrder_remark());
textOrderNetMark.setText(bean.getShop_remark());
payName = bean.getPay_name();
// if (bean.getOrder_state().equals("未付款")) {
// imgCancle.setVisibility(View.VISIBLE);
// }
// if (bean.getOrder_state().equals("发货中")) {
// btnConfirmGood.setVisibility(View.VISIBLE);
// }
textOrderCreateTime.setText(bean.getOrder_add_time());
List<goods_bean> lists = bean.getGoods_list();
adapter.clearData();
adapter.addData(lists);
adapter.notifyDataSetChanged();
} else if (tag == 1) {
ToastUtil.show(this, "订单取消成功", 500);
onResume();
} else if (tag == 2) {
ToastUtil.show(this, "您已成功确认收货", 500);
onResume();
} else if (tag == 3) {
ToastUtil.show(this, "您已成功支付订单", 500);
onResume();
}
} else {
ToastUtil.show(this, netBean.getStatus().getMessage(), 500);
}
}
@Override
public void onclick(View v) {
if (v == ImgBack) {
Order_DetailAty.this.finish();
} else if (v == tv_ToCar) {
AtyUtils.turnToCar(Order_DetailAty.this);
}
}
private void cancelOrder(final String id) {
final View view = LayoutInflater.from(this).inflate(
R.layout.alert_dialog_edit_layout, null);
new AlertDialog.Builder(this).setTitle("提醒").setMessage("确定删除吗?")
.setView(view).setNegativeButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
HashMap<String, String> params = new HashMap<String, String>();
params.put("sp_userid",
SPUtils.getUid(Order_DetailAty.this));
params.put("sp_order", id);
params.put(
"port_password",
MD5.getMD5ofStr(Url.KET
+ SPUtils.getUid(Order_DetailAty.this)
+ id));
asynNet(Url.Order_Cancle, params, 1);
}
}).setPositiveButton("取消", null).create().show();
}
private void confirmReceipt(final String id) {
new AlertDialog.Builder(this).setTitle("提醒").setMessage("确认收货吗?")
.setNegativeButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
HashMap<String, String> params = new HashMap<String, String>();
params.put("sp_userid",
SPUtils.getUid(Order_DetailAty.this));
params.put("sp_order", id);
params.put(
"port_password",
MD5.getMD5ofStr(Url.KET
+ SPUtils.getUid(Order_DetailAty.this)
+ id));
asynNet(Url.Confirm_Receipt, params, 2);
}
}).setPositiveButton("取消", null).create().show();
}
private void confirmPay(final String id) {
View view = LayoutInflater.from(this).inflate(
R.layout.p2_edit_comfirm_pass, null);
final EditText edit_PayPass = (EditText) view
.findViewById(R.id.p2_edit_pay_pass);
String items[] = { "更改支付方式", "确认付款" };
new AlertDialog.Builder(this).setTitle("确认支付方式").setItems(items,
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
break;
case 1:
HashMap<String, String> params = new HashMap<String, String>();
String pay_pass = edit_PayPass.getText().toString();
if (TextUtils.isBlank(pay_pass)) {
ToastUtil.show(Order_DetailAty.this, "请输入密码",
500);
return;
}
params.put("sp_userid",
SPUtils.getUid(Order_DetailAty.this));
params.put("PayPassWord", MD5.getMD5ofStr(pay_pass));
params.put("sp_order", id);
params.put("port_password", MD5.getMD5ofStr(Url.KET
+ SPUtils.getUid(Order_DetailAty.this)));
asynNet(Url.Confirm_Pay, params, 3);
break;
default:
break;
}
}
}).setNegativeButton("取消", null).create().show();
// new AlertDialog.Builder(this).setTitle("提醒").setMessage("确认付款吗?")
// .setView(view).setNegativeButton("确定", new OnClickListener() {
//
// @Override
// public void onClick(DialogInterface dialog, int which) {
// HashMap<String, String> params = new HashMap<String, String>();
// String pay_pass = edit_PayPass.getText().toString();
// if (TextUtils.isBlank(pay_pass)) {
// ToastUtil.show(Order_DetailAty.this, "请输入密码", 500);
// return;
// }
// params.put("sp_userid",
// SPUtils.getUid(Order_DetailAty.this));
// params.put("PayPassWord", MD5.getMD5ofStr(pay_pass));
// params.put("sp_order", id);
// params.put(
// "port_password",
// MD5.getMD5ofStr(Url.KET
// + SPUtils.getUid(Order_DetailAty.this)));
// asynNet(Url.Confirm_Pay, params, 3);
// }
// }).setPositiveButton("取消", null).create().show();
}
}