84 跳转房间 taskid=null,fix bugs.

This commit is contained in:
2025-12-12 19:23:35 +08:00
parent ec535432e7
commit be09d0e792
9 changed files with 92 additions and 52 deletions

View File

@@ -1,5 +1,7 @@
package com.xscm.moduleutil.utils; package com.xscm.moduleutil.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
@@ -258,6 +260,25 @@ public class TimeUtils {
return "1天"; // 或者 return "0天"; return "1天"; // 或者 return "0天";
} }
/**
* 计算时间差值并向上取整为天数
* @param currentTimeMillis 当前时间(毫秒级时间戳)
* @param createTimeSecond 创建时间(秒级时间戳)
* @return 向上取整后的天数
*/
public static int calculateDays(long currentTimeMillis, long createTimeSecond) {
// 1. 计算时间差(毫秒)
long timeDiffMillis = currentTimeMillis - createTimeSecond;
// 2. 转换为天数1天 = 24*60*60*1000 毫秒)
BigDecimal daysDecimal = new BigDecimal(timeDiffMillis)
.divide(new BigDecimal(24 * 60 * 60 * 1000), 10, RoundingMode.HALF_UP);
// 3. 向上取整(即使是 8.0001 天也会变成 9 天)
return daysDecimal.setScale(0, RoundingMode.CEILING).intValue();
}
/** /**
* 根据生日字符串计算年龄 * 根据生日字符串计算年龄
* @param birthDay 生日字符串,格式为 "yyyy-MM-dd" * @param birthDay 生日字符串,格式为 "yyyy-MM-dd"

View File

@@ -43,7 +43,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_1" android:layout_height="@dimen/dp_1"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintGuide_percent="0.59" /> app:layout_constraintGuide_percent="0.62" />
<ImageView <ImageView
android:id="@+id/iv_frame_bg" android:id="@+id/iv_frame_bg"

View File

@@ -159,7 +159,7 @@ open class Application : CommonAppContext() {
} }
RoomManager.getInstance() RoomManager.getInstance()
.fetchRoomDataAndEnter(ActivityUtils.getTopActivity(), roomId, "", "") .fetchRoomDataAndEnter(ActivityUtils.getTopActivity(), roomId, "", null)
} }
} }
}, },

View File

@@ -42,6 +42,7 @@ import com.tencent.qcloud.tuikit.tuichat.bean.ChatInfo;
import com.xscm.modulemain.activity.WebViewActivity; import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.modulemain.activity.main.activity.MainActivity; import com.xscm.modulemain.activity.main.activity.MainActivity;
import com.xscm.modulemain.activity.room.activity.RoomActivity; import com.xscm.modulemain.activity.room.activity.RoomActivity;
import com.xscm.modulemain.activity.user.activity.DailyTasksActivity;
import com.xscm.modulemain.activity.user.activity.HeartCpActivity; import com.xscm.modulemain.activity.user.activity.HeartCpActivity;
import com.xscm.modulemain.activity.user.activity.MyRoomActivity; import com.xscm.modulemain.activity.user.activity.MyRoomActivity;
import com.xscm.modulemain.manager.RoomManager; import com.xscm.modulemain.manager.RoomManager;
@@ -147,6 +148,8 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
((MainActivity) mThis).isShowLoading(false); ((MainActivity) mThis).isShowLoading(false);
} else if (mThis instanceof MyRoomActivity) { } else if (mThis instanceof MyRoomActivity) {
((MyRoomActivity) mThis).isShowLoading(false); ((MyRoomActivity) mThis).isShowLoading(false);
} else if (mThis instanceof DailyTasksActivity) {
((DailyTasksActivity) mThis).isShowLoading(false);
} }
}); });

View File

@@ -757,8 +757,8 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
mBinding.wvZc.pitBean.setImageType(false); mBinding.wvZc.pitBean.setImageType(false);
mBinding.wvZc.setData(mBinding.wvZc.pitBean); mBinding.wvZc.setData(mBinding.wvZc.pitBean);
} else { } else {
for (int i = 0; i < roomPitBeans.size(); i++) { for (int i = 0; i < roomPitBeans.size(); i++) {
RoomPitBean roomPitBean = roomPitBeans.get(i);
if (roomPitBean.getUser_id().equals(userId)) { if (roomPitBean.getUser_id().equals(userId)) {
roomPitBean.setImageType(true); roomPitBean.setImageType(true);
} else { } else {
@@ -766,9 +766,6 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
} }
viewList.get(i).setData(roomPitBean); viewList.get(i).setData(roomPitBean);
} }
// adapter.notifyDataSetChanged();
} }
} else { } else {
mBinding.ciUserAva.setImageResource(0); mBinding.ciUserAva.setImageResource(0);

View File

@@ -1,8 +1,8 @@
package com.xscm.modulemain.activity.room.fragment package com.xscm.modulemain.activity.room.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@@ -12,6 +12,7 @@ import android.widget.TextView
import com.blankj.utilcode.util.ActivityUtils import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.xscm.modulemain.R import com.xscm.modulemain.R
import com.xscm.modulemain.TransparentActivity
import com.xscm.modulemain.activity.room.contacts.MentorShipContacts import com.xscm.modulemain.activity.room.contacts.MentorShipContacts
import com.xscm.modulemain.activity.room.presenter.MentorShipPresenter import com.xscm.modulemain.activity.room.presenter.MentorShipPresenter
import com.xscm.modulemain.databinding.FragmentMentorShipBinding import com.xscm.modulemain.databinding.FragmentMentorShipBinding
@@ -33,13 +34,15 @@ import com.xscm.moduleutil.bean.room.RoomPitBean
import com.xscm.moduleutil.bean.room.RoomUserBean import com.xscm.moduleutil.bean.room.RoomUserBean
import com.xscm.moduleutil.dialog.ConfirmDialog import com.xscm.moduleutil.dialog.ConfirmDialog
import com.xscm.moduleutil.utils.ClickUtils import com.xscm.moduleutil.utils.ClickUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.cancel import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.util.concurrent.TimeUnit
/** /**
* 签约房 * 签约房
@@ -123,10 +126,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
view.setHostTv(mBinding.tvHostName) view.setHostTv(mBinding.tvHostName)
} else if (idx == 1) { } else if (idx == 1) {
mSignPitBean = bean mSignPitBean = bean
if (bean.user_id != "0" && mUserInfo?.user_id != null && viewList[0].pitBean?.user_id.equals( if (bean.user_id != "0" && mUserInfo?.user_id != null && viewList[0].pitBean?.user_id.equals(mUserInfo?.user_id.toString())) {
mUserInfo?.user_id.toString()
)
) {
mBinding.tvTimeLeft.visibility = View.VISIBLE mBinding.tvTimeLeft.visibility = View.VISIBLE
} }
} }
@@ -215,6 +215,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
R.id.iv_apply_for_mai -> { R.id.iv_apply_for_mai -> {
when (mBinding.ivApplyForMai.tag) { when (mBinding.ivApplyForMai.tag) {
ivForMai[0] -> { ivForMai[0] -> {
mBinding.ivApplyForMai.isClickable = false
MvpPre!!.applyPit(mRoomInfo?.room_info?.room_id!!, "") MvpPre!!.applyPit(mRoomInfo?.room_info?.room_id!!, "")
} }
@@ -265,6 +266,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
} }
} }
@SuppressLint("CheckResult")
private fun showBtn(isSignUser: Boolean = false) { private fun showBtn(isSignUser: Boolean = false) {
if (isStart) { if (isStart) {
mBinding.tvTimeLeft.text = startOrDelay[1] mBinding.tvTimeLeft.text = startOrDelay[1]
@@ -272,12 +274,18 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
mBinding.groupLeftPrice.visibility = View.VISIBLE mBinding.groupLeftPrice.visibility = View.VISIBLE
if (getHostUser() < 4) { if (getHostUser() < 4) {
mBinding.tvTimeRight.visibility = View.VISIBLE mBinding.tvTimeRight.visibility = View.VISIBLE
}else{
mBinding.tvTimeRight.visibility = View.GONE
} }
} else { } else {
mBinding.tvTimeLeft.text = startOrDelay[0] mBinding.tvTimeLeft.text = startOrDelay[0]
mBinding.tvTimeLeft.visibility = View.GONE
mBinding.tvTime.visibility = View.GONE
mBinding.tvTimeRight.visibility = View.GONE mBinding.tvTimeRight.visibility = View.GONE
mBinding.tvTime.visibility = View.GONE
mBinding.tvTimeLeft.visibility = View.GONE
mBinding.groupLeftPrice.visibility = View.GONE mBinding.groupLeftPrice.visibility = View.GONE
if (!isSignUser) { if (!isSignUser) {
mBinding.tvLeftPrice.text = "0" mBinding.tvLeftPrice.text = "0"
@@ -287,18 +295,31 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
mBinding.tvTime.text = "倒计时 00:00:00" mBinding.tvTime.text = "倒计时 00:00:00"
setIvForMai(0) setIvForMai(0)
} }
LogUtils.e(
"showBtn", if (viewList[0].pitBean.user_id.equals(mUserInfo?.user_id.toString()) && !mSignPitBean?.user_id.equals("0")) {
"showBtn: $isSignUser isStart: $isStart viewList[0].pitBean.user_id: ${viewList[0].pitBean.user_id} mSignPitBean?.user_id: ${mSignPitBean?.user_id} mRoomInfo?.user_info?.user_id: ${mRoomInfo?.user_info?.user_id} mUserInfo?.user_id: ${mUserInfo?.user_id}"
)
if (viewList[0].pitBean.user_id.equals(mUserInfo?.user_id.toString()) && !mSignPitBean?.user_id.equals(
"0"
)
) {
mBinding.tvTimeLeft.visibility = View.VISIBLE mBinding.tvTimeLeft.visibility = View.VISIBLE
} else { } else {
mBinding.tvTimeLeft.visibility = View.GONE mBinding.tvTimeLeft.visibility = View.GONE
} }
Observable.timer(200, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread())
.subscribe { aLong: Long? ->
startActivity(
Intent(
ActivityUtils.getTopActivity(),
TransparentActivity::class.java
)
)
}
LogUtils.e(
"showBtn",
"showBtn: $isSignUser isStart: $isStart \n viewList[0].pitBean.user_id: ${viewList[0].pitBean.user_id} " +
"\n mSignPitBean?.user_id: ${mSignPitBean?.user_id} " +
"\n mRoomInfo?.user_info?.user_id: ${mRoomInfo?.user_info?.user_id} " +
"\n mUserInfo?.user_id: ${mUserInfo?.user_id}" +
"\n mBinding.tvTimeRight: ${mBinding.tvTimeRight.visibility == View.VISIBLE}" +
"\n mBinding.tvTime: ${mBinding.tvTime.visibility == View.VISIBLE}" +
"\n mBinding.tvTimeLeft: ${mBinding.tvTimeLeft.visibility == View.VISIBLE}"
)
} }
@@ -345,6 +366,8 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
* sign_id 场次id这个出价的时候要传回来 * sign_id 场次id这个出价的时候要传回来
*/ */
fun event1090(messageEvent: RoomMessageEvent?) { fun event1090(messageEvent: RoomMessageEvent?) {
mBinding.ivApplyForMai.isClickable = true
mSignId = messageEvent?.text?.sign_id mSignId = messageEvent?.text?.sign_id
val endTime = messageEvent?.text?.end_time val endTime = messageEvent?.text?.end_time
val signDay = messageEvent?.text?.sign_day val signDay = messageEvent?.text?.sign_day
@@ -354,7 +377,6 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
signTypeDialog?.show(0) signTypeDialog?.show(0)
mBinding.tvTimeLeft.text = startOrDelay[1] mBinding.tvTimeLeft.text = startOrDelay[1]
mBinding.tvLeftPrice.text = currBodyValue mBinding.tvLeftPrice.text = currBodyValue
mBinding.tvSignDay.visibility = View.VISIBLE mBinding.tvSignDay.visibility = View.VISIBLE
@@ -385,17 +407,6 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
pitBean.charm = fromUserInfo.charm pitBean.charm = fromUserInfo.charm
viewList[indexList.indexOf("2")].setData(pitBean) viewList[indexList.indexOf("2")].setData(pitBean)
//当前麦上出价,需要更麦上数据
// for (i in 0 until viewList.size) {
// if(i == 1 || i == 2){
// continue
// }
// if (viewList[i].pitBean?.user_id != "0" && viewList[i].pitBean?.user_id == pitBean.user_id) {
// viewList[i].setData(mRoomInfo?.room_info?.pit_list!![indexList[i].toInt() - 1])
// }
// }
if (dialogMentorShip != null && dialogMentorShip?.isShowing!!) { if (dialogMentorShip != null && dialogMentorShip?.isShowing!!) {
MvpPre!!.signCoinList(mSignId!!) MvpPre!!.signCoinList(mSignId!!)
} }
@@ -447,8 +458,6 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
override fun onItemClick(coin: String) { override fun onItemClick(coin: String) {
dialogMentorShip?.setClickable(false) dialogMentorShip?.setClickable(false)
MvpPre!!.signCoin(mSignId!!, coin) MvpPre!!.signCoin(mSignId!!, coin)
} }
}) })
@@ -488,6 +497,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) :
private fun updateTimerDisplay(time: String) { private fun updateTimerDisplay(time: String) {
// 在这里更新你的UI比如 // 在这里更新你的UI比如
mBinding.tvTime.text = "倒计时 ${time}" mBinding.tvTime.text = "倒计时 ${time}"
LogUtils.e("updateTimerDisplay:"+mBinding.tvTime.text.toString() +"\n"+(mBinding.tvTime.visibility == View.VISIBLE))
} }
// 延迟后重新开始计时 // 延迟后重新开始计时

