[Modify]公会数据页面修改

This commit is contained in:
wushaocheng
2023-08-07 10:52:12 +08:00
parent d8c1a89005
commit 96e3c65f2f
24 changed files with 1315 additions and 1 deletions

View File

@@ -243,6 +243,10 @@
android:name=".avroom.activity.RoomBlackListActivity"
android:label="@string/main_androidmanifest_09"
android:screenOrientation="portrait" />
<activity
android:name=".module_hall.hall.activity.RoomIncomeActivity"
android:label="房间流水"
android:screenOrientation="portrait" />
<activity
android:name="com.yizhuan.tutu.music.activity.AddLocalMusicListActivity"
android:label="@string/main_androidmanifest_010"

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white" />
<corners android:radius="@dimen/dp_6" />
</shape>

View File

@@ -669,5 +669,10 @@
<color name="color_FFE785">#FFE785</color>
<color name="color_8C4700">#8C4700</color>
<color name="color_EC4613">#EC4613</color>
<color name="color_308BE0">#308BE0</color>
<color name="color_E1489B">#E1489B</color>
<color name="color_8843E0">#8843E0</color>
<color name="color_2B2D33">#2B2D33</color>
<color name="color_696D7A">#696D7A</color>
</resources>

View File

@@ -5090,5 +5090,8 @@
<string name="get">獲得</string>
<string name="start_week">周星榜</string>
<string name="Diamond_balance_is_insufficient">鉆石余額不足,是否充值</string>
<string name="format_year_month_hall">%1$s-%2$s</string>
<string name="member_income">成員收入</string>
<string name="management_setup">高管設置</string>
</resources>

View File

