[Modify]修改夺宝数量超过10W显示为W字

This commit is contained in:
wushaocheng
2023-03-21 16:28:57 +08:00
parent 10df437be9
commit 4d5ee37b69
2 changed files with 59 additions and 2 deletions

View File

@@ -27,7 +27,9 @@ import com.yizhuan.erban.utils.SpannableBuilder
import com.yizhuan.xchat_android_core.UriProvider
import com.yizhuan.xchat_android_core.statistic.StatisticManager
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol
import com.yizhuan.xchat_android_core.treasurefairy.DrawInfo
import com.yizhuan.xchat_android_core.treasurefairy.PrizeInfo
import com.yizhuan.xchat_android_library.utils.FormatUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@@ -48,6 +50,8 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
private var disposable: Disposable? = null
private val viewModel: FairyViewModel by viewModels()
private var drawInfo: DrawInfo? = null
companion object {
@JvmStatic
fun start(context: Context) {
@@ -150,7 +154,8 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
viewModel.drawInfoLiveData.observe(this) {
it?.let {
binding.tvKeyNum.text = it.drawTicketNum.toString()
drawInfo = it
binding.tvKeyNum.text = FormatUtils.formatBigNum(it.drawTicketNum.toString())
binding.tvCurrentLuckyValue.text = it.luckyNum.toString()
binding.tvShortLuckyValue.text =
@@ -196,7 +201,7 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
StatisticsProtocol.EVENT_TREASURE_ELF_LOTTERY_CLICK, "奪寶精靈抽獎點擊",
mapOf("open_count" to "${num}")
)
val keyNum = binding.tvKeyNum.text.toString().toInt()
val keyNum = drawInfo?.drawTicketNum ?: 0
if (keyNum >= num) {
return true
}

View File

@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_library.utils;
import com.yizhuan.xchat_android_library.R;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
@@ -114,4 +115,55 @@ public class FormatUtils {
return String.valueOf(value);
}
public static String formatBigNum(String num) {
if (StringUtils.isEmpty(num)) {
// 数据为空直接返回0
return "0";
}
try {
StringBuilder sb = new StringBuilder();
if (!StringUtils.isNumeric(num)) {
// 如果数据不是数字则直接返回0
return "0";
}
BigDecimal b0 = new BigDecimal("100000");
BigDecimal b1 = new BigDecimal("10000");
BigDecimal b3 = new BigDecimal(num);
String formatedNum = "";//输出结果
String unit = "";//单位
if (b3.compareTo(b0) < 0) {
sb.append(b3);
} else if (b3.compareTo(b0) == 0 || b3.compareTo(b0) > 0) {
formatedNum = b3.divide(b1).toString();
unit = "W";
}
if (!"".equals(formatedNum)) {
int i = formatedNum.indexOf(".");
if (i == -1) {
sb.append(formatedNum).append(unit);
} else {
i = i + 1;
String v = formatedNum.substring(i, i + 1);
if (!v.equals("0")) {
sb.append(formatedNum.substring(0, i + 1)).append(unit);
} else {
sb.append(formatedNum.substring(0, i - 1)).append(unit);
}
}
}
if (sb.length() == 0)
return "0";
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
return num;
}
}
}