Commit 26abe468 authored by linfeng's avatar linfeng

购房车和bug修复

parent 1fcc86d0
...@@ -49,4 +49,10 @@ public final class Constance { ...@@ -49,4 +49,10 @@ public final class Constance {
public static final String ACTIVITY_URL_CARCOUPON="/xxrv/coupon/CarCouponActivity"; public static final String ACTIVITY_URL_CARCOUPON="/xxrv/coupon/CarCouponActivity";
public static final String ACTIVITY_URL_WALLET="/wallet/activity/WalletActivity"; public static final String ACTIVITY_URL_WALLET="/wallet/activity/WalletActivity";
public static final String ACTIVITY_URL_CARPURCHASELIST="/carpurchase/activity/CarPurchaseListActivity";
public static final String ACTIVITY_URL_DETAILCARPURCHASE="/carpurchase/activity/DetailCarPurchaseActivity";
public static final String ACTIVITY_URL_SHOPSHOW="/main/home/ShopShowActivity";
} }
...@@ -8,8 +8,8 @@ android { ...@@ -8,8 +8,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 116 versionCode 119
versionName "1.1.6" versionName "1.1.9"
multiDexEnabled true multiDexEnabled true
//新版Gradle 是 implementation 为了兼容compile,写上这句话 //新版Gradle 是 implementation 为了兼容compile,写上这句话
......
...@@ -18,9 +18,17 @@ public class OrderPriceDetailAdapter extends BaseQuickAdapter<OrderPriceDetailBe ...@@ -18,9 +18,17 @@ public class OrderPriceDetailAdapter extends BaseQuickAdapter<OrderPriceDetailBe
@Override @Override
protected void convert(BaseViewHolder helper, OrderPriceDetailBean.ChildrenBean item) { protected void convert(BaseViewHolder helper, OrderPriceDetailBean.ChildrenBean item) {
helper.setText(R.id.tv_name,item.getKey()); helper.setText(R.id.tv_name,item.getKey());
helper.setText(R.id.tv_attr,item.getDetail()); helper.setText(R.id.tv_attr,item.getDetail());
helper.setText(R.id.tv_price,item.getVal()); helper.setText(R.id.tv_price,item.getVal());
if ("优惠券".equals(item.getKey())){
helper.setTextColor(R.id.tv_name, helper.itemView.getContext().getResources().getColor(R.color.colorAuxiliaryRed));
helper.setTextColor(R.id.tv_price, helper.itemView.getContext().getResources().getColor(R.color.colorAuxiliaryRed));
}else {
helper.setTextColor(R.id.tv_name, helper.itemView.getContext().getResources().getColor(R.color.textMain));
helper.setTextColor(R.id.tv_price, helper.itemView.getContext().getResources().getColor(R.color.textMain));
}
} }
} }
...@@ -741,6 +741,22 @@ public class DateUtils { ...@@ -741,6 +741,22 @@ public class DateUtils {
} }
/**
* 将日期格式成yyyy-MM-dd HH:mm
*
* @param date 将日期转换成yyyy-MM-dd HH:mm
* @return yyyy-MM-dd
*/
public static String formatDate55(Date date) {
String day = "";
try {
day = sdf7.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return day;
}
/** /**
......
...@@ -104,7 +104,6 @@ public class QuestionAndAnswerFragment extends BaseFragment<DiscoveryPresenter> ...@@ -104,7 +104,6 @@ public class QuestionAndAnswerFragment extends BaseFragment<DiscoveryPresenter>
} }
} }
}); });
} }
private void initRxbus() { private void initRxbus() {
...@@ -178,7 +177,6 @@ public class QuestionAndAnswerFragment extends BaseFragment<DiscoveryPresenter> ...@@ -178,7 +177,6 @@ public class QuestionAndAnswerFragment extends BaseFragment<DiscoveryPresenter>
mPresenter.getData( DiscoveryApi.HOST,0, DiscoveryApi.DISCOVERY_IMQUESTION_LIST, DiscoveryAskBean.class, map,headMap, page == 1 ? false : false); mPresenter.getData( DiscoveryApi.HOST,0, DiscoveryApi.DISCOVERY_IMQUESTION_LIST, DiscoveryAskBean.class, map,headMap, page == 1 ? false : false);
} }
private void processData(DiscoveryAskBean bean) { private void processData(DiscoveryAskBean bean) {
if (mPage == 1) { if (mPage == 1) {
countPage = bean.getData().getTotalPage(); countPage = bean.getData().getTotalPage();
......
...@@ -44,6 +44,7 @@ dependencies { ...@@ -44,6 +44,7 @@ dependencies {
api project(':plugin_search') api project(':plugin_search')
api project(':plugin_calendar') api project(':plugin_calendar')
api project(':plugin_coupon') api project(':plugin_coupon')
api project(':plugin_carpurchase')
api project(':RvWrapper') api project(':RvWrapper')
// api project(':RvTravel') // api project(':RvTravel')
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4' annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
......
...@@ -92,4 +92,9 @@ public class ApiConfig { ...@@ -92,4 +92,9 @@ public class ApiConfig {
public static String HTTP_URL_INVITE_LIST = RvFrameConfig.HOST + "/api/admin/relation/pages"; public static String HTTP_URL_INVITE_LIST = RvFrameConfig.HOST + "/api/admin/relation/pages";
public static String HTTP_URL_CONSUME_LIST = RvFrameConfig.HOST + "/api/admin/walletDetail/page"; public static String HTTP_URL_CONSUME_LIST = RvFrameConfig.HOST + "/api/admin/walletDetail/page";
/**
* 用户收益
*/
public static String HTTP_URL_USER_PROFIT = RvFrameConfig.HOST + "/api/admin/app/user/profit";
} }
...@@ -21,14 +21,20 @@ import android.widget.ProgressBar; ...@@ -21,14 +21,20 @@ import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.frame.base.bus.IDCardCertificationEvent; import com.frame.base.bus.IDCardCertificationEvent;
import com.frame.base.bus.Observer; import com.frame.base.bus.Observer;
import com.frame.base.bus.PaymentFailedEvent;
import com.frame.base.bus.PaymentSuccessfulEvent;
import com.frame.base.bus.RxBus; import com.frame.base.bus.RxBus;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.bean.BeanUserInfo; import com.ruiwenliu.wrapper.bean.BeanUserInfo;
import com.ruiwenliu.wrapper.bean.UserInfoBean;
import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.util.um.CustomShareListener; import com.ruiwenliu.wrapper.util.um.CustomShareListener;
import com.ruiwenliu.wrapper.util.um.ShareManager; import com.ruiwenliu.wrapper.util.um.ShareManager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
...@@ -45,6 +51,9 @@ import com.umeng.socialize.shareboard.SnsPlatform; ...@@ -45,6 +51,9 @@ import com.umeng.socialize.shareboard.SnsPlatform;
import com.umeng.socialize.utils.ShareBoardlistener; import com.umeng.socialize.utils.ShareBoardlistener;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import java.util.LinkedHashMap;
import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -117,6 +126,24 @@ public class CarDetailActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -117,6 +126,24 @@ public class CarDetailActivity extends BaseStatusActivity<CommonPresenter> {
startActivity(ConfirmOrderActivity.getIntent(mActivity, dataBean, mCarBean, getIntent().getStringExtra("startTime"), getIntent().getStringExtra("endTime"))); startActivity(ConfirmOrderActivity.getIntent(mActivity, dataBean, mCarBean, getIntent().getStringExtra("startTime"), getIntent().getStringExtra("endTime")));
} }
}); });
RxBus.tObservable(PaymentSuccessfulEvent.class)
.observeOn(Schedulers.newThread())
.subscribe(new Observer<PaymentSuccessfulEvent>(disposable) {
@Override
public void onNext(PaymentSuccessfulEvent event) {
getUserData();
}
});
RxBus.tObservable(PaymentFailedEvent.class)
.observeOn(Schedulers.newThread())
.subscribe(new Observer<PaymentFailedEvent>(disposable) {
@Override
public void onNext(PaymentFailedEvent event) {
getUserData();
}
});
} }
@Override @Override
...@@ -124,9 +151,32 @@ public class CarDetailActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -124,9 +151,32 @@ public class CarDetailActivity extends BaseStatusActivity<CommonPresenter> {
} }
/**
* 获取用户信息请求
*/
private void getUserData() {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null) {
headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.getDataHead(RvFrameConfig.ADMIN_POST, 0, ApiConfig.HTTP_URL_APP_USER_INFO, UserInfoBean.class, headMap, false);
}
}
@Override @Override
public void onShowResult(int requestType, BaseBean result) { public void onShowResult(int requestType, BaseBean result) {
switch (requestType){
case 0:
userInfoData((UserInfoBean) result);
break;
}
}
private void userInfoData(UserInfoBean infoBean) {
if (infoBean != null) {
UserInfoBean.UserInfo info = infoBean.getData();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_USERINFO, JSON.toJSONString(info)).commit();
}
} }
@Override @Override
......
...@@ -163,11 +163,12 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -163,11 +163,12 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
private double oldCarAmount;// private double oldCarAmount;//
private List<CouponBean.DataBean> couponDataList;//优惠券数据 private List<CouponBean.DataBean> couponDataList;//优惠券数据
private int selectPosition;//新选中
private int oldSelectPosition;//上一次选中
private double couponAmount = 0; //优惠券金额 private double couponAmount = 0; //优惠券金额
private String status = "1";// 优惠券状态 private String status = "1";// 优惠券状态
private List<String> couponIdList = new ArrayList<>(); //选中优惠券
public static Intent getIntent(Context context, OrderDataBean bean, CarTypeListBean.DataBeanX.DataBean carBean, String startTime, String endTime) { public static Intent getIntent(Context context, OrderDataBean bean, CarTypeListBean.DataBeanX.DataBean carBean, String startTime, String endTime) {
return new Intent(context, ConfirmOrderActivity.class) return new Intent(context, ConfirmOrderActivity.class)
.putExtra("bean", bean) .putExtra("bean", bean)
...@@ -291,18 +292,36 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -291,18 +292,36 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
drivingType = 2; drivingType = 2;
rbXinDriving.setChecked(false); rbXinDriving.setChecked(false);
rbUserDriving.setChecked(true); rbUserDriving.setChecked(true);
dataBean.setDriverType(2);
if (drivingListBean != null) { if (drivingListBean != null) {
llAddDriving.setVisibility(View.VISIBLE); llAddDriving.setVisibility(View.VISIBLE);
} }
getPayMoney(); getPayMoney();
break; break;
case 133: case 133:
selectPosition = data.getIntExtra("position", 0);
if (couponDataList != null && couponDataList.size() > 0) { List<CouponBean.DataBean> selectCouponList = JSON.parseArray(data.getStringExtra("selectCoupon"), CouponBean.DataBean.class);
dataBean.setTickerNos(couponDataList.get(selectPosition).getTickerNo()); List<CouponBean.DataBean> resultCouponList = JSON.parseArray(data.getStringExtra("resultCouponList"), CouponBean.DataBean.class);
couponAmount = couponDataList.get(selectPosition).getUsedAmount(); if (resultCouponList != null && resultCouponList.size() > 0) {
tvCouponAmount.setText("-¥" + couponAmount); couponDataList = resultCouponList;
} }
couponIdList.clear();
double couponPrice = 0;
if (selectCouponList != null && selectCouponList.size() > 0) {
for (int i = 0; i < selectCouponList.size(); i++) {
couponIdList.add(selectCouponList.get(i).getTickerNo());
couponPrice = +couponPrice + selectCouponList.get(i).getUsedAmount();
}
}
couponAmount = couponPrice;
tvCouponAmount.setText("-¥" + couponAmount);
// selectPosition = data.getIntExtra("position", 0);
// if (couponDataList != null && couponDataList.size() > 0) {
// dataBean.setTickerNos(couponDataList.get(selectPosition).getTickerNo());
// couponAmount = couponDataList.get(selectPosition).getUsedAmount();
//
// }
getPayMoney(); getPayMoney();
break; break;
} }
...@@ -348,7 +367,12 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -348,7 +367,12 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
} }
getPayMoney(); getPayMoney();
} else if (id == R.id.tv_contract_agreement) { } else if (id == R.id.tv_contract_agreement) {
startActivity(WebActivity.getIntent(mActivity, mActivity.getString(R.string.rv_contract_agreement), ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)); ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", mActivity.getString(R.string.rv_contract_agreement))
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 25)
.navigation();
// startActivity(WebActivity.getIntent(mActivity, mActivity.getString(R.string.rv_contract_agreement), ApiConfig.HTTP_URL_CAR_TYPE_NOTICE));
} else if (id == R.id.tv_service_fee_show) { } else if (id == R.id.tv_service_fee_show) {
if (serviceFeeShow) { if (serviceFeeShow) {
tvLayoutServiceFee.setVisibility(View.VISIBLE); tvLayoutServiceFee.setVisibility(View.VISIBLE);
...@@ -395,11 +419,6 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -395,11 +419,6 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
.navigation(); .navigation();
} else if (id == R.id.rl_item_select_coupon) { } else if (id == R.id.rl_item_select_coupon) {
if (couponDataList != null) { if (couponDataList != null) {
if (couponDataList.size() > 0 && "1".equals(status)) {
couponDataList.get(oldSelectPosition).setCheck(false);
couponDataList.get(selectPosition).setCheck(true);
oldSelectPosition = selectPosition;
}
//优惠券 //优惠券
ARouter.getInstance() ARouter.getInstance()
.build(Constance.ACTIVITY_URL_CARCOUPON) .build(Constance.ACTIVITY_URL_CARCOUPON)
...@@ -468,6 +487,9 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -468,6 +487,9 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
Map<String, Object> headMap = new LinkedHashMap<>(); Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null) if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken()); headMap.put("Authorization", OkGoUtil.getToken());
String ids = couponIdList.toString().replace("[", "").replace("]", "").replaceAll(" ", "");
dataBean.setTickerNos(ids);
Log.i("confirmorderactivity", "createOrder: " + dataBean.toString()); Log.i("confirmorderactivity", "createOrder: " + dataBean.toString());
mPresenter.postBodyData(RvFrameConfig.VEHICLE_ORDER, payType, ApiConfig.HTTP_URL_CONFIRM_ORDER, ConfirmOrderBean.class, dataBean, headMap, true); mPresenter.postBodyData(RvFrameConfig.VEHICLE_ORDER, payType, ApiConfig.HTTP_URL_CONFIRM_ORDER, ConfirmOrderBean.class, dataBean, headMap, true);
} }
...@@ -504,6 +526,7 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -504,6 +526,7 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
* @param couponBean * @param couponBean
*/ */
private void couponData(CouponBean couponBean) { private void couponData(CouponBean couponBean) {
if (couponBean.getData() != null && couponBean.getData().size() > 0) { if (couponBean.getData() != null && couponBean.getData().size() > 0) {
couponDataList = couponBean.getData(); couponDataList = couponBean.getData();
status = couponDataList.get(0).getStatus(); status = couponDataList.get(0).getStatus();
...@@ -512,16 +535,18 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -512,16 +535,18 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
dataBean.setTickerNos(couponDataList.get(0).getTickerNo()); dataBean.setTickerNos(couponDataList.get(0).getTickerNo());
couponAmount = couponDataList.get(0).getUsedAmount(); couponAmount = couponDataList.get(0).getUsedAmount();
tvCouponAmount.setText("-¥" + couponDataList.get(0).getUsedAmount()); tvCouponAmount.setText("-¥" + couponDataList.get(0).getUsedAmount());
couponDataList.get(0).setCheck(true);
couponIdList.add(couponDataList.get(0).getTickerNo());
getPayMoney(); getPayMoney();
} else { } else {
dataBean.setTickerNos(""); dataBean.setTickerNos("");
couponAmount =0; couponAmount = 0;
tvCouponAmount.setText("暂无可用优惠券"); tvCouponAmount.setText("暂无可用优惠券");
getPayMoney(); getPayMoney();
} }
} else { } else {
dataBean.setTickerNos(""); dataBean.setTickerNos("");
couponAmount =0; couponAmount = 0;
tvCouponAmount.setText("暂无优惠券"); tvCouponAmount.setText("暂无优惠券");
} }
} }
...@@ -566,7 +591,7 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -566,7 +591,7 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
dataBean.setRentFreeDay(0); dataBean.setRentFreeDay(0);
isMemberType = 0; isMemberType = 0;
} }
couponAmount =0; couponAmount = 0;
getPayMoney(); getPayMoney();
} }
}); });
...@@ -629,10 +654,10 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -629,10 +654,10 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
childrenBeanList.add(childrenBean4); childrenBeanList.add(childrenBean4);
} }
if (carAmount >couponAmount) { //租车金额大于 优惠券 if (carAmount > couponAmount) { //租车金额大于 优惠券
payMoney = payMoney - couponAmount;//优惠券 payMoney = payMoney - couponAmount;//优惠券
}else { } else {
payMoney = payMoney -carAmount; //不用支付租车钱 payMoney = payMoney - carAmount; //不用支付租车钱
} }
tvPayMoney.setText(String.format("¥%1$s", new BigDecimal(payMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue())); tvPayMoney.setText(String.format("¥%1$s", new BigDecimal(payMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()));
...@@ -644,6 +669,14 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -644,6 +669,14 @@ public class ConfirmOrderActivity extends BaseStatusActivity<CommonPresenter> {
childrenBean.setKey("租房车押金"); childrenBean.setKey("租房车押金");
childrenBean.setVal("¥" + priceBean.getData().getDeposit()); childrenBean.setVal("¥" + priceBean.getData().getDeposit());
childrenBeanList.add(childrenBean); childrenBeanList.add(childrenBean);
if (couponAmount > 0) {
OrderPriceDetailBean.ChildrenBean childrenBean5 = new OrderPriceDetailBean.ChildrenBean();
childrenBean5.setKey("优惠券");
childrenBean5.setVal("-¥" + couponAmount);
childrenBeanList.add(childrenBean5);
}
orderPriceDetailBean.setChildren(childrenBeanList); orderPriceDetailBean.setChildren(childrenBeanList);
if (carAmount != oldCarAmount) { if (carAmount != oldCarAmount) {
......
...@@ -346,6 +346,16 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser ...@@ -346,6 +346,16 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser
.navigation(); .navigation();
} else if ("1".equals(hotType)) { } else if ("1".equals(hotType)) {
//优质车型 //优质车型
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_DETAILCARPURCHASE)
.withString("carId", data.getId())
.withString("icon", data.getIcon())
.withString("name", data.getName())
.withString("keyword", data.getName1())
.withInt("score", 0)
.withDouble("buyPrice", Double.valueOf(data.getPrice()))
.navigation();
} }
} }
}); });
...@@ -738,6 +748,9 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser ...@@ -738,6 +748,9 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser
} else if ("1".equals(hotType)) { } else if ("1".equals(hotType)) {
//优质车型 //优质车型
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_CARPURCHASELIST)
.navigation();
} }
} else if (id == R.id.ll_item_top) { } else if (id == R.id.ll_item_top) {
scrollview.fullScroll(View.FOCUS_UP); scrollview.fullScroll(View.FOCUS_UP);
......
...@@ -8,6 +8,7 @@ import android.widget.ImageView; ...@@ -8,6 +8,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.baidu.location.BDAbstractLocationListener; import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation; import com.baidu.location.BDLocation;
import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BaiduMap;
...@@ -22,6 +23,7 @@ import com.baidu.mapapi.map.MarkerOptions; ...@@ -22,6 +23,7 @@ import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData; import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions; import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.model.LatLng;
import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.LocationManager; import com.ruiwenliu.wrapper.util.LocationManager;
...@@ -52,6 +54,7 @@ import io.reactivex.observers.DisposableObserver; ...@@ -52,6 +54,7 @@ import io.reactivex.observers.DisposableObserver;
* Date: 2019/5/22. * Date: 2019/5/22.
* Desc:门店地图 * Desc:门店地图
*/ */
@Route(path = Constance.ACTIVITY_URL_SHOPSHOW)
public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> { public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
@BindView(R2.id.bmapView) @BindView(R2.id.bmapView)
MapView mMapView; MapView mMapView;
......
...@@ -14,22 +14,22 @@ import android.widget.LinearLayout; ...@@ -14,22 +14,22 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.base.utils.tools.android.IntentUtil; import com.base.utils.tools.android.IntentUtil;
import com.base.utils.ui.image.round.RoundImageView; import com.base.utils.ui.image.round.RoundImageView;
import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.bean.BeanUserInfo;
import com.ruiwenliu.wrapper.bean.UserInfoBean;
import com.ruiwenliu.wrapper.browse.ActivityImageBrowseInt;
import com.frame.base.bus.LoginSuccessfulEvent; import com.frame.base.bus.LoginSuccessfulEvent;
import com.frame.base.bus.Observer; import com.frame.base.bus.Observer;
import com.frame.base.bus.PaymentFailedEvent;
import com.frame.base.bus.PaymentSuccessfulEvent;
import com.frame.base.bus.RxBus; import com.frame.base.bus.RxBus;
import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.SPConstance; import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment; import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.bean.UserInfoBean;
import com.ruiwenliu.wrapper.browse.ActivityImageBrowseInt;
import com.ruiwenliu.wrapper.util.UtilsManager; import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.util.glide.GlideManager; import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout; import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout;
...@@ -39,11 +39,12 @@ import com.rv.component.utils.CacheEnum; ...@@ -39,11 +39,12 @@ import com.rv.component.utils.CacheEnum;
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.login.LoginRvActivity; import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.rv.home.rv.module.ui.main.home.DrivingListActivity;
import com.rv.home.rv.module.ui.main.home.bean.BeanHomeBanner; import com.rv.home.rv.module.ui.main.home.bean.BeanHomeBanner;
import com.rv.home.rv.module.ui.main.home.order.OrderListActivity; import com.rv.home.rv.module.ui.main.home.order.OrderListActivity;
import com.rv.member.MemberCenterActivity; import com.rv.member.MemberCenterActivity;
import com.rv.points.Actions;
import com.rv.points.PointsActivity; import com.rv.points.PointsActivity;
import com.rv.rvmine.bean.InfoProfitBean;
import com.rv.rvmine.personal.IDCardCertificationActivity; import com.rv.rvmine.personal.IDCardCertificationActivity;
import com.rv.rvmine.rxbusevent.UserInfoEvent; import com.rv.rvmine.rxbusevent.UserInfoEvent;
import com.rv.rvmine.traveler.ChooseAVisitorActivity; import com.rv.rvmine.traveler.ChooseAVisitorActivity;
...@@ -110,6 +111,13 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -110,6 +111,13 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
SimpleRefreshLayout mSimpleRefreshLayout; SimpleRefreshLayout mSimpleRefreshLayout;
@BindView(R2.id.tv_user_identity) @BindView(R2.id.tv_user_identity)
TextView tvUserIdentity; TextView tvUserIdentity;
@BindView(R2.id.tv_integral)
TextView tvIntegral;
@BindView(R2.id.tv_wallet)
TextView tvWallet;
@BindView(R2.id.tv_coupon)
TextView tvCoupon;
Unbinder unbinder; Unbinder unbinder;
...@@ -163,10 +171,10 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -163,10 +171,10 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
protected void loadData(Bundle savedInstanceState) { protected void loadData(Bundle savedInstanceState) {
getUserData(); getUserData();
loadBannerData(); loadBannerData();
loadProfit();
} }
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void initRxBus() { private void initRxBus() {
...@@ -185,21 +193,45 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -185,21 +193,45 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
@Override @Override
public void onNext(LoginSuccessfulEvent event) { public void onNext(LoginSuccessfulEvent event) {
getUserData(); getUserData();
loadProfit();
}
});
RxBus.tObservable(PaymentSuccessfulEvent.class)
.observeOn(Schedulers.newThread())
.subscribe(new Observer<PaymentSuccessfulEvent>(disposable) {
@Override
public void onNext(PaymentSuccessfulEvent event) {
getUserData();
}
});
RxBus.tObservable(PaymentFailedEvent.class)
.observeOn(Schedulers.newThread())
.subscribe(new Observer<PaymentFailedEvent>(disposable) {
@Override
public void onNext(PaymentFailedEvent event) {
getUserData();
} }
}); });
} }
@OnClick({R2.id.iv_avatar, R2.id.tv_login, R2.id.tv_verified, R2.id.rl_item_to_be_paid, R2.id.rl_item_staying, @OnClick({R2.id.iv_avatar, R2.id.tv_login, R2.id.tv_verified, R2.id.rl_item_to_be_paid, R2.id.rl_item_staying, R2.id.iv_item_message,
R2.id.rl_item_traveling, R2.id.rl_item_completed, R2.id.rl_item_collection, R2.id.rl_item_traveling, R2.id.rl_item_completed, R2.id.rl_item_collection,R2.id.rl_item_my_release,
R2.id.iv_item_setting, R2.id.tv_item_view_privileges,R2.id.rl_item_order_all,R2.id.ll_item_integral,R2.id.ll_item_wallet, R2.id.iv_item_setting, R2.id.tv_item_view_privileges, R2.id.rl_item_order_all, R2.id.ll_item_integral, R2.id.ll_item_wallet,
R2.id.ll_item_coupon, R2.id.ll_item_promotion,R2.id.rl_item_check_in,R2.id.rl_item_travel_management}) R2.id.ll_item_coupon, R2.id.ll_item_promotion, R2.id.rl_item_check_in, R2.id.rl_item_travel_management})
public void onViewClicked(View view) { public void onViewClicked(View view) {
int id = view.getId(); int id = view.getId();
if (id == R.id.iv_item_setting){ if (id == R.id.iv_item_setting) {
//设置 //设置
if (isLogin()) return; if (isLogin()) return;
startActivityForResult(SettingActivity.getIntent(_mActivity), 101); startActivityForResult(SettingActivity.getIntent(_mActivity), 101);
}else if (id == R.id.iv_item_message){
//消息通知
if (isLogin()) return;
showToast("该功能还在开发中。。。");
}else if (id == R.id.iv_avatar) { }else if (id == R.id.iv_avatar) {
//头像 //头像
if (isLogin()) return; if (isLogin()) return;
...@@ -215,26 +247,26 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -215,26 +247,26 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
startActivity(IDCardCertificationActivity.getIntent(_mActivity)); startActivity(IDCardCertificationActivity.getIntent(_mActivity));
}else if (id == R.id.ll_item_integral){ } else if (id == R.id.ll_item_integral) {
//积分 //积分
if (isLogin()) return; if (isLogin()) return;
startActivity(new Intent(_mActivity, PointsActivity.class)); startActivity(new Intent(_mActivity, PointsActivity.class));
}else if (id == R.id.ll_item_wallet){ } else if (id == R.id.ll_item_wallet) {
//钱包 //钱包
if (isLogin()) return; if (isLogin()) return;
ARouter.getInstance() ARouter.getInstance()
.build(Constance.ACTIVITY_URL_WALLET) .build(Constance.ACTIVITY_URL_WALLET)
.navigation(); .navigation();
}else if (id == R.id.ll_item_coupon){ } else if (id == R.id.ll_item_coupon) {
//优惠券 //优惠券
if (isLogin()) return; if (isLogin()) return;
ARouter.getInstance() ARouter.getInstance()
.build(Constance.ACTIVITY_URL_COUPONALL) .build(Constance.ACTIVITY_URL_COUPONALL)
.navigation(); .navigation();
}else if (id == R.id.ll_item_promotion){ } else if (id == R.id.ll_item_promotion) {
//推广有奖 //推广有奖
if (isLogin()) return; if (isLogin()) return;
startActivity(new Intent(_mActivity, ShareActivity.class)); startActivity(new Intent(_mActivity, ShareActivity.class));
...@@ -272,18 +304,19 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -272,18 +304,19 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
} else if (id == R.id.rl_item_my_release) { } else if (id == R.id.rl_item_my_release) {
//我的发布 //我的发布
if (isLogin()) return; if (isLogin()) return;
showToast("该功能还在开发中。。。");
} else if (id == R.id.rl_item_collection) { } else if (id == R.id.rl_item_collection) {
//收藏 //收藏
if (isLogin()) return; if (isLogin()) return;
startActivity(CollectionActivity.getIntent(_mActivity)); startActivity(CollectionActivity.getIntent(_mActivity));
}else if (id == R.id.rl_item_check_in){ } else if (id == R.id.rl_item_check_in) {
//签到 //签到
if (isLogin()) return; if (isLogin()) return;
Actions.sign(_mActivity);
}else if (id ==R.id.rl_item_travel_management){ } else if (id == R.id.rl_item_travel_management) {
//出游管理 //出游管理
if (isLogin()) return; if (isLogin()) return;
startActivity(new Intent(_mActivity, ChooseAVisitorActivity.class)); startActivity(new Intent(_mActivity, ChooseAVisitorActivity.class));
...@@ -310,6 +343,9 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -310,6 +343,9 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
tvViewPrivileges.setText("会员中心"); tvViewPrivileges.setText("会员中心");
tvMembershipLevel.setText("会员特权"); tvMembershipLevel.setText("会员特权");
tvMemberHint.setText("免费用车- -天"); tvMemberHint.setText("免费用车- -天");
tvIntegral.setText("0");
tvWallet.setText("0");
tvCoupon.setText("0");
} }
} }
...@@ -359,6 +395,18 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -359,6 +395,18 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
} }
/**
* 获取余额等信息
*/
private void loadProfit() {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null) {
headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.getDataHead(RvFrameConfig.HOST, 2, ApiConfig.HTTP_URL_USER_PROFIT, InfoProfitBean.class, headMap, false);
}
}
/** /**
* 获取轮播图 * 获取轮播图
*/ */
...@@ -406,6 +454,22 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -406,6 +454,22 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
case 1: case 1:
bannerData((BeanHomeBanner) result); bannerData((BeanHomeBanner) result);
break; break;
case 2:
profitData((InfoProfitBean) result);
break;
}
}
/**
* 用户收益
*
* @param bean
*/
private void profitData(InfoProfitBean bean) {
if (bean != null && bean.getData() != null) {
tvIntegral.setText(bean.getData().getTotalPoint());
tvWallet.setText(bean.getData().getBalance());
tvCoupon.setText(bean.getData().getCouponNumber());
} }
} }
...@@ -415,7 +479,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -415,7 +479,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
info = infoBean.getData(); info = infoBean.getData();
if (info != null) { if (info != null) {
GlideManager.getInstance(_mActivity).loadImage(info.getHeadimgurl(), ivAvatar); GlideManager.getInstance(_mActivity).loadImage(info.getHeadimgurl(), ivAvatar);
tvNickname.setText(info.getUsername()); tvNickname.setText(info.getNickname());
//更新实名信息 //更新实名信息
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_USERINFO, JSON.toJSONString(info)).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_USERINFO, JSON.toJSONString(info)).commit();
if (info.getCertificationStatus() == 0) { //实名认证状态:0-未认证,1-已认证 if (info.getCertificationStatus() == 0) { //实名认证状态:0-未认证,1-已认证
...@@ -490,5 +554,6 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -490,5 +554,6 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
@Override @Override
public void onRefresh() { public void onRefresh() {
getUserData(); getUserData();
loadProfit();
} }
} }
package com.rv.rvmine.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.io.Serializable;
/**
* 个人中心获取余额等信息
*/
public class InfoProfitBean extends BaseBean implements Serializable {
private DataBean data;
private int code;
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public static class DataBean {
private String couponNumber; //优惠卷总个数
private String totalPoint; //总积分
private String balance; //钱包余额
public String getCouponNumber() {
return couponNumber;
}
public void setCouponNumber(String couponNumber) {
this.couponNumber = couponNumber;
}
public String getTotalPoint() {
return totalPoint;
}
public void setTotalPoint(String totalPoint) {
this.totalPoint = totalPoint;
}
public String getBalance() {
return balance;
}
public void setBalance(String balance) {
this.balance = balance;
}
}
}
...@@ -128,12 +128,12 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres ...@@ -128,12 +128,12 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
private BeanConfirmOrder info; private BeanConfirmOrder info;
private List<CouponBean.DataBean> couponDataList;//优惠券数据 private List<CouponBean.DataBean> couponDataList;//优惠券数据
private int selectPosition;//新选中
private int oldSelectPosition;//上一次选中
private double couponAmount = 0; //优惠券金额 private double couponAmount = 0; //优惠券金额
private String status = "1";// 优惠券状态 private String status = "1";// 优惠券状态
private String tickerNo;
private List<String> couponIdList = new ArrayList<>(); //选中优惠券
public static Intent getIntent(Context context, BeanOrderParam dataBean) { public static Intent getIntent(Context context, BeanOrderParam dataBean) {
return new Intent(context, TravelerConfirmOrderActivity.class) return new Intent(context, TravelerConfirmOrderActivity.class)
...@@ -300,9 +300,10 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres ...@@ -300,9 +300,10 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
couponDataList = couponBean.getData(); couponDataList = couponBean.getData();
status =couponDataList.get(0).getStatus(); status =couponDataList.get(0).getStatus();
if ("1".equals(status)) { if ("1".equals(status)) {
tickerNo = couponDataList.get(0).getTickerNo();
couponAmount = couponDataList.get(0).getUsedAmount(); couponAmount = couponDataList.get(0).getUsedAmount();
tvCouponAmount.setText("-¥" + couponDataList.get(0).getUsedAmount()); tvCouponAmount.setText("-¥" + couponDataList.get(0).getUsedAmount());
couponDataList.get(0).setCheck(true);
couponIdList.add(couponDataList.get(0).getTickerNo());
getPayMoney(); getPayMoney();
} else { } else {
tvCouponAmount.setText("暂无优惠券"); tvCouponAmount.setText("暂无优惠券");
...@@ -356,6 +357,13 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres ...@@ -356,6 +357,13 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
tvPaymentAmount.setText(String.format("¥%1$s", new BigDecimal(price).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue())); tvPaymentAmount.setText(String.format("¥%1$s", new BigDecimal(price).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()));
} }
if (couponAmount > 0) {
OrderPriceDetailBean.ChildrenBean childrenBean4 = new OrderPriceDetailBean.ChildrenBean();
childrenBean4.setKey("优惠券");
childrenBean4.setVal("-¥" + couponAmount);
childrenBeanList.add(childrenBean4);
}
orderPriceDetailBean = new OrderPriceDetailBean(); orderPriceDetailBean = new OrderPriceDetailBean();
orderPriceDetailBean.setKey("费用明细"); orderPriceDetailBean.setKey("费用明细");
orderPriceDetailBean.setChildren(childrenBeanList); orderPriceDetailBean.setChildren(childrenBeanList);
...@@ -387,11 +395,6 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres ...@@ -387,11 +395,6 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
} else if (id == R.id.rl_item_select_coupon) { } else if (id == R.id.rl_item_select_coupon) {
//优惠券选择 //优惠券选择
if (couponDataList != null) { if (couponDataList != null) {
if (couponDataList.size() > 0 && "1".equals(status)) {
couponDataList.get(oldSelectPosition).setCheck(false);
couponDataList.get(selectPosition).setCheck(true);
oldSelectPosition = selectPosition;
}
//优惠券 //优惠券
ARouter.getInstance() ARouter.getInstance()
.build(Constance.ACTIVITY_URL_CARCOUPON) .build(Constance.ACTIVITY_URL_CARCOUPON)
...@@ -504,11 +507,12 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres ...@@ -504,11 +507,12 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
String ids = idList.toString().replace("[", "").replace("]", ""); String ids = idList.toString().replace("[", "").replace("]", "");
String endTime = "" + DateUtil.getDateByYYYYMMDD_java(dataBean.getEndTime()); String endTime = "" + DateUtil.getDateByYYYYMMDD_java(dataBean.getEndTime());
String startTime = "" + DateUtil.getDateByYYYYMMDD_java(dataBean.getStartTime()); String startTime = "" + DateUtil.getDateByYYYYMMDD_java(dataBean.getStartTime());
String couponIds = couponIdList.toString().replace("[", "").replace("]", "").replaceAll(" ","");
Map<String, Object> headMap = new LinkedHashMap<>(); Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null) if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken()); headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.postBodyData(RvFrameConfig.ADMIN_POST, payType, TourismApi.COMMIT_ORDER, BeanTourOrderResponse.class, new Tourist(etMailbox.getText().toString().trim(), name, phone, dataBean.getEndAddr(), endTime, dataBean.getGoodId(), ids, dataBean.getSpePriceId(), dataBean.getStartAddr(), dataBean.getStartCompanyId(), startTime, dataBean.getSiteId(), isInsuranceType,tickerNo), headMap, true); mPresenter.postBodyData(RvFrameConfig.ADMIN_POST, payType, TourismApi.COMMIT_ORDER, BeanTourOrderResponse.class, new Tourist(etMailbox.getText().toString().trim(), name, phone, dataBean.getEndAddr(), endTime, dataBean.getGoodId(), ids, dataBean.getSpePriceId(), dataBean.getStartAddr(), dataBean.getStartCompanyId(), startTime, dataBean.getSiteId(), isInsuranceType,couponIds), headMap, true);
} }
...@@ -534,12 +538,21 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres ...@@ -534,12 +538,21 @@ public class TravelerConfirmOrderActivity extends BaseStatusActivity<TourismPres
} }
mVisitorInformationAdapter.notifyDataSetChanged(); mVisitorInformationAdapter.notifyDataSetChanged();
} else if (134 == requestCode && resultCode == RESULT_OK) { } else if (134 == requestCode && resultCode == RESULT_OK) {
selectPosition = data.getIntExtra("position", 0); List<CouponBean.DataBean> selectCouponList = JSON.parseArray(data.getStringExtra("selectCoupon"), CouponBean.DataBean.class);
if (couponDataList != null && couponDataList.size() > 0) { List<CouponBean.DataBean> resultCouponList = JSON.parseArray(data.getStringExtra("resultCouponList"), CouponBean.DataBean.class);
tickerNo = couponDataList.get(selectPosition).getTickerNo(); if (resultCouponList !=null && resultCouponList.size() >0){
couponAmount = couponDataList.get(selectPosition).getUsedAmount(); couponDataList = resultCouponList;
tvCouponAmount.setText("-¥" + couponAmount); }
couponIdList.clear();
double couponPrice = 0;
if (selectCouponList != null && selectCouponList.size() > 0) {
for (int i = 0; i < selectCouponList.size(); i++) {
couponIdList.add(selectCouponList.get(i).getTickerNo());
couponPrice = +couponPrice + selectCouponList.get(i).getUsedAmount();
} }
}
couponAmount = couponPrice;
tvCouponAmount.setText("-¥" + couponAmount);
getPayMoney(); getPayMoney();
} }
} }
......
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
api 'com.jakewharton:butterknife:9.0.0-rc1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
implementation 'com.alibaba:fastjson:1.2.21'
implementation 'com.contrarywind:Android-PickerView:3.2.7'
api project(':RvWrapper')
api project(':component_resource')
api project(':component_utils')
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxrv.carpurchase">
<application>
<activity android:name=".activity.ReservationInformationActivity"></activity>
<activity android:name=".activity.CarPurchaseListActivity" />
<activity android:name=".activity.DetailCarPurchaseActivity" />
</application>
</manifest>
\ No newline at end of file
package com.xxrv.carpurchase.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView;
import com.xxrv.carpurchase.R;
import com.xxrv.carpurchase.R2;
import com.xxrv.carpurchase.adapter.CarPurChaseListAdapter;
import com.xxrv.carpurchase.api.CarPurchaseApi;
import com.xxrv.carpurchase.beam.CarPurChaseListBean;
import com.xxrv.carpurchase.presenter.CarPurchasePresenter;
import butterknife.BindView;
/**
* 购车列表
*/
@Route(path = Constance.ACTIVITY_URL_CARPURCHASELIST)
public class CarPurchaseListActivity extends BaseStatusActivity<CarPurchasePresenter> implements BaseQuickAdapter.RequestLoadMoreListener, SimpleRefreshLayout.OnSimpleRefreshListener {
@BindView(R2.id.recyclerView)
RecyclerView recyclerView;
@BindView(R2.id.refresh)
SimpleRefreshLayout mSimpleRefreshLayout;
public CarPurChaseListAdapter mAdapter;
private int countPage;
private int mPage;
@Override
protected int setLayout() {
return R.layout.activity_car_purchase_list;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("选择车型");
mSimpleRefreshLayout.setHeaderView(new SimpleRefreshView(mActivity));
mSimpleRefreshLayout.setOnSimpleRefreshListener(this);
titleView.setImageResource(R.id.iv_title_right, R.drawable.rv_rentingcar_icon_plat);
titleView.setChildClickListener(R.id.iv_title_right, new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_SHOPSHOW)
.navigation();
}
});
mAdapter = new CarPurChaseListAdapter();
mAdapter.setOnLoadMoreListener(this, recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
CarPurChaseListBean.DataBeanX.DataBean bean = (CarPurChaseListBean.DataBeanX.DataBean) adapter.getItem(position);
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_DETAILCARPURCHASE)
.withString("carId", bean.getId())
.withString("icon", bean.getIcon())
.withString("name", bean.getName())
.withString("keyword", bean.getKeyword())
.withInt("score", bean.getScore())
.withDouble("buyPrice", bean.getBuyPrice())
.navigation();
}
});
}
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
onFresh();
}
/**
* 刷新
*/
private void onFresh() {
mPage = 1;
getCarList(mPage);
}
/**
* 获取车辆列表
*/
private void getCarList(int page) {
mPresenter.postBodyData(1, CarPurchaseApi.HTTP_URL_FINDVEHICLEMODEPAGE_LIST, CarPurChaseListBean.class, new dataBody(page, 20), true);
}
@Override
public void onShowResult(int requestType, BaseBean result) {
mSimpleRefreshLayout.onRefreshComplete();
switch (requestType) {
case 1:
processData((CarPurChaseListBean) result);
break;
}
}
private void processData(CarPurChaseListBean bean) {
if (mPage == 1) {
countPage = bean.getData().getTotalPage();
mAdapter.setNewData(bean.getData().getData());
if (bean.getData().getTotalCount() == 0) {
mAdapter.setEmptyView(getEmptyView(recyclerView, -1, "暂无车辆数据!"));
mAdapter.notifyDataSetChanged();
}
} else {
mAdapter.addData(bean.getData().getData());
mAdapter.loadMoreComplete();
}
}
@Override
public void onLoadMoreRequested() {
if (mPage >= countPage) {
mAdapter.loadMoreEnd();
} else {
mPage++;
getCarList(mPage);
}
}
@Override
public void onRefresh() {
onFresh();
}
public class dataBody {
private int page;
private int limit;
public dataBody(int page, int limit) {
this.page = page;
this.limit = limit;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
}
}
package com.xxrv.carpurchase.activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.util.um.CustomShareListener;
import com.ruiwenliu.wrapper.util.um.ShareManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.shareboard.SnsPlatform;
import com.umeng.socialize.utils.ShareBoardlistener;
import com.xxrv.carpurchase.R;
import com.xxrv.carpurchase.R2;
import com.xxrv.carpurchase.api.CarPurchaseApi;
import com.xxrv.carpurchase.presenter.CarPurchasePresenter;
import butterknife.BindView;
import butterknife.OnClick;
import static com.ruiwenliu.wrapper.weight.webview.SafeWebView.hasKitkat;
/**
* 购车详情
*/
@Route(path = Constance.ACTIVITY_URL_DETAILCARPURCHASE)
public class DetailCarPurchaseActivity extends BaseStatusActivity<CarPurchasePresenter> {
@BindView(R2.id.pb_progress)
ProgressBar pbProgress;
@BindView(R2.id.webView)
WebView mWebView;
private String webUrl;
private ShareManager shareManager;
@Autowired()
String carId;
@Autowired()
String icon;
@Autowired()
String name;
@Autowired()
String keyword;
@Autowired()
int score;
@Autowired()
double buyPrice;
@Override
protected int setLayout() {
return R.layout.activity_detail_car_purchase;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("购房车详情");
webUrl = CarPurchaseApi.HTTP_URL_GOUDETAIL + "?id=" + carId;
initWeb();
// initShare(webUrl + "&shareType=app", mCarBean.getVehicleModel().getName(), mCarBean.getCompany().getAddrDetail(), mCarBean.getVehicleModel().getIcon());
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
@Override
protected void onStart() {
super.onStart();
// onShowLoading();
}
@Override
public void onResume() {
super.onResume();
mWebView.onResume();// 生命周期onResume
}
@Override
protected void onPause() {
super.onPause();
mWebView.onPause();//生命周期onPause
}
@Override
public void onDestroy() {
super.onDestroy();
UMShareAPI.get(this).release();
mWebView.stopLoading();// 停止当前加载
mWebView.clearMatches();// 清除网页查找的高亮匹配字符。
mWebView.clearHistory();// 清除当前 WebView 访问的历史记录
mWebView.clearSslPreferences();//清除ssl信息
mWebView.clearCache(true);//清空网页访问留下的缓存数据。需要注意的时,由于缓存是全局的,所以只要是WebView用到的缓存都会被清空,即便其他地方也会使用到。该方法接受一个参数,从命名即可看出作用。若设为false,则只清空内存里的资源缓存,而不清空磁盘里的。
mWebView.loadUrl("about:blank");// 清空当前加载
mWebView.removeAllViews();// 清空子 View
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
mWebView.removeJavascriptInterface("AndroidNative");// 向 Web端注入 java 对象
}
mWebView.destroy();// 生命周期销毁
}
/**
* 屏幕横竖屏切换时避免出现window leak的问题
*/
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
shareManager.close();
}
private void initWeb() {
WebSettings webSettings = mWebView.getSettings();
if (webSettings == null) return;
// 支持 Js 使用
webSettings.setJavaScriptEnabled(true);
// 开启DOM缓存,默认状态下是不支持LocalStorage的
webSettings.setDomStorageEnabled(true);
// 开启数据库缓存
webSettings.setDatabaseEnabled(true);
// 支持自动加载图片
webSettings.setLoadsImagesAutomatically(hasKitkat());
// 设置 WebView 的缓存模式
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
// 支持启用缓存模式
webSettings.setAppCacheEnabled(true);
// 设置 AppCache 最大缓存值(现在官方已经不提倡使用,已废弃)
// webSettings.setAppCacheMaxSize(8 * 1024 * 1024);
// Android 私有缓存存储,如果你不调用setAppCachePath方法,WebView将不会产生这个目录
webSettings.setAppCachePath(getCacheDir().getAbsolutePath());
// 数据库路径
// if (!hasKitkat()) {
// webSettings.setDatabasePath(getDatabasePath("html").getPath());
// }
// 关闭密码保存提醒功能
// webSettings.setSavePassword(false);
// 支持缩放
webSettings.setSupportZoom(true);
// 设置 UserAgent 属性
webSettings.setUserAgentString("");
// 允许加载本地 html 文件/false
webSettings.setAllowFileAccess(true);
// 允许通过 file url 加载的 Javascript 读取其他的本地文件,Android 4.1 之前默认是true,在 Android 4.1 及以后默认是false,也就是禁止
webSettings.setAllowFileAccessFromFileURLs(true);
// 允许通过 file url 加载的 Javascript 可以访问其他的源,包括其他的文件和 http,https 等其他的源,
// Android 4.1 之前默认是true,在 Android 4.1 及以后默认是false,也就是禁止
// 如果此设置是允许,则 setAllowFileAccessFromFileURLs 不起做用
webSettings.setAllowUniversalAccessFromFileURLs(true);
mWebView.addJavascriptInterface(new AndroidJs(), "AndroidJs");
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
});
mWebView.loadUrl(webUrl);
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
pbProgress.setVisibility(View.GONE);//加载完网页进度条消失
} else {
pbProgress.setVisibility(View.VISIBLE);//开始加载网页时显示进度条
pbProgress.setProgress(newProgress);//设置进度值
}
}
});
}
@OnClick({R2.id.ll_item_home, R2.id.ll_item_customer_service, R2.id.tv_item_reservation})
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.ll_item_home) {
//首页
} else if (id == R.id.ll_item_customer_service) {
//客服
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri uri = Uri.parse("tel:" + "4000369369");
intent.setData(uri);
startActivity(intent);
} else if (id == R.id.tv_item_reservation) {
//预约看车
startActivity(ReservationInformationActivity.getIntent(mActivity,carId,icon,name,keyword,score,buyPrice));
}
}
/**
* 与h5交互
*/
public class AndroidJs {
/**
* 显示门店地图
*/
@JavascriptInterface
public void showMap() {
}
}
/**
* 初始化分享
*/
private void initShare(final String url, final String name, final String content, final String logo) {
shareManager = new ShareManager(this, new ShareBoardlistener() {
@Override
public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
if (snsPlatform.mShowWord.equals("生成海报")) {
} else if (snsPlatform.mShowWord.equals("复制链接")) {
}
shareManager.showShare(share_media, url, name, content, logo
, new CustomShareListener(mActivity) {
@Override
public void onResult(SHARE_MEDIA platform) {
super.onResult(platform);
if (platform.name().equals("WEIXIN_FAVORITE")) {
showToast(platform + " 收藏成功啦");
} else {
if (platform != SHARE_MEDIA.MORE && platform != SHARE_MEDIA.SMS
&& platform != SHARE_MEDIA.EMAIL
&& platform != SHARE_MEDIA.FLICKR
&& platform != SHARE_MEDIA.FOURSQUARE
&& platform != SHARE_MEDIA.TUMBLR
&& platform != SHARE_MEDIA.POCKET
&& platform != SHARE_MEDIA.PINTEREST
&& platform != SHARE_MEDIA.INSTAGRAM
&& platform != SHARE_MEDIA.GOOGLEPLUS
&& platform != SHARE_MEDIA.YNOTE
&& platform != SHARE_MEDIA.EVERNOTE) {
showToast(platform + "分享成功啦");
}
}
}
});
}
}, "rv_um_share_bill", "rv_um_share_copy");
}
}
package com.xxrv.carpurchase.activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.nfc.tech.NfcA;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.base.utils.ui.datetime.picker.simple.SampleDateTimeActivity;
import com.base.utils.ui.datetime.selector.util.DateUtil;
import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.bigkoo.pickerview.TimePickerView;
import com.frame.base.view.StarBar;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.util.glide.GlideApp;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.DateUtils;
import com.xxrv.carpurchase.R;
import com.xxrv.carpurchase.R2;
import com.xxrv.carpurchase.api.CarPurchaseApi;
import com.xxrv.carpurchase.presenter.CarPurchasePresenter;
import com.yuyife.okgo.OkGoUtil;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* 预约信息
*/
public class ReservationInformationActivity extends BaseStatusActivity<CarPurchasePresenter> {
@BindView(R2.id.iv_car_goods)
ImageView ivCarGoods;
@BindView(R2.id.tv_car_name)
TextView tvCarName;
@BindView(R2.id.tv_car_context)
TextView tvCarContext;
@BindView(R2.id.tv_point)
TextView tvPoint;
@BindView(R2.id.starbar1)
StarBar starbar1;
@BindView(R2.id.ll_content)
LinearLayout llContent;
@BindView(R2.id.tv_car_price)
TextView tvCarPrice;
@BindView(R2.id.et_name)
EditText etName;
@BindView(R2.id.et_phone)
EditText etPhone;
@BindView(R2.id.tv_date)
TextView tvDate;
@BindView(R2.id.tv_branch_office_name)
TextView tvBranchOfficeName;
@BindView(R2.id.tv_branch_office_address)
TextView tvBranchOfficeAddress;
@BindView(R2.id.et_remark)
EditText etRemark;
private String id;
public static Intent getIntent(Context context, String id, String icon, String name, String keyword, int score, double buyPrice) {
return new Intent(context, ReservationInformationActivity.class)
.putExtra("id", id)
.putExtra("icon", icon)
.putExtra("name", name)
.putExtra("keyword", keyword)
.putExtra("score", score)
.putExtra("buyPrice", buyPrice);
}
@Override
protected int setLayout() {
return R.layout.activity_reservation_information;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("预约信息");
initData(intent);
}
private void initData(Intent intent) {
id = intent.getStringExtra("id");
String icon = intent.getStringExtra("icon");
String name = intent.getStringExtra("name");
String keyword = intent.getStringExtra("keyword");
int scores = intent.getIntExtra("score", 0);
double buyPrice = intent.getDoubleExtra("buyPrice", 0);
float score = (float) scores / 10;
GlideManager.getInstance(mActivity).loadImage(icon, ivCarGoods);
tvCarName.setText(name);
tvCarContext.setText(keyword);
starbar1.setStarMark(score);
tvPoint.setText(score + "分");
tvCarPrice.setText("¥" + buyPrice);
}
@Override
public void onShowResult(int requestType, BaseBean result) {
switch (requestType){
case 1:
showToast("预约成功!");
finish();
break;
}
}
@OnClick({R2.id.ll_item_select_date, R2.id.ll_item_select_branch_office, R2.id.tv_item_submit})
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.ll_item_select_date) {
initTimePicker1();
} else if (id == R.id.ll_item_select_branch_office) {
} else if (id == R.id.tv_item_submit) {
upDate();
}
}
/**
* 提交数据
*/
private void upDate() {
String name = etName.getText().toString().trim();
if (TextUtils.isEmpty(name)) {
showToast("姓名不能为空!");
return;
}
String phone = etPhone.getText().toString().trim();
if (TextUtils.isEmpty(phone)) {
showToast("电话不能为空!");
return;
}
if (phone.length() != 11) {
showToast("手机号码不正确!");
return;
}
String date = tvDate.getText().toString();
if (TextUtils.isEmpty(date)){
showToast("预约时间不能为空!");
return;
}
// String branchoffice = tvBranchOfficeName.getText().toString();
// if (TextUtils.isEmpty(branchoffice)){
// showToast("分公司不能为空!");
// return;
// }
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
Map<String, Object> map = new LinkedHashMap<>();
map.put("bookTime", DateUtils.StringToTimeMillis2(date));
map.put("companyId", 22);
map.put("contactName", name);
map.put("contactPhone", phone);
map.put("modelId", id);
map.put("remark", etRemark.getText().toString().trim());
mPresenter.postBodyData(RvFrameConfig.HOST, 1, CarPurchaseApi.HTTP_URL_BUYVEHICLEFORM, BaseBean.class, map,headMap, true);
}
private void initTimePicker1() {//选择出生年月日
//控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释)
//因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
Date curDate = new Date(System.currentTimeMillis());//获取当前时间
SimpleDateFormat formatter_year = new SimpleDateFormat("yyyy ");
String year_str = formatter_year.format(curDate);
int year_int = (int) Double.parseDouble(year_str);
SimpleDateFormat formatter_mouth = new SimpleDateFormat("MM ");
String mouth_str = formatter_mouth.format(curDate);
int mouth_int = (int) Double.parseDouble(mouth_str);
SimpleDateFormat formatter_day = new SimpleDateFormat("dd ");
String day_str = formatter_day.format(curDate);
int day_int = (int) Double.parseDouble(day_str);
SimpleDateFormat formatter_hh = new SimpleDateFormat("HH ");
String hh_str = formatter_hh.format(curDate);
int hh_int = (int) Double.parseDouble(hh_str);
SimpleDateFormat formatter_mm = new SimpleDateFormat("mm ");
String mm_str = formatter_mm.format(curDate);
int mm_int = (int) Double.parseDouble(mm_str);
Calendar selectedDate = Calendar.getInstance();//系统当前时间
Calendar startDate = Calendar.getInstance();
startDate.set(year_int, mouth_int - 1, day_int, hh_int, mm_int);
Calendar endDate = Calendar.getInstance();
endDate.set(year_int, mouth_int + 1, day_int);
//时间选择器
TimePickerView build = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {//选中事件回调
// 这里回调过来的v,就是show()方法里面所添加的 View 参数,如果show的时候没有添加参数,v则为null
tvDate.setText(DateUtils.formatDate55(date));
}
})
.setType(new boolean[]{true, true, true, true, true, false}) //年月日时分秒 的显示与否,不设置则默认全部显示
.setLabel("年", "月", "日", "时", "分", "")//默认设置为年月日时分秒
.isCenterLabel(false)
.setSubmitColor(Color.BLACK)
.setCancelColor(Color.BLACK)
.setDividerColor(Color.BLACK)
.setTextColorCenter(Color.BLACK)//设置选中项的颜色
.setTextColorOut(Color.GRAY)//设置没有被选中项的颜色
.setContentSize(21)
.setDate(selectedDate)
.setLineSpacingMultiplier(1.2f)
.setTextXOffset(-10, 0, 10, 0, 0, 0)//设置X轴倾斜角度[ -90 , 90°]
.setRangDate(selectedDate, endDate)
// .setBackgroundId(0x00FFFFFF) //设置外部遮罩颜色
.setDecorView(null)
.build();
build.show();
}
}
package com.xxrv.carpurchase.adapter;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.base.view.StarBar;
import com.ruiwenliu.wrapper.util.BaseGlideHolder;
import com.xxrv.carpurchase.R;
import com.xxrv.carpurchase.beam.CarPurChaseListBean;
/**
* 购房车功能列表
*/
public class CarPurChaseListAdapter extends BaseQuickAdapter<CarPurChaseListBean.DataBeanX.DataBean, BaseGlideHolder> {
public CarPurChaseListAdapter() {
super(R.layout.rv_item_car_purchase_list);
}
@Override
protected void convert(BaseGlideHolder helper, CarPurChaseListBean.DataBeanX.DataBean item) {
helper.loadImage(mContext, item.getIcon(), (ImageView) helper.getView(R.id.iv_goods));
helper.setText(R.id.tv_name, item.getName());
helper.setText(R.id.tv_context, item.getKeyword());
float score = (float) item.getScore() / 10;
StarBar starBar = helper.getView(R.id.starbar1);
starBar.setStarMark(score);
helper.setText(R.id.tv_point, score + "分");
helper.setText(R.id.tv_price, "¥"+ item.getBuyPrice());
}
}
package com.xxrv.carpurchase.api;
import com.frame.rv.config.RvFrameConfig;
public class CarPurchaseApi {
//无token获取车型列表
public static String HTTP_URL_FINDVEHICLEMODEPAGE_LIST = RvFrameConfig.HOST + "/vehicle/vehicleModel/app/unauth/findVehicleModelPage";
//购房车详情
public static String HTTP_URL_GOUDETAIL = RvFrameConfig.HOST + "/h5/appHtml/view/gouDetail.html";
//购房车表单提交
public static String HTTP_URL_BUYVEHICLEFORM = RvFrameConfig.HOST + "/api/app/buyVehicleForm/form-add";
}
\ No newline at end of file
package com.xxrv.carpurchase.beam;
import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.io.Serializable;
import java.util.List;
/**
* 购房车列表
*/
public class CarPurChaseListBean extends BaseBean implements Serializable {
private DataBeanX data;
private boolean rel;
public DataBeanX getData() {
return data;
}
public void setData(DataBeanX data) {
this.data = data;
}
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
public static class DataBeanX implements Serializable {
private int totalCount;
private int totalPage;
private int pageNum;
private int pageSize;
private List<DataBean> data;
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean implements Serializable {
private String id; // 车型id
private String name; //车型名
private String config; //房车配置
private String number; //乘卧数量
private String brand; //品牌
private String keyword; //关键标签,code逗号分割
private String modelsDetails; //车型详情
private String modelParam; //房车参数
private String picture; //图片地址 多张为逗号分割
private double price; //租车价格
private double deposit; //总押金
private double vioDeposit; //违章押金
private int score; //评分
private String hotSign; //热度标记,1--热门;2--非热门
private String rentDiscountStatus; //租车优惠状态 0--没有优惠;1--会员折扣;2--固定值
private String rentDiscountPrice; //租车优惠价格,根据会员等级逗号分割
private double buyPrice; //购买价格
private String sum; //总数量
private String leasableQuantity; //可租借数量
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getConfig() {
return config;
}
public void setConfig(String config) {
this.config = config;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String getModelsDetails() {
return modelsDetails;
}
public void setModelsDetails(String modelsDetails) {
this.modelsDetails = modelsDetails;
}
public String getModelParam() {
return modelParam;
}
public void setModelParam(String modelParam) {
this.modelParam = modelParam;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public String getIcon() {
String icon = "";
if (!TextUtil.isEmpty(picture)) {
String[] icons = picture.split(",");
if (icons != null && icons.length > 0) {
icon = icons[0];
} else {
icon = picture;
}
}
return icon;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getDeposit() {
return deposit;
}
public void setDeposit(double deposit) {
this.deposit = deposit;
}
public double getVioDeposit() {
return vioDeposit;
}
public void setVioDeposit(double vioDeposit) {
this.vioDeposit = vioDeposit;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getHotSign() {
return hotSign;
}
public void setHotSign(String hotSign) {
this.hotSign = hotSign;
}
public String getRentDiscountStatus() {
return rentDiscountStatus;
}
public void setRentDiscountStatus(String rentDiscountStatus) {
this.rentDiscountStatus = rentDiscountStatus;
}
public String getRentDiscountPrice() {
return rentDiscountPrice;
}
public void setRentDiscountPrice(String rentDiscountPrice) {
this.rentDiscountPrice = rentDiscountPrice;
}
public double getBuyPrice() {
return buyPrice;
}
public void setBuyPrice(double buyPrice) {
this.buyPrice = buyPrice;
}
public String getSum() {
return sum;
}
public void setSum(String sum) {
this.sum = sum;
}
public String getLeasableQuantity() {
return leasableQuantity;
}
public void setLeasableQuantity(String leasableQuantity) {
this.leasableQuantity = leasableQuantity;
}
}
}
}
package com.xxrv.carpurchase.presenter;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.presenter.MvpPresenter;
public class CarPurchasePresenter extends MvpPresenter {
@Override
/**
* 域名地址
*/
public String getBaseUrl() {
return RvFrameConfig.HOST;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.CarPurchaseListActivity">
<com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout
android:id="@+id/refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/pb_progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/size_3"
android:indeterminateOnly="false"
android:max="100"
android:visibility="gone"
android:progressDrawable="@drawable/shape_rv_bg_yellow_progress" >
</ProgressBar>
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/webView" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_60"
android:paddingLeft="@dimen/size_15"
android:paddingRight="@dimen/size_5"
android:gravity="center_vertical"
android:background="@color/colorWrite">
<LinearLayout
android:id="@+id/ll_item_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="@dimen/size_10"
android:orientation="vertical">
<ImageView
android:layout_width="@dimen/size_20"
android:layout_height="@dimen/size_20"
android:src="@drawable/common_icon_home_bg_hint"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_2"
android:textSize="@dimen/text_12"
android:textColor="@color/text_Gray"
android:text="客服"/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_item_customer_service"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="@dimen/size_10"
android:paddingLeft="@dimen/size_10"
android:orientation="vertical">
<ImageView
android:layout_width="@dimen/size_20"
android:layout_height="@dimen/size_20"
android:src="@drawable/common_journey_service_gray"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_2"
android:textSize="@dimen/text_12"
android:textColor="@color/text_Gray"
android:text="客服"/>
</LinearLayout>
<TextView
android:id="@+id/tv_item_reservation"
android:layout_width="0dp"
android:layout_weight="1"
android:text="预约看车"
android:textColor="@color/colorWrite"
android:textSize="@dimen/text_16"
android:gravity="center"
android:layout_margin="@dimen/size_10"
android:background="@drawable/shape_rv_bg_shallow_dark_yellow_circle"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ratingbar="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f5f5f5"
android:orientation="vertical"
tools:context=".activity.ReservationInformationActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_5"
android:layout_marginBottom="@dimen/size_5"
android:background="@color/colorWrite"
android:orientation="horizontal"
android:padding="@dimen/size_15">
<ImageView
android:id="@+id/iv_car_goods"
android:layout_width="@dimen/size_120"
android:layout_height="@dimen/size_100"
android:scaleType="centerCrop" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_5">
<TextView
android:id="@+id/tv_car_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="2222222222222"
android:textColor="@color/textMain"
android:textSize="@dimen/text_16" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_car_name"
android:layout_marginTop="@dimen/size_10"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_car_context"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:maxLines="1"
android:text="2222222222222"
android:textColor="@color/textGray"
android:textSize="@dimen/text_12" />
<TextView
android:id="@+id/tv_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
android:ellipsize="end"
android:maxLines="1"
android:text="2222"
android:textColor="@color/textGray"
android:textSize="@dimen/text_12" />
<com.frame.base.view.StarBar
android:id="@+id/starbar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
ratingbar:isClick="true"
ratingbar:starCount="5"
ratingbar:starDistance="3dp"
ratingbar:starEmpty="@drawable/rv_vehicle_icon_star_gray"
ratingbar:starFill="@drawable/rv_vehicle_icon_star_light"
ratingbar:starSize="@dimen/size_12" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ll_content"
android:layout_marginTop="@dimen/size_30"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_car_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="22222222"
android:textColor="@color/colorAuxiliaryRed"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_15"
android:background="@color/colorWrite"
android:orientation="vertical"
android:paddingLeft="@dimen/size_15"
android:paddingRight="@dimen/size_15">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_15"
android:text="预约人信息"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_16" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:layout_marginTop="@dimen/size_15"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_14" />
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/size_25"
android:background="@null"
android:gravity="left|center_vertical"
android:hint="请输入姓名"
android:maxLength="8"
android:text=""
android:textColor="@color/colorMain"
android:textColorHint="@color/colorGray"
android:textSize="@dimen/text_14" />
</LinearLayout>
<include layout="@layout/common_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电话"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_14" />
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/size_25"
android:background="@null"
android:gravity="left|center_vertical"
android:hint="请输入电话"
android:inputType="number|phone"
android:maxLength="11"
android:text=""
android:textColor="@color/colorMain"
android:textColorHint="@color/colorGray"
android:textSize="@dimen/text_14" />
</LinearLayout>
<include layout="@layout/common_line" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_15"
android:background="@color/colorWrite"
android:orientation="vertical"
android:paddingLeft="@dimen/size_15"
android:paddingRight="@dimen/size_15">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_15"
android:text="看车预约"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_16" />
<LinearLayout
android:id="@+id/ll_item_select_date"
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_14" />
<TextView
android:id="@+id/tv_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_20"
android:layout_weight="1"
android:hint="请选择看车时间"
android:text=""
android:textColor="@color/colorMain"
android:textColorHint="@color/colorGray"
android:textSize="@dimen/text_14" />
<ImageView
android:layout_width="@dimen/size_15"
android:layout_height="@dimen/size_15"
android:src="@drawable/common_icon_rig_gray" />
</LinearLayout>
<include layout="@layout/common_line" />
<LinearLayout
android:id="@+id/ll_item_select_branch_office"
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分公司"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_14" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_20"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_branch_office_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="请选择分公司"
android:text=""
android:textColor="@color/colorMain"
android:textColorHint="@color/colorGray"
android:textSize="@dimen/text_14" />
<TextView
android:id="@+id/tv_branch_office_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_3"
android:text=""
android:textColor="@color/gray_707070"
android:textSize="@dimen/text_10" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/size_15"
android:layout_height="@dimen/size_15"
android:src="@drawable/common_icon_rig_gray" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:layout_marginTop="@dimen/size_15"
android:background="@color/colorWrite"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/size_15"
android:paddingRight="@dimen/size_15">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="备注"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_14" />
<EditText
android:id="@+id/et_remark"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/size_25"
android:background="@null"
android:paddingTop="@dimen/size_5"
android:paddingBottom="@dimen/size_5"
android:gravity="left|center_vertical"
android:hint="请输入备注信息"
android:text=""
android:textColor="@color/colorMain"
android:textColorHint="@color/colorGray"
android:textSize="@dimen/text_14" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:background="@color/colorWrite"
android:layout_width="match_parent"
android:layout_height="@dimen/size_70">
<TextView
android:id="@+id/tv_item_submit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_margin="@dimen/size_12"
android:background="@drawable/shape_rv_bg_shallow_dark_yellow_circle"
android:textColor="@color/colorWrite"
android:textSize="@dimen/text_16"
android:text="提交"/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:ratingbar="http://schemas.android.com/apk/res-auto"
android:background="@color/colorLine">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/size_10"
android:background="@color/colorWrite"
android:orientation="horizontal"
android:padding="@dimen/size_15">
<ImageView
android:id="@+id/iv_goods"
android:layout_width="@dimen/size_120"
android:layout_height="@dimen/size_100"
android:scaleType="centerCrop" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_5">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="@color/textMain"
android:textSize="@dimen/text_16" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_name"
android:layout_marginTop="@dimen/size_10"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_context"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="@color/textGray"
android:textSize="@dimen/text_12" />
<TextView
android:id="@+id/tv_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="@color/textGray"
android:textSize="@dimen/text_12" />
<com.frame.base.view.StarBar
android:id="@+id/starbar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
ratingbar:starEmpty="@drawable/rv_vehicle_icon_star_gray"
ratingbar:starFill="@drawable/rv_vehicle_icon_star_light"
ratingbar:starDistance="3dp"
ratingbar:starCount="5"
ratingbar:isClick ="true"
ratingbar:starSize="@dimen/size_12"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ll_content"
android:layout_marginTop="@dimen/size_30"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text=""
android:textColor="@color/colorAuxiliaryRed"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_km"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/textGray"
android:textSize="@dimen/text_10" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
<resources>
<string name="app_name">plugin_carpurchase</string>
</resources>
...@@ -18,9 +18,12 @@ import com.xxrv.coupon.adapter.CarCouponAdapter; ...@@ -18,9 +18,12 @@ import com.xxrv.coupon.adapter.CarCouponAdapter;
import com.xxrv.coupon.bean.CouponBean; import com.xxrv.coupon.bean.CouponBean;
import com.xxrv.coupon.presenter.CouponAllPresenter; import com.xxrv.coupon.presenter.CouponAllPresenter;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/** /**
* 租车优惠券 * 租车优惠券
...@@ -31,10 +34,13 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> { ...@@ -31,10 +34,13 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> {
RecyclerView rvContent; RecyclerView rvContent;
private CarCouponAdapter mAdapter; private CarCouponAdapter mAdapter;
List<CouponBean.DataBean> couponBeans;
@Autowired() @Autowired()
String coupon; String coupon;
private List<CouponBean.DataBean> couponList;
private boolean select; //保留上一次选中的
@Override @Override
protected int setLayout() { protected int setLayout() {
...@@ -45,12 +51,14 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> { ...@@ -45,12 +51,14 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> {
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("优惠券"); titleView.setTitle("优惠券");
couponList = new ArrayList<>();
mAdapter = new CarCouponAdapter(); mAdapter = new CarCouponAdapter();
rvContent.setLayoutManager(new LinearLayoutManager(mActivity, LinearLayoutManager.VERTICAL, false)); rvContent.setLayoutManager(new LinearLayoutManager(mActivity, LinearLayoutManager.VERTICAL, false));
rvContent.setAdapter(mAdapter); rvContent.setAdapter(mAdapter);
if (coupon != null) { if (coupon != null) {
List<CouponBean.DataBean> couponBeans = JSON.parseArray(coupon, CouponBean.DataBean.class); couponBeans = JSON.parseArray(coupon, CouponBean.DataBean.class);
mAdapter.addData(couponBeans); mAdapter.addData(couponBeans);
} }
...@@ -59,13 +67,24 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> { ...@@ -59,13 +67,24 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> {
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
CouponBean.DataBean item = (CouponBean.DataBean) adapter.getItem(position); CouponBean.DataBean item = (CouponBean.DataBean) adapter.getItem(position);
if ("1".equals(item.getStatus())) { if ("1".equals(item.getStatus())) {
getIntent().putExtra("position", position); select = item.isCheck();
setResult(RESULT_OK, getIntent()); List<CouponBean.DataBean> data = mAdapter.getData();
finish(); if (data !=null && data.size() >0){
for (int i = 0; i < data.size(); i++) {
if (data.get(i).getType().equals(item.getType())){
data.get(i).setCheck(false);
}
}
if (select){
item.setCheck(false);
}else {
item.setCheck(true);
}
}
mAdapter.notifyDataSetChanged();
} }
} }
}); });
} }
...@@ -74,7 +93,23 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> { ...@@ -74,7 +93,23 @@ public class CarCouponActivity extends BaseStatusActivity<CouponAllPresenter> {
} }
private void processData(CouponBean bean) { @OnClick(R2.id.btn_item_ok)
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.btn_item_ok) {
couponList.clear();
List<CouponBean.DataBean> data = mAdapter.getData();
if (data !=null && data.size() >0){
for (int i = 0; i < data.size(); i++) {
if (data.get(i).isCheck()){
couponList.add(data.get(i));
}
}
}
getIntent().putExtra("resultCouponList",JSON.toJSONString(data));
getIntent().putExtra("selectCoupon", JSON.toJSONString(couponList));
setResult(RESULT_OK, getIntent());
finish();
}
} }
} }
...@@ -40,7 +40,7 @@ public class CouponBean extends BaseBean { ...@@ -40,7 +40,7 @@ public class CouponBean extends BaseBean {
private String subtitle;// ": "租车券", 副标题 private String subtitle;// ": "租车券", 副标题
private String icon;// ": "https://xxtest.upyuns.com/image/admin/20190513143243.png", private String icon;// ": "https://xxtest.upyuns.com/image/admin/20190513143243.png",
private String used;// ": 61, private String used;// ": 61,
private String channel;// ": 1, private String channel;// ": 1, 0-全平台;1-租车;2-旅游;3-营地
private String userType;// ": 0, private String userType;// ": 0,
private String type;// ": 1,1满减券 2叠加满减券 3无门槛券 private String type;// ": 1,1满减券 2叠加满减券 3无门槛券
private String withSpecial;// ": 2, private String withSpecial;// ": 2,
......
...@@ -83,10 +83,15 @@ public class ExpiredCouponFragment extends BaseFragment<CouponAllPresenter> impl ...@@ -83,10 +83,15 @@ public class ExpiredCouponFragment extends BaseFragment<CouponAllPresenter> impl
} }
private void processData(CouponBean bean) { private void processData(CouponBean bean) {
if (bean !=null && bean.getData()!=null && bean.getData().size() >0) {
mAdapter.getData().clear(); mAdapter.getData().clear();
mAdapter.addData(bean.getData()); mAdapter.addData(bean.getData());
mAdapter.notifyDataSetChanged();
}else {
mAdapter.setEmptyView(getEmptyView(rvContent, -1, "暂无优惠券"));
mAdapter.notifyDataSetChanged();
}
} }
@Override @Override
public void onRefresh() { public void onRefresh() {
......
...@@ -87,8 +87,14 @@ public class UsedCouponFragment extends BaseFragment<CouponAllPresenter> impleme ...@@ -87,8 +87,14 @@ public class UsedCouponFragment extends BaseFragment<CouponAllPresenter> impleme
} }
private void processData(CouponBean bean) { private void processData(CouponBean bean) {
if (bean !=null && bean.getData()!=null && bean.getData().size() >0) {
mAdapter.getData().clear(); mAdapter.getData().clear();
mAdapter.addData(bean.getData()); mAdapter.addData(bean.getData());
mAdapter.notifyDataSetChanged();
}else {
mAdapter.setEmptyView(getEmptyView(rvContent, -1, "暂无优惠券"));
mAdapter.notifyDataSetChanged();
}
} }
......
...@@ -2,9 +2,13 @@ package com.xxrv.coupon.fragment; ...@@ -2,9 +2,13 @@ package com.xxrv.coupon.fragment;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment; import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.util.listener.SwitchFragment;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout; import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView; import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView;
import com.xxrv.coupon.R; import com.xxrv.coupon.R;
...@@ -55,6 +59,22 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme ...@@ -55,6 +59,22 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
rvContent.setLayoutManager(new LinearLayoutManager(_mActivity, LinearLayoutManager.VERTICAL, false)); rvContent.setLayoutManager(new LinearLayoutManager(_mActivity, LinearLayoutManager.VERTICAL, false));
rvContent.setAdapter(mAdapter); rvContent.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
CouponBean.DataBean bean = (CouponBean.DataBean) adapter.getItem(position);
if ("0".equals(bean.getChannel()) || "1".equals(bean.getChannel())){ //0-全平台;1-租车;2-旅游;3-营地
_mActivity.finish();
SwitchFragment.sChangeFragment.changge(0);
}else if ("2".equals(bean.getChannel())){
_mActivity.finish();
SwitchFragment.sChangeFragment.changge(1);
}
}
});
} }
@Override @Override
...@@ -81,8 +101,14 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme ...@@ -81,8 +101,14 @@ public class WaitCouponFragment extends BaseFragment<CouponAllPresenter> impleme
} }
private void processData(CouponBean bean) { private void processData(CouponBean bean) {
if (bean !=null && bean.getData()!=null && bean.getData().size() >0) {
mAdapter.getData().clear(); mAdapter.getData().clear();
mAdapter.addData(bean.getData()); mAdapter.addData(bean.getData());
mAdapter.notifyDataSetChanged();
}else {
mAdapter.setEmptyView(getEmptyView(rvContent, -1, "暂无优惠券"));
mAdapter.notifyDataSetChanged();
}
} }
@Override @Override
......
...@@ -8,5 +8,19 @@ ...@@ -8,5 +8,19 @@
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
android:id="@+id/rv_content" android:id="@+id/rv_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView> android:layout_weight="1"
android:layout_height="0dp">
</android.support.v7.widget.RecyclerView>
<Button
android:id="@+id/btn_item_ok"
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:layout_gravity="bottom"
android:layout_margin="@dimen/dp_10"
android:background="@drawable/shape_rv_bg_yellow"
android:gravity="center"
android:text="确定"
android:textColor="@color/white"
android:textSize="@dimen/text_16" />
</LinearLayout> </LinearLayout>
...@@ -71,7 +71,7 @@ public class Actions { ...@@ -71,7 +71,7 @@ public class Actions {
* 签到 * 签到
* @param context * @param context
*/ */
public void sign(Context context) { public static void sign(Context context) {
((Activity) context).startActivityForResult(new Intent(context, SignActivity.class), 1003); ((Activity) context).startActivityForResult(new Intent(context, SignActivity.class), 1003);
} }
......
...@@ -3,6 +3,7 @@ package com.xxrv.wallet.activity; ...@@ -3,6 +3,7 @@ package com.xxrv.wallet.activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
...@@ -60,13 +61,27 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> { ...@@ -60,13 +61,27 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> {
} }
/** /**
* 提示弹框 * 提
*/ */
private void showHint() { private void showHint() {
final String accountNumber = etAccountNumber.getText().toString().trim();
if (TextUtils.isEmpty(accountNumber)){
showToast("账户不能为空!");
return;
}
final String withdrawalAmount = etWithdrawalAmount.getText().toString().trim();
if (TextUtils.isEmpty(withdrawalAmount)){
showToast("提现金额不能为空!");
return;
}
new VerifyAccountHintDialog(mActivity) { new VerifyAccountHintDialog(mActivity) {
@Override @Override
public void helper(ViewHolder helper) { public void helper(ViewHolder helper) {
super.helper(helper); super.helper(helper);
helper.setText(R.id.tv_pay_amount,withdrawalAmount +"元");
helper.setText(R.id.tv_account_number,accountNumber);
helper.setOnClickListener(new View.OnClickListener() { helper.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
...@@ -93,7 +108,7 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> { ...@@ -93,7 +108,7 @@ public class WithdrawActivity extends BaseStatusActivity<WalletPresenter> {
@Override @Override
public void onPassFinish(String passContent) { public void onPassFinish(String passContent) {
//输入完成 //输入完成
showToast(passContent); showToast("提现成功!");
startActivity(CashWithdrawalDetailsActivity.getIntent(mActivity)); startActivity(CashWithdrawalDetailsActivity.getIntent(mActivity));
payPassDialog.dismiss(); payPassDialog.dismiss();
} }
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/common_icon_wallet_pay_round" android:state_selected="true"/>
<item android:drawable="@drawable/common_icon_wallet_pay_round_unselect" android:state_selected="false"/>
</selector>
\ No newline at end of file
...@@ -30,13 +30,15 @@ ...@@ -30,13 +30,15 @@
android:orientation="horizontal"> android:orientation="horizontal">
<LinearLayout <LinearLayout
android:gravity="center_horizontal"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent"> android:layout_height="match_parent">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:src="@drawable/selector_rv_icon_renminbi"/>
<View <View
android:layout_width="@dimen/size_1" android:layout_width="@dimen/size_1"
...@@ -78,11 +80,13 @@ ...@@ -78,11 +80,13 @@
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="center_horizontal"
android:layout_height="match_parent"> android:layout_height="match_parent">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:src="@drawable/selector_rv_icon_renminbi"/>
<View <View
android:layout_width="@dimen/size_1" android:layout_width="@dimen/size_1"
...@@ -128,7 +132,8 @@ ...@@ -128,7 +132,8 @@
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:src="@drawable/selector_rv_icon_renminbi"/>
</LinearLayout> </LinearLayout>
......
include ':RvFrame' include ':RvFrame', ':plugin_carpurchase'
include ':RvTravel' include ':RvTravel'
include ':RvClient' include ':RvClient'
include ':RvWrapper' include ':RvWrapper'
......
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