1:完成我的家族功能

This commit is contained in:
2025-11-28 09:13:08 +08:00
parent 7821ef304d
commit c216099173
27 changed files with 1069 additions and 171 deletions

View File

@@ -106,29 +106,34 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
mBinding.rvTaskToday.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
List<TaskItem> sections = new ArrayList<>();
// 每日任务
// 每日任务
sections.add(new TaskItem("今日任务", giftBoxBean.getTasks().getDaily_tasks()));
// 特殊任务
sections.add(new TaskItem("特殊任务", giftBoxBean.getTasks().getDaily_tasks_special()));
// 平台任务
// 特殊任务
sections.add(new TaskItem("特殊任务", giftBoxBean.getTasks().getDaily_tasks_special()));//
// 师徒任务
if (giftBoxBean.getTasks().getTeacher_tasks() != null && giftBoxBean.getTasks().getTeacher_tasks().size() > 0) {
sections.add(new TaskItem("师徒任务", giftBoxBean.getTasks().getTeacher_tasks()));
}
// 平台任务
sections.add(new TaskItem("平台任务", giftBoxBean.getTasks().getUsual_tasks()));
mTaskDataAdapter = new TaskSectionAdapter(sections);
mBinding.rvTaskToday.setAdapter(mTaskDataAdapter);
mTaskDataAdapter.setOnItemClickListener(new TaskSectionAdapter.OnItemClickListener() {
@Override
public void onItemClick(TaskItem taskItem, GiftBoxBean.TaskDataBean.DailyTasksBean item) {
if (taskItem.getTitle().equals("今日任务") || taskItem.getTitle().equals("平台任务")) {
if (item.getTask_status()==2) {
if (taskItem.getTitle().equals("今日任务") || taskItem.getTitle().equals("平台任务") || taskItem.getTitle().equals("师徒任务")) {
if (item.getTask_status() == 2) {
MvpPre.dailyTasksReceive(item.getTask_id() + "");
}
} else {
if (item.getTask_status() == 2){
if (item.getTask_status() == 2) {
MvpPre.dailyTasksReceive(item.getTask_id() + "");
}else if (item.getTask_status() == 1) {
} else if (item.getTask_status() == 1) {
mBinding.coolWaitView.setVisibility(View.VISIBLE);
// if (item.getTask_id() == 9) {
RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, item.getFrom_id(), "", item.getTask_id() + "");
finish();
RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, item.getFrom_id(), "", item.getTask_id() + "");
finish();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", item.getFrom_id()).withString("taskId", item.getTask_id() + "").navigation();
// } else {
// RoomManager.getInstance().fetchRoomDataAndEnter(DailyTasksActivity.this, item.getFrom_id(), "", item.getTask_id() + "");

View File

@@ -1,11 +1,17 @@
package com.xscm.modulemain.activity.user.activity
import android.util.Log
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
import com.xscm.modulemain.BaseMvpActivity
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.user.conacts.UserFamilyConacts
import com.xscm.modulemain.activity.user.presenter.UserFamilyPresenter
import com.xscm.modulemain.adapter.TotalRevenueAdapter
import com.xscm.modulemain.databinding.ActivityTotalRevenueBinding
import com.xscm.moduleutil.bean.FamilyEarnings
import com.xscm.moduleutil.bean.MyFamilyBean
import com.xscm.moduleutil.widget.CommonEmptyView
import com.xscm.moduleutil.widget.DoubleTimePickerBottomSheet
import com.xscm.moduleutil.widget.DoubleTimePickerBottomSheet.OnTimeRangeSelectedListener
import java.text.SimpleDateFormat
@@ -19,37 +25,119 @@ import java.util.Locale
*/
class TotalRevenueActivity : BaseMvpActivity<UserFamilyPresenter, ActivityTotalRevenueBinding>(),
UserFamilyConacts.View {
var page = 1
var type = "1"
var revenueType = "1"
private var page = 1
private var userId: Int = 0
private var adapter: TotalRevenueAdapter? = null
override fun bindPresenter(): UserFamilyPresenter? {
return UserFamilyPresenter(this, this)
}
override fun initView() {
super.initView()
userId = intent.getIntExtra("userId",0)
}
override fun initData() {
mBinding.topBar.tvTitle.text = "总收益"
MvpPre?.familyEarnings(
userId.toString(),
page,
mBinding.tv2.text.toString(),
mBinding.tv22.text.toString())
adapter= TotalRevenueAdapter()
mBinding.totalView.adapter = adapter
val commonEmptyView = CommonEmptyView(this)
commonEmptyView.setImg(R.mipmap.ic_empty)
commonEmptyView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_FFBDBDBC))
adapter?.bindToRecyclerView(mBinding.totalView)
adapter?.setEmptyView(commonEmptyView)
mBinding.rl3.setOnClickListener({ v ->
val dialog = DoubleTimePickerBottomSheet()
dialog.setOnTimeRangeSelectedListener(OnTimeRangeSelectedListener { startDate: Date?, endDate: Date? ->
// 处理选择的时间范围
val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())
Log.d("SelectedTime", "开始时间:" + sdf.format(startDate))
mBinding.tv2.setText(sdf.format(startDate))
Log.d("SelectedTime", "结束时间:" + sdf.format(endDate))
mBinding.tv22.setText(sdf.format(endDate))
page = 1
MvpPre?.familyEarnings(
userId.toString(),
page,
mBinding.tv2.text.toString(),
mBinding.tv22.text.toString()
)
})
val fragmentManager = supportFragmentManager
dialog.show(fragmentManager,"DoubleTimePickerBottomSheet")
dialog.show(fragmentManager, "DoubleTimePickerBottomSheet")
})
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(object :OnRefreshLoadMoreListener{
override fun onRefresh(refreshLayout: RefreshLayout) {
page++
MvpPre?.familyEarnings(
userId.toString(),
page,
mBinding.tv2.text.toString(),
mBinding.tv22.text.toString()
)
}
override fun onLoadMore(refreshLayout: RefreshLayout) {
page = 1 // 重置页码
MvpPre?.familyEarnings(
userId.toString(),
page,
mBinding.tv2.text.toString(),
mBinding.tv22.text.toString()
)
}
} )
}
override fun getLayoutId(): Int {
return R.layout.activity_total_revenue
}
override fun myFamily(data: MyFamilyBean) {
}
override fun familyEarnings(data: List<FamilyEarnings>) {
mBinding.smartRefreshLayout.finishRefresh()
mBinding.smartRefreshLayout.finishLoadMore()
// 检查数据是否为空
if (data.isEmpty()) {
return
}
adapter?.let { adapter ->
when {
// 第一页数据为空
page == 1 && data.isEmpty() -> {
}
// 第一页有数据
page == 1 && data.isNotEmpty() -> {
adapter.setNewData(data)
}
// 非第一页数据为空(没有更多数据)
page > 1 && data.isEmpty() -> {
// 显示没有更多数据的提示
// 设置一个特殊的空视图,表示没有更多数据
// 重要page--,因为这次加载没有新数据
page--
}
// 非第一页有数据
else -> {
adapter.addData(data)
}
}
// 通知数据更新
adapter.notifyDataSetChanged()
}
}
}

View File

@@ -2,29 +2,38 @@ package com.xscm.modulemain.activity.user.activity
import android.graphics.Color
import android.view.LayoutInflater
import android.widget.ImageView
import android.view.View
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.blankj.utilcode.util.ToastUtils
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import com.xscm.modulemain.BaseMvpActivity
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.user.conacts.UserFamilyConacts
import com.xscm.modulemain.activity.user.fragment.MyFamilyFragment
import com.xscm.modulemain.activity.user.fragment.JoinedFamilyFragment
import com.xscm.modulemain.activity.user.presenter.UserFamilyPresenter
import com.xscm.modulemain.adapter.FamilyPagerAdapter
import com.xscm.modulemain.databinding.ActivityUserFamilyBinding
import com.xscm.moduleutil.bean.FamilyEarnings
import com.xscm.moduleutil.bean.MyFamilyBean
/**
* @Author qx
* @Time 2025/11/25 17:11
* @Description 我的家族
*/
* @Author qx
* @Time 2025/11/25 17:11
* @Description 我的家族
*/
class UserFamilyActivity : BaseMvpActivity<UserFamilyPresenter, ActivityUserFamilyBinding>(),
UserFamilyConacts.View {
private lateinit var mAdapter: FamilyPagerAdapter
private var myFamilyFragment: MyFamilyFragment? = null
private var joinedFamilyFragment: JoinedFamilyFragment? = null
private var familyPagerAdapter: FamilyPagerAdapter? = null
var type: Int = 1
override fun bindPresenter(): UserFamilyPresenter? {
return UserFamilyPresenter(this,this)
return UserFamilyPresenter(this, this)
}
override fun doDone() {
@@ -34,54 +43,48 @@ class UserFamilyActivity : BaseMvpActivity<UserFamilyPresenter, ActivityUserFami
override fun initView() {
super.initView()
}
override fun initData() {
mBinding.topBar.setTitle("家族")
mBinding.topBar.setColor(getResources().getColor(R.color.white))
setupViewPager()
setupTabLayout()
}
// 初始加载第一个tab的数据
MvpPre?.myFamily(type)
}
override fun getLayoutId(): Int {
return R.layout.activity_user_family
return R.layout.activity_user_family
}
private fun setupViewPager() {
mAdapter = FamilyPagerAdapter(this)
mBinding.viewPager.adapter = mAdapter
// 初始化Fragment
myFamilyFragment = MyFamilyFragment(MyFamilyBean())
joinedFamilyFragment = JoinedFamilyFragment(MyFamilyBean())
// 设置ViewPager适配器
familyPagerAdapter = FamilyPagerAdapter(this)
familyPagerAdapter?.addFragment(myFamilyFragment!!)
familyPagerAdapter?.addFragment(joinedFamilyFragment!!)
mBinding.viewPager.adapter = familyPagerAdapter
}
private fun setupTabLayout() {
// 设置TabLayout的内部padding为0确保tab与边框贴合
// 使用TabLayoutMediator将TabLayout与ViewPager2关联
TabLayoutMediator(mBinding.tabLayout, mBinding.viewPager) { tab, position ->
// 创建自定义Tab视图
val customView = LayoutInflater.from(this).inflate(R.layout.custom_tab_family, null)
val tabTitle = customView.findViewById<TextView>(R.id.tab_title)
when (position) {
0 -> {
tabTitle.text = "我的家族"
}
1 -> {
tabTitle.text = "我加入的家族"
}
}
// 设置Tab的初始状态
if (position == 0) {
tabTitle.setBackgroundResource(R.mipmap.user_tab_bj)
tabTitle.setTextColor(Color.BLACK)
} else {
tabTitle.setBackgroundResource(0)
tabTitle.setTextColor(Color.WHITE)
}
tab.customView = customView
tab.customView = createTabView(
when (position) {
0 -> "我的家族"
else -> "我加入的家族"
},
position == 0
)
}.attach()
// 设置Tab选中监听
mBinding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {
@@ -91,6 +94,18 @@ class UserFamilyActivity : BaseMvpActivity<UserFamilyPresenter, ActivityUserFami
tabTitle.setTextColor(Color.BLACK)
tabTitle.setBackgroundResource(R.mipmap.user_tab_bj)
}
// 根据Tab位置加载数据
when (tab.position) {
0 -> {
type = 1
MvpPre?.myFamily(type)
}
1 -> {
type = 2
MvpPre?.myFamily(type)
}
}
}
override fun onTabUnselected(tab: TabLayout.Tab) {
@@ -107,4 +122,64 @@ class UserFamilyActivity : BaseMvpActivity<UserFamilyPresenter, ActivityUserFami
}
})
}
}
/**
* 创建Tab视图
*/
private fun createTabView(title: String, isSelected: Boolean): View {
val customView = LayoutInflater.from(this).inflate(R.layout.custom_tab_family, null)
val tabTitle = customView.findViewById<TextView>(R.id.tab_title)
tabTitle.text = title
if (isSelected) {
tabTitle.setBackgroundResource(R.mipmap.user_tab_bj)
tabTitle.setTextColor(Color.BLACK)
} else {
tabTitle.setBackgroundResource(0)
tabTitle.setTextColor(Color.WHITE)
}
return customView
}
/**
* ViewPager2适配器
*/
inner class FamilyPagerAdapter(activity: FragmentActivity) : FragmentStateAdapter(activity) {
private val fragments = mutableListOf<Fragment>()
fun addFragment(fragment: Fragment) {
fragments.add(fragment)
}
override fun getItemCount(): Int = fragments.size
override fun createFragment(position: Int): Fragment = fragments[position]
}
override fun myFamily(data: MyFamilyBean) {
// 这个方法现在由Fragment处理Activity通过FamilyDataCallback接收数据
if (data.group_owner_info!=null ) {
// 如果是"我的家族"数据更新MyFamilyFragment
if (type == 1) {
myFamilyFragment?.setMyFamilyBean(data)
}else{
joinedFamilyFragment?.setMyFamilyBean(data)
}
// 如果是"我加入的家族"数据可以在这里处理JoinedFamilyFragment的数据更新
} else {
// 如果是"我加入的家族"没有数据
if (type == 2) {
ToastUtils.showLong("您还没有加入任何家族")
// 切换回"我的家族"tab
mBinding.tabLayout.selectTab(mBinding.tabLayout.getTabAt(0))
} else {
ToastUtils.showLong("没有数据")
}
}
}
override fun familyEarnings(data: List<FamilyEarnings>) {
TODO("Not yet implemented")
}
}

