Commit 4d58c93f authored by 王雪伟's avatar 王雪伟

Merge remote-tracking branch 'origin/master'

parents 4153109f 45a3de79
......@@ -21,7 +21,7 @@ public class NetConfig {
}
// 根据调试选项更新环境
public static Environment sEnvironment = DEV;// 当前环境
public static Environment sEnvironment = PRODUCT;// 当前环境
public static String BASE_WEB_URL = "";
public static String BASE_URL = "";
public static String BASE_NEW_URL = "";
......@@ -280,6 +280,7 @@ public class NetConfig {
public static final String HOME_FLASH_SALE_SKILL = "app/v1/game/xiaoxiang/skill";//秒杀时间表
public static final String HOME_FLASH_SALE_BEGIN_SKILL = "app/v1/game/xiaoxiang/skill";//开始秒杀
public static final String HOME_FLASH_SALE_SKILL_LIST = "app/v1/game/xiaoxiang/skill/list";//秒杀商品列表
public static final String HOME_FLASH_SALE_UPDATE_ORDER_ADDRESS= "app/v1/game/xiaoxiang/update/order/addr";//关联秒杀订单地址(商品秒杀专用)
}
......
......@@ -388,4 +388,8 @@ interface IHomeApi {
@Query("durationId") durationId: String?,
@Query("id") id: String?
): Observable<Response<ToSkillInfoEntity>>
//关联地址
@POST(NetConfig.FlashSale.HOME_FLASH_SALE_UPDATE_ORDER_ADDRESS)
fun updateAddress(@Query("addressId") addressId: String?,@Query("outTradeNo") outTradeNo: String?): Observable<Response<Any>>
}
\ No newline at end of file
......@@ -160,6 +160,6 @@ public interface IUserInfoApi {
* @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);
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);
}
package com.zxhl.cms.net.model.box
class GoodList {
import java.io.Serializable
class GoodList : Serializable {
var id: String? = ""
var productId: String? = ""
var boxId: String? = ""
......@@ -9,6 +11,7 @@ class GoodList {
var descImg: String? = ""
var salePrice: String? = ""
var salePriceStr: String? = ""
var skillPrice: String? = ""
var originalPriceDb: String? = ""
var cateName: String? = ""
var goodsLevel: String? = ""
......
......@@ -299,6 +299,17 @@
android:scheme="xxsq" />
</intent-filter>
</activity>
<activity android:name=".activity.SkillShopActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="skillshop"
android:scheme="xxsq" />
</intent-filter>
</activity>
</application>
......
......@@ -41,6 +41,8 @@ class CardDetailActivity : BaseActivity(), CardDetailContract.View {
private var payResultObservable: Observable<PayResultEntity>? = null
var goodsID: String? = ""
var type: String? = "0"
var skill:Boolean?=false
var outTradeNo:String?=""
override fun onClick(v: View?) {
}
......@@ -58,6 +60,9 @@ class CardDetailActivity : BaseActivity(), CardDetailContract.View {
val cardbean: RightsDetailEntity =
intent.getSerializableExtra("cardbean") as RightsDetailEntity
type= intent.getStringExtra("type")
outTradeNo= intent.getStringExtra("outTradeNo")
skill= intent.getBooleanExtra("skill",false)
Log.e("MXL","skill"+skill)
initPay()
goodsID = cardbean.id
id_img_back?.setOnClickListener {
......@@ -84,7 +89,7 @@ class CardDetailActivity : BaseActivity(), CardDetailContract.View {
id_tv_card_price?.text = "${bean.salePrice}"
id_tv_guanfang_price?.text = "官方价 ¥${bean.originPrice}元"
id_tv_guanfang_price?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG) //中划线
id_tv_pay_price?.text = "${bean.salePrice}"
id_tv_pay_price?.text = "${bean.skillPrice}"
id_tv_jiesheng_price?.text = "立省${bean.costPrice}元"
}
......@@ -150,7 +155,7 @@ class CardDetailActivity : BaseActivity(), CardDetailContract.View {
isClickPayBtn = true
mLoading?.setLoading("请稍后...")
mLoading?.show()
mPayPresenter?.requestRightsAliPay(goodsID.toString(), pay_type.toString(), "","51")
mPayPresenter?.requestRightsAliPay(goodsID.toString(), pay_type.toString(), "","51",skill,outTradeNo)
}
override fun requestOrderSuc(result: AliPayEntity) {
......
......@@ -30,6 +30,7 @@ class FlashSaleActivity : BaseActivity(), FlashSaleContract.View,
private var durationId: String? = ""
private var skillGoodsEntity: SkillGoodsEntity? = null
var mChoosList: MutableList<String> = ArrayList()
var outTradeNo:String?=""
override fun onClick(v: View?) {
}
......@@ -119,29 +120,37 @@ class FlashSaleActivity : BaseActivity(), FlashSaleContract.View,
}
if (boolean) {
outTradeNo=result?.outTradeNo
val user = SettingPreference.getUserInfoData()
if (user.member) {
if (TextUtils.equals(skillGoodsEntity?.goodsType, "50")) {
val intent = Intent(this, ToPaySkillGoodsActivity::class.java)
intent.putExtra("skillgoods", skillGoodsEntity)
intent.putExtra("type", "1")
intent.putExtra("skill",true)
intent.putExtra("outTradeNo",outTradeNo)
startActivity(intent)
} else if (TextUtils.equals(skillGoodsEntity?.goodsType, "51")) {
//卡券商品
val intent = Intent(mActivity, CardDetailActivity::class.java)
intent.putExtra("cardbean", skillGoodsEntity?.card)
intent.putExtra("type", "1")
intent.putExtra("skill",true)
intent.putExtra("outTradeNo",outTradeNo)
startActivity(intent)
} else if (TextUtils.equals(skillGoodsEntity?.goodsType, "99")) {
//实物商品
mChoosList.clear()
mChoosList.add(skillGoodsEntity?.goods?.id.toString())
val intent = Intent(mActivity, ShopOrderActivity::class.java)
// //实物商品
// mChoosList.clear()
// mChoosList.add(skillGoodsEntity?.goods?.id.toString())
val intent = Intent(mActivity, SkillShopActivity::class.java)
intent.putExtra("goodsbean", skillGoodsEntity?.goods)
intent.putExtra("type", "1")
intent.putStringArrayListExtra(
"stringList",
mChoosList as java.util.ArrayList<String>?
)
intent.putExtra("skill",true)
intent.putExtra("outTradeNo",outTradeNo)
// intent.putStringArrayListExtra(
// "stringList",
// mChoosList as java.util.ArrayList<String>?
// )
startActivity(intent)
}
......
......@@ -50,7 +50,7 @@ class RightsDetailActivity : BaseActivity(), RightsDetailContract.View, RightsPa
private var brandName: String = "";
private var mRightsData: RightsDetailEntity? = null
private var mLoading: LoadingDialog? = null
var skill:Boolean?=false
override fun layoutID(): Int {
return R.layout.activity_layout_rights_detail
}
......
......@@ -33,6 +33,7 @@ class SettingActivity : BaseActivity() {
}
id_tv_user_number?.text = user.nickname
id_tv_number?.text=user.phone
id_tv_id?.text=user.uid
id_tv_version_code?.text = "V${Constant.Param.vn}"
if (!TextUtils.isEmpty(user.headImage)) {
Glide.with(this).load(user.headImage)
......
package com.zxbw.modulemain.activity
import android.content.Intent
import android.graphics.Paint
import android.net.Uri
import android.os.Handler
import android.text.TextUtils
import android.util.Log
import android.view.KeyEvent
import android.view.View
import android.webkit.*
import com.zxbw.modulemain.R
import com.zxbw.modulemain.box.activity.ReceiveAddressActivity
import com.zxbw.modulemain.contract.CardDetailContract
import com.zxbw.modulemain.presenter.CardDetailPresenter
import com.zxbw.modulemain.view.DialogUtils
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.NetConfig
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.box.AddressEntity
import com.zxhl.cms.net.model.box.GoodList
import com.zxhl.cms.net.model.box.OrderEntity
import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.net.model.uc.PayResultEntity
import com.zxhl.cms.pay.PayActivity
import com.zxhl.cms.pay.alipay.AlipayServer
import com.zxhl.cms.utils.EventUtils
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.MainLooper
import com.zxhl.cms.utils.RxBus
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_skill_shop.*
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_img_back
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_rl_hava_address
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_rl_no_address
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_tv_pay_money
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_tv_to_pay
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_tv_user_address
import kotlinx.android.synthetic.main.activity_layout_skill_shop.id_tv_user_name_phone
class SkillShopActivity : BaseActivity(), CardDetailContract.View {
private var mPayPresenter: CardDetailPresenter? = null
private var mLoading: LoadingDialog? = null
private var pay_type: Int? = RightsDetailActivity.H5_PAY
private var payResultObservable: Observable<PayResultEntity>? = null
private var updateAddress: Observable<Int>? = null
var goodsID: String? = ""
var type: String? = "0"
var skill: Boolean? = false
var outTradeNo: String? = ""
private var addressId: String? = ""
var addrees: AddressEntity? = null
override fun onClick(v: View?) {
}
override fun before() {
super.before()
setStatusBarBackground(AppContext.get().resources.getColor(R.color.transparent))
}
override fun layoutID(): Int {
return R.layout.activity_layout_skill_shop
}
override fun init() {
val goodList: GoodList =
intent.getSerializableExtra("goodsbean") as GoodList
type = intent.getStringExtra("type")
outTradeNo = intent.getStringExtra("outTradeNo")
skill = intent.getBooleanExtra("skill", false)
Log.e("MXL", "skill" + skill)
initPay()
goodsID = goodList.id
id_img_back?.setOnClickListener {
if (TextUtils.equals(type, "1")) {
// 在这里,拦截或者监听Android系统的返回键事件。
DialogUtils.showExitSkillBuy(this, View.OnClickListener {
finish()
})
} else {
finish()
}
}
id_tv_to_pay?.setOnClickListener {
toPay()
}
id_rl_no_address?.setOnClickListener {
val intent = Intent(mActivity, ReceiveAddressActivity::class.java)
intent.putExtra("order", "order")
startActivityForResult(intent, 1001)
// JumpUtils.ReceiveAddressReslutJump("0")
}
id_rl_hava_address?.setOnClickListener {
val intent = Intent(mActivity, ReceiveAddressActivity::class.java)
intent.putExtra("order", "order")
intent.putExtra("id", addressId)
startActivityForResult(intent, 1001)
}
setView(goodList)
getAddress()
updateAddress = RxBus.get().register(Constant.CHOSSEE_ADDRESS_RESULT, Int::class.java)
updateAddress?.observeOn(AndroidSchedulers.mainThread())
?.subscribe(Consumer<Int?> { s ->
if (s == 1) {
updateAddreeInfo(null)
}
}, Consumer<Throwable?> { })
}
fun getAddress() {
ApiClient.homeApi.getAddress("0")
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<AddressEntity>>() {
override fun onSuccess(result: List<AddressEntity>?) {
if (result != null) {
if (!result.isNullOrEmpty()) {
for (i in result) {
if (TextUtils.equals(i.defaultAddress, "1")) {
updateAddreeInfo(i)
} else {
updateAddreeInfo(result[0])
}
}
}else{
updateAddreeInfo(null)
}
}else{
updateAddreeInfo(null)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == 1001) {
addrees = data?.getSerializableExtra("address") as AddressEntity?
Log.e("MXL", "选了地址回来" + addrees?.address)
updateAddreeInfo(addrees)
}
}
fun updateAddreeInfo(result: AddressEntity?) {
Log.e("MXL", "更新地址信息")
if (result == null) {
id_rl_hava_address?.visibility = View.GONE
id_rl_no_address?.visibility = View.VISIBLE
addressId = ""
} else {
id_rl_hava_address?.visibility = View.VISIBLE
id_rl_no_address?.visibility = View.GONE
addressId = result?.id
synocAddress()
id_tv_user_name_phone?.text =
result?.username + result?.mobile
id_tv_user_address?.text =
"${result?.region}-${result?.address}"
}
}
fun synocAddress() {
ApiClient.homeApi.updateAddress(addressId,outTradeNo)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<Any>() {
override fun onSuccess(result: Any?) {
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
fun setView(bean: GoodList) {
id_img_order_goods?.setLoadImageUrl("${bean.mainImage}", false)
id_tv_order_name?.text = "${bean.productName}"
id_tv_sale_price?.text = "¥${bean.salePriceStr}"
id_tv_pay_money?.text = "${bean.skillPrice}"
}
fun initPay() {
mPayPresenter = CardDetailPresenter(this)
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", "付款成功")
mPayPresenter?.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> { })
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)
}
}
}
false
}
fun toPay() {
isClickPayBtn = true
mLoading?.setLoading("请稍后...")
mLoading?.show()
mPayPresenter?.requestRightsAliPay(
goodsID.toString(),
pay_type.toString(),
"",
"99",
skill,
outTradeNo
)
}
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 {
loadH5Pay(result.outTradeNo!!)
}
} 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)
}
override fun verifyOrderFail(errorMsg: String) {
isClickPayBtn = false
showResultLoading(false)
}
private fun showResultLoading(isPaySuc: Boolean) {
if (isPaySuc) {
mLoading?.setResult(true, "支付成功", 1000)
} else {
mLoading?.setResult(false, "支付失败", 1000)
}
}
override fun onPause() {
super.onPause()
isPause = true
}
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支付
mPayPresenter?.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!!)
}
private fun loadH5Pay(form: String) {
// id_rights_pay_web_view.visibility = View.VISIBLE
Log.d("wxw", "startTime" + System.currentTimeMillis())
val webSettings = id_rights_pay_web_view.settings
//如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
webSettings.javaScriptEnabled = true
//设置自适应屏幕,两者合用
webSettings.useWideViewPort = true //将图片调整到适合webview的大小
webSettings.loadWithOverviewMode = true // 缩放至屏幕的大小
//其他细节操作
webSettings.cacheMode = WebSettings.LOAD_NO_CACHE //关闭webview中缓存
webSettings.allowFileAccess = true //设置可以访问文件
webSettings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
webSettings.loadsImagesAutomatically = true //支持自动加载图片
webSettings.defaultTextEncodingName = "utf-8" //设置编码格式
webSettings.domStorageEnabled = true
webSettings.allowFileAccessFromFileURLs = true;
webSettings.allowUniversalAccessFromFileURLs = true;
id_rights_pay_web_view?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
Log.e("WXW", "dURL" + url.toString())
if (url == null) return false
try {
if (url.startsWith("alipays://") //支付宝
) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
EventUtils.onEvent("h5_open_zfb_suc")
return true
}
} catch (e: Exception) { //防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash)
EventUtils.onEvent("h5_open_zfb_error", e.toString())
showResultLoading(false)
return true //没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面
}
//处理http和https开头的url
view?.loadUrl(url)
return false
}
override fun onPageFinished(view: WebView?, url: String?) {
Log.e("WXW", "cURL" + url.toString())
Log.d("wxw", "EndTime" + System.currentTimeMillis())
super.onPageFinished(view, url)
if (url?.contains(NetConfig.H5.WEB_URL_H5_PAY) == true) {
id_rights_pay_web_view?.loadUrl("javascript:loadPayHtml('$form')");
}
}
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
// Log.d("wxw", "1error${error?.errorCode}")
// Log.d("wxw", "2error${error?.description}")
EventUtils.onEvent(
"h5_pay_error1",
"code: ${error?.errorCode} desc: ${error?.description}"
)
} else {
EventUtils.onEvent("h5_pay_error1", error.toString())
}
showResultLoading(false)
}
override fun onReceivedHttpError(
view: WebView?,
request: WebResourceRequest?,
errorResponse: WebResourceResponse?
) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
if (request?.url?.path?.endsWith("/favicon.ico") == true) {
} else {
EventUtils.onEvent(
"h5_pay_error2",
errorResponse?.statusCode.toString() + " url:${request?.url}"
)
showResultLoading(false)
}
} else {
EventUtils.onEvent("h5_pay_error2", errorResponse.toString())
showResultLoading(false)
}
super.onReceivedHttpError(view, request, errorResponse)
}
}
id_rights_pay_web_view.loadUrl(NetConfig.H5.WEB_URL_H5_PAY)
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (TextUtils.equals(type, "1")) {
// 在这里,拦截或者监听Android系统的返回键事件。
DialogUtils.showExitSkillBuy(this, View.OnClickListener {
finish()
})
} else {
finish()
}
}
return false
}
}
\ No newline at end of file
......@@ -43,6 +43,8 @@ class ToPaySkillGoodsActivity : BaseActivity(), CardDetailContract.View {
private var payResultObservable: Observable<PayResultEntity>? = null
var goodsID: String? = ""
var type: String? = "0"
var skill:Boolean?=false
var outTradeNo:String?=""
override fun onClick(v: View?) {
}
......@@ -60,6 +62,8 @@ class ToPaySkillGoodsActivity : BaseActivity(), CardDetailContract.View {
val skillGoodsEntity: SkillGoodsEntity =
intent.getSerializableExtra("skillgoods") as SkillGoodsEntity
type = intent.getStringExtra("type")
outTradeNo = intent.getStringExtra("outTradeNo")
skill= intent.getBooleanExtra("skill",false)
initPay()
goodsID = skillGoodsEntity.goodsId
setDataView(skillGoodsEntity)
......@@ -155,7 +159,7 @@ class ToPaySkillGoodsActivity : BaseActivity(), CardDetailContract.View {
isClickPayBtn = true
mLoading?.setLoading("请稍后...")
mLoading?.show()
mPayPresenter?.requestRightsAliPay(goodsID.toString(), pay_type.toString(), "","50")
mPayPresenter?.requestRightsAliPay(goodsID.toString(), pay_type.toString(), "","50",skill,outTradeNo)
}
override fun requestOrderSuc(result: AliPayEntity) {
......
......@@ -71,7 +71,7 @@ class FlashSaleAdapter : BaseRecyclerAdapter<SkillGoodsEntity, FlashSaleAdapter.
} else {
holder.id_img_member_bg?.setLoadImageUrl(bean.goods?.mainImage, false)
holder.id_tv_name?.text = "${bean.goods?.productName}"
holder.id_tv_sale_price?.text = "${bean.goods?.salePriceStr}"
holder.id_tv_sale_price?.text = "${bean.skillPrice}"
holder.id_tv_yuanjia?.text = "${bean.goods?.originalPriceDb}"
}
holder.id_tv_yuanjia?.getPaint()?.setFlags(Paint.STRIKE_THRU_TEXT_FLAG) //中划线
......
......@@ -15,7 +15,7 @@ class CardDetailContract {
}
interface Presenter {
fun requestRightsAliPay(goodsId: String, payType: String, phone: String,type:String)
fun requestRightsAliPay(goodsId: String, payType: String, phone: String,type:String,skill:Boolean?,outTradeNo:String?)
fun verifyPay(order: String?, payType: Int)
}
......
package com.zxbw.modulemain.fragment
import android.text.TextUtils
import android.util.Log
import android.view.View
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.CircleCrop
......@@ -76,6 +77,18 @@ class UserCenterFragment : BaseFragment(), AdCallback<String> {
UserDataUtils.updateUserInfo(this)
}
}
private var isPause = false
override fun onPause() {
super.onPause()
isPause = true
}
override fun onResume() {
super.onResume()
if (isPause) {
UserDataUtils.updateUserInfo(this)
}
}
override fun onResult(code: Int, result: String?) {
updateView()
......
......@@ -21,8 +21,8 @@ class CardDetailPresenter : CardDetailContract.Presenter {
}
override fun requestRightsAliPay(goodsId: String, payType: String, phone: String,type:String) {
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone,type)
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>() {
override fun onSuccess(result: AliPayEntity?) {
......
......@@ -38,7 +38,7 @@ class RightsPayPresenter : RightsPayContract.Presenter {
override fun requestRightsAliPay(goodsId: String, payType: String, phone: String) {
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone, "50")
ApiClient.userInfoAPi.aliPayRights(goodsId, payType, phone, "50",false,"")
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AliPayEntity>() {
override fun onSuccess(result: AliPayEntity?) {
......
......@@ -99,8 +99,35 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/color_999999"
android:textSize="14sp" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#EBEBEB" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textColor="@color/color_333333"
android:textSize="16sp"
android:text="用户ID" />
<TextView
android:id="@+id/id_tv_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:textColor="@color/color_999999"
android:textSize="14sp"
android:text="123455" />
android:text="" />
</RelativeLayout>
<View
android:layout_width="match_parent"
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F6F6F6">
<RelativeLayout
android:id="@+id/id_order_title"
android:layout_width="match_parent"
android:layout_height="68dp"
android:background="@color/white">
<ImageView
android:id="@+id/id_img_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:padding="15dp"
android:src="@drawable/icon_fanhui" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="12dp"
android:includeFontPadding="false"
android:text="订单支付"
android:textColor="@color/color_333333"
android:textSize="18sp" />
</RelativeLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/id_order_title">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="100dp">
<RelativeLayout
android:id="@+id/id_rl_no_address"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:background="@drawable/shape_ffffff_r5"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:drawableLeft="@drawable/icon_add"
android:drawablePadding="5dp"
android:text="请填写收货人信息"
android:textColor="@color/color_333333"
android:textSize="15sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/icon_jinru_rignt" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/id_rl_hava_address"
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_below="@+id/id_rl_order_title"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:background="@drawable/shape_ffffff_r5"
android:visibility="gone">
<TextView
android:id="@+id/id_tv_user_name_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:text=""
android:textColor="@color/color_333333"
android:textSize="18sp" />
<TextView
android:id="@+id/id_tv_user_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="70dp"
android:layout_marginBottom="15dp"
android:ellipsize="end"
android:lines="1"
android:text=""
android:textColor="@color/color_333333"
android:textSize="15sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/icon_jinru_rignt" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="18dp"
android:layout_toRightOf="@+id/id_tv_user_name_phone"
android:src="@drawable/icon_moren" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:background="@drawable/shape_ffffff_r5"
android:orientation="vertical"
android:padding="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<com.zxhl.cms.widget.RecycleImageView
android:id="@+id/id_img_order_goods"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginRight="5dp"
android:layout_centerVertical="true" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/id_tv_order_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:lines="2"
android:textColor="@color/color_333333"
android:textSize="14sp" />
<TextView
android:id="@+id/id_tv_sale_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/id_tv_goods_name"
android:textColor="@color/color_333333"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/id_tv_time_trip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/color_333333"
android:textSize="13sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="10dp"
android:background="#EDEDED" />
<RelativeLayout
android:id="@+id/id_rl_yunfei"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:visibility="gone">
<TextView
android:id="@+id/id_tv_price_trip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运费"
android:textColor="@color/color_666666"
android:textSize="14sp" />
<TextView
android:id="@+id/id_tv_yunfei"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="0"
android:textColor="@color/color_333333" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/id_rl_dabaofei"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:visibility="gone">
<TextView
android:id="@+id/id_tv_yunfei_price_trip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打包费"
android:textColor="@color/color_666666"
android:textSize="14sp" />
<TextView
android:id="@+id/id_tv_dabaofei"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/color_333333" />
</RelativeLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="支付:"
android:textColor="@color/color_333333"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥ "
android:textColor="#FF2E31"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_pay_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#FF2E31"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="104dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:background="@drawable/shape_ffffff_r5"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="备注留言"
android:textColor="@color/color_333333"
android:textSize="15sp" />
<EditText
android:id="@+id/id_edit_beizhu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:background="@null"
android:hint="你有什么特别需要请告诉我们"
android:textColor="@color/color_333333"
android:textColorHint="#999999"
android:textSize="13sp" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<TextView
android:id="@+id/id_tv_to_pay"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_alignParentBottom="true"
android:layout_margin="15dp"
android:background="@drawable/shape_ff2e31_r25"
android:gravity="center"
android:text="去支付"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
<WebView
android:id="@+id/id_rights_pay_web_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
</RelativeLayout>
......@@ -14,9 +14,20 @@
android:layout_height="wrap_content"
android:src="@drawable/bg_dialog_exit_buy" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/id_ll_bottom"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:text="退出将放弃抢购名额"
android:textColor="@color/color_333333"
android:visibility="gone"/>
<LinearLayout
android:layout_width="240dp"
android:layout_height="68dp"
android:id="@+id/id_ll_bottom"
android:layout_width="262dp"
android:layout_height="80dp"
android:layout_alignBottom="@+id/id_img_bg"
android:gravity="center">
......
......@@ -12,26 +12,30 @@
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="116dp"
android:text="很遗憾"
android:textColor="@color/color_333333"
android:textSize="20sp" />
<!-- <TextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="116dp"-->
<!-- android:text="很遗憾"-->
<!-- android:textColor="@color/color_333333"-->
<!-- android:textSize="20sp" />-->
<!-- <TextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="被抢光了,下次再来吧~"-->
<!-- android:layout_marginTop="15dp"-->
<!-- android:textColor="@color/color_666666"-->
<!-- android:textSize="16sp" />-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="被抢光了,下次再来吧~"
android:layout_marginTop="15dp"
android:textColor="@color/color_666666"
android:textSize="16sp" />
android:layout_weight="1"/>
<ImageView
android:id="@+id/id_img_i_know"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginBottom="18dp"
android:src="@drawable/button_wozhidaol"/>
</LinearLayout>
</LinearLayout>
......@@ -23,15 +23,14 @@
<TextView
android:id="@+id/id_tv_name"
android:layout_width="90dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/id_img_member_bg"
android:layout_centerHorizontal="true"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="20dp"
android:lines="1"
android:ellipsize="end"
android:text="优酷会员黄…"
android:textColor="@color/color_333333"
android:textSize="12sp" />
......
......@@ -24,11 +24,11 @@
<TextView
android:id="@+id/id_tv_name"
android:layout_width="90dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/id_img_member_bg"
android:layout_centerHorizontal="true"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="20dp"
android:ellipsize="end"
android:lines="1"
......
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