|
//
// ImageListViewModel.m
// ThePaperHD
//
// Created by scar1900 on 15/6/30.
// Copyright (c) 2015年 scar1900. All rights reserved.
//
#import "ImageListViewModel.h"
#import "AsyncImageScrollView.h"
#define getImageSetTag 100
#define getCommentInfoTag 101
#define getAskInfoTag 102
#define COLLECTTAG 1002
#define CANCELCOLLECTTAG 1003
@interface ImageListViewModel()<RemoteDelegate>
@property(nonatomic, strong)contentObjectBO *contentBO;
@end
@implementation ImageListViewModel
@synthesize nodeID;
@synthesize contentBO = _contentBO;
@synthesize delegate;
- (instancetype)init {
self = [super init];
if (self) {
}
return self;
}
#pragma mark - set and get method
- (void)setContentBO:(contentObjectBO *)contentData{
if (!contentData) {
TPLOG(@"返回数据有误!");
return;
}
NSMutableArray* contentImageList = [NSMutableArray array];
_contentBO = contentData;
NSArray *images = contentData.images;
[images enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
imageObjectBO *imageBO = setJsonDicToDataModel(obj, [imageObjectBO class]);
[contentImageList addObject:imageBO];
}];
if ([self.delegate respondsToSelector:@selector(returnImageBOList:cotentBO:)]) {
[self.delegate returnImageBOList:contentImageList cotentBO:contentData];
}
}
#pragma mark - public method && private method
- (void)remoteAction {
NSDictionary *dic = @{@"c":self.nodeID};
[Remote doJsonAction:getImageSetTag
requestUrl:getImageSetURL
parameter:dic
delegate:self];
[Remote doJsonAction:getCommentInfoTag
requestUrl:contentCommentURL
parameter:dic
delegate:self];
[Remote doJsonAction:getAskInfoTag
requestUrl:contentAskURL
parameter:dic
delegate:self];
}
- (void)saveImage:(AsyncImageScrollView*)asyImageView {
if (!asyImageView.gifData) {
if (!asyImageView.imageView.image) {
ShowTextMessage(@"图片尚未下载完成");
return;
}
UIImageWriteToSavedPhotosAlbum(asyImageView.imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}else {
UIImage *gifImage = [UIImage imageWithData:asyImageView.gifData];
if (!gifImage) {
ShowTextMessage(@"图片尚未下载完成");
return;
}
UIImageWriteToSavedPhotosAlbum(gifImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}
}
- (void)collectContent{
if (!self.contentBO) {
return;
}
NSDictionary *dic = @{@"cids":self.contentBO.contId};
[Remote doJsonAction:COLLECTTAG
requestUrl:addFavoriteURL
parameter:dic
delegate:self];
}
- (void)cancelCollect {
if (!self.contentBO) {
return;
}
NSDictionary *dic = @{@"cids":self.contentBO.contId};
[Remote doJsonAction:CANCELCOLLECTTAG
requestUrl:deleteFavoriteURL
parameter:dic
delegate:self];
}
#pragma mark - remote delegate
- (void)startWaitCursor:(int)actionTag {
}
- (void)stopWaitCursor:(int)actionTag {
}
- (void)remoteResponsSuccess:(int)actionTag withResponsData:(id)responsData {
if (actionTag == getImageSetTag) { //主数据源
NSArray *hotImages = responsData[@"recommendConts"];
NSMutableArray *hotImageList = [NSMutableArray array];
[hotImages enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
listContObjectVO *listBO = setJsonDicToDataModel(obj, [listContObjectVO class]);
[hotImageList addObject:listBO];
}];
if ([self.delegate respondsToSelector:@selector(returnHotImageList:)]) {
[self.delegate returnHotImageList:hotImageList];
}
contentObjectBO* content = setJsonDicToDataModel(responsData[@"content"], [contentObjectBO class]);
self.contentBO = content;
}else if (actionTag == getCommentInfoTag) {//评论
NSMutableArray* commentList = [NSMutableArray array];
NSMutableArray *hotList = [NSMutableArray array];
NSArray *list = responsData[@"commentList"];
NSArray *hotDicList = responsData[@"hotList"];
[list enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) {
commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]);
commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO);
[commentList addObject:commentBO];
}];
[hotDicList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]);
commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO);
[hotList addObject:commentBO];
}];
NSMutableArray *commentDataList = [NSMutableArray array];
if (hotList.count > 0) {
[commentDataList addObject:hotList];
}
[commentDataList addObject:commentList];
if ([self.delegate respondsToSelector:@selector(returnCommentList:nodeId:nextUrl:commentTotalRecord:)]) {
NSMutableArray *array = [NSMutableArray array];
// if (isPad) {
// array = [NSMutableArray arrayWithArray:commentList];
// }else {
array = [NSMutableArray arrayWithArray:commentDataList];
// }
[self.delegate returnCommentList:array
nodeId:self.nodeID
nextUrl:responsData[@"nextUrl"]
commentTotalRecord:[responsData[@"recordTotal"] integerValue]];
}
}else if (actionTag == getAskInfoTag) {//热追问
NSMutableDictionary *qaDataDic = [NSMutableDictionary dictionary];
NSArray *hotQaList = responsData[@"hotQaList"];
NSMutableArray *hotQaArray = [NSMutableArray array];
[hotQaList enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) {
commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]);
commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO);
[hotQaArray addObject:commentBO];
}];
[qaDataDic setValue:hotQaArray forKey:@"hotQaList"];
NSArray *qaTempList = responsData[@"qaList"];
NSMutableArray *qaArray = [NSMutableArray array];
[qaTempList enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) {
commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]);
commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO);
[qaArray addObject:commentBO];
}];
[qaDataDic setValue:qaArray forKey:@"qaList"];
if ([self.delegate respondsToSelector:@selector(returnHotAskDic:nodeId:nextUrl:askTotalRecord:)]) {
[self.delegate returnHotAskDic:qaDataDic
nodeId:self.nodeID
nextUrl:responsData[@"nextUrl"]
askTotalRecord:[responsData[@"qaNum"] integerValue]];
}
}else if (actionTag == COLLECTTAG) {
ShowMessage(@"收藏成功", YES);
if ([self.delegate respondsToSelector:@selector(collectResult:)]) {
[self.delegate collectResult:YES];
}
}else if (actionTag == CANCELCOLLECTTAG) {
ShowMessage(@"取消收藏", YES);
if ([self.delegate respondsToSelector:@selector(collectResult:)]) {
[self.delegate collectResult:NO];
}
}
}
- (void)remoteResponsFailed:(int)actionTag withMessage:(NSString *)message resultCode:(NSString *)code {
if ([code intValue] == 5) {
if ([self.delegate respondsToSelector:@selector(contentHaveOffline)]) {
[self.delegate contentHaveOffline];
}
}else {
BOOL isTimeOut = NO;
//【需求】无网络处理优化(重新加载打底图(bug:5953)
if ([message isEqualToString:noNetworkMessage] || [message isEqualToString:@"请求超时,请稍后重试!"]) {
isTimeOut = YES;
}else {
ShowTextMessage(message);
}
if ([self.delegate respondsToSelector:@selector(remoteFail:)]) {
[self.delegate remoteFail:isTimeOut];
}
}
}
- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
{
NSString *msg = nil ;
if(error != NULL){
msg = @"保存图片失败" ;
}else{
msg = @"已保存至相册" ;
}
ShowTextMessage(msg);
}
@end
|