Browse Source

登录,授权完成, 遗留问题:绑定手机号openId,手机密码等验证,绑定完成直接跳转定位页面

南鑫林 6 years ago
parent
commit
689adaf9d6

+ 0 - 3
RainbowPlanet/RainbowPlanet/Modules/LocationModules/SelfRecommendation/ViewController/SelfRecommendationViewController.swift

@@ -59,7 +59,4 @@ class SelfRecommendationViewController: BaseViewController {
         }
         return selfRecommendationView
     }()
-    
-    
-    
 }

+ 6 - 7
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/BindPhoneNumber/ViewController/BindPhoneNumberViewController.swift

@@ -10,6 +10,8 @@ import UIKit
 
 class BindPhoneNumberViewController: BaseViewController {
 
+    var wxLoginModel : UMLoginModel?
+    
     override func viewDidLoad() {
         super.viewDidLoad()
 
@@ -45,13 +47,10 @@ class BindPhoneNumberViewController: BaseViewController {
             })
         }
         bindPhoneNumberView.loginBlock = {
-            (phoneNumber,sms) in
-            SwiftMoyaNetWorkServiceUser.shared().userBindMobileApi(mobile: phoneNumber, smsCode: sms, completion: { [weak self] (data) -> (Void) in
-//                AlertSheetView.alert(title: "获取你的位置信息", detailTitle: "你的位置信息将帮助彩虹星球展示离你最近的门店", cancelTitle: "拒绝", sureTitle: "允许", cancelBlock: { (popupView, Int, string) in
-//
-//                }, confirmBlock: { (popupView, Int, string) in
-//
-//                })
+            [weak self] (phoneNumber,sms) in
+            SwiftMoyaNetWorkServiceUser.shared().userBindMobileApi(mobile: phoneNumber, smsCode: sms, unionId: self?.wxLoginModel?.union_id ?? "", openId: self?.wxLoginModel?.open_id ?? "", completion: { [weak self] (data) -> (Void) in
+                self?.navigationController?.pushViewController(LocationViewController(), animated: true)
+
             })
         }
         return bindPhoneNumberView

+ 4 - 6
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/ViewController/MobileLoginViewController.swift

@@ -41,13 +41,11 @@ class MobileLoginViewController: BaseViewController {
         // 登录
         mobileLoginView.loginBlock = {
             (phoneNumber,sms) in
-            SwiftMoyaNetWorkServiceUser.shared().userBindMobileApi(mobile: phoneNumber, smsCode: sms, completion: { [weak self] (data) -> (Void) in
-                //                AlertSheetView.alert(title: "获取你的位置信息", detailTitle: "你的位置信息将帮助彩虹星球展示离你最近的门店", cancelTitle: "拒绝", sureTitle: "允许", cancelBlock: { (popupView, Int, string) in
-                //
-                //                }, confirmBlock: { (popupView, Int, string) in
-                //
-                //                })
+            SwiftMoyaNetWorkServiceUser.shared().userMobileRegisterApi(mobile: phoneNumber, sms_code: sms, completion: { [weak self] (data) -> (Void) in
+                self?.navigationController?.pushViewController(LocationViewController(), animated: true)
+
             })
+            
         }
         //密码登录
         mobileLoginView.passwordLoginBlock = {

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/PasswordLogin/View/PasswordLoginView.swift

@@ -106,7 +106,7 @@ class PasswordLoginView: BaseView {
 
     private lazy var bindPhoneNumberLabel: UILabel = {
         let bindPhoneNumberLabel = UILabel()
-        bindPhoneNumberLabel.text = "手机验证登录"
+        bindPhoneNumberLabel.text = "手机密码登录"
         bindPhoneNumberLabel.textColor = k333333Color
         bindPhoneNumberLabel.font = kScaleBoldFont22
         return bindPhoneNumberLabel

+ 4 - 7
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/PasswordLogin/ViewController/PasswordLoginViewController.swift

@@ -30,13 +30,10 @@ class PasswordLoginViewController: BaseViewController {
         let passwordLoginView = PasswordLoginView()
         // 登录
         passwordLoginView.loginBlock = {
-            (phoneNumber,sms) in
-            SwiftMoyaNetWorkServiceUser.shared().userBindMobileApi(mobile: phoneNumber, smsCode: sms, completion: { [weak self] (data) -> (Void) in
-                //                AlertSheetView.alert(title: "获取你的位置信息", detailTitle: "你的位置信息将帮助彩虹星球展示离你最近的门店", cancelTitle: "拒绝", sureTitle: "允许", cancelBlock: { (popupView, Int, string) in
-                //
-                //                }, confirmBlock: { (popupView, Int, string) in
-                //
-                //                })
+            [weak self] (phoneNumber,password) in
+            SwiftMoyaNetWorkServiceUser.shared().userMobileLoginApi(mobile: phoneNumber, password: password, completion: { (data) -> (Void) in
+                self?.navigationController?.pushViewController(LocationViewController(), animated: true)
+
             })
         }
         //忘记密码

+ 5 - 3
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/RegisterLogin/ViewController/RegisterLoginViewController.swift

@@ -34,7 +34,8 @@ class RegisterLoginViewController: BaseViewController {
         // 微信注册登录
         registerLoginView.weiXinLoginBlock = { [weak self] in
             UMManager.shared().loginGetUserInfo(platformType: UMSocialPlatformType.wechatSession) { (loginModel) -> (Void) in
-                SwiftMoyaNetWorkServiceUser.shared().userWeiXinRegisterApi(open_id: loginModel.open_id, union_id: loginModel.union_id, avatar: loginModel.avatar, username: loginModel.username, gender: loginModel.gender, completion: { (loginModel) -> (Void) in
+                let wxLoginModel = loginModel
+                SwiftMoyaNetWorkServiceUser.shared().userWeiXinRegisterApi(open_id: wxLoginModel.open_id, union_id: wxLoginModel.union_id, avatar: wxLoginModel.avatar, username: wxLoginModel.username, gender: wxLoginModel.gender, completion: { (loginModel) -> (Void) in
                     let loginModel =  loginModel as! LoginModel
                     if (loginModel.mobile != nil && loginModel.mobile != "" ) {
 //                        if self?.presentingViewController != nil {
@@ -44,10 +45,11 @@ class RegisterLoginViewController: BaseViewController {
 //                        } else {
 //                            kAppDelegate.setTabbarController()
 //                        }
-                        
 
                     }else {
-                        let nav = BaseNavigationViewController.init(rootViewController: BindPhoneNumberViewController())
+                        let vc = BindPhoneNumberViewController()
+                        vc.wxLoginModel = wxLoginModel
+                        let nav = BaseNavigationViewController.init(rootViewController: vc)
                         self?.present(nav, animated: true, completion: {
 
                         })

+ 1 - 13
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/ViewController/ShoppingMallViewController.swift

@@ -9,24 +9,12 @@
 import UIKit
 
 class ShoppingMallViewController: BaseViewController {
-
-    override func viewWillAppear(_ animated: Bool) {
-        super.viewWillAppear(animated)
-        MobClick.beginLogPageView("ShoppingMallViewController:商城页面")
-    }
-
-    override func viewWillDisappear(_ animated: Bool) {
-        super.viewWillDisappear(animated)
-        MobClick.endLogPageView("ShoppingMallViewController:商城页面")
-    }
-
-
     override func viewDidLoad() {
         super.viewDidLoad()
         setupViews()
         setupLayouts()
+        
     }
-
     override func setupViews() {
         super.setupViews()
         navigationBar.addSubview(navigationBarView)

+ 3 - 1
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift

@@ -162,10 +162,12 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
     ///   - mobile: 手机号
     ///   - smsCode: 验证码
     ///   - completion: 回调
-    func userBindMobileApi(mobile:String,smsCode:String,completion: @escaping apiCallBack) {
+    func userBindMobileApi(mobile:String,smsCode:String,unionId:String,openId:String,completion: @escaping apiCallBack) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(mobile, forKey: "mobile")
         parameters.updateValue(smsCode, forKey: "sms_code")
+        parameters.updateValue(unionId, forKey: "union_id")
+        parameters.updateValue(openId, forKey: "open_id")
 
         SwiftProgressHUD.shared().showWait()
         SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.userBindMobile(parameters: parameters))) { (rootModel) in

+ 65 - 26
RainbowPlanet/RainbowPlanet/Tools/Regex/Regex.swift

@@ -8,16 +8,6 @@
 
 import Foundation
 
-
-//let kUserNameRegex = "^[A-Za-z0-9]{8,15}$"
-/// 用户密码验证(允许使用小写字母、数字,一共8~15个字符)
-let kUserPasswordRegex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,15}$"
-/// 用户名验证(允许使用小写字母、数字,一共6~20个字符)
-let kUserNameRegex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$"
-
-/// 字符密码不能连续6位
-let kPayPasswordRegex = "^\\d{6}$"
-
 /// Email验证
 let kEmailRegex = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
 
@@ -33,6 +23,19 @@ let kIPRegex = "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[
 ///html标签验证
 let kHTMLRegex = "^<([a-z]+)([^<]+)*(?:>(.*)<\\/\\1>|\\s+\\/>)$"
 
+// /6-16位数字字母混合,不能全为数字,不能全为字母,首位不能为数字
+let kCharacterCombinationRegex = "^(?![0-9])(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$"
+/// 字符密码不能连续6位
+let kSixContinuousRegex = "^\\d{6}$"
+///6位顺增
+let kSixDigitsIncreaseRegex = "^(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\\d$"
+///6位顺降
+let kSixDigitsDownRegex = "^(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\\d$"
+///6位顺降或6位顺增
+let kSixDigitsIncreaseOrDigitsDownRegex = "^(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\\d$"
+///3位以上的重复数字
+let kThreeDuplicateNumbersRegex = "^([\\d])\\1{2,}"
+
 /// 基于NSRegularExpression api 的正则处理工具类
 public struct Regex {
 
@@ -193,35 +196,71 @@ extension Regex {
 
 //正则匹配结果
 extension Regex {
-
-    /// 验证密码是否正确
-    ///
-    /// - Parameter userPassword: 用户密码
+    
+    /// 密码组合验证
     /// - Returns: Bool
-    public static func isUserPasswordTrue(userPassword:String = "") -> Bool {
+    static func isCharacterCombinationRegex(str:String = "") -> Bool {
         //初始化正则工具类
-        let regex = try! Regex(kUserPasswordRegex)
-        if regex.matches(userPassword) {
+        let regex = try! Regex(kCharacterCombinationRegex)
+        if regex.matches(str) {
             return true
         }else{
-            SwiftProgressHUD.shared().showText("请输入8-15位数字,字母组合")
             return false
         }
     }
-
-    /// 验证用户名是否正确
+    
+    
+    /// 是否6位顺增
     ///
-    /// - Parameter userName: 用户密码
-    /// - Returns: Bool
-    public static func isUserNameTrue(userName:String = "") -> Bool {
+    /// - Returns: s
+    static func isSixDigitsIncreaseRegex(str:String = "") -> Bool {
+        //初始化正则工具类
+        let regex = try! Regex(kSixDigitsIncreaseRegex)
+        if regex.matches(str) {
+            return true
+        }else{
+            return false
+        }
+    }
+    
+    /// 是否6位顺减
+    ///
+    /// - Returns: s
+    static func isSixDigitsDownRegex(str:String = "") -> Bool {
+        //初始化正则工具类
+        let regex = try! Regex(kSixDigitsDownRegex)
+        if regex.matches(str) {
+            return true
+        }else{
+            return false
+        }
+    }
+    
+    /// 是否6位顺减或顺增
+    ///
+    /// - Returns: s
+    static func isSixDigitsIncreaseOrDigitsDownRegex(str:String = "") -> Bool {
         //初始化正则工具类
-        let regex = try! Regex(kUserNameRegex)
-        if regex.matches(userName) {
+        let regex = try! Regex(kSixDigitsIncreaseOrDigitsDownRegex)
+        if regex.matches(str) {
             return true
         }else{
-            SwiftProgressHUD.shared().showText("请输入6-20位数字,字母组合")
             return false
         }
     }
+    
+    /// 是否3位以上的重复数字
+    ///
+    /// - Returns: s
+    static func isThreeDuplicateNumbersRegex(str:String = "") -> Bool {
+        //初始化正则工具类
+        let regex = try! Regex(kThreeDuplicateNumbersRegex)
+        if regex.matches(str) {
+            return true
+        }else{
+            return false
+        }
+    }
+
 }