@@ -255,8 +255,10 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
if (visible) {
getMvpPresenter().getHallAuths(hallId);
binding.ivHallMemberMore.setVisibility(View.VISIBLE);
binding.llOption.setVisibility(View.VISIBLE);
} else {
binding.ivHallMemberMore.setVisibility(View.GONE);
binding.llOption.setVisibility(View.GONE);
}
}
@@ -413,6 +415,19 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.tv_check_stream:
if (hallInfo != null) {
RoomIncomeActivity.start(ModuleHallActivity.this, hallId);
} else {
toast("加载数据中,请稍后...");
}
break;
case R.id.tv_member_income:
IncomeStatisticsActivity.start(ModuleHallActivity.this, hallId);
break;
case R.id.tv_manage_setup:
AdminListActivity.start(ModuleHallActivity.this, hallId);
break;
case R.id.iv_hall_member_search:
MemberSearchActivity.start(ModuleHallActivity.this);
break;
@@ -456,6 +471,9 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
if (authInfo.getCode().equals(AuthInfo.AUTH_APPLY_HALL_EXIT)) {
continue;
}
if (authInfo.getName().equals(getString(R.string.member_income)) || authInfo.getName().equals(getString(R.string.management_setup))) {
continue;
}
if (authInfo.isOwnAuth()) {
ButtonItem item = new ButtonItem(authInfo.getName(), () -> {
jumpCode(authInfo.getCode());

View File

@@ -0,0 +1,289 @@
package com.yizhuan.erban.module_hall.hall.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.jzxiang.pickerview.data.Type;
import com.netease.nim.uikit.StatusBarUtil;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseMvpActivity;
import com.yizhuan.erban.common.widget.CircleImageView;
import com.yizhuan.erban.module_hall.hall.view.dialog.TimePickerDialog;
import com.yizhuan.erban.module_hall.hall.view.indicator.StatisticsIndicatorAdapter;
import com.yizhuan.erban.module_hall.income.HallIncomeFragment;
import com.yizhuan.erban.module_hall.income.presenter.RoomIncomePresenter;
import com.yizhuan.erban.module_hall.income.view.IIncomeStatisticsView;
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.CommonUtils;
import com.yizhuan.xchat_android_library.utils.TimeUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* 公会的收入统计
* Created by lvzebiao on 2023/07/31.
*/
@CreatePresenter(RoomIncomePresenter.class)
public class RoomIncomeActivity extends BaseMvpActivity<IIncomeStatisticsView, RoomIncomePresenter>
implements IIncomeStatisticsView, TimePickerDialog.TimePickerListener, HallIncomeFragment.DayIncomeFragmentListener, View.OnClickListener {
private static final int TYPE_DAY = 0;
private static final int TYPE_WEEK = 1;
private static final int TYPE_MONTH = 2;
List<HallIncomeFragment> list = new ArrayList<>();
private ViewPager viewPager;
private MagicIndicator indicator;
private TextView tvMonthDayStart;
private TextView tvMonthDayEnd;
private TextView tvTotal;
private AppCompatTextView tvTip;
private CircleImageView civAvatar;
private AppCompatTextView tvName;
FragmentStatePagerAdapter adapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
};
private boolean mHasInit = false;
private int mCurrentType;
private long mDayFirstTime = System.currentTimeMillis();
private long mDayLastTime = mDayFirstTime;
public static void start(Context context, long id) {
Intent intent = new Intent(context, RoomIncomeActivity.class);
intent.putExtra(HallIncomeFragment.FLAG_HALL_ID, id);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_room_income);
initFindView();
initIndicator();
long id = getIntent().getLongExtra(HallIncomeFragment.FLAG_HALL_ID, 0);
initWhiteTitleBar("收入统计");
HallIncomeFragment fragment = HallIncomeFragment.getInstance(id);
fragment.setmDayIncomeFragmentListener(this);
list.add(fragment);
fragment = HallIncomeFragment.getInstance(id);
fragment.setmDayIncomeFragmentListener(this);
list.add(fragment);
fragment = HallIncomeFragment.getInstance(id);
fragment.setmDayIncomeFragmentListener(this);
list.add(fragment);
viewPager.setAdapter(adapter);
}
private void initFindView() {
viewPager = findViewById(R.id.view_pager);
indicator = findViewById(R.id.indicator);
tvMonthDayStart = findViewById(R.id.tv_month_day_start);
tvMonthDayEnd = findViewById(R.id.tv_month_day_end);
tvTotal = findViewById(R.id.tv_total);
tvTip = findViewById(R.id.tv_tip);
civAvatar = findViewById(R.id.civ_avatar);
tvName = findViewById(R.id.tv_name);
}
@Override
protected void onResume() {
super.onResume();
if (!mHasInit) {
mHasInit = true;
initDay();
}
}
/**
* 初始化当前日,周
*/
private void initDay() {
RoomIncomePresenter presenter = getMvpPresenter();
presenter.initCurrentDay();
getDayIncomeTotal(getDayFormat(mDayFirstTime), getDayFormat(mDayLastTime));
}
private void initIndicator() {
List<String> tagList = new ArrayList<>();
tagList.add("按日统计");
tagList.add("每周统计");
tagList.add("每月统计");
StatisticsIndicatorAdapter adapter = new StatisticsIndicatorAdapter(tagList, 5);
adapter.setOnItemSelectListener(position -> viewPager.setCurrentItem(position));
CommonNavigator navigator = new CommonNavigator(this);
navigator.setAdapter(adapter);
navigator.setAdjustMode(true);
indicator.setNavigator(navigator);
ViewPagerHelper.bind(indicator, viewPager);
mCurrentType = TYPE_DAY;
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 切换日,周
mCurrentType = position;
RoomIncomePresenter presenter = getMvpPresenter();
if (mCurrentType == TYPE_WEEK) {
getWeekIncomeTotal(presenter.getWeekFirstDay(), presenter.getWeekLastDay());
} else if (mCurrentType == TYPE_DAY) {
getDayIncomeTotal(getDayFormat(mDayFirstTime), getDayFormat(mDayLastTime));
} else {
getMonthIncomeTotal(presenter.getmStartTimeStr(), presenter.getmEndTimeStr());
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_date_arrow:
case R.id.ll_day_group:
if (CommonUtils.isFastDoubleClick(500)) return;
RoomIncomePresenter presenter = getMvpPresenter();
boolean isWeek = mCurrentType == TYPE_WEEK;
boolean isMonth = mCurrentType == TYPE_MONTH;
boolean isDay = mCurrentType == TYPE_DAY;
TimePickerDialog.Builder builder = new TimePickerDialog.Builder()
.setType(Type.YEAR_MONTH_DAY)
.setTitleStringId("")
.setThemeColor(getResources().getColor(R.color.line_color))
.setWheelItemTextNormalColor(getResources().getColor(R.color
.timetimepicker_default_text_color))
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
// 根据上一次选中时间初始化日期控件
.setCurrentMillseconds(isDay ? mDayFirstTime : (isWeek ? presenter.getmWeekChooseDay() : presenter.getmDay()))
.setmIsWeek(isWeek)
.setIsMonth(isMonth)
.setIsDay(isDay)
.setDayFirstTime(mDayFirstTime)
.setDayLastTime(mDayLastTime);
TimePickerDialog dialog = builder.build();
dialog.setmTimePickerListener(this);
dialog.show(getSupportFragmentManager(), "year_month_day");
break;
}
}
@Override
public void getTime(long chooseTime, String weekFirstDay, String weekLastDay) {
RoomIncomePresenter presenter = getMvpPresenter();
if (mCurrentType == TYPE_DAY) {
mDayFirstTime = TimeUtils.getTimeMillis(weekFirstDay, TimeUtils.DATE_FORMAT);
mDayLastTime = TimeUtils.getTimeMillis(weekLastDay, TimeUtils.DATE_FORMAT);
getDayIncomeTotal(weekFirstDay, weekLastDay);
} else if (mCurrentType == TYPE_WEEK) {
presenter.setmWeekChooseDay(chooseTime);
presenter.setWeekFirstDay(weekFirstDay);
presenter.setWeekLastDay(weekLastDay);
getWeekIncomeTotal(weekFirstDay, weekLastDay);
} else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String time = format.format(chooseTime);
String startTimeStr = TimeUtils.getFirstDayOfMonth(time);
String endTimeStr = TimeUtils.getLastDayOfMonth(time);
presenter.setmDayStr(chooseTime);
presenter.setmStartTimeStr(startTimeStr);
presenter.setmEndTimeStr(endTimeStr);
getMonthIncomeTotal(startTimeStr, endTimeStr);
}
}
private void getDayIncomeTotal(String startTimeStr, String endTimeStr) {
tvTip.setVisibility(View.VISIBLE);
tvMonthDayStart.setText(startTimeStr);
tvMonthDayEnd.setVisibility(View.VISIBLE);
tvMonthDayEnd.setText(endTimeStr);
list.get(0).getIncomeTotal(startTimeStr, endTimeStr);
}
private void getWeekIncomeTotal(String startTimeStr, String endTimeStr) {
tvTip.setVisibility(View.VISIBLE);
tvMonthDayEnd.setVisibility(View.VISIBLE);
tvMonthDayStart.setText(startTimeStr);
tvMonthDayEnd.setText(endTimeStr);
list.get(1).getIncomeTotal(startTimeStr, endTimeStr);
}
private void getMonthIncomeTotal(String startTimeStr, String endTimeStr) {
tvTip.setVisibility(View.GONE);
String[] startArray = startTimeStr.split("-");
tvMonthDayEnd.setVisibility(View.GONE);
tvMonthDayStart.setText(String.format(getString(R.string.format_year_month_hall), startArray[0], startArray[1]));
list.get(2).getIncomeTotal(startTimeStr, endTimeStr);
}
@Override
public void setTotal(double total) {
tvTotal.setText(getMvpPresenter().setTotal(total));
}
@Override
public void setUserMessage(String url, String name) {
ImageLoadUtilsV2.loadImage(civAvatar, url);
tvName.setText(name);
}
private String getDayFormat(long time) {
return TimeUtils.getDateTimeString(time, TimeUtils.DATE_FORMAT);
}
@Override
protected boolean needSteepStateBar() {
return true;
}
@Override
protected void setStatusBar() {
super.setStatusBar();
StatusBarUtil.transparencyBar(this);
}
}

