Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
X
xxsq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王雪伟
xxsq
Commits
3987a6c4
Commit
3987a6c4
authored
Jun 10, 2022
by
maxiaoliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
35b57132
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
518 additions
and
32 deletions
+518
-32
IUserInfoApi.java
cms/src/main/java/com/zxhl/cms/net/api/IUserInfoApi.java
+8
-0
AppInEntity.kt
cms/src/main/java/com/zxhl/cms/net/model/box/AppInEntity.kt
+5
-0
colors.xml
cms/src/main/res/values/colors.xml
+1
-0
RechargeActivity.kt
...ain/java/com/zxbw/modulemain/activity/RechargeActivity.kt
+271
-6
RechargeAdapter.kt
.../main/java/com/zxbw/modulemain/adapter/RechargeAdapter.kt
+49
-19
RechargeContract.kt
...ain/java/com/zxbw/modulemain/contract/RechargeContract.kt
+26
-2
CardDetailPresenter.kt
...java/com/zxbw/modulemain/presenter/CardDetailPresenter.kt
+1
-0
RechargePresenter.kt
...n/java/com/zxbw/modulemain/presenter/RechargePresenter.kt
+121
-3
shape_edd49d_r11.xml
moduleMain/src/main/res/drawable/shape_edd49d_r11.xml
+11
-0
activity_layout_recharge.xml
moduleMain/src/main/res/layout/activity_layout_recharge.xml
+25
-2
No files found.
cms/src/main/java/com/zxhl/cms/net/api/IUserInfoApi.java
View file @
3987a6c4
...
@@ -162,4 +162,12 @@ public interface IUserInfoApi {
...
@@ -162,4 +162,12 @@ public interface IUserInfoApi {
@POST
(
NetConfig
.
User
.
URL_PAY_RIGHTS_ORDER
)
@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
);
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
);
}
}
cms/src/main/java/com/zxhl/cms/net/model/box/AppInEntity.kt
View file @
3987a6c4
...
@@ -21,8 +21,13 @@ class AppInEntity {
...
@@ -21,8 +21,13 @@ class AppInEntity {
var
tabs
:
List
<
TabEntity
>?
=
null
//tab
var
tabs
:
List
<
TabEntity
>?
=
null
//tab
var
pay_h5_url
:
String
=
""
//支付配置
var
pay_h5_url
:
String
=
""
//支付配置
var
mobileOpList
:
List
<
MobileOpEntity
>?=
null
}
class
MobileOpEntity
{
var
name
:
String
?=
""
var
value
:
String
?=
""
}
}
class
PayFun
:
Serializable
{
class
PayFun
:
Serializable
{
...
...
cms/src/main/res/values/colors.xml
View file @
3987a6c4
...
@@ -36,5 +36,6 @@
...
@@ -36,5 +36,6 @@
<color
name=
"color_e09a9a"
>
#E09A9A
</color>
<color
name=
"color_e09a9a"
>
#E09A9A
</color>
<color
name=
"color_b28a17"
>
#B28A17
</color>
<color
name=
"color_b28a17"
>
#B28A17
</color>
<color
name=
"color_ddcb97"
>
#DDCB97
</color>
<color
name=
"color_ddcb97"
>
#DDCB97
</color>
<color
name=
"color_ba7e36"
>
#BA7E36
</color>
</resources>
</resources>
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/activity/RechargeActivity.kt
View file @
3987a6c4
package
com.zxbw.modulemain.activity
package
com.zxbw.modulemain.activity
import
android.graphics.Paint
import
android.os.Handler
import
android.util.Log
import
android.view.View
import
android.view.View
import
androidx.recyclerview.widget.GridLayoutManager
import
androidx.recyclerview.widget.GridLayoutManager
import
com.zxbw.modulemain.R
import
com.zxbw.modulemain.R
...
@@ -8,18 +11,37 @@ import com.zxbw.modulemain.contract.RechargeContract
...
@@ -8,18 +11,37 @@ import com.zxbw.modulemain.contract.RechargeContract
import
com.zxbw.modulemain.presenter.RechargePresenter
import
com.zxbw.modulemain.presenter.RechargePresenter
import
com.zxbw.modulemain.view.DialogUtils
import
com.zxbw.modulemain.view.DialogUtils
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.Constant
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.SettingPreference
import
com.zxhl.cms.net.model.box.AppInEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.CouponsEntity
import
com.zxhl.cms.net.model.qy.RightsDetailEntity
import
com.zxhl.cms.net.model.uc.AliPayEntity
import
com.zxhl.cms.utils.OnRecycleItemClickListener
import
com.zxhl.cms.net.model.uc.PayResultEntity
import
com.zxhl.cms.net.model.video.MemberEntity
import
com.zxhl.cms.pay.H5PayUtil
import
com.zxhl.cms.pay.PayActivity
import
com.zxhl.cms.pay.alipay.AlipayServer
import
com.zxhl.cms.utils.*
import
com.zxhl.cms.widget.LoadingDialog
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
kotlinx.android.synthetic.main.activity_layout_recharge.*
import
kotlinx.android.synthetic.main.activity_layout_recharge.*
import
kotlinx.android.synthetic.main.activity_layout_recharge.id_rights_pay_web_view
import
kotlinx.android.synthetic.main.activity_layout_recharge.id_rl_h5_pay_view
//话费充值页面
//话费充值页面
class
RechargeActivity
:
BaseActivity
(),
OnRecycleItemClickListener
<
RightsDetailEntity
>,
class
RechargeActivity
:
BaseActivity
(),
OnRecycleItemClickListener
<
MemberEntity
.
ProductDetail
>,
RechargeContract
.
View
{
RechargeContract
.
View
{
private
var
mAdapter
:
RechargeAdapter
?
=
null
private
var
mAdapter
:
RechargeAdapter
?
=
null
private
var
mPresenter
:
RechargePresenter
?
=
null
private
var
mPresenter
:
RechargePresenter
?
=
null
private
var
couponsentity
:
CouponsEntity
?
=
null
private
var
mLoading
:
LoadingDialog
?
=
null
private
var
pay_type
:
Int
?
=
RightsDetailActivity
.
H5_PAY
private
var
payResultObservable
:
Observable
<
PayResultEntity
>?
=
null
var
goodsID
:
String
?
=
""
var
couponId
:
String
?=
""
override
fun
onClick
(
v
:
View
?)
{
override
fun
onClick
(
v
:
View
?)
{
when
(
v
)
{
when
(
v
)
{
id_tv_select_coupons
->
{
id_tv_select_coupons
->
{
...
@@ -31,6 +53,8 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
...
@@ -31,6 +53,8 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
object
:
DialogUtils
.
OnFetchCardListener
{
object
:
DialogUtils
.
OnFetchCardListener
{
override
fun
onSelectCoupons
(
coupons
:
CouponsEntity
?)
{
override
fun
onSelectCoupons
(
coupons
:
CouponsEntity
?)
{
//coupons==null 没有选择优惠券 !=null 选中的优惠券信息
//coupons==null 没有选择优惠券 !=null 选中的优惠券信息
couponsentity
=
coupons
setCouponInfo
(
couponsentity
)
}
}
})
})
}
}
...
@@ -48,25 +72,266 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
...
@@ -48,25 +72,266 @@ class RechargeActivity : BaseActivity(), OnRecycleItemClickListener<RightsDetail
override
fun
init
()
{
override
fun
init
()
{
val
user
=
SettingPreference
.
getUserInfoData
()
val
user
=
SettingPreference
.
getUserInfoData
()
initPay
()
mPresenter
=
RechargePresenter
(
this
)
mPresenter
=
RechargePresenter
(
this
)
mAdapter
=
RechargeAdapter
(
this
,
this
)
mAdapter
=
RechargeAdapter
(
this
,
this
)
id_rl_recharge
?.
layoutManager
=
GridLayoutManager
(
this
,
3
)
id_rl_recharge
?.
layoutManager
=
GridLayoutManager
(
this
,
3
)
id_rl_recharge
?.
adapter
=
mAdapter
id_rl_recharge
?.
adapter
=
mAdapter
mPresenter
?.
getFetchCard
(
user
.
nickname
)
mPresenter
?.
getFetchCard
(
user
.
nickname
)
mPresenter
?.
getPayList
(
"mobileFee"
)
id_edit_user_phone
?.
setText
(
user
.
nickname
.
toString
())
id_tv_select_coupons
?.
setOnClickListener
(
this
)
id_tv_select_coupons
?.
setOnClickListener
(
this
)
id_tv_chongzhi
?.
setOnClickListener
{
topay
()
}
}
}
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
RightsDetailEntity
?)
{
fun
initPay
()
{
mLoading
=
LoadingDialog
.
getLoadingDialog
(
this
,
getString
(
com
.
zxhl
.
cms
.
R
.
string
.
wait_ing
),
false
,
false
)
payResultObservable
=
RxBus
.
get
().
register
(
Constant
.
PAY_RESULT
,
PayResultEntity
::
class
.
java
)
payResultObservable
?.
observeOn
(
AndroidSchedulers
.
mainThread
())
?.
subscribe
(
Consumer
<
PayResultEntity
>
{
obj
->
MainLooper
?.
get
()
?.
postDelayed
(
Runnable
{
mHandler
?.
removeCallbacksAndMessages
(
null
)
},
1000
)
Log
.
d
(
"qqbs"
,
"verifyPay:${obj.txt}"
)
//println("verifyPay payResultObservable------------------------------- order:${obj.txt}")
if
(
obj
.
isPaySuc
)
{
EventUtils
.
onEvent
(
"pay_page_pay_query_order"
,
"付款成功"
)
mPresenter
?.
verifyPay
(
obj
.
txt
,
obj
.
payType
)
}
else
{
//支付宝支付
if
(
obj
.
payType
==
1
)
{
if
(
obj
.
payStatus
==
"6001"
)
{
EventUtils
.
onEvent
(
"zfb_pay_cancel"
)
}
else
{
EventUtils
.
onEvent
(
"zfb_pay_error"
,
obj
.
payStatus
+
" msg:"
+
obj
.
txt
)
}
}
else
{
EventUtils
.
onEvent
(
"wx_pay_error"
,
obj
.
txt
)
}
showResultLoading
(
false
)
}
}
},
Consumer
<
Throwable
>
{
})
override
fun
setData
()
{
var
result
=
SettingPreference
.
getConfig
()
if
(
result
!=
null
)
{
if
(
result
!=
null
&&
!
result
.
pay_config_v2
.
isNullOrEmpty
())
{
for
(
i
in
result
.
pay_config_v2
!!
.
indices
)
{
if
(
result
?.
pay_config_v2
!!
[
i
].
open
==
1
)
{
pay_type
=
result
?.
pay_config_v2
!!
[
i
].
type
break
}
}
}
}
}
private
var
mHandler
:
Handler
=
Handler
{
when
(
it
.
what
)
{
0
->
{
if
(
mLoading
!=
null
)
{
mLoading
?.
setResult
(
false
,
"取消支付"
,
1000
)
}
}
1
->
{
if
(
mLoading
!=
null
)
{
mLoading
?.
setResult
(
false
,
"支付异常"
,
0
)
}
id_rl_h5_pay_view
.
visibility
=
View
.
VISIBLE
EventUtils
.
onEvent
(
"h5_pay_end"
)
}
2
->
{
if
(
mLoading
!=
null
)
{
mLoading
?.
setResult
(
false
,
"支付异常"
,
0
)
}
id_rl_h5_pay_view
.
visibility
=
View
.
VISIBLE
}
}
false
}
fun
topay
()
{
val
phoneNumber
=
id_edit_user_phone
.
text
.
toString
().
trim
{
it
<=
' '
}
if
(
phoneNumber
.
isEmpty
())
{
showToast
(
"请输入要兑换的手机号"
)
return
}
if
(
phoneNumber
.
length
<
11
)
{
showToast
(
"请检查要兑换的手机号"
)
return
}
isClickPayBtn
=
true
mLoading
?.
setLoading
(
"请稍后..."
)
mLoading
?.
show
()
mPresenter
?.
requestRightsAliPay
(
goodsID
.
toString
(),
pay_type
.
toString
(),
phoneNumber
,
"8080"
,
false
,
""
,
couponsentity
?.
id
,
"SHKC_CT"
)
}
}
private
var
mCouponsResult
:
List
<
CouponsEntity
>?
=
null
;
private
var
mCouponsResult
:
List
<
CouponsEntity
>?
=
null
;
override
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
{
override
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
{
mCouponsResult
=
result
mCouponsResult
=
result
if
(!
result
.
isNullOrEmpty
())
{
couponsentity
=
result
.
get
(
0
)
setCouponInfo
(
couponsentity
)
}
}
override
fun
requestOrderSuc
(
result
:
AliPayEntity
)
{
if
(
pay_type
==
RightsDetailActivity
.
MIN_PAY_PROGRAM
)
{
SettingPreference
.
setOutTradeNo
(
result
?.
outTradeNo
)
JumpUtils
.
h5Jump
(
"https://api.minpayment.com/pay.do?sendMsg="
+
result
.
wakeup
)
}
else
if
(
pay_type
==
RightsDetailActivity
.
H5_PAY
)
{
SettingPreference
.
setOutTradeNo
(
result
?.
outTradeNo
)
if
(
result
.
outTradeNo
.
isNullOrEmpty
())
{
EventUtils
.
onEvent
(
"h5_pay_error"
)
showResultLoading
(
false
)
}
else
{
mHandler
.
sendEmptyMessageDelayed
(
1
,
8000
)
H5PayUtil
().
loadH5PayWeb
(
this
,
id_rights_pay_web_view
,
result
.
outTradeNo
?:
""
,
object
:
H5PayUtil
.
H5PayCallBack
{
override
fun
jumpZfbAppSuc
()
{
id_rl_h5_pay_view
.
visibility
=
View
.
GONE
EventUtils
.
onEvent
(
"h5_open_zfb_suc"
)
mHandler
.
removeMessages
(
1
)
}
override
fun
jumpZfbAppException
(
e
:
Exception
)
{
EventUtils
.
onEvent
(
"h5_open_zfb_error"
,
e
.
toString
())
mHandler
.
removeMessages
(
1
)
mHandler
.
sendEmptyMessage
(
2
)
}
override
fun
loadH5Error1
(
errorStr
:
String
)
{
EventUtils
.
onEvent
(
"h5_pay_error1"
,
errorStr
)
}
override
fun
loadH5Error2
(
errorStr
:
String
)
{
EventUtils
.
onEvent
(
"h5_pay_error2"
,
errorStr
)
}
})
}
}
else
if
(
pay_type
==
RightsDetailActivity
.
ALI_PAY
)
{
AlipayServer
.
payV2
(
this
,
result
.
wakeup
!!
)
}
else
{
showToast
(
"暂不支持"
)
EventUtils
.
onEvent
(
"payment_error"
,
"$pay_type"
)
}
}
override
fun
requestOrderFail
(
errorMsg
:
String
)
{
showResultLoading
(
false
)
}
override
fun
verifyOrderSuc
(
order
:
String
)
{
isClickPayBtn
=
false
SettingPreference
.
setOutTradeNo
(
""
)
showResultLoading
(
true
)
finish
()
JumpUtils
.
PaySuceessJump
()
}
override
fun
verifyOrderFail
(
errorMsg
:
String
)
{
isClickPayBtn
=
false
showResultLoading
(
false
)
}
override
fun
setAppInfo
(
result
:
AppInEntity
?)
{
}
override
fun
setPayList
(
result
:
MemberEntity
)
{
mAdapter
?.
clear
()
mAdapter
?.
appendToList
(
result
?.
goodsList
)
mAdapter
?.
notifyDataSetChanged
()
if
(!
result
.
goodsList
.
isNullOrEmpty
())
{
if
(
result
.
goodsList
!!
.
size
>=
3
)
{
mAdapter
?.
setPosition
(
2
)
goodsID
=
result
.
goodsList
?.
get
(
2
)
?.
goodsId
}
}
}
var
memberentity
:
MemberEntity
.
ProductDetail
?
=
null
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
MemberEntity
.
ProductDetail
?)
{
memberentity
=
data
goodsID
=
data
?.
goodsId
setBootomPrice
(
data
)
}
fun
setBootomPrice
(
data
:
MemberEntity
.
ProductDetail
?)
{
if
(
couponsentity
==
null
)
{
id_tv_cash
?.
text
=
"${data?.cash}"
}
else
{
val
oldPrice
=
data
?.
cash
?.
toDouble
()
val
disCountPrice
=
couponsentity
?.
amount
?.
toDouble
()
id_tv_cash
?.
text
=
(
oldPrice
?.
minus
(
disCountPrice
!!
)).
toString
()
}
id_tv_orgin_price
?.
text
=
"原价 ¥${data?.originalPrice}"
id_tv_orgin_price
?.
getPaint
()
?.
setFlags
(
Paint
.
STRIKE_THRU_TEXT_FLAG
)
}
fun
setCouponInfo
(
entity
:
CouponsEntity
?)
{
setBootomPrice
(
memberentity
)
if
(
entity
!=
null
)
{
Log
.
e
(
"MXL"
,
"选择这个优惠券"
)
id_tv_select_coupons
?.
text
=
"您已选择${entity?.amount}元优惠券"
}
else
{
Log
.
e
(
"MXL"
,
"无优惠券可选"
)
id_tv_select_coupons
?.
text
=
"未选择优惠券"
}
}
override
fun
onPause
()
{
super
.
onPause
()
isPause
=
true
}
private
fun
showResultLoading
(
isPaySuc
:
Boolean
)
{
if
(
isPaySuc
)
{
mLoading
?.
setResult
(
true
,
"支付成功"
,
1000
)
}
else
{
mLoading
?.
setResult
(
false
,
"支付失败"
,
1000
)
}
}
private
var
isPause
=
false
private
var
isClickPayBtn
=
false
override
fun
onResume
()
{
super
.
onResume
()
if
(
isPause
&&
isClickPayBtn
)
{
if
(
pay_type
==
PayActivity
.
MIN_PAY_PROGRAM
||
pay_type
==
PayActivity
.
H5_PAY
)
{
//如果是敏支付或者H5支付
mPresenter
?.
verifyPay
(
SettingPreference
.
getOutTradeNo
(),
pay_type
!!
)
}
else
{
mHandler
?.
sendEmptyMessageDelayed
(
0
,
2000
)
}
}
}
override
fun
onDestroy
()
{
super
.
onDestroy
()
if
(
payResultObservable
!=
null
)
RxBus
.
get
().
unregister
(
Constant
.
PAY_RESULT
,
payResultObservable
!!
)
}
}
}
}
\ No newline at end of file
moduleMain/src/main/java/com/zxbw/modulemain/adapter/RechargeAdapter.kt
View file @
3987a6c4
package
com.zxbw.modulemain.adapter
package
com.zxbw.modulemain.adapter
import
android.app.Activity
import
android.app.Activity
import
android.graphics.Color
import
android.graphics.Paint
import
android.graphics.Paint
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.View
import
android.view.View
...
@@ -11,39 +12,60 @@ import androidx.recyclerview.widget.RecyclerView
...
@@ -11,39 +12,60 @@ import androidx.recyclerview.widget.RecyclerView
import
com.zxbw.modulemain.R
import
com.zxbw.modulemain.R
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.AppContext
import
com.zxhl.cms.common.base.BaseRecyclerAdapter
import
com.zxhl.cms.common.base.BaseRecyclerAdapter
import
com.zxhl.cms.net.model.
qy.RightsDetail
Entity
import
com.zxhl.cms.net.model.
video.Member
Entity
import
com.zxhl.cms.utils.OnRecycleItemClickListener
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
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
(
constructor
(
content
:
Activity
?,
content
:
Activity
?,
listener
:
OnRecycleItemClickListener
<
RightsDetailEntity
>
listener
:
OnRecycleItemClickListener
<
MemberEntity
.
ProductDetail
>
)
:
super
()
{
)
:
super
()
{
mContext
=
content
mContext
=
content
this
.
listener
=
listener
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
)
{
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
pos
:
Int
)
{
// var bean = mList[position]
var
bean
=
mList
[
pos
]
// holder.id_tv_cards_name?.text = "${bean.brand}${bean.goodsName}${bean.category}"
if
(
pos
==
position
){
// holder.id_tv_cagte_name?.text = "${bean.category}"
holder
.
id_ll_item
?.
setBackgroundResource
(
R
.
drawable
.
shape_edd49d_r6
)
// // holder.id_goods_icon?.setLoadImageUrl(bean.icon,false)
holder
.
id_tv_activity_price_text
?.
setBackgroundResource
(
R
.
drawable
.
shape_edd49d_r11
)
// holder.id_goods_yuan_jia?.text = "${bean.goodsName}"
holder
.
id_tv_activity_price_text
?.
setTextColor
(
mSelectColor
)
// holder.id_tv_card_discount?.text = "会员专享${bean.costDiscount}折"
holder
.
id_tv_price
?.
setTextColor
(
mSelectColor
)
// holder.id_tv_card_price?.text = "${bean.salePrice}"
holder
.
id_tv_orgin_price
?.
setTextColor
(
mSelectColor
)
// holder.id_tv_guanfang_price?.text = "官方价 ¥${bean.originPrice}元"
holder
.
id_tv_rmb
?.
setTextColor
(
mSelectColor
)
// holder.id_tv_guanfang_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG) //中划线
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 {
// holder.id_ll_item?.setOnClickListener {
// listener.onItemClick(it, position, bean)
// listener.onItemClick(it, position, bean)
// }
// }
}
}
override
fun
getItemCount
():
Int
{
//
override fun getItemCount(): Int {
return
3
//
return 3
}
//
}
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
return
ViewHolder
(
return
ViewHolder
(
...
@@ -52,7 +74,7 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
...
@@ -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_ll_item
:
LinearLayout
?
// var id_goods_icon: RecycleImageView?
// var id_goods_icon: RecycleImageView?
...
@@ -72,6 +94,14 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
...
@@ -72,6 +94,14 @@ class RechargeAdapter : BaseRecyclerAdapter<RightsDetailEntity, RechargeAdapter.
id_tv_rmb
=
itemView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_rmb
)
id_tv_rmb
=
itemView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_rmb
)
id_tv_price
=
itemView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_price
)
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_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
moduleMain/src/main/java/com/zxbw/modulemain/contract/RechargeContract.kt
View file @
3987a6c4
package
com.zxbw.modulemain.contract
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.qy.CouponsEntity
import
com.zxhl.cms.net.model.uc.AliPayEntity
import
com.zxhl.cms.net.model.video.MemberEntity
class
RechargeContract
{
class
RechargeContract
{
interface
View
{
interface
View
{
fun
set
Data
(
)
fun
set
PayList
(
result
:
MemberEntity
)
fun
setCouponsList
(
result
:
List
<
CouponsEntity
>?)
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
{
interface
Presenter
{
fun
getFetchCard
(
phone
:
String
)
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
moduleMain/src/main/java/com/zxbw/modulemain/presenter/CardDetailPresenter.kt
View file @
3987a6c4
...
@@ -22,6 +22,7 @@ class CardDetailPresenter : CardDetailContract.Presenter {
...
@@ -22,6 +22,7 @@ class CardDetailPresenter : CardDetailContract.Presenter {
override
fun
requestRightsAliPay
(
goodsId
:
String
,
payType
:
String
,
phone
:
String
,
type
:
String
,
skill
:
Boolean
?,
outTradeNo
:
String
?)
{
override
fun
requestRightsAliPay
(
goodsId
:
String
,
payType
:
String
,
phone
:
String
,
type
:
String
,
skill
:
Boolean
?,
outTradeNo
:
String
?)
{
ApiClient
.
userInfoAPi
.
aliPayRights
(
goodsId
,
payType
,
phone
,
type
,
skill
,
outTradeNo
)
ApiClient
.
userInfoAPi
.
aliPayRights
(
goodsId
,
payType
,
phone
,
type
,
skill
,
outTradeNo
)
.
compose
(
RxSchedulers
.
observableIO2Main
())
.
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
AliPayEntity
>()
{
.
subscribe
(
object
:
BaseObserver
<
AliPayEntity
>()
{
...
...
moduleMain/src/main/java/com/zxbw/modulemain/presenter/RechargePresenter.kt
View file @
3987a6c4
package
com.zxbw.modulemain.presenter
package
com.zxbw.modulemain.presenter
import
android.
util.Log
import
android.
text.TextUtils
import
com.zxbw.modulemain.contract.RechargeContract
import
com.zxbw.modulemain.contract.RechargeContract
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.net.ApiClient
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.RxSchedulers
import
com.zxhl.cms.net.callback.BaseObserver
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.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
{
class
RechargePresenter
:
RechargeContract
.
Presenter
{
...
@@ -29,7 +34,120 @@ 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
moduleMain/src/main/res/drawable/shape_edd49d_r11.xml
0 → 100644
View file @
3987a6c4
<?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
moduleMain/src/main/res/layout/activity_layout_recharge.xml
View file @
3987a6c4
...
@@ -63,6 +63,7 @@
...
@@ -63,6 +63,7 @@
</LinearLayout>
</LinearLayout>
<EditText
<EditText
android:id=
"@+id/id_edit_user_phone"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"44dp"
android:layout_height=
"44dp"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
...
@@ -70,7 +71,6 @@
...
@@ -70,7 +71,6 @@
android:background=
"@drawable/shape_ffffff_r6"
android:background=
"@drawable/shape_ffffff_r6"
android:lines=
"1"
android:lines=
"1"
android:padding=
"10dp"
android:padding=
"10dp"
android:text=
"132789"
android:textColor=
"@color/color_999999"
android:textColor=
"@color/color_999999"
android:inputType=
"phone"
android:inputType=
"phone"
android:textCursorDrawable=
"@drawable/cursor_color"
android:textCursorDrawable=
"@drawable/cursor_color"
...
@@ -151,7 +151,6 @@
...
@@ -151,7 +151,6 @@
android:drawableRight=
"@drawable/icon_fanhui_chengse"
android:drawableRight=
"@drawable/icon_fanhui_chengse"
android:drawablePadding=
"4dp"
android:drawablePadding=
"4dp"
android:gravity=
"center_vertical"
android:gravity=
"center_vertical"
android:text=
"您已选择5元优惠券"
android:textColor=
"#C46B00"
android:textColor=
"#C46B00"
android:textSize=
"12sp"
/>
android:textSize=
"12sp"
/>
</RelativeLayout>
</RelativeLayout>
...
@@ -311,6 +310,7 @@
...
@@ -311,6 +310,7 @@
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
<TextView
<TextView
android:id=
"@+id/id_tv_cash"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:includeFontPadding=
"false"
android:includeFontPadding=
"false"
...
@@ -321,6 +321,7 @@
...
@@ -321,6 +321,7 @@
</LinearLayout>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/id_tv_orgin_price"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"27dp"
android:layout_marginLeft=
"27dp"
...
@@ -331,6 +332,7 @@
...
@@ -331,6 +332,7 @@
</LinearLayout>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/id_tv_chongzhi"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"48dp"
android:layout_height=
"48dp"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -341,5 +343,26 @@
...
@@ -341,5 +343,26 @@
android:textSize=
"16sp"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
</LinearLayout>
</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>
</RelativeLayout>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment