第N+4次提交专属红包

This commit is contained in:
xuhuixiang
2025-04-29 17:28:46 +08:00
parent b07055fe3f
commit 34f39dd489
13 changed files with 232 additions and 83 deletions

View File

@@ -36,6 +36,7 @@ public class RedPacketAttachment extends CustomAttachment {
private String receiverUid;
private String receiveTime;
private String isCashGift; //礼金
private String receiverNickname;
public RedPacketAttachment() {
super(ChatMessageType.CUSTOM_STICKER_RED_ENVELOPE);
@@ -66,6 +67,40 @@ public class RedPacketAttachment extends CustomAttachment {
}
public RedPacketAttachment(String id, String status, String amount, String senderUid, String groupId,
String count, String residualCount, String residualAmount, String sendTime,
String finishTime, String remark, String senderNickname, String coinType,
String receiverUid, String receiveTime,String receiverNickname) {
super(ChatMessageType.CUSTOM_STICKER_RED_ENVELOPE);
this.id = id;
this.status = status;
this.amount = amount;
this.senderUid = senderUid;
this.groupId = groupId;
this.count = count;
this.residualCount = residualCount;
this.residualAmount = residualAmount;
this.sendTime = sendTime;
this.finishTime = finishTime;
this.remark = remark;
this.senderNickname = senderNickname;
this.coinType = coinType;
this.isCashGift = (coinType.equals("2") ? "1" : "0");
// this.grabbers = grabbers;
this.receiverUid = receiverUid;
this.receiveTime = receiveTime;
this.receiverNickname = receiverNickname;
}
public String getReceiverNickname() {
return receiverNickname;
}
public void setReceiverNickname(String receiverNickname) {
this.receiverNickname = receiverNickname;
}
public String getIsCashGift() {
return isCashGift;
}
@@ -237,6 +272,7 @@ public class RedPacketAttachment extends CustomAttachment {
// data.put("grabbers",grabbers);
data.put("receiverUid", receiverUid);
data.put("receiveTime", receiveTime);
data.put("receiverNickname", receiverNickname);
} catch (Exception exception) {
@@ -265,6 +301,7 @@ public class RedPacketAttachment extends CustomAttachment {
// this.grabbers = (List<GrabbersBean1>) data.getJSONArray("grabbers");
this.receiverUid = data.getString("receiverUid");
this.receiveTime = data.getString("receiveTime");
this.receiverNickname = data.getString("receiverNickname");
} catch (Exception exception) {

View File

@@ -14,12 +14,16 @@ import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.netease.nim.highavailable.LogUtils;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.uinfo.UserService;
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
import com.netease.yunxin.kit.alog.ALog;
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
import com.netease.yunxin.kit.chatkit.repo.TeamRepo;
import com.netease.yunxin.kit.chatkit.ui.R;
import com.netease.yunxin.kit.chatkit.ui.common.ChatDataUtils;
import com.netease.yunxin.kit.chatkit.ui.common.GsonUtils;
@@ -45,6 +49,11 @@ import com.netease.yunxin.kit.chatkit.ui.page.fragment.ChatBaseFragment;
import com.netease.yunxin.kit.chatkit.ui.view.message.viewholder.ChatBaseMessageViewHolder;
import com.netease.yunxin.kit.common.ui.utils.ToastX;
import com.netease.yunxin.kit.corekit.im.IMKitClient;
import com.netease.yunxin.kit.corekit.im.provider.FetchCallback;
import com.netease.yunxin.kit.corekit.model.ErrorMsg;
import com.netease.yunxin.kit.corekit.model.ResultInfo;
import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -77,6 +86,9 @@ public class RedPacketViewHolder extends ChatBaseMessageViewHolder {
Log.i("名片", "名片获取到的数据0" + name);
Log.i("名片", "名片获取到的数据2" + GsonUtils.beanToJSONString(circleShareBean));
//{"data":{"amount":"1000","coinType":"0","count":"1","groupId":"38605640048","id":"1917130493314334722","receiverUid":"61330236","remark":"恭喜发财,大吉大利","residualAmount":"1000",
// "residualCount":"1","sendTime":"2025-04-29 16:15:03","senderNickname":"特朗普",
// "senderUid":"61330233","status":"0"},"type":1005}
if (circleShareBean != null) {
if (TextUtils.isEmpty(circleShareBean.data.getRemark())) {
@@ -108,9 +120,9 @@ public class RedPacketViewHolder extends ChatBaseMessageViewHolder {
Log.i("名片", "名片获取到的数据3" + GsonUtils.beanToJSONString(circleShareBean));
changeInfo(circleShareBean.data, binding, message, null, null);
getRedInfo(circleShareBean.data, binding, message, false);
if(status == 0) {
getRedInfo(circleShareBean.data, binding, message, false);
}
if (!message.getMessageData().getMessage().getFromAccount().equals(IMKitClient.account())) {
baseViewBinding.otherUserAvatar.setVisibility(View.VISIBLE);
}
@@ -200,8 +212,18 @@ public class RedPacketViewHolder extends ChatBaseMessageViewHolder {
ChatDataUtils.set(binding.bigLy.getContext(), "redpack_" + feedbackResp.data.getId(), feedbackResp.data.getStatus());
if (isTopRed && feedbackResp.data.getStatus() > 0)
RxBus.getInstance().post(new RxHongBaoBean(feedbackResp.data.getId() + ""));
changeInfo(RedpacketBean1.getRedpacket(feedbackResp.data), binding, message, null, feedbackResp.data);
RedpacketBean1 redpacketBean1 = RedpacketBean1.getRedpacket(feedbackResp.data);
if(!TextUtils.isEmpty(data.getReceiverUid())){
redpacketBean1.setReceiverUid(data.getReceiverUid());
}
changeInfo(redpacketBean1, binding, message, null, feedbackResp.data);
// if(feedbackResp.data.getType() == 2){
// binding.mingpianTv.setText("专属红包");
// }
if (isTopRed) {
if(!TextUtils.isEmpty(data.getReceiverUid())){
feedbackResp.data.setReceiverUid(data.getReceiverUid());
}
toTiaozhuanGroup(feedbackResp.data, message);
}
}
@@ -223,8 +245,18 @@ public class RedPacketViewHolder extends ChatBaseMessageViewHolder {
ChatDataUtils.set(binding.bigLy.getContext(), "redpack_" + feedbackResp.data.getId(), feedbackResp.data.getStatus());
if (isTopRed && feedbackResp.data.getStatus() > 0)
RxBus.getInstance().post(new RxHongBaoBean(feedbackResp.data.getId() + ""));
changeInfo(RedpacketBean1.getRedpacket(feedbackResp.data), binding, message, null, feedbackResp.data);
RedpacketBean1 redpacketBean1 = RedpacketBean1.getRedpacket(feedbackResp.data);
if(!TextUtils.isEmpty(data.getReceiverUid())){
redpacketBean1.setReceiverUid(data.getReceiverUid());
}
changeInfo(redpacketBean1, binding, message, null, feedbackResp.data);
if(feedbackResp.data.getType() == 2){
binding.mingpianTv.setText("专属红包");
}
if (isTopRed) {
if(!TextUtils.isEmpty(data.getReceiverUid())){
feedbackResp.data.setReceiverUid(data.getReceiverUid());
}
toTiaozhuanGroup(feedbackResp.data, message);
}
}
@@ -310,8 +342,19 @@ public class RedPacketViewHolder extends ChatBaseMessageViewHolder {
private void changeInfo(RedpacketBean1 data, RedpacketViewheadBinding binding, ChatMessageBean message, RedpacketBean redpacketBean, RedpacketGroupBean redpacketGroupBean) {
LogUtils.i("红包类型", "名片获取到的数据红包类型:" + data.getCoinType());
LogUtils.i("红包类型", "名片获取到的数据红包类型1" + GsonUtils.beanToJSONString(data));
if (data.getCoinType().equals("0")) {
binding.mingpianTv.setText(binding.mingpianTv.getResources().getString(R.string.hongbao_des_txt));
binding.mingpianTv.setText("拼手气红包");
if(!TextUtils.isEmpty(data.getReceiverUid())){
LogUtils.i("红包类型", "名片获取到的数据红包类型2" + GsonUtils.beanToJSONString(data));
binding.mingpianTv.setText("专属红包");
getTeamInfos(binding.itemTitleTv,data.getGroupId(),data.getReceiverUid());
}
if (Integer.parseInt(data.getStatus()) > 0) {
binding.bigLy.setBackgroundResource(R.drawable.hongbnao_f_g);
} else {
@@ -344,6 +387,33 @@ public class RedPacketViewHolder extends ChatBaseMessageViewHolder {
setStatusView(binding.layoutHongbao.getVisibility() == View.VISIBLE ? binding.itemStatusTv : binding.tvLijinstatus, data, message, redpacketGroupBean);
}
private void getTeamInfos(TextView itemTitleTv,String groupId, String receiverUid) {
TeamRepo.getMemberInfo(
groupId,
receiverUid,
new FetchCallback<UserInfoWithTeam>() {
@Override
public void onFailed(int i) {
itemTitleTv.setText(""+receiverUid+"的专属红包");
}
@Override
public void onException(@Nullable Throwable throwable) {
itemTitleTv.setText(""+receiverUid+"的专属红包");
}
@Override
public void onSuccess(@Nullable UserInfoWithTeam userInfoWithTeam) {
itemTitleTv.setText(""+userInfoWithTeam.getName()+"的专属红包");
}
});
}
public void setStatusView(TextView tvstatus, RedpacketBean1 data, ChatMessageBean message, RedpacketGroupBean redpacketGroupBean) {
switch (data.getStatus()) {
case "0":

View File

@@ -27,7 +27,9 @@ import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.uinfo.UserService;
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
import com.netease.yunxin.kit.chatkit.model.UserInfoWithTeam;
import com.netease.yunxin.kit.chatkit.repo.ChatRepo;
import com.netease.yunxin.kit.chatkit.repo.TeamRepo;
import com.netease.yunxin.kit.chatkit.ui.R;
import com.netease.yunxin.kit.chatkit.ui.common.ChatDataUtils;
import com.netease.yunxin.kit.chatkit.ui.common.GsonUtils;
@@ -193,6 +195,15 @@ public class RedPacketDialog extends Dialog {
}
remarksTv.setText(redpacketGroupBean.getRemark());
remarksTvGift.setText(redpacketGroupBean.getRemark());
if(redpacketGroupBean.getType()==2){
if(!redpacketGroupBean.getReceiverUid().equals(IMKitClient.account())){
getTeamInfos(remarksTv,redpacketGroupBean.getGroupId(),redpacketGroupBean.getReceiverUid());
openIv.setVisibility(View.GONE);
}
}
} else {
remarksTv.setText(tuiMessageBean.getRemark());
}
@@ -243,6 +254,31 @@ public class RedPacketDialog extends Dialog {
}
private void getTeamInfos(TextView itemTitleTv,String groupId, String receiverUid) {
TeamRepo.getMemberInfo(
groupId,
receiverUid,
new FetchCallback<UserInfoWithTeam>() {
@Override
public void onFailed(int i) {
itemTitleTv.setText(""+receiverUid+"可领取");
}
@Override
public void onException(@Nullable Throwable throwable) {
itemTitleTv.setText(""+receiverUid+"可领取");
}
@Override
public void onSuccess(@Nullable UserInfoWithTeam userInfoWithTeam) {
itemTitleTv.setText(""+userInfoWithTeam.getName()+"可领取");
}
});
}
private void toDetails() {
if (tuiMessageBean != null) {
dismiss();
@@ -449,21 +485,11 @@ public class RedPacketDialog extends Dialog {
if ((feedbackResp.data.getGrabbers().get(i).getGrabberUid() + "").equals(IMKitClient.account())) {
numberTv.setText(String.format("%.2f", feedbackResp.data.getGrabbers().get(i).getGrabAmount() / 100f));
numberTvGift.setText(String.format("%.2f", feedbackResp.data.getGrabbers().get(i).getGrabAmount() / 100f));
// danweiTv.setText(getContext().getResources().getString(R.string.danwei_txt));
}
}
ChatDataUtils.set(getContext(), "redpack_" + redpacketGroupBean.getId(), redpacketGroupBean.getStatus());
// List<GrabbersBean1> grabbersBean1List = null;
// if(redpacketGroupBean.getGrabbers()!=null&&redpacketGroupBean.getGrabbers().size()>0){
// //String redEnvelopeId, String grabberUid, String grabAmount, String grabTime, String grabberNickname, String grabberAvatar
// grabbersBean1List = new ArrayList<>();
// for (GrabbersBean grabbersBean:redpacketGroupBean.getGrabbers())
// grabbersBean1List.add(new GrabbersBean1(grabbersBean.getRedEnvelopeId()+"",grabbersBean.getGrabberUid()+"",
// grabbersBean.getGrabAmount()+"",grabbersBean.getGrabTime()+"",grabbersBean.getGrabberNickname(),grabbersBean.getGrabberAvatar()));
// }
RedPacketGetAttachment redPacketAttachment = new RedPacketGetAttachment(redpacketGroupBean.getId() + "", redpacketGroupBean.getStatus() + "", redpacketGroupBean.getAmount() + "",
redpacketGroupBean.getSenderUid() + "", groupId,
redpacketGroupBean.getCount() + "", redpacketGroupBean.getResidualCount() + "", redpacketGroupBean.getResidualAmount() + "", redpacketGroupBean.getSendTime(),

View File

@@ -94,6 +94,8 @@ public class RedpacketBean1 implements Serializable {
redpacketBean.setResidualAmount(redpacketBean1.getResidualAmount()+"");
redpacketBean.setFinishTime(redpacketBean1.getFinishTime());
redpacketBean.setSenderNickname(redpacketBean1.getSenderNickname());
redpacketBean.setReceiverUid(redpacketBean1.getReceiverUid());
// if(redpacketBean1.getGrabbers()!=null) {
// redpacketBean.setGrabbers(GsonUtils.beanToJSONString(redpacketBean1.getGrabbers()));
// }

View File

@@ -23,6 +23,15 @@ public class RedpacketGroupBean implements Serializable {
private String senderNickname;
private Integer coinType;
private List<GrabbersBean> grabbers;
private String receiverUid;
public String getReceiverUid() {
return receiverUid;
}
public void setReceiverUid(String receiverUid) {
this.receiverUid = receiverUid;
}
public Integer getCoinType() {
return coinType;

View File

@@ -60,6 +60,7 @@ public interface ApiService {
String SUBSTATIONID = "1703655363476242434";
// String SUBSTATIONID = "";
String SUBSTATIONID1 = "1703655363476242434";
/**
* 抢群红包

View File

@@ -39,7 +39,6 @@
android:ellipsize="end"
android:gravity="center_vertical"
android:lines="1"
android:text="来自 黄黄不是嬛嬛 的赠送"
android:textColor="#FFFEE3"
android:textSize="14sp" />
@@ -52,7 +51,6 @@
android:ellipsize="end"
android:gravity="center_vertical"
android:lines="1"
android:text="待領取"
android:textColor="#FEE391"
android:textSize="12sp" />
</LinearLayout>