View File

@@ -0,0 +1,107 @@
package com.yizhuan.erban.module_hall.income;
import android.os.Bundle;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseMvpFragment;
import com.yizhuan.erban.module_hall.income.adapter.HallIncomeAdapter;
import com.yizhuan.erban.module_hall.income.presenter.HallIncomeFragmentPresenter;
import com.yizhuan.erban.module_hall.income.view.IHallIncomeView;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallIncomeInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallTotalIncomeInfo;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
/**
* 日收入统计
* Created by lvzebiao on 2018/12/27.
*/
@CreatePresenter(HallIncomeFragmentPresenter.class)
public class HallIncomeFragment extends BaseMvpFragment<IHallIncomeView, HallIncomeFragmentPresenter> implements IHallIncomeView {
public static final String FLAG_HALL_ID = "clanId";
private RecyclerView recyclerView;
private HallIncomeAdapter mIncomeAdapter;
private DayIncomeFragmentListener mDayIncomeFragmentListener;
private long hallId;
public static HallIncomeFragment getInstance(long hallId) {
HallIncomeFragment fragment = new HallIncomeFragment();
Bundle bundle = new Bundle();
bundle.putLong(FLAG_HALL_ID, hallId);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onFindViews() {
recyclerView = mView.findViewById(R.id.recycler_view);
mIncomeAdapter = new HallIncomeAdapter();
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
recyclerView.setAdapter(mIncomeAdapter);
}
@Override
public void onSetListener() {
}
@Override
public void initiate() {
}
public void getIncomeTotal(String startTimeStr, String endTimeStr) {
hallId = requireArguments().getLong(FLAG_HALL_ID);
getMvpPresenter().incomeTotal(hallId, startTimeStr, endTimeStr);
}
@Override
public int getRootLayoutId() {
return R.layout.fragment_day_income;
}
private void setTotal(double total) {
if (mDayIncomeFragmentListener != null)
mDayIncomeFragmentListener.setTotal(total);
}
private void setUserMessage(String url, String name) {
if (mDayIncomeFragmentListener != null)
mDayIncomeFragmentListener.setUserMessage(url, name);
}
public void setmDayIncomeFragmentListener(DayIncomeFragmentListener mDayIncomeFragmentListener) {
this.mDayIncomeFragmentListener = mDayIncomeFragmentListener;
}
@Override
public void incomeTotalSuccess(HallTotalIncomeInfo hallTotalIncomeInfo) {
setTotal(hallTotalIncomeInfo.getTotal());
if (!ListUtils.isListEmpty(hallTotalIncomeInfo.getIncome())) {
HallIncomeInfo hallIncomeInfo = hallTotalIncomeInfo.getIncome().get(0);
setUserMessage(hallIncomeInfo.getHallAvatar(), hallIncomeInfo.getHallName());
hideStatus();
mIncomeAdapter.setNewData(hallTotalIncomeInfo.getIncome());
} else {
mIncomeAdapter.setNewData(null);
showNoData("暂无数据");
}
}
@Override
public void incomeTotalFail(String message) {
showNoData("暂无数据");
setTotal(0);
mIncomeAdapter.setNewData(null);
}
public interface DayIncomeFragmentListener {
void setTotal(double total);
void setUserMessage(String url, String name);
}
}

View File

@@ -0,0 +1,30 @@
package com.yizhuan.erban.module_hall.income.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.yizhuan.erban.R;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallIncomeInfo;
import org.jetbrains.annotations.NotNull;
import java.text.DecimalFormat;
public class HallIncomeAdapter extends BaseQuickAdapter<HallIncomeInfo, BaseViewHolder> {
public HallIncomeAdapter() {
super(R.layout.item_hall_income);
}
@Override
protected void convert(@NotNull BaseViewHolder helper, HallIncomeInfo item) {
DecimalFormat decimalFormat = new DecimalFormat("###################.###########");
helper.setText(R.id.tv_bag_income, "+" + decimalFormat.format(item.getBagIncome()))
.setText(R.id.tv_normal_gift_income, "+" + decimalFormat.format(item.getNormalGiftIncome()))
.setText(R.id.tv_room_income, "+" + decimalFormat.format(item.getRoomIncome()))
.setText(R.id.tv_send_gift_number, item.getGiftUv())
.setText(R.id.tv_new_user_send_gift_number, item.getNewUserSendGiftNum())
.setText(R.id.tv_room_income_desc, "房间流水");
}
}

View File

@@ -0,0 +1,39 @@
package com.yizhuan.erban.module_hall.income.presenter;
import com.yizhuan.erban.base.BaseMvpPresenter;
import com.yizhuan.erban.module_hall.income.view.IHallIncomeView;
import com.yizhuan.xchat_android_core.module_hall.income.IncomeModel;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallTotalIncomeInfo;
import org.jetbrains.annotations.NotNull;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
public class HallIncomeFragmentPresenter extends BaseMvpPresenter<IHallIncomeView> {
public void incomeTotal(long id, String startTimeStr, String endTimeStr) {
IncomeModel.get().getHallIncomeList(id, startTimeStr, endTimeStr).compose(bindToLifecycle())
.subscribe(new SingleObserver<HallTotalIncomeInfo>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(@NotNull HallTotalIncomeInfo hallTotalIncomeInfo) {
if (getMvpView() == null)
return;
getMvpView().incomeTotalSuccess(hallTotalIncomeInfo);
}
@Override
public void onError(@NotNull Throwable e) {
if (getMvpView() == null)
return;
getMvpView().incomeTotalFail(e.getMessage());
}
});
}
}

