1:修改系统和官方公告展示html出现标签展示的问题

2:添加群全员禁言和单个禁言的功能
3:将道具商城做成原生的
4:添加应用更新的时候,添加版本判断和重新刷新手机文本,预防出现安装缓存(自己测试十几次,未在出现问题,还需要大量测试)
This commit is contained in:
2026-01-04 08:58:09 +08:00
parent aa96aa4a3b
commit f77b5ba4d7
45 changed files with 2008 additions and 39 deletions

View File

@@ -137,7 +137,7 @@ public class CommonAppContext extends MultiDexApplication implements Application
@Getter
public UnreadCountEvent unreadCountEvent;
public static int selectRelease = 1;
public static int selectRelease = -1;
public int is_open = 0;//主题的开关

View File

@@ -0,0 +1,53 @@
package com.xscm.moduleutil.bean
/**
* 项目名称:羽声语音
* 时间2026/1/3 10:13
* 用途:群聊实体类
*/
class GroupBean {
var guild_id: String = ""
var guild_cover: String = ""
var is_deacon: Int = 0 //是否是群主 1是 ,其他的不是
var user_list: List<GroupUserBean> = ArrayList()
var name: String = ""
var notification: String = ""
var mute_all_member : Int = 0 //是否全体禁言 1是 0不是
class GroupUserBean {
var is_online: Int = 0 //是否在线 1在线 0不在线
var market_value: Int = 0 //身价
var nickname: String = ""
var avatar: String = ""
var user_code: String = ""
var user_id: Int = 0
var createtime: String = ""
var is_self: Int = 0 //是否是本人 1是 0不是
var role: String = ""
var role_str: String = ""
var in_room_id: Int = 0 //是否在房间内 1在 0不在
var is_mute: Int = 0 //是否被禁言 1是 0不是
}
/*"guild_id": "f627",
"guild_cover": "https://yusheng-1369267578.cos.ap-guangzhou.myqcloud.com/images/android_images/325ee1f528343bb09ddc086b2b83b190.jpg",
"is_deacon": 1,
"user_list": [
{
"is_online": 1,
"market_value": 28,
"nickname": "🥭芒的很",
"avatar": "https://yusheng-1369267578.cos.ap-guangzhou.myqcloud.com/images/ios_images/1764941796523.jpeg",
"user_code": "10001",
"user_id": 21211,
"createtime": "2025-12-31 13:20:28",
"is_self": 0,
"role": "Member",
"role_str": "普通群成员",
"in_room_id": 0
}
],
"name": "美丽的眼神的家族",
"notification": ""*/
}

View File

@@ -0,0 +1,13 @@
package com.xscm.moduleutil.bean
/**
* 项目名称:羽声语音
* 时间2026/1/3 14:07
* 用途:群成员列表
*/
class GroupUserListBean {
var page : String=""
var limit : String=""
var count : String=""
var list : List<GroupBean.GroupUserBean>?= ArrayList()
}

View File

@@ -0,0 +1,57 @@
package com.xscm.moduleutil.bean
/**
* 项目名称:羽声语音
* 时间2026/1/3 18:44
* 用途:装扮列表
*/
class PersonaltyListBean {
var did: Int =0 // 装扮id
var title: String = "" // 装扮名称
var type: Int = 0 // 1头像框 2坐骑 3资料展示特效 4光圈 5气泡 6个人靓号 7房间靓号 8工会靓号 100热门
var base_image: String = "" // 展示图片
var play_image: String = "" // 播放图像
var price: Int = 0 // 实际价格(金币)
var special_num: Int = 0 // 靓号
var original_price: Int = 0 // 原价
var discount: Int = 0 // 折扣
var discount_str: String = "" // 折扣字段
/* title
装扮名称
type
类型1头像框 2坐骑 3资料展示特效 4光圈 5气泡 6个人靓号 7房间靓号 8工会靓号 100热门
base_image
展示图片
play_image
播放图像
price
实际价格(金币)
special_num
靓号
original_price
原价
discount
折扣
discount_str
折扣字段*/
}

View File