View File

@@ -1,8 +1,11 @@
package com.xscm.modulemain.activity.user.conacts
import android.R
import android.app.Activity
import com.xscm.moduleutil.activity.IPresenter
import com.xscm.moduleutil.activity.IView
import com.xscm.moduleutil.bean.FamilyEarnings
import com.xscm.moduleutil.bean.MyFamilyBean
/**
* 项目名称:羽声语音
@@ -11,10 +14,15 @@ import com.xscm.moduleutil.activity.IView
*/
class UserFamilyConacts {
interface View : IView<Activity>{
fun myFamily(data: MyFamilyBean)
fun familyEarnings(data: List<FamilyEarnings>)
}
interface IPre : IPresenter {
fun myFamily(type: Int) //1: 我的家族 2:我加入的家族
fun familyEarnings(user_id:String, page: Int, start_time: String, end_time: String)
}
}

View File

@@ -1,39 +1,124 @@
package com.xscm.modulemain.activity.user.fragment
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.blankj.utilcode.util.ToastUtils
import com.tencent.imsdk.v2.V2TIMConversation
import com.tencent.qcloud.tuicore.TUIConstants
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIGroupChatActivity
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.user.activity.TotalRevenueActivity
import com.xscm.modulemain.activity.user.activity.UserHomepageActivity
import com.xscm.modulemain.adapter.MyFamilyAdapter
import com.xscm.modulemain.databinding.FragmentJoinedFamilyBinding
import com.xscm.moduleutil.base.BaseFragment
import com.xscm.moduleutil.bean.MyFamilyBean
import com.xscm.moduleutil.widget.CommonEmptyView
/**
* @Author qx
* @Time 2025/11/25 17:20
* @Description 我加入的家族Fragment
*/
class JoinedFamilyFragment : Fragment() {
private var _binding: FragmentJoinedFamilyBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentJoinedFamilyBinding.inflate(inflater, container, false)
return binding.root
}
class JoinedFamilyFragment(var data: MyFamilyBean) : BaseFragment<FragmentJoinedFamilyBinding>() {
private var dataList = mutableListOf<MyFamilyBean.GroupMembersListsBean>()
private var adapter: MyFamilyAdapter? = null
private var userId: Int = 0
private var myFamilyBean : MyFamilyBean= MyFamilyBean()
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun initData() {
myFamily1(data)
}
override fun initView() {
mBinding.tvZsyNum2.setOnClickListener {
val intent= Intent(activity, TotalRevenueActivity::class.java)
intent.putExtra("userId",userId)
startActivity(intent)
}
mBinding.tvFamilyGroup.setOnClickListener {
if (myFamilyBean.group_members_lists.isNotEmpty()) {
val intent = Intent(activity, TUIGroupChatActivity::class.java)
intent.putExtra(TUIConstants.TUIChat.CHAT_ID, myFamilyBean.group_id)
intent.putExtra(TUIConstants.TUIChat.CHAT_NAME, myFamilyBean.name)
intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_GROUP)
startActivity(intent)
}else{
ToastUtils.showLong("家族群至少需要签约一位徒弟")
}
}
mBinding.headView.setOnClickListener { view ->
val intent = Intent(activity, UserHomepageActivity::class.java)
intent.putExtra("userId", myFamilyBean.user_id.toString())
startActivity(intent)
}
}
override fun getLayoutId(): Int {
return R.layout.fragment_joined_family
}
companion object {
fun newInstance(): JoinedFamilyFragment {
return JoinedFamilyFragment()
fun newInstance(data: MyFamilyBean): JoinedFamilyFragment {
return JoinedFamilyFragment(data)
}
}
/**
* 设置数据
*/
fun setMyFamilyBean(myBean: MyFamilyBean) {
this.myFamilyBean = myBean
myFamily1(myBean)
}
fun myFamily1(data: MyFamilyBean) {
myFamilyBean= data
userId = data.user_id
dataList.clear()
dataList.addAll(data.group_members_lists)
mBinding.headView.setData(data.group_owner_info?.avatar,data.group_owner_info?.dress,data.group_owner_info?.nobility_image)
mBinding.tvUserName.text = data.group_owner_info?.nickname
if (data.group_owner_info?.nickname_color?.isNotEmpty()==true){
mBinding.tvUserName.startColor = Color.parseColor(data.group_owner_info?.nickname_color)
mBinding.tvUserName.shineColor = Color.parseColor(data.group_owner_info?.nickname_color)
mBinding.tvUserName.endColor = Color.parseColor(data.group_owner_info?.nickname_color)
mBinding.tvUserName.isShine = true
mBinding.tvUserName.shineType = 0
}
mBinding.tvUserId.setText("ID: ${data.group_owner_info?.user_code}")
mBinding.tvZsyNum.text = data.group_earnings
mBinding.tvSignNum.setText("群组人数:${data.group_members_num}")
adapter = MyFamilyAdapter(activity!!,userId, R.layout.item_family_members, dataList)
mBinding.recyclerView.adapter = adapter
val commonEmptyView = CommonEmptyView(activity!!)
commonEmptyView.setImg(R.mipmap.ic_empty)
commonEmptyView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_FFBDBDBC))
adapter?.bindToRecyclerView(mBinding.recyclerView)
adapter?.setEmptyView(commonEmptyView)
adapter?.setOnItemChildClickListener { adapter, view, position ->
if (view.id == R.id.iv_head) {
val item = dataList[position]
val intent = Intent(activity, UserHomepageActivity::class.java)
intent.putExtra("userId", item.user_id.toString() + "")
startActivity(intent)
}
}
}
}

