
- Removed YuMi/Library/ (138 MB, not tracked) - Removed YuMi/Resources/ (23 MB, not tracked) - Removed old version assets (566 files, not tracked) - Excluded Pods/, xcuserdata/ and other build artifacts - Clean repository optimized for company server deployment
254 lines
9.9 KiB
Objective-C
254 lines
9.9 KiB
Objective-C
//
|
||
// CreateEventPresenter.m
|
||
// YuMi
|
||
//
|
||
// Created by P on 2025/5/9.
|
||
//
|
||
|
||
#import "CreateEventPresenter.h"
|
||
#import "Api+EventCenter.h"
|
||
#import <ReactiveObjC/ReactiveObjC.h>
|
||
|
||
@interface CreateEventPresenter()
|
||
|
||
@end
|
||
|
||
@implementation CreateEventPresenter
|
||
// Maybe 用一个方法 + 枚举指来指代一个功能类型的 api call?
|
||
|
||
- (void)loadConfig {
|
||
@kWeakify(self);
|
||
[Api usereventGoldConfig:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(loadCongfigSuccess:)]) {
|
||
[[self getView] loadCongfigSuccess:[EventConfigModel modelWithJSON:data.data]];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(loadCongfigFailure:)]) {
|
||
[[self getView] loadCongfigFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES]
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
}
|
||
|
||
- (void)loadOfficialEvents {
|
||
@kWeakify(self);
|
||
[Api homeBanner:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(officialEventListSuccess:)]) {
|
||
[[self getView] officialEventListSuccess:[HomeBannerInfoModel modelsWithArray:data.data]];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(officialEventListFailure:)]) {
|
||
[[self getView] officialEventListFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES] uid:[AccountInfoStorage instance].getUid type:@"1" activityShow:@(1)];
|
||
}
|
||
|
||
- (void)loadEventSquare:(NSInteger)page {
|
||
@kWeakify(self);
|
||
[Api usereventSquare:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(eventSquareListSuccess:)]) {
|
||
[[self getView] eventSquareListSuccess:[EventItemModel modelsWithArray:data.data]];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(eventSquareListFailure:)]) {
|
||
[[self getView] eventSquareListFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES] page:@(page) pageSize:@20];
|
||
}
|
||
|
||
- (void)loadMyCreateEvents:(NSInteger)page {
|
||
@kWeakify(self);
|
||
[Api usereventMySquare:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(myCreateEventListSuccess:)]) {
|
||
[[self getView] myCreateEventListSuccess:[EventItemModel modelsWithArray:data.data]];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(myCreateEventListFailure:)]) {
|
||
[[self getView] myCreateEventListFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES]
|
||
page:@(page)
|
||
pageSize:@20
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
}
|
||
|
||
- (void)loadMySubEvents:(NSInteger)page {
|
||
@kWeakify(self);
|
||
[Api usereventMySub:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(mySubEventListSuccess:)]) {
|
||
[[self getView] mySubEventListSuccess:[EventItemModel modelsWithArray:data.data]];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(mySubEventListFailure:)]) {
|
||
[[self getView] mySubEventListFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES]
|
||
page:@(page)
|
||
pageSize:@20
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
}
|
||
|
||
- (void)loadMyEvents {
|
||
RACSubject *create = [RACSubject subject];
|
||
RACSubject *sub = [RACSubject subject];
|
||
|
||
@kWeakify(self);
|
||
[[RACSignal combineLatest:@[create, sub] reduce:^id(NSArray <EventItemModel *> * creates,
|
||
NSArray <EventItemModel *> * subs){
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(myCreateEventListSuccess:)]) {
|
||
[[self getView] myCreateEventListSuccess:creates];
|
||
}
|
||
if ([[self getView] respondsToSelector:@selector(mySubEventListSuccess:)]) {
|
||
[[self getView] mySubEventListSuccess:subs];
|
||
}
|
||
return nil;
|
||
}] subscribeError:^(NSError * _Nullable error) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(myEventListFailure:)]) {
|
||
[[self getView] myEventListFailure:error.domain];
|
||
}
|
||
}];
|
||
|
||
[Api usereventMySquare:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
NSArray *array = [EventItemModel modelsWithArray:data.data];
|
||
if (array.count > 4) {
|
||
array = [array subarrayWithRange:NSMakeRange(0, 4)];
|
||
}
|
||
[create sendNext:array];
|
||
[create sendCompleted];
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
[create sendError:[NSError errorWithDomain:msg code:code userInfo:nil]];
|
||
[create sendCompleted];
|
||
} showLoading:YES errorToast:YES]
|
||
page:@(1)
|
||
pageSize:@20
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
|
||
[Api usereventMySub:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
NSArray *array = [EventItemModel modelsWithArray:data.data];
|
||
[sub sendNext:array];
|
||
[sub sendCompleted];
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
[sub sendError:[NSError errorWithDomain:msg code:code userInfo:nil]];
|
||
[sub sendCompleted];
|
||
} showLoading:YES errorToast:YES]
|
||
page:@(1)
|
||
pageSize:@20
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
|
||
}
|
||
|
||
- (void)loadMyRooms {
|
||
@kWeakify(self);
|
||
[Api roomRoleListRoom:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(myRoomListSuccess:)]) {
|
||
[[self getView] myRoomListSuccess:[EventRoomListModel modelWithJSON:data.data]];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(myRoomListFailure:)]) {
|
||
[[self getView] myRoomListFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES]];
|
||
}
|
||
|
||
- (void)deleteEvent:(NSInteger)eventId {
|
||
@kWeakify(self);
|
||
[Api usereventDel:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(deleteEventSuccess:)]) {
|
||
[[self getView] deleteEventSuccess:eventId];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(deleteEventFailure:)]) {
|
||
[[self getView] deleteEventFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES] eventId:@(eventId)];
|
||
}
|
||
|
||
- (void)subEvent:(BOOL)isSub
|
||
eventId:(NSInteger)eventId {
|
||
@kWeakify(self);
|
||
[Api usereventSub:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(eventSubActionSuccess: eventId:)]) {
|
||
[[self getView] eventSubActionSuccess:isSub eventId:eventId];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(eventSubActionFailure:)]) {
|
||
[[self getView] eventSubActionFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES]
|
||
eventId:@(eventId)
|
||
subStatus:isSub ? @(1) : @(0)
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
}
|
||
|
||
- (void)createEventWithTitle:(NSString *)title
|
||
image:(NSString *)imagePath
|
||
uploadToHome:(BOOL)uploadToHome
|
||
startTime:(NSString *)startTime
|
||
duration:(NSInteger)duration
|
||
content:(NSString *)content
|
||
gold:(NSInteger)gold
|
||
roomUid:(NSInteger)roomUid
|
||
notifyFans:(BOOL)notifyFans {
|
||
|
||
@kWeakify(self);
|
||
[Api usereventPublish:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(createEventSuccess)]) {
|
||
[[self getView] createEventSuccess];
|
||
}
|
||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||
@kStrongify(self);
|
||
if ([[self getView] respondsToSelector:@selector(createEventFailure:)]) {
|
||
[[self getView] createEventFailure:msg];
|
||
}
|
||
} showLoading:YES errorToast:YES]
|
||
eventBanner:imagePath
|
||
eventDetail:content
|
||
eventDuration:@(duration)
|
||
eventStartTimeStr:startTime
|
||
eventTopic:title
|
||
noticeFans:@(notifyFans)
|
||
payBanner:@(uploadToHome)
|
||
payGoldNum:@(gold)
|
||
roomUid:@(roomUid).stringValue
|
||
uid:[AccountInfoStorage instance].getUid];
|
||
}
|
||
|
||
- (void)loadMoney:(void(^)(WalletInfoModel *))success
|
||
failure:(void(^)(NSError *error))failure {
|
||
NSString * uid = [AccountInfoStorage instance].getUid;
|
||
NSString * ticket = [AccountInfoStorage instance].getTicket;
|
||
[Api getUserWalletInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||
if (data.code == 200) {
|
||
WalletInfoModel * model = [WalletInfoModel modelWithDictionary:data.data];
|
||
if (success) {
|
||
success(model);
|
||
}
|
||
} else {
|
||
if (failure) {
|
||
failure([NSError errorWithDomain:data.message code:data.code userInfo:nil]);
|
||
}
|
||
}
|
||
}] uid:uid ticket:ticket];
|
||
}
|
||
|
||
@end
|