Commit 3987a6c4 authored by maxiaoliang's avatar maxiaoliang

修改

parent 35b57132
......@@ -162,4 +162,12 @@ public interface IUserInfoApi {
@POST(NetConfig.User.URL_PAY_RIGHTS_ORDER)
Observable<Response<AliPayEntity>> aliPayRights(@Query("goodsId") String goodsId, @Query("payType") String payType, @Query("phone") String phone,@Query("rechargeType") String rechargeType,@Query("skill") Boolean skill,@Query("outTradeNo") String outTradeNo);
/**
* 权益支付宝支付
*
* @return
*/
@POST(NetConfig.User.URL_PAY_RIGHTS_ORDER)
Observable<Response<AliPayEntity>> aliPayRights(@Query("goodsId") String goodsId, @Query("payType") String payType, @Query("phone") String phone,@Query("rechargeType") String rechargeType,@Query("skill") Boolean skill,@Query("outTradeNo") String outTradeNo,@Query("couponId") String couponId,@Query("mobileOp") String mobileOp);
}
......@@ -21,8 +21,13 @@ class AppInEntity {
var tabs: List<TabEntity>? = null//tab
var pay_h5_url: String = ""//支付配置
var mobileOpList:List<MobileOpEntity>?=null
}
class MobileOpEntity {
var name:String?=""
var value:String?=""
}
class PayFun : Serializable {
......
......@@ -36,5 +36,6 @@
<color name="color_e09a9a">#E09A9A</color>
<color name="color_b28a17">#B28A17</color>
<color name="color_ddcb97">#DDCB97</color>
<color name="color_ba7e36">#BA7E36</color>
</resources>
\ No newline at end of file
package com.zxbw.modulemain.adapter
import android.app.Activity
import android.graphics.Color
import android.graphics.Paint
import android.view.LayoutInflater
import android.view.View
......@@ -11,39 +12,60 @@ import androidx.recyclerview.widget.RecyclerView
import com.zxbw.modulemain.R
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.qy.RightsDetailEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener
class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.ViewHolder> {
class RechargeAdapter : BaseRecyclerAdapter<MemberEntity.ProductDetail, RechargeAdapter.ViewHolder> {
private var mContext: Activity? = null
private val listener: OnRecycleItemClickListener<RightsDetailEntity>
private val listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
private val mSelectColor: Int
private val mUnSelectColor: Int
private var position = -1
constructor(
content: Activity?,
listener: OnRecycleItemClickListener<RightsDetailEntity>
listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
) : super() {
mContext = content
this.listener = listener
mSelectColor = AppContext.get().resources.getColor(R.color.color_ba7e36)
mUnSelectColor = AppContext.get().resources.getColor(R.color.color_333333)
}
fun setPosition(pos: Int) {
position = pos
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
// var bean = mList[position]
// holder.id_tv_cards_name?.text = "${bean.brand}${bean.goodsName}${bean.category}"
// holder.id_tv_cagte_name?.text = "${bean.category}"
// // holder.id_goods_icon?.setLoadImageUrl(bean.icon,false)
// holder.id_goods_yuan_jia?.text = "${bean.goodsName}"
// holder.id_tv_card_discount?.text = "会员专享${bean.costDiscount}折"
// holder.id_tv_card_price?.text = "${bean.salePrice}"
// holder.id_tv_guanfang_price?.text = "官方价 ¥${bean.originPrice}元"
// holder.id_tv_guanfang_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG) //中划线
override fun onBindViewHolder(holder: ViewHolder, pos: Int) {
var bean = mList[pos]
if(pos==position){
holder.id_ll_item?.setBackgroundResource(R.drawable.shape_edd49d_r6)
holder.id_tv_activity_price_text?.setBackgroundResource(R.drawable.shape_edd49d_r11)
holder.id_tv_activity_price_text?.setTextColor(mSelectColor)
holder.id_tv_price?.setTextColor(mSelectColor)
holder.id_tv_orgin_price?.setTextColor(mSelectColor)
holder.id_tv_rmb?.setTextColor(mSelectColor)
listener.onItemClick(holder.itemView, pos, bean)
}else{
holder.id_ll_item?.setBackgroundResource(R.drawable.shape_cbcbcb_r6)
holder.id_tv_activity_price_text?.setBackgroundResource(R.drawable.shape_a3a4a6_r10)
holder.id_tv_activity_price_text?.setTextColor(Color.parseColor("#ffffff"))
holder.id_tv_price?.setTextColor(mUnSelectColor)
holder.id_tv_orgin_price?.setTextColor(Color.parseColor("#999999"))
holder.id_tv_rmb?.setTextColor(mUnSelectColor)
}
holder.id_tv_activity_price_text?.text = "活动价"
holder.id_tv_price?.text="${bean.cash}"
holder.id_tv_orgin_price?.text="原价 ¥${bean.originalPrice}"
holder.id_tv_orgin_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG)
// holder.id_ll_item?.setOnClickListener {
// listener.onItemClick(it, position, bean)
// }
}
override fun getItemCount(): Int {
return 3
}
// override fun getItemCount(): Int {
// return 3
// }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
......@@ -52,7 +74,7 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
)
}
class ViewHolder : RecyclerView.ViewHolder {
inner class ViewHolder : RecyclerView.ViewHolder {
var id_ll_item: LinearLayout?
// var id_goods_icon: RecycleImageView?
......@@ -72,6 +94,14 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
id_tv_rmb = itemView.findViewById<TextView>(R.id.id_tv_rmb)
id_tv_price = itemView.findViewById<TextView>(R.id.id_tv_price)
id_tv_orgin_price = itemView.findViewById<TextView>(R.id.id_tv_orgin_price)
id_ll_item?.setOnClickListener {
val pos = adapterPosition
if (pos >= 0 && pos < mList.size) {
setPosition(pos)
notifyDataSetChanged()
}
}
}
}
}
\ No newline at end of file
package com.zxbw.modulemain.contract
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.net.model.video.MemberEntity
class RechargeContract {
interface View {
fun setData()
fun setPayList(result: MemberEntity)
fun setCouponsList(result: List<CouponsEntity>?)
fun requestOrderSuc(result: AliPayEntity)
fun requestOrderFail(errorMsg: String)
fun verifyOrderSuc(order: String)
fun verifyOrderFail(errorMsg: String)
fun setAppInfo(result: AppInEntity?)
}
interface Presenter {
fun getFetchCard(phone: String)
fun getPayList()
fun getPayList(payModel: String)
fun requestRightsAliPay(
goodsId: String,
payType: String,
phone: String,
type: String,
skill: Boolean?,
outTradeNo: String?,
couponId: String?,
mobileOp: String?
)
fun verifyPay(order: String?, payType: Int)
fun appInfo()
}
}
\ No newline at end of file
......@@ -22,6 +22,7 @@ class CardDetailPresenter : CardDetailContract.Presenter {
override fun requestRightsAliPay(goodsId: String, payType: String, phone: String,type:String,skill:Boolean?,outTradeNo:String?) {
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone,type,skill,outTradeNo)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AliPayEntity>() {
......
package com.zxbw.modulemain.presenter
import android.util.Log
import android.text.TextUtils
import com.zxbw.modulemain.contract.RechargeContract
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.qy.SkillEntity
import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.net.model.uc.PayVerifyEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.UserDataUtils
import org.json.JSONObject
class RechargePresenter : RechargeContract.Presenter {
......@@ -29,7 +34,120 @@ class RechargePresenter : RechargeContract.Presenter {
})
}
override fun getPayList() {
override fun getPayList(payModel: String) {
ApiClient.videoInfoApi.getPayConfig(payModel).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<MemberEntity>() {
override fun onSuccess(result: MemberEntity?) {
if (!result?.goodsList.isNullOrEmpty()) {
if (result?.goodsList?.size!! >= 1) {
mView.setPayList(result)
}
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
override fun requestRightsAliPay(
goodsId: String,
payType: String,
phone: String,
type: String,
skill: Boolean?,
outTradeNo: String?,
couponId: String?,
mobileOp: String?
) {
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone,type,skill,outTradeNo,couponId,mobileOp)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AliPayEntity>() {
override fun onSuccess(result: AliPayEntity?) {
if (result != null) {
mView?.requestOrderSuc(result)
} else {
mView?.requestOrderFail("zfb订单支付请求成功 数据为空")
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mView?.verifyOrderFail("zfb订单支付请求失败 code:${code} msg:${errorMsg}")
}
})
}
override fun verifyPay(order: String?, payType: Int) {
try {
if (payType == 1) {
val json = JSONObject(order)
val obj = json.getJSONObject("alipay_trade_app_pay_response")
val tradeOrder = obj.getString("trade_no")
val outTradeOrder = obj.getString("out_trade_no")
requestVerify(outTradeOrder, tradeOrder, payType)
} else if (payType == 2) {
val json = JSONObject(order)
val tradeOrder = ""
val outTradeOrder = json.getString("extData")
requestVerify(outTradeOrder, tradeOrder, payType)
} else if (payType == 11) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
} else if (payType == 12) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
} else if (payType == 13) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
}else if (payType == 21) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
} else {
mView?.verifyOrderFail("支付成功后 订单id为null")
}
}else{
mView.verifyOrderFail("支付成功后 开始校验订单异常 e:支付方式异常$payType")
}
} catch (e: Exception) {
mView.verifyOrderFail("支付成功后 开始校验订单异常 e:${e.cause} msg:${e.message}")
}
}
override fun appInfo() {
ApiClient.homeApi.getAppInfo()
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AppInEntity>() {
override fun onSuccess(result: AppInEntity?) {
if (result != null) {
mView.setAppInfo(result)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
private fun requestVerify(outTradeOrder: String, tradeOrder: String, payType: Int) {
ApiClient.userInfoAPi.verifyPay(outTradeOrder, tradeOrder, payType)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<PayVerifyEntity>() {
override fun onSuccess(result: PayVerifyEntity) {
UserDataUtils.updateUserInfo(null)
if (TextUtils.equals("200", result.status)) {
mView?.verifyOrderSuc(result.payStatus)
} else {
mView?.verifyOrderFail("订单校验请求成功 校验异常${result?.status?:-1}")
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mView?.verifyOrderFail("订单校验请求失败:code:${code} msg:${errorMsg}")
}
})
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffedd49d" />
<corners
android:bottomLeftRadius="11dp"
android:bottomRightRadius="11dp"
android:topLeftRadius="11dp"
android:topRightRadius="11dp" />
</shape>
\ No newline at end of file
......@@ -63,6 +63,7 @@
</LinearLayout>
<EditText
android:id="@+id/id_edit_user_phone"
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginTop="16dp"
......@@ -70,7 +71,6 @@
android:background="@drawable/shape_ffffff_r6"
android:lines="1"
android:padding="10dp"
android:text="132789"
android:textColor="@color/color_999999"
android:inputType="phone"
android:textCursorDrawable="@drawable/cursor_color"
......@@ -151,7 +151,6 @@
android:drawableRight="@drawable/icon_fanhui_chengse"
android:drawablePadding="4dp"
android:gravity="center_vertical"
android:text="您已选择5元优惠券"
android:textColor="#C46B00"
android:textSize="12sp" />
</RelativeLayout>
......@@ -311,6 +310,7 @@
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_cash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
......@@ -321,6 +321,7 @@
</LinearLayout>
<TextView
android:id="@+id/id_tv_orgin_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="27dp"
......@@ -331,6 +332,7 @@
</LinearLayout>
<TextView
android:id="@+id/id_tv_chongzhi"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1"
......@@ -341,5 +343,26 @@
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<RelativeLayout
android:id="@+id/id_rl_h5_pay_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:visibility="gone">
<WebView
android:id="@+id/id_rights_pay_web_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/id_img_close_pay_web"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/id_rights_pay_web_view"
android:padding="10dp"
android:src="@drawable/icon_guanbi" />
</RelativeLayout>
</RelativeLayout>
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