Files
real-e-party-iOS/YuMi/Modules/YMMonents/Api/Api+Moments.m
edwinQQQ e8d59495a4 refactor: 重构 EPMomentViewController,替换 UITableView 为 EPMomentListView
主要变更:
1. 移除 UITableView,改为使用 EPMomentListView 以简化数据展示和交互。
2. 添加顶部固定文案 UILabel,提升用户体验。
3. 通过 EPMomentAPIHelper 统一管理 Moments 列表 API 请求,优化数据加载逻辑。
4. 更新 UI 约束,确保布局适配不同屏幕。

此重构旨在提升代码可维护性和用户界面的一致性。
2025-10-10 17:22:39 +08:00

270 lines
13 KiB
Objective-C

//
// Api+Monents.m
// YUMI
//
// Created by YUMI on 2022/5/13.
//
#import "Api+Moments.h"
#import "NSObject+MJExtension.h"
#import "NSMutableDictionary+Saft.h"
#import <Base64/MF_Base64Additions.h>
@implementation Api (Moments)
/// 朋友圈动态推荐列表
/// @param completion 完成
/// @param page 当前的页数
/// @param pageSize 一页的个数
/// @param types 类型 0,2
+ (void)momentsRecommendList:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize types:(NSString *)types {
[self makeRequest:@"dynamic/square/recommendDynamics" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize, types, nil];
}
/// 朋友圈动态最新列表
/// @param completion 完成
/// @param dynamicId 最新动态的id
/// @param pageSize 一页的个数
/// @param types 类型 0,2
+ (void)momentsLatestList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types {
[self makeRequest:@"dynamic/square/latestDynamics" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, dynamicId, pageSize, types, nil];
}
/// 朋友圈动态关注列表
/// @param completion 完成
/// @param dynamicId 最新动态的id
/// @param pageSize 一页的个数
/// @param types 类型 0,2
+ (void)momentsFollowerList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvZm9sbG93ZXJEeW5hbWljcw=="];///dynamic/square/followerDynamics
[self makeRequest:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, dynamicId, pageSize, types, nil];
}
/// 互动消息列表
/// @param completion 完成
/// @param dynamicId 动态的id
/// @param pageSize 一页的个数
/// @param uid 类型 uid
+ (void)momentsInteractiveList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize uid:(NSString *)uid {
NSString * fang = [NSString stringFromBase64String:@"aW50ZXJhY3RpdmUvbGlzdA=="];///interactive/list
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:dynamicId forKey:@"id"];
[dic safeSetObject:pageSize forKey:@"pageSize"];
[dic safeSetObject:uid forKey:@"uid"];
[HttpRequestHelper request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion];
}
/// 清空互动消息
/// @param completion 完成
/// @param uid 用户的uid
+ (void)momentsInteractiveClear:(HttpRequestHelperCompletion)completion uid:(NSString *)uid {
NSString * fang = [NSString stringFromBase64String:@"aW50ZXJhY3RpdmUvY2xlYXI="];///interactive/clear
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, nil];
}
/// 获取话题列表
/// @param completion 完成
/// @param uid uid
/// @param page 当前的页数
/// @param pageSize 一页多少个
/// @param worldTypeId 类型0
+ (void)momentsTopicList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize worldTypeId:(NSString *)worldTypeId {
NSString * fang = [NSString stringFromBase64String:@"d29ybGQvbGlzdA=="];///world/list
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, page, pageSize, worldTypeId, nil];
}
/// 分享动态
/// @param completion 完成
/// @param dynamicId 动态的id
/// @param uid 动态发布者的uid
/// @param worldId 动态的话题id
/// @param shareUid 分享者的uid
+ (void)userShareMoments:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid worldId:(NSString *)worldId shareUid:(NSString *)shareUid {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zaGFyZQ=="];///dynamic/share
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, worldId, shareUid, nil];
}
/// 点赞动态
/// @param completion 完成
/// @param dynamicId 动态的id
/// @param uid 用户的uid
/// @param status 0 取消点赞 1 点赞
/// @param likedUid 点赞人的uid
/// @param worldId 世界的id
+ (void)momentsLike:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid status:(NSString *)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9saWtl"];///dynamic/like
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, status, likedUid, worldId, nil];
}
/// 动态详情
/// @param completion 完成
/// @param dynamicId 动态的id
/// @param worldId 话题的id
/// @param uid 用户的uid
+ (void)momentsDetail:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId uid:(NSString *)uid {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9kZXRhaWw="];///dynamic/detail
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, worldId, uid, nil];
}
/// 评论动态
/// @param completion 完成
/// @param uid 用户的uid
/// @param dynamicId 动态的id
/// @param content 内容
+ (void)momentDetailCommon:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId content:(NSString *)content {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L3B1Ymxpc2g="];///dynamic/comment/publish
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, content, nil];
}
/// 回复评论
/// @param completion 完成
/// @param uid 用户的uid
/// @param dynamicId 动态的id
/// @param content 内容
/// @param commentId 评论的id
+ (void)replyMomentsDetailCommon:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId content:(NSString *)content commentId:(NSString *)commentId {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L3JlcGx5"];///dynamic/comment/reply
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, content, commentId, nil];
}
/// 请求评论列表
/// @param completion 完成
/// @param dynamicId 动态id
/// @param uid uid
/// @param pageSize 一页多少个
/// @param timestamp 上一个评论的时间戳
+ (void)momentsCommentList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid pageSize:(NSString *)pageSize timestamp:(NSString *)timestamp {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L2xpc3Q="];///dynamic/comment/list
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:dynamicId forKey:@"dynamicId"];
[dic safeSetObject:uid forKey:@"uid"];
[dic safeSetObject:pageSize forKey:@"pageSize"];
if (timestamp.length > 0) {
[dic safeSetObject:timestamp forKey:@"timestamp"];
}
[HttpRequestHelper request:fang method:HttpRequestHelperMethodGET params:dic completion:completion];
}
/// 评论回复列表
/// @param completion 完成
/// @param dynamicId 动态id
/// @param uid uid
/// @param pageSize 每页多少个
/// @param commentId 评论的id
/// @param timestamp 上条回复的时间
+ (void)momentsCommentReplyList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid pageSize:(NSString *)pageSize commentId:(NSString *)commentId timestamp:(NSString *)timestamp {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L3JlcGx5L2xpc3Q="];///dynamic/comment/reply/list
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, pageSize, commentId, timestamp, nil];
}
/// 获取可以选择的话题列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param type 类型
/// @param page 当前的页数
+ (void)momentsTopicList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type page:(NSString *)page {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvd29ybGQ="];///dynamic/square/world
[self makeRequest:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, type, page, nil];
}
/// 发布动态
/// @param completion 完成
/// @param uid uid
/// @param type 类型
/// @param worldId 话题的id
/// @param content 内容
/// @param resList 发布的图片
+ (void)momentsPublish:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type worldId:(NSString *)worldId content:(NSString *)content resList:(NSArray *)resList {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvcHVibGlzaA=="];///dynamic/square/publish
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:uid forKey:@"uid"];
[dic safeSetObject:type forKey:@"type"];
[dic safeSetObject:content.length > 0 ? content : @"" forKey:@"content"];
if (worldId.length > 0) {
[dic safeSetObject:worldId forKey:@"worldId"];
}
if (resList.count > 0) {
[dic safeSetObject:resList forKey:@"resList"];
}
[HttpRequestHelper postSkillCard:fang params:dic.toJSONString completion:completion];
}
/// 获取动态话题最新记录
/// @param completion 完成
/// @param uid 用户的uid
/// @param dynamicId 下一页动态的id
/// @param types l类型
/// @param worldId 话题的id
/// @param pageSize 一页多少个
+ (void)momentsTopicLatestList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId types:(NSString *)types worldId:(NSString *)worldId pageSize:(NSString *)pageSize {
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:uid forKey:@"uid"];
[dic safeSetObject:types forKey:@"types"];
[dic safeSetObject:worldId forKey:@"worldId"];
[dic safeSetObject:pageSize forKey:@"pageSize"];
if (dynamicId.length > 0) {
[dic safeSetObject:dynamicId forKey:@"dynamicId"];
}
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9sYXRlc3RMaXN0"];///dynamic/latestList
[HttpRequestHelper request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion];
}
/// 获取动态话题推荐记录
/// @param completion 完成
/// @param uid 用户的uid
/// @param dynamicId 下一页动态的id
/// @param types l类型
/// @param worldId 话题的id
/// @param pageSize 一页多少个
+ (void)momentsTopicRecommendList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId types:(NSString *)types worldId:(NSString *)worldId pageSize:(NSString *)pageSize {
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic safeSetObject:uid forKey:@"uid"];
[dic safeSetObject:types forKey:@"types"];
[dic safeSetObject:worldId forKey:@"worldId"];
[dic safeSetObject:pageSize forKey:@"pageSize"];
if (dynamicId.length > 0) {
[dic safeSetObject:dynamicId forKey:@"dynamicId"];
}
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9saXN0VjI="];///dynamic/listV2
[HttpRequestHelper request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion];
}
/// 获取动态话题详情
/// @param completion 完成
/// @param worldId 话题id
/// @param uid 用户uid
+ (void)momentsTopicDetailInfo:(HttpRequestHelperCompletion)completion worldId:(NSString *)worldId uid:(NSString *)uid{
NSString * fang = [NSString stringFromBase64String:@"d29ybGQvZGV0YWls"];///world/detail
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,worldId, uid, nil];
}
/// 删除动态
/// @param completion 完成
/// @param uid uid
/// @param dynamicId 动态的id
/// @param worldId 话题的id
+ (void)momentsDelete:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId {
NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9kZWxldGU="];///dynamic/delete
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, worldId, nil];
}
/// 获取动态没有阅读数
/// @param completion 完成
/// @param uid uid
+ (void)momentsUnReadCount:(HttpRequestHelperCompletion)completion uid:(NSString *)uid {
NSString * fang = [NSString stringFromBase64String:@"aW50ZXJhY3RpdmUvdW5yZWFkQ291bnQ="];///interactive/unreadCount
[self makeRequest:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, nil];
}
/// 屏蔽
/// @param completion 完成
/// @param type type为0 => 屏蔽动态, objId 为 动态id, type为1 => 屏蔽房间, objId 为 用户uid
+ (void)requestShielding:(HttpRequestHelperCompletion)completion type:(NSString *)type objId:(NSString *)objId{
[self makeRequest:[NSString stringWithFormat:@"%@%@%@",@"user/",@"black/",@"add"] method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, type,objId, nil];
}
@end