View File

@@ -134,7 +134,15 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
}); });
} }
public void isShowLoading(boolean b) {
if (b) {
mBinding.coolWaitView.setVisibility(View.VISIBLE);
} else {
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
mBinding.coolWaitView.setVisibility(View.GONE);
});
}
}
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
return R.layout.activity_daily_tasks; return R.layout.activity_daily_tasks;
@@ -205,9 +213,15 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
super.onPause(); super.onPause();
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> { Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
mBinding.coolWaitView.setVisibility(View.GONE); mBinding.coolWaitView.setVisibility(View.GONE);
if (!isFinishing()){
finish();
}
}); });
} }
@Override @Override
public void dailyTasksOpenBox(GiftName giftName) { public void dailyTasksOpenBox(GiftName giftName) {
ToastUtils.show(giftName.getGift_name()); ToastUtils.show(giftName.getGift_name());
@@ -259,12 +273,12 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
return; return;
} }
} }
RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, roomId, "", ""); RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, roomId, "", null);
finish();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
LogUtils.e("taskJumpRoom error: " + e.getMessage()); LogUtils.e("taskJumpRoom error: " + e.getMessage());
} }
} }
} }

View File

@@ -147,10 +147,10 @@ class HeartCpActivity : BaseMvpActivity<HeartCpPresenter, ActivityHeartCpBinding
adapter?.addData(heartCpBean.gift_log) adapter?.addData(heartCpBean.gift_log)
} }
val day = TimeUtils.formatDurationDaysOnly( val day = TimeUtils.calculateDays(
System.currentTimeMillis() - heartCpBean.createtime * 1000 System.currentTimeMillis() , heartCpBean.createtime * 1000
) )
mBinding.tvHeartTime.text = "我们在一起${day}" mBinding.tvHeartTime.text = "我们在一起${day}"
} }
} }

View File

@@ -48,10 +48,11 @@
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_marginTop="@dimen/dp_2" android:layout_marginTop="@dimen/dp_2"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title"> app:layout_constraintTop_toBottomOf="@id/tv_title">
@@ -68,10 +69,7 @@
android:text="开始" android:text="开始"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:visibility="gone" android:visibility="gone"/>
app:layout_constraintBottom_toBottomOf="@id/tv_time"
app:layout_constraintEnd_toStartOf="@id/tv_time"
app:layout_constraintTop_toTopOf="@id/tv_time" />
<TextView <TextView
android:id="@+id/tv_time" android:id="@+id/tv_time"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -94,10 +92,7 @@
android:text="结束" android:text="结束"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:visibility="gone" android:visibility="gone" />
app:layout_constraintBottom_toBottomOf="@id/tv_time"
app:layout_constraintStart_toEndOf="@id/tv_time"
app:layout_constraintTop_toTopOf="@id/tv_time" />
</LinearLayout> </LinearLayout>