| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449 |
- //
- // AppendEvaluateVC.m
- // yunbaolive
- //
- // Created by ybRRR on 2020/3/16.
- // Copyright © 2020 cat. All rights reserved.
- //
- #import "AppendEvaluateVC.h"
- #import "TZImagePickerController.h"
- #import <Qiniu/QiniuSDK.h>
- #import "YBStorageObj.h"
- @interface AppendEvaluateVC ()<TZImagePickerControllerDelegate>
- {
- UIScrollView *_backScroll;
- MyTextView *evaluateText;
- UIView *_photoView;
- CGFloat imgWidth;
- NSMutableArray *imageArray;
- UIButton *imageBtn;
- UIButton *videoBtn;
- UIButton *subVideoBtn;
- NSString *videoPath;
- UIImage *videoCoverImage;
- NSString *videoCorverStr;
- NSString *videoHerfStr;
- NSString *picThumbsStr;
- NSMutableArray *imageUrlArray;
- }
- @end
- @implementation AppendEvaluateVC
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = Normal_BackColor;
- self.titleL.text = YZMsg(@"发表追评");
- self.rightBtn.hidden = NO;
- [self.rightBtn setTitle:YZMsg(@"发布") forState:0];
- [self.rightBtn setTitleColor:Pink_Cor forState:0];
- imgWidth = (_window_width - 75)/4;
- imageArray = [NSMutableArray array];
- picThumbsStr = @"";
- videoHerfStr = @"";
- videoCorverStr =@"";
- videoPath = @"";
-
- [self createUI];
- }
- -(void)createUI{
- _backScroll = [[UIScrollView alloc]init];
- _backScroll.frame = CGRectMake(0, 64+statusbarHeight, _window_width, _window_height);
- _backScroll.backgroundColor = Normal_SubColor;
- [self.view addSubview:_backScroll];
-
- UIImageView *headImg = [[UIImageView alloc]init];
- headImg.frame = CGRectMake(15, 10, 60, 60);
- headImg.layer.cornerRadius = 5;
- headImg.layer.masksToBounds = YES;
- headImg.contentMode = UIViewContentModeScaleAspectFill;
- [headImg sd_setImageWithURL:[NSURL URLWithString:self.model.spec_thumb]];
- [_backScroll addSubview:headImg];
-
- UILabel *goodsname = [[UILabel alloc]init];
- goodsname.frame = CGRectMake(headImg.right+10, headImg.top+10, 200, 20);
- goodsname.font = [UIFont systemFontOfSize:14];
- goodsname.textColor = [UIColor whiteColor];
- goodsname.text = self.model.goods_name;
- [_backScroll addSubview:goodsname];
-
- UILabel *specname = [[UILabel alloc]init];
- specname.frame = CGRectMake(headImg.right+10, goodsname.bottom+5, 200, 20);
- specname.font = [UIFont systemFontOfSize:13];
- specname.textColor = Normal_TextColor;
- specname.text =[NSString stringWithFormat:@"%@ x%@",self.model.spec_name,self.model.nums];
- [_backScroll addSubview:specname];
- [PublicObj lineViewWithFrame:CGRectMake(0, headImg.bottom+15, _window_width, 1) andColor:Line_Cor andView:_backScroll];
-
- evaluateText = [[MyTextView alloc]init];
- evaluateText.frame = CGRectMake(10, headImg.bottom+30, _window_width-20, 125);
- evaluateText.placeholderColor = Normal_TextColor;
- evaluateText.placeholder =YZMsg(@"已经用了一段时间了,有更多宝贝使用心得?分享给想买的他们吧");
- evaluateText.font = [UIFont systemFontOfSize:14];
- evaluateText.backgroundColor = Normal_SubColor;
- evaluateText.textColor = [UIColor whiteColor];
- [_backScroll addSubview:evaluateText];
-
- _photoView = [[UIView alloc]init];
- _photoView.frame = CGRectMake(0, evaluateText.bottom, _window_width, imgWidth+10);
- [_backScroll addSubview:_photoView];
- NSArray *arr = @[@"添加图片",@"添加视频"];
- NSArray *titlearr = @[YZMsg(@"添加图片"),YZMsg(@"添加视频")];
- imageBtn = [UIButton buttonWithType:0];
- imageBtn.frame = CGRectMake(15,0, imgWidth, imgWidth);
- CAShapeLayer *border = [CAShapeLayer layer];
- //虚线的颜色
- border.strokeColor = Normal_TextColor.CGColor;
- //填充的颜色
- border.fillColor = [UIColor clearColor].CGColor;
- //设置路径
- border.path = [UIBezierPath bezierPathWithRect:imageBtn.bounds].CGPath;
- border.frame = imageBtn.bounds;
- //虚线的宽度
- border.lineWidth = 1.f;
- //虚线的间隔
- border.lineDashPattern = @[@4, @2];
- [imageBtn.layer addSublayer:border];
-
- [imageBtn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"evaluate%@",arr[0]]] forState:0];
- [imageBtn setTitle:titlearr[0] forState:0];
- [imageBtn setTitleColor:Normal_TextColor forState:0];
- imageBtn.titleLabel.font = [UIFont systemFontOfSize:10];
- imageBtn = [PublicObj setUpImgDownText:imageBtn];
- imageBtn.tag = 1000;
- [imageBtn addTarget:self action:@selector(imageBtnClick:) forControlEvents:UIControlEventTouchUpInside];
- [_photoView addSubview:imageBtn];
-
- videoBtn = [UIButton buttonWithType:0];
- videoBtn.frame = CGRectMake(15+(1%4)*(imgWidth + 15),0, imgWidth, imgWidth);
- CAShapeLayer *border2 = [CAShapeLayer layer];
- //虚线的颜色
- border2.strokeColor = Normal_TextColor.CGColor;
- //填充的颜色
- border2.fillColor = [UIColor clearColor].CGColor;
- //设置路径
- border2.path = [UIBezierPath bezierPathWithRect:videoBtn.bounds].CGPath;
- border2.frame = videoBtn.bounds;
- //虚线的宽度
- border2.lineWidth = 1.f;
- //虚线的间隔
- border2.lineDashPattern = @[@4, @2];
- [videoBtn.layer addSublayer:border2];
-
- [videoBtn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"evaluate%@",arr[1]]] forState:0];
- [videoBtn setTitle:titlearr[1] forState:0];
- [videoBtn setTitleColor:Normal_TextColor forState:0];
- videoBtn.titleLabel.font = [UIFont systemFontOfSize:10];
- videoBtn = [PublicObj setUpImgDownText:videoBtn];
- videoBtn.tag = 1001;
- [videoBtn addTarget:self action:@selector(imageBtnClick:) forControlEvents:UIControlEventTouchUpInside];
- [_photoView addSubview:videoBtn];
-
- _backScroll.size = CGSizeMake(_window_width, _photoView.bottom+10);
- }
- -(void)imageBtnClick:(UIButton *)sender
- {
- if (sender.tag == 1000) {
- TZImagePickerController *imagePC = [[TZImagePickerController alloc]initWithMaxImagesCount:5-imageArray.count delegate:self];
- imagePC.preferredLanguage = [lagType isEqual:ZH_CN] ? @"zh-Hans":@"en";
- imagePC.modalPresentationStyle = 0;
- imagePC.showSelectBtn = YES;
- imagePC.allowCrop = NO;
- imagePC.allowPickingOriginalPhoto = NO;
- imagePC.oKButtonTitleColorNormal = Pink_Cor;
- imagePC.allowTakePicture = YES;
- imagePC.allowTakeVideo = NO;
- imagePC.allowPickingVideo = NO;
- imagePC.allowPickingMultipleVideo = NO;
- // imagePC.takePictureImageName = @"ybtakePicture80";
- [[[YBBaseAppDelegate sharedAppDelegate] topViewController]presentViewController:imagePC animated:YES completion:nil];
- }else if (sender.tag == 1001){
- TZImagePickerController *imagePC = [[TZImagePickerController alloc]initWithMaxImagesCount:1 delegate:self];
- imagePC.preferredLanguage = [lagType isEqual:ZH_CN] ? @"zh-Hans":@"en";
- imagePC.modalPresentationStyle = 0;
- imagePC.showSelectBtn = NO;
- imagePC.allowCrop = NO;
- imagePC.allowPickingOriginalPhoto = NO;
- imagePC.oKButtonTitleColorNormal = Pink_Cor;
- imagePC.allowPickingImage = NO;
- imagePC.allowTakePicture = NO;
- imagePC.allowTakeVideo = YES;
- imagePC.allowPickingVideo = YES;
- imagePC.allowPickingMultipleVideo = NO;
- imagePC.videoMaximumDuration = live_MAX_RECORD_TIME;//MAX_RECORD_TIME;
- // imagePC.takePictureImageName = @"ybtakevideo80";
- [[[YBBaseAppDelegate sharedAppDelegate] topViewController]presentViewController:imagePC animated:YES completion:nil];
- }
- }
- #pragma mark - TZImagePickerControllerDelegate
- - (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingVideo:(UIImage *)coverImage sourceAssets:(PHAsset *)asset {
- NSLog(@"-dsddddddddd--%@\n===%@",asset,coverImage);
-
- [MBProgressHUD showMessage:@""];
- [[TZImageManager manager] getVideoOutputPathWithAsset:asset presetName:AVAssetExportPresetMediumQuality success:^(NSString *outputPath) {
- NSLog(@"视频导出到本地完成,沙盒路径为:%@",outputPath);
- if (outputPath) {
- [MBProgressHUD hideHUD];
- videoPath = outputPath;
- videoCoverImage = coverImage;
- [self addVideoimage];
- }else{
- [MBProgressHUD hideHUD];
- [MBProgressHUD showError:YZMsg(@"请重新选择(iCloud视频请先在本地相册下载后上传)")];
- }
- } failure:^(NSString *errorMessage, NSError *error) {
- [MBProgressHUD hideHUD];
- [MBProgressHUD showError:errorMessage];
- NSLog(@"视频导出失败:%@,error:%@",errorMessage, error);
- }];
- }
- - (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto{
- NSLog(@"------多选择图片--:%@",photos);
- [imageArray addObjectsFromArray:photos];
- [self setImageFrame];
- }
- -(void)setImageFrame{
- for (UIButton *btn in _photoView.subviews) {
- if (btn.tag >=3000) {
- [btn removeFromSuperview];
- }
- }
- if (imageArray.count > 0) {
- if (imageArray.count < 3) {
- _photoView.size= CGSizeMake(_window_width, imgWidth+10);
- }else if (imageArray.count>=3){
- _photoView.size= CGSizeMake(_window_width, imgWidth*2+20);
- }
- for (int i = 0; i < imageArray.count ; i ++) {
- UIButton *btn = [UIButton buttonWithType:0];
- btn.backgroundColor = RGB(250, 250, 250);
- if (i < 4) {
- btn.frame = CGRectMake(15+(i%4)*(imgWidth + 15), 0, imgWidth, imgWidth);
- }else{
- btn.frame = CGRectMake(15+(i%4)*(imgWidth + 15), (imgWidth+10), imgWidth, imgWidth);
- }
-
- btn.tag = 3000+i;
- [btn setImage:imageArray[i] forState:0];
- [_photoView addSubview:btn];
-
- UIButton *delBtn = [UIButton buttonWithType:0];
- delBtn.frame = CGRectMake(imgWidth-25, 5, 20, 20);
- [delBtn setBackgroundImage:[UIImage imageNamed:@"comm_del"] forState:0];
- delBtn.tag = 4000+i;
- [delBtn addTarget:self action:@selector(delImageClick:) forControlEvents:UIControlEventTouchUpInside];
- [btn addSubview:delBtn];
- }
- if (imageArray.count < 3) {
- imageBtn.frame = CGRectMake(15+(imageArray.count%4)*(imgWidth + 15), 0, imgWidth, imgWidth);
- videoBtn.frame = CGRectMake(15+((imageArray.count+1)%4)*(imgWidth + 15), 0, imgWidth, imgWidth);
- }else if (imageArray.count == 3){
- imageBtn.frame = CGRectMake(15+(imageArray.count%4)*(imgWidth + 15), 0, imgWidth, imgWidth);
- videoBtn.frame = CGRectMake(15+((imageArray.count+1)%4)*(imgWidth + 15), (imgWidth+10), imgWidth, imgWidth);
- }else if (imageArray.count > 3){
- imageBtn.frame = CGRectMake(15+(imageArray.count%4)*(imgWidth + 15), (imgWidth+10), imgWidth, imgWidth);
- videoBtn.frame = CGRectMake(15+((imageArray.count+1)%4)*(imgWidth + 15), (imgWidth+10), imgWidth, imgWidth);
- }
- }else{
- imageBtn.frame = CGRectMake(15,0, imgWidth, imgWidth);
- videoBtn.frame = CGRectMake(15+(1%4)*(imgWidth + 15),0, imgWidth, imgWidth);
- }
- if (imageArray.count == 5) {
- imageBtn.hidden = YES;
- videoBtn.frame = CGRectMake(15+(imageArray.count%4)*(imgWidth + 15), (imgWidth+10), imgWidth, imgWidth);
- }else{
- imageBtn.hidden = NO;
- }
- _backScroll.size = CGSizeMake(_window_width, _photoView.bottom+10);
- }
- -(void)delImageClick:(UIButton *)sender{
- NSInteger index = sender.tag-4000;
- [imageArray removeObjectAtIndex:index];
- [self setImageFrame];
- }
- -(void)addVideoimage{
- subVideoBtn = [UIButton buttonWithType:0];
- subVideoBtn.frame = CGRectMake(0, 0, videoBtn.width, videoBtn.height);
- [subVideoBtn setBackgroundImage:videoCoverImage forState:0];
- [videoBtn addSubview:subVideoBtn];
-
- UIButton *delBtn = [UIButton buttonWithType:0];
- delBtn.frame = CGRectMake(subVideoBtn.width-25, 5, 20, 20);
- [delBtn setBackgroundImage:[UIImage imageNamed:@"comm_del"] forState:0];
- [delBtn addTarget:self action:@selector(delVideoClick) forControlEvents:UIControlEventTouchUpInside];
- [subVideoBtn addSubview:delBtn];
- }
- -(void)delVideoClick{
- videoPath = @"";
- [subVideoBtn removeFromSuperview];
- subVideoBtn = nil;
- }
- -(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
- {
- [self.view endEditing:YES];
- }
- -(void)clickNaviRightBtn{
- [MBProgressHUD showMessage:@""];
- NSLog(@"-------image:%@ \n===---video:%@",imageArray,videoPath);
- if (videoPath.length > 0 || imageArray.count > 0) {
- YBWeakSelf;
- [[YBStorageObj storageManeger]getCOSType:^(int code) {
- dispatch_async(dispatch_get_main_queue(), ^{
- if (code == 0) {
- [weakSelf startUpload];
- }
- });
- }];
- }else{
- [self doUploadEvaluate];
- }
- }
- -(void)startUpload{
- YBWeakSelf;
- dispatch_group_t group = dispatch_group_create();
- dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
- //如果有视频或图片先上传视频
- if (videoPath.length > 0) {
- dispatch_group_async(group, queue, ^{
- NSData *imageData = UIImagePNGRepresentation(videoCoverImage);
- if (!imageData) {
- [MBProgressHUD hideHUD];
- [MBProgressHUD showError:YZMsg(@"请重新选择")];
- return;
- }
- UIImage *herfImg = [UIImage imageWithData:imageData];
- NSString *imageName = [PublicObj getNameBaseCurrentTime:@"_action_video_cover.png"];
- [[YBStorageObj storageManeger]yb_storageImg:herfImg andName:imageName progress:^(CGFloat percent) {
-
- }complete:^(int code, NSString *key) {
- //图片成功
- videoCorverStr = key;
- dispatch_semaphore_signal(semaphore);
- }];
- dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
- });
- dispatch_group_async(group, queue, ^{
- //传视频
- NSString *videoName = [PublicObj getNameBaseCurrentTime:@"_action_video.mp4"];
- [[YBStorageObj storageManeger]yb_storageVideoOrVoice:videoPath andName:videoName progress:^(CGFloat percent) {
-
- } complete:^(int code, NSString *key) {
- videoHerfStr = key;
- dispatch_semaphore_signal(semaphore);
- }];
- dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
- });
- }
- if (imageArray.count > 0) {
- imageUrlArray = [NSMutableArray array];
- picThumbsStr = @"";
- for (int i = 0; i < imageArray.count ; i ++) {
-
- UIImage *image =imageArray[i];
- NSData *imageData = UIImagePNGRepresentation(image);
- if (!imageData) {
- [MBProgressHUD hideHUD];
- [MBProgressHUD showError:YZMsg(@"图片错误")];
- return;
- }
-
-
- dispatch_group_async(group, queue, ^{
- NSString *imageName = [PublicObj getNameBaseCurrentTime:[NSString stringWithFormat:@"_action_image%d_cover.png", i]];
- [[YBStorageObj storageManeger]yb_storageImg:image andName:imageName progress:^(CGFloat percent) {
-
- }complete:^(int code, NSString *key) {
- [imageUrlArray addObject:key];
- dispatch_semaphore_signal(semaphore);
- }];
- dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
- });
- }
- }
- dispatch_group_notify(group, queue, ^{
- dispatch_async(dispatch_get_main_queue(), ^{
- for (NSString *str in imageUrlArray) {
- if (picThumbsStr.length == 0) {
- picThumbsStr = str;
- }else{
- picThumbsStr = [NSString stringWithFormat:@"%@,%@",picThumbsStr,str];
- }
- }
- [weakSelf doUploadEvaluate];
- });
- NSLog(@"任务完成执行");
- });
- }
- #pragma mark-----正式发布-----------
- -(void)doUploadEvaluate{
-
- NSString *url = [purl stringByAppendingFormat:@"?service=Buyer.appendEvaluateGoodsOrder"];
-
- NSDictionary *signdic = @{@"uid":[Config getOwnID],@"token":[Config getOwnToken],@"orderid":self.model.idStr,@"time":[NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]]};
- NSString *sign = [PublicObj sortString:signdic];
- NSDictionary *dic = @{
- @"uid":[Config getOwnID],
- @"token":[Config getOwnToken],
- @"orderid":self.model.idStr,
- @"content":evaluateText.text,
- @"thumbs":picThumbsStr,
- @"video_url":videoHerfStr,
- @"video_thumb":videoCorverStr,
- @"time":[NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]],
- @"sign":sign
- };
-
- [YBNetworking postWithUrl:@"Buyer.appendEvaluateGoodsOrder" Dic:dic Suc:^(int code, id info, NSString *msg) {
- [MBProgressHUD hideHUD];
- if (code ==0) {
- [MBProgressHUD showError: msg];
- [[YBBaseAppDelegate sharedAppDelegate]popViewController:YES];
- }else{
- [MBProgressHUD showError:msg];
- }
- } Fail:^(id fail) {
-
- }];
- }
- @end
|