南鑫林 преди 5 години
родител
ревизия
a172e837e0

+ 56 - 8
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/BindPhoneNumber/View/BindPhoneNumberView.swift

@@ -17,11 +17,14 @@ class BindPhoneNumberView: BaseView {
 
     /// 验证码
     var sms : String = ""
+    
+    /// 邀请码
+    var invitationCode : String = ""
 
     typealias SendSmSBlock = (_ smsButton: CountdownButton,_ phoneNumber : String) -> Void
     var sendSmSBlock : SendSmSBlock?
 
-    typealias LoginBlock = (_ phoneNumber : String ,_ sms : String) -> Void
+    typealias LoginBlock = (_ phoneNumber : String ,_ sms : String,_ invitationCode : String) -> Void
     var loginBlock : LoginBlock?
 
     override func setupViews() {
@@ -37,6 +40,10 @@ class BindPhoneNumberView: BaseView {
         smsBgView.addSubview(linesmsLabel)
         smsBgView.addSubview(smsButton)
         smsBgView.addSubview(smsTextField)
+        
+        addSubview(invitationCodeBgView)
+        invitationCodeBgView.addSubview(lineInvitationCodeLabel)
+        invitationCodeBgView.addSubview(invitationCodeTextField)
 
         addSubview(loginButton)
     }
@@ -92,9 +99,23 @@ class BindPhoneNumberView: BaseView {
             make.left.equalTo(phoneAreaCodeLabel)
             make.width.equalTo(kScreenWidth - kScaleValue(value: 76 + 30 + smsButton.width))
         }
+        
+        invitationCodeBgView.snp.makeConstraints { (make) in
+            make.top.equalTo(smsBgView.snp.bottom)
+            make.left.right.height.equalTo(phoneNumberBgView)
+        }
+        lineInvitationCodeLabel.snp.makeConstraints { (make) in
+            make.left.right.bottom.equalToSuperview()
+            make.height.equalTo(0.5)
+        }
+        invitationCodeTextField.snp.makeConstraints { (make) in
+            make.left.right.equalToSuperview()
+            make.top.equalToSuperview().offset(kScaleValue(value: 6))
+            make.height.equalTo(phoneAreaCodeLabel)
+        }
 
         loginButton.snp.makeConstraints { (make) in
-            make.top.equalTo(smsBgView.snp.bottom).offset(kScaleValue(value: 35))
+            make.top.equalTo(invitationCodeBgView.snp.bottom).offset(kScaleValue(value: 35))
             make.height.equalTo(kScaleValue(value:44))
             make.left.equalToSuperview().offset(kScaleValue(value: 38))
             make.right.equalToSuperview().offset(kScaleValue(value: -38))
@@ -146,7 +167,7 @@ class BindPhoneNumberView: BaseView {
         phoneNumberTextField.clearButtonMode = .whileEditing
         phoneNumberTextField.sizeToFit()
         phoneNumberTextField.keyboardType = .numberPad
-        phoneNumberTextField.tintColor = kFFA42FColor
+        phoneNumberTextField.tintColor = kThemeColor
 
         phoneNumberTextField.rx.text.changed.subscribe(onNext: { [weak self] (text) in
             self?.phoneNumberTextField.text = String(text?.prefix(11) ?? "") as String
@@ -173,12 +194,12 @@ class BindPhoneNumberView: BaseView {
         smsButton.disabledText = "  seconds后重新获取  "
         smsButton.setTitle(smsButton.normalText, for: UIControl.State.normal)
         smsButton.setTitle(smsButton.disabledText, for: UIControl.State.disabled)
-        smsButton.setTitleColor(kFFA42FColor, for: UIControl.State.normal)
+        smsButton.setTitleColor(kThemeColor, for: UIControl.State.normal)
         smsButton.setTitleColor(k333333Color, for: UIControl.State.disabled)
         smsButton.titleLabel?.font = kScaleRegularFont12
         smsButton.contentHorizontalAlignment = UIControl.ContentHorizontalAlignment.center
         smsButton.sizeToFit()
-        smsButton.normalBorderColor = kFFA42FColor
+        smsButton.normalBorderColor = kThemeColor
         smsButton.normalBorderWidth = 0.5
         smsButton.normalCornerRadius = kScaleValue(value: 15)
         smsButton.normalBackgroundColor = UIColor.white
@@ -209,7 +230,7 @@ class BindPhoneNumberView: BaseView {
         smsTextField.font = kScaleRegularFont16
         smsTextField.sizeToFit()
         smsTextField.keyboardType = .numberPad
-        smsTextField.tintColor = kFFA42FColor
+        smsTextField.tintColor = kThemeColor
         smsTextField.rx.text.changed.subscribe(onNext: { [weak self] (text) in
             self?.smsTextField.text = String(text?.prefix(6) ?? "") as String
             self?.sms = self?.smsTextField.text ?? ""
@@ -218,6 +239,33 @@ class BindPhoneNumberView: BaseView {
 
         return smsTextField
     }()
+    
+    private lazy var invitationCodeBgView: UIView = {
+        let invitationCodeBgView = UIView()
+        return invitationCodeBgView
+    }()
+    
+    private lazy var lineInvitationCodeLabel: UILabel = {
+        let lineInvitationCodeLabel = UILabel()
+        lineInvitationCodeLabel.backgroundColor = ke6e6e6Color
+        return lineInvitationCodeLabel
+    }()
+    
+    private lazy var invitationCodeTextField : UITextField = {
+        let invitationCodeTextField = UITextField()
+        invitationCodeTextField.placeholder = "请输入邀请码(选填)"
+        invitationCodeTextField.borderStyle = .none
+        invitationCodeTextField.textColor = k666666Color
+        invitationCodeTextField.font = kScaleRegularFont16
+        invitationCodeTextField.clearButtonMode = .whileEditing
+        invitationCodeTextField.sizeToFit()
+        invitationCodeTextField.keyboardType = .numberPad
+        invitationCodeTextField.tintColor = kThemeColor
+        invitationCodeTextField.rx.text.orEmpty.changed.subscribe(onNext: { [weak self] (text) in
+            self?.invitationCode = self?.invitationCodeTextField.text ?? ""
+        }).disposed(by: disposeBag)
+        return invitationCodeTextField
+    }()
 
     private lazy var loginButton: UIButton = {
         let loginButton = UIButton(type: UIButton.ButtonType.custom)
@@ -233,7 +281,7 @@ class BindPhoneNumberView: BaseView {
         loginButton.rx.tap.subscribe(onNext: { [weak self] (data) in
 
             if let loginBlock = self?.loginBlock {
-                loginBlock((self?.phoneNumber)!,(self?.sms)!)
+                loginBlock((self?.phoneNumber)!,(self?.sms)!,(self?.invitationCode)!)
             }
 
         }).disposed(by: disposeBag)
@@ -249,7 +297,7 @@ class BindPhoneNumberView: BaseView {
             }.subscribe(onNext: {
                 [weak self] isEmpty in
                 self?.loginButton.isEnabled = isEmpty
-            }).disposed(by: self.disposeBag)
+        }).disposed(by: self.disposeBag)
     }
 
 }

+ 2 - 4
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/BindPhoneNumber/ViewController/BindPhoneNumberViewController.swift

@@ -31,9 +31,7 @@ class BindPhoneNumberViewController: BaseViewController {
 
     override  func setupViews() {
         if bindPhoneNumberVCType == .weixinlogin {
-            navigationBar.wr_setLeftButton(image: UIImage())
             navigationBar.wr_setRightButton(title: "跳过", titleColor: k333333Color)
-            navigationBar.onClickLeftButton = nil
             navigationBar.onClickRightButton = {
                 [weak self] in
                 let vc = LocationViewController()
@@ -65,8 +63,8 @@ class BindPhoneNumberViewController: BaseViewController {
             })
         }
         bindPhoneNumberView.loginBlock = {
-            [weak self] (phoneNumber,sms) in
-            SwiftMoyaNetWorkServiceUser.shared().userBindMobileApi(mobile: phoneNumber, smsCode: sms, unionId: UserModel.shared().getModel()?.unionId ?? "", openId: UserModel.shared().getModel()?.openId ?? "", completion: { [weak self] (data) -> (Void) in
+            [weak self] (phoneNumber,sms,invitationCode) in
+            SwiftMoyaNetWorkServiceUser.shared().userBindMobileApi(mobile: phoneNumber, smsCode: sms, unionId: UserModel.shared().getModel()?.unionId ?? "", openId: UserModel.shared().getModel()?.openId ?? "", invitationCode: invitationCode, completion: { [weak self] (data) -> (Void) in
                 if self?.bindPhoneNumberVCType == .weixinlogin {
                     self?.navigationController?.pushViewController(LocationViewController(), animated: true)
 

+ 55 - 6
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/View/MobileLoginView.swift

@@ -17,11 +17,14 @@ class MobileLoginView: BaseView {
 
     /// 验证码
     var sms : String = ""
+    
+    /// 邀请码
+    var invitationCode : String = ""
 
     typealias SendSmSBlock = (_ smsButton: CountdownButton,_ phoneNumber : String) -> Void
     var sendSmSBlock : SendSmSBlock?
 
-    typealias LoginBlock = (_ phoneNumber : String ,_ sms : String) -> Void
+    typealias LoginBlock = (_ phoneNumber : String ,_ sms : String,_ invitationCode : String) -> Void
     var loginBlock : LoginBlock?
 
     typealias PasswordLoginBlock = () -> Void
@@ -39,6 +42,10 @@ class MobileLoginView: BaseView {
         smsBgView.addSubview(linesmsLabel)
         smsBgView.addSubview(smsButton)
         smsBgView.addSubview(smsTextField)
+        
+        addSubview(invitationCodeBgView)
+        invitationCodeBgView.addSubview(lineInvitationCodeLabel)
+        invitationCodeBgView.addSubview(invitationCodeTextField)
 
         addSubview(loginButton)
         addSubview(passwordLoginButton)
@@ -92,9 +99,23 @@ class MobileLoginView: BaseView {
             make.left.equalTo(phoneAreaCodeLabel)
             make.width.equalTo(kScreenWidth - kScaleValue(value: 76 + 30 + smsButton.width))
         }
+        
+        invitationCodeBgView.snp.makeConstraints { (make) in
+            make.top.equalTo(smsBgView.snp.bottom)
+            make.left.right.height.equalTo(phoneNumberBgView)
+        }
+        lineInvitationCodeLabel.snp.makeConstraints { (make) in
+            make.left.right.bottom.equalToSuperview()
+            make.height.equalTo(0.5)
+        }
+        invitationCodeTextField.snp.makeConstraints { (make) in
+            make.left.right.equalToSuperview()
+            make.top.equalToSuperview().offset(kScaleValue(value: 6))
+            make.height.equalTo(phoneAreaCodeLabel)
+        }
 
         loginButton.snp.makeConstraints { (make) in
-            make.top.equalTo(smsBgView.snp.bottom).offset(kScaleValue(value: 35))
+            make.top.equalTo(invitationCodeBgView.snp.bottom).offset(kScaleValue(value: 35))
             make.height.equalTo(kScaleValue(value:44))
             make.left.equalToSuperview().offset(kScaleValue(value: 38))
             make.right.equalToSuperview().offset(kScaleValue(value: -38))
@@ -171,12 +192,12 @@ class MobileLoginView: BaseView {
         smsButton.disabledText = "  seconds后重新获取  "
         smsButton.setTitle(smsButton.normalText, for: UIControl.State.normal)
         smsButton.setTitle(smsButton.disabledText, for: UIControl.State.disabled)
-        smsButton.setTitleColor(kFFA42FColor, for: UIControl.State.normal)
+        smsButton.setTitleColor(kThemeColor, for: UIControl.State.normal)
         smsButton.setTitleColor(k333333Color, for: UIControl.State.disabled)
         smsButton.titleLabel?.font = kRegularFont12
         smsButton.contentHorizontalAlignment = UIControl.ContentHorizontalAlignment.center
         smsButton.sizeToFit()
-        smsButton.normalBorderColor = kFFA42FColor
+        smsButton.normalBorderColor = kThemeColor
         smsButton.normalBorderWidth = 0.5
         smsButton.normalCornerRadius = kScaleValue(value: 15)
         smsButton.normalBackgroundColor = UIColor.white
@@ -207,7 +228,7 @@ class MobileLoginView: BaseView {
         smsTextField.font = kScaleRegularFont16
         smsTextField.sizeToFit()
         smsTextField.keyboardType = .numberPad
-        smsTextField.tintColor = kFFA42FColor
+        smsTextField.tintColor = kThemeColor
 
         smsTextField.rx.text.changed.subscribe(onNext: { [weak self] (text) in
             self?.smsTextField.text = String(text?.prefix(6) ?? "") as String
@@ -217,6 +238,33 @@ class MobileLoginView: BaseView {
 
         return smsTextField
     }()
+    
+    private lazy var invitationCodeBgView: UIView = {
+        let invitationCodeBgView = UIView()
+        return invitationCodeBgView
+    }()
+    
+    private lazy var lineInvitationCodeLabel: UILabel = {
+        let lineInvitationCodeLabel = UILabel()
+        lineInvitationCodeLabel.backgroundColor = ke6e6e6Color
+        return lineInvitationCodeLabel
+    }()
+    
+    private lazy var invitationCodeTextField : UITextField = {
+        let invitationCodeTextField = UITextField()
+        invitationCodeTextField.placeholder = "请输入邀请码(选填)"
+        invitationCodeTextField.borderStyle = .none
+        invitationCodeTextField.textColor = k666666Color
+        invitationCodeTextField.font = kScaleRegularFont16
+        invitationCodeTextField.clearButtonMode = .whileEditing
+        invitationCodeTextField.sizeToFit()
+        invitationCodeTextField.keyboardType = .numberPad
+        invitationCodeTextField.tintColor = kThemeColor
+        invitationCodeTextField.rx.text.orEmpty.changed.subscribe(onNext: { [weak self] (text) in
+            self?.invitationCode = self?.invitationCodeTextField.text ?? ""
+        }).disposed(by: disposeBag)
+        return invitationCodeTextField
+    }()
 
     private lazy var loginButton: UIButton = {
         let loginButton = UIButton(type: UIButton.ButtonType.custom)
@@ -232,7 +280,7 @@ class MobileLoginView: BaseView {
         loginButton.rx.tap.subscribe(onNext: { [weak self] (data) in
 
             if let loginBlock = self?.loginBlock {
-                loginBlock((self?.phoneNumber)!,(self?.sms)!)
+                loginBlock((self?.phoneNumber)!,(self?.sms)!, (self?.invitationCode)!)
             }
 
         }).disposed(by: disposeBag)
@@ -266,5 +314,6 @@ class MobileLoginView: BaseView {
             }).disposed(by: self.disposeBag)
     }
 
+
 }
 

+ 2 - 3
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/MobileLogin/ViewController/MobileLoginViewController.swift

@@ -40,10 +40,9 @@ class MobileLoginViewController: BaseViewController {
         }
         // 登录
         mobileLoginView.loginBlock = {
-            (phoneNumber,sms) in
-            SwiftMoyaNetWorkServiceUser.shared().userMobileRegisterApi(mobile: phoneNumber, sms_code: sms, completion: { [weak self] (data) -> (Void) in
+            (phoneNumber,sms,invitationCode) in
+            SwiftMoyaNetWorkServiceUser.shared().userMobileRegisterApi(mobile: phoneNumber, sms_code: sms,invitationCode:invitationCode, completion: { [weak self] (data) -> (Void) in
                 self?.navigationController?.pushViewController(LocationViewController(), animated: true)
-
             })
             
         }

+ 2 - 4
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/PasswordLogin/View/PasswordLoginView.swift

@@ -141,7 +141,7 @@ class PasswordLoginView: BaseView {
         phoneNumberTextField.clearButtonMode = .whileEditing
         phoneNumberTextField.sizeToFit()
         phoneNumberTextField.keyboardType = .numberPad
-        phoneNumberTextField.tintColor = kFFA42FColor
+        phoneNumberTextField.tintColor = kThemeColor
         phoneNumberTextField.rx.text.changed.subscribe(onNext: { [weak self] (text) in
             self?.phoneNumberTextField.text = String(text?.prefix(11) ?? "") as String
             self?.phoneNumber = self?.phoneNumberTextField.text ?? ""
@@ -181,7 +181,7 @@ class PasswordLoginView: BaseView {
         passwordTextField.sizeToFit()
         passwordTextField.isSecureTextEntry = false
         passwordTextField.clearButtonMode = .whileEditing
-        passwordTextField.tintColor = kFFA42FColor
+        passwordTextField.tintColor = kThemeColor
 
         passwordTextField.rx.text.changed.subscribe(onNext: { [weak self] (text) in
             self?.passwordTextField.text = String(text?.prefix(16) ?? "") as String
@@ -226,8 +226,6 @@ class PasswordLoginView: BaseView {
         return forgetPasswordButton
     }()
 
-
-
     func observableString() {
         Observable.combineLatest(Observable.just(phoneNumber), Observable.just(password)) { (textValue1, textValue2) -> Bool in
             let textValue1 = String(textValue1.prefix(11)) as String

+ 4 - 7
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/RegisterLogin/ViewController/RegisterLoginViewController.swift

@@ -35,18 +35,15 @@ class RegisterLoginViewController: BaseViewController {
         registerLoginView.weiXinLoginBlock = { [weak self] in
             UMManager.shared().loginGetUserInfo(platformType: UMSocialPlatformType.wechatSession) { (UserModel) -> (Void) in
                 let wxLoginModel = UserModel
-                SwiftMoyaNetWorkServiceUser.shared().userWeiXinRegisterApi(open_id: wxLoginModel.open_id, union_id: wxLoginModel.union_id, avatar: wxLoginModel.avatar, username: wxLoginModel.username, gender: wxLoginModel.gender, completion: { (UserModel) -> (Void) in
-                    let UserModel =  UserModel as! UserModel
-                    if (UserModel.mobile != nil && UserModel.mobile != "" ) {
+                SwiftMoyaNetWorkServiceUser.shared().userWeiXinRegisterApi(open_id: wxLoginModel.open_id, union_id: wxLoginModel.union_id, avatar: wxLoginModel.avatar, username: wxLoginModel.username, gender: wxLoginModel.gender, completion: { (userModel) -> (Void) in
+                    let userModel =  userModel as! UserModel
+                    if (userModel.mobile != nil && userModel.mobile != "" ) {
                         self?.navigationController?.pushViewController(LocationViewController(), animated: true)
 
                     }else {
                         let vc = BindPhoneNumberViewController()
                         vc.bindPhoneNumberVCType = .weixinlogin
-                        let nav = BaseNavigationViewController.init(rootViewController: vc)
-                        self?.present(nav, animated: true, completion: {
-
-                        })
+                        self?.navigationController?.pushViewController(vc, animated: true)
                     }
 
                 })

+ 9 - 4
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift

@@ -43,9 +43,12 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
         parameters.updateValue(gender, forKey: "gender")
         SwiftProgressHUD.shared().showWait()
         SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userWeiXinRegister(parameters: parameters))) { (userModel) in
-            UserModel.shared().setModel(model: userModel as! UserModel)
+            let userModel = userModel as! UserModel
+            if userModel.mobile != nil || userModel.mobile != "" {
+                UserModel.shared().setModel(model: userModel)
+            }
             SwiftProgressHUD.shared().hide()
-            completion(UserModel.shared().getModel() as Any)
+            completion(userModel as Any)
         }
     }
 
@@ -56,12 +59,13 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
     ///   - mobile: 手机号
     ///   - sms_code: 短信验证码
     ///   - completion: 回调
-    func userMobileRegisterApi(mobile:String,sms_code:String,completion: @escaping apiCallBack) {
+    func userMobileRegisterApi(mobile:String,sms_code:String,invitationCode:String,completion: @escaping apiCallBack) {
         
         if isMobileVerification(mobile: mobile) {
             var parameters = Dictionary<String,Any>()
             parameters.updateValue(mobile, forKey: "mobile")
             parameters.updateValue(sms_code, forKey: "sms_code")
+            parameters.updateValue(invitationCode, forKey: "invite_code")
             SwiftProgressHUD.shared().showWait()
             SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMobileRegister(parameters: parameters))) { (userModel) in
                 UserModel.shared().setModel(model: userModel as! UserModel)
@@ -132,7 +136,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
     ///   - unionId: 微信unioId
     ///   - openId: 微信openId
     ///   - completion: 回调
-    func userBindMobileApi(mobile:String,smsCode:String,unionId:String,openId:String,completion: @escaping apiCallBack) {
+    func userBindMobileApi(mobile:String,smsCode:String,unionId:String,openId:String,invitationCode:String,completion: @escaping apiCallBack) {
         
         if isMobileVerification(mobile: mobile) {
             var parameters = Dictionary<String,Any>()
@@ -140,6 +144,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
             parameters.updateValue(smsCode, forKey: "sms_code")
             parameters.updateValue(unionId, forKey: "union_id")
             parameters.updateValue(openId, forKey: "open_id")
+            parameters.updateValue(invitationCode, forKey: "invite_code")
             
             SwiftProgressHUD.shared().showWait()
             SwiftMoyaNetWorkManager.shared.requestObject(UserModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userBindMobile(parameters: parameters))) { (userModel) in