Commit 8bd41f34 authored by linfeng's avatar linfeng

文件更新

parents 6d2b0e0d 08971661
...@@ -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,19 +41,24 @@ public class ApiConfig { ...@@ -41,19 +41,24 @@ 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";//订单评价保存
public static String QUERY_HOT_LIST = RvFrameConfig.HOST + "/api/tour/tourTag/app/unauth/getTagList"; //热门游 路线 get public static String QUERY_HOT_LIST = RvFrameConfig.HOST + "/api/tour/tourTag/app/unauth/getTagList"; //热门游 路线 get
public static String QUERY_HOT_GOODLIST = RvFrameConfig.HOST + "/api/app/home/app/unauth/goodList"; //推荐商品 public static String QUERY_HOT_GOODLIST = RvFrameConfig.HOST + "/api/app/home/app/unauth/goodList"; //推荐商品
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"; //订单支付
} }
...@@ -38,6 +38,8 @@ dependencies { ...@@ -38,6 +38,8 @@ dependencies {
implementation 'com.github.zcweng:switch-button:0.0.3@aar' implementation 'com.github.zcweng:switch-button:0.0.3@aar'
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'
implementation project(':component_dialog')
annotationProcessor'com.alibaba:arouter-compiler:1.1.4' annotationProcessor'com.alibaba:arouter-compiler:1.1.4'
implementation 'top.zibin:Luban:1.1.3' implementation 'top.zibin:Luban:1.1.3'
} }
...@@ -2,4 +2,8 @@ ...@@ -2,4 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rv.rvmine"> package="com.rv.rvmine">
<application>
<activity android:name=".member.MemberCenterActivity"></activity>
</application>
</manifest> </manifest>
\ No newline at end of file
...@@ -28,6 +28,7 @@ import com.rv.home.rv.module.basic.presenter.CommonPresenter; ...@@ -28,6 +28,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.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;
...@@ -95,7 +96,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> { ...@@ -95,7 +96,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
@BindView(R2.id.mine_banner) @BindView(R2.id.mine_banner)
Banner mineBanner; Banner mineBanner;
private UserInfoBean.UserInfo info; private UserInfoBean.UserInfo info;
public static MineFragment getInstance(int type) { public static MineFragment getInstance(int type) {
Bundle bundl = new Bundle(); Bundle bundl = new Bundle();
...@@ -161,7 +162,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> { ...@@ -161,7 +162,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
@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.rl_item_traveling, R2.id.rl_item_completed, R2.id.rl_item_all, R2.id.rl_item_collection, R2.id.rl_item_personal_information, R2.id.rl_item_traveling, R2.id.rl_item_completed, R2.id.rl_item_all, R2.id.rl_item_collection, R2.id.rl_item_personal_information,
R2.id.rl_item_setting, R2.id.rl_item_driver, R2.id.rl_item_traveler}) R2.id.rl_item_setting, R2.id.rl_item_driver, R2.id.rl_item_traveler, R2.id.rl_item_my_pat, R2.id.tv_view_privileges})
public void onViewClicked(View view) { public void onViewClicked(View view) {
int id = view.getId(); int id = view.getId();
if (id == R.id.iv_avatar) { if (id == R.id.iv_avatar) {
...@@ -202,7 +203,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> { ...@@ -202,7 +203,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
if (isLogin()) return; if (isLogin()) return;
startActivity(OrderListActivity.getIntent(_mActivity, 4)); startActivity(OrderListActivity.getIntent(_mActivity, 4));
} else if (id == R.id.rl_item_my_release) { }else if (id ==R.id.rl_item_my_release){
//我的发布 //我的发布
if (isLogin()) return; if (isLogin()) return;
...@@ -214,26 +215,30 @@ public class MineFragment extends BaseFragment<CommonPresenter> { ...@@ -214,26 +215,30 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
} else if (id == R.id.rl_item_personal_information) { } else if (id == R.id.rl_item_personal_information) {
//个人资料 //个人资料
if (isLogin()) return; if (isLogin()) return;
startActivity(PersonalInformationActivity.getIntent(_mActivity, info)); startActivity(PersonalInformationActivity.getIntent(_mActivity,info));
} else if (id == R.id.rl_item_setting) { } else if (id == R.id.rl_item_setting) {
//设置 //设置
if (isLogin()) return; if (isLogin()) return;
startActivityForResult(SettingActivity.getIntent(_mActivity), 101); startActivityForResult(SettingActivity.getIntent(_mActivity), 101);
} else if (id == R.id.rl_item_driver) { }else if (id == R.id.rl_item_driver){
//驾驶人 //驾驶人
if (isLogin()) return; if (isLogin()) return;
startActivity(DrivingListActivity.getIntent(_mActivity, null)); startActivity(DrivingListActivity.getIntent(_mActivity,null));
} else if (id == R.id.rl_item_traveler) { }else if (id == R.id.rl_item_traveler){
//出游人 //出游人
if (isLogin()) return; if (isLogin()) return;
startActivity(ChooseAVisitorActivity.getIntent(_mActivity)); startActivity(ChooseAVisitorActivity.getIntent(_mActivity));
} else if (id == R.id.rl_item_my_pat) {
//我的拍拍
} else if (id == R.id.tv_view_privileges) {
startActivity(MemberCenterActivity.getIntent(_mActivity));
} }
} }
@Override @Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 101 && resultCode == 201) { if (requestCode == 101 && resultCode == 201) {
ivAvatar.setImageResource(R.drawable.common_icon_avatar_default); ivAvatar.setImageResource(R.drawable.common_icon_avatar_default);
...@@ -323,7 +328,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> { ...@@ -323,7 +328,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
private void userInfoData(UserInfoBean infoBean) { private void userInfoData(UserInfoBean infoBean) {
if (infoBean != null) { if (infoBean != null) {
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.getUsername());
//更新实名信息 //更新实名信息
...@@ -359,13 +364,11 @@ public class MineFragment extends BaseFragment<CommonPresenter> { ...@@ -359,13 +364,11 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
ivMember.setVisibility(View.GONE); ivMember.setVisibility(View.GONE);
tvLogin.setVisibility(View.VISIBLE); tvLogin.setVisibility(View.VISIBLE);
tvVerified.setVisibility(View.GONE); tvVerified.setVisibility(View.GONE);
tvViewPrivileges.setText("会员中心");
} else { } else {
tvNickname.setVisibility(View.VISIBLE); tvNickname.setVisibility(View.VISIBLE);
ivMember.setVisibility(View.VISIBLE); ivMember.setVisibility(View.VISIBLE);
tvLogin.setVisibility(View.GONE); tvLogin.setVisibility(View.GONE);
tvVerified.setVisibility(View.VISIBLE); tvVerified.setVisibility(View.VISIBLE);
tvViewPrivileges.setText("查看会员特权");
} }
} }
} }
......
package com.rv.rvmine.bean;
import com.google.gson.annotations.SerializedName;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.util.List;
public class MemberListBean extends BaseBean {
@SerializedName("data")
private List<MemberCard> data;
@SerializedName("rel")
private boolean rel;
public List<MemberCard> getData() {
return data;
}
public void setData(List<MemberCard> data) {
this.data = data;
}
/*****
* 会员卡
*/
public class MemberCard {
private int id;
private String name;
private String icon;
private int level;
private String describe;
private long endDate;
private int discount;
private int isdel;
private int price;
private int number;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getDescribe() {
return describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public long getEndDate() {
return endDate;
}
public void setEndDate(long endDate) {
this.endDate = endDate;
}
public int getDiscount() {
return discount;
}
public void setDiscount(int discount) {
this.discount = discount;
}
public int getIsdel() {
return isdel;
}
public void setIsdel(int isdel) {
this.isdel = isdel;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
}
...@@ -67,10 +67,14 @@ public class UserInfoBean extends BaseBean { ...@@ -67,10 +67,14 @@ public class UserInfoBean extends BaseBean {
private String personSign; private String personSign;
//备注 //备注
private String remark; private String remark;
// 剩余天数
private String memberLevel;// 会员等级 private int rentFreeDays ;
// 会员消费次数
private String rentFreeDays;// 剩余天数 private int payCount;
// 购买会员册数
private int buyCount ;
// 会员等级
private int memberLevel;
public Integer getId() { public Integer getId() {
return id; return id;
...@@ -224,20 +228,36 @@ public class UserInfoBean extends BaseBean { ...@@ -224,20 +228,36 @@ public class UserInfoBean extends BaseBean {
this.remark = remark; this.remark = remark;
} }
public String getMemberLevel() { public int getRentFreeDays() {
return memberLevel; return rentFreeDays;
} }
public void setMemberLevel(String memberLevel) { public void setRentFreeDays(int rentFreeDays) {
this.memberLevel = memberLevel; this.rentFreeDays = rentFreeDays;
} }
public String getRentFreeDays() { public int getPayCount() {
return rentFreeDays; return payCount;
} }
public void setRentFreeDays(String rentFreeDays) { public void setPayCount(int payCount) {
this.rentFreeDays = rentFreeDays; 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.member.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.member.view.MemberCardDetailView;
import com.rv.rvmine.member.view.MemberCardView;
import java.util.List;
public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context mContext;
private List<MemberListBean.MemberCard> mData;
private int selectPosition;
private PayListener payListener;
public interface PayListener {
void pay(MemberListBean.MemberCard card);
}
public MemberListAdapter(@Nullable List<MemberListBean.MemberCard> data, Context context, PayListener listener) {
this.mContext = context;
this.payListener = listener;
initData(data);
}
private void initData(List<MemberListBean.MemberCard> data) {
selectPosition = 1;
data.add(0, null);
mData = data;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (i == 0) {
return new HeadViewHolder(LayoutInflater.from(mContext).inflate(R.layout.view_member_privilege, viewGroup, false));
}
return new CommonViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_member_detail, viewGroup, false));
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
MemberListBean.MemberCard bean = mData.get(i);
if (bean == null) {
setHeadViewData((HeadViewHolder) viewHolder);
} else {
setCommonViewData((CommonViewHolder) viewHolder, bean);
}
}
@Override
public int getItemCount() {
return mData.size();
}
@Override
public int getItemViewType(int position) {
if (mData.get(position) == null) {
return 0;
}
return 1;
}
private void setHeadViewData(final HeadViewHolder viewHolder) {
SpannableString spannableString = new SpannableString(viewHolder.tv_agreement.getText());
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 6, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
viewHolder.tv_agreement.setText(spannableString);
viewHolder.img_agree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (viewHolder.agreeState == 1) {
viewHolder.agreeState = 0;
viewHolder.img_agree.setImageResource(R.drawable.common_icon_radio_unche);
viewHolder.btn_buy.setEnabled(false);
} else {
viewHolder.agreeState = 1;
viewHolder.img_agree.setImageResource(R.drawable.common_icon_selected);
viewHolder.btn_buy.setEnabled(true);
}
}
});
viewHolder.btn_buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (payListener != null) {
payListener.pay(mData.get(selectPosition));
}
}
});
viewHolder.gridview.removeAllViews();
for (int i = 1; i < mData.size(); i++) {
if (mData.get(i) != null) {
final int finalI = i;
MemberCardDetailView cardDetailView = new MemberCardDetailView(mContext, mData.get(i), new MemberCardDetailView.MyClickListener() {
@Override
public void onClick(MemberCardDetailView view) {
selectPosition = finalI;
viewHolder.btn_buy.setText("立即开通" + mData.get(selectPosition).getName());
for (int i = 0; i < viewHolder.gridview.getChildCount(); i++) {
if (view != viewHolder.gridview.getChildAt(i)) {
((MemberCardDetailView) viewHolder.gridview.getChildAt(i)).unSelect();
}
}
}
});
if (i == selectPosition) {
cardDetailView.select();
viewHolder.btn_buy.setText("立即开通" + mData.get(selectPosition).getName());
}
viewHolder.gridview.addView(cardDetailView);
}
}
}
protected void setCommonViewData(CommonViewHolder viewHolder, MemberListBean.MemberCard bean) {
if (!TextUtils.isEmpty(bean.getName())) {
viewHolder.tv_member_type.setText(bean.getName());
viewHolder.btn_buy.setText("立即开通" + bean.getName());
}
viewHolder.btn_buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
if (!TextUtils.isEmpty(bean.getIcon()))
new GlideManager(mContext).loadImage(bean.getIcon(), viewHolder.img_icon);
SpannableString spannableString = new SpannableString(bean.getName() + bean.getPrice() + "元 (永久)");
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#F25B5B")), bean.getName().length(), spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
viewHolder.tv_member_type_price_time.setText(spannableString);
if (!TextUtils.isEmpty(bean.getDescribe())) {
viewHolder.tv_describe.setText(bean.getDescribe());
}
viewHolder.mcv_discount.setValue(bean.getDiscount());
viewHolder.mcv_free_day.setValue(bean.getNumber());
}
public void setDate(List<MemberListBean.MemberCard> data) {
initData(data);
notifyDataSetChanged();
}
public class HeadViewHolder extends RecyclerView.ViewHolder {
int agreeState = 1; // 选中状态
LinearLayout gridview;
TextView tv_agreement;
ImageView img_agree;
Button btn_buy;
public HeadViewHolder(@NonNull View itemView) {
super(itemView);
gridview = itemView.findViewById(R.id.gridview);
tv_agreement = itemView.findViewById(R.id.tv_agreement);
img_agree = itemView.findViewById(R.id.img_agree);
btn_buy = itemView.findViewById(R.id.btn_buy);
}
}
public class CommonViewHolder extends RecyclerView.ViewHolder {
TextView tv_member_type;
MemberCardView mcv_discount, mcv_free_day, mcv_free_outdoors;
ImageView img_icon;
TextView tv_member_type_price_time;
TextView tv_describe;
Button btn_buy;
public CommonViewHolder(@NonNull View itemView) {
super(itemView);
tv_member_type = itemView.findViewById(R.id.tv_member_type);
mcv_discount = itemView.findViewById(R.id.mcv_discount);
mcv_free_day = itemView.findViewById(R.id.mcv_free_day);
mcv_free_outdoors = itemView.findViewById(R.id.mcv_free_outdoors);
img_icon = itemView.findViewById(R.id.img_icon);
tv_member_type_price_time = itemView.findViewById(R.id.tv_member_type_price_time);
tv_describe = itemView.findViewById(R.id.tv_describe);
btn_buy = itemView.findViewById(R.id.btn_buy);
}
}
}
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.member.view;
import android.content.Context;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean;
public class MemberCardDetailView extends LinearLayout {
private int state = 0; // 未选中状态
private MemberListBean.MemberCard memberCard;
private RelativeLayout rl_content;
private TextView tv_price;
private TextView tv_discount;
private TextView tv_free_day;
private TextView tv_type;
private MyClickListener clickListener;
public MemberCardDetailView(Context context, MemberListBean.MemberCard memberCard, MyClickListener clickListener) {
super(context);
this.memberCard = memberCard;
this.clickListener = clickListener;
initView();
}
private void initView() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_member_detail_view, null);
rl_content = view.findViewById(R.id.rl_content);
tv_price = view.findViewById(R.id.tv_price);
tv_discount = view.findViewById(R.id.tv_discount);
tv_free_day = view.findViewById(R.id.tv_free_day);
tv_type = view.findViewById(R.id.tv_type_icon);
if (memberCard != null) {
SpannableString s = new SpannableString("¥" + memberCard.getPrice());
s.setSpan(new AbsoluteSizeSpan(12, true), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new AbsoluteSizeSpan(18, true), 1, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 1, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_price.setText(s);
tv_discount.setText("永久" + memberCard.getDiscount() / 10 + "折租车");
tv_free_day.setText(memberCard.getNumber() + "天免费租车");
tv_type.setText(memberCard.getName());
switch (memberCard.getLevel()) {
case 1:
tv_type.setBackgroundResource(R.drawable.member_icon_reg_members);
break;
case 2:
tv_type.setBackgroundResource(R.drawable.member_icon_gold_membership);
break;
case 3:
tv_type.setBackgroundResource(R.drawable.member_icon_dia_membership);
break;
}
}
rl_content.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (state == 0) {
state = 1;
rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_selected);
clickListener.onClick(MemberCardDetailView.this);
}
}
});
addView(view);
}
public void unSelect() {
state = 0;
rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_unselected);
}
public void select() {
state = 1;
rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_selected);
}
public interface MyClickListener {
void onClick(MemberCardDetailView view);
}
}
package com.rv.rvmine.member.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.rv.rvmine.R;
public class MemberCardView extends LinearLayout {
private TextView tvText;
private ImageView imgIcon;
private String text;
private int res;
private int type = 0;
private int[] imgDiscounts = {
R.drawable.member_discount_6,
R.drawable.member_discount_7,
R.drawable.member_discount_8
};
private int[] imgFreeDays = {
R.drawable.member_free_day_5,
R.drawable.member_free_day_12,
R.drawable.member_free_day_28
};
public MemberCardView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.member_view);
type = ta.getInt(R.styleable.member_view_card_type, 0);
ta.recycle();
initView();
}
private void initView() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_member_view, null);
tvText = view.findViewById(R.id.tv_text);
imgIcon = view.findViewById(R.id.img_ic);
if (type == 0) {
text = "永久%d折";
} else if (type == 1) {
text = "%d天免费用车";
} else if (type == 2) {
tvText.setText(R.string.tv_outdoors_act);
imgIcon.setImageResource(R.drawable.member_icon_free);
}
addView(view);
}
/******
* 设置
*/
public void setValue(int value) {
if (tvText != null && imgIcon != null) {
switch (type) {
case 0:
if (value == 60) {
res = imgDiscounts[0];
} else if (value == 70) {
res = imgDiscounts[1];
} else
res = imgDiscounts[2];
tvText.setText(String.format(text, (int) (value / 10)));
imgIcon.setImageResource(res);
break;
case 1:
if (value == 28) {
res = imgFreeDays[2];
} else if (value == 12) {
res = imgFreeDays[1];
} else
res = imgFreeDays[0];
tvText.setText(String.format(text, value));
imgIcon.setImageResource(res);
break;
default:
break;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<solid android:color="@color/input_grap" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="30dp" />
<solid android:color="@color/gray_FFB74B" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<solid android:color="@color/nimeBg" />
<stroke
android:width="0.2dp"
android:color="@color/gray_FFB74B" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<solid android:color="@color/white" />
<stroke
android:width="0.2dp"
android:color="@color/input_grap" />
</shape>
\ No newline at end of file
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_marginLeft="@dimen/size_20"
android:textStyle="bold"
android:id="@+id/tv_member_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/size_18" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20"
android:orientation="horizontal">
<com.rv.rvmine.member.view.MemberCardView
android:id="@+id/mcv_discount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_30"
app:card_type="0" />
<com.rv.rvmine.member.view.MemberCardView
android:id="@+id/mcv_free_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/size_30"
app:card_type="1" />
<com.rv.rvmine.member.view.MemberCardView
android:id="@+id/mcv_free_outdoors"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/size_30"
app:card_type="2" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_20"
android:gravity="center|left"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_icon"
android:layout_width="@dimen/size_20"
android:layout_height="@dimen/size_20" />
<TextView
android:textColor="@color/black"
android:id="@+id/tv_member_type_price_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp" />
</LinearLayout>
<TextView
android:layout_marginTop="@dimen/dp_10"
android:id="@+id/tv_describe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginRight="@dimen/size_30"
android:background="@drawable/shape_rv_bg_dark_gray"
android:minHeight="@dimen/size_120"
android:padding="@dimen/dp_10" />
<Button
android:id="@+id/btn_buy"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_30"
android:layout_marginBottom="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_yellow"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/text_16" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:paddingRight="@dimen/dp_10">
<RelativeLayout
android:id="@+id/rl_content"
android:layout_width="@dimen/size_100"
android:layout_height="@dimen/size_150"
android:layout_marginTop="@dimen/size_15"
android:background="@drawable/shape_rv_bg_member_unselected">
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_40"
android:gravity="center|bottom"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/tv_discount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_free_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/size_20"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</RelativeLayout>
<TextView
android:id="@+id/tv_type_icon"
android:layout_width="@dimen/size_60"
android:layout_height="@dimen/size_30"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:textColor="@color/white" />
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/img_ic"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50" />
<TextView
android:id="@+id/tv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_12"
android:gravity="center"
android:textColor="@color/black"
android:textSize="16sp" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="@dimen/size_200"
android:layout_height="@dimen/dp_40"
android:layout_marginTop="@dimen/size_15"
android:src="@drawable/member_image_mem_privilege_title" />
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20"
android:layout_marginRight="@dimen/dp_10"
android:numColumns="3"
android:orientation="horizontal" />
</HorizontalScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_agree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:src="@drawable/common_icon_selected" />
<TextView
android:id="@+id/tv_agreement"
android:layout_width="match_parent"
android:layout_height="@dimen/size_30"
android:layout_marginLeft="@dimen/size_5"
android:drawablePadding="@dimen/size_5"
android:gravity="left|center_vertical"
android:text="@string/tv_agreement" />
</LinearLayout>
<Button
android:id="@+id/btn_buy"
android:layout_width="match_parent"
android:layout_height="@dimen/size_38"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_20"
android:layout_marginBottom="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_yellow"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/text_18" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="member_view">
<attr name="card_type" format="integer" />
</declare-styleable>
</resources>
...@@ -4,4 +4,6 @@ ...@@ -4,4 +4,6 @@
<color name="colorPrimaryDark">#00574B</color> <color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color> <color name="colorAccent">#D81B60</color>
<color name="nimeBg">#FFE49A</color> <color name="nimeBg">#FFE49A</color>
<color name="black">#000000</color>
<color name="input_grap">#EEEEEE</color>
</resources> </resources>
This diff is collapsed.
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