From 098f0b5572980d551110a68c59fcd0a40ccbad5b Mon Sep 17 00:00:00 2001 From: fengshuo <963787902@qq.com> Date: Wed, 24 Aug 2022 15:51:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=A0=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xplan-ios/Main/Monents/Api/Api+Monents.h | 7 +++++ xplan-ios/Main/Monents/Api/Api+Monents.m | 9 ++++++ .../Presenter/XPMonentDetailPresenter.h | 4 +++ .../Presenter/XPMonentDetailPresenter.m | 10 +++++++ .../Protocol/XPMonentsDetailProtocol.h | 3 ++ .../View/Cell/XPMonentsTableViewCell.h | 5 ++-- .../View/Cell/XPMonentsTableViewCell.m | 25 ++++++++++++++-- .../View/SubViews/XPMonentsTooBarView.h | 5 ++-- .../View/SubViews/XPMonentsTooBarView.m | 24 ++++++++++----- .../View/SubViews/XPMonentsUserInfoView.h | 14 ++++++++- .../View/SubViews/XPMonentsUserInfoView.m | 30 ++++++++++++------- .../View/XPMonentsAttentionViewController.m | 12 ++++++++ .../View/XPMonentsDetailViewController.m | 9 ++++++ 13 files changed, 132 insertions(+), 25 deletions(-) diff --git a/xplan-ios/Main/Monents/Api/Api+Monents.h b/xplan-ios/Main/Monents/Api/Api+Monents.h index 958474ae..d56025cd 100644 --- a/xplan-ios/Main/Monents/Api/Api+Monents.h +++ b/xplan-ios/Main/Monents/Api/Api+Monents.h @@ -155,6 +155,13 @@ NS_ASSUME_NONNULL_BEGIN /// @param pageSize 一页多少个 /// @param worldTypeId 类型 + (void)moentsTopicList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize worldTypeId:(NSString *)worldTypeId; + +/// 删除动态 +/// @param completion 完成 +/// @param uid uid +/// @param dynamicId 动态的id +/// @param worldId 话题的id ++ (void)monentsDelete:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Monents/Api/Api+Monents.m b/xplan-ios/Main/Monents/Api/Api+Monents.m index 527c0a60..8b786c4e 100644 --- a/xplan-ios/Main/Monents/Api/Api+Monents.m +++ b/xplan-ios/Main/Monents/Api/Api+Monents.m @@ -235,4 +235,13 @@ [self makeRequest:@"world/list" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, page, pageSize, worldTypeId, nil]; } +/// 删除动态 +/// @param completion 完成 +/// @param uid uid +/// @param dynamicId 动态的id +/// @param worldId 话题的id ++ (void)monentsDelete:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId { + [self makeRequest:@"dynamic/delete" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, worldId, nil]; +} + @end diff --git a/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.h b/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.h index 13d71a42..5c732662 100644 --- a/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.h +++ b/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.h @@ -29,6 +29,10 @@ NS_ASSUME_NONNULL_BEGIN /// @param worldId 话题的id - (void)likeMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; +/// 删除动态 +/// @param dynamicId 动态id +/// @param worldId 话题id +- (void)deleteMonents:(NSString *)dynamicId worldId:(NSString *)worldId; /// 评论回复 /// @param commonId 评论的id /// @param dynamicId 动态的id diff --git a/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.m b/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.m index 68949921..1a772bda 100644 --- a/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.m +++ b/xplan-ios/Main/Monents/Presenter/XPMonentDetailPresenter.m @@ -63,6 +63,16 @@ } showLoading:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; } +/// 删除动态 +/// @param dynamicId 动态id +/// @param worldId 话题id +- (void)deleteMonents:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountInfoStorage instance].getUid; + [Api monentsDelete:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self getView] deleteMonentsSuccess:dynamicId] + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + /// 评论动态 /// @param dynamicId 动态的id diff --git a/xplan-ios/Main/Monents/Protocol/XPMonentsDetailProtocol.h b/xplan-ios/Main/Monents/Protocol/XPMonentsDetailProtocol.h index 2e9d7130..7919913b 100644 --- a/xplan-ios/Main/Monents/Protocol/XPMonentsDetailProtocol.h +++ b/xplan-ios/Main/Monents/Protocol/XPMonentsDetailProtocol.h @@ -21,6 +21,9 @@ NS_ASSUME_NONNULL_BEGIN ///点赞/取消动态成功 - (void)likeMonentsSuccess:(NSString *)dynamicId status:(BOOL)status; +///删除话题成功 +- (void)deleteMonentsSuccess:(NSString *)monentsInfo; + ///评论动态成功 - (void)commonMonentsSuccess; ///回复某人评论成功 diff --git a/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.h b/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.h index d1041327..6e29f7bb 100644 --- a/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.h +++ b/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.h @@ -11,9 +11,10 @@ NS_ASSUME_NONNULL_BEGIN @class MonentsInfoModel, XPMonentsTableViewCell; @protocol XPMonentsTableViewCellDelegate - +///点击了点赞 - (void)xPMonentsTableViewCell:(XPMonentsTableViewCell *)view didClickLike:(MonentsInfoModel *)monentsInfo; - +///点击了删除 +- (void)xPMonentsTableViewCell:(XPMonentsTableViewCell *)view didClicDelete:(MonentsInfoModel *)monentsInfo; @end @interface XPMonentsTableViewCell : UITableViewCell diff --git a/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.m b/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.m index 42922707..0b8d95ec 100644 --- a/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.m +++ b/xplan-ios/Main/Monents/View/Cell/XPMonentsTableViewCell.m @@ -25,7 +25,9 @@ #import "XPMonentsContentView.h" #import "XPMonentsLayoutConfig.h" #import "XPMonentTopicContainerViewController.h" -@interface XPMonentsTableViewCell () +#import "XPMineUserInfoViewController.h" +#import "XPRoomViewController.h" +@interface XPMonentsTableViewCell () ///显示颜色的 有的时候stackView 不能显示颜色 @property (nonatomic,strong) UIView * backView; ///容器 @@ -93,6 +95,18 @@ make.height.mas_equalTo(kMONENTS_TOOL_BAR_HEIGHT); }]; } +#pragma mark - XPMonentsUserInfoViewDelegate +- (void)xPMonentsUserInfoView:(XPMonentsUserInfoView *)view didClickEnterRoom:(MonentsInfoModel *)monents { + if (monents.inRoomUid.integerValue > 0) { + [XPRoomViewController openRoom:monents.inRoomUid viewController:[XCCurrentVCStackManager shareManager].getCurrentVC]; + } +} + +- (void)xPMonentsUserInfoView:(XPMonentsUserInfoView *)view didClickAvatar:(MonentsInfoModel *)monents { + XPMineUserInfoViewController * userInfoVC = [[XPMineUserInfoViewController alloc] init]; + userInfoVC.uid = monents.uid.integerValue; + [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; +} #pragma mark - XPMonentsTooBarViewDelegate - (void)xPMonentsTooBarView:(XPMonentsTooBarView *)view didClickLike:(MonentsInfoModel *)monentsInfo { @@ -101,6 +115,12 @@ } } +- (void)xPMonentsTooBarView:(XPMonentsTooBarView *)view didClickDelete:(MonentsInfoModel *)monentsInfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPMonentsTooBarView:didClickDelete:)]) { + [self.delegate xPMonentsTableViewCell:self didClicDelete:self.monentsInfo]; + } +} + #pragma mark - SDPhotoBrowserDelegate - (NSURL *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageURLForIndex:(NSInteger)index { MonentsPicInfoModel *picinfo = [self.monentsInfo.dynamicResList objectAtIndex:index]; @@ -127,7 +147,7 @@ - (void)didTapTopicRecognizer { if (self.monentsInfo.worldId > 0) { XPMonentTopicContainerViewController * topicListVC = [[XPMonentTopicContainerViewController alloc] init]; - topicListVC.worldId = [NSString stringWithFormat:@"%lld", self.monentsInfo.worldId]; + topicListVC.worldId = [NSString stringWithFormat:@"%ld", self.monentsInfo.worldId]; [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:topicListVC animated:YES]; } } @@ -172,6 +192,7 @@ - (XPMonentsUserInfoView *)userInfoView { if (!_userInfoView) { _userInfoView = [[XPMonentsUserInfoView alloc] init]; + _userInfoView.delegate = self; } return _userInfoView; } diff --git a/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.h b/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.h index 5846d0cb..3087c7ba 100644 --- a/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.h +++ b/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.h @@ -10,9 +10,10 @@ NS_ASSUME_NONNULL_BEGIN @class MonentsInfoModel, XPMonentsTooBarView; @protocol XPMonentsTooBarViewDelegate - +///点赞 - (void)xPMonentsTooBarView:(XPMonentsTooBarView *)view didClickLike:(MonentsInfoModel *)monentsInfo; - +///删除 +- (void)xPMonentsTooBarView:(XPMonentsTooBarView *)view didClickDelete:(MonentsInfoModel *)monentsInfo; @end @interface XPMonentsTooBarView : UIView diff --git a/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.m b/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.m index ad7d0293..5d24646b 100644 --- a/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.m +++ b/xplan-ios/Main/Monents/View/SubViews/XPMonentsTooBarView.m @@ -136,14 +136,22 @@ } - (void)reportButtonAction:(UIButton *)sender { - TTActionSheetConfig *report = [TTActionSheetConfig normalTitle:@"举报" clickAction:^{ - NSString * url= [NSString stringWithFormat:@"%@?reportUid=%@&source=%@", URLWithType(kReportRoomURL),self.monentsInfo.uid, @"WORLDDYNAMIC"]; - XPWebViewController * webVC = [[XPWebViewController alloc] init]; - webVC.url = url; - [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:webVC animated:YES]; - }]; - - [TTPopup actionSheetWithItems:@[report]]; + TTActionSheetConfig *action; + if (self.monentsInfo.uid.integerValue == [AccountInfoStorage instance].getUid.integerValue) { + action = [TTActionSheetConfig normalTitle:@"删除" clickAction:^{ + if (self.delegate && [self.delegate respondsToSelector:@selector(xPMonentsTooBarView:didClickDelete:)]) { + [self.delegate xPMonentsTooBarView:self didClickDelete:self.monentsInfo]; + } + }]; + } else { + action = [TTActionSheetConfig normalTitle:@"举报" clickAction:^{ + NSString * url= [NSString stringWithFormat:@"%@?reportUid=%@&source=%@", URLWithType(kReportRoomURL),self.monentsInfo.uid, @"WORLDDYNAMIC"]; + XPWebViewController * webVC = [[XPWebViewController alloc] init]; + webVC.url = url; + [[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:webVC animated:YES]; + }]; + } + [TTPopup actionSheetWithItems:@[action]]; } - (void)shareButtonAction:(UIButton *)sender { diff --git a/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.h b/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.h index 639ff786..7a75f850 100644 --- a/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.h +++ b/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.h @@ -8,10 +8,22 @@ #import NS_ASSUME_NONNULL_BEGIN -@class MonentsInfoModel; +@class MonentsInfoModel, XPMonentsUserInfoView; +@protocol XPMonentsUserInfoViewDelegate + +///点击了头像 +- (void)xPMonentsUserInfoView:(XPMonentsUserInfoView *)view didClickAvatar:(MonentsInfoModel *)monents; + +///点击了跟随进房 +- (void)xPMonentsUserInfoView:(XPMonentsUserInfoView *)view didClickEnterRoom:(MonentsInfoModel *)monents; + +@end @interface XPMonentsUserInfoView : UIView ///动态信息 @property (nonatomic,strong) MonentsInfoModel *monentsInfo; + +///代理 +@property (nonatomic,weak) id delegate; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.m b/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.m index 6ea1e119..3bd5d9e5 100644 --- a/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.m +++ b/xplan-ios/Main/Monents/View/SubViews/XPMonentsUserInfoView.m @@ -170,8 +170,16 @@ } #pragma mark - Event Response -- (void)onlieButtonAction:(UIButton *)sender { - //TODO: 进入直播中的房间 +- (void)onlineButtonAction:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPMonentsUserInfoView:didClickEnterRoom:)]) { + [self.delegate xPMonentsUserInfoView:self didClickEnterRoom:self.monentsInfo]; + } +} + +- (void)didTapAvatarGuest { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPMonentsUserInfoView:didClickAvatar:)]) { + [self.delegate xPMonentsUserInfoView:self didClickAvatar:self.monentsInfo]; + } } #pragma mark - Getters And Setters @@ -255,6 +263,8 @@ _avatarImageView.layer.masksToBounds = YES; _avatarImageView.layer.cornerRadius = 20; _avatarImageView.contentMode = UIViewContentModeScaleAspectFill; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAvatarGuest)]; + [_avatarImageView addGestureRecognizer:tap]; } return _avatarImageView; } @@ -401,16 +411,16 @@ - (UIButton *)onlineButton { if (!_onlineButton) { _onlineButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [_onlineButton setTitle:@"邀请" forState:UIControlStateNormal]; - [_onlineButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; - _onlineButton.titleLabel.font = [UIFont systemFontOfSize:12]; - _onlineButton.backgroundColor = [UIColor whiteColor]; + [_onlineButton setTitle:@"直播中" forState:UIControlStateNormal]; + [_onlineButton setImage:[UIImage imageNamed:@"home_search_user_online"] forState:UIControlStateNormal]; + [_onlineButton setTitleColor:[ThemeColor appEmphasizeColor] forState:UIControlStateNormal]; + _onlineButton.backgroundColor = [UIColor clearColor]; + _onlineButton.titleLabel.font = [UIFont systemFontOfSize:10]; _onlineButton.layer.masksToBounds = YES; - _onlineButton.layer.cornerRadius = 9; + _onlineButton.layer.cornerRadius = 18/2; + _onlineButton.layer.borderColor = [ThemeColor appEmphasizeColor].CGColor; _onlineButton.layer.borderWidth = 1; - _onlineButton.layer.borderColor = UIColorFromRGB(0xFFAA37).CGColor; - [_onlineButton setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal]; - [_onlineButton addTarget:self action:@selector(onlieButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + [_onlineButton addTarget:self action:@selector(onlineButtonAction:) forControlEvents:UIControlEventTouchUpInside]; } return _onlineButton; } diff --git a/xplan-ios/Main/Monents/View/XPMonentsAttentionViewController.m b/xplan-ios/Main/Monents/View/XPMonentsAttentionViewController.m index c799dbcd..2dd8f880 100644 --- a/xplan-ios/Main/Monents/View/XPMonentsAttentionViewController.m +++ b/xplan-ios/Main/Monents/View/XPMonentsAttentionViewController.m @@ -21,6 +21,7 @@ ///View #import "XPMonentsTableViewCell.h" #import "XPMonentsEmptyTableViewCell.h" +#import "XPMonentsDetailViewController.h" @interface XPMonentsAttentionViewController () ///列表 @@ -121,6 +122,17 @@ XPMonentsEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMonentsEmptyTableViewCell class])]; return cell; } + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + XPMonentsDetailViewController * detailVC = [[XPMonentsDetailViewController alloc] init]; + MonentsInfoModel * monentsInfo = [self.datasource objectAtIndex:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + [self.navigationController pushViewController:detailVC animated:YES]; + } +} + #pragma mark - XPMonentsTableViewCellDelegate - (void)xPMonentsTableViewCell:(XPMonentsTableViewCell *)view didClickLike:(MonentsInfoModel *)monentsInfo { [self.presenter likeMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; diff --git a/xplan-ios/Main/Monents/View/XPMonentsDetailViewController.m b/xplan-ios/Main/Monents/View/XPMonentsDetailViewController.m index cad0df24..498c09d3 100644 --- a/xplan-ios/Main/Monents/View/XPMonentsDetailViewController.m +++ b/xplan-ios/Main/Monents/View/XPMonentsDetailViewController.m @@ -235,6 +235,10 @@ [self.presenter likeMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; } +- (void)xPMonentsTableViewCell:(XPMonentsTableViewCell *)view didClicDelete:(MonentsInfoModel *)monentsInfo { + [self.presenter deleteMonents:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + #pragma mark - InputBoardDataSource //@return 点加号按钮弹出的拓展面板View,且无需设置frame - (UIView *)keyboardManagerExtendBoardView:(QKeyboardManager *)keyboardManager { @@ -385,6 +389,11 @@ [self.presenter getMonentsCommentList:self.monentsInfo.dynamicId timestamp:@"" status:0]; } +- (void)deleteMonentsSuccess:(NSString *)monentsInfo { + [self showSuccessToast:@"删除成功"]; + [self.navigationController popViewControllerAnimated:YES]; +} + #pragma mark - Getters And Setters - (UITableView *)tableView {