IMOrderPageAdapter.java 11.2 KB
package com.chudiangameplay.android.adapter;

import android.content.Context;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.MyOrderInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.interface_.OkHttpCallBack;
import com.chudiangameplay.android.manager.API_HomeManager;
import com.chudiangameplay.android.manager.API_MineManager;
import com.chudiangameplay.android.manager.OrderManager;
import com.chudiangameplay.android.responce.BaseResponce;
import com.chudiangameplay.android.tool.CommToast;
import com.chudiangameplay.android.ui.activity.DaShou_OrderDetailActivity;
import com.chudiangameplay.android.ui.activity.OrderDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class IMOrderPageAdapter extends PagerAdapter {

    private List<MyOrderInfo> orderInfos;
    private Context mContext;
    CommCallBack callBack;

    public IMOrderPageAdapter(Context context, List<MyOrderInfo> orderInfos, CommCallBack callBack) {
        this.mContext = context;
        this.orderInfos = orderInfos;
        this.callBack = callBack;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        final MyOrderInfo orderInfo = orderInfos.get(position);

        View view = View.inflate(mContext, R.layout.item_im_order_pager, null);
        ImageView imageView = view.findViewById(R.id.iv_img);
        TextView tv_name = view.findViewById(R.id.tv_name);
        TextView tv_time = view.findViewById(R.id.tv_time);
        TextView tv_num = view.findViewById(R.id.tv_num);
        RelativeLayout rl_num = view.findViewById(R.id.rl_num);
        RelativeLayout rl_user = view.findViewById(R.id.rl_user);
        RelativeLayout rl_dashou = view.findViewById(R.id.rl_dashou);
        LinearLayout ll_container = view.findViewById(R.id.ll_container);


        GlideUtil.displayImage(mContext, orderInfo.categoryIcon, imageView, R.drawable.ico_default_img_fang);
        tv_name.setText(orderInfo.categoryName);

        try {
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");

            Date date = sdf1.parse(orderInfo.beginTime);

            SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
            //获取今天的日期
            String nowDay = sf.format(new Date());
            String day = sf.format(date);
            if (day.equals(nowDay)) //今天
            {
                SimpleDateFormat sf2 = new SimpleDateFormat("HH:mm");
                tv_time.setText("预约:" + "今天 " + sf2.format(date) + "/" + orderInfo.productAmount + "*" + orderInfo.priceUnit);
            } else {
                tv_time.setText("预约:" + sdf.format(date) + "/" + orderInfo.productAmount + "*" + orderInfo.priceUnit);
            }
        } catch (Exception e) {
            e.printStackTrace();
            tv_time.setText("预约:" + orderInfo.beginTime + "/" + orderInfo.productAmount + "*" + orderInfo.priceUnit);
        }

        if (orderInfos.size() > 1) {
            rl_num.setVisibility(View.VISIBLE);
            tv_num.setText("【" + (position + 1) + "/" + orderInfos.size() + "】");
        } else {
            rl_num.setVisibility(View.GONE);
        }

        //1:下单人,2:接单人
        rl_user.setVisibility(View.GONE);
        rl_dashou.setVisibility(View.GONE);
        if ("1".equals(orderInfo.identity)) {
            rl_user.setVisibility(View.VISIBLE);
            user(view, orderInfo);
        } else if ("2".equals(orderInfo.identity)) {
            rl_dashou.setVisibility(View.VISIBLE);
            dashou(view, orderInfo);
        }

        ll_container.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = null;
                if ("1".equals(orderInfo.identity)) {  // 1:用户
                    intent = new Intent(mContext, OrderDetailActivity.class);
                } else if ("2".equals(orderInfo.identity)) {   //2:打手
                    intent = new Intent(mContext, DaShou_OrderDetailActivity.class);
                }
                intent.putExtra("orderNo", orderInfo.orderNo);
                mContext.startActivity(intent);
            }
        });

        container.addView(view);
        return view;
    }

    @Override
    public int getCount() {
        return orderInfos.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }

    //用户端
    private void user(View view, final MyOrderInfo info) {
        TextView tv_tixingjiedan = view.findViewById(R.id.tv_tixingjiedan);
        TextView tv_querenwancheng = view.findViewById(R.id.tv_querenwancheng);
        TextView tv_lijiyaoyue = view.findViewById(R.id.tv_lijiyaoyue);
        TextView tv_statu_user = view.findViewById(R.id.tv_statu_user);

        tv_tixingjiedan.setVisibility(View.GONE);
        tv_querenwancheng.setVisibility(View.GONE);
        tv_lijiyaoyue.setVisibility(View.GONE);
        tv_statu_user.setVisibility(View.GONE);
        switch (info.status) {
            case "210":    //等待接单
                tv_tixingjiedan.setVisibility(View.VISIBLE);
                break;
            case "220":    //进行中      确认完成
                tv_querenwancheng.setVisibility(View.VISIBLE);
                break;
            case "500":
            case "501":    //待评价     立即评价
            case "600":    //已完成     查看评价
            case "415": //协商完成
            case "416": //协商完成:同意协商
            case "410":  //    仲裁完成:老板胜诉	平台退款用户
            case "420":  //	仲裁完成:协商处理	管理员处理订单一部分用户一部分陪玩师
            case "502":  //	仲裁完成:陪玩师胜诉	管理员判断申诉陪玩师胜诉
                tv_lijiyaoyue.setVisibility(View.VISIBLE);
                break;
            default:
                tv_statu_user.setVisibility(View.VISIBLE);
                tv_statu_user.setText(info.statusStr);
                OrderManager.setOrderStatuText(false, info.status, tv_statu_user);
                break;
        }
        tv_tixingjiedan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                order_remind(mContext, info.orderNo);
            }
        });

        tv_querenwancheng.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                order_finish(info.orderNo);
            }
        });

        tv_lijiyaoyue.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

    }

    //打手端
    private void dashou(View view, final MyOrderInfo info) {
        TextView tv_querenjiedan = view.findViewById(R.id.tv_querenjiedan);
        TextView tv_lijikaishi = view.findViewById(R.id.tv_lijikaishi);
        TextView tv_statu_dashou = view.findViewById(R.id.tv_statu_dashou);

        tv_querenjiedan.setVisibility(View.GONE);
        tv_lijikaishi.setVisibility(View.GONE);
        tv_statu_dashou.setVisibility(View.GONE);
        switch (info.status) {
            case "210":    //等待接单
                tv_querenjiedan.setVisibility(View.VISIBLE);
                break;
            case "213":    //等待开始
                tv_lijikaishi.setVisibility(View.VISIBLE);
                break;
            default:
                tv_statu_dashou.setVisibility(View.VISIBLE);
                tv_statu_dashou.setText(info.statusStr);
                OrderManager.setOrderStatuText_dashou(false, info.status, tv_statu_dashou);
                break;
        }
        tv_querenjiedan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dashou_receiveorder(info.orderNo);
            }
        });

        tv_lijikaishi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dashou_kaishifuwu(info.orderNo);
            }
        });
    }


    //提醒接单
    public static void order_remind(final Context mContext, String orderNo) {
        API_HomeManager.order_remind(mContext, orderNo, new OkHttpCallBack() {
            @Override
            public void onSuccess(BaseResponce baseResponce) {
                CommToast.showToast(mContext, baseResponce.msg);
            }

            @Override
            public void onFailure(BaseResponce baseResponce) {

            }
        });
    }

    //完成订单
    private void order_finish(String orderNo) {
        API_HomeManager.order_finish(mContext, orderNo, new OkHttpCallBack() {
            @Override
            public void onSuccess(BaseResponce baseResponce) {
                CommToast.showToast(mContext, baseResponce.msg);
                if (BaseResponce.Status_Success.equals(baseResponce.status)) {
                    if (callBack != null) {
                        callBack.onResult(null);
                    }
                }
            }

            @Override
            public void onFailure(BaseResponce baseResponce) {

            }
        });
    }


    //确认接单
    private void dashou_receiveorder(String orderNo) {
        API_MineManager.dashou_receiveorder(mContext, orderNo, new OkHttpCallBack() {
            @Override
            public void onSuccess(BaseResponce baseResponce) {
                if (BaseResponce.Status_Success.equals(baseResponce.status)) {
                    //接单成功
                    CommToast.showToast(mContext, "接单成功");
                    if (callBack != null) {
                        callBack.onResult(null);
                    }
                }
            }

            @Override
            public void onFailure(BaseResponce baseResponce) {

            }
        });
    }

    //开始服务
    private void dashou_kaishifuwu(String orderNo) {
        API_MineManager.dashou_kaishifuwu(mContext, orderNo, new OkHttpCallBack() {
            @Override
            public void onSuccess(BaseResponce baseResponce) {
                if (BaseResponce.Status_Success.equals(baseResponce.status)) {
                    //开始服务
                    CommToast.showToast(mContext, "已开始服务");
                    if (callBack != null) {
                        callBack.onResult(null);
                    }
                }
            }

            @Override
            public void onFailure(BaseResponce baseResponce) {

            }
        });
    }
}