View File

@@ -0,0 +1,121 @@
package com.yizhuan.erban.module_hall.income.presenter;
import android.text.SpannableString;
import android.text.style.RelativeSizeSpan;
import com.yizhuan.erban.base.BaseMvpPresenter;
import com.yizhuan.erban.module_hall.income.view.IIncomeStatisticsView;
import com.yizhuan.xchat_android_library.utils.TimeUtils;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class RoomIncomePresenter extends BaseMvpPresenter<IIncomeStatisticsView> {
private String mStartTimeStr;
private String mEndTimeStr;
private String weekFirstDay;
private String weekLastDay;
/**
* 周范围内选中的日期
*/
private long mWeekChooseDay;
/**
* 日范围内选中的日期
*/
private long mDay;
public void initCurrentDay() {
mDay = mWeekChooseDay = System.currentTimeMillis();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(mDay);
int curWeekDay = calendar.get(Calendar.DAY_OF_WEEK);
//周一的时间
long firstDayTime;
if (curWeekDay == 1) {//周日
firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (7 - curWeekDay));
} else {
firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (curWeekDay - 2));
}
//周日
long lastDayTime = firstDayTime + (TimeUtils.MILLIS_OF_A_DAY * 6);
weekFirstDay = TimeUtils.getDateTimeString(firstDayTime, TimeUtils.DATE_FORMAT);
weekLastDay = TimeUtils.getDateTimeString(lastDayTime, TimeUtils.DATE_FORMAT);
String ym = new SimpleDateFormat("yyyy-MM").format(mDay);
mStartTimeStr = TimeUtils.getFirstDayOfMonth(ym);
mEndTimeStr = TimeUtils.getLastDayOfMonth(ym);
}
public SpannableString setTotal(double total) {
SpannableString spannableString;
RelativeSizeSpan sizeSpan = new RelativeSizeSpan(0.5f);
DecimalFormat decimalFormat = new DecimalFormat("###################.###########");
String str = decimalFormat.format(total) + "钻石";
spannableString = new SpannableString(str);
spannableString.setSpan(sizeSpan, str.length() - 2, str.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannableString;
}
public String getmStartTimeStr() {
return mStartTimeStr;
}
public void setmStartTimeStr(String mStartTimeStr) {
this.mStartTimeStr = mStartTimeStr;
}
public String getmEndTimeStr() {
return mEndTimeStr;
}
public void setmEndTimeStr(String mEndTimeStr) {
this.mEndTimeStr = mEndTimeStr;
}
public long getmDay() {
return mDay;
}
public void setmDayStr(long day) {
this.mDay = day;
}
public String getDayFormat() {
return TimeUtils.getDateTimeString(mDay, TimeUtils.DATE_FORMAT);
}
public long getmWeekChooseDay() {
return mWeekChooseDay;
}
public void setmWeekChooseDay(long weekChooseDay) {
this.mWeekChooseDay = weekChooseDay;
}
public String getWeekChooseDayFormat() {
return TimeUtils.getDateTimeString(mWeekChooseDay, TimeUtils.DATE_FORMAT);
}
public String getWeekFirstDay() {
return weekFirstDay;
}
public void setWeekFirstDay(String weekFirstDay) {
this.weekFirstDay = weekFirstDay;
}
public String getWeekLastDay() {
return weekLastDay;
}
public void setWeekLastDay(String weekLastDay) {
this.weekLastDay = weekLastDay;
}
}

