Commit 8c0c84cc authored by jianglx's avatar jianglx

优化待支付订单倒计时

parent 55f9810e
...@@ -2,6 +2,7 @@ package com.xxfc.rv; ...@@ -2,6 +2,7 @@ package com.xxfc.rv;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
...@@ -21,10 +22,12 @@ import com.ruiwenliu.wrapper.util.listener.SwitchFragment; ...@@ -21,10 +22,12 @@ import com.ruiwenliu.wrapper.util.listener.SwitchFragment;
import com.ruiwenliu.wrapper.weight.CustomScrollViewPager; import com.ruiwenliu.wrapper.weight.CustomScrollViewPager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.camp.CampFragment; import com.rv.camp.CampFragment;
import com.rv.component.utils.Cooker;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.presenter.CommonPresenter; import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.main.adapter.TabAdapter; import com.rv.home.rv.module.ui.main.adapter.TabAdapter;
import com.rv.home.rv.module.ui.main.home.HomeFragment; import com.rv.home.rv.module.ui.main.home.HomeFragment;
import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean;
import com.rv.rvmine.MineFragment; import com.rv.rvmine.MineFragment;
import com.rv.tourism.R2; import com.rv.tourism.R2;
import com.rv.tourism.TourismFragment; import com.rv.tourism.TourismFragment;
...@@ -104,6 +107,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -104,6 +107,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
checkVersion(); checkVersion();
getEffectiveTime();
} }
@Override @Override
...@@ -124,6 +128,14 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -124,6 +128,14 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
} }
} }
break; break;
case 1:
EffectiveTimeBean bean = (EffectiveTimeBean) result;
if (bean != null && bean.isRel() && bean.getData() != null) {
Cooker.save(getApplicationContext(), "actRent", bean.getData().getActRent());
Cooker.save(getApplicationContext(), "actTour", bean.getData().getActTour());
Cooker.save(getApplicationContext(), "insurePrice", bean.getData().getInsurePrice());
}
break;
default: default:
break; break;
} }
...@@ -230,6 +242,10 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -230,6 +242,10 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
} }
} }
private void getEffectiveTime() {
mPresenter.getData(1, ApiConfig.HTTP_URL_EFFECTIVE_TIME, EffectiveTimeBean.class, false);
}
/** /**
* 退出APP * 退出APP
*/ */
......
package com.rv.component.utils;
import android.content.Context;
import android.content.SharedPreferences;
public class Cooker {
private final static String COOK_FILE = "cooker";
private static SharedPreferences preferences;
private static SharedPreferences getPreference(Context context) {
if (preferences == null) {
preferences = context.getSharedPreferences(COOK_FILE, Context.MODE_PRIVATE);
}
return preferences;
}
public static void save(Context context, String key, String s) {
getPreference(context).edit().putString(key, s).commit();
}
public static void save(Context context, String key, int i) {
getPreference(context).edit().putInt(key, i).commit();
}
public static void save(Context context, String key, long l) {
getPreference(context).edit().putLong(key, l).commit();
}
public static void save(Context context, String key, boolean b) {
getPreference(context).edit().putBoolean(key, b).commit();
}
public static void save(Context context, String key, float f) {
getPreference(context).edit().putFloat(key, f).commit();
}
public static String getStringValue(Context context, String key) {
return getStringValue(context, key, "");
}
public static String getStringValue(Context context, String key, String def) {
return getPreference(context).getString(key, def);
}
public static int getIntValue(Context context, String key) {
return getIntValue(context, key, -1);
}
public static int getIntValue(Context context, String key, int def) {
return getPreference(context).getInt(key, def);
}
public static long getLongValue(Context context, String key) {
return getLongValue(context, key, 0l);
}
public static long getLongValue(Context context, String key, long def) {
return getPreference(context).getLong(key, def);
}
public static float getFloatValue(Context context, String key) {
return getFloatValue(context, key, 0f);
}
public static float getFloatValue(Context context, String key, float def) {
return getPreference(context).getFloat(key, def);
}
public static boolean getBooleanValue(Context context, String key) {
return getBooleanValue(context, key, false);
}
public static boolean getBooleanValue(Context context, String key, boolean def) {
return getPreference(context).getBoolean(key, def);
}
}
...@@ -126,7 +126,7 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -126,7 +126,7 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
@Override @Override
protected void loadData(Bundle savedInstanceState) { protected void loadData(Bundle savedInstanceState) {
getEffectiveTime();
} }
private Handler handler = new Handler(Looper.getMainLooper()) { private Handler handler = new Handler(Looper.getMainLooper()) {
...@@ -177,24 +177,6 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -177,24 +177,6 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
case 1: case 1:
pay((OrderPayBean) result); pay((OrderPayBean) result);
break; break;
case 2:
EffectiveTimeBean bean = (EffectiveTimeBean) result;
if (bean != null && bean.isRel() && bean.getData() != null) {
effTime = bean.getData().getActRent();
startTime();
}
break;
}
}
/******
* 开始计时
* @param
*/
private void startTime() {
if (effTime != 0l && mAdapter != null && mAdapter.getData() != null) {
mAdapter.setEffTime(effTime);
} }
} }
...@@ -230,10 +212,6 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements ...@@ -230,10 +212,6 @@ public class ForPaymentFragment extends BaseFragment<CommonPresenter> implements
} }
} }
private void getEffectiveTime() {
mPresenter.getData(2, ApiConfig.HTTP_URL_EFFECTIVE_TIME, EffectiveTimeBean.class, false);
}
private void orderData(int page) { private void orderData(int page) {
Map<String, Object> headMap = new LinkedHashMap<>(); Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null) if (OkGoUtil.getToken() != null)
......
...@@ -8,9 +8,12 @@ import com.chad.library.adapter.base.BaseMultiItemQuickAdapter; ...@@ -8,9 +8,12 @@ import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.entity.MultiItemEntity; import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.ruiwenliu.wrapper.util.BaseGlideHolder; import com.ruiwenliu.wrapper.util.BaseGlideHolder;
import com.ruiwenliu.wrapper.util.TimeManager; import com.ruiwenliu.wrapper.util.TimeManager;
import com.rv.component.utils.Cooker;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean; import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean;
import com.rv.home.rv.module.ui.main.home.order.view.MyTimerView; import com.rv.home.rv.module.ui.main.home.order.view.MyTimerView;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -22,10 +25,10 @@ import java.util.List; ...@@ -22,10 +25,10 @@ import java.util.List;
*/ */
public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity, BaseGlideHolder> { public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity, BaseGlideHolder> {
public static final int TYPE_FOR_PAYMENT = 1; //1--租车;2--旅游 public static final int TYPE_FOR_PAYMENT = 1; //1--租车;2--旅游
public static final int TYPE_TO_TRAVEL = 2; public static final int TYPE_TO_TRAVEL = 2;
public static final int TYPE_TO_MEMBER = 3; public static final int TYPE_TO_MEMBER = 3;
private long effTime = 0l;
public ForPaymentAdapter(List<MultiItemEntity> data) { public ForPaymentAdapter(List<MultiItemEntity> data) {
super(data); super(data);
...@@ -38,17 +41,13 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity ...@@ -38,17 +41,13 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity
protected void convert(BaseGlideHolder helper, MultiItemEntity item) { protected void convert(BaseGlideHolder helper, MultiItemEntity item) {
OrderListBean.DataBeanX.DataBean dataBean; OrderListBean.DataBeanX.DataBean dataBean;
try {
setTimes(helper, (OrderListBean.DataBeanX.DataBean) item);
} catch (Exception e) {
e.printStackTrace();
}
switch (helper.getItemViewType()) { switch (helper.getItemViewType()) {
case TYPE_FOR_PAYMENT: case TYPE_FOR_PAYMENT:
dataBean = (OrderListBean.DataBeanX.DataBean) item; dataBean = (OrderListBean.DataBeanX.DataBean) item;
if (dataBean == null) { if (dataBean == null) {
return; return;
} }
setTimes(Cooker.getLongValue(mContext, "actRent"), helper, (OrderListBean.DataBeanX.DataBean) item);
helper.setText(R.id.tv_order_time, String.format("%1$s%2$s", mContext.getString(R.string.rv_order_time), dataBean.getCrtTime())); helper.setText(R.id.tv_order_time, String.format("%1$s%2$s", mContext.getString(R.string.rv_order_time), dataBean.getCrtTime()));
if (dataBean.getOrderRentVehicleDetail() != null && dataBean.getOrderRentVehicleDetail().getStart_city_name() != null) { if (dataBean.getOrderRentVehicleDetail() != null && dataBean.getOrderRentVehicleDetail().getStart_city_name() != null) {
helper.setText(R.id.tv_city, dataBean.getOrderRentVehicleDetail().getStart_city_name()); helper.setText(R.id.tv_city, dataBean.getOrderRentVehicleDetail().getStart_city_name());
...@@ -75,6 +74,7 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity ...@@ -75,6 +74,7 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity
if (dataBean.getOrderTourDetail() == null) { if (dataBean.getOrderTourDetail() == null) {
return; return;
} }
setTimes(Cooker.getLongValue(mContext, "actTour"), helper, (OrderListBean.DataBeanX.DataBean) item);
helper.setText(R.id.tv_order_time, String.format("%1$s%2$s", mContext.getString(R.string.rv_order_time), dataBean.getCrtTime())); helper.setText(R.id.tv_order_time, String.format("%1$s%2$s", mContext.getString(R.string.rv_order_time), dataBean.getCrtTime()));
helper.setText(R.id.tv_city, dataBean.getOrderTourDetail().getStartCityName()); helper.setText(R.id.tv_city, dataBean.getOrderTourDetail().getStartCityName());
helper.loadRoundImage(mContext, dataBean.getPicture(), (ImageView) helper.getView(R.id.iv_goods), 10); helper.loadRoundImage(mContext, dataBean.getPicture(), (ImageView) helper.getView(R.id.iv_goods), 10);
...@@ -101,33 +101,38 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity ...@@ -101,33 +101,38 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity
helper.setText(R.id.tv_price, String.format("¥%1$s", dataBean.getOrderAmount())); helper.setText(R.id.tv_price, String.format("¥%1$s", dataBean.getOrderAmount()));
helper.setText(R.id.tv_member_pay, mContext.getString(R.string.rv_to_pay_for)); helper.setText(R.id.tv_member_pay, mContext.getString(R.string.rv_to_pay_for));
helper.addOnClickListener(R.id.tv_member_pay); helper.addOnClickListener(R.id.tv_member_pay);
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment));
break; break;
} }
} }
private void setTimes(BaseGlideHolder helper, OrderListBean.DataBeanX.DataBean bean) throws Exception { private void setTimes(long effTime, BaseGlideHolder helper, OrderListBean.DataBeanX.DataBean bean) {
if (bean != null) { if (bean != null) {
String crtStr = bean.getCrtTime(); String crtStr = bean.getCrtTime();
if (!TextUtils.isEmpty(crtStr)) { if (!TextUtils.isEmpty(crtStr)) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse(crtStr); try {
long remain = effTime - (System.currentTimeMillis() - date.getTime()); Date date = format.parse(crtStr);
if (remain <= 0) { long remain = effTime - (System.currentTimeMillis() - date.getTime());
helper.setText(R.id.tv_order_state, mContext.getString(R.string.tv_order_cancel)); if (remain <= 0) {
switch (bean.getType()) { helper.setText(R.id.tv_order_state, mContext.getString(R.string.tv_order_cancel));
case TYPE_FOR_PAYMENT: switch (bean.getType()) {
helper.itemView.findViewById(R.id.tv_process).setVisibility(View.GONE); case TYPE_FOR_PAYMENT:
break; helper.itemView.findViewById(R.id.tv_process).setVisibility(View.GONE);
case TYPE_TO_TRAVEL: break;
helper.itemView.findViewById(R.id.tv_camp_process).setVisibility(View.GONE); case TYPE_TO_TRAVEL:
break; helper.itemView.findViewById(R.id.tv_camp_process).setVisibility(View.GONE);
case TYPE_TO_MEMBER: break;
helper.itemView.findViewById(R.id.tv_member_pay).setVisibility(View.GONE); case TYPE_TO_MEMBER:
break; helper.itemView.findViewById(R.id.tv_member_pay).setVisibility(View.GONE);
break;
}
} else {
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment));
((MyTimerView) helper.itemView.findViewById(R.id.tv_remain_time)).setTime(effTime, date.getTime(), timerListener);
} }
} else { } catch (ParseException e) {
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment)); e.printStackTrace();
((MyTimerView) helper.itemView.findViewById(R.id.tv_remain_time)).setTime(effTime, date.getTime(), timerListener);
} }
} }
} }
...@@ -139,15 +144,6 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity ...@@ -139,15 +144,6 @@ public class ForPaymentAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity
notifyDataSetChanged(); notifyDataSetChanged();
} }
/******
* 设置失效时间
* @param effTime
*/
public void setEffTime(long effTime) {
this.effTime = effTime;
notifyDataSetChanged();
}
public MyTimerView.TimerListener timerListener = new MyTimerView.TimerListener() { public MyTimerView.TimerListener timerListener = new MyTimerView.TimerListener() {
@Override @Override
public void onTimeFinish() { public void onTimeFinish() {
......
package com.rv.home.rv.module.ui.main.home.order.adapter; package com.rv.home.rv.module.ui.main.home.order.adapter;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter; import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
import com.chad.library.adapter.base.entity.MultiItemEntity; import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.ruiwenliu.wrapper.util.BaseGlideHolder; import com.ruiwenliu.wrapper.util.BaseGlideHolder;
import com.ruiwenliu.wrapper.util.TimeManager; import com.ruiwenliu.wrapper.util.TimeManager;
import com.rv.component.utils.Cooker;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.R2; import com.rv.home.R2;
import com.rv.home.rv.module.ui.main.home.order.bean.ForPaymentBean; import com.rv.home.rv.module.ui.main.home.order.bean.ForPaymentBean;
import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean; import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean;
import com.rv.home.rv.module.ui.main.home.order.bean.ToTravelBean; import com.rv.home.rv.module.ui.main.home.order.bean.ToTravelBean;
import com.rv.home.rv.module.ui.main.home.order.view.MyTimerView;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -80,6 +86,7 @@ public class OrderListAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity, ...@@ -80,6 +86,7 @@ public class OrderListAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity,
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment)); helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment));
helper.setText(R.id.tv_process, mContext.getString(R.string.rv_to_pay_for)); helper.setText(R.id.tv_process, mContext.getString(R.string.rv_to_pay_for));
helper.setVisible(R.id.tv_process, true); helper.setVisible(R.id.tv_process, true);
setTimes(Cooker.getLongValue(mContext, "actRent"), helper, (OrderListBean.DataBeanX.DataBean) item);
break; break;
case 4: case 4:
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_to_travel)); helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_to_travel));
...@@ -145,6 +152,7 @@ public class OrderListAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity, ...@@ -145,6 +152,7 @@ public class OrderListAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity,
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment)); helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment));
helper.setText(R.id.tv_camp_process, mContext.getString(R.string.rv_to_pay_for)); helper.setText(R.id.tv_camp_process, mContext.getString(R.string.rv_to_pay_for));
helper.setVisible(R.id.tv_camp_process, true); helper.setVisible(R.id.tv_camp_process, true);
setTimes(Cooker.getLongValue(mContext, "actTour"), helper, (OrderListBean.DataBeanX.DataBean) item);
break; break;
case 4: case 4:
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_to_travel)); helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_to_travel));
...@@ -228,4 +236,43 @@ public class OrderListAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity, ...@@ -228,4 +236,43 @@ public class OrderListAdapter extends BaseMultiItemQuickAdapter<MultiItemEntity,
notifyDataSetChanged(); notifyDataSetChanged();
} }
private void setTimes(long effTime, BaseGlideHolder helper, OrderListBean.DataBeanX.DataBean bean) {
if (bean != null) {
String crtStr = bean.getCrtTime();
if (!TextUtils.isEmpty(crtStr)) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = format.parse(crtStr);
long remain = effTime - (System.currentTimeMillis() - date.getTime());
if (remain <= 0) {
helper.setText(R.id.tv_order_state, mContext.getString(R.string.tv_order_cancel));
switch (bean.getType()) {
case TYPE_FOR_PAYMENT:
helper.itemView.findViewById(R.id.tv_process).setVisibility(View.GONE);
break;
case TYPE_TO_TRAVEL:
helper.itemView.findViewById(R.id.tv_camp_process).setVisibility(View.GONE);
break;
case TYPE_TO_MEMBER:
helper.itemView.findViewById(R.id.tv_member_pay).setVisibility(View.GONE);
break;
}
} else {
helper.setText(R.id.tv_order_state, mContext.getString(R.string.rv_order_for_payment));
((MyTimerView) helper.itemView.findViewById(R.id.tv_remain_time)).setTime(effTime, date.getTime(), timerListener);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
}
public MyTimerView.TimerListener timerListener = new MyTimerView.TimerListener() {
@Override
public void onTimeFinish() {
notifyDataSetChanged();
}
};
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment