购物车的订单

依赖

implementation 'com.google.guava:guava:16.0.1'
    implementation 'com.google.code.gson:gson:2.2.4'
    implementation 'com.squareup.picasso:picasso:2.3.2'
    implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
    implementation 'com.github.userswlwork:pull-to-refresh:1.0.0'
    implementation 'com.android.support:support-v13:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'cn.yipianfengye.android:zxing-library:2.2'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'org.greenrobot:eventbus:3.0.0'
// 一般依赖:
    implementation 'com.facebook.fresco:fresco:0.14.1'
    implementation 'com.youth.banner:banner:1.4.9'
    implementation 'com.github.bumptech.glide:glide:3.7.0'
// 如果需要支持gif,再添加:
    implementation 'com.facebook.fresco:animated-gif:0.12.0'

    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    implementation('com.jcodecraeer:xrecyclerview:1.5.9') {
        exclude group: 'com.android.support'

    }
    implementation 'com.zhy:okhttputils:2.6.2'
    implementation 'com.orhanobut:logger:2.1.1'
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
    /*EventBus*/
    implementation 'org.greenrobot:eventbus:3.0.0'
    /*轮播图*/
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.github.zrunker:ZViewPager:v1.0.4'
    implementation 'com.yarolegovich:discrete-scrollview:1.4.9'
    /*retrofit依赖 RxJava*/
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    //基于swipelayout的侧滑删除
    implementation "com.daimajia.swipelayout:library:1.2.0@aar"

//fragment订单

public class OrdersFragment extends Fragment implements View.OnClickListener,OrdersView {
    private ImageView img_dingdan_all;
    private ImageView img_dingdan_pay;
    private ImageView img_dingdan_shouhuo;
    private ImageView img_dingdan_write;
    private ImageView img_dingdan_finish;
    private XRecyclerView orderForm_xRecyclerView;
    private List<OrdersBean.OrderListBean> orderList;
    private List<OrdersBean.OrderListBean> data;
    private String sessionId;
    private int userId;
    private int page = 1;
    private int num = 0;
    private OrdersPresenter ordersPresenter;
    private OrdersAdapter ordersAdapter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_orders, container, false);
        initData();
        initView(view);
        //刷新加载
        orderForm_xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                    handler.sendEmptyMessageDelayed(2,2000);
            }

            @Override
            public void onLoadMore() {
                page++;
                ordersPresenter.getOrderFormData(userId,sessionId,0,page,5);
            }
        });
        return view;
    }

    private void initData() {
        //获取用户请求头
        SharedPreferences loginId = getActivity().getSharedPreferences("loginId", MODE_PRIVATE);
        userId = Integer.parseInt(loginId.getString("userId", ""));
        sessionId = loginId.getString("sessionId", "");
        //实例化Presenter
        ordersPresenter = new OrdersPresenter(this);
        ordersPresenter.getOrderFormData(userId,sessionId,0,page,5);
    }

    private void initView(View view) {
        img_dingdan_all = (ImageView) view.findViewById(R.id.img_dingdan_all);
        img_dingdan_pay = (ImageView) view.findViewById(R.id.img_dingdan_pay);
        img_dingdan_shouhuo = (ImageView) view.findViewById(R.id.img_dingdan_shouhuo);
        img_dingdan_write = (ImageView) view.findViewById(R.id.img_dingdan_write);
        img_dingdan_finish = (ImageView) view.findViewById(R.id.img_dingdan_finish);
        orderForm_xRecyclerView = (XRecyclerView) view.findViewById(R.id.orderForm_xRecyclerView);

        img_dingdan_all.setOnClickListener(this);
        img_dingdan_pay.setOnClickListener(this);
        img_dingdan_shouhuo.setOnClickListener(this);
        img_dingdan_write.setOnClickListener(this);
        img_dingdan_finish.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.img_dingdan_all:

                break;
            case R.id.img_dingdan_pay:

                break;
            case R.id.img_dingdan_shouhuo:

                break;
            case R.id.img_dingdan_write:

                break;
            case R.id.img_dingdan_finish:

                break;
        }
    }

    @Override
    public void onOrdersShow(OrdersBean ordersBean) {
        num++;
        if(num == 1){
            orderList = ordersBean.getOrderList();
            handler.sendEmptyMessage(1);
        }else {
            data = ordersBean.getOrderList();
            orderList.addAll(data);
            handler.sendEmptyMessage(3);
        }
        if(ordersBean.getOrderList().size() == 0){
            Toast.makeText(getActivity(), "没有更多数据了", Toast.LENGTH_SHORT).show();
            return;
        }
    }

    @Override
    public void onAddOrdersData(CommonBean commonBean) {
    }

    public void setAdapter(){
        //设置布局管理器
        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        orderForm_xRecyclerView.setLayoutManager(layoutManager);
        //设置适配器
        ordersAdapter = new OrdersAdapter(getActivity(), orderList);
        orderForm_xRecyclerView.setAdapter(ordersAdapter);
        ordersAdapter.setOnShopMessageListener(new OrdersAdapter.OnShopMessageListener() {
            @Override
            public void onShopMsg(View view, String msg) {
                Toast.makeText(getActivity(), msg+"", Toast.LENGTH_SHORT).show();
            }
        });

    }
    Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 1:
                    setAdapter();
                    break;
                case 2:
                    page = 1;
                    //实例化Presenter
                    ordersPresenter = new OrdersPresenter(OrdersFragment.this);
                    ordersPresenter.getOrderFormData(userId,sessionId,0,page,5);
                    orderForm_xRecyclerView.refreshComplete();
                    break;
                case 3:
                    ordersAdapter.notifyDataSetChanged();
                    orderForm_xRecyclerView.loadMoreComplete();
                    break;
            }
        }
    };

    @Override
    public void onDestroy() {
        super.onDestroy();
        ordersPresenter.onDestroy();
        if(ordersPresenter != null){
            ordersPresenter = null;
        }
    }
}

