123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- //
- // TradePublishManager.m
- // NIMDemo
- //
- // Created by Fenix Wang on 2017/7/2.
- // Copyright © 2017年 Netease. All rights reserved.
- //
- #import "TradePublishManager.h"
- #import "AFHTTPSessionManager.h"
- #import "User.h"
- #import "SVProgressHUD.h"
- #import "UIView+Toast.h"
- #import "HttpRequest.h"
- #import "TradeModifyImageView.h"
- @interface TradePublishManager()
- @property (nonatomic, strong) NSString *tradeId;
- @property (nonatomic, strong) NSString *msg;
- @property (nonatomic, strong) NSMutableArray *picArr;
- @property (nonatomic, strong) NSMutableArray *picDataArr;
- @property (nonatomic, assign) int uploadIndex;
- @property (nonatomic, assign) int priority;
- @property (nonatomic, assign) int priorityType;
- @property (nonatomic, assign) int tradeType;
- @property (nonatomic, assign) BOOL isEdit;
- @end
- @implementation TradePublishManager
- - (void)tradePublish:(NSString *)msg
- picArr:(NSMutableArray *)picArr
- priority:(int)priority
- priorityType:(int)priorityType
- tradeType:(int)tradeType{
-
- self.msg = msg;
- self.picArr = picArr;
- self.priority = priority;
- self.priorityType = priorityType;
- self.tradeType = tradeType;
-
- self.picDataArr = [[NSMutableArray alloc] init];
- self.uploadIndex = 0;
- self.isEdit = NO;
-
- [SVProgressHUD show];
-
- [self uploadPicture];
- }
- - (void)uploadPicture{
-
- if(_uploadIndex >= _picArr.count)
- {
- if(_isEdit)
- [self edit];
- else
- [self publish];
- return;
- }
-
- UIImage *image = nil;
- if(_isEdit)
- {
- TradeModifyImageView *modifyImg = [_picArr objectAtIndex:_uploadIndex];
- if(modifyImg.picId)
- {
- if(_uploadIndex >= _picDataArr.count)
- {
- [_picDataArr addObject:modifyImg.picId];
- }
- else
- {
- [_picDataArr setObject:modifyImg.picId atIndexedSubscript:_uploadIndex];
- }
-
- _uploadIndex++;
- [self uploadPicture];
- return;
- }
- else
- {
- image = modifyImg.image;
- }
- }
- else
- {
- image = [_picArr objectAtIndex:_uploadIndex];
- }
-
- NSString *userId = [NSString stringWithFormat:@"%d", [User sharedInfo].userId];
- NSDictionary *dict = @{@"user_id":userId};
-
- NSString *urlString = @"http://whosay.dashgame.com/index.php?m=who&c=trade&a=upload";
-
- AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- manager.responseSerializer = [AFJSONResponseSerializer serializer];
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/html", nil];
-
- [manager POST:urlString parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
-
- NSData *data = UIImageJPEGRepresentation(image, 1);
- [formData appendPartWithFileData:data name:@"upload" fileName:[NSString stringWithFormat:@"image_%d.jpg", _uploadIndex] mimeType:@"image/jpg"];
-
- } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- //NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
- //NSLog(@"请求成功,服务器返回的信息%@", string);
-
- NSLog(@"请求成功,服务器返回的信息%@", responseObject);
-
- int code = [[responseObject objectForKey:@"c"] intValue];
- if(code == 0)
- {
- NSDictionary *data = [responseObject objectForKey:@"d"];
- NSString *aid = [data objectForKey:@"aid"];
-
- if(_uploadIndex >= _picDataArr.count)
- {
- [_picDataArr addObject:aid];
- }
- else
- {
- [_picDataArr setObject:aid atIndexedSubscript:_uploadIndex];
- }
-
- _uploadIndex++;
- [self uploadPicture];
- }
- else{
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:[responseObject objectForKey:@"d"] delegate:self cancelButtonTitle:@"放弃" otherButtonTitles:@"重试", nil];
- [alert show];
- }
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- NSLog(@"请求失败,服务器返回的错误信息%@",error);
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"上传图片失败" delegate:self cancelButtonTitle:@"放弃" otherButtonTitles:@"重试", nil];
- [alert show];
- }];
- }
- - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
- switch (buttonIndex) {
- // case 0:
- // [self.navigationController popViewControllerAnimated:YES];
- // break;
- case 1:
- [self uploadPicture];
- break;
- default:
- break;
- }
- }
- - (void)publish{
-
- NSString *sendMsg = _msg ? _msg : @"";
-
-
- [[HttpRequest shared] tradePublish:sendMsg picArr:_picDataArr type:_tradeType priority:_priority priorityType:_priorityType success:^{
-
- [SVProgressHUD dismiss];
- if(_inputView)
- {
- [_inputView.superview makeToast:@"发布成功" duration:2.0 position:CSToastPositionCenter];
- [_inputView endEditing:YES];
- [_inputView unselectedTabBarItem];
- [_inputView.giftContainer tradePublished];
- }
-
- if ([_delegate respondsToSelector:@selector(tradePublishResult:)]){
- [_delegate tradePublishResult:YES];
- }
- } failure:^{
-
- [SVProgressHUD dismiss];
- if(_inputView)
- {
- [_inputView.superview makeToast:@"发布失败" duration:2.0 position:CSToastPositionCenter];
- }
-
- if ([_delegate respondsToSelector:@selector(tradePublishResult:)]){
- [_delegate tradePublishResult:NO];
- }
- }];
- }
- //edit
- - (void)tradeEdit:(NSString *_Nullable)tradeId
- picArr:(NSMutableArray *_Nullable)picArr
- priority:(int)priority{
-
- self.tradeId = tradeId;
- self.msg = nil;
- self.picArr = picArr;
- self.priority = priority;
-
- self.picDataArr = [[NSMutableArray alloc] init];
- self.uploadIndex = 0;
- self.isEdit = YES;
-
- [SVProgressHUD show];
-
- [self uploadPicture];
-
- }
- - (void)edit{
-
- [[HttpRequest shared] tradeEdit:_tradeId msg:nil picArr:_picDataArr priority:_priority success:^(NSString * _Nullable tradeId, NSMutableArray * _Nullable pics, NSMutableArray * _Nullable thumbs, NSMutableArray * _Nullable picIds, int priority) {
-
- if ([_delegate respondsToSelector:@selector(tradeEditResult:tradeData:)]){
-
- TradeData *tradeData = [[TradeData alloc] init];
- tradeData.tradeId = tradeId;
- tradeData.picArr = pics;
- tradeData.thumbArr = thumbs;
- tradeData.picIdArr = picIds;
- tradeData.priority = priority;
-
- [SVProgressHUD dismiss];
-
- if ([_delegate respondsToSelector:@selector(tradeEditResult:tradeData:)]){
- [_delegate tradeEditResult:YES tradeData:tradeData];
- }
- }
-
- } failure:^{
- [SVProgressHUD dismiss];
- if ([_delegate respondsToSelector:@selector(tradeEditResult:tradeData:)]){
- [_delegate tradeEditResult:NO tradeData:nil];
- }
- }];
-
- }
- @end
|