MineNewViewController.m 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. //
  2. // MineViewController.m
  3. // 千模
  4. //
  5. // Created by Drew on 2018/10/24.
  6. // Copyright © 2018 MUMEI. All rights reserved.
  7. //
  8. #import "MineNewViewController.h"
  9. #import "MyWalletController.h"
  10. #import "MySkillsController.h"
  11. #import "MyOrderController.h"
  12. #import "ModelDataController.h"
  13. #import "PlatformActivityController.h"
  14. #import "AboutUsViewController.h"
  15. #import "ModelCodeController.h"
  16. #import "PromoteController.h"
  17. #import "SettingsViewController.h"
  18. #import "ShareViewController.h"
  19. #import "IntroView.h"
  20. #import "ModelCardController.h"
  21. #import "RankController.h"
  22. #import "ApplyRecommendView.h"
  23. #import "WZLBadgeImport.h"
  24. @interface MineNewViewController () {
  25. BOOL online;
  26. }
  27. @property(weak, nonatomic) IBOutlet UIView *headView;
  28. @property(weak, nonatomic) IBOutlet UIView *bgView;
  29. @property(weak, nonatomic) IBOutlet UILabel *nameLabel;
  30. @property(weak, nonatomic) IBOutlet UIView *avatarBg;
  31. @property(weak, nonatomic) IBOutlet UIImageView *avatarView;
  32. @property(weak, nonatomic) IBOutlet UIView *container1;
  33. @property(weak, nonatomic) IBOutlet UIView *container2;
  34. @property(weak, nonatomic) IBOutlet UIView *incomeView;
  35. @property(weak, nonatomic) IBOutlet UILabel *incomeLabel;
  36. @property(weak, nonatomic) IBOutlet UISwitch *onlineSwitch;
  37. @property(weak, nonatomic) IBOutlet UIView *modelCardView;
  38. @property(weak, nonatomic) IBOutlet UIView *skillView;
  39. @property(weak, nonatomic) IBOutlet UIView *switchView;
  40. @property(weak, nonatomic) IBOutlet UIView *switchIndicatorView;
  41. @property(weak, nonatomic) IBOutlet UIView *transformView;
  42. @property(weak, nonatomic) IBOutlet UIImageView *orderIcon;
  43. @end
  44. @implementation MineNewViewController
  45. - (void)viewDidLoad {
  46. [super viewDidLoad];
  47. NSArray *constrains = self.headView.constraints;
  48. for (NSLayoutConstraint *constraint in constrains) {
  49. if (constraint.firstAttribute == NSLayoutAttributeHeight) {
  50. constraint.constant = 104 + [[UIApplication sharedApplication] statusBarFrame].size.height;
  51. }
  52. }
  53. [self.headView updateConstraints];
  54. self.nameLabel.userInteractionEnabled = YES;
  55. self.avatarBg.layer.cornerRadius = 43;
  56. self.avatarView.layer.cornerRadius = 35;
  57. self.avatarView.layer.masksToBounds = YES;
  58. self.avatarView.userInteractionEnabled = YES;
  59. online = YES;
  60. }
  61. - (void)viewWillAppear:(BOOL)animated {
  62. [self.navigationController setNavigationBarHidden:YES animated:NO];
  63. [self getDataFromNetworking];
  64. }
  65. - (void)viewDidLayoutSubviews {
  66. [super viewDidLayoutSubviews];
  67. CAGradientLayer *gl = [CAGradientLayer layer];
  68. gl.frame = CGRectMake(0, 0, self.headView.frame.size.width, 104 + [[UIApplication sharedApplication] statusBarFrame].size.height);
  69. gl.startPoint = CGPointMake(0, 0);
  70. gl.endPoint = CGPointMake(0, 1);
  71. gl.colors = @[(__bridge id) [UIColor colorWithRed:251 / 255.0 green:92 / 255.0 blue:163 / 255.0 alpha:1].CGColor, (__bridge id) [UIColor colorWithRed:253 / 255.0 green:127 / 255.0 blue:141 / 255.0 alpha:1].CGColor];
  72. gl.locations = @[@(0), @(1.0f)];
  73. [self.headView.layer addSublayer:gl];
  74. UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bgView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(30, 30)];
  75. CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
  76. maskLayer.frame = self.bgView.bounds;
  77. maskLayer.path = maskPath.CGPath;
  78. self.bgView.layer.mask = maskLayer;
  79. self.container1.layer.cornerRadius = 12;
  80. self.container1.layer.shadowColor = [UIColor colorWithRed:0 / 255.0 green:0 / 255.0 blue:0 / 255.0 alpha:0.08].CGColor;
  81. self.container1.layer.shadowOffset = CGSizeMake(0, 6);
  82. self.container1.layer.shadowOpacity = 1;
  83. self.container1.layer.shadowRadius = 12;
  84. self.container2.layer.cornerRadius = 12;
  85. self.container2.layer.shadowColor = [UIColor colorWithRed:0 / 255.0 green:0 / 255.0 blue:0 / 255.0 alpha:0.08].CGColor;
  86. self.container2.layer.shadowOffset = CGSizeMake(0, 6);
  87. self.container2.layer.shadowOpacity = 1;
  88. self.container2.layer.shadowRadius = 12;
  89. self.incomeView.layer.cornerRadius = 17;
  90. self.incomeView.layer.shadowColor = [UIColor colorWithRed:255 / 255.0 green:64 / 255.0 blue:149 / 255.0 alpha:0.36].CGColor;
  91. self.incomeView.layer.shadowOffset = CGSizeMake(0, 8);
  92. self.incomeView.layer.shadowOpacity = 1;
  93. self.incomeView.layer.shadowRadius = 10;
  94. }
  95. - (void)viewDidAppear:(BOOL)animated {
  96. [super viewDidAppear:animated];
  97. NSNumber *intro = [[NSUserDefaults standardUserDefaults] objectForKey:@"intro"];
  98. if (!intro) {
  99. __weak MineNewViewController *this = self;
  100. IntroView *introView = [[IntroView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)
  101. confirm:^{
  102. ModelCardController *modelCardVC = [[ModelCardController alloc] init];
  103. modelCardVC.type = @"init";
  104. modelCardVC.hidesBottomBarWhenPushed = YES;
  105. [this.navigationController pushViewController:modelCardVC animated:YES];
  106. }
  107. cancel:^{
  108. }];
  109. UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
  110. CGRect rect1 = [self.modelCardView convertRect:self.modelCardView.bounds toView:window];
  111. introView.icon1left.constant = rect1.origin.x + rect1.size.width / 2 - 43;
  112. introView.icon1top.constant = rect1.origin.y + rect1.size.height / 2 - 43 - [[UIApplication sharedApplication] statusBarFrame].size.height;
  113. CGRect rect2 = [self.skillView convertRect:self.skillView.bounds toView:window];
  114. introView.icon2left.constant = rect2.origin.x + rect2.size.width / 2 - 43;
  115. [window addSubview:introView];
  116. [introView updateConstraints];
  117. [introView layoutIfNeeded];
  118. [[NSUserDefaults standardUserDefaults] setObject:@1 forKey:@"intro"];
  119. }
  120. }
  121. - (void)viewWillDisappear:(BOOL)animated {
  122. [self.navigationController setNavigationBarHidden:NO animated:YES];
  123. }
  124. - (void)getDataFromNetworking {
  125. // [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  126. NSDictionary *dic = @{@"modelpk": [ModelUser user].modelpk};
  127. [YanCNetWorkManager requestPostWithURLStr:Url_refreshLogin(PublicUrl) parameters:dic finish:^(id dataDic) {
  128. [MBProgressHUD hideHUDForView:self.view animated:YES];
  129. NSString *issuccess = dataDic[@"msg"];
  130. if ([issuccess isEqualToString:@"success"]) {
  131. ModelUser *user = [ModelUser modelUser];
  132. [user setValuesForKeysWithDictionary:dataDic[@"data"]];
  133. user.modelpk = dataDic[@"data"][@"modelpk"];
  134. user.coin_a = dataDic[@"data"][@"coin_a"];
  135. user.coin_ir = dataDic[@"data"][@"coin_ir"];
  136. user.pk = dataDic[@"data"][@"pk"];
  137. user.qrcode = dataDic[@"data"][@"qrcode"];
  138. [ModelUser save:user];
  139. self.nameLabel.text = [NSString stringWithFormat:@"%@", dataDic[@"data"][@"pet"]];
  140. [self.avatarView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", PublicUrl, dataDic[@"data"][@"hphoto"]]] placeholderImage:[UIImage imageNamed:@"morentouxiang"]];
  141. online = user.is_a;
  142. [self setSwitchState:user.is_a];
  143. if ([dataDic[@"data"][@"hasred"] isEqualToString:@"1"]) {
  144. [self.orderIcon showBadge];
  145. } else {
  146. [self.orderIcon clearBadge];
  147. }
  148. [self getIncomeFromNetworking];
  149. } else {
  150. [MBProgressHUD showInfo:@"请求失败!"];
  151. }
  152. } enError:^(NSError *error) {
  153. [MBProgressHUD hideHUDForView:self.view animated:YES];
  154. }];
  155. }
  156. - (void)getIncomeFromNetworking {
  157. NSDictionary *dic = @{@"memberpk": [ModelUser modelUser].pk};
  158. [YanCNetWorkManager requestPostWithURLStr:Url_getIncomeToday(PublicUrl) parameters:dic finish:^(id dataDic) {
  159. NSString *issuccess = dataDic[@"msg"];
  160. if ([issuccess isEqualToString:@"success"]) {
  161. self.incomeLabel.text = [NSString stringWithFormat:@"今日收入 %@元", dataDic[@"count"]];
  162. } else {
  163. [MBProgressHUD showInfo:@"请求失败!"];
  164. }
  165. } enError:^(NSError *error) {
  166. [MBProgressHUD hideHUDForView:self.view animated:YES];
  167. }];
  168. }
  169. - (IBAction)handelTap:(id)sender {
  170. switch (((UITapGestureRecognizer *) sender).view.tag) {
  171. case 1: {
  172. ModelCardController *modelCardVC = [[ModelCardController alloc] init];
  173. modelCardVC.hidesBottomBarWhenPushed = YES;
  174. [self.navigationController pushViewController:modelCardVC animated:YES];
  175. break;
  176. }
  177. case 2: {
  178. MySkillsController *mySkillsVC = [[MySkillsController alloc] init];
  179. mySkillsVC.hidesBottomBarWhenPushed = YES;
  180. [self.navigationController pushViewController:mySkillsVC animated:YES];
  181. break;
  182. }
  183. case 3: {
  184. [ApplyRecommendView showIntoView:[UIApplication sharedApplication].keyWindow confirm:^{
  185. NSDictionary *dic = @{@"modelpk": [ModelUser modelUser].modelpk};
  186. [YanCNetWorkManager requestPostWithURLStr:Url_applyRecommend(PublicUrl)
  187. parameters:dic
  188. finish:^(id res) {
  189. BOOL success = [res[@"success"] intValue] == 1;
  190. if (success) {
  191. [MBProgressHUD showInfo:@"申请已提交"];
  192. } else {
  193. [MBProgressHUD showInfo:@"请求失败!"];
  194. }
  195. }
  196. enError:^(NSError *error) {
  197. [MBProgressHUD hideHUDForView:self.view animated:YES];
  198. }];
  199. }];
  200. break;
  201. // UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"确定申请首页推荐展示?" preferredStyle:UIAlertControllerStyleAlert];
  202. // [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];
  203. // [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {
  204. // NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:[ModelUser modelUser].modelpk, @"modelpk", nil];
  205. // [YanCNetWorkManager requestPostWithURLStr:Url_applyRecommend(PublicUrl)
  206. // parameters:dic
  207. // finish:^(id res) {
  208. // BOOL success = [res[@"success"] intValue] == 1;
  209. // if (success) {
  210. // [MBProgressHUD showInfo:@"申请已提交"];
  211. // } else {
  212. // [MBProgressHUD showInfo:@"请求失败!"];
  213. // }
  214. // }
  215. // enError:^(NSError *error) {
  216. // [MBProgressHUD hideHUDForView:self.view animated:YES];
  217. // }];
  218. // }]];
  219. // [self presentViewController:alert animated:YES completion:nil];
  220. }
  221. case 4: {
  222. PromoteController *vc = [[PromoteController alloc] init];
  223. vc.hidesBottomBarWhenPushed = YES;
  224. [self.navigationController pushViewController:vc animated:YES];
  225. break;
  226. }
  227. case 5: {
  228. MyOrderController *vc = [[MyOrderController alloc] init];
  229. vc.hidesBottomBarWhenPushed = YES;
  230. [self.navigationController pushViewController:vc animated:YES];
  231. break;
  232. }
  233. case 6: {
  234. MyWalletController *myWalletVC = [[MyWalletController alloc] init];
  235. myWalletVC.hidesBottomBarWhenPushed = YES;
  236. myWalletVC.amount = [ModelUser modelUser].coin_a;
  237. [self.navigationController pushViewController:myWalletVC animated:YES];
  238. break;
  239. }
  240. case 7: {
  241. PlatformActivityController *activityVC = [[PlatformActivityController alloc] init];
  242. activityVC.hidesBottomBarWhenPushed = YES;
  243. [self.navigationController pushViewController:activityVC animated:YES];
  244. break;
  245. }
  246. case 8: {
  247. AboutUsViewController *aboutUsVC = [[AboutUsViewController alloc] init];
  248. aboutUsVC.hidesBottomBarWhenPushed = YES;
  249. [self.navigationController pushViewController:aboutUsVC animated:YES];
  250. break;
  251. }
  252. case 9: {
  253. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  254. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  255. [MBProgressHUD hideHUDForView:self.view];
  256. [MBProgressHUD showInfo:@"清理完成"];
  257. });
  258. break;
  259. }
  260. default:
  261. break;
  262. }
  263. }
  264. - (IBAction)tapSettings:(id)sender {
  265. SettingsViewController *settingsVC = [[SettingsViewController alloc] init];
  266. settingsVC.hidesBottomBarWhenPushed = YES;
  267. [self.navigationController pushViewController:settingsVC animated:YES];
  268. }
  269. - (IBAction)tapSwitch:(id)sender {
  270. [self updateOnline:!online];
  271. }
  272. - (void)updateOnline:(BOOL)state {
  273. __weak MineNewViewController *this = self;
  274. NSDictionary *dic = @{@"modelpk": [ModelUser modelUser].modelpk, @"state": @(state)};
  275. [YanCNetWorkManager requestPostWithURLStr:Url_setOnline(PublicUrl)
  276. parameters:dic
  277. finish:^(id res) {
  278. BOOL success = [@"success" isEqualToString:res[@"msg"]];
  279. if (success) {
  280. online = state;
  281. [this setSwitchState:state];
  282. if (online) {
  283. MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:[UIApplication sharedApplication].keyWindow animated:YES];
  284. hud.mode = MBProgressHUDModeText;
  285. hud.detailsLabel.text = @"您已开启在线状态\n将优先排序获得更多商业订单";
  286. hud.detailsLabel.font = [UIFont boldSystemFontOfSize:16];
  287. hud.margin = 15.f;
  288. hud.removeFromSuperViewOnHide = YES;
  289. [hud.bezelView setBackgroundColor:[UIColor colorWithRed:0 / 255.0 green:0 / 255.0 blue:0 / 255.0 alpha:0.8]];
  290. hud.contentColor = [UIColor whiteColor];
  291. [hud hideAnimated:YES afterDelay:2];
  292. } else {
  293. MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:[UIApplication sharedApplication].keyWindow animated:YES];
  294. hud.mode = MBProgressHUDModeText;
  295. hud.detailsLabel.text = @"您已开启离线状态\n客户无法及时联系您将造成经济损失";
  296. hud.detailsLabel.font = [UIFont boldSystemFontOfSize:16];
  297. hud.margin = 15.f;
  298. hud.removeFromSuperViewOnHide = YES;
  299. [hud.bezelView setBackgroundColor:[UIColor colorWithRed:0 / 255.0 green:0 / 255.0 blue:0 / 255.0 alpha:0.8]];
  300. hud.contentColor = [UIColor whiteColor];
  301. [hud hideAnimated:YES afterDelay:2];
  302. }
  303. } else {
  304. [MBProgressHUD showInfo:@"请求失败!"];
  305. }
  306. }
  307. enError:^(NSError *error) {
  308. [MBProgressHUD hideHUDForView:self.view animated:YES];
  309. }];
  310. }
  311. - (void)setSwitchState:(BOOL)state {
  312. if (state) {
  313. [UIView animateWithDuration:0.25
  314. delay:0
  315. options:UIViewAnimationOptionCurveEaseOut
  316. animations:^{
  317. self.switchView.backgroundColor = [UIColor whiteColor];
  318. self.switchIndicatorView.backgroundColor = [UIColor colorWithRed:255 / 255.0 green:64 / 255.0 blue:149 / 255.0 alpha:1];
  319. self.transformView.transform = CGAffineTransformMakeTranslation(0, 0);
  320. }
  321. completion:nil];
  322. } else {
  323. [UIView animateWithDuration:0.25
  324. delay:0
  325. options:UIViewAnimationOptionCurveEaseOut
  326. animations:^{
  327. self.switchView.backgroundColor = [UIColor colorWithRed:0 / 255.0 green:0 / 255.0 blue:0 / 255.0 alpha:0.3];
  328. self.switchIndicatorView.backgroundColor = [UIColor whiteColor];
  329. self.transformView.transform = CGAffineTransformMakeTranslation(-32, 0);
  330. }
  331. completion:nil];
  332. }
  333. }
  334. - (IBAction)tapRank:(id)sender {
  335. RankController *rankVC = [[RankController alloc] init];
  336. rankVC.hidesBottomBarWhenPushed = YES;
  337. [self.navigationController pushViewController:rankVC animated:YES];
  338. }
  339. - (UIStatusBarStyle)preferredStatusBarStyle {
  340. return UIStatusBarStyleLightContent;
  341. }
  342. @end