View File

@@ -1,15 +1,21 @@
package com.xscm.modulemain.activity.user.fragment
import android.content.Intent
import android.graphics.Color
import android.view.View
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.ToastUtils
import com.tencent.imsdk.v2.V2TIMConversation
import com.tencent.qcloud.tuicore.TUIConstants
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIGroupChatActivity
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.user.activity.HeartCpActivity
import com.xscm.modulemain.activity.user.activity.TotalRevenueActivity
import com.xscm.modulemain.activity.user.conacts.UserFamilyConacts
import com.xscm.modulemain.activity.user.presenter.UserFamilyPresenter
import com.xscm.modulemain.activity.user.activity.UserHomepageActivity
import com.xscm.modulemain.adapter.MyFamilyAdapter
import com.xscm.modulemain.databinding.FragmentMyFamilyBinding
import com.xscm.moduleutil.base.BaseMvpFragment
import com.xscm.moduleutil.base.BaseFragment
import com.xscm.moduleutil.bean.MyFamilyBean
import com.xscm.moduleutil.dialog.ConfirmDialog
import com.xscm.moduleutil.widget.CommonEmptyView
@@ -18,11 +24,12 @@ import com.xscm.moduleutil.widget.CommonEmptyView
* @Time 2025/11/25 17:20
* @Description 我的家族Fragment
*/
class MyFamilyFragment : BaseMvpFragment<UserFamilyPresenter, FragmentMyFamilyBinding>(), UserFamilyConacts.View {
class MyFamilyFragment(var data: MyFamilyBean) : BaseFragment<FragmentMyFamilyBinding>() {
override fun bindPresenter(): UserFamilyPresenter? {
return UserFamilyPresenter(this, activity!!)
}
private var dataList = mutableListOf<MyFamilyBean.GroupMembersListsBean>()
private var adapter: MyFamilyAdapter? = null
private var userId: Int = 0
private var myFamilyBean : MyFamilyBean= MyFamilyBean()
override fun onDestroyView() {
@@ -30,19 +37,35 @@ class MyFamilyFragment : BaseMvpFragment<UserFamilyPresenter, FragmentMyFamilyBi
}
override fun initData() {
myFamily1(data)
}
override fun initView() {
mBinding.tvZsyNum2.setOnClickListener {
val intent= Intent(activity, TotalRevenueActivity::class.java)
intent.putExtra("userId",userId)
startActivity(intent)
}
val commonEmptyView = CommonEmptyView(getContext()!!)
commonEmptyView.setImg(R.mipmap.ic_empty)
commonEmptyView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_FFBDBDBC))
// manageAdapter.bindToRecyclerView(mBinding.recycleView)
// manageAdapter.setEmptyView(commonEmptyView)
mBinding.tvFamilyGroup.setOnClickListener {
if (myFamilyBean.group_members_lists.isNotEmpty()) {
val intent = Intent(activity, TUIGroupChatActivity::class.java)
intent.putExtra(TUIConstants.TUIChat.CHAT_ID, myFamilyBean.group_id)
intent.putExtra(TUIConstants.TUIChat.CHAT_NAME, myFamilyBean.name)
intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_GROUP)
startActivity(intent)
}else{
ToastUtils.showLong("家族群至少需要签约一位徒弟")
}
}
mBinding.headView.setOnClickListener { view ->
val intent = Intent(activity, UserHomepageActivity::class.java)
intent.putExtra("userId", myFamilyBean.user_id.toString())
startActivity(intent)
}
}
override fun getLayoutId(): Int {
@@ -50,17 +73,23 @@ class MyFamilyFragment : BaseMvpFragment<UserFamilyPresenter, FragmentMyFamilyBi
}
companion object {
fun newInstance(): MyFamilyFragment {
return MyFamilyFragment()
fun newInstance(data: MyFamilyBean): MyFamilyFragment {
return MyFamilyFragment(data)
}
}
/**
* 设置数据
*/
fun setMyFamilyBean(myBean: MyFamilyBean) {
this.myFamilyBean = myBean
myFamily1(myBean)
}
private fun queren1(
type: Int,
content: String?,
giftid: String?,
userId: String,
roomId: String?
) {
// 创建并显示确认对话框
ConfirmDialog(
@@ -83,4 +112,44 @@ class MyFamilyFragment : BaseMvpFragment<UserFamilyPresenter, FragmentMyFamilyBi
).show()
}
}
fun myFamily1(data: MyFamilyBean) {
myFamilyBean= data
userId = data.user_id
dataList.clear()
dataList.addAll(data.group_members_lists)
mBinding.headView.setData(data.group_owner_info?.avatar,data.group_owner_info?.dress,data.group_owner_info?.nobility_image)
mBinding.tvUserName.text = data.group_owner_info?.nickname
if (data.group_owner_info?.nickname_color?.isNotEmpty() == true){
mBinding.tvUserName.startColor = Color.parseColor(data.group_owner_info?.nickname_color)
mBinding.tvUserName.shineColor = Color.parseColor(data.group_owner_info?.nickname_color)
mBinding.tvUserName.endColor = Color.parseColor(data.group_owner_info?.nickname_color)
mBinding.tvUserName.isShine = true
mBinding.tvUserName.shineType = 0
}
mBinding.tvUserId.setText("ID: ${data.group_owner_info?.user_code}")
mBinding.tvZsyNum.text = data.group_earnings
mBinding.tvSignNum.setText("签约次数:${data.group_members_num}")
adapter = MyFamilyAdapter(activity!!,userId, R.layout.item_family_members, dataList)
mBinding.recyclerView.adapter = adapter
val commonEmptyView = CommonEmptyView(activity!!)
commonEmptyView.setImg(R.mipmap.ic_empty)
commonEmptyView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_FFBDBDBC))
adapter?.bindToRecyclerView(mBinding.recyclerView)
adapter?.setEmptyView(commonEmptyView)
adapter?.setOnItemChildClickListener { adapter, view, position ->
if (view.id == R.id.tv_renew) {
val item = dataList[position]
queren1(1, "是否确认免费续约", item.user_id.toString())
}else if (view.id == R.id.iv_head) {
val item = dataList[position]
val intent = Intent(activity, UserHomepageActivity::class.java)
intent.putExtra("userId", item.user_id.toString())
startActivity(intent)
}
}
}
}

