2020#import " DXEDiningRecord.h"
2121#import " DXERecordDishItem.h"
2222#import " DXELoginView.h"
23+ #import " AFNetworking.h"
24+ #import " JGProgressHUD.h"
2325
2426#define DXE_TEST_MEMBER
2527
@@ -35,10 +37,13 @@ typedef NS_ENUM(NSInteger, DXEMainChildViewControllerIndex)
3537 DXEMainChildViewControllerIndexMyself
3638};
3739
38- @interface DXEMainViewController () < CRTabBarDelegate >
40+ @interface DXEMainViewController () < CRTabBarDelegate, NSXMLParserDelegate >
3941
4042@property (nonatomic , strong ) DXELoginView *loginView;
4143
44+ @property (nonatomic , strong ) NSXMLParser *loginParser;
45+ @property (nonatomic , strong ) NSString *memberData;
46+
4247@end
4348
4449@implementation DXEMainViewController
@@ -169,7 +174,6 @@ - (BOOL)tabBar:(CRTabBar *)tabBar shouldSelecteItemAtIndex:(NSInteger)index
169174 options: nil ] firstObject ];
170175 self.loginView .controller = self;
171176 self.loginView .userNamePlaceholder = @" 会员卡号/手机号码" ;
172- self.loginView .loginFailedMessage .text = @" 用户名或密码输入错误,请重新输入!" ;
173177 [CRModal showModalView: self .loginView
174178 coverOption: CRModalOptionCoverDark
175179 tapOutsideToDismiss: NO
@@ -205,7 +209,7 @@ - (void)moveToChildViewControllerAtIndex:(NSInteger)index
205209 self.selectedViewController = newSelectedViewController;
206210}
207211
208- #pragma mark - notification
212+ #pragma mark - Target-Action
209213
210214- (IBAction )onQRcodeButtonClicked : (id )sender
211215{
@@ -216,19 +220,44 @@ - (IBAction)onQRcodeButtonClicked:(id)sender
216220
217221- (void )onLoginButtonClickedInLoginView : (DXELoginView *)loginView
218222{
219- DXEMyselfViewController *myself = [self .contentViewControllers objectAtIndex: DXEMainChildViewControllerIndexMyself];
220- myself.member = [[DXEMember alloc ] initWithJSONData: [self testMemberData ]];
221- myself.login = YES ;
222- if (myself.login )
223+ if ([loginView.userName.text isEqualToString: @" " ]
224+ || [loginView.password.text isEqualToString: @" " ])
223225 {
224- [self .tabBar setItemSelectedAtIndex: DXEMainChildViewControllerIndexMyself];
225- [self moveToChildViewControllerAtIndex: DXEMainChildViewControllerIndexMyself];
226- DXEHomePageViewController *homepage = [self .contentViewControllers objectAtIndex: DXEMainChildViewControllerIndexHomepage];
227- [homepage showAllDishClasses ];
226+ self.loginView .loginFailedMessage .hidden = NO ;
227+ self.loginView .loginFailedMessage .text = @" 会员卡号/手机号码与密码不能为空" ;
228+ }
229+ else
230+ {
231+ self.loginView .loginFailedMessage .hidden = YES ;
232+
233+ JGProgressHUD *hud = [JGProgressHUD progressHUDWithStyle: JGProgressHUDStyleDark];
234+ hud.textLabel .text = @" 登录中" ;
235+ hud.square = YES ;
236+ [hud showInView: loginView];
237+
238+ NSURL *baseURL = [NSURL URLWithString: kDXEWebServiceBaseURL ];
239+ AFHTTPSessionManager *httpManager = [[AFHTTPSessionManager alloc ] initWithBaseURL: baseURL];
240+ httpManager.responseSerializer = [AFXMLParserResponseSerializer serializer ];
241+ NSDictionary *parameters = @{
242+ @" name" : loginView.userName .text ,
243+ @" passwd" : loginView.password .text
244+ };
245+ [httpManager POST: @" VipLogin" parameters: parameters success: ^(NSURLSessionDataTask *task, id responseObject){
246+ [hud dismiss ];
247+ self.loginParser = (NSXMLParser *)responseObject;
248+ self.loginParser .delegate = self;
249+ [self .loginParser parse ];
250+ } failure: ^(NSURLSessionDataTask *task, NSError *error){
251+ [hud dismiss ];
252+ self.loginView .loginFailedMessage .hidden = NO ;
253+ self.loginView .loginFailedMessage .text = @" 网络连接错误,请检查网络" ;
254+ NSLog (@" %@ " , error);
255+ }];
228256 }
229- [CRModal dismiss ];
230257}
231258
259+ #pragma mark - Notification
260+
232261- (void )onMoveToHomepage : (NSNotification *)notification
233262{
234263 [self .tabBar setItemSelectedAtIndex: DXEMainChildViewControllerIndexHomepage];
@@ -259,6 +288,39 @@ - (void)qrCodeDidScan:(NSString *)codeString
259288 NSLog (@" %@ " , codeString);
260289}
261290
291+ #pragma mark - NSXMLParserDelegate
292+
293+ - (void )parserDidStartDocument : (NSXMLParser *)parser
294+ {
295+ self.memberData = [NSString string ];
296+ }
297+
298+ - (void )parser : (NSXMLParser *)parser foundCharacters : (NSString *)string
299+ {
300+ self.memberData = [self .memberData stringByAppendingString: string];
301+ }
302+
303+ - (void )parserDidEndDocument : (NSXMLParser *)parser
304+ {
305+ if ([self .memberData isEqualToString: @" " ])
306+ {
307+ self.loginView .loginFailedMessage .text = @" 用户名或密码输入错误,请重新输入!" ;
308+ self.loginView .loginFailedMessage .hidden = NO ;
309+ }
310+ else
311+ {
312+ DXEMyselfViewController *myself = [self .contentViewControllers objectAtIndex: DXEMainChildViewControllerIndexMyself];
313+ myself.member = [[DXEMember alloc ] initWithJSONData: [self testMemberData ]];
314+ myself.login = YES ;
315+ [self .tabBar setItemSelectedAtIndex: DXEMainChildViewControllerIndexMyself];
316+ [self moveToChildViewControllerAtIndex: DXEMainChildViewControllerIndexMyself];
317+ DXEHomePageViewController *homepage = [self .contentViewControllers objectAtIndex: DXEMainChildViewControllerIndexHomepage];
318+ [homepage showAllDishClasses ];
319+
320+ [CRModal dismiss ];
321+ }
322+ }
323+
262324#ifdef DXE_TEST_MEMBER
263325
264326- (NSData *)testMemberData
0 commit comments