| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791 |
- //
- // OutMoneyViewController.swift
- // MTP2_iOS
- //
- // Created by zhongyuan on 2018/3/20.
- // Copyright © 2018年 zhongyuan.All rights reserved.
- //
- import UIKit
- import NVActivityIndicatorView
- class OutMoneyViewController: BaseViewController {
- /// 出金金额
- @IBOutlet weak var outMoneyAmountTextField: IBTextField!
- /// 可取资金
- @IBOutlet weak var canUseMoneyTextField: IBTextField!
- /// 资金账户
- @IBOutlet weak var moneyAccountTextField: IBTextField!
- /// 资金密码
- @IBOutlet weak var moneyPasswordTextField: IBTextField!
- /// 出金手续费
- @IBOutlet weak var outMoneyChargeTextField: IBTextField!
- /// 账户名称
- @IBOutlet weak var accountNameTextField: IBTextField!
- /// 签约银行
- @IBOutlet weak var signingBankTextField: IBTextField!
- /// 开户银行
- @IBOutlet weak var registerBankTextField: IBTextField!
- /// 银行账户
- @IBOutlet weak var bankAccountTextField: IBTextField!
- /// 手机号码
- @IBOutlet weak var phoneNumberTextField: IBTextField!
- /// 备注
- @IBOutlet weak var remarkTextField: IBTextField!
- /// 银行出金提示
- @IBOutlet weak var bankOutMoneyTipMessage: UILabel!
- /// 提交按钮
- @IBOutlet weak var submitButton: UIButton!
- //MARK: 扩展信息
- @IBOutlet weak var splitView: UIView!
- /// 开户省份
- @IBOutlet weak var regiesterProvinceTextField: IBTextField!
- /// 开户城市
- @IBOutlet weak var regiesterCityTextField: IBTextField!
- /// 开户行支行号
- @IBOutlet weak var regiesterBranchBankNumberTextField: IBTextField!
- /// 开户行支行名称
- @IBOutlet weak var regiesterBranchBankNameTextField: IBTextField!
- /// 银行密码
- @IBOutlet weak var bankPasswordTextField: IBTextField!
- /// 原手机号码
- @IBOutlet weak var oldPhoneNumberTextField: IBTextField!
- /// 验证码
- @IBOutlet weak var checkCodeTextField: IBTextField!
- /// 男性
- @IBOutlet weak var checkMenButton: UIButton!
- /// 女性
- @IBOutlet weak var checkWomenButton: UIButton!
- /// 法人姓名
- @IBOutlet weak var legalPersonNameTextField: IBTextField!
- /// 法人证件类型
- @IBOutlet weak var legalPersonalIDcardTypeTextField: IBTextField!
- /// 法人证件号码
- @IBOutlet weak var legalPersonalIDcardNumberField: IBTextField!
- /// 经办人姓名
- @IBOutlet weak var agentNameTextField: IBTextField!
- /// 经办人证件类型
- @IBOutlet weak var agentIDcardTypeTextField: IBTextField!
- /// 经办人证件号码
- @IBOutlet weak var agentIDcardNumberTextField: IBTextField!
- /// 所属会员代码
- @IBOutlet weak var itsMemberCodeTextField: IBTextField!
- /// 法人联系号码
- @IBOutlet weak var legalContactNumberTextField: IBTextField!
- /// 经办人联系号码
- @IBOutlet weak var agentContactNumberTextField: IBTextField!
-
- /// 临时变量,当前资金账号
- private var currentMoneyAccount: String?
- /// 临时变量,当前签约银行
- private var currentBankSign: MoBankAccountSign?
- /// 托管银行手续费配置表
- private var currentCusBankCharge: MoCusBankCharge?
- var currentProvinceID: String?
- var currentCityID: String?
- /// 当前页面索引
- var pageIndex: Int?
-
- struct TAG {
- static let moneyAccount = 100
- static let regiesterProvince = 200
- static let regiesterCity = 300
- static let legalPersonalIDcardType = 400
- static let agentIDcardType = 500
- static let men = 600
- static let women = 700
- static let signingBank = 800
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- addLoadingView()
- initData()
- }
-
- // MARK: - 初始化相关
- func initData() {
- /// 数据异常
- guard let accountManager = MTP2BusinessCore.shared.accountManager else {
- return
- }
- if let accountId = accountManager.getTaAccountInfoList()?.first?.accountId {
- moneyAccountTextField.text = String(accountId)
- currentMoneyAccount = String(accountId)
- queryBankSign(accountID: String(accountId))
- queryCanUseMoney(accountID: String(accountId))
- }
- accountNameTextField.text = accountManager.moAccountBaseInfo?.accountInfo.customerName
-
- outMoneyAmountTextField.addTarget(self, action: #selector(calCusBankCharge), for: .editingChanged)
- if let configInfo = MTP2BusinessCore.shared.address?.hsbyBankSignZone.components(separatedBy: "-"),
- let signTime = configInfo.first,
- let outTime = configInfo.last {
- bankOutMoneyTipMessage.text = "银行出金时间段:\(signTime) - \(outTime)"
- } else {
- bankOutMoneyTipMessage.isHidden = true
- }
- }
-
- // MARK: - 交互相关
- @IBAction func selectSex(_ sender: UIButton) {
- if sender.currentTitle == "男" && !sender.isSelected{
- sender.isSelected = true
- checkWomenButton.isSelected = false
- }
- if sender.currentTitle == "女" && !sender.isSelected{
- sender.isSelected = true
- checkMenButton.isSelected = false
- }
- }
-
- /// 忘记密码
- @IBAction func forgetPassword(_ sender: UIButton) {
- /// 资金密码修改
- let fund = UIStoryboard(name: "Settings", bundle: nil).instantiateViewController(withIdentifier: "FundPasswordUpdate")
- self.view.superController()?.navigationController?.pushViewController(fund, animated: true)
- }
-
- /// 出金提交
- @IBAction func onclickSubmitButton(_ sender: UIButton) {
- if !TradeControlUtils.checkAuthState(navigationController: self.navigationController) {
- return
- }
- if !checkValue() { return }
-
- guard let bankManager = MTP2BusinessCore.shared.bankManager,
- let accountManager = MTP2BusinessCore.shared.accountManager,
- let currentBankSign = currentBankSign else { return }
-
- let outMoneyParam = MoOutMoneyParam()
- outMoneyParam.extOperatorID = Int(Date().timeIntervalSince1970)
- outMoneyParam.accountCode = currentMoneyAccount!
- outMoneyParam.cusBankID = currentBankSign.cusBankID
- outMoneyParam.currency = currentBankSign.currency
- if let userType = accountManager.moAccountBaseInfo?.accountInfo.userType {
- outMoneyParam.accountType = userType
- }
-
- outMoneyParam.bankAccoutName = currentBankSign.bankAccountName
- outMoneyParam.remark = remarkTextField.text!
- if (currentBankSign.bankAccountNo.contains(";")) {
- let array = currentBankSign.bankAccountNo.components(separatedBy: ";")
- outMoneyParam.bankAccoutNum = array[1]
- } else {
- outMoneyParam.bankAccoutNum = currentBankSign.bankAccountNo
- }
- outMoneyParam.appDateTime = currentBankSign.cusBankTradeDate
- outMoneyParam.amount = Double(outMoneyAmountTextField.text!)!
- outMoneyParam.oldTaPWD = (moneyPasswordTextField.text?.bytes.sha256().toHexString().lowercased())!
- outMoneyParam.identifyCode = checkCodeTextField.text!
- outMoneyParam.extend_info = getJSONExtendInfo()
- /// 开启Loading
- NVActivityIndicatorPresenter.sharedInstance.startAnimating(ActivityData(message: "正在出金...", color: UIColor.loding()), NVActivityIndicatorView.DEFAULT_FADE_IN_ANIMATION)
- bankManager.outMoney(param: outMoneyParam) { (isSuccess, errorInfo, results) in
- DispatchQueue.main.async {
- NVActivityIndicatorPresenter.sharedInstance.stopAnimating(NVActivityIndicatorView.DEFAULT_FADE_OUT_ANIMATION)
- if isSuccess {
- self.showHintController(title: "提示", message: "出金成功",handler: { (_) in
- /// 重新请求可出资金
- MTP2BusinessCore.shared.broadcastManager?.post(action: .FundationInfoReloadData, object: nil)
- /// 更新可出资金
- self.queryCanUseMoney(accountID: self.currentMoneyAccount!)
- /// 清空数据
- self.clearData()
- })
- } else {
- if let results = results {
- if results.netAddr == "" {
- /// 不需要跳转网页
- let decp = results.centerErrMsg
- var error = ErrorUtils.getDesc(errorCode: results.status) ?? "未知错误类型"
- if decp != "" {
- error = "银行信息返回" + ":" + decp
- self.showHintController(title: "提示", message: error)
- } else {
- self.showHintController(title: "提示", message: error)
- }
- } else {
- /// 需要跳转网页
- if let url = URL(string: results.netAddr) {
- /// 根据iOS系统版本,分别处理
- UIApplication.shared.open(url)
- }
- }
- }
- }
- }
- }
- }
-
- /// 组装扩展信息
- ///
- /// - Returns: json串
- func getJSONExtendInfo() -> String {
-
- var dict: [String: Any] = [:]
- dict["verify_code"] = checkCodeTextField.text
- dict["bank_password"] = bankPasswordTextField.text
- // dict["sex"] = getSex()
- dict["legal_name"] = legalPersonNameTextField.text
- dict["legal_cert_type"] = legalPersonalIDcardTypeTextField.text
- dict["legal_cert_code"] = legalPersonalIDcardNumberField.text
- dict["agent_name"] = agentNameTextField.text
- dict["agent_cert_type"] = agentIDcardTypeTextField.text
- dict["agent_cert_code"] = agentIDcardNumberTextField.text
- dict["org_mobile"] = oldPhoneNumberTextField.text
- dict["member_code"] = itsMemberCodeTextField.text
- dict["legal_contact"] = legalContactNumberTextField.text
- dict["agent_contact"] = agentContactNumberTextField.text
- dict["bank_branch_name"] = regiesterBranchBankNameTextField.text
-
- /// json 的可用性判断
- if !JSONSerialization.isValidJSONObject(dict) {
- dPrint("不能转化")
- return ""
- }
- /// json 字符串转换为data
- guard let data = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted) else { return "" }
- /// data 转为字符串
- let jsonstr = String(data: data, encoding: .utf8)
- return jsonstr!
- }
-
- /// 获取选择的性别
- ///
- /// - Returns: 男女
- func getSex() -> Int {
- if checkMenButton.isSelected {
- return ESex.SEX_MALE.rawValue
- }
- return ESex.SEX_FEMALE.rawValue
- }
-
- /// 清空列表数据
- func clearData() {
- outMoneyAmountTextField.text = ""
- moneyPasswordTextField.text = ""
- bankPasswordTextField.text = ""
- checkCodeTextField.text = ""
- remarkTextField.text = ""
- }
-
- /// 校验数据
- func checkValue() -> Bool {
-
- let now = Date().getString(formatter: "HH:mm")
- guard let configInfo = MTP2BusinessCore.shared.address?.hsbyBankSignZone.components(separatedBy: "-"),
- let signTime = configInfo.first,
- let outTime = configInfo.last, now>signTime,
- now<outTime else {
- self.showHintController(title: "提示", message: "请在规定的时间段内进行提现!", handler: nil)
- return false
- }
-
- /// 出金金额
- if let outMoneyAmount = self.outMoneyAmountTextField.text {
- if outMoneyAmount.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入出金金额", handler: nil)
- return false
- }
- if let outMoneyAmount = Double(outMoneyAmount), let canUserMoney = Double(canUseMoneyTextField.text!) {
- if outMoneyAmount > canUserMoney {
- self.showHintController(title: "提示", message: "出金金额不得大于可取资金", handler: nil)
- return false
- }
- } else {
- self.showHintController(title: "提示", message: "出金金额格式不正确")
- return false
- }
- }
- /// 资金密码
- if let moneyPassword = self.moneyPasswordTextField.text {
- if moneyPassword.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入资金密码", handler: nil)
- return false
- }
- }
-
- /// 开户省份
- if (regiesterProvinceTextField.superview?.isHidden)! == false {
- if let regiesterProvince = self.regiesterProvinceTextField.text {
- if regiesterProvince.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请选择开户省份")
- return false
- }
- }
- }
- /// 开户城市
- if (regiesterCityTextField.superview?.isHidden)! == false {
- if let regiesterCity = self.regiesterCityTextField.text {
- if regiesterCity.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请选择开户城市")
- return false
- }
- }
- }
- /// 开户行支行号
- if (regiesterBranchBankNumberTextField.superview?.isHidden)! == false {
- if let regiesterBranchBankNumber = self.regiesterBranchBankNumberTextField.text {
- if regiesterBranchBankNumber.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入开户行支行号")
- return false
- }
- }
- }
- /// 开户行支行名称
- if (regiesterBranchBankNameTextField.superview?.isHidden)! == false {
- if let regiesterBranchBankName = self.regiesterBranchBankNameTextField.text {
- if regiesterBranchBankName.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入开户行支行名称")
- return false
- }
- }
- }
- /// 银行密码
- if (bankPasswordTextField.superview?.isHidden)! == false {
- if let bankPassword = self.bankPasswordTextField.text {
- if bankPassword.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入银行密码")
- return false
- }
- }
- }
- /// 原手机号码
- if (oldPhoneNumberTextField.superview?.isHidden)! == false {
- if let oldPhoneNumber = self.oldPhoneNumberTextField.text {
- if oldPhoneNumber.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入原手机号码")
- return false
- }
- }
- }
- /// 验证码
- if (checkCodeTextField.superview?.superview?.isHidden)! == false {
- if let checkCode = self.checkCodeTextField.text {
- if checkCode.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入验证码")
- return false
- }
- }
- }
- /// 男性
- if (checkMenButton.superview?.superview?.isHidden)! == false {
- if !self.checkMenButton.isSelected && !self.checkWomenButton.isSelected{
- self.showHintController(title: "提示", message: "请选择性别")
- return false
- }
- }
- /// 法人姓名
- if (legalPersonNameTextField.superview?.isHidden)! == false {
- if let legalPersonName = self.legalPersonNameTextField.text {
- if legalPersonName.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入法人姓名")
- return false
- }
- }
- }
- /// 法人证件类型
- if (legalPersonalIDcardTypeTextField.superview?.isHidden)! == false {
- if let legalPersonalIDcardType = self.legalPersonalIDcardTypeTextField.text {
- if legalPersonalIDcardType.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请选择法人证件类型")
- return false
- }
- }
- }
- /// 法人证件号码
- if (legalPersonalIDcardNumberField.superview?.isHidden)! == false {
- if let legalPersonalIDcardNumber = self.legalPersonalIDcardNumberField.text {
- if legalPersonalIDcardNumber.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入法人证件号码")
- return false
- }
- }
- }
- /// 经办人姓名
- if (agentNameTextField.superview?.isHidden)! == false {
- if let agentName = self.agentNameTextField.text {
- if agentName.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入经办人姓名")
- return false
- }
- }
- }
- /// 经办人证件类型
- if (agentIDcardTypeTextField.superview?.isHidden)! == false {
- if let agentIDcardType = self.agentIDcardTypeTextField.text {
- if agentIDcardType.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请选择经办人证件类型")
- return false
- }
- }
- }
- /// 经办人证件号码
- if (agentIDcardNumberTextField.superview?.isHidden)! == false {
- if let agentIDcardNumber = self.agentIDcardNumberTextField.text {
- if agentIDcardNumber.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入经办人证件号码")
- return false
- }
- }
- }
- /// 所属会员代码
- if (itsMemberCodeTextField.superview?.isHidden)! == false {
- if let itsMemberCode = self.itsMemberCodeTextField.text {
- if itsMemberCode.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入所属会员代码")
- return false
- }
- }
- }
- /// 法人联系号码
- if (legalContactNumberTextField.superview?.isHidden)! == false {
- if let legalContactNumber = self.legalContactNumberTextField.text {
- if legalContactNumber.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入法人联系号码")
- return false
- }
- }
- }
- /// 经办人联系号码
- if (agentContactNumberTextField.superview?.isHidden)! == false {
- if let agentContactNumber = self.agentContactNumberTextField.text {
- if agentContactNumber.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty {
- self.showHintController(title: "提示", message: "请输入经办人联系号码")
- return false
- }
- }
- }
- return true
- }
- }
- // MARK: - UITextFieldDelegate
- extension OutMoneyViewController: UITextFieldDelegate {
- func textFieldShouldReturn(_ textField: UITextField) -> Bool {
- textField.resignFirstResponder()
- return true
- }
-
- func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
- switch textField.tag {
- case TAG.moneyAccount:
- guard let accountManager = MTP2BusinessCore.shared.accountManager else { return true }
- let titleArray = accountManager.getTaAccountInfoList()?.compactMap({ return String($0.accountId) }) ?? []
- if titleArray.count > 0 {
- self.showPopupsController(title: "选择资金账户", message: nil, titleArray: titleArray) { (value: String, selectedRow: Int, _) in
- if self.currentMoneyAccount != value {
- self.currentMoneyAccount = value
- self.moneyAccountTextField.text = value
- self.queryBankSign(accountID: value)
- self.queryCanUseMoney(accountID: value)
- }
- }
- } else {
- self.showHintController(title: "提示", message: "没有可选的资金账户")
- }
- return false
- case TAG.signingBank:
- guard let bankManager = MTP2BusinessCore.shared.bankManager else { return true }
-
- var titleArray = [String]()
- if let bankSign = bankManager.moBankSign {
- titleArray = bankSign.bankSign.map({ (model) -> String in
- return String(model.cusBankName)
- })
- }
- if titleArray.count > 0 {
- self.showPopupsController(title: "选择签约银行", message: nil, titleArray: titleArray) { (value: String, selectedRow: Int, _) in
- if self.currentBankSign?.cusBankName != value {
- self.signingBankTextField.text = value
- self.setupSignBank(bankSign: bankManager.moBankSign?.bankSign[selectedRow])
- }
- }
- } else {
- self.showHintController(title: "提示", message: "没有可选的签约银行")
- }
- return false
- case TAG.regiesterProvince:
- guard let bankManager = MTP2BusinessCore.shared.bankManager else{ return true }
- let completeBlock = { (results: [MoBankProvince]?) in
- let titleArray = results?.map({ (model) -> String in
- return model.bankprovincename
- })
-
- self.showPopupsController(title: "选择省份", message: nil, titleArray: titleArray!, clickBlock: { (value, rowNum, _) in
- self.regiesterProvinceTextField.text = value
- if self.currentProvinceID != results?[rowNum].bankprovinceid {
- self.currentProvinceID = results?[rowNum].bankprovinceid
-
- bankManager.queryBankCity(provinceID: self.currentProvinceID!, callback: { (isSuccess, errorInfo, results) in
- if isSuccess {
-
- } else {
- self.showErrorMessgae(error: errorInfo)
- }
- })
- }
- })
- }
-
- if let moBankProvice = bankManager.moBankProvice {
- completeBlock(moBankProvice)
- } else {
- _anim?.startAnimating()
- bankManager.queryBankProvince { (isSuccess, errorInfo, results) in
- DispatchQueue.main.async {
- self._anim?.stopAnimating()
- if isSuccess {
- completeBlock(results)
- } else {
- self.showErrorMessgae(error: errorInfo)
- }
- }
- }
- }
- return false
- case TAG.regiesterCity:
- guard let bankManager = MTP2BusinessCore.shared.bankManager else{ return true }
-
- if let moBankCity = bankManager.moBankCity {
- let titleArray = moBankCity.map({ (model) -> String in
- return model.bankcityname
- })
-
- self.showPopupsController(title: "选择市", message: nil, titleArray: titleArray, clickBlock: { (value, rowNum, _) in
- self.regiesterCityTextField.text = value
- self.currentCityID = moBankCity[rowNum].bankcityid
- })
- }
- return false
- case TAG.legalPersonalIDcardType:
- var titleArray = [String]()
- for i in 0...22 {
- titleArray.append(ECardTypeStringValue(CardType(rawValue: i)))
- }
- self.showPopupsController(title: "选择法人证件类型", message: nil, titleArray: titleArray, clickBlock: { (value, _ , _) in
- self.legalPersonalIDcardTypeTextField.text = value
- })
- return false
- case TAG.agentIDcardType:
- var titleArray = [String]()
- for i in 0...22 {
- titleArray.append(ECardTypeStringValue(CardType(rawValue: i)))
- }
- self.showPopupsController(title: "选择经办人证件类型", message: nil, titleArray: titleArray, clickBlock: { (value, _ , _) in
- self.agentIDcardTypeTextField.text = value
- })
- return false
- default:
- break
- }
- return true
- }
-
- /// 查询可取资金
- func queryCanUseMoney(accountID: String) {
- guard let bankManager = MTP2BusinessCore.shared.bankManager, let accountId = UInt64(accountID) else { return }
-
- _anim?.startAnimating()
-
- bankManager.accountFundInfo(accountID: accountId, queryBitMask: 3) { (isSuccess, errorInfo, results) in
- DispatchQueue.main.async {
- self._anim?.stopAnimating()
- if isSuccess {
- guard let results = results else{ return }
-
- self.canUseMoneyTextField.text = String(results.availableOutMoney)
- }else {
- /// 查询失败
- }
- }
- }
- }
-
- /// 查询已签约信息
- func queryBankSign(accountID: String) {
- guard let bankManager = MTP2BusinessCore.shared.bankManager, let accountId = UInt64(accountID) else { return }
-
- _anim?.startAnimating()
- bankManager.bankSign(accountId: accountId, cusbankId: "") {(isSuccess, errorInfo, results) in
- DispatchQueue.main.async {
- self._anim?.stopAnimating()
- if isSuccess {
- self.setupSignBank(bankSign: results?.bankSign.first)
- }else {
- /// 查询失败
- }
- }
- }
- }
-
- /// 查询扩展信息
- func queryExpandInfo(cusBankId: String) {
- guard let bankManager = MTP2BusinessCore.shared.bankManager else { return }
-
- _anim?.startAnimating()
- bankManager.queryBankExtendInfo(cusBankId: cusBankId, type: 3) { (isSuccess, errorInfo, results) in
- DispatchQueue.main.async {
- self._anim?.stopAnimating()
- if isSuccess {
- if let results = results, results.count > 0 {
- results.forEach({ (model) in
- if let tag = Int(model.fieldid), let view = self.view.viewWithTag(tag) {
- view.isHidden = false
- }
- })
- self.splitView.isHidden = false
- } else {
- self.splitView.isHidden = true
- }
- } else {
- self.showErrorMessgae(error: errorInfo)
- }
- }
- }
- }
-
- /// 选择了签约银行要做的事情
- func setupSignBank(bankSign: MoBankAccountSign?) {
-
- guard let bankManager = MTP2BusinessCore.shared.bankManager,
- let accountManager = MTP2BusinessCore.shared.accountManager,
- let accountInfo = accountManager.moAccountBaseInfo?.accountInfo else { return }
-
- if let model = bankSign {
-
- signingBankTextField.text = model.cusBankName
- registerBankTextField.text = model.bankName
- currentBankSign = model
- /// 若是加密字符串需要取分号前面的字符
- if model.bankAccountNo.contains(";") {
-
- let index = model.bankAccountNo.firstIndex(of: ";")
- let bankAccountNo = model.bankAccountNo.prefix(upTo: index!)
- bankAccountTextField.text = bankAccountNo.description
- }else {
-
- bankAccountTextField.text = model.bankAccountNo
- }
- phoneNumberTextField.text = model.mobilePhoneDisp
- queryExpandInfo(cusBankId: model.cusBankID)
-
- if let cusbankParam = bankManager.cusbankInfos?.first(where: { $0.cusbankid == model.cusBankID }) {
-
- if cusbankParam.canoutamount != 1 {
- submitButton.isHidden = true
- }
- }
-
- let userType = accountInfo.userInfoType == 1 ? EBank_BankAccountType.BANK_BANKACCOUNTTYPE_PRIVATE.rawValue : EBank_BankAccountType.BANK_BANKACCOUNTTYPE_PUBLIC.rawValue
- _anim?.startAnimating()
- // 查询
- bankManager.queryQueryBank_CusBankCharge(cusBankID: model.cusBankID, outOrIn: 1, userType: userType) { (isSuccess, errorInfo, results) in
-
- DispatchQueue.main.async {
-
- self._anim?.stopAnimating()
- if isSuccess {
-
- if let currentCusBankCharge = results?.first {
-
- self.currentCusBankCharge = currentCusBankCharge
- self.calCusBankCharge()
- }
- } else {
-
- self.showErrorMessgae(error: errorInfo)
- }
- }
- }
- }
- }
-
- /// 计算出金手续费
- /**
- 统一:
- 1.比例:1.手续费=出入金金额*收费值 2.手续费<单笔最小,手续费=单笔最小,3.手续费>单笔最大,手续费=单笔最大
- 2.固定:1.手续费=收费值
- 区间:
- 1.比例:ps:首先判断出入金金额在哪个区间范围内,取区间内收费值计算,若无则不收取服务费。 1.手续费=出入金金额*收费值 2.手续费<单笔最小,手续费=单笔最小,3.手续费>单笔最大,手续费=单笔最大
- 2.固定:ps:首先判断出入金金额在哪个区间范围内,取区间内收费值值计算,若无则不收取服务费。 1.手续费=收费值
- */
- @objc func calCusBankCharge() {
-
- // 没有就不用算了
- guard let cusBankCharge = currentCusBankCharge else { return }
- // 入金金额
- let outMoney = Double(outMoneyAmountTextField.text!) ?? 0.0
- var tempCharge = 0.0
- if cusBankCharge.ChargeType == 1 { // 手续费收取类型 - 1:统一 2:区间
-
- if cusBankCharge.ChargeAlgorithm == 1 { // 手续费收取方式 - 1:比率 2:固定 [统一 ]
-
- tempCharge = cusBankCharge.ChargeValue * outMoney
- if tempCharge > cusBankCharge.SingleMax {
-
- tempCharge = cusBankCharge.SingleMax
- } else if tempCharge < cusBankCharge.SingleMin {
-
- tempCharge = cusBankCharge.SingleMin
- }
- } else if cusBankCharge.ChargeAlgorithm == 2 {
-
- tempCharge = outMoney > 0 ? cusBankCharge.ChargeValue : 0.0
- }
- } else if cusBankCharge.ChargeType == 2 {
-
- if let moCusBankChargeDetails = cusBankCharge.CusBankChargeDetail.first(where: { $0.RangeMax >= outMoney && $0.RangeMin <= outMoney }) {
-
- if moCusBankChargeDetails.ChargeAlgorithm == 1 { // 手续费收取方式 - 1:比率 2:固定 [统一 ]
-
- tempCharge = moCusBankChargeDetails.ChargeValue * outMoney
- if tempCharge > cusBankCharge.SingleMax {
-
- tempCharge = cusBankCharge.SingleMax
- } else if tempCharge < cusBankCharge.SingleMin {
-
- tempCharge = cusBankCharge.SingleMin
- }
- } else if moCusBankChargeDetails.ChargeAlgorithm == 2 {
-
- tempCharge = outMoney > 0 ? cusBankCharge.ChargeValue : 0.0
- }
- }
- }
-
- outMoneyChargeTextField.text = String(format: "%.2f", tempCharge)
- }
- }
- // MARK: - PageChangeDelegate
- extension OutMoneyViewController: PageChangeDelegate {
- func didShow() {
- /// 异常
- guard let accountManager = MTP2BusinessCore.shared.accountManager,
- let accountId = accountManager.getCurrentTAAccountInfo()?.accountId else { return }
- /// queryCanUseMoney
- queryCanUseMoney(accountID: String(accountId))
- /// moveView
- moveView(views: [outMoneyAmountTextField,
- moneyPasswordTextField,
- phoneNumberTextField,
- remarkTextField,
- regiesterBranchBankNumberTextField,
- regiesterBranchBankNameTextField,
- bankPasswordTextField,
- oldPhoneNumberTextField,
- checkCodeTextField,
- legalPersonNameTextField,
- legalPersonalIDcardNumberField,
- itsMemberCodeTextField,
- legalContactNumberTextField,
- agentContactNumberTextField])
- }
-
- func didHide() {
- //do something
- }
- }
|