Commit 08971661 authored by jianglx's avatar jianglx

对接支付接口

parent b75ff216
...@@ -12,7 +12,8 @@ public class PaymentTypeSelection extends BaseDialog { ...@@ -12,7 +12,8 @@ public class PaymentTypeSelection extends BaseDialog {
public PaymentTypeSelection(@NonNull Context context) { public PaymentTypeSelection(@NonNull Context context) {
super(context); super(context);
setDialogParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); setDialogParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
findViewById(R.id.rb_alipay).setEnabled(false);
} }
@Override @Override
......
...@@ -41,13 +41,13 @@ public class ApiConfig { ...@@ -41,13 +41,13 @@ public class ApiConfig {
public static String HTTP_URL_CAR_TYPE_ORDERDETAIL = RvFrameConfig.HOST + "/h5/appHtml/view/orderDetail.html";//订单详情页 public static String HTTP_URL_CAR_TYPE_ORDERDETAIL = RvFrameConfig.HOST + "/h5/appHtml/view/orderDetail.html";//订单详情页
public static String HTTP_URL_BASEORDER_CANCEL = RvFrameConfig.VEHICLE_ORDER + "baseOrder/cancel/";//重置密码 public static String HTTP_URL_BASEORDER_CANCEL = RvFrameConfig.VEHICLE_ORDER + "baseOrder/cancel/";//重置密码
public static String HTTP_URL_CAR_TYPE_TRAVELORDERDETAIL = RvFrameConfig.HOST + "/h5/appHtml/view/travelOrderDetail.html";//旅游订单详情页 public static String HTTP_URL_CAR_TYPE_TRAVELORDERDETAIL = RvFrameConfig.HOST + "/h5/appHtml/view/travelOrderDetail.html";//旅游订单详情页
public static String HTTP_URL_CAR_TYPE_COSTDETAIL= RvFrameConfig.HOST+"/h5/appHtml/view/costDetail.html";//费用明细 public static String HTTP_URL_CAR_TYPE_COSTDETAIL = RvFrameConfig.HOST + "/h5/appHtml/view/costDetail.html";//费用明细
public static String HTTP_URL_APP_USER_INFO= RvFrameConfig.ADMIN_POST+"app/user/info";//获取用户信息 public static String HTTP_URL_APP_USER_INFO = RvFrameConfig.ADMIN_POST + "app/user/info";//获取用户信息
public static String HTTP_URL_CERTIFICATE = RvFrameConfig.VEHICLE_UPLOAD + "certif/app/certificate";//实名认证 public static String HTTP_URL_CERTIFICATE = RvFrameConfig.VEHICLE_UPLOAD + "certif/app/certificate";//实名认证
public static String HTTP_URL_UPUSER_EDIT = RvFrameConfig.ADMIN_POST + "app/user/edit";//更新用户信息 public static String HTTP_URL_UPUSER_EDIT = RvFrameConfig.ADMIN_POST + "app/user/edit";//更新用户信息
public static String HTTP_URL_GETTOURUSERLIST = RvFrameConfig.VEHICLE_TOURUSER + "tourUser/app/unauth/getTourUserList";//获得全部出游人信息 public static String HTTP_URL_GETTOURUSERLIST = RvFrameConfig.VEHICLE_TOURUSER + "tourUser/app/unauth/getTourUserList";//获得全部出游人信息
public static String HTTP_URL_ADDANDUPDATE = RvFrameConfig.VEHICLE_TOURUSER + "tourUser/app/addAndUpdate";//添加和更新出游人信息 public static String HTTP_URL_ADDANDUPDATE = RvFrameConfig.VEHICLE_TOURUSER + "tourUser/app/addAndUpdate";//添加和更新出游人信息
public static String HTTP_URL_CAR_TYPE_NOTICE= RvFrameConfig.HOST+"/h5/appHtml/view/notice.html";//预定须知 public static String HTTP_URL_CAR_TYPE_NOTICE = RvFrameConfig.HOST + "/h5/appHtml/view/notice.html";//预定须知
public static String HTTP_URL_COLLECTONLIST = RvFrameConfig.ADMIN_POST + "app/user/collect/page";//我的收藏列表 public static String HTTP_URL_COLLECTONLIST = RvFrameConfig.ADMIN_POST + "app/user/collect/page";//我的收藏列表
public static String HTTP_URL_SCORE = RvFrameConfig.HOST + "/vehicle/vehicleUserScore/score";//订单评价保存 public static String HTTP_URL_SCORE = RvFrameConfig.HOST + "/vehicle/vehicleUserScore/score";//订单评价保存
...@@ -58,4 +58,7 @@ public class ApiConfig { ...@@ -58,4 +58,7 @@ public class ApiConfig {
public static String HTTP_URL_MEMBER_LIST = RvFrameConfig.ADMIN_POST + "/member/app/unauth/level/list"; // 会员等级列表 public static String HTTP_URL_MEMBER_LIST = RvFrameConfig.ADMIN_POST + "/member/app/unauth/level/list"; // 会员等级列表
public static String HTTP_URL_MEMBER_CREATE_ORDER_ = RvFrameConfig.HOST + "/api/order/orderMember/add"; // 创建订单
public static String COMMIT_ORDER_PAY = RvFrameConfig.HOST + "/api/order/baseOrder/pay"; //订单支付
} }
...@@ -40,4 +40,5 @@ dependencies { ...@@ -40,4 +40,5 @@ dependencies {
implementation 'com.contrarywind:Android-PickerView:3.2.7' implementation 'com.contrarywind:Android-PickerView:3.2.7'
api project(':module_home') api project(':module_home')
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4' annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
implementation project(':component_dialog')
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
package="com.rv.rvmine"> package="com.rv.rvmine">
<application> <application>
<activity android:name=".activity.MemberCenterActivity"></activity> <activity android:name=".member.MemberCenterActivity"></activity>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -26,7 +26,7 @@ import com.rv.home.rv.module.basic.presenter.CommonPresenter; ...@@ -26,7 +26,7 @@ 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.DrivingListActivity;
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.rvmine.activity.MemberCenterActivity; import com.rv.rvmine.member.MemberCenterActivity;
import com.rv.rvmine.bean.UserInfoBean; import com.rv.rvmine.bean.UserInfoBean;
import com.rv.rvmine.personal.IDCardCertificationActivity; import com.rv.rvmine.personal.IDCardCertificationActivity;
import com.rv.rvmine.rxbusevent.UserInfoEvent; import com.rv.rvmine.rxbusevent.UserInfoEvent;
......
...@@ -67,6 +67,14 @@ public class UserInfoBean extends BaseBean { ...@@ -67,6 +67,14 @@ public class UserInfoBean extends BaseBean {
private String personSign; private String personSign;
//备注 //备注
private String remark; private String remark;
// 剩余天数
private int rentFreeDays ;
// 会员消费次数
private int payCount;
// 购买会员册数
private int buyCount ;
// 会员等级
private int memberLevel;
public Integer getId() { public Integer getId() {
return id; return id;
...@@ -219,5 +227,37 @@ public class UserInfoBean extends BaseBean { ...@@ -219,5 +227,37 @@ public class UserInfoBean extends BaseBean {
public void setRemark(String remark) { public void setRemark(String remark) {
this.remark = remark; this.remark = remark;
} }
public int getRentFreeDays() {
return rentFreeDays;
}
public void setRentFreeDays(int rentFreeDays) {
this.rentFreeDays = rentFreeDays;
}
public int getPayCount() {
return payCount;
}
public void setPayCount(int payCount) {
this.payCount = payCount;
}
public int getBuyCount() {
return buyCount;
}
public void setBuyCount(int buyCount) {
this.buyCount = buyCount;
}
public int getMemberLevel() {
return memberLevel;
}
public void setMemberLevel(int memberLevel) {
this.memberLevel = memberLevel;
}
} }
} }
package com.rv.rvmine.activity; package com.rv.rvmine.member;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
...@@ -7,27 +8,40 @@ import android.support.annotation.Nullable; ...@@ -7,27 +8,40 @@ import android.support.annotation.Nullable;
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.text.TextUtils; import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.ImageView; 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.launcher.ARouter;
import com.base.utils.ui.image.round.RoundImageView; import com.base.utils.ui.image.round.RoundImageView;
import com.frame.base.bus.PaymentFailedEvent;
import com.frame.base.bus.PaymentSuccessfulEvent;
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.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.ViewHolder;
import com.ruiwenliu.wrapper.util.glide.GlideManager; import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.dialog.PaymentTypeSelection;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.BaseStatusActivity; import com.rv.home.rv.module.basic.BaseStatusActivity;
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.rvmine.R; import com.rv.rvmine.R;
import com.rv.rvmine.R2; import com.rv.rvmine.R2;
import com.rv.rvmine.adapter.MemberListAdapter; import com.rv.rvmine.member.adapter.MemberListAdapter;
import com.rv.rvmine.member.bean.BeanTourOrderPay;
import com.rv.rvmine.bean.MemberListBean; import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.member.bean.MemberOrderBean;
import com.rv.rvmine.member.bean.MemberOrderPostBodyBean;
import com.rv.rvmine.member.bean.PayBodyBean;
import com.rv.rvmine.bean.UserInfoBean; import com.rv.rvmine.bean.UserInfoBean;
import com.rv.rvmine.member.presenter.MemberPresenter;
import com.rv.rvmine.personal.IDCardCertificationActivity; import com.rv.rvmine.personal.IDCardCertificationActivity;
import com.tencent.mm.opensdk.modelpay.PayReq;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -35,13 +49,15 @@ import java.util.Map; ...@@ -35,13 +49,15 @@ import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
/******* /*******
* 会员中心 * 会员中心
* created by john * created by john
*/ */
public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
private static final int REQUEST_LOGIN = 10000; private static final int REQUEST_LOGIN = 10000;
private static final int REQUEST_VERIFIED = 10001; private static final int REQUEST_VERIFIED = 10001;
...@@ -58,11 +74,18 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -58,11 +74,18 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
TextView tvVerified; TextView tvVerified;
@BindView(R2.id.recyclerView) @BindView(R2.id.recyclerView)
RecyclerView recyclerView; RecyclerView recyclerView;
@BindView(R2.id.tv_consume_record)
TextView tvConsumeRecord;
@BindView(R2.id.tv_free_day)
TextView tvFreeDay;
@BindView(R2.id.tv_purchase_record)
TextView tvPurchaseRecord;
private MemberListAdapter adapter; private MemberListAdapter adapter;
private UserInfoBean.UserInfo info; private UserInfoBean.UserInfo info;
private IWXAPI api;
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
return new Intent(context, MemberCenterActivity.class); return new Intent(context, MemberCenterActivity.class);
...@@ -75,8 +98,34 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -75,8 +98,34 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
api = WXAPIFactory.createWXAPI(this, RvFrameConfig.APP_ID);
titleView.setVisibility(View.GONE); titleView.setVisibility(View.GONE);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayout.VERTICAL, false)); recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayout.VERTICAL, false));
initRxBus();
}
@SuppressLint("CheckResult")
private void initRxBus() {
RxBus.tObservable(PaymentSuccessfulEvent.class)
.observeOn(Schedulers.newThread())
.subscribe(new Consumer<PaymentSuccessfulEvent>() {
@Override
public void accept(PaymentSuccessfulEvent payEvent) throws Exception {
finish();
}
});
RxBus.tObservable(PaymentFailedEvent.class)
.observeOn(Schedulers.newThread())
.subscribe(new Consumer<PaymentFailedEvent>() {
@Override
public void accept(PaymentFailedEvent payEvent) throws Exception {
if (mActivity.getClass().equals(MemberCenterActivity.class)) {
ARouter.getInstance().build(Constance.ACTIVITY_URL_ORDERLIST).navigation();
finish();
}
}
});
} }
@Override @Override
...@@ -85,14 +134,21 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -85,14 +134,21 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
switch (requestType) { switch (requestType) {
case 0: case 0:
if (adapter == null) { if (adapter == null) {
adapter = new MemberListAdapter(((MemberListBean) result).getData(), MemberCenterActivity.this); adapter = new MemberListAdapter(((MemberListBean) result).getData(), MemberCenterActivity.this, payListener);
recyclerView.setAdapter(adapter); recyclerView.setAdapter(adapter);
}else{ } else {
adapter.setDate(((MemberListBean) result).getData()) ; adapter.setDate(((MemberListBean) result).getData());
} }
break; break;
case 1: case 1:
userInfoData((UserInfoBean) result); setUserInfoData((UserInfoBean) result);
break;
case 2:
MemberOrderBean orderBean = (MemberOrderBean) result;
mPresenter.orderPay(orderBean.getData().getNo(), payType, 1);
break;
case 3:
mPresenter.pay(MemberCenterActivity.this, api, (BeanTourOrderPay) result);
break; break;
} }
} }
...@@ -107,7 +163,6 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -107,7 +163,6 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
} else if (id == R.id.tv_login) { } else if (id == R.id.tv_login) {
//登录 //登录
startActivityForResult(LoginRvActivity.getIntent(MemberCenterActivity.this), REQUEST_LOGIN); startActivityForResult(LoginRvActivity.getIntent(MemberCenterActivity.this), REQUEST_LOGIN);
} else if (id == R.id.tv_verified) { } else if (id == R.id.tv_verified) {
//实名认证 //实名认证
if (isLogin()) return; if (isLogin()) return;
...@@ -140,7 +195,7 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -140,7 +195,7 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
* 获取会员中心信息 * 获取会员中心信息
*/ */
private void getMemberData() { private void getMemberData() {
mPresenter.getData(RvFrameConfig.ADMIN_POST, 0, ApiConfig.HTTP_URL_MEMBER_LIST, MemberListBean.class, false); mPresenter.getData(RvFrameConfig.ADMIN_POST, 0, ApiConfig.HTTP_URL_MEMBER_LIST, MemberListBean.class, true);
} }
/** /**
...@@ -150,11 +205,11 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -150,11 +205,11 @@ public class MemberCenterActivity 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());
mPresenter.getDataHead(RvFrameConfig.ADMIN_POST, 1, ApiConfig.HTTP_URL_APP_USER_INFO, UserInfoBean.class, headMap, false); mPresenter.getDataHead(RvFrameConfig.ADMIN_POST, 1, ApiConfig.HTTP_URL_APP_USER_INFO, UserInfoBean.class, headMap, true);
} }
} }
private void userInfoData(UserInfoBean infoBean) { private void setUserInfoData(UserInfoBean infoBean) {
if (infoBean != null) { if (infoBean != null) {
info = infoBean.getData(); info = infoBean.getData();
if (info != null) { if (info != null) {
...@@ -167,6 +222,10 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -167,6 +222,10 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
tvVerified.setText("已实名认证"); tvVerified.setText("已实名认证");
tvVerified.setEnabled(false); tvVerified.setEnabled(false);
} }
tvConsumeRecord.setText(info.getPayCount() + "\n 消费记录");
tvFreeDay.setText(info.getRentFreeDays() +"\n 可免费租车 (天)");
tvFreeDay.setText(info.getBuyCount() + "\n 购买记录 (次)");
} }
if (TextUtils.isEmpty(OkGoUtil.getToken())) { if (TextUtils.isEmpty(OkGoUtil.getToken())) {
...@@ -176,9 +235,28 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -176,9 +235,28 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
tvVerified.setVisibility(View.GONE); tvVerified.setVisibility(View.GONE);
} else { } else {
tvNickname.setVisibility(View.VISIBLE); tvNickname.setVisibility(View.VISIBLE);
ivMember.setVisibility(View.VISIBLE);
tvLogin.setVisibility(View.GONE); tvLogin.setVisibility(View.GONE);
tvVerified.setVisibility(View.VISIBLE); tvVerified.setVisibility(View.VISIBLE);
if (info != null) {
ivMember.setVisibility(View.VISIBLE);
if (info.getIsMember() == 0) {
ivMember.setImageResource(R.drawable.mycenter_icon_goldmembership_1);
} else {
switch (info.getMemberLevel()) {
case 1:
ivMember.setImageResource(R.drawable.mycenter_icon_ord_membership);
break;
case 2:
ivMember.setImageResource(R.drawable.mycenter_icon_goldmembership);
break;
case 3:
ivMember.setImageResource(R.drawable.mycenter_icon_sil_membership);
break;
default:
break;
}
}
}
} }
} }
} }
...@@ -186,11 +264,50 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -186,11 +264,50 @@ public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (resultCode == REQUEST_LOGIN) { if (requestCode == REQUEST_LOGIN) {
getUserData(); getUserData();
getMemberData(); getMemberData();
} else if (requestCode == REQUEST_VERIFIED) { } else if (requestCode == REQUEST_VERIFIED) {
getUserData(); getUserData();
} }
} }
private int payType = 1;
private MemberListAdapter.PayListener payListener = new MemberListAdapter.PayListener() {
@Override
public void pay(final MemberListBean.MemberCard card) {
new PaymentTypeSelection(MemberCenterActivity.this) {
@Override
public void helper(final ViewHolder helper) {
super.helper(helper);
helper.setText(R.id.tv_amount, String.format("¥%1$s", card.getPrice()));
helper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int i = v.getId();
if (i == R.id.iv_close) {
dismiss();
// createOrder(name, phone, 0);
} else if (i == R.id.ll_item_wechat) {
payType = 1;
helper.setChecked(R.id.rb_wechat, true);
helper.setChecked(R.id.rb_alipay, false);
} else if (i == R.id.ll_item_alipay) {
showToast("该功能还没有开通!");
// payType = 2 ;
// helper.setChecked(R.id.rb_wechat,false);
// helper.setChecked(R.id.rb_alipay,true);
} else if (i == R.id.tv_pay_immediately) {
dismiss();
mPresenter.createOrder(card, 2);
}
}
}, R.id.iv_close, R.id.ll_item_wechat, R.id.ll_item_alipay, R.id.tv_pay_immediately);
}
}.show();
}
};
} }
package com.rv.rvmine.adapter; package com.rv.rvmine.member.adapter;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
...@@ -13,7 +13,6 @@ import android.view.LayoutInflater; ...@@ -13,7 +13,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -21,8 +20,8 @@ import android.widget.TextView; ...@@ -21,8 +20,8 @@ import android.widget.TextView;
import com.ruiwenliu.wrapper.util.glide.GlideManager; import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.rvmine.R; import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean; import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.view.MemberCardDetailView; import com.rv.rvmine.member.view.MemberCardDetailView;
import com.rv.rvmine.view.MemberCardView; import com.rv.rvmine.member.view.MemberCardView;
import java.util.List; import java.util.List;
...@@ -31,14 +30,25 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -31,14 +30,25 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
private Context mContext; private Context mContext;
private List<MemberListBean.MemberCard> mData; private List<MemberListBean.MemberCard> mData;
private int selectPosition; private int selectPosition;
private PayListener payListener;
public MemberListAdapter(@Nullable List<MemberListBean.MemberCard> data, Context context) { public interface PayListener {
void pay(MemberListBean.MemberCard card);
}
public MemberListAdapter(@Nullable List<MemberListBean.MemberCard> data, Context context, PayListener listener) {
this.mContext = context; this.mContext = context;
data.add(0, null); this.payListener = listener;
initData(data);
}
private void initData(List<MemberListBean.MemberCard> data) {
selectPosition = 1; selectPosition = 1;
data.add(0, null);
mData = data; mData = data;
} }
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
...@@ -93,6 +103,15 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -93,6 +103,15 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
} }
}); });
viewHolder.btn_buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (payListener != null) {
payListener.pay(mData.get(selectPosition));
}
}
});
viewHolder.gridview.removeAllViews(); viewHolder.gridview.removeAllViews();
for (int i = 1; i < mData.size(); i++) { for (int i = 1; i < mData.size(); i++) {
if (mData.get(i) != null) { if (mData.get(i) != null) {
...@@ -146,7 +165,7 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -146,7 +165,7 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
} }
public void setDate(List<MemberListBean.MemberCard> data) { public void setDate(List<MemberListBean.MemberCard> data) {
this.mData = data; initData(data);
notifyDataSetChanged(); notifyDataSetChanged();
} }
......
package com.rv.rvmine.member.bean;
import com.google.gson.annotations.SerializedName;
import com.ruiwenliu.wrapper.base.BaseBean;
/**
* Created :Auser
* Date: 2019/6/1.
* Desc:订单支付
*/
public class BeanTourOrderPay extends BaseBean{
/**
* data : {"package":"Sign=WXPay","appid":"wx9c9d978e5698d00f","sign":"180F1140BB832B9AFD2F3A004009C675","partnerid":"1514583081","prepayid":"wx291947357815824dbfc896009915601400","noncestr":"78bf2cc2743032339a08797b0776c78e","timestamp":"1559130404"}
*/
private DataBean data;
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public class DataBean {
/**
* package : Sign=WXPay
* appid : wx9c9d978e5698d00f
* sign : 180F1140BB832B9AFD2F3A004009C675
* partnerid : 1514583081
* prepayid : wx291947357815824dbfc896009915601400
* noncestr : 78bf2cc2743032339a08797b0776c78e
* timestamp : 1559130404
*/
@SerializedName("package")
private String packageX;
private String appid;
private String sign;
private String partnerid;
private String prepayid;
private String noncestr;
private String timestamp;
public String getPackageX() {
return packageX;
}
public void setPackageX(String packageX) {
this.packageX = packageX;
}
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
public String getPartnerid() {
return partnerid;
}
public void setPartnerid(String partnerid) {
this.partnerid = partnerid;
}
public String getPrepayid() {
return prepayid;
}
public void setPrepayid(String prepayid) {
this.prepayid = prepayid;
}
public String getNoncestr() {
return noncestr;
}
public void setNoncestr(String noncestr) {
this.noncestr = noncestr;
}
public String getTimestamp() {
return timestamp;
}
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
}
}
package com.rv.rvmine.member.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
public class MemberOrderBean extends BaseBean {
private MemberOrder data;
private boolean rel;
public MemberOrder getData() {
return data;
}
public void setData(MemberOrder data) {
this.data = data;
}
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
public static class MemberOrder {
private long id;
private String no;
private String name;
private int type;
private long detailId;
private int status;
private long goodsAmount;
private long orderAmount;
private long realAmount;
private String picture;
private String crtTime;
private String crtUser;
private String crtName;
private long userId;
private String updTime;
private String crtHost;
private long version;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public long getDetailId() {
return detailId;
}
public void setDetailId(long detailId) {
this.detailId = detailId;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public long getGoodsAmount() {
return goodsAmount;
}
public void setGoodsAmount(long goodsAmount) {
this.goodsAmount = goodsAmount;
}
public long getOrderAmount() {
return orderAmount;
}
public void setOrderAmount(long orderAmount) {
this.orderAmount = orderAmount;
}
public long getRealAmount() {
return realAmount;
}
public void setRealAmount(long realAmount) {
this.realAmount = realAmount;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public String getCrtTime() {
return crtTime;
}
public void setCrtTime(String crtTime) {
this.crtTime = crtTime;
}
public String getCrtUser() {
return crtUser;
}
public void setCrtUser(String crtUser) {
this.crtUser = crtUser;
}
public String getCrtName() {
return crtName;
}
public void setCrtName(String crtName) {
this.crtName = crtName;
}
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getUpdTime() {
return updTime;
}
public void setUpdTime(String updTime) {
this.updTime = updTime;
}
public String getCrtHost() {
return crtHost;
}
public void setCrtHost(String crtHost) {
this.crtHost = crtHost;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
}
}
package com.rv.rvmine.member.bean;
/******
*
* 会员卡支付请求订单
*/
public class MemberOrderPostBodyBean {
private String couponIds;
private int memberLevel;
private int memberLevelId;
public String getCouponIds() {
return couponIds;
}
public void setCouponIds(String couponIds) {
this.couponIds = couponIds;
}
public int getMemberLevel() {
return memberLevel;
}
public void setMemberLevel(int memberLevel) {
this.memberLevel = memberLevel;
}
public int getMemberLevelId() {
return memberLevelId;
}
public void setMemberLevelId(int memberLevelId) {
this.memberLevelId = memberLevelId;
}
public MemberOrderPostBodyBean(String couponIds, int memberLevel, int memberLevelId) {
this.couponIds = couponIds;
this.memberLevel = memberLevel;
this.memberLevelId = memberLevelId;
}
public MemberOrderPostBodyBean() {
}
}
package com.rv.rvmine.member.bean;
public class PayBodyBean {
private String orderNo;
private int payWay;
private int type;
public PayBodyBean(String orderNo, int payWay, int type) {
this.orderNo = orderNo;
this.payWay = payWay;
this.type = type;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public int getPayWay() {
return payWay;
}
public void setPayWay(int payWay) {
this.payWay = payWay;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}
package com.rv.rvmine.member.presenter;
import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.weight.ToastView;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.member.bean.BeanTourOrderPay;
import com.rv.rvmine.member.bean.MemberOrderBean;
import com.rv.rvmine.member.bean.MemberOrderPostBodyBean;
import com.rv.rvmine.member.bean.PayBodyBean;
import com.tencent.mm.opensdk.modelpay.PayReq;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.yuyife.okgo.OkGoUtil;
import java.util.LinkedHashMap;
import java.util.Map;
public class MemberPresenter extends CommonPresenter {
public void pay(Context context, IWXAPI api, BeanTourOrderPay data) {
try {
PayReq req = new PayReq();
req.appId = data.getData().getAppid();
req.partnerId = data.getData().getPartnerid();
req.prepayId = data.getData().getPrepayid();
req.nonceStr = data.getData().getNoncestr();
req.timeStamp = data.getData().getTimestamp();
req.packageValue = data.getData().getPackageX();
req.sign = data.getData().getSign();
req.extData = "app data"; // optional
api.sendReq(req);
} catch (Exception e) {
ToastView.getInstance(context).showToastContent("异常", Toast.LENGTH_SHORT);
}
}
public void createOrder(MemberListBean.MemberCard card, int position) {
MemberOrderPostBodyBean memberOrderPostBodyBean = new MemberOrderPostBodyBean("", card.getLevel(), card.getId());
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
postBodyData(RvFrameConfig.ADMIN_POST, position, ApiConfig.HTTP_URL_MEMBER_CREATE_ORDER_, MemberOrderBean.class, memberOrderPostBodyBean, headMap, true);
}
/**
* 订单支付
*/
public void orderPay(String orderNo, int payWay, int type) {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null)
headMap.put("Authorization", OkGoUtil.getToken());
postBodyData(RvFrameConfig.VEHICLE_ORDER, 3, ApiConfig.COMMIT_ORDER_PAY, BeanTourOrderPay.class, new PayBodyBean(orderNo, payWay, type), headMap, true);
}
}
package com.rv.rvmine.view; package com.rv.rvmine.member.view;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
......
package com.rv.rvmine.view; package com.rv.rvmine.member.view;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
......
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:gravity="center" android:gravity="center"
android:lines="2" android:lines="2"
android:text="0 \n 消费记录 >" android:text="0 \n 消费记录 "
android:textColor="@color/gray_50000000" android:textColor="@color/gray_50000000"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
...@@ -135,7 +135,7 @@ ...@@ -135,7 +135,7 @@
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:gravity="center" android:gravity="center"
android:lines="2" android:lines="2"
android:text="0 \n 可免费租车 (天) >" android:text="0 \n 可免费租车 (天) "
android:textColor="@color/gray_50000000" android:textColor="@color/gray_50000000"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
...@@ -144,9 +144,9 @@ ...@@ -144,9 +144,9 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:gravity="center" android:gravity="center_horizontal|bottom"
android:lines="2" android:lines="2"
android:text="0 \n 购买记录 (次) >" android:text="0 \n 购买记录 (次)"
android:textColor="@color/gray_50000000" android:textColor="@color/gray_50000000"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
android:layout_marginTop="@dimen/size_20" android:layout_marginTop="@dimen/size_20"
android:orientation="horizontal"> android:orientation="horizontal">
<com.rv.rvmine.view.MemberCardView <com.rv.rvmine.member.view.MemberCardView
android:id="@+id/mcv_discount" android:id="@+id/mcv_discount"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
android:layout_marginLeft="@dimen/size_30" android:layout_marginLeft="@dimen/size_30"
app:card_type="0" /> app:card_type="0" />
<com.rv.rvmine.view.MemberCardView <com.rv.rvmine.member.view.MemberCardView
android:id="@+id/mcv_free_day" android:id="@+id/mcv_free_day"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
android:layout_marginLeft="@dimen/size_30" android:layout_marginLeft="@dimen/size_30"
app:card_type="1" /> app:card_type="1" />
<com.rv.rvmine.view.MemberCardView <com.rv.rvmine.member.view.MemberCardView
android:id="@+id/mcv_free_outdoors" android:id="@+id/mcv_free_outdoors"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
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