MVP
M

public class OrdersModel {
    //获取订单数据
    public void getOrderFormData(int userId, String sessionId, int status, int page, int count, final OrdersCallBack ordersCallBack){
        OrdersService ordersService = RectrofitUtil.getInstance().createApi(OrdersService.class);
        Call<OrdersBean> call = ordersService.getOrderFormData(userId, sessionId, status, page, count);
        call.enqueue(new Callback<OrdersBean>() {
            @Override
            public void onResponse(Call<OrdersBean> call, Response<OrdersBean> response) {
                OrdersBean ordersBean = response.body();
                ordersCallBack.onOrdersSuccess(ordersBean);
            }

            @Override
            public void onFailure(Call<OrdersBean> call, Throwable t) {

            }
        });
    }
    //添加订单数据
    public void addOrdersData(int userId, String sessionId, String data,double total,int addressId, final OrdersCallBack ordersCallBack){
        OrdersService ordersService = OkRetrofitUtil.retrofit.create(OrdersService.class);
        Call<CommonBean> call = ordersService.addOrdersData(userId, sessionId, data, total, addressId);
        call.enqueue(new Callback<CommonBean>() {
            @Override
            public void onResponse(Call<CommonBean> call, Response<CommonBean> response) {
                CommonBean commonBean = response.body();
                ordersCallBack.onAddOrdersData(commonBean);
            }

            @Override
            public void onFailure(Call<CommonBean> call, Throwable t) {

            }
        });
    }
}

V

public interface OrdersView {
    void onOrdersShow(OrdersBean ordersBean);
    void onAddOrdersData(CommonBean commonBean);
}

P

public class OrdersPresenter {
    private OrdersView ordersView;
    private final OrdersModel ordersModel;

    public OrdersPresenter(OrdersView ordersView) {
        this.ordersView = ordersView;
        ordersModel = new OrdersModel();
    }
    //获取订单数据
    public void getOrderFormData(int userId,String sessionId,int status,int page,int count){
        ordersModel.getOrderFormData(userId, sessionId, status, page, count, new OrdersCallBack() {
            @Override
            public void onOrdersSuccess(OrdersBean ordersBean) {
                ordersView.onOrdersShow(ordersBean);
            }

            @Override
            public void onAddOrdersData(CommonBean commonBean) {

            }
        });
    }
    //添加订单数据
    public void addOrdersData(int userId,String sessionId,String data,double total,int addressId){
        ordersModel.addOrdersData(userId, sessionId, data, total, addressId, new OrdersCallBack() {
            @Override
            public void onOrdersSuccess(OrdersBean ordersBean) {
            }

            @Override
            public void onAddOrdersData(CommonBean commonBean) {
                ordersView.onAddOrdersData(commonBean);
            }
        });
    }

    public void onDestroy() {
        if(ordersView != null){
            ordersView = null;
        }
    }
}

CALLBACK

public interface OrdersCallBack {
    void onOrdersSuccess(OrdersBean ordersBean);
    void onAddOrdersData(CommonBean commonBean);
}

SERVICE

public interface OrdersService {
    @GET("order/verify/v1/findOrderListByStatus")
    Call<OrdersBean> getOrderFormData(@Header("userId")int userId, @Header("sessionId")String sessionId
                                         , @Query("status")int status, @Query("page")int page, @Query("count")int count);
    @POST("order/verify/v1/createOrder")
    Call<CommonBean> addOrdersData(@Header("userId")int userId, @Header("sessionId")String sessionId
                                    ,@Query("orderInfo")String data,@Query("totalPrice") double totalPrice
                                    ,@Query("addressId")int addressId);
}

Retrofit

public class RectrofitUtil {
    private static RectrofitUtil instance;
    private Retrofit mRetrofit;
    private OkHttpClient okHttpClient = new OkHttpClient();
    public static RectrofitUtil getInstance(){
        if (instance==null){
            instance = new RectrofitUtil();
        }
        return instance;
    }
    private RectrofitUtil(){
        mRetrofit = new Retrofit.Builder()
                .baseUrl("http://172.17.8.100/small/")
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .client(okHttpClient)
                .build();
    }
    public <T> T createApi(Class<T> cls){
        T t = mRetrofit.create(cls);
        return t;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值