View File

@@ -2,13 +2,54 @@ package com.xscm.modulemain.activity.user.presenter
import android.content.Context
import com.xscm.modulemain.activity.user.conacts.UserFamilyConacts
import com.xscm.moduleutil.bean.FamilyEarnings
import com.xscm.moduleutil.bean.MyFamilyBean
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.presenter.BasePresenter
import io.reactivex.disposables.Disposable
import java.lang.ref.WeakReference
/**
* 项目名称:羽声语音
* 时间2025/11/25 17:01
* 用途:
*/
class UserFamilyPresenter (view: UserFamilyConacts.View,context: Context) : BasePresenter<UserFamilyConacts.View>(view,context), UserFamilyConacts.IPre{
class UserFamilyPresenter(val view: UserFamilyConacts.View, context: Context) :
BasePresenter<UserFamilyConacts.View>(view, context), UserFamilyConacts.IPre {
override fun myFamily(type: Int) {
api.myFamily(type, object : BaseObserver<MyFamilyBean>() {
override fun onSubscribe(d: Disposable) {
addDisposable(d)
}
override fun onNext(t: MyFamilyBean) {
if (MvpRef==null){
MvpRef=WeakReference(view);
}
MvpRef.get()?.myFamily(t)
}
})
}
override fun familyEarnings(
user_id: String,
page: Int,
start_time:String,
end_time:String
) {
api.familyEarnings(user_id, page, start_time, end_time, object : BaseObserver<MutableList<FamilyEarnings>>() {
override fun onSubscribe(d: Disposable) {
addDisposable(d)
}
override fun onNext(t: MutableList<FamilyEarnings>) {
if (MvpRef==null)
MvpRef=WeakReference(view);
MvpRef.get()?.familyEarnings(t)
}
})
}
}
}