动态接口对接

This commit is contained in:
liyuhua
2023-12-13 17:56:01 +08:00
parent 74030e806a
commit 99c3755d66
15 changed files with 477 additions and 144 deletions

View File

@@ -739,6 +739,7 @@
23B2A8022B283ACA001C0913 /* MvpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7ED2B283ACA001C0913 /* MvpViewController.m */; };
23B2A8032B283ACA001C0913 /* Api.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7EF2B283ACA001C0913 /* Api.m */; };
23B2A8042B283ACA001C0913 /* HttpRequestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7F22B283ACA001C0913 /* HttpRequestHelper.m */; };
23B62C322B299E80005FD3DE /* Api+DDDynamicApi.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B62C312B299E80005FD3DE /* Api+DDDynamicApi.m */; };
8C2C3EC92B277E7F002C3C34 /* DDIAPHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3EC82B277E7F002C3C34 /* DDIAPHelper.m */; };
8C2C3ECC2B2784DE002C3C34 /* DDIAPRechargeStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3ECB2B2784DE002C3C34 /* DDIAPRechargeStorage.m */; };
8C2C3ED02B278C9E002C3C34 /* DDUploadImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3ECF2B278C9E002C3C34 /* DDUploadImage.m */; };
@@ -2138,6 +2139,8 @@
23B2A7F32B283ACA001C0913 /* ApiHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApiHost.h; sourceTree = "<group>"; };
23B2A7F42B283ACA001C0913 /* HttpRequestHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HttpRequestHelper.h; sourceTree = "<group>"; };
23B2A8062B2843B6001C0913 /* DDMacroHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDMacroHeader.h; sourceTree = "<group>"; };
23B62C302B299E80005FD3DE /* Api+DDDynamicApi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+DDDynamicApi.h"; sourceTree = "<group>"; };
23B62C312B299E80005FD3DE /* Api+DDDynamicApi.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+DDDynamicApi.m"; sourceTree = "<group>"; };
2411BE5187E529C085E77220 /* libPods-DingDangAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DingDangAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
42F5E7CEE31217A32E19E10E /* Pods-DingDangApp-DingDangAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DingDangApp-DingDangAppUITests.debug.xcconfig"; path = "Target Support Files/Pods-DingDangApp-DingDangAppUITests/Pods-DingDangApp-DingDangAppUITests.debug.xcconfig"; sourceTree = "<group>"; };
688E5912F2E950A95FC1EE55 /* Pods-DingDangAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DingDangAppTests.release.xcconfig"; path = "Target Support Files/Pods-DingDangAppTests/Pods-DingDangAppTests.release.xcconfig"; sourceTree = "<group>"; };
@@ -5501,6 +5504,7 @@
23B2A8072B284A99001C0913 /* DDMain */ = {
isa = PBXGroup;
children = (
23B62C2E2B299E26005FD3DE /* DDDynamic */,
23A7F7902B29551D00288CAE /* DDApplePay */,
23A7F7862B28795500288CAE /* DDHome */,
23A7F78A2B28795500288CAE /* DDMine */,
@@ -5508,6 +5512,23 @@
path = DDMain;
sourceTree = "<group>";
};
23B62C2E2B299E26005FD3DE /* DDDynamic */ = {
isa = PBXGroup;
children = (
23B62C2F2B299E56005FD3DE /* DDDynamicApi */,
);
path = DDDynamic;
sourceTree = "<group>";
};
23B62C2F2B299E56005FD3DE /* DDDynamicApi */ = {
isa = PBXGroup;
children = (
23B62C302B299E80005FD3DE /* Api+DDDynamicApi.h */,
23B62C312B299E80005FD3DE /* Api+DDDynamicApi.m */,
);
path = DDDynamicApi;
sourceTree = "<group>";
};
32CE1ADC954F476C1C94DB40 /* Frameworks */ = {
isa = PBXGroup;
children = (
@@ -6666,6 +6687,7 @@
18ECBD152A29C9F400C42DAA /* SVGATool.m in Sources */,
23B2A7B32B283A76001C0913 /* DDUIImageFixedManager.m in Sources */,
188EC0F82A47CF3200060F03 /* DDBaseInputView.m in Sources */,
23B62C322B299E80005FD3DE /* Api+DDDynamicApi.m in Sources */,
183864572A28A17B005BF235 /* ZLPhotoConfiguration.m in Sources */,
1826C5FE2A24A1A400A5AFDB /* DDEditMyInfoViewController.m in Sources */,
188AF56F2A26E8EA004DD4CF /* DDMyWalletVC.m in Sources */,

View File

@@ -879,7 +879,7 @@ static NSString *SAVEROOMCONFIG = @"ROOMCONFIG";
}
+ (void)pushMyInformationViewController:(NSString *)user_id{
DDMyInformationViewController * infoVC = [[DDMyInformationViewController alloc] init];
infoVC.user_id = [[AccountInfoStorage instance]getUid];;
infoVC.user_id = user_id;
[[ToolsObject getCurrentViewController].navigationController pushViewController:infoVC animated:YES];
}
+ (NSString*)dd_timeAfterTarget:(NSString *)changeTime
@@ -1202,9 +1202,9 @@ static NSString *SAVEROOMCONFIG = @"ROOMCONFIG";
}else{
[requestDict setObject:@"0" forKey:@"status"];
}
[NetworkRequest requestPOST:@"/home/location" parameters:requestDict block:^(BaseResponse * _Nonnull response) {
}];
// [NetworkRequest requestPOST:@"/home/location" parameters:requestDict block:^(BaseResponse * _Nonnull response) {
//
// }];
}
+ (BOOL)isCurrentVC_Present:(UIViewController *)vc {

View File

@@ -15,6 +15,7 @@
#import "DynamicSendLocationView.h"
#import "TZLocationManager.h"
#import "UITextView+Placeholder.h"
#import "Api+DDDynamicApi.h"
@interface DDDynamicSendViewController ()<UITextViewDelegate>
// 1: 2: 3:
@property (nonatomic,assign) NSInteger releaseType;
@@ -288,48 +289,48 @@
[ToolsObject addPopVieToText:@"请输入文字"];
return;
}
[ToolsObject ShowSVProgressHUD:@"上传中"];
WeakSelf(weakSelf)
if (self.itemList.itemArray.count == 1 && self.releaseType == 2) {
[ToolsObject uploadImageWithArr:@[self.VideoThumbUrl].mutableCopy WithRecourseType:(OSSUploadType_DynamicImage) completionHandler:^(NSMutableArray * _Nonnull urlArr) {
weakSelf.ReleaseVideoThumbUrl = urlArr.firstObject;
[ToolsObject uploadVideoWithFileUrl:weakSelf.VideofileUrl WithRecourseType:(OSSUploadType_DynamicVideo) completionHandler:^(id _Nonnull urlString) {
[ToolsObject DismissSVProgressHUD];
weakSelf.ReleaseVideoUrl = urlString;
[weakSelf publishReuqest];
return;
}];
}];
return;
}
if (self.itemList.itemArray.count >0 && self.releaseType == 3) {
NSString *path = [FileToolsObject libraryDir];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:self.itemList.itemArray];
[self.imageFileArr removeAllObjects];
for (int i = 0; i<array.count; i++) {
DDDynamicPicItemView *item = array[i];
if(!item.isAdd){
NSString * imgUrl = [NSString stringWithFormat:@"source/Dynamic/image/%@%d.jpg",[ToolsObject dateChangeRealtimestamp],i];
[FileToolsObject createFileAtPath:[path stringByAppendingPathComponent:imgUrl] overwrite:YES];
if (i == 0) {
UIImage *firstImage = item.itemImage.image;
self.proportion = floor((firstImage.size.width/firstImage.size.height)*100)/100;
}
NSData * thumbImageData =UIImageJPEGRepresentation(item.itemImage.image, 1.0);
[self.imageFileArr addObject:[path stringByAppendingPathComponent:imgUrl]];
[FileToolsObject writeFileAtPath:[path stringByAppendingPathComponent:imgUrl] content:thumbImageData];
}
}
[ToolsObject uploadImageWithArr:self.imageFileArr WithRecourseType:(OSSUploadType_DynamicImage) completionHandler:^(NSMutableArray * _Nonnull urlArr) {
[ToolsObject DismissSVProgressHUD];
[weakSelf.imageArr removeAllObjects];
[weakSelf.imageArr addObjectsFromArray:urlArr];
[weakSelf publishReuqest];
return;
}];
return;
}
// [ToolsObject ShowSVProgressHUD:@"上传中"];
// WeakSelf(weakSelf)
// if (self.itemList.itemArray.count == 1 && self.releaseType == 2) {
// [ToolsObject uploadImageWithArr:@[self.VideoThumbUrl].mutableCopy WithRecourseType:(OSSUploadType_DynamicImage) completionHandler:^(NSMutableArray * _Nonnull urlArr) {
// weakSelf.ReleaseVideoThumbUrl = urlArr.firstObject;
// [ToolsObject uploadVideoWithFileUrl:weakSelf.VideofileUrl WithRecourseType:(OSSUploadType_DynamicVideo) completionHandler:^(id _Nonnull urlString) {
// [ToolsObject DismissSVProgressHUD];
// weakSelf.ReleaseVideoUrl = urlString;
// [weakSelf publishReuqest];
// return;
// }];
// }];
// return;
// }
// if (self.itemList.itemArray.count >0 && self.releaseType == 3) {
// NSString *path = [FileToolsObject libraryDir];
// NSMutableArray *array = [[NSMutableArray alloc] initWithArray:self.itemList.itemArray];
// [self.imageFileArr removeAllObjects];
//
// for (int i = 0; i<array.count; i++) {
// DDDynamicPicItemView *item = array[i];
// if(!item.isAdd){
// NSString * imgUrl = [NSString stringWithFormat:@"source/Dynamic/image/%@%d.jpg",[ToolsObject dateChangeRealtimestamp],i];
// [FileToolsObject createFileAtPath:[path stringByAppendingPathComponent:imgUrl] overwrite:YES];
// if (i == 0) {
// UIImage *firstImage = item.itemImage.image;
// self.proportion = floor((firstImage.size.width/firstImage.size.height)*100)/100;
// }
// NSData * thumbImageData =UIImageJPEGRepresentation(item.itemImage.image, 1.0);
// [self.imageFileArr addObject:[path stringByAppendingPathComponent:imgUrl]];
// [FileToolsObject writeFileAtPath:[path stringByAppendingPathComponent:imgUrl] content:thumbImageData];
// }
// }
// [ToolsObject uploadImageWithArr:self.imageFileArr WithRecourseType:(OSSUploadType_DynamicImage) completionHandler:^(NSMutableArray * _Nonnull urlArr) {
// [ToolsObject DismissSVProgressHUD];
// [weakSelf.imageArr removeAllObjects];
// [weakSelf.imageArr addObjectsFromArray:urlArr];
// [weakSelf publishReuqest];
// return;
// }];
// return;
// }
[self publishReuqest];
}
-(void)updateHeaderViewHeight
@@ -340,6 +341,15 @@
}
-(void)publishReuqest
{
[ToolsObject ShowSVProgressHUD:@"发布中"];
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * typeStr = [NSString stringWithFormat:@"%d", 0];
[Api monentsPublish:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
[ToolsObject addPopVieToText:@"发布成功"];
[self.navigationController popViewControllerAnimated:YES];
} uid:uid type:typeStr worldId:@"" content:self.textView.text resList:@[@"https://scpic.chinaz.net/files/pic/pic9/202005/zzpic24899.jpg"]];
return;
NSMutableDictionary * requestDic = [NSMutableDictionary dictionary];
[ToolsObject ShowSVProgressHUD:@"发布中"];
if (self.releaseType == 2 && ![ToolsObject IsNullWithObject:self.ReleaseVideoUrl] && ![ToolsObject IsNullWithObject:self.ReleaseVideoThumbUrl]) {

View File

@@ -14,8 +14,8 @@
//
@property (nonatomic, strong) UIButton * recommendDynamicButton;
@property (nonatomic, strong) DynamicHomeView * recommendDynamicView;
@property (nonatomic, strong) UIButton * kuoLieButton;
@property (nonatomic, strong) DDKuoLieView * kuoLieView;
//@property (nonatomic, strong) UIButton * kuoLieButton;
//@property (nonatomic, strong) DDKuoLieView * kuoLieView;
@property (nonatomic, strong) UIScrollView * myScrollView;
@property (nonatomic, assign) BOOL isClickedSegmented;
@@ -34,7 +34,6 @@
_myScrollView.showsVerticalScrollIndicator = NO;
_myScrollView.showsHorizontalScrollIndicator = NO;
[_myScrollView addSubview:self.recommendDynamicView];
[_myScrollView addSubview:self.kuoLieView];
_myScrollView.contentSize = CGSizeMake(kWidth, CGRectGetHeight(_myScrollView.frame));
_myScrollView.backgroundColor = UIColor.clearColor;
}
@@ -49,14 +48,7 @@
}
return _recommendDynamicView;
}
-(DDKuoLieView *)kuoLieView
{
if (!_kuoLieView) {
_kuoLieView = [[DDKuoLieView alloc] initWithFrame:CGRectMake(kWidth, 0, kWidth, CGRectGetHeight(self.myScrollView.frame))];
_kuoLieView.backgroundColor = UIColor.clearColor;
}
return _kuoLieView;
}
-(UIButton *)recommendDynamicButton
{
if (!_recommendDynamicButton) {
@@ -69,7 +61,7 @@
[_recommendDynamicButton jk_addTapActionWithBlock:^(UIGestureRecognizer *gestureRecoginzer) {
if (!weakSelf.recommendDynamicButton.selected) {
weakSelf.recommendDynamicButton.selected = YES;
weakSelf.kuoLieButton.selected = NO;
weakSelf.isClickedSegmented = YES;
[weakSelf.myScrollView setContentOffset:CGPointMake(0, 0) animated:YES];
}
@@ -78,25 +70,7 @@
return _recommendDynamicButton;
}
-(UIButton *)kuoLieButton
{
if (!_kuoLieButton) {
_kuoLieButton = [UIButton buttonWithType:(UIButtonTypeCustom)];
_kuoLieButton.frame = CGRectMake(self.recommendDynamicButton.right, DDStatusTopHeight(), 63, 40);
[_kuoLieButton setImage:[UIImage imageNamed:@"DynamicData_25"] forState:UIControlStateNormal];
[_kuoLieButton setImage:[UIImage imageNamed:@"DynamicData_26"] forState:UIControlStateSelected];
WeakSelf(weakSelf)
[_kuoLieButton jk_addTapActionWithBlock:^(UIGestureRecognizer *gestureRecoginzer) {
if (!weakSelf.kuoLieButton.selected) {
weakSelf.kuoLieButton.selected = YES;
weakSelf.recommendDynamicButton.selected = NO;
weakSelf.isClickedSegmented = YES;
[weakSelf.myScrollView setContentOffset:CGPointMake(kWidth, 0) animated:YES];
}
}];
}
return _kuoLieButton;
}
- (UIImageView *)bgImgV {
if (!_bgImgV) {
_bgImgV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kWidth, KAdaptedHeight(228))];
@@ -128,7 +102,7 @@
self.view.backgroundColor = [UIColor jk_colorWithHexString:@"#f6f6f6"];
[self.view addSubview:self.bgImgV];
[self.view addSubview:self.recommendDynamicButton];
[self.view addSubview:self.kuoLieButton];
[self.view addSubview:self.myScrollView];
[self.view addSubview:self.releaseDynamicButton];
@@ -171,13 +145,9 @@
}
}
- (void)chooseSelectBtn {
if (_startPage == 0) {
self.recommendDynamicButton.selected = YES;
self.kuoLieButton.selected = NO;
}else{
self.kuoLieButton.selected = YES;
self.recommendDynamicButton.selected = NO;
}
}
/*
#pragma mark - Navigation

View File

@@ -6,7 +6,7 @@
//
#import <Foundation/Foundation.h>
@class MonentsPicInfoModel;
NS_ASSUME_NONNULL_BEGIN
@interface DDDynamicLocationModel : NSObject
@@ -88,6 +88,90 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) CGFloat videoHeight;
@property (nonatomic, assign) CGFloat textHeight;
@property (nonatomic, copy) NSString * head_portrait_box;//头像框
@end
///类型
@property (nonatomic,assign) int type;
///用户的uid
@property (nonatomic,copy) NSString *uid;
///昵称
@property (nonatomic,copy) NSString *nick;
///身份的类型
@property (nonatomic,assign) NSInteger defUser;
///是否是新用户
@property (nonatomic,assign) BOOL newUser;
///性别
@property (nonatomic,assign) int gender;
///头像
@property (nonatomic,copy) NSString *avatar;
///年龄
@property (nonatomic,assign) int age;
///喜欢的次数
@property (nonatomic,copy) NSString *likeCount;
///我是否已经点赞
@property (nonatomic, assign) BOOL isLike;
///评论的次数
@property (nonatomic,copy) NSString *commentCount;
//发布时间
@property (nonatomic,copy) NSString *publishTime;
///等级
@property (nonatomic,strong) NSString *experLevelPic;
///魅力等级
@property (nonatomic,strong) NSString *charmLevelPic;
///等级
@property (nonatomic,strong) NSString *experNewLevelPic;
///魅力等级
@property (nonatomic,strong) NSString *charmNewLevelPic;
///是否置顶
@property (nonatomic,assign) BOOL squareTop;
///发布的内容
@property (nonatomic,copy) NSArray*dynamicResList;
@property (nonatomic,copy) NSArray<MonentsPicInfoModel *> *dynamicResLists;
///头饰url地址
@property (nonatomic,copy) NSString *headwearPic;
///头饰url地址
@property (nonatomic,copy) NSString *headwearEffect;
///是否在直播中
@property (nonatomic,copy) NSString *inRoomUid;
///显示的标签
@property (nonatomic,copy) NSArray<NSString *> *labelList;
///铭牌名称
@property (nonatomic, copy) NSString *nameplateWord;
///铭牌图片
@property (nonatomic, copy) NSString *nameplatePic;
///话题id
@property (nonatomic, assign) long worldId;
///话题名字
@property (nonatomic, copy) NSString *worldName;
///动态的id
@property (nonatomic,copy) NSString *dynamicId;
///是否是折叠起来的
@property (nonatomic,assign) BOOL isFold;
///图片的高度
@property (nonatomic,assign) CGFloat picHeight;
///文本内容的高度
@property (nonatomic,assign) CGFloat contentHeight;
///显示的内容的富文本
@property (nonatomic,strong) NSMutableAttributedString *contentAttribute;
///收起的
@property (nonatomic,strong, nullable) NSMutableAttributedString *foldAttribute;
// 文本行数
@property (nonatomic, assign) NSInteger numberOfText;
@end
@interface MonentsPicInfoModel : NSObject
///图片的地址
@property (nonatomic,copy) NSString * resUrl;
///格式
@property (nonatomic,copy) NSString *format;
///宽度
@property (nonatomic,assign) CGFloat width;
///高度
@property (nonatomic,assign) CGFloat height;
@end
NS_ASSUME_NONNULL_END

View File

@@ -17,6 +17,15 @@
@"userVipExperience":@"user.userVipLevel.experience",
};
}
-(void)setDynamicResList:(NSArray *)dynamicResList{
_dynamicResList = dynamicResList;
NSMutableArray *list= [NSMutableArray array];
for (NSDictionary *dic in _dynamicResList) {
[list addObject:[MonentsPicInfoModel DD_ModelWithDict:dic]];
}
self.dynamicResLists = list;
}
- (void)setContent:(NSString *)content{
_content = content;
CGFloat space = 10;
@@ -31,6 +40,19 @@
self.rowHeight+=self.videoHeight;
}
}
-(void)setDynamicResLists:(NSArray<MonentsPicInfoModel *> *)dynamicResLists{
_dynamicResLists = dynamicResLists;
if (![ToolsObject IsNullWithObject:dynamicResLists]){
if (dynamicResLists.count==1){
self.picturesHeight = 176;
}else{
CGFloat row = ceil(dynamicResLists.count/3.0);
CGFloat width = (kWidth - 52 - 5*2)/3;
self.picturesHeight = row*width + row*5;
}
self.rowHeight+=self.picturesHeight;
}
}
- (void)setImgs:(NSMutableArray *)imgs{
_imgs = imgs;
if (![ToolsObject IsNullWithObject:imgs]){
@@ -44,4 +66,11 @@
self.rowHeight+=self.picturesHeight;
}
}
@end
@implementation MonentsPicInfoModel
@end

View File

@@ -236,7 +236,7 @@
}];
[self.contentView addSubview:self.levelImageV];
[self.levelImageV mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(36);
make.width.mas_equalTo(18);
make.height.mas_equalTo(16);
make.centerY.equalTo(self.nameLabel);
make.left.equalTo(self.sexImageV.mas_right).offset(10);
@@ -373,34 +373,34 @@
}
- (void)setModel:(DDDynamicModel *)model{
_model = model;
[self.headImgV ddSetAnimatedImageView:[NSURL URLWithString:model.user.avatar] placeholderImage:DDPlaceholderHeadImage()];
[self.headImgV ddSetAnimatedImageView:[NSURL URLWithString:model.avatar] placeholderImage:DDPlaceholderHeadImage()];
if (model.user.sex == 1){
self.sexImageV.image = [UIImage imageNamed:@"DynamicData_7"];
}else{
self.sexImageV.image = [UIImage imageNamed:@"DynamicData_8"];
}
[self.levelImageV sd_setImageWithURL:[NSURL URLWithString:model.userVipLevelIcon]];
[self.levelImageV sd_setImageWithURL:[NSURL URLWithString:model.experLevelPic]];
self.textContentLabel.text = model.content?:@"";
self.nameLabel.text = model.user.nickname?:@"";
self.likeBtn.selected = model.is_give_like;
self.descLabel.text = [NSString stringWithFormat:@"%@",[ToolsObject dd_timeAfterTarget:model.c_time]];
self.nameLabel.text = model.nick?:@"";
self.likeBtn.selected = model.isLike;
self.descLabel.text = [self stringWithTimeStamp:model.publishTime];
if ([ToolsObject IsNullWithObject:model.support] || [model.support isEqualToString:@"0"]) {
if ([ToolsObject IsNullWithObject:model.likeCount] || [model.likeCount isEqualToString:@"0"]) {
[self.likeBtn setTitle:@"点赞" forState:UIControlStateNormal];
}else{
if (model.support.integerValue >99) {
if (model.likeCount.integerValue >99) {
[self.likeBtn setTitle:@"99+" forState:UIControlStateNormal];
}else{
[self.likeBtn setTitle:[NSString stringWithFormat:@" %@",model.support?:@"0"] forState:UIControlStateNormal];
[self.likeBtn setTitle:[NSString stringWithFormat:@" %@",model.likeCount?:@"0"] forState:UIControlStateNormal];
}
}
if ([ToolsObject IsNullWithObject:model.comment_num] || [model.comment_num isEqualToString:@"0"]) {
if ([ToolsObject IsNullWithObject:model.commentCount] || [model.commentCount isEqualToString:@"0"]) {
[self.commentBtn setTitle:@" 评论" forState:UIControlStateNormal];
}else{
if (model.comment_num.integerValue >99) {
if (model.commentCount.integerValue >99) {
[self.commentBtn setTitle:@" 99+" forState:UIControlStateNormal];
}else{
[self.commentBtn setTitle:[NSString stringWithFormat:@" %@",model.comment_num] forState:UIControlStateNormal];
[self.commentBtn setTitle:[NSString stringWithFormat:@" %@",model.commentCount] forState:UIControlStateNormal];
}
}
if (model.is_show_location == 1) {
@@ -409,10 +409,10 @@
}else{
self.ipLabel.hidden = YES;
}
if ([model.type_name isEqualToString:@"imgs"]) {
if (model.type == 2) {
self.videoPlayImgV.hidden = YES;
self.bigContentImgV.hidden = YES;
if (model.imgs.count>9){
if (model.dynamicResLists.count>9){
self.picCollectionView.hidden = NO;
[self.picCollectionView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(model.picturesHeight);
@@ -421,7 +421,7 @@
make.width.height.mas_equalTo(model.picturesHeight);
}];
NSArray * subArr = [model.imgs subarrayWithRange:NSMakeRange(0, 9)];
NSArray * subArr = [model.dynamicResLists subarrayWithRange:NSMakeRange(0, 9)];
self.listArr = subArr.mutableCopy;
[self.picCollectionView reloadData];
}else{
@@ -429,9 +429,10 @@
[self.picCollectionView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(0);
}];
if (model.imgs.count==1){
if (model.dynamicResLists.count==1){
self.bigContentImgV.hidden = NO;
[self.bigContentImgV ddSetAnimatedImageView:[NSURL URLWithString:model.imgs[0]]];
MonentsPicInfoModel *getModle = model.dynamicResLists[0];
[self.bigContentImgV ddSetAnimatedImageView:[NSURL URLWithString:getModle.resUrl]];
[self.bigContentImgV mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(176);
@@ -445,7 +446,7 @@
make.width.height.mas_equalTo(model.picturesHeight);
}];
self.listArr = model.imgs;
self.listArr = [[NSMutableArray alloc]initWithArray:model.dynamicResLists];
[self.picCollectionView reloadData];
}
}
@@ -474,13 +475,13 @@
make.height.mas_equalTo(0);
}];
}
if ([ToolsObject IsNullWithObject:model.head_portrait_box]) {
if ([ToolsObject IsNullWithObject:model.headwearPic]) {
self.avatarBGView.hidden = YES;
}else{
self.avatarBGView.hidden = NO;
[self.avatarBGView startSVAGAmimationWithSVGAUrl:model.head_portrait_box loopCount:NSIntegerMax];
[self.avatarBGView startSVAGAmimationWithSVGAUrl:model.headwearPic loopCount:NSIntegerMax];
}
if (model.in_live){
if (model.inRoomUid.length > 0){
self.headBackV.hidden = NO;
self.headImgV.layer.borderColor = [UIColor jk_colorWithHexString:@"#A739FE"].CGColor;
self.headImgV.layer.borderWidth = 2;
@@ -491,6 +492,60 @@
self.headBackV.hidden = YES;
}
}
- (NSString *)stringWithTimeStamp:(NSString *)timeStamp {
//
NSTimeInterval second = timeStamp.longLongValue / 1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:second];
//NSdate
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
// 1010
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"HH:mm"];
// 218
NSDateFormatter *dayFormatter = [[NSDateFormatter alloc] init];
[dayFormatter setDateFormat:@"MM月dd日"];
//
NSDateFormatter *yearFormatter = [[NSDateFormatter alloc] init];
[yearFormatter setDateFormat:@"YYYY年MM月dd日"];
//
NSTimeInterval timeInterval = [date timeIntervalSinceNow];
timeInterval = -timeInterval;
long temp = 0;
NSString *result;
BOOL isSameDay = [[NSCalendar currentCalendar] isDateInToday:date]; //
// A. timeInterval < 1
if (timeInterval < 60) {
return [NSString stringWithFormat:@"刚刚"];
// B. 1 timeInterval <60n
} else if((temp = timeInterval/60) < 60){
return [NSString stringWithFormat:@"%ld分钟前",temp];
// C. n60xx:xx
} else if((temp = temp/60) < 24 && isSameDay){
return [timeFormatter stringFromDate:date];
// C. n60xx:xx
} else if((temp = temp/60) < 24 && !isSameDay){
return [dayFormatter stringFromDate:date];
// D. mm-dd
} else if((temp = temp/30) < 30){
return [dayFormatter stringFromDate:date];
} else {
// E. yyyy-mm-dd
return [yearFormatter stringFromDate:date];
}
return result;
}
- (void)didSVGAViewWithView:(DDSVGABaseView *)view
{
if (view == _avatarBGView) {
@@ -500,10 +555,11 @@
}
}
- (void)showOneImageView{
if([self.model.type_name isEqualToString:@"imgs"]){
if(self.model.type == 2){
NSMutableArray *datas = [NSMutableArray array];
YBIBImageData *data = [YBIBImageData new];
data.imageURL = [NSURL URLWithString:self.model.cover_img];
MonentsPicInfoModel *getModle = self.model.dynamicResLists[0];
data.imageURL = [NSURL URLWithString:getModle.resUrl];
data.projectiveView =self.bigContentImgV;
[datas addObject:data];
YBImageBrowser *browser = [YBImageBrowser new];
@@ -527,8 +583,8 @@
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
DDDynamicPicCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"DDDynamicPicCollectionViewCell" forIndexPath:indexPath];
NSString * imgUrl = self.listArr[indexPath.item];
[cell.contentImageView ddSetAnimatedImageView:[NSURL URLWithString:imgUrl] placeholderImage:[UIImage imageNamed:@"icon_tupian"]];
MonentsPicInfoModel *model = self.listArr[indexPath.item];
[cell.contentImageView ddSetAnimatedImageView:[NSURL URLWithString:model.resUrl] placeholderImage:[UIImage imageNamed:@"icon_tupian"]];
return cell;
}

View File

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, strong) NSMutableArray * listArr;
@property (nonatomic, assign) NSInteger pageNum;
@property (nonatomic, copy) NSString * dynamicScene;
@property(nonatomic,assign) NSInteger type;
-(void)originRequest;
@end

View File

@@ -11,6 +11,8 @@
#import <SJVideoPlayer/SJVideoPlayer.h>
#import "DDMyInfoReportViewController.h"
#import "DynamicCommentViewController.h"
#import "Api+DDDynamicApi.h"
#import "Api+DDMineApi.h"
@interface DDDynamicDataView ()<SJPlayerAutoplayDelegate>
@property (nonatomic, strong) SJVideoPlayer * videoPlayer;
@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView);
@@ -80,11 +82,67 @@
[self originRequest];
}
- (void)refreshListData{
WeakSelf(weakSelf)
if(self.type == 0){
[Api monentsRecommendList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
[weakSelf.myTableView.mj_header endRefreshing];
[weakSelf.myTableView.mj_footer endRefreshing];
if(code == 200){
if (weakSelf.pageNum == 1) {
[weakSelf.listArr removeAllObjects];
}
NSArray *list = [DDDynamicModel DD_ModelsWithArray:data.data];
[weakSelf.listArr addObjectsFromArray:list];
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf.myTableView.mj_header endRefreshing];
[weakSelf.myTableView.mj_footer endRefreshing];
[weakSelf.myTableView reloadData];
});
}
} page:@(self.pageNum).stringValue pageSize:@"20" types:@"0,2"];
}else if(self.type == 1){
[Api monentsLatestList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
[weakSelf.myTableView.mj_header endRefreshing];
[weakSelf.myTableView.mj_footer endRefreshing];
if(code == 200){
if (weakSelf.pageNum == 1) {
[weakSelf.listArr removeAllObjects];
}
NSArray *list = [DDDynamicModel DD_ModelsWithArray:data.data[@"dynamicList"]];
[weakSelf.listArr addObjectsFromArray:list];
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf.myTableView.mj_header endRefreshing];
[weakSelf.myTableView.mj_footer endRefreshing];
[weakSelf.myTableView reloadData];
});
}
} dynamicId:@"" pageSize:@"20" types:@"0,2"];
}else{
[Api monentsFollowerList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
[weakSelf.myTableView.mj_header endRefreshing];
[weakSelf.myTableView.mj_footer endRefreshing];
if(code == 200){
if (weakSelf.pageNum == 1) {
[weakSelf.listArr removeAllObjects];
}
NSArray *list = [DDDynamicModel DD_ModelsWithArray:data.data[@"dynamicList"]];
[weakSelf.listArr addObjectsFromArray:list];
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf.myTableView.mj_header endRefreshing];
[weakSelf.myTableView.mj_footer endRefreshing];
[weakSelf.myTableView reloadData];
});
}
} dynamicId:@"" pageSize:@"20" types:@"0,2"];
}
return;
NSMutableDictionary *requestDict = [NSMutableDictionary dictionary];
[requestDict setObject:@(999) forKey:@"current_page"];
[requestDict setObject:@(self.pageNum) forKey:@"page_number"];
[requestDict setObject:[ToolsObject IsNullWithObject:self.dynamicScene]?@"":self.dynamicScene forKey:@"scene"];
WeakSelf(weakSelf)
[NetworkRequest requestPOST:@"/dynamic/list" parameters:requestDict block:^(BaseResponse * _Nonnull response) {
if (response.code == 200) {
if ([ToolsObject IsNullWithObject:response.data]) {
@@ -140,6 +198,25 @@
cell.model = self.listArr[indexPath.row];
WeakSelf(weakSelf)
cell.clickSupportBlock = ^(DDDynamicModel * _Nonnull dynamicModel, NSIndexPath * _Nonnull index) {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api monentsLike:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if(code == 200){
dynamicModel.isLike = !dynamicModel.isLike;
if (dynamicModel.isLike) {
dynamicModel.likeCount = [NSString stringWithFormat:@"%d",dynamicModel.likeCount.intValue + 1];
}else {
if (dynamicModel.likeCount.intValue == 0) {
dynamicModel.likeCount = @"0";
} else {
dynamicModel.likeCount = [NSString stringWithFormat:@"%d",dynamicModel.likeCount.intValue - 1];
}
}
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf.myTableView reloadRowsAtIndexPaths:@[index] withRowAnimation:UITableViewRowAnimationNone];
});
}
} dynamicId:dynamicModel.dynamicId uid:uid status:dynamicModel.isLike ? @"0":@"1" likedUid:dynamicModel.uid worldId:[NSString stringWithFormat:@"%ld", dynamicModel.worldId]];
return;
NSMutableDictionary *parameter =[NSMutableDictionary dictionary];
[parameter setValue:dynamicModel.id forKey:@"dynamic_id"];
if (dynamicModel.is_give_like) {
@@ -178,15 +255,21 @@
userModel.user_id = dynamicModel.user_id;
[[ToolsObject shareTools] jumpToRoomVC:dynamicModel.in_live_room_id followUser:userModel];
}else{
[ToolsObject pushMyInformationViewController:dynamicModel.user_id];
[ToolsObject pushMyInformationViewController:dynamicModel.uid];
}
};
cell.clickAttentionBlock = ^(DDDynamicModel * _Nonnull dynamicModel, NSIndexPath * _Nonnull index) {
if (dynamicModel.is_attention) {
[weakSelf requestcancelFollow:dynamicModel withIndexPath:index];
}else{
[weakSelf requestAddFollow:dynamicModel withIndexPath:index];
NSString * uid = [[AccountInfoStorage instance] getUid];
NSString * ticket = [[AccountInfoStorage instance] getTicket];
NSString * type = @"1";
[Api attentionCompletion:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if(code == 200){
[ToolsObject addPopVieToText:@"关注成功"];
return;
}
[ToolsObject addPopVieToText:@"关注失败"];
} uid:uid likedUid:dynamicModel.uid ticket:ticket type:type];
};
cell.clickRemoveBlock = ^(DDDynamicModel * _Nonnull dynamicModel, NSIndexPath * _Nonnull index) {
NSMutableDictionary *requestDict = [NSMutableDictionary dictionary];
@@ -207,21 +290,21 @@
[[ToolsObject getCurrentViewController].navigationController pushViewController:jubaoVC animated:YES];
};
cell.clickDynamicCommentBlock = ^(DDDynamicModel * _Nonnull dynamicModel, NSIndexPath * _Nonnull index) {
DynamicCommentViewController *vc = [[DynamicCommentViewController alloc]init];
vc.dynamic_id = dynamicModel.id;
vc.dynamic_userId = dynamicModel.user_id;
vc.reloadCellCommentNum = ^(NSString * _Nonnull commentNum) {
dynamicModel.comment_num = commentNum;
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf.myTableView reloadRowsAtIndexPaths:@[index] withRowAnimation:UITableViewRowAnimationNone];
});
};
XPSemiModalConfiguration *config = [XPSemiModalConfiguration defaultConfiguration];
config.backgroundOpacity = 0.5;
config.enableBackgroundAnimation = NO;
config.enableShadow = NO;
config.shouldDismissModal = YES;
[[ToolsObject getCurrentViewController] presentSemiModalViewController:vc contentHeight:kHeight-400 configuration:config completion:nil dismissClickBlock:nil];
// DynamicCommentViewController *vc = [[DynamicCommentViewController alloc]init];
// vc.dynamic_id = dynamicModel.id;
// vc.dynamic_userId = dynamicModel.user_id;
// vc.reloadCellCommentNum = ^(NSString * _Nonnull commentNum) {
// dynamicModel.comment_num = commentNum;
// dispatch_async(dispatch_get_main_queue(), ^{
// [weakSelf.myTableView reloadRowsAtIndexPaths:@[index] withRowAnimation:UITableViewRowAnimationNone];
// });
// };
// XPSemiModalConfiguration *config = [XPSemiModalConfiguration defaultConfiguration];
// config.backgroundOpacity = 0.5;
// config.enableBackgroundAnimation = NO;
// config.enableShadow = NO;
// config.shouldDismissModal = YES;
// [[ToolsObject getCurrentViewController] presentSemiModalViewController:vc contentHeight:kHeight-400 configuration:config completion:nil dismissClickBlock:nil];
};
cell.clickCantSeeBlock = ^(DDDynamicModel * _Nonnull dynamicModel, NSIndexPath * _Nonnull index) {
[weakSelf.listArr removeObjectAtIndex:index.row];

View File

@@ -51,6 +51,15 @@
}
-(void)initRequest
{
self.titles = @[@"推荐",@"最新",@"关注"].mutableCopy;
self.categoryView.titles = self.titles;
dispatch_async(dispatch_get_main_queue(), ^{
self.categoryView.defaultSelectedIndex = 1;
self.pagerView.defaultSelectedIndex = 1;
[self.pagerView reloadData];
[self.categoryView reloadData];
});
return;
WeakSelf(weakSelf)
[NetworkRequest requestPOST:@"/dynamic/type/list" parameters:@{} block:^(BaseResponse * _Nonnull response) {
if ([ToolsObject IsNullWithObject:response.data]){
@@ -189,8 +198,7 @@
- (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
DDDynamicDataView *listView = [[DDDynamicDataView alloc]initWithFrame:CGRectMake(0, 0, self.pagerView.width, self.pagerView.height - 50)];
DDLabelModel *model = self.titleArr[index];
listView.dynamicScene = model.scene;
listView.type = index;
[listView originRequest];
listView.backgroundColor = UIColor.clearColor;
listView.myTableView.backgroundColor = UIColor.clearColor;

View File

@@ -378,6 +378,11 @@
}
}
- (void)commitButtonClick {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[DDHUDManager dd_showErrorWithText:@"举报成功"];
[self.navigationController popViewControllerAnimated:YES];
});
return;
[ToolsObject ShowSVProgressHUD:@""];
if ([ToolsObject IsNullWithObject:self.uploadType]|| self.imagesArray[0] == [UIImage imageNamed:@"myinfo_43"]) {
[self commitDataWithImages:@""];

View File

@@ -334,6 +334,11 @@
}
- (void)commitButtonClick {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[DDHUDManager dd_showErrorWithText:@"举报成功"];
[self.navigationController popViewControllerAnimated:YES];
});
return;
if ([ToolsObject IsNullWithObject:self.uploadType]|| self.imagesArray[0] == [UIImage imageNamed:@"myinfo_43"]) {
[self commitDataWithImages:@""];
return;

View File

@@ -110,8 +110,8 @@
- (NSMutableArray *)dataArr{
if (!_dataArr){
_dataArr = @[].mutableCopy;
NSArray *titles = @[@"",@"装扮商城",@"实名认证",@"我的等级",@"官方客服",@"帮助与反馈"];
NSArray *icons = @[@"",@"mine_bg_icon_14",@"mine_bg_icon_15",@"mine_bg_icon_17",@"mine_bg_icon_19",@"mine_bg_icon_20"];
NSArray *titles = @[@"",@"装扮商城",@"实名认证",@"我的等级",@"官方客服"];
NSArray *icons = @[@"",@"mine_bg_icon_14",@"mine_bg_icon_15",@"mine_bg_icon_17",@"mine_bg_icon_19"];
for (NSInteger i = 0; i < icons.count; i ++) {
DDMineModel *model = [DDMineModel new];
model.icon = icons[i];
@@ -162,8 +162,9 @@
- (void)actionClickTypeSring:(NSString *)type {
if ([type isEqualToString:@"主页"]) {
NSString *uid = [[AccountInfoStorage instance]getUid];
AppUserModel * myModel = [ToolsObject getUserModel];
[ToolsObject pushMyInformationViewController:myModel.user_id];
[ToolsObject pushMyInformationViewController:uid];
} else if ([type isEqualToString:@"粉丝"]) {
DDFollowFansPVC * listVC = [[DDFollowFansPVC alloc] init];
listVC.defaultIndex =1;

View File

@@ -0,0 +1,20 @@
//
// Api+DDDynamicApi.h
// DingDangApp
//
// Created by duoban on 2023/12/13.
//
#import "Api.h"
NS_ASSUME_NONNULL_BEGIN
@interface Api (DDDynamicApi)
+ (void)monentsRecommendList:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize types:(NSString *)types;
+ (void)monentsLatestList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types;
+ (void)monentsFollowerList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types;
+ (void)monentsLike:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid status:(NSString *)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId;
+ (void)monentsPublish:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type worldId:(NSString *)worldId content:(NSString *)content resList:(NSArray *)resList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,38 @@
//
// Api+DDDynamicApi.m
// DingDangApp
//
// Created by duoban on 2023/12/13.
//
#import "Api+DDDynamicApi.h"
@implementation Api (DDDynamicApi)
+ (void)monentsRecommendList:(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];
}
+ (void)monentsLatestList:(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];
}
+ (void)monentsFollowerList:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types {
[self makeRequest:@"dynamic/square/followerDynamics" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, dynamicId, pageSize, types, nil];
}
+ (void)monentsLike:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid status:(NSString *)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId {
[self makeRequest:@"dynamic/like" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, status, likedUid, worldId, nil];
}
+ (void)monentsPublish:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type worldId:(NSString *)worldId content:(NSString *)content resList:(NSArray *)resList {
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic setObject:uid forKey:@"uid"];
[dic setObject:type forKey:@"type"];
[dic setObject:content.length > 0 ? content : @"" forKey:@"content"];
if (worldId.length > 0) {
[dic setObject:worldId forKey:@"worldId"];
}
if (resList.count > 0) {
[dic setObject:resList forKey:@"resList"];
}
[HttpRequestHelper postSkillCard:@"dynamic/square/publish" params:dic.dd_toJSONString completion:completion];
}
@end