View File

@@ -0,0 +1,10 @@
package com.yizhuan.erban.module_hall.income.view;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallTotalIncomeInfo;
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
public interface IHallIncomeView extends IMvpBaseView {
void incomeTotalSuccess(HallTotalIncomeInfo hallTotalIncomeInfo);
void incomeTotalFail(String message);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

View File

@@ -106,6 +106,60 @@
tools:itemCount="1"
tools:listitem="@layout/item_tab_small" />
<LinearLayout
android:id="@+id/ll_option"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginEnd="15dp"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible"
app:layout_constraintTop_toBottomOf="@id/rv_option">
<TextView
android:id="@+id/tv_check_stream"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_check_stream"
android:paddingStart="10dp"
android:paddingEnd="0dp"
android:paddingTop="10dp"
android:text="查看流水"
android:textColor="@color/color_308BE0"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_member_income"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_weight="1"
android:background="@drawable/bg_member_income"
android:paddingStart="10dp"
android:paddingEnd="0dp"
android:paddingTop="10dp"
android:text="成员收入"
android:textColor="@color/color_E1489B"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_manage_setup"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_weight="1"
android:background="@drawable/bg_manage_setup"
android:paddingStart="10dp"
android:paddingEnd="0dp"
android:paddingTop="10dp"
android:text="高管设置"
android:textColor="@color/color_8843E0"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_member_list"
android:layout_width="match_parent"
@@ -117,7 +171,7 @@
android:background="@drawable/bg_secondary_radius_10"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_option">
app:layout_constraintTop_toBottomOf="@id/ll_option">
<LinearLayout
android:layout_width="match_parent"

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_normal_1c1b22"
android:orientation="vertical">
<com.yizhuan.erban.base.TitleBar
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_30">
</com.yizhuan.erban.base.TitleBar>
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_30" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="108dp"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="10dp"
android:layout_marginEnd="@dimen/dp_16"
android:background="@drawable/bg_hall_income_statistics">
<LinearLayout
android:id="@+id/ll_day_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginBottom="@dimen/dp_10"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_month_day_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="@dimen/sp_15"
tools:text="2023-01-01" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_tip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4"
android:text="至"
android:textColor="@color/color_white"
android:textSize="@dimen/sp_12" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_month_day_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="@dimen/sp_15"
android:visibility="gone"
tools:text="2023-01-01"
tools:visibility="visible" />
</LinearLayout>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_date_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_4"
android:src="@drawable/icon_hall_date_arrow"
app:layout_constraintBottom_toBottomOf="@+id/ll_day_group"
app:layout_constraintStart_toEndOf="@+id/ll_day_group"
app:layout_constraintTop_toTopOf="@+id/ll_day_group" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_all_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_12"
android:text="@string/all_income"
android:textColor="@color/color_white"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:textColor="@color/white"
android:textSize="28sp"
app:layout_constraintBottom_toTopOf="@+id/ll_day_group"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_all_total"
tools:text="0.0" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/civ_avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_24"
android:src="@drawable/default_avatar"
app:civ_border_color="@color/color_white"
app:civ_border_width="1dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_14"
android:textColor="@color/color_white"
android:textSize="@dimen/sp_14"
android:lines="1"
android:ellipsize="end"
android:maxEms="6"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/civ_avatar"
tools:text="小半半的房间广泛风格士大夫" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.viewpager.widget.ViewPager>
</LinearLayout>

View File

@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="@color/bg_normal_1c1b22">
<View
android:id="@+id/view"
android:layout_width="@dimen/dp_4"
android:layout_height="@dimen/dp_14"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_28"
android:background="@drawable/bg_hall_income_diamond"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_income"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:text="收入"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_16"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/view"
app:layout_constraintStart_toEndOf="@+id/view"
app:layout_constraintTop_toTopOf="@+id/view" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(钻石)"
app:layout_constraintBottom_toBottomOf="@+id/view"
app:layout_constraintStart_toEndOf="@+id/tv_income"
app:layout_constraintTop_toTopOf="@+id/view" />
<LinearLayout
android:id="@+id/ll_room_water"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_12"
android:background="@drawable/bg_white_cornor_6"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/ll_gift_water"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_room_income"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
tools:text="+8" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_room_income_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_12"
android:text="房间流水"
android:textColor="@color/color_696D7A"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_gift_water"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:background="@drawable/bg_white_cornor_6"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/ll_bag_water"
app:layout_constraintStart_toEndOf="@+id/ll_room_water"
app:layout_constraintTop_toTopOf="@+id/ll_room_water">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_normal_gift_income"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
tools:text="+8" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_12"
android:text="普通礼物流水"
android:textColor="@color/color_696D7A"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_bag_water"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:background="@drawable/bg_white_cornor_6"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/ll_gift_water"
app:layout_constraintTop_toTopOf="@+id/ll_room_water">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_bag_income"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
tools:text="+8" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_12"
android:text="背包礼物流水"
android:textColor="@color/color_696D7A"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_gift_num"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/bg_white_cornor_6"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ll_new_gift_num"
app:layout_constraintTop_toBottomOf="@+id/ll_gift_water">
<TextView
android:id="@+id/tv_send_gift_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
tools:text="+8" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_12"
android:text="送礼人数"
android:textColor="@color/color_696D7A"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_new_gift_num"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:layout_marginStart="@dimen/dp_10"
android:background="@drawable/bg_white_cornor_6"
app:layout_constraintEnd_toStartOf="@+id/ll_new_gift_num_copy"
app:layout_constraintStart_toEndOf="@+id/ll_gift_num"
app:layout_constraintTop_toTopOf="@+id/ll_gift_num">
<TextView
android:id="@+id/tv_new_user_send_gift_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
tools:text="+8" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_12"
android:text="新用户送礼人数"
android:textColor="@color/color_696D7A"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_new_gift_num_copy"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:layout_marginStart="@dimen/dp_10"
android:background="@drawable/bg_white_cornor_6"
android:visibility="invisible"
app:layout_constraintStart_toEndOf="@+id/ll_new_gift_num"
app:layout_constraintTop_toTopOf="@+id/ll_gift_num"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_new_user_send_gift_number_copy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
tools:text="+8" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_12"
android:text="新用户送礼人数"
android:textColor="@color/color_696D7A"
android:textSize="@dimen/sp_12" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_core.module_hall.income;
import com.yizhuan.xchat_android_core.base.IModel;
import com.yizhuan.xchat_android_core.module_hall.income.bean.ClanTotalIncomeInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallTotalIncomeInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.IncomeGiftInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.IncomeTotalInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.LiveTotalIncomeInfo;
@@ -17,6 +18,8 @@ public interface IIncomeModel extends IModel {
Single<ClanTotalIncomeInfo> getClanIncomeList(long clanId, String startTimeStr, String endTimeStr);
Single<HallTotalIncomeInfo> getHallIncomeList(long clanId, String startTimeStr, String endTimeStr);
Single<LiveTotalIncomeInfo> getLiveIncomeList(long clanId, String startTimeStr, String endTimeStr);
Single<SingleRoomTotalIncomeInfo> getSingleRoomIncomeList(String hallId, String clanId,String startTime, String endTime);

View File

@@ -4,6 +4,7 @@ import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.base.BaseModel;
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
import com.yizhuan.xchat_android_core.module_hall.income.bean.ClanTotalIncomeInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.HallTotalIncomeInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.IncomeGiftInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.IncomeTotalInfo;
import com.yizhuan.xchat_android_core.module_hall.income.bean.LiveTotalIncomeInfo;
@@ -99,6 +100,19 @@ public class IncomeModel extends BaseModel implements IIncomeModel {
});
}
@Override
public Single<HallTotalIncomeInfo> getHallIncomeList(long hallId, String startTime, String endTime) {
return api.getHallIncomeList(AuthModel.get().getCurrentUid(), hallId, startTime, endTime)
.compose(RxHelper.handleSchAndExce())
.flatMap((Function<ServiceResult<HallTotalIncomeInfo>, SingleSource<HallTotalIncomeInfo>>) response -> {
if (response.isSuccess()) {
return Single.just(response.getData());
} else {
return Single.error(new Throwable(response.getMessage()));
}
});
}
private interface Api {
@@ -135,6 +149,15 @@ public class IncomeModel extends BaseModel implements IIncomeModel {
@Query("startTime") String startTime,
@Query("endTime") String endTime);
/**
* 获取公会收入列表
*/
@GET("/income/totalList")
Single<ServiceResult<HallTotalIncomeInfo>> getHallIncomeList(@Query("uid") long uid,
@Query("hallId") long hallId,
@Query("startTime") String startTime,
@Query("endTime") String endTime);
/**
* 获取个播房收入列表
*/

View File

@@ -0,0 +1,147 @@
package com.yizhuan.xchat_android_core.module_hall.income.bean;
import java.io.Serializable;
public class HallIncomeInfo implements Serializable {
private double bagIncome;
private String hallAvatar;
private String hallName;
private double roomIncome;
private double normalGiftIncome;
private String giftUv;
private String newUserSendGiftNum;
//<editor-fold defaultstate="collapsed" desc="delombok">
@SuppressWarnings("all")
public HallIncomeInfo() {
}
@SuppressWarnings("all")
public double getBagIncome() {
return this.bagIncome;
}
@SuppressWarnings("all")
public String getHallAvatar() {
return this.hallAvatar;
}
@SuppressWarnings("all")
public String getHallName() {
return this.hallName;
}
@SuppressWarnings("all")
public double getRoomIncome() {
return this.roomIncome;
}
@SuppressWarnings("all")
public double getNormalGiftIncome() {
return this.normalGiftIncome;
}
@SuppressWarnings("all")
public String getGiftUv() {
return this.giftUv;
}
@SuppressWarnings("all")
public String getNewUserSendGiftNum() {
return this.newUserSendGiftNum;
}
@SuppressWarnings("all")
public void setBagIncome(final double bagIncome) {
this.bagIncome = bagIncome;
}
@SuppressWarnings("all")
public void setHallAvatar(final String hallAvatar) {
this.hallAvatar = hallAvatar;
}
@SuppressWarnings("all")
public void setHallName(final String hallName) {
this.hallName = hallName;
}
@SuppressWarnings("all")
public void setRoomIncome(final double roomIncome) {
this.roomIncome = roomIncome;
}
@SuppressWarnings("all")
public void setNormalGiftIncome(final double normalGiftIncome) {
this.normalGiftIncome = normalGiftIncome;
}
@SuppressWarnings("all")
public void setGiftUv(final String giftUv) {
this.giftUv = giftUv;
}
@SuppressWarnings("all")
public void setNewUserSendGiftNum(final String newUserSendGiftNum) {
this.newUserSendGiftNum = newUserSendGiftNum;
}
@Override
@SuppressWarnings("all")
public boolean equals(final Object o) {
if (o == this) return true;
if (!(o instanceof HallIncomeInfo)) return false;
final HallIncomeInfo other = (HallIncomeInfo) o;
if (!other.canEqual((Object) this)) return false;
if (Double.compare(this.getBagIncome(), other.getBagIncome()) != 0) return false;
if (Double.compare(this.getRoomIncome(), other.getRoomIncome()) != 0) return false;
if (Double.compare(this.getNormalGiftIncome(), other.getNormalGiftIncome()) != 0) return false;
final Object this$hallAvatar = this.getHallAvatar();
final Object other$hallAvatar = other.getHallAvatar();
if (this$hallAvatar == null ? other$hallAvatar != null : !this$hallAvatar.equals(other$hallAvatar)) return false;
final Object this$hallName = this.getHallName();
final Object other$hallName = other.getHallName();
if (this$hallName == null ? other$hallName != null : !this$hallName.equals(other$hallName)) return false;
final Object this$giftUv = this.getGiftUv();
final Object other$giftUv = other.getGiftUv();
if (this$giftUv == null ? other$giftUv != null : !this$giftUv.equals(other$giftUv)) return false;
final Object this$newUserSendGiftNum = this.getNewUserSendGiftNum();
final Object other$newUserSendGiftNum = other.getNewUserSendGiftNum();
if (this$newUserSendGiftNum == null ? other$newUserSendGiftNum != null : !this$newUserSendGiftNum.equals(other$newUserSendGiftNum)) return false;
return true;
}
@SuppressWarnings("all")
protected boolean canEqual(final Object other) {
return other instanceof HallIncomeInfo;
}
@Override
@SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final long $bagIncome = Double.doubleToLongBits(this.getBagIncome());
result = result * PRIME + (int) ($bagIncome >>> 32 ^ $bagIncome);
final long $roomIncome = Double.doubleToLongBits(this.getRoomIncome());
result = result * PRIME + (int) ($roomIncome >>> 32 ^ $roomIncome);
final long $normalGiftIncome = Double.doubleToLongBits(this.getNormalGiftIncome());
result = result * PRIME + (int) ($normalGiftIncome >>> 32 ^ $normalGiftIncome);
final Object $hallAvatar = this.getHallAvatar();
result = result * PRIME + ($hallAvatar == null ? 43 : $hallAvatar.hashCode());
final Object $hallName = this.getHallName();
result = result * PRIME + ($hallName == null ? 43 : $hallName.hashCode());
final Object $giftUv = this.getGiftUv();
result = result * PRIME + ($giftUv == null ? 43 : $giftUv.hashCode());
final Object $newUserSendGiftNum = this.getNewUserSendGiftNum();
result = result * PRIME + ($newUserSendGiftNum == null ? 43 : $newUserSendGiftNum.hashCode());
return result;
}
@Override
@SuppressWarnings("all")
public String toString() {
return "ClanIncomeInfo(bagIncome=" + this.getBagIncome() + ", hallAvatar=" + this.getHallAvatar() + ", hallName=" + this.getHallName() + ", roomIncome=" + this.getRoomIncome() + ", normalGiftIncome=" + this.getNormalGiftIncome() + ", giftUv=" + this.getGiftUv() + ", newUserSendGiftNum=" + this.getNewUserSendGiftNum() + ")";
}
//</editor-fold>
}