@@ -43,6 +43,9 @@ public interface ApiServer {
@GET(Constants.GET_FESTIVAL_THEME)
Call<BaseModel<FestivalThemeBean>> getFestivalThemeBean();
@GET(Constants.GET_PERSONALTY_LIST_BEAN)
Call<BaseModel<List<PersonaltyListBean>>> getPersonaltyListBean(@Query("type") String type);
@GET(Constants.GET_EMOTION)
Call<BaseModel<List<Emotion>>> upEmotion();
@@ -132,6 +135,16 @@ public interface ApiServer {
@FormUrlEncoded
@POST(Constants.POST_INVITE)
Call<BaseModel<String>> postInvite(@Field("apply_id") String apply_id, @Field("type") String type);
@GET(Constants.GET_GROUP_INFO)
Call<BaseModel<GroupBean>> getGuildInfo(@Query("guild_id")String guild_id);
@FormUrlEncoded
@POST(Constants.POST_GROUP_INFO)
Call<BaseModel<String>> setGuildInfo(@Field("guild_id") String guild_id, @Field("name") String guild_name, @Field("notice") String guild_notice,@Field("avatar") String guild_avatar);
@GET(Constants.GET_MEMBER_LIST)
Call<BaseModel<GroupUserListBean>> memberList(@Query("page")String page, @Query("page_limit") String page_limit, @Query("guild_id") String guild_id,@Query("search") String search);
@GET(Constants.GET_TEMP_KEY)
Call<BaseModel<TempKeyBean>> getTempKey();

View File

@@ -251,6 +251,35 @@ public class RetrofitClient {
});
}
public void getPersonaltyListBean(String type, BaseObserver<List<PersonaltyListBean>> observer) {
sApiServer.getPersonaltyListBean(type).enqueue(new Callback<BaseModel<List<PersonaltyListBean>>>() {
@Override
public void onResponse(Call<BaseModel<List<PersonaltyListBean>>> call, Response<BaseModel<List<PersonaltyListBean>>> response) {
if (response.code() == 200) {
BaseModel<List<PersonaltyListBean>> body = response.body();
if (body.getCode() == 1) {
observer.onNext(body.getData());
} else if (body.getCode() == 0) {
ToastUtils.showLong(body.getMsg());
observer.onNext(new ArrayList<>());
} else if (body.getCode() == 301) {
setCode301(body.getMsg());
}
} else {
ToastUtils.showLong("装扮请求错误", response.code());
LogUtils.e("getPersonaltyList", response.message());
}
}
@Override
public void onFailure(Call<BaseModel<List<PersonaltyListBean>>> call, Throwable t) {
LogUtils.e("getPersonaltyList", t.getMessage());
}
});
}
public void getFestivalTheme(BaseObserver<FestivalThemeBean> observer) {
sApiServer.getFestivalThemeBean().enqueue(new Callback<BaseModel<FestivalThemeBean>>() {
@@ -646,6 +675,77 @@ public class RetrofitClient {
});
}
public void getGuildInfo(String guildId, BaseObserver<GroupBean> observer) {
sApiServer.getGuildInfo(guildId).enqueue(new Callback<BaseModel<GroupBean>>() {
@Override
public void onResponse(Call<BaseModel<GroupBean>> call, Response<BaseModel<GroupBean>> response) {
if (response.code() == 200) {
BaseModel<GroupBean> baseModel = response.body();
if (baseModel.getCode() == 1)
observer.onNext(baseModel.getData());
else if (baseModel.getCode() == 301) {
setCode301(baseModel.getMsg());
} else {
ToastUtils.showLong(baseModel.getMsg());
observer.onNext(new GroupBean());
}
} else {
observer.onNext(new GroupBean());
ToastUtils.showLong("群聊设置错误,请重试", response.code());
LogUtils.e("getGuildInfo", response.message());
}
}
@Override
public void onFailure(Call<BaseModel<GroupBean>> call, Throwable t) {
LogUtils.e("getGuildInfo", t.fillInStackTrace());
}
});
}
public void setGuildInfo(String guildId, String name, String notice, String avatar, BaseObserver<String> observer) {
sApiServer.setGuildInfo(guildId, name, notice, avatar).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
onNextRetu(response, observer);
}
@Override
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
LogUtils.e("setGuildInfo", t.fillInStackTrace());
}
});
}
public void memberList(String page, String pageLimit, String guildId, String search, BaseObserver<GroupUserListBean> observer) {
sApiServer.memberList(page, pageLimit, guildId, search).enqueue(new Callback<BaseModel<GroupUserListBean>>() {
@Override
public void onResponse(Call<BaseModel<GroupUserListBean>> call, Response<BaseModel<GroupUserListBean>> response) {
if (response.code() == 200) {
BaseModel<GroupUserListBean> baseModel = response.body();
if (baseModel.getCode() == 1)
observer.onNext(baseModel.getData());
else if (baseModel.getCode() == 301)
setCode301(baseModel.getMsg());
else {
ToastUtils.showLong(baseModel.getMsg());
}
} else {
ToastUtils.showLong("群成员请求错误", response.code());
LogUtils.e("memberList", response.message());
}
}
@Override
public void onFailure(Call<BaseModel<GroupUserListBean>> call, Throwable t) {
LogUtils.e("memberList", t.fillInStackTrace());
}
});
}
public void singerAuth(String url, BaseObserver<String> observer) {
sApiServer.singerAuth(url).enqueue(new Callback<BaseModel<String>>() {
@@ -2034,7 +2134,7 @@ public class RetrofitClient {
}
} else {
observer.onError(new Throwable(response.message()));
ToastUtils.showLong("首页房间列表异常",response.code());
ToastUtils.showLong("首页房间列表异常", response.code());
LogUtils.e("getTopRooms", response.message());
}
}
@@ -2382,7 +2482,7 @@ public class RetrofitClient {
setCode301(listBaseModel.getMsg());
}
} else {
ToastUtils.showLong("进入用户主页错误",response.code());
ToastUtils.showLong("进入用户主页错误", response.code());
LogUtils.e("getUserHome", response.message());
}
}
@@ -2445,15 +2545,15 @@ public class RetrofitClient {
});
}
public void delSong(String roomId,String did,BaseObserver<String> observer){
sApiServer.delSong(roomId,did).enqueue(new Callback<BaseModel<String>>() {
public void delSong(String roomId, String did, BaseObserver<String> observer) {
sApiServer.delSong(roomId, did).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
if (response.code() == 200) {
onNextRetu(response, observer);
}else {
ToastUtils.showLong("删除歌曲失败",response.code());
} else {
ToastUtils.showLong("删除歌曲失败", response.code());
LogUtils.e("delSong", response.message());
}
}
@@ -2480,7 +2580,7 @@ public class RetrofitClient {
ToastUtils.showShort(listBaseModel.getMsg());
}
} else {
ToastUtils.showLong("获取用户数据错误",response.code());
ToastUtils.showLong("获取用户数据错误", response.code());
LogUtils.e("getMyInfo", response.message());
}
}
@@ -2673,8 +2773,8 @@ public class RetrofitClient {
} else {
MessageListenerSingleton.getInstance().quitGroup(roomId);
}
}else {
ToastUtils.showLong("进入房间错误",response.code());
} else {
ToastUtils.showLong("进入房间错误", response.code());
if (joinRoomLoadListener != null) {
joinRoomLoadListener.onJoinRoomLoad("网络异常");
}
@@ -3013,7 +3113,7 @@ public class RetrofitClient {
}
public void getRedpacketConfig(BaseObserver<RedPacketConfig> observer) {
sApiServer.getRedpacketConfig().enqueue(new Callback<BaseModel<RedPacketConfig>>(){
sApiServer.getRedpacketConfig().enqueue(new Callback<BaseModel<RedPacketConfig>>() {
@Override
public void onResponse(Call<BaseModel<RedPacketConfig>> call, Response<BaseModel<RedPacketConfig>> response) {

View File

@@ -380,6 +380,9 @@ public class Constants {
public static final String POST_CLEAR_USER_CHARM = "/api/Room/clear_user_charm";//清除魅力值
public static final String POST_MESSAGE_LIST = "/api/UserMessage/get_user_message_list";//消息列表
public static final String POST_INVITE = "/api/Guild/invite_apply_handle";//【新】受邀申请处理
public static final String GET_GROUP_INFO = "/api/Guild/get_guild_info";//群聊设置详情
public static final String POST_GROUP_INFO = "/api/Guild/set_guild_info";//设置群聊信息
public static final String GET_MEMBER_LIST = "/api/Guild/member_list";//群聊成员
public static final String POST_BIND_DETAIL = "/api/Bind/bind_detail";//绑定详情
public static final String POST_USER_WALL = "/api/User/user_gift_wall";//礼物墙
public static final String POST_USER_OLINE_STATUS = "/api/Room/user_online_status";//用户在线状态
@@ -452,6 +455,7 @@ public class Constants {
public static final String MODIFY_MOBILE = "/api/UserData/modify_mobiles";//手机换绑
public static final String BIND_MOBILE = "/api/UserData/bind_mobile";//手机绑定
public static final String GET_FESTIVAL_THEME = "/api/Theme/get_festival_theme";//节日主题接口
public static final String GET_PERSONALTY_LIST_BEAN = "/api/Decorate/get_decorate_list";//装饰列表
public static final String POST_SIGN_START = "/api/Sign/start_sign";//签约开始