MineNewViewController.m 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  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. @interface MineNewViewController (){
  23. BOOL online;
  24. }
  25. @property(weak, nonatomic) IBOutlet UIView *headView;
  26. @property(weak, nonatomic) IBOutlet UIView *bgView;
  27. @property(weak, nonatomic) IBOutlet UILabel *nameLabel;
  28. @property (weak, nonatomic) IBOutlet UIView *avatarBg;
  29. @property(weak, nonatomic) IBOutlet UIImageView *avatarView;
  30. @property (weak, nonatomic) IBOutlet UIView *container1;
  31. @property (weak, nonatomic) IBOutlet UIView *container2;
  32. @property (weak, nonatomic) IBOutlet UIView *incomeView;
  33. @property (weak, nonatomic) IBOutlet UILabel *incomeLabel;
  34. @property (weak, nonatomic) IBOutlet UISwitch *onlineSwitch;
  35. @property (weak, nonatomic) IBOutlet UIView *modelCardView;
  36. @property (weak, nonatomic) IBOutlet UIView *skillView;
  37. @property (weak, nonatomic) IBOutlet UIView *switchView;
  38. @property (weak, nonatomic) IBOutlet UIView *switchIndicatorView;
  39. @property (weak, nonatomic) IBOutlet UIView *transformView;
  40. @end
  41. @implementation MineNewViewController
  42. - (void)viewDidLoad {
  43. [super viewDidLoad];
  44. NSArray *constrains = self.headView.constraints;
  45. for (NSLayoutConstraint *constraint in constrains) {
  46. if (constraint.firstAttribute == NSLayoutAttributeHeight) {
  47. constraint.constant = 104 + [[UIApplication sharedApplication] statusBarFrame].size.height;
  48. }
  49. }
  50. [self.headView updateConstraints];
  51. self.nameLabel.userInteractionEnabled = YES;
  52. self.avatarBg.layer.cornerRadius = 43;
  53. self.avatarView.layer.cornerRadius = 35;
  54. self.avatarView.layer.masksToBounds = YES;
  55. self.avatarView.userInteractionEnabled = YES;
  56. online = YES;
  57. }
  58. - (void)viewWillAppear:(BOOL)animated {
  59. [self.navigationController setNavigationBarHidden:YES animated:NO];
  60. [self getDataFromNetworking];
  61. }
  62. -(void)viewDidLayoutSubviews{
  63. [super viewDidLayoutSubviews];
  64. CAGradientLayer *gl = [CAGradientLayer layer];
  65. gl.frame = CGRectMake(0, 0, self.headView.frame.size.width, 104 + [[UIApplication sharedApplication] statusBarFrame].size.height);
  66. gl.startPoint = CGPointMake(0, 0);
  67. gl.endPoint = CGPointMake(0, 1);
  68. 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];
  69. gl.locations = @[@(0), @(1.0f)];
  70. [self.headView.layer addSublayer:gl];
  71. UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bgView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(30, 30)];
  72. CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
  73. maskLayer.frame = self.bgView.bounds;
  74. maskLayer.path = maskPath.CGPath;
  75. self.bgView.layer.mask = maskLayer;
  76. self.container1.layer.cornerRadius = 12;
  77. self.container1.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.08].CGColor;
  78. self.container1.layer.shadowOffset = CGSizeMake(0,6);
  79. self.container1.layer.shadowOpacity = 1;
  80. self.container1.layer.shadowRadius = 12;
  81. self.container2.layer.cornerRadius = 12;
  82. self.container2.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.08].CGColor;
  83. self.container2.layer.shadowOffset = CGSizeMake(0,6);
  84. self.container2.layer.shadowOpacity = 1;
  85. self.container2.layer.shadowRadius = 12;
  86. self.incomeView.layer.cornerRadius = 17;
  87. self.incomeView.layer.shadowColor = [UIColor colorWithRed:255/255.0 green:64/255.0 blue:149/255.0 alpha:0.36].CGColor;
  88. self.incomeView.layer.shadowOffset = CGSizeMake(0,8);
  89. self.incomeView.layer.shadowOpacity = 1;
  90. self.incomeView.layer.shadowRadius = 10;
  91. }
  92. - (void)viewDidAppear:(BOOL)animated {
  93. [super viewDidAppear:animated];
  94. NSNumber* intro = [[NSUserDefaults standardUserDefaults] objectForKey:@"intro"];
  95. if (!intro) {
  96. __weak MineNewViewController *this = self;
  97. IntroView* introView = [[IntroView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)
  98. confirm:^{
  99. ModelCardController *modelCardVC = [[ModelCardController alloc] init];
  100. modelCardVC.hidesBottomBarWhenPushed = YES;
  101. [this.navigationController pushViewController:modelCardVC animated:YES];
  102. }
  103. cancel:^{
  104. }];
  105. UIWindow * window=[[[UIApplication sharedApplication] delegate] window];
  106. CGRect rect1 = [self.modelCardView convertRect: self.modelCardView.bounds toView:window];
  107. introView.icon1left.constant = rect1.origin.x + rect1.size.width / 2 - 43;
  108. introView.icon1top.constant = rect1.origin.y + rect1.size.height / 2 - 43 - [[UIApplication sharedApplication] statusBarFrame].size.height;
  109. CGRect rect2 = [self.skillView convertRect: self.skillView.bounds toView:window];
  110. introView.icon2left.constant = rect2.origin.x + rect2.size.width / 2 - 43;
  111. [window addSubview:introView];
  112. [introView updateConstraints];
  113. [introView layoutIfNeeded];
  114. [[NSUserDefaults standardUserDefaults] setObject:@1 forKey:@"intro"];
  115. }
  116. }
  117. - (void)viewWillDisappear:(BOOL)animated {
  118. [self.navigationController setNavigationBarHidden:NO animated:YES];
  119. }
  120. - (void)getDataFromNetworking {
  121. // [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  122. NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:[ModelUser user].modelpk, @"modelpk", nil];
  123. [YanCNetWorkManager requestPostWithURLStr:Url_refreshLogin(PublicUrl) parameters:dic finish:^(id dataDic) {
  124. [MBProgressHUD hideHUDForView:self.view animated:YES];
  125. NSString *issuccess = dataDic[@"msg"];
  126. if ([issuccess isEqualToString:@"success"]) {
  127. ModelUser *user = [ModelUser modelUser];
  128. [user setValuesForKeysWithDictionary:dataDic[@"data"]];
  129. user.modelpk = dataDic[@"data"][@"modelpk"];
  130. user.coin_a = dataDic[@"data"][@"coin_a"];
  131. user.coin_ir = dataDic[@"data"][@"coin_ir"];
  132. user.pk = dataDic[@"data"][@"pk"];
  133. user.qrcode = dataDic[@"data"][@"qrcode"];
  134. [ModelUser save:user];
  135. self.nameLabel.text = [NSString stringWithFormat:@"%@", dataDic[@"data"][@"pet"]];
  136. [self.avatarView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", PublicUrl, dataDic[@"data"][@"hphoto"]]] placeholderImage:[UIImage imageNamed:@"morentouxiang"]];
  137. online = user.is_a;
  138. [self setSwitchState:user.is_a];
  139. // if ([dataDic[@"data"][@"hasred"] isEqualToString:@"1"]) {
  140. // self.notificationView.hidden = NO;
  141. // }else{
  142. // self.notificationView.hidden = YES;
  143. // }
  144. [self getIncomeFromNetworking];
  145. } else {
  146. [MBProgressHUD showInfo:@"请求失败!"];
  147. }
  148. } enError:^(NSError *error) {
  149. [MBProgressHUD hideHUDForView:self.view animated:YES];
  150. }];
  151. }
  152. -(void)getIncomeFromNetworking{
  153. NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:[ModelUser modelUser].pk,@"memberpk", nil];
  154. [YanCNetWorkManager requestPostWithURLStr:Url_getIncomeToday(PublicUrl) parameters:dic finish:^(id dataDic) {
  155. NSString *issuccess = dataDic[@"msg"];
  156. if ([issuccess isEqualToString:@"success"]) {
  157. self.incomeLabel.text = [NSString stringWithFormat:@"今日收入 %@元", dataDic[@"count"]];
  158. }else {
  159. [MBProgressHUD showInfo:@"请求失败!"];
  160. }
  161. }enError:^(NSError *error) {
  162. [MBProgressHUD hideHUDForView:self.view animated:YES];
  163. }];
  164. }
  165. - (IBAction)handelTap:(id)sender {
  166. switch (((UITapGestureRecognizer *) sender).view.tag) {
  167. case 1: {
  168. ModelCardController *modelCardVC = [[ModelCardController alloc] init];
  169. modelCardVC.hidesBottomBarWhenPushed = YES;
  170. [self.navigationController pushViewController:modelCardVC animated:YES];
  171. break;
  172. }
  173. case 2: {
  174. MySkillsController *mySkillsVC = [[MySkillsController alloc] init];
  175. mySkillsVC.hidesBottomBarWhenPushed = YES;
  176. [self.navigationController pushViewController:mySkillsVC animated:YES];
  177. break;
  178. }
  179. case 3: {
  180. }
  181. case 4: {
  182. PromoteController* vc = [[PromoteController alloc] init];
  183. vc.hidesBottomBarWhenPushed = YES;
  184. [self.navigationController pushViewController:vc animated:YES];
  185. break;
  186. }
  187. case 5: {
  188. MyOrderController *vc = [[MyOrderController alloc] init];
  189. vc.hidesBottomBarWhenPushed = YES;
  190. [self.navigationController pushViewController:vc animated:YES];
  191. break;
  192. }
  193. case 6: {
  194. MyWalletController *myWalletVC = [[MyWalletController alloc] init];
  195. myWalletVC.hidesBottomBarWhenPushed = YES;
  196. myWalletVC.amount = [ModelUser modelUser].coin_a;
  197. [self.navigationController pushViewController:myWalletVC animated:YES];
  198. break;
  199. }
  200. case 7:{
  201. PlatformActivityController *activityVC = [[PlatformActivityController alloc] init];
  202. activityVC.hidesBottomBarWhenPushed = YES;
  203. [self.navigationController pushViewController:activityVC animated:YES];
  204. break;
  205. }
  206. case 8:{
  207. AboutUsViewController *aboutUsVC = [[AboutUsViewController alloc] init];
  208. aboutUsVC.hidesBottomBarWhenPushed = YES;
  209. [self.navigationController pushViewController:aboutUsVC animated:YES];
  210. break;
  211. }
  212. case 9:{
  213. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  214. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  215. [MBProgressHUD hideHUDForView:self.view];
  216. [MBProgressHUD showInfo:@"清理完成"];
  217. });
  218. break;
  219. }
  220. default:
  221. break;
  222. }
  223. }
  224. - (IBAction)tapSettings:(id)sender {
  225. SettingsViewController *settingsVC = [[SettingsViewController alloc] init];
  226. settingsVC.hidesBottomBarWhenPushed = YES;
  227. [self.navigationController pushViewController:settingsVC animated:YES];
  228. }
  229. - (IBAction)tapSwitch:(id)sender {
  230. [self updateOnline:!online];
  231. }
  232. - (void)updateOnline:(BOOL)state {
  233. __weak MineNewViewController* this = self;
  234. NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:[ModelUser modelUser].modelpk, @"modelpk", @(state), @"state", nil];
  235. [YanCNetWorkManager requestPostWithURLStr:Url_setOnline(PublicUrl)
  236. parameters:dic
  237. finish:^(id res) {
  238. BOOL success = [@"success" isEqualToString:res[@"msg"]];
  239. if (success) {
  240. online = state;
  241. [this setSwitchState:state];
  242. if (online) {
  243. [MBProgressHUD showInfo:@"您已开启在线模式"];
  244. } else {
  245. [MBProgressHUD showInfo:@"您已开启离线模式,别人将无法呼叫您"];
  246. }
  247. } else {
  248. [MBProgressHUD showInfo:@"请求失败!"];
  249. }
  250. }
  251. enError:^(NSError *error) {
  252. [MBProgressHUD hideHUDForView:self.view animated:YES];
  253. }];
  254. }
  255. - (void)setSwitchState:(BOOL)state {
  256. if (state) {
  257. [UIView animateWithDuration:0.25
  258. delay:0
  259. options:UIViewAnimationOptionCurveEaseOut
  260. animations:^{
  261. self.switchView.backgroundColor = [UIColor whiteColor];
  262. self.switchIndicatorView.backgroundColor = [UIColor colorWithRed:255/255.0 green:64/255.0 blue:149/255.0 alpha:1];
  263. self.transformView.transform = CGAffineTransformMakeTranslation(0, 0);
  264. }
  265. completion:nil];
  266. } else {
  267. [UIView animateWithDuration:0.25
  268. delay:0
  269. options:UIViewAnimationOptionCurveEaseOut
  270. animations:^{
  271. self.switchView.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.3];
  272. self.switchIndicatorView.backgroundColor = [UIColor whiteColor];
  273. self.transformView.transform = CGAffineTransformMakeTranslation(-32, 0);
  274. }
  275. completion:nil];
  276. }
  277. }
  278. - (IBAction)tapRank:(id)sender {
  279. RankController* rankVC = [[RankController alloc] init];
  280. rankVC.hidesBottomBarWhenPushed = YES;
  281. [self.navigationController pushViewController:rankVC animated:YES];
  282. }
  283. - (UIStatusBarStyle)preferredStatusBarStyle {
  284. return UIStatusBarStyleLightContent;
  285. }
  286. @end