[Modify]公会数据页面修改
This commit is contained in:
@@ -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"
|
||||
|
6
app/src/main/res/drawable/bg_white_cornor_6.xml
Normal file
6
app/src/main/res/drawable/bg_white_cornor_6.xml
Normal 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>
|
@@ -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>
|
||||
|
@@ -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>
|
@@ -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());
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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, "房间流水");
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -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());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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 |
@@ -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"
|
||||
|
142
app/src/module_labour_union/res/layout/activity_room_income.xml
Normal file
142
app/src/module_labour_union/res/layout/activity_room_income.xml
Normal 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>
|
242
app/src/module_labour_union/res/layout/item_hall_income.xml
Normal file
242
app/src/module_labour_union/res/layout/item_hall_income.xml
Normal 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>
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
/**
|
||||
* 获取个播房收入列表
|
||||
*/
|
||||
|
@@ -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>
|
||||
}
|
@@ -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>
|
||||
}
|
Reference in New Issue
Block a user