123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- //
- // AllCommentViewModel.m
- // FirstLink
- //
- // Created by jack on 15/6/24.
- // Copyright (c) 2015年 FirstLink. All rights reserved.
- // 所有评论
- #import "AllCommentViewModel.h"
- @implementation AllCommentViewModel
- - (instancetype)init
- {
- if (self = [super init]) {
- _dataArray = [NSMutableArray array];
- _totalCount = 0;
- }
- return self;
- }
- - (void)requestForInitialWithSuccess:(void (^)(MSGHeader *))success failure:(void (^)(MSGHeader *, NSError *))failure
- {
- NSString *itemJsonString = [FLRequestHelper JSONStringWithKeys:@[@"item_id", @"seller_id", @"start_row", @"page_size"] values:@[self.itemID, self.sellerID, @"0", @"20"]];
-
- WeakSelf(weakSelf);
- [self requestCommonWithJsonString:itemJsonString success:^(MSGHeader *header, NSArray *array) {
- [weakSelf.dataArray removeAllObjects];
- if (array) [weakSelf.dataArray addObjectsFromArray:array];
- success(header);
- } failure:^(MSGHeader *header, NSError *error) {
- failure(header, error);
- }];
- }
- - (void)requestForMoreWithSuccess:(void (^)(MSGHeader *))success failure:(void (^)(MSGHeader *, NSError *))failure
- {
- NSString *startRow = [NSString stringWithFormat:@"%lu", (unsigned long)self.dataArray.count];
- NSString *itemJsonString = [FLRequestHelper JSONStringWithKeys:@[@"item_id", @"seller_id", @"start_row", @"page_size"] values:@[self.itemID, self.sellerID, startRow, @"20"]];
- WeakSelf(weakSelf);
-
- [self requestCommonWithJsonString:itemJsonString success:^(MSGHeader *header, NSArray *array) {
- if (array) {
- [weakSelf.dataArray addObjectsFromArray:array];
- success(header);
- }
- } failure:^(MSGHeader *header, NSError *error) {
- failure(header, error);
- }];
- }
- - (void)requestCommonWithJsonString:(NSString *)jsonString success:(void (^)(MSGHeader *, NSArray *))success failure:(void (^)(MSGHeader *, NSError *))failure
- {
- NSDictionary *dict = [self getCommonParaWithKey:@"item_comment_json" forValue:jsonString];
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/item_comment/find_item_comments.json", [[FKServerUtil sharedInstance] apiServer]];
-
- WeakSelf(weakSelf);
- [[FLDataCenter sharedDataCenter] POST:urlString parameters:dict success:^(MSGHeader *header, id responseObject) {
- if (header.code.intValue == RESPONSE_MSG_NORMAL) {
- NSArray *dataArray = [weakSelf parserDataWithDict:responseObject];
- success(header, dataArray);
- }
- } failure:^(MSGHeader *header, NSError *error) {
- failure(header, error);
- }];
- }
- - (NSArray *)parserDataWithDict:(NSDictionary *)dict
- {
- NSMutableArray *arrayM = nil;
- if ([dict[@"data"][@"list"] isKindOfClass:[NSArray class]]) {
- NSArray *dataArray = dict[@"data"][@"list"];
- arrayM = [NSMutableArray arrayWithCapacity:dataArray.count];
- for (int i = 0; i < dataArray.count; i++) {
- if (![dataArray[i] isKindOfClass:[NSDictionary class]]) continue;
- CommentItem *item = [[CommentItem alloc]init];
- [item mts_setValuesForKeysWithDictionary:dataArray[i]];
- [arrayM addObject:item];
- }
- }
- if ([dict[@"data"][@"pager"] isKindOfClass:[NSDictionary class]]) {
- NSDictionary *dictionry = dict[@"data"][@"pager"];
- if ([dictionry[@"total"] isKindOfClass:[NSNumber class]]) {
- _totalCount = (NSInteger)[dictionry[@"total"] integerValue];
- }
- }
- return arrayM;
- }
- - (void)saveCommentText:(NSString *)text atRow:(NSInteger)row withSuccess:(void (^)(MSGHeader *))success failure:(void (^)(MSGHeader *, NSError *))failure
- {
- if (text.length == 0 || text.length > 128) return;
-
- CommentItem *item = nil;
- if (self.defaultCommentItem) {
- item = self.defaultCommentItem;
- }else if (row < self.dataArray.count && row >= 0){
- item = self.dataArray[row];
- }
- if ([item.buyerID isKindOfClass:[NSString class]] && item.buyerID.length > 0) {
- NSString *itemJsonString = [self commentItemJsonForReplyBuyerID:item.buyerID text:text];
- NSDictionary *para = [self getCommonParaWithKey:@"item_comment_json" forValue:itemJsonString];
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/item_comment/create_item_comment.json", [[FKServerUtil sharedInstance] apiServer]];
- [[FLDataCenter sharedDataCenter] POST:urlString parameters:para success:^(MSGHeader *header, id responseObject) {
- if (header.code.intValue == RESPONSE_MSG_NORMAL) {
- success(header);
- }
- } failure:^(MSGHeader *header, NSError *error) {
- failure(header, error);
- }];
- }
- }
- - (void)removeCommentAtRow:(NSInteger)row withSuccess:(void (^)(MSGHeader *))success failure:(void (^)(MSGHeader *, NSError *))failure
- {
- if (row > self.dataArray.count - 1) NSAssert(row < self.dataArray.count, @"comment row out array count");
- CommentItem *item = self.dataArray[row];
-
- if (item) {
- NSString *itemJsonString = [FLRequestHelper JSONStringWithKeys:@[@"id", @"item_id", @"seller_id"] values:@[item.commentID, item.itemID, item.sellerID]];
- NSDictionary *para = [self getCommonParaWithKey:@"item_comment_json" forValue:itemJsonString];
- NSString *urlString = [NSString stringWithFormat:@"%@/link-site/api/item_comment/remove_item_comment.json", [[FKServerUtil sharedInstance] apiServer]];
-
- [[FLDataCenter sharedDataCenter] POST:urlString parameters:para success:^(MSGHeader *header, id responseObject) {
- success(header);
- } failure:^(MSGHeader *header, NSError *error) {
- failure(header, error);
- }];
- }
- }
- // 是否是当前用户的评论
- - (BOOL)isUserCommentAtRow:(NSInteger)row
- {
- if (row > self.dataArray.count - 1) NSAssert(row < self.dataArray.count, @"comment row out array count");
- CommentItem *item = self.dataArray[row];
- if ([item.buyerID isEqualToString:[FKUserManager sharedManager].user.userID]) return YES;
- return NO;
- }
- - (NSString *)getCommentPlaceHolderWithRow:(NSInteger)row{
- if (self.defaultCommentItem) {
- return [NSString stringWithFormat:@"回复 %@", self.defaultCommentItem.buyerNickName];
- }
- if (row >= 0 && row < self.dataArray.count && ![self isUserCommentAtRow:row]) {
- CommentItem *item = self.dataArray[row];
- return [NSString stringWithFormat:@"回复 %@", item.buyerNickName];
- }
- return @"";
- }
- - (NSString *)commentItemJsonForReplyBuyerID:(NSString *)ReplyBuyerID text:(NSString *)text
- {
- NSString *itemJsonString = [FLRequestHelper JSONStringWithKeys:@[@"item_id", @"seller_id", @"reply_to_user_id",@"content"] values:@[self.itemID, self.sellerID, ReplyBuyerID, text]];
- return itemJsonString;
- }
- - (NSDictionary *)getCommonParaWithKey:(NSString *)key forValue:(id)value
- {
- NSMutableDictionary *para = [NSMutableDictionary dictionary];
- [para setValue:value forKey:key];
- [para addEntriesFromDictionary:[FLRequestHelper commonParamater]];
- return para;
- }
- @end
|