package bwie.com.a20180113zhoulian.utils;
/**
* Created by dell on 2018/1/17.
*/
public class ApiUtil {
public static final String cartUrl="http://120.27.23.105/product/getCarts?uid=11824&source=android";
public static final String addCartUrl = "https://www.zhaoapi.cn/product/addCart?uid=11824&source=android";//uid,pid
public static final String deleteCartUrl = "https://www.zhaoapi.cn/product/deleteCart?uid=11824&source=android";//uid,pid
//?uid=71&sellerid=1&pid=1&selected=0&num=10
public static final String updateCartUrl = "https://www.zhaoapi.cn/product/updateCarts";
}
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.0'
compile 'com.facebook.fresco:fresco:0.12.0'
compile 'com.facebook.fresco:webpsupport:0.12.0'
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
compile 'com.squareup.okio:okio:1.11.0'
compile 'com.github.zhaokaiqiang.klog:library:1.6.0'
compile 'com.squareup.retrofit2:converter-scalars:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.jakewharton:butterknife:8.4.0'DingDanBean
package bwie.com.a20180113zhoulian.model.bean;
import java.util.List;
/**
* Created by dell on 2017/12/21.
*/
public class DingDanBean {
/**
* msg : 请求成功
* code : 0
* data : [{"createtime":"2017-12-21T11:38:09","orderid":5038,"price":1819.9,"status":0,"title":"订单测试标题4632","uid":4632},{"createtime":"2017-12-21T11:39:56","orderid":5044,"price":1819.9,"status":0,"title":"订单测试标题4632","uid":4632},{"createtime":"2017-12-21T11:41:57","orderid":5045,"price":1819.9,"status":0,"title":"订单测试标题4632","uid":4632},{"createtime":"2017-12-21T15:05:15","orderid":5173,"price":198,"status":0,"title":"订单测试标题4632","uid":4632},{"createtime":"2017-12-21T15:15:53","orderid":5194,"price":198,"status":0,"title":"订单测试标题4632","uid":4632}]
* page : 1
*/
private String msg;
private String code;
private String page;
private List<DataBean> data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
/**
* createtime : 2017-12-21T11:38:09
* orderid : 5038
* price : 1819.9
* status : 0
* title : 订单测试标题4632
* uid : 4632
*/
private String createtime;
private int orderid;
private double price;
private int status;
private String title;
private int uid;
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public int getOrderid() {
return orderid;
}
public void setOrderid(int orderid) {
this.orderid = orderid;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
}
}YiZhiFuBean
package bwie.com.a20180113zhoulian.model.bean;
import java.util.List;
/**
* Created by dell on 2018/1/18.
*/
public class YiZhiFuBean {
/**
* msg : 请求成功
* code : 0
* data : [{"createtime":"2017-12-20T14:58:47","orderid":3884,"price":3731.89,"status":1,"title":"订单测试标题4084","uid":4084}]
* page : 1
*/
private String msg;
private String code;
private String page;
private List<DataBean> data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
/**
* createtime : 2017-12-20T14:58:47
* orderid : 3884
* price : 3731.89
* status : 1
* title : 订单测试标题4084
* uid : 4084
*/
private String createtime;
private int orderid;
private double price;
private int status;
private String title;
private int uid;
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public int getOrderid() {
return orderid;
}
public void setOrderid(int orderid) {
this.orderid = orderid;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
}
}DingDanStatusActivity
package bwie.com.a20180113zhoulian.view.activity;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import bwie.com.a20180113zhoulian.R;
import bwie.com.a20180113zhoulian.view.fragment.DaiZhiFuFragment;
import bwie.com.a20180113zhoulian.view.fragment.YiQuXiaoFragment;
import bwie.com.a20180113zhoulian.view.fragment.YiZhiFuFragment;
public class DingDanStatusActivity extends AppCompatActivity {
private RadioButton rb1;
private RadioButton rb2;
private RadioButton rb3;
private RadioGroup rg;
private FrameLayout fl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ding_dan_status);
initView();
getSupportFragmentManager().beginTransaction().replace(R.id.fl,new DaiZhiFuFragment()).commit();
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
switch (checkedId) {
case R.id.rb1:
getSupportFragmentManager().beginTransaction().replace(R.id.fl, new DaiZhiFuFragment()).commit();
break;
case R.id.rb2:
getSupportFragmentManager().beginTransaction().replace(R.id.fl, new YiZhiFuFragment()).commit();
break;
case R.id.rb3:
getSupportFragmentManager().beginTransaction().replace(R.id.fl, new YiQuXiaoFragment()).commit();
break;
}
}
});
}
public void onViewClicked(View view) {
}
private void initView() {
rb1 = (RadioButton) findViewById(R.id.rb1);
rb2 = (RadioButton) findViewById(R.id.rb2);
rb3 = (RadioButton) findViewById(R.id.rb3);
rg = (RadioGroup) findViewById(R.id.rg);
fl = (FrameLayout) findViewById(R.id.fl);
}
}GouWuCheActivity
package bwie.com.a20180113zhoulian.view.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import bwie.com.a20180113zhoulian.R;
import bwie.com.a20180113zhoulian.model.BaseObserver;
import bwie.com.a20180113zhoulian.model.bean.ChaXunBean;
import bwie.com.a20180113zhoulian.model.bean.CountPriceBean;
import bwie.com.a20180113zhoulian.presenter.MyPresenter;
import bwie.com.a20180113zhoulian.utils.ApiUtil;
import bwie.com.a20180113zhoulian.utils.RetrofitFactory;
import bwie.com.a20180113zhoulian.view.CartExpanableListview;
import bwie.com.a20180113zhoulian.view.IView.IMainActivity;
import bwie.com.a20180113zhoulian.view.adapter.MyAdapter;
public class GouWuCheActivity extends AppCompatActivity implements IMainActivity,View.OnClickListener{
private CartExpanableListview expanableListview;
private CheckBox check_all;
private TextView text_total;
private TextView text_buy;
private RelativeLayout relative_progress;
private MyAdapter myAdapter;
private List<Integer> listpid;
private LinearLayout linear_bottom;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 0){
countPriceBean = (CountPriceBean) msg.obj;
listpid = countPriceBean.getlistpid();
text_total.setText("合计:¥"+ countPriceBean.getPrice());
text_buy.setText("去结算("+ countPriceBean.getCount()+")");
}else if(msg.what==2)
{
relative_progress.setVisibility(View.VISIBLE);
//请求数据
myPresenter.getPUser(ApiUtil.cartUrl);
}
}
};
private CountPriceBean countPriceBean;
private MyPresenter myPresenter;
private ChaXunBean cartBean;
private TextView text_shan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gou_wu_che);
myPresenter = new MyPresenter(this);
myPresenter.getPUser(ApiUtil.cartUrl);
text_shan = (TextView) findViewById(R.id.text_shan);
check_all = (CheckBox) findViewById(R.id.check_all);
text_total = (TextView) findViewById(R.id.text_total);
text_buy = (TextView) findViewById(R.id.text_buy);
expanableListview = (CartExpanableListview) findViewById(R.id.expanable_listview);
relative_progress = (RelativeLayout) findViewById(R.id.relative_progress);
linear_bottom = (LinearLayout) findViewById(R.id.linear_layout);
//去掉默认的指示器
expanableListview.setGroupIndicator(null);
//1.点击选:选中/未选中...调用适配器中的方法...myAdapter.setIsCheckAll(true);来设置所有的一级和二级是否选中,计算
check_all.setOnClickListener(this);
text_buy.setOnClickListener(this);
text_shan.setOnClickListener(this);
}
/**
* 所有的一级列表是否选中
*/
private boolean isAllGroupChecked() {
for (int i =0;i<cartBean.getData().size();i++){
if (! cartBean.getData().get(i).isGroupChecked()){//代表一级列表有没选中的
return false;
}
}
return true;
}
/**
* 判断当前组里面所有的子条目是否选中
* @param groupPosition
* @return
*/
private boolean isAllChildInGroupSelected(int groupPosition) {
for (int i= 0;i<cartBean.getData().get(groupPosition).getList().size();i++){
//只要有一个没选中就返回false
if (cartBean.getData().get(groupPosition).getList().get(i).getSelected() ==0){
return false;
}
}
return true;
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.check_all:
myAdapter.setAllChildState(check_all.isChecked());
break;
case R.id.text_buy://去结算...试一下创建订单
RetrofitFactory.get("https://www.zhaoapi.cn/product/createOrder?uid=11824&price=" + countPriceBean.getPrice()).subscribe(new BaseObserver() {
@Override
public void onSuccess(String result) {
Toast.makeText(GouWuCheActivity.this, result,Toast.LENGTH_SHORT).show();
Intent intent=new Intent(GouWuCheActivity.this,DingDanStatusActivity.class);
startActivity(intent);
}
@Override
public void onFailed() {
}
});
break;
case R.id.text_shan:
for (int i=0;i<listpid.size();i++) {
Map<String, String> params = new HashMap<String, String>();
params.put("uid", 11824 + "");
params.put("pid",listpid.get(i)+"");
params.put("source", "android");
RetrofitFactory.get("https://www.zhaoapi.cn/product/deleteCart", params).subscribe(new BaseObserver() {
@Override
public void onSuccess(String result) {
relative_progress.setVisibility(View.VISIBLE);
//请求数据
myPresenter.getPUser(ApiUtil.cartUrl);
}
@Override
public void onFailed() {
}
});
}
break;
}
}
@Override
public void onSuccesscha(String json) {
relative_progress.setVisibility(View.GONE);
cartBean = new Gson().fromJson(json, ChaXunBean.class);
if (cartBean != null){
//显示下面的
linear_bottom.setVisibility(View.VISIBLE);
//1.根据组中子条目是否选中,,,决定该组是否选中...初始化一下每一组中isGroupCheck这个数据
for (int i = 0; i< cartBean.getData().size(); i++){
if (isAllChildInGroupSelected(i)){
//更改i位置 组的选中状态
cartBean.getData().get(i).setGroupChecked(true);
}
}
//2.根据每一个组是否选中的状态,,,初始化全选是否选中
check_all.setChecked(isAllGroupChecked());
//设置适配器
myAdapter = new MyAdapter(GouWuCheActivity.this, cartBean,handler,myPresenter,relative_progress);
expanableListview.setAdapter(myAdapter);
//展开
for (int i = 0; i< cartBean.getData().size(); i++){
expanableListview.expandGroup(i);
}
//3.根据子条目是否选中 初始化价格和数量
myAdapter.sendPriceAndCount();
}else {
//隐藏下面的全选.... 等
linear_bottom.setVisibility(View.GONE);
//显示去逛逛,,,添加购物车
Toast.makeText(GouWuCheActivity.this,"购物车为空,去逛逛",Toast.LENGTH_SHORT).show();
}
}
}