Files
peko-ios/YuMi/Modules/YMMine/Presenter/XPMineUserInfoEditPresenter.m

238 lines
7.7 KiB
Mathematica
Raw Normal View History

2023-07-14 18:50:55 +08:00
//
2023-08-10 16:25:34 +08:00
// XPMineUserInfoEditPresenter.m
// xplan-ios
2023-07-14 18:50:55 +08:00
//
2023-08-10 16:25:34 +08:00
// Created by on 2021/9/23.
2023-07-14 18:50:55 +08:00
//
#import "XPMineUserInfoEditPresenter.h"
///Api
#import "Api+Mine.h"
///Tool
#import "AccountInfoStorage.h"
#import "UploadImage.h"
///Model
#import "XPMineUserInfoEditModel.h"
#import "UserInfoModel.h"
2023-08-10 16:25:34 +08:00
2023-07-14 18:50:55 +08:00
///P
#import "XPMineUserInfoEditProtocol.h"
@interface XPMineUserInfoEditPresenter ()
///
@property (nonatomic,strong) XPMineUserInfoEditModel *nickItem;
///
@property (nonatomic,strong) XPMineUserInfoEditModel *avatarItem;
///
@property (nonatomic,strong) XPMineUserInfoEditModel *birthItem;
///
@property (nonatomic,strong) XPMineUserInfoEditModel *photoItem;
///
@property (nonatomic,strong) XPMineUserInfoEditModel *desItem;
2023-08-10 16:25:34 +08:00
///
@property (nonatomic,strong) XPMineUserInfoEditModel *tagItem;
///
@property (nonatomic,strong) XPMineUserInfoEditModel *areaItem;
///
@property (nonatomic,strong) XPMineUserInfoEditModel *soundItem;;
2023-07-14 18:50:55 +08:00
///
@property (nonatomic,strong) NSMutableArray *editArray;
///
@property (nonatomic,strong) NSDateFormatter *dateFormatter;
@end
@implementation XPMineUserInfoEditPresenter
///
- (void)getUserInfo {
2023-08-10 16:25:34 +08:00
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
[[self getView] onGetUserInfoSuccess:infoModel];
}] uid:uid];
2023-07-14 18:50:55 +08:00
}
///
- (void)getUserInfoEditDataSourceWithUserInfo:(UserInfoModel *)userInfo {
2023-08-10 16:25:34 +08:00
///
if (self.editArray.count <= 0) {
[self.editArray addObject:self.avatarItem];
[self.editArray addObject:self.nickItem];
[self.editArray addObject:self.birthItem];
[self.editArray addObject:self.photoItem];
[self.editArray addObject:self.areaItem];
[self.editArray addObject:self.tagItem];
[self.editArray addObject:self.soundItem];
[self.editArray addObject:self.desItem];
}
2023-07-14 18:50:55 +08:00
self.avatarItem.isReview = userInfo.isReview;
self.avatarItem.avatarUrl = userInfo.isReview ? userInfo.reviewingAvatar : userInfo.avatar;
2023-08-10 16:25:34 +08:00
self.nickItem.subTitle = userInfo.nick;
NSString *dateStr = [self.dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:userInfo.birth/1000]];
self.birthItem.subTitle = dateStr;
self.photoItem.photoArray = userInfo.privatePhoto;
self.desItem.subTitle = userInfo.userDesc.length > 0 ? userInfo.userDesc : @"";
///
[[self getView] getUserInfoEditDataSourceSuccess:self.editArray];
2023-07-14 18:50:55 +08:00
}
///
/// @param avatar
/// @param nick
/// @param birth
/// @param userDesc
- (void)complectionInfoWithAvatar:(NSString * _Nullable)avatar
2023-08-10 16:25:34 +08:00
nick:(NSString * _Nullable)nick
birth:(NSString * _Nullable)birth
userDesc:(NSString * _Nullable)userDesc {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
if (avatar.length > 0) {
[dic setValue:avatar forKey:@"avatar"];
}
if (nick.length > 0) {
[dic setValue:nick forKey:@"nick"];
}
if (birth.length > 0) {
[dic setValue:birth forKey:@"birth"];
}
if (userDesc.length > 0) {
[dic setValue:userDesc forKey:@"userDesc"];
}
[dic setObject:uid forKey:@"uid"];
[dic setObject:ticket forKey:@"ticket"];
[Api completeUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
2023-07-14 18:50:55 +08:00
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
[[self getView] completeUserInfoSuccess:infoModel];
2023-08-10 16:25:34 +08:00
}] userInfo:dic];
2023-07-14 18:50:55 +08:00
}
///
/// @param avatar
- (void)uploadAvatar:(UIImage *)avatar {
2023-08-10 16:25:34 +08:00
[Api qiniuUpLoadImage:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSString *key = data.data[@"key"];
NSString *token = data.data[@"token"];
[UploadImage uploadImage:avatar named:key token:token success:^(NSString * _Nonnull key, NSDictionary * _Nonnull resp) {
NSString *url = resp[@"path"];
[[self getView] uploadImageSuccess:url];
} failure:^(NSNumber * _Nonnull resCode, NSString * _Nonnull message) {
[[self getView] showErrorToast:YMLocalizedString(@"XPMineUserInfoEditPresenter0")];
}];
}]];
2023-07-14 18:50:55 +08:00
}
2023-08-10 16:25:34 +08:00
///
-(void)getAreaList{
[Api getAreaList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView]getAreaListSuccess:data.data];
}showLoading:NO]];
}
///
-(void)saveAreaConfigWithArea:(NSString *)area{
[Api saveAreaConfigWithArea:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView]saveAreaSuccess];
}showLoading:YES errorToast:YES] region:area];
}
2023-07-14 18:50:55 +08:00
#pragma mark - Getters And Setters
- (XPMineUserInfoEditModel *)nickItem {
2023-08-10 16:25:34 +08:00
if (!_nickItem) {
_nickItem = [[XPMineUserInfoEditModel alloc] init];
_nickItem.type = XPMineUserInfoEditType_Nick;
_nickItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter1");
}
return _nickItem;
2023-07-14 18:50:55 +08:00
}
- (XPMineUserInfoEditModel *)avatarItem {
2023-08-10 16:25:34 +08:00
if (!_avatarItem) {
_avatarItem = [[XPMineUserInfoEditModel alloc] init];
_avatarItem.type = XPMineUserInfoEditType_Avatar;
2023-08-04 11:47:43 +08:00
_avatarItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter2");
2023-08-10 16:25:34 +08:00
}
return _avatarItem;
2023-07-14 18:50:55 +08:00
}
- (XPMineUserInfoEditModel *)birthItem {
2023-08-10 16:25:34 +08:00
if (!_birthItem) {
_birthItem = [[XPMineUserInfoEditModel alloc] init];
_birthItem.type = XPMineUserInfoEditType_Birth;
_birthItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter3");
}
return _birthItem;
}
-(XPMineUserInfoEditModel *)areaItem{
if (!_areaItem){
_areaItem = [XPMineUserInfoEditModel new];
_areaItem.type = XPMineUserInfoEditType_Area;
_areaItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter10");
}
return _areaItem;
}
- (XPMineUserInfoEditModel *)tagItem{
if (!_tagItem){
_tagItem = [XPMineUserInfoEditModel new];
_tagItem.type = XPMineUserInfoEditType_Tag;
_tagItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter8");
_tagItem.subTitle = YMLocalizedString(@"XPMineUserInfoEditPresenter9");
}
return _tagItem;
2023-07-14 18:50:55 +08:00
}
- (XPMineUserInfoEditModel *)photoItem {
2023-08-10 16:25:34 +08:00
if (!_photoItem) {
_photoItem = [[XPMineUserInfoEditModel alloc] init];
_photoItem.type = XPMineUserInfoEditType_Photo;
2023-08-04 11:47:43 +08:00
_photoItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter4");
2023-08-10 16:25:34 +08:00
}
return _photoItem;
2023-07-14 18:50:55 +08:00
}
- (XPMineUserInfoEditModel *)desItem {
2023-08-10 16:25:34 +08:00
if (!_desItem) {
_desItem = [[XPMineUserInfoEditModel alloc] init];
_desItem.type = XPMineUserInfoEditType_UseDes;
2023-08-04 11:47:43 +08:00
_desItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter5");
2023-08-10 16:25:34 +08:00
}
return _desItem;
}
- (XPMineUserInfoEditModel *)soundItem{
if (!_soundItem){
_soundItem = [[XPMineUserInfoEditModel alloc]init];
_soundItem.type = XPMineUserInfoEditType_Sound;
_soundItem.title = YMLocalizedString(@"XPMineUserInfoEditPresenter6");
_soundItem.subTitle = YMLocalizedString(@"XPMineUserInfoEditPresenter7");
}
return _soundItem;
2023-07-14 18:50:55 +08:00
}
- (NSMutableArray *)editArray {
2023-08-10 16:25:34 +08:00
if (!_editArray) {
_editArray = [NSMutableArray array];
}
return _editArray;
2023-07-14 18:50:55 +08:00
}
- (NSDateFormatter *)dateFormatter {
2023-08-10 16:25:34 +08:00
if (!_dateFormatter) {
_dateFormatter = [[NSDateFormatter alloc] init];
_dateFormatter.dateFormat = @"yyyy-MM-dd";
}
return _dateFormatter;
2023-07-14 18:50:55 +08:00
}
@end