YOUPAILZWriteGameInfoView.m 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. //
  2. // YOUPAILZWriteGameInfoView.m
  3. // VQU
  4. //
  5. // Created by CY on 2021/4/26.
  6. // Copyright © 2021 leo. All rights reserved.
  7. //
  8. #import "YOUPAILZWriteGameInfoView.h"
  9. #import "YOUPAILZRecordAudioView.h"
  10. #import "YOUPAILZGameModel.h"
  11. #import "LZPickerWindow.h"
  12. #import "UIViewController+TFPresent.h"
  13. #import "PGPickerView.h"
  14. @interface YOUPAILZWriteGameInfoView ()<LZPickerWindowDelegate,PGPickerViewDelegate,PGPickerViewDataSource>
  15. @property (nonatomic,readwrite) NSString *youpaiplevel; // 段位
  16. @property (nonatomic,readwrite) NSString *youpaipregion; // 大区
  17. @property (nonatomic,readwrite) NSString *youpaipprice; // 价格
  18. @property (nonatomic,weak) YOUPAILZRecordAudioView *youpaiprecordAudioView;
  19. @property (nonatomic,weak)UIButton *youpaipsubmitBtn;
  20. @property (nonatomic,strong)YOUPAILZGameModel *youpaipgameModel;
  21. @property (nonatomic,assign) NSInteger youpaipselectedBtnIndex;
  22. @property (nonatomic,strong) NSMutableArray <UILabel *>*youpaiplabs;
  23. @property (nonatomic,assign) NSInteger youpaippickerSelectedIndex;
  24. @property (nonatomic,assign) BOOL youpaipisVerifyState;
  25. @end
  26. @implementation YOUPAILZWriteGameInfoView
  27. - (instancetype)initWithModel:(YOUPAILZGameModel *)gameModel{
  28. if (self = [super init]) {
  29. self.youpaipgameModel = gameModel;
  30. [self youpaifsetupUI];
  31. }
  32. return self;
  33. }
  34. - (void)youpaifsetupUI{
  35. UIScrollView *scrollView = [[UIScrollView alloc] init];
  36. scrollView.showsVerticalScrollIndicator = NO;
  37. scrollView.showsHorizontalScrollIndicator = NO;
  38. scrollView.backgroundColor = HexColorFromRGB(0xF6F6F6);
  39. [self addSubview:scrollView];
  40. [scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
  41. make.left.top.right.bottom.offset(0.0f);
  42. }];
  43. UIView *bgV = [[UIView alloc] init];
  44. bgV.backgroundColor = [UIColor whiteColor];
  45. [scrollView addSubview:bgV];
  46. [bgV mas_makeConstraints:^(MASConstraintMaker *make) {
  47. make.left.top.offset(0.0f);
  48. make.width.offset(KScreenWidth);
  49. }];
  50. self.youpaiplabs = [NSMutableArray array];
  51. NSArray *contents = @[@"段位:",@"可接大区:"];
  52. CGFloat height = 0.0f;
  53. for (NSInteger i = 0; i < contents.count; i ++) {
  54. UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
  55. btn.frame = CGRectMake(16.0f, 20.0f + i * 45.0f + (i + 1) * 5.0f, KScreenWidth - 32.0f, 45.0f);
  56. btn.backgroundColor = HexColorFromRGB(0xF6F6F6);
  57. btn.layer.cornerRadius = 8.0f;
  58. btn.clipsToBounds = YES;
  59. btn.tag = i;
  60. [btn addTarget:self action:@selector(youpaifbtnClick:) forControlEvents:UIControlEventTouchUpInside];
  61. UILabel *titleL = [[UILabel alloc] init];
  62. titleL.font = LCFont14;
  63. titleL.textColor = HexColorFromRGB(0x333333);
  64. titleL.text = contents[i];
  65. [btn addSubview:titleL];
  66. [titleL mas_makeConstraints:^(MASConstraintMaker *make) {
  67. make.left.offset(19.0f);
  68. make.top.bottom.offset(0.0f);
  69. }];
  70. UIImageView *arrowImgV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"vqu_images_game_arrow"]];
  71. [btn addSubview:arrowImgV];
  72. [arrowImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  73. make.right.offset(-19.0f);
  74. make.centerY.equalTo(btn);
  75. make.size.mas_offset(CGSizeMake(14.0f, 14.0f));
  76. }];
  77. UILabel *contentL = [[UILabel alloc] init];
  78. contentL.font = LCFont14;
  79. contentL.textColor = HexColorFromRGB(0x333333);
  80. [btn addSubview:contentL];
  81. [contentL mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.left.equalTo(titleL.mas_right);
  83. make.top.bottom.offset(0.0f);
  84. }];
  85. [self.youpaiplabs addObject:contentL];
  86. [bgV addSubview:btn];
  87. height = btn.mj_y + btn.mj_h;
  88. }
  89. height += 25.0f;
  90. UIView *line = [[UIView alloc] init];
  91. line.backgroundColor = HexColorFromRGB(0xF6F6F6);
  92. [bgV addSubview:line];
  93. [line mas_makeConstraints:^(MASConstraintMaker *make) {
  94. make.left.offset(0.0f);
  95. make.top.offset(height);
  96. make.height.offset(5.0f);
  97. make.width.offset(KScreenWidth);
  98. }];
  99. UILabel *audioL = [[UILabel alloc] init];
  100. audioL.font = LCFont17;
  101. audioL.textColor = HexColorFromRGB(0x333333);
  102. audioL.text = @"语音介绍";
  103. [bgV addSubview:audioL];
  104. [audioL mas_makeConstraints:^(MASConstraintMaker *make) {
  105. make.left.offset(16.0f);
  106. make.top.equalTo(line.mas_bottom).offset(16.0f);
  107. }];
  108. UILabel *audioDescL = [[UILabel alloc] init];
  109. audioDescL.font = LCFont12;
  110. audioDescL.textColor = HexColorFromRGB(0x999999);
  111. audioDescL.numberOfLines = 0;
  112. audioDescL.text = @"录制一段自我介绍语音(介绍自己擅长位置、英雄、游戏成就皆可)";
  113. [bgV addSubview:audioDescL];
  114. [audioDescL mas_makeConstraints:^(MASConstraintMaker *make) {
  115. make.left.offset(16.0f);
  116. make.width.offset(KScreenWidth - 32.0f);
  117. make.top.equalTo(audioL.mas_bottom).offset(5.0f);
  118. }];
  119. YOUPAILZRecordAudioView *recordAudioView = [[YOUPAILZRecordAudioView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, KScreenWidth, 195.0f) model:self.youpaipgameModel];
  120. [bgV addSubview:recordAudioView];
  121. self.youpaiprecordAudioView = recordAudioView;
  122. [recordAudioView mas_makeConstraints:^(MASConstraintMaker *make) {
  123. make.left.offset(0.0f);
  124. make.top.equalTo(audioDescL.mas_bottom);
  125. make.width.offset(KScreenWidth);
  126. make.height.offset(195.0f);
  127. make.bottom.offset(0.0f);
  128. }];
  129. UIButton *submitBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  130. submitBtn.layer.cornerRadius = 24.0f;
  131. submitBtn.clipsToBounds = YES;
  132. submitBtn.backgroundColor = HexColorFromRGB(0xA7A9FD);
  133. submitBtn.titleLabel.font = LCFont(20.0f);
  134. [submitBtn setTitle:@"提交审核" forState:UIControlStateNormal];
  135. [submitBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  136. [submitBtn addTarget:self action:@selector(youpaifsubmitBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  137. [scrollView addSubview:submitBtn];
  138. self.youpaipsubmitBtn = submitBtn;
  139. [submitBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  140. make.left.offset(60.0f);
  141. make.width.offset(KScreenWidth-120.0f);
  142. make.top.equalTo(bgV.mas_bottom).offset(100.0f);
  143. make.height.offset(48.0f);
  144. }];
  145. [scrollView layoutIfNeeded];
  146. scrollView.contentSize = CGSizeMake(KScreenWidth, submitBtn.mj_h + submitBtn.mj_y + 56.0f);
  147. }
  148. - (void)youpaifbtnClick:(UIButton *)sender{
  149. if (self.youpaipisVerifyState) {
  150. return;
  151. }
  152. self.youpaipselectedBtnIndex = sender.tag;
  153. LZPickerWindow *vc = [[LZPickerWindow alloc] init];
  154. vc.isTouchDismiss = YES;
  155. vc.delegate = self;
  156. [[LCTools getCurrentVC] TFPresentVC:vc completion:^{}];
  157. vc.pickerView.dataSource = self;
  158. vc.pickerView.delegate = self;
  159. }
  160. - (void)youpaifsubmitBtnClick:(UIButton *)sender{
  161. if (![self.youpaipgameModel youpaifverifyGameInfo]) {
  162. return;
  163. }
  164. [ZCHUDHelper showWithStatus:@"上传中..."];
  165. [LCCommonHttp uploadWithImages:@[self.youpaipgameModel.youpaipselectedImage] Type:@"game/img" successBlock:^(NSArray<NSString *> *ossImagePaths) {
  166. if (ossImagePaths.count != 0) {
  167. self.youpaipgameModel.youpaipscreenshot = ossImagePaths[0];
  168. [LCCommonHttp uploadWithAudioPath:self.youpaipgameModel.youpaipaudioUrl.resourceSpecifier Type:@"game/mp3" successBlock:^(NSString *ossFilePath) {
  169. if (ossFilePath.length != 0) {
  170. self.youpaipgameModel.youpaipmp3 = ossFilePath;
  171. if (self.youpaipgameModel.youpaipmp3.length != 0 && self.youpaipgameModel.youpaipscreenshot.length != 0) {
  172. [self youpaifuploadFileFinish];
  173. if ([[NSFileManager defaultManager] fileExistsAtPath:self.youpaipgameModel.youpaipaudioUrl.resourceSpecifier]){
  174. [[NSFileManager defaultManager] removeItemAtPath:self.youpaipgameModel.youpaipaudioUrl.resourceSpecifier error:nil];
  175. }
  176. }
  177. }
  178. }];
  179. }
  180. }];
  181. }
  182. - (void)youpaifuploadFileFinish{
  183. NSDictionary *params = @{
  184. @"game_id":self.youpaipgameModel.youpaipid,
  185. @"screenshot":self.youpaipgameModel.youpaipscreenshot,
  186. @"mp3":self.youpaipgameModel.youpaipmp3,
  187. @"mp3_second":@(self.youpaipgameModel.youpaipaudioDuration),
  188. @"region":self.youpaipgameModel.youpaipselectedRegion.youpaipid,
  189. @"dan":self.youpaipgameModel.youpaipselectedLevel.youpaipid,
  190. };
  191. [LCHttpHelper requestWithURLString:GameCertificationSubmit parameters:params needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  192. [ZCHUDHelper dismiss];
  193. NSDictionary* dict = (NSDictionary*)responseObject;
  194. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  195. if (code==0) {
  196. [self.youpaipsubmitBtn setTitle:@"平台审核中" forState:UIControlStateNormal];
  197. self.youpaipsubmitBtn.backgroundColor = HexColorFromRGB(0xCCCCCC);
  198. self.youpaipsubmitBtn.userInteractionEnabled = NO;
  199. [self youpaifremoveUploadGameImageVC];
  200. self.youpaipisVerifyState = YES;
  201. self.youpaipgameModel.youpaipapplying = 1;
  202. }else{
  203. [ZCHUDHelper showTitle:[dict objectForKey:@"message"]];
  204. }
  205. } failure:^(NSError *error) {
  206. [ZCHUDHelper showTitle:error.localizedDescription];
  207. }];
  208. }
  209. - (void)youpaifremoveUploadGameImageVC{
  210. NSArray *vcs = [LCTools getCurrentVC].navigationController.viewControllers;
  211. NSMutableArray *newVcs = vcs.mutableCopy;
  212. for (UIViewController *vc in newVcs) {
  213. if ([vc isKindOfClass:NSClassFromString(@"YOUPAILZGameCertificationVC")] && vc != [LCTools getCurrentVC]) {
  214. [newVcs removeObject:vc];
  215. break;
  216. }
  217. }
  218. [[LCTools getCurrentVC].navigationController setViewControllers:newVcs.copy];
  219. }
  220. #pragma mark - PGPickerViewDataSource
  221. // returns the number of 'columns' to display.
  222. - (NSInteger)numberOfComponentsInPickerView:(PGPickerView *)pickerView{
  223. return 1;
  224. }
  225. // returns the # of rows in each component..
  226. - (NSInteger)pickerView:(PGPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
  227. if (self.youpaipselectedBtnIndex == 0) {
  228. return self.youpaipgameModel.youpaipdans.count;
  229. }else{
  230. return self.youpaipgameModel.youpaipregions.count;
  231. }
  232. }
  233. - (NSString *)pickerView:(PGPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
  234. if (self.youpaipselectedBtnIndex == 0) {
  235. return self.youpaipgameModel.youpaipdans[row].youpaipname;
  236. }else{
  237. return self.youpaipgameModel.youpaipregions[row].youpaipname;
  238. }
  239. }
  240. #pragma mark - PGPickerViewDelegate
  241. - (void)pickerView:(PGPickerView *)pickerView title:(NSString *)title didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
  242. self.youpaippickerSelectedIndex = row;
  243. }
  244. #pragma mark - LZPickerWindowDelegate
  245. - (void)confirmClick{
  246. if (self.youpaipselectedBtnIndex == 0) {
  247. self.youpaipgameModel.youpaipselectedLevel = self.youpaipgameModel.youpaipdans[self.youpaippickerSelectedIndex];
  248. self.youpaiplabs[self.youpaipselectedBtnIndex].text = self.youpaipgameModel.youpaipselectedLevel.youpaipname;
  249. }else{
  250. self.youpaipgameModel.youpaipselectedRegion = self.youpaipgameModel.youpaipregions[self.youpaippickerSelectedIndex];
  251. self.youpaiplabs[self.youpaipselectedBtnIndex].text = self.youpaipgameModel.youpaipselectedRegion.youpaipname;
  252. }
  253. }
  254. @end