消费记录

This commit is contained in:
18401019693
2023-10-20 15:31:52 +08:00
parent 4ff1089549
commit dff84a30e4
31 changed files with 1223 additions and 14 deletions

View File

@@ -0,0 +1,58 @@
package com.shayu.onetoone.activity;
import android.graphics.Color;
import android.os.Bundle;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.DiamondExchangeAdapter;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import java.util.List;
@Route(path = RouteManager.ACTIVITY_DIAMOND_EXCHANGE)
public class DiamondExchangeActivity extends AbsOTOActivity {
private RecyclerView diamondExchangeList;
private DiamondExchangeAdapter exchangeAdapter;
@Override
protected int getLayoutId() {
return R.layout.activity_diamond_exchange;
}
@Override
protected void main(Bundle savedInstanceState) {
initView();
initData();
}
private void initView() {
diamondExchangeList = findViewById(R.id.diamond_exchange_list);
diamondExchangeList.addItemDecoration(new ItemDecoration(mContext, Color.parseColor("#ffffff"), 10, 2));
diamondExchangeList.setLayoutManager(new GridLayoutManager(mContext, 3));
exchangeAdapter = new DiamondExchangeAdapter();
diamondExchangeList.setAdapter(exchangeAdapter);
}
private void initData() {
OTONetManager.getInstance(mContext).getExchangeList("yuanbao", new HttpCallback<List<ExchangeModel>>() {
@Override
public void onSuccess(List<ExchangeModel> data) {
exchangeAdapter.addData(data);
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}

View File

@@ -0,0 +1,90 @@
package com.shayu.onetoone.activity;
import android.os.Bundle;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.MyArnAdapter;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.bean.FriendAppMoneySumModel;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.List;
@Route(path = RouteManager.ACTIVITY_MY_ARN)
public class MyArnActivity extends AbsOTOActivity {
private TextView todayEarnings, cumulativeIncome;
private MyArnAdapter myArnAdapter;
private RecyclerView myArnList;
@Override
protected int getLayoutId() {
return R.layout.activity_my_arnings;
}
@Override
protected void main(Bundle savedInstanceState) {
initView();
initData();
}
private void initView() {
todayEarnings = findViewById(R.id.today_earnings);
cumulativeIncome = findViewById(R.id.cumulative_income);
myArnList = findViewById(R.id.my_arn_list);
myArnList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
myArnAdapter = new MyArnAdapter();
myArnList.setAdapter(myArnAdapter);
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.my_arn_back), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
finish();
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.diamond_star_coins), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RouteManager.forwardActivity(RouteManager.ACTIVITY_DIAMOND_EXCHANGE);
}
});
}
private void initData() {
OTONetManager.getInstance(mContext).getFriendAppMoneySum(new HttpCallback<FriendAppMoneySumModel>() {
@Override
public void onSuccess(FriendAppMoneySumModel data) {
todayEarnings.setText(data.getToday());
cumulativeIncome.setText(data.getSum());
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
OTONetManager.getInstance(mContext).getFriendAppMoneyLogModel("3", "1", new HttpCallback<List<FriendAppMoneyLogModel>>() {
@Override
public void onSuccess(List<FriendAppMoneyLogModel> data) {
myArnAdapter.showData(data);
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}

View File

@@ -3,7 +3,6 @@ package com.shayu.onetoone.activity.fragments;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Outline;
import android.os.Bundle;
import android.text.TextUtils;
@@ -39,7 +38,6 @@ import com.shayu.onetoone.view.CustomMyViewHolder;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.GoogleBean;
import com.yunbao.common.bean.LevelBean;
@@ -446,8 +444,9 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
Log.i("tsa", url);
// RewardActivity.forward(mContext, url);
} else if (bean.getId() == 4) {
url = HtmlConfig.SHOP + "?t=" + Math.random() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
WebViewActivity.forward(mContext, url, false);
// url = HtmlConfig.SHOP + "?t=" + Math.random() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
// WebViewActivity.forward(mContext, url, false);
RouteManager.forwardActivity(RouteManager.ACTIVITY_MY_ARN);
} else if (bean.getId() == 3) {//我的等级
Constants.myIntoIndex = 2;
Constants.isTitle = false;
@@ -538,7 +537,7 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
* 设置
*/
private void forwardSetting() {
// mContext.startActivity(new Intent(mContext, SettingActivity.class));
// mContext.startActivity(new Intent(mContext, SettingActivity.class));
}
/**

View File

@@ -0,0 +1,42 @@
package com.shayu.onetoone.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.view.DiamondExchangeViewHolder;
import java.util.ArrayList;
import java.util.List;
public class DiamondExchangeAdapter extends RecyclerView.Adapter {
private List<ExchangeModel> exchangeModels = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View bodyView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_diamond_exchange_item_holder, parent, false);
return new DiamondExchangeViewHolder(bodyView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
DiamondExchangeViewHolder exchangeViewHolder = (DiamondExchangeViewHolder) holder;
exchangeViewHolder.showData(exchangeModels.get(position));
}
@Override
public int getItemCount() {
return exchangeModels.size();
}
public void addData(List<ExchangeModel> mExchangeModels) {
exchangeModels.clear();
exchangeModels.addAll(mExchangeModels);
}
}

View File

@@ -0,0 +1,43 @@
package com.shayu.onetoone.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.view.MyArnViewHolder;
import java.util.ArrayList;
import java.util.List;
public class MyArnAdapter extends RecyclerView.Adapter {
private List<FriendAppMoneyLogModel> friendAppMoneyLogModels = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View bodyView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_my_arn_item_holder, parent, false);
return new MyArnViewHolder(bodyView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
MyArnViewHolder arnViewHolder = (MyArnViewHolder) holder;
arnViewHolder.setData(friendAppMoneyLogModels.get(position));
}
@Override
public int getItemCount() {
return friendAppMoneyLogModels.size();
}
public void showData(List<FriendAppMoneyLogModel> mFriendAppMoneyLogModels) {
friendAppMoneyLogModels.clear();
friendAppMoneyLogModels.addAll(mFriendAppMoneyLogModels);
notifyDataSetChanged();
}
}

View File

@@ -0,0 +1,52 @@
package com.shayu.onetoone.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class ExchangeModel extends BaseModel {
@SerializedName("top")
private String top;
@SerializedName("name")
private String name;
@SerializedName("title")
private String title;
@SerializedName("num")
private int num;
public String getTop() {
return top;
}
public ExchangeModel setTop(String top) {
this.top = top;
return this;
}
public String getName() {
return name;
}
public ExchangeModel setName(String name) {
this.name = name;
return this;
}
public String getTitle() {
return title;
}
public ExchangeModel setTitle(String title) {
this.title = title;
return this;
}
public int getNum() {
return num;
}
public ExchangeModel setNum(int num) {
this.num = num;
return this;
}
}

View File

@@ -0,0 +1,140 @@
package com.shayu.onetoone.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class FriendAppMoneyLogModel extends BaseModel {
@SerializedName("id")
private String id;
@SerializedName("uid")
private String uid;
@SerializedName("income")
private String income;
@SerializedName("before_money")
private String beforeMoney;
@SerializedName("money")
private String money;
@SerializedName("after_money")
private String afterMoney;
@SerializedName("memo")
private String memo;
@SerializedName("type")
private String type;
@SerializedName("currency_type")
private String currencyType;
@SerializedName("service_id")
private String serviceId;
@SerializedName("create_time")
private String createTime;
@SerializedName("tuid")
private String tuid;
public String getId() {
return id;
}
public FriendAppMoneyLogModel setId(String id) {
this.id = id;
return this;
}
public String getUid() {
return uid;
}
public FriendAppMoneyLogModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getIncome() {
return income;
}
public FriendAppMoneyLogModel setIncome(String income) {
this.income = income;
return this;
}
public String getBeforeMoney() {
return beforeMoney;
}
public FriendAppMoneyLogModel setBeforeMoney(String beforeMoney) {
this.beforeMoney = beforeMoney;
return this;
}
public String getMoney() {
return money;
}
public FriendAppMoneyLogModel setMoney(String money) {
this.money = money;
return this;
}
public String getAfterMoney() {
return afterMoney;
}
public FriendAppMoneyLogModel setAfterMoney(String afterMoney) {
this.afterMoney = afterMoney;
return this;
}
public String getMemo() {
return memo;
}
public FriendAppMoneyLogModel setMemo(String memo) {
this.memo = memo;
return this;
}
public String getType() {
return type;
}
public FriendAppMoneyLogModel setType(String type) {
this.type = type;
return this;
}
public String getCurrencyType() {
return currencyType;
}
public FriendAppMoneyLogModel setCurrencyType(String currencyType) {
this.currencyType = currencyType;
return this;
}
public String getServiceId() {
return serviceId;
}
public FriendAppMoneyLogModel setServiceId(String serviceId) {
this.serviceId = serviceId;
return this;
}
public String getCreateTime() {
return createTime;
}
public FriendAppMoneyLogModel setCreateTime(String createTime) {
this.createTime = createTime;
return this;
}
public String getTuid() {
return tuid;
}
public FriendAppMoneyLogModel setTuid(String tuid) {
this.tuid = tuid;
return this;
}
}

View File

@@ -0,0 +1,30 @@
package com.shayu.onetoone.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class FriendAppMoneySumModel extends BaseModel {
@SerializedName("today")
private String today;
@SerializedName("sum")
private String sum;
public String getToday() {
return today;
}
public FriendAppMoneySumModel setToday(String today) {
this.today = today;
return this;
}
public String getSum() {
return sum;
}
public FriendAppMoneySumModel setSum(String sum) {
this.sum = sum;
return this;
}
}

View File

@@ -6,8 +6,10 @@ import android.util.Log;
import com.alibaba.fastjson.JSONObject;
import com.shayu.onetoone.bean.AvatarBean;
import com.shayu.onetoone.bean.CustomBean;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.bean.FriendAppMoneySumModel;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.GreetBean;
import com.shayu.onetoone.bean.HomeItemBean;
@@ -30,11 +32,8 @@ import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.MD5Util;
import com.yunbao.faceunity.entity.PropBean;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -45,7 +44,6 @@ import io.rong.imlib.model.UserInfo;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Query;
/**
* 网络管理类 使用参考{@link com.yunbao.common.http.live.LiveNetManager}
@@ -848,5 +846,84 @@ public class OTONetManager {
}).isDisposed();
}
/**
* @param currencyType 1星币 2砖石 3社交新币种
* @param income 1收入 2支出
*/
public void getFriendAppMoneyLogModel(String currencyType, String income, HttpCallback<List<FriendAppMoneyLogModel>> callback) {
API.get().otoApi(mContext).
getFriendAppMoneyLogModel(currencyType, income)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<FriendAppMoneyLogModel>>>() {
@Override
public void accept(ResponseModel<List<FriendAppMoneyLogModel>> listResponseModel) throws Exception {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
public void getFriendAppMoneySum(HttpCallback<FriendAppMoneySumModel> callback) {
API.get().otoApi(mContext).
getFriendAppMoneySum()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<FriendAppMoneySumModel>>() {
@Override
public void accept(ResponseModel<FriendAppMoneySumModel> friendAppMoneySumModelResponseModel) throws Exception {
if (friendAppMoneySumModelResponseModel.getData().getCode() == 0) {
callback.onSuccess(friendAppMoneySumModelResponseModel.getData().getInfo());
} else {
callback.onError(friendAppMoneySumModelResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
/**
*
* @param type coin砖石 yuanbao 星币
* @param callback
*/
public void getExchangeList(String type, HttpCallback<List<ExchangeModel>> callback) {
API.get().otoApi(mContext).
getExchangeList(type)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<ExchangeModel>>>() {
@Override
public void accept(ResponseModel<List<ExchangeModel>> listResponseModel) throws Exception {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
}

View File

@@ -15,6 +15,8 @@ public class RouteManager {
public static final String ACTIVITY_LOGIN = "/activity/LoginActivity";
public static final String ACTIVITY_WEB_VIEW = "/activity/WebViewActivity";
public static final String ACTIVITY_HOME_RANK = "/activity/HomepageRankingActivity";
public static final String ACTIVITY_MY_ARN = "/activity/MyAarningsActivity";
public static final String ACTIVITY_DIAMOND_EXCHANGE = "/activity/DiamondExchangeActivity";
public static final String ACTIVITY_HOME_SEARCH = "/activity/HomeSearchActivity";
public static final String ACTIVITY_HOME_SCREEN = "/activity/HomeScreenActivity";
public static final String ACTIVITY_CALL_VIDEO = "/activity/CallVideoActivity";

View File

@@ -1,8 +1,10 @@
package com.shayu.onetoone.network;
import com.shayu.onetoone.bean.AvatarBean;
import com.shayu.onetoone.bean.CustomBean;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.bean.FriendAppMoneySumModel;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.GreetBean;
import com.shayu.onetoone.bean.HomeItemBean;
@@ -16,7 +18,6 @@ import com.shayu.onetoone.bean.SystemMessageBean;
import com.shayu.onetoone.bean.TargetUserInfoBean;
import com.shayu.onetoone.bean.UserBean;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.UserAvatarSelectBean;
import com.yunbao.common.http.ResponseModel;
@@ -212,6 +213,30 @@ public interface OneToOneApi {
@Field("labels") String avatar
);
/**
* 获取记录
*/
@GET("/api/public/?service=Friendappmoney.logs")
Observable<ResponseModel<List<FriendAppMoneyLogModel>>> getFriendAppMoneyLogModel(
@Query("currency_type") String currencyType,
@Query("income") String income
);
/**
* 获取记录 统计
*/
@GET("/api/public/?service=Friendappmoney.sum")
Observable<ResponseModel<FriendAppMoneySumModel>> getFriendAppMoneySum(
);
/**
* 兑换表
*/
@GET("/api/public/?service=Friendappmoney.exchangeList")
Observable<ResponseModel<List<ExchangeModel>>> getExchangeList(
@Query("type") String type
);
}

View File

@@ -0,0 +1,28 @@
package com.shayu.onetoone.view;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.ExchangeModel;
public class DiamondExchangeViewHolder extends RecyclerView.ViewHolder {
private LinearLayout diamondExchangeBtn;
private TextView fullConversion, coins, goldCoin;
public DiamondExchangeViewHolder(@NonNull View itemView) {
super(itemView);
diamondExchangeBtn = itemView.findViewById(R.id.diamond_exchange_btn);
fullConversion = itemView.findViewById(R.id.full_conversion);
coins = itemView.findViewById(R.id.coins);
goldCoin = itemView.findViewById(R.id.gold_coin);
}
public void showData(ExchangeModel model) {
}
}

View File

@@ -0,0 +1,41 @@
package com.shayu.onetoone.view;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyArnViewHolder extends RecyclerView.ViewHolder {
private TextView memoName, createTime, money;
public MyArnViewHolder(@NonNull View itemView) {
super(itemView);
memoName = itemView.findViewById(R.id.memo_name);
createTime = itemView.findViewById(R.id.create_time);
money = itemView.findViewById(R.id.money);
}
public void setData(FriendAppMoneyLogModel model) {
StringBuilder builder = new StringBuilder();
builder.append("+")
.append(model.getMoney());
memoName.setText(model.getMemo());
money.setText(builder.toString());
createTime.setText(getDateStr(new Date(Long.parseLong(model.getCreateTime())*1000), null));
}
public String getDateStr(Date date, String format) {
if (format == null || format.isEmpty()) {
format = "yyyy-MM-dd HH:mm";
}
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
}