View File

@@ -0,0 +1,71 @@
package com.yizhuan.xchat_android_core.module_hall.income.bean;
import java.util.List;
public class HallTotalIncomeInfo {
private double total;
private List<HallIncomeInfo> income;
//<editor-fold defaultstate="collapsed" desc="delombok">
@SuppressWarnings("all")
public HallTotalIncomeInfo() {
}
@SuppressWarnings("all")
public double getTotal() {
return this.total;
}
@SuppressWarnings("all")
public List<HallIncomeInfo> getIncome() {
return this.income;
}
@SuppressWarnings("all")
public void setTotal(final double total) {
this.total = total;
}
@SuppressWarnings("all")
public void setIncome(final List<HallIncomeInfo> income) {
this.income = income;
}
@Override
@SuppressWarnings("all")
public boolean equals(final Object o) {
if (o == this) return true;
if (!(o instanceof HallTotalIncomeInfo)) return false;
final HallTotalIncomeInfo other = (HallTotalIncomeInfo) o;
if (!other.canEqual((Object) this)) return false;
if (Double.compare(this.getTotal(), other.getTotal()) != 0) return false;
final Object this$income = this.getIncome();
final Object other$income = other.getIncome();
if (this$income == null ? other$income != null : !this$income.equals(other$income)) return false;
return true;
}
@SuppressWarnings("all")
protected boolean canEqual(final Object other) {
return other instanceof HallTotalIncomeInfo;
}
@Override
@SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final long $total = Double.doubleToLongBits(this.getTotal());
result = result * PRIME + (int) ($total >>> 32 ^ $total);
final Object $income = this.getIncome();
result = result * PRIME + ($income == null ? 43 : $income.hashCode());
return result;
}
@Override
@SuppressWarnings("all")
public String toString() {
return "ClanTotalIncomeInfo(total=" + this.getTotal() + ", income=" + this.getIncome() + ")";
}
//</editor-fold>
}