Commit 5c08655b authored by David黄金龙's avatar David黄金龙

Merge branch '630-dev' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into 630-dev

* '630-dev' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  // 人脉
  编辑接口联调
parents 1d2fad62 9b418d2a
......@@ -195,6 +195,7 @@ class YHInformationAuthorizationStepOneViewController: YHBaseViewController {
viewModel.requestSaveUserInfo {[weak self] success, error in
guard let self = self else { return }
let vc = YHInformationAuthorizationStepTwoViewController()
vc.name = self.viewModel.model.username
self.navigationController?.pushViewController(vc)
}
}
......
......@@ -16,7 +16,7 @@ class YHInformationAuthorizationStepTwoViewController: UIViewController {
var items: [YHSettingItem] = [YHSettingItem(type: .normal, title: "允许您的信息在名片中使用", subTitle: "开启后,您的信息将自动同步至您的个人名片,并对您的好友公开可见", isSelect: true, isShowAlert: false)]
var viewModel: YHInformationAuthorizeViewModel = YHInformationAuthorizeViewModel()
var stepFlag: Bool = true
var name: String = ""
override func viewDidLoad() {
super.viewDidLoad()
setView()
......@@ -116,7 +116,11 @@ class YHInformationAuthorizationStepTwoViewController: UIViewController {
@objc func nextStep() {
viewModel.requestAuthorizationSubmit {[weak self] success, error in
guard let self = self else { return }
self.navigationController?.popViewController(animated: true)
self.navigationController?.popToRootViewController(animated: true)
let view = YHPeopleSuccessView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.titleLabel.text = "Hi,\(self.name)\n您的人脉网络已激活"
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
}
}
......
......@@ -13,6 +13,7 @@ class YHMyNameCardViewController: YHBaseViewController {
var userId: String = ""
var cardInfoArr:[YHUserNameCardInfo] = []
let viewModel = YHMatchUserViewModel()
let authorModel = YHInformationAuthorizeViewModel()
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 100
......@@ -121,9 +122,11 @@ extension YHMyNameCardViewController: UITableViewDelegate, UITableViewDataSource
guard let self = self else { return }
if cardInfo.type == .honor {
let vc = YHEditHonorViewController()
vc.model = self.viewModel.nameCardInfo
self.navigationController?.pushViewController(vc)
} else if cardInfo.type == .introduce {
let vc = YHEditPersonalProfileViewController()
vc.model = self.viewModel.nameCardInfo
self.navigationController?.pushViewController(vc)
}
}
......@@ -136,6 +139,7 @@ extension YHMyNameCardViewController: UITableViewDelegate, UITableViewDataSource
eduCell.editBlock = { [weak self] in
guard let self = self else { return }
let vc = YHEditSchoolViewController()
vc.model = self.viewModel.nameCardInfo
self.navigationController?.pushViewController(vc)
}
return eduCell
......@@ -147,6 +151,7 @@ extension YHMyNameCardViewController: UITableViewDelegate, UITableViewDataSource
workCell.editBlock = { [weak self] in
guard let self = self else { return }
let vc = YHEditWorkViewController()
vc.model = self.viewModel.nameCardInfo
self.navigationController?.pushViewController(vc)
}
return workCell
......@@ -158,6 +163,7 @@ extension YHMyNameCardViewController: UITableViewDelegate, UITableViewDataSource
topicCell.editBlock = { [weak self] in
guard let self = self else { return }
let vc = YHEditInterestViewController()
vc.model = self.viewModel.nameCardInfo
self.navigationController?.pushViewController(vc)
}
return topicCell
......@@ -169,9 +175,9 @@ extension YHMyNameCardViewController: UITableViewDelegate, UITableViewDataSource
cell.editBlock = { [weak self] in
guard let self = self else { return }
let vc = YHEditBaseUserInfoViewController()
vc.model = self.viewModel.nameCardInfo
self.navigationController?.pushViewController(vc)
}
return cell
}
......@@ -200,6 +206,12 @@ extension YHMyNameCardViewController: UITableViewDelegate, UITableViewDataSource
extension YHMyNameCardViewController {
func requestAuthorization() {
self.authorModel.requestUserAuthorization { success, error in
self.requestNameCardInfo()
}
}
func requestNameCardInfo() {
self.viewModel.getUserNameCardInfo(uid: self.userId) {
success, error in
......
......@@ -148,14 +148,11 @@ class YHPeopleViewController: YHBaseViewController {
@objc func didMatchBtnClicked() {
if true {
startMatchUsers()
return
}
// if true {
// startMatchUsers()
// return
// }
// let view = YHPeopleSuccessView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
// let window = UIApplication.shared.yhKeyWindow()
// window?.addSubview(view)
let vc = YHInformationAuthorizationStepOneViewController()
self.navigationController?.pushViewController(vc)
}
......
......@@ -79,6 +79,8 @@ class YHUserNameCardInfo: SmartCodable {
// 自定义属性
var type:YHNameCardInfoType = .unknown
var isHiddenEducation = false
var isHiddenWorkExperience = false
required init() {
......
......@@ -116,6 +116,14 @@ class YHMyInformationItemCell: UITableViewCell {
titleLabel.attributedText = questionAttrStr
messageTextField.placeholder = dataSource.prompts
messageTextField.text = dataSource.message
if dataSource.type == .constellation {
let arr = YHConstantArrayData.arrDegreeConstellation
arr.forEach { item in
if item["id"] == dataSource.message {
messageTextField.text = item["title"]
}
}
}
if dataSource.isUserKeyBoard ?? false {
nextStepImageView.isHidden = true
centerButton.isHidden = true
......@@ -175,7 +183,7 @@ class YHMyInformationItemCell: UITableViewCell {
case .constellation:
YHOtherPickerView.show(type: .constellation, selectTitle: self.dataSource?.message ?? "") { item in
print(item)
self.dataSource?.message = item.title
self.dataSource?.message = item.index
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHUserInformationModel())
......
......@@ -7,6 +7,7 @@
//
import UIKit
import AttributedString
class YHMyNameCardAvatarInfoCell: UITableViewCell {
typealias EditBlock = () -> ()
......@@ -19,7 +20,31 @@ class YHMyNameCardAvatarInfoCell: UITableViewCell {
if let url = URL(string: self.userModel.avatar) {
self.headImgV.kf.setImage(with: url, placeholder: UIImage(named: "people_head_default"))
}
self.nameLabel.text = self.userModel.username
let city = self.userModel.address.city + "市"
self.cityLabel.text = city
let cityWidth = self.getWith(font: self.cityLabel.font, height: 20, string: city)
self.cityLabel.frame = CGRectMake(0, 0, cityWidth+8, 20)
self.zodiacLabel.text = self.userModel.zodiac
if self.userModel.address.city.isEmpty && self.userModel.zodiac.isEmpty {
self.nameTextView.attributed.text = """
\(self.userModel.username, .foreground(UIColor.mainTextColor), .font(UIFont.PFSC_B(ofSize:18)))
"""
} else if self.userModel.zodiac.isEmpty {
self.nameTextView.attributed.text = """
\(self.userModel.username, .foreground(UIColor.mainTextColor), .font(UIFont.PFSC_B(ofSize:18))) \(.view(self.cityLabel, .original(.center)))
"""
} else if self.userModel.address.city.isEmpty {
self.nameTextView.attributed.text = """
\(self.userModel.username, .foreground(UIColor.mainTextColor), .font(UIFont.PFSC_B(ofSize:18))) \(.view(self.zodiacLabel, .original(.center)))
"""
} else {
self.nameTextView.attributed.text = """
\(self.userModel.username, .foreground(UIColor.mainTextColor), .font(UIFont.PFSC_B(ofSize:18))) \(.view(self.cityLabel, .original(.center))) \(.view(self.zodiacLabel, .original(.center)))
"""
}
self.professionalLabel.text = self.userModel.position
self.detailLabel.text = self.userModel.signature
self.signImgV.isHidden = !self.userModel.isSigned
......@@ -60,12 +85,15 @@ class YHMyNameCardAvatarInfoCell: UITableViewCell {
return btn
}()
lazy var nameLabel:UILabel = {
let nameLabel = UILabel()
nameLabel.textColor = UIColor.mainTextColor
nameLabel.textAlignment = .left
nameLabel.font = UIFont.PFSC_B(ofSize:18)
return nameLabel
lazy var nameTextView:UITextView = {
let textView = UITextView()
textView.textColor = UIColor.mainTextColor
textView.backgroundColor = .clear
textView.font = UIFont.PFSC_B(ofSize:18)
textView.isScrollEnabled = false
textView.isEditable = false
textView.isSelectable = false
return textView
}()
lazy var cityLabel:UILabel = {
......@@ -76,7 +104,18 @@ class YHMyNameCardAvatarInfoCell: UITableViewCell {
label.backgroundColor = .brandMainColor8
label.layer.cornerRadius = 3.0
label.clipsToBounds = true
label.text = "上海市"
return label
}()
lazy var zodiacLabel:UILabel = {
let label = UILabel()
label.textColor = UIColor.brandMainColor
label.textAlignment = .center
label.font = UIFont.PFSC_M(ofSize:12)
label.backgroundColor = .brandMainColor8
label.layer.cornerRadius = 3.0
label.clipsToBounds = true
label.frame = CGRect(x: 0, y: 0, width: 46, height: 20)
return label
}()
......@@ -117,15 +156,11 @@ class YHMyNameCardAvatarInfoCell: UITableViewCell {
self.contentView.addSubview(self.headImgV)
self.contentView.addSubview(self.signImgV)
cardView.addSubview(self.nameLabel)
cardView.addSubview(self.nameTextView)
cardView.addSubview(self.cityLabel)
cardView.addSubview(self.professionalLabel)
cardView.addSubview(self.detailLabel)
cardView.addSubview(self.editBtn)
self.nameLabel.text = "啊防守打法胜多负少"
self.professionalLabel.text = "阿迪发沙发沙发撒发生大发三大发沙发沙发上1阿斯顿发双法防"
self.detailLabel.text = "阿凡达所发生的发顺丰大沙发沙发沙发沙发沙发沙发沙发沙发沙发沙发沙发沙发发沙发"
self.cardView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
......@@ -151,34 +186,38 @@ class YHMyNameCardAvatarInfoCell: UITableViewCell {
make.centerX.equalTo(self.headImgV)
}
self.nameLabel.snp.makeConstraints { make in
self.nameTextView.snp.makeConstraints { make in
make.left.equalTo(16)
make.top.equalTo(headWidth/2.0+10.0)
make.height.equalTo(25)
}
self.cityLabel.snp.makeConstraints { make in
make.left.equalTo(self.nameLabel.snp.right).offset(10)
make.centerY.equalTo(self.nameLabel)
make.height.equalTo(21)
make.width.equalTo(44)
}
self.professionalLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(self.nameLabel.snp.bottom).offset(8)
make.height.greaterThanOrEqualTo(20)
make.height.equalTo(20)
make.top.equalTo(self.nameTextView.snp.bottom).offset(8)
}
self.detailLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(self.professionalLabel.snp.bottom).offset(8)
make.height.greaterThanOrEqualTo(18)
make.height.equalTo(18)
make.bottom.equalTo(-16)
}
self.professionalLabel.setContentCompressionResistancePriority(.required, for: .vertical)
self.professionalLabel.setContentHuggingPriority(.required, for: .vertical)
self.detailLabel.setContentCompressionResistancePriority(.required, for: .vertical)
self.detailLabel.setContentHuggingPriority(.required, for: .vertical)
}
func getWith(font: UIFont, height: CGFloat, string: String) -> CGFloat {
let size = CGSize.init(width: CGFloat(MAXFLOAT), height: height)
let dic = [NSAttributedString.Key.font: font] // swift 4.2
var strSize = string.boundingRect(with: size, options: [.usesLineFragmentOrigin], attributes: dic, context:nil).size
return CGSizeMake(ceil(strSize.width), strSize.height).width
}
@objc func edit() {
......
......@@ -16,7 +16,6 @@ class YHPeopleSuccessView: UIView {
var bottomImageView: UIImageView!
var bottomButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
......
......@@ -128,15 +128,31 @@ class YHEditBaseUserInfoViewController: YHBaseViewController {
YHImagePickerView.show() {[weak self] image in
guard let self = self else { return }
self.photoImageView.image = image
self.viewModel.uploadImage(image, true) {[weak self] success, error in
guard let self = self else { return }
self.model.avatar = success ?? ""
}
}
}
@objc func changeHead() {
viewModel.requestChangeHead {[weak self] success, error in
guard let self = self else { return }
let url = URL(string: self.viewModel.model.avatar)
self.photoImageView.kf.setImage(with: url)
}
}
@objc func nextStep() {
self.navigationController?.popViewController(animated: true)
self.viewModel.model.signature = footView.messageTextField.text
viewModel.requestSaveUserInfo {[weak self] success, error in
guard let self = self else { return }
if success {
self.navigationController?.popViewController(animated: true)
} else {
YHHUD.flash(message: "保存失败")
}
}
}
}
......
......@@ -109,7 +109,15 @@ class YHEditHonorViewController: YHBaseViewController {
}
@objc func nextStep() {
self.navigationController?.popViewController(animated: true)
viewModel.model.honor = messageTextField.text
viewModel.requestSaveAward {[weak self] success, error in
guard let self = self else { return }
if success {
self.navigationController?.popViewController(animated: true)
} else {
YHHUD.flash(message: "保存失败")
}
}
}
}
......
......@@ -12,8 +12,8 @@ import IQKeyboardManagerSwift
class YHEditInterestViewController: YHBaseViewController {
var collectionView: UICollectionView!
var nextButton: UIButton!
var normalItems: [YHInterestModel] = [YHInterestModel(name: "香港子女教育", isNormal: true, isSelect: false), YHInterestModel(name: "香港房产", isNormal: true, isSelect: false), YHInterestModel(name: "香港创业", isNormal: true, isSelect: false), YHInterestModel(name: "香港就业", isNormal: true, isSelect: false), YHInterestModel(name: "香港保险", isNormal: true, isSelect: false), YHInterestModel(name: "香港商务", isNormal: true, isSelect: false), YHInterestModel(name: "企业家", isNormal: true, isSelect: false), YHInterestModel(name: "ENTJ指挥家", isNormal: true, isSelect: false), YHInterestModel(name: "ENTP辩论家", isNormal: true, isSelect: false), YHInterestModel(name: "INTJ建筑师", isNormal: true, isSelect: false)]
var likeItems: [YHInterestModel] = [YHInterestModel(name: "ENTP辩论家", isNormal: false, isSelect: false), YHInterestModel(name: "+自定义", isNormal: false, isSelect: true)]
var normalItems: [YHInterestModel] = [YHInterestModel(name: "香港子女教育", isNormal: true, isSelect: false), YHInterestModel(name: "香港房产", isNormal: true, isSelect: false), YHInterestModel(name: "香港创业", isNormal: true, isSelect: false), YHInterestModel(name: "香港就业", isNormal: true, isSelect: false), YHInterestModel(name: "港宝", isNormal: true, isSelect: false), YHInterestModel(name: "香港保险", isNormal: true, isSelect: false), YHInterestModel(name: "香港商务", isNormal: true, isSelect: false), YHInterestModel(name: "ESTP(企业家)", isNormal: true, isSelect: false), YHInterestModel(name: "ENTJ(指挥官)", isNormal: true, isSelect: false), YHInterestModel(name: "ENTP(辩论家)", isNormal: true, isSelect: false), YHInterestModel(name: "INTJ(建筑师)", isNormal: true, isSelect: false)]
var likeItems: [YHInterestModel] = [YHInterestModel(name: "+自定义", isNormal: false, isSelect: true)]
var viewModel: YHEditViewModel = YHEditViewModel()
var model: YHUserNameCardInfo = YHUserNameCardInfo()
......@@ -38,7 +38,15 @@ class YHEditInterestViewController: YHBaseViewController {
func getData() {
viewModel.model = model
for item in model.topics {
if let index = normalItems.firstIndex(where: {$0.name == item}) {
normalItems[index].isSelect = !normalItems[index].isSelect
} else {
let model = YHInterestModel(name: item, isNormal: false, isSelect: true)
self.likeItems.insert(model, at: likeItems.count - 1)
}
}
collectionView.reloadData()
}
func setView() {
......@@ -113,7 +121,25 @@ class YHEditInterestViewController: YHBaseViewController {
}
@objc func nextStep() {
self.navigationController?.popViewController(animated: true)
var topics: [String] = []
for item in normalItems {
if item.isSelect {
topics.append(item.name)
}
}
for like in likeItems {
if like.isSelect && like.name != "+自定义" {
topics.append(like.name)
}
}
viewModel.requestSaveTopics(topics: topics) {[weak self] success, error in
guard let self = self else { return }
if success {
self.navigationController?.popViewController(animated: true)
} else {
YHHUD.flash(message: "保存失败")
}
}
}
// 计算文字宽度大小
......
......@@ -109,7 +109,15 @@ class YHEditPersonalProfileViewController: YHBaseViewController {
}
@objc func nextStep() {
self.navigationController?.popViewController(animated: true)
viewModel.model.bio = messageTextField.text
viewModel.requestSavePersonalProfile {[weak self] success, error in
guard let self = self else { return }
if success {
self.navigationController?.popViewController(animated: true)
} else {
YHHUD.flash(message: "保存失败")
}
}
}
}
......
......@@ -71,7 +71,14 @@ class YHEditSchoolViewController: YHBaseViewController {
}
@objc func nextStep() {
self.navigationController?.popViewController(animated: true)
viewModel.requestSaveSchool {[weak self] success, error in
guard let self = self else { return }
if success {
self.navigationController?.popViewController(animated: true)
} else {
YHHUD.flash(message: "保存失败")
}
}
}
}
......
......@@ -71,7 +71,14 @@ class YHEditWorkViewController: YHBaseViewController {
}
@objc func nextStep() {
self.navigationController?.popViewController(animated: true)
viewModel.requestSaveWork {[weak self] success, error in
guard let self = self else { return }
if success {
self.navigationController?.popViewController(animated: true)
} else {
YHHUD.flash(message: "保存失败")
}
}
}
}
......
......@@ -137,6 +137,7 @@ extension YHEditBaseInfoFootView: UITextViewDelegate {
}
numberLabel.text = textView.text.count.string + "/20"
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
let newLength = (textView.text as NSString).length + text.count - range.length
......
......@@ -10,11 +10,32 @@ import UIKit
class YHEditViewModel: YHBaseViewModel {
var model: YHUserNameCardInfo = YHUserNameCardInfo()
override init() {
super.init()
}
func requestChangeHead(callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.change
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
let dic = json.data
guard let result = YHChangeHeadModel.deserialize(from: dic as? Dictionary) else {
callBackBlock(false,nil)
return
}
self.model.avatar = result.avatar
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func getBaseDataSource() -> [YHUserInformationModel] {
let item1 = YHUserInformationModel(id: .id1, title: "真实姓名", isUserKeyBoard: true, prompts: "请输入您的真实姓名", message: model.username)
let item2 = YHUserInformationModel(id: .id6, title: "所在地", isUserKeyBoard: false, prompts: "请选择您的所在地", message: model.address.country, type: .country)
......@@ -74,4 +95,122 @@ class YHEditViewModel: YHBaseViewModel {
return [item1, item2, item3]
}
func requestSaveUserInfo(callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let address: [String: Any] = ["country": model.address.country,
"province": model.address.province,
"city": model.address.city]
let basic: [String: Any] = ["avatar": model.avatar,
"username": model.username,
"zodiac": model.zodiac,
"address": address,
"signature": model.signature]
let params: [String: Any] = ["basic_info": basic]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.cardSave
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestSavePersonalProfile(callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let introduction: [String: Any] = ["bio": model.bio]
let params: [String: Any] = ["introduction": introduction]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.cardSave
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestSaveWork(callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let work: [String: Any] = ["company_name": model.companyName,
"position": model.position,
"industry": model.industry]
let params: [String: Any] = ["work": work]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.cardSave
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestSaveSchool(callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let education: [String: Any] = ["college": model.college,
"major": model.major,
"background": model.background]
let params: [String: Any] = ["education": education]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.cardSave
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestSaveAward(callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let award: [String: Any] = ["honor": model.honor]
let params: [String: Any] = ["award": award]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.cardSave
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestSaveTopics(topics: [String], callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let interest: [String: Any] = ["topics": topics]
let params: [String: Any] = ["interest": interest]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.People.cardSave
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
}
......@@ -372,51 +372,51 @@ class YHConstantArrayData {
static let arrDegreeConstellation = [
[
"id":"1",
"id":"aquarius",
"title" : "水瓶座",
],
[
"id" : "2",
"id" : "pisces",
"title" : "双鱼座",
],
[
"id" : "3",
"id" : "aries",
"title" : "白羊座",
],
[
"id":"4",
"id":"taurus",
"title" : "金牛座",
],
[
"id" : "5",
"id" : "gemini",
"title" : "双子座",
],
[
"id" : "6",
"id" : "cancer",
"title" : "巨蟹座",
],
[
"id": "7",
"id": "leo",
"title" : "狮子座",
],
[
"id" : "8",
"id" : "virgo",
"title" : "处女座",
],
[
"id" : "9",
"id" : "libra",
"title" : "天秤座",
],
[
"id": "10",
"id": "scorpio",
"title" : "天蝎座",
],
[
"id" : "11",
"id" : "sagittarius",
"title" : "射手座",
],
[
"id" : "12",
"id" : "capricorn",
"title" : "摩羯座",
],
]
......
......@@ -332,6 +332,7 @@ class YHAllApiName {
static let authorizationSubmit = "super-app/authorization/submit"
static let userInfo = "super-app/user-base/info"
static let userAuthorization = "super-app/user/authorization"
static let cardSave = "super-app/business-card/save"
}
}
......@@ -77,7 +77,8 @@ class YHNetRequest: NSObject {
private var headers: HTTPHeaders?
///  数据请求
private var httpRequest: DataRequest?
private var businessCode: String = "4001001"
override init() {
super.init()
......@@ -95,7 +96,7 @@ class YHNetRequest: NSObject {
requestHeader.add(name:"app_version",value:version)
requestHeader.add(name:"pass",value:"")
requestHeader.add(name:"businessCode",value:"4001001")
// requestHeader.add(name:"businessCode",value:"4001001")
let appkey = "958364f87222c200a72414f492bf0e26"
let signOrgiString = "appid=" + "1" + "&" + "timestamp=" + dateStr + "&" + "appkey=" + appkey
......@@ -113,6 +114,11 @@ class YHNetRequest: NSObject {
headers = requestHeader
}
func businessCode(_ code: String) -> Self {
self.businessCode = code
return self
}
///  链式语法
func url(_ url:String?) -> Self{
self.url = url ?? ""
......@@ -163,7 +169,7 @@ class YHNetRequest: NSObject {
return httpRequest
}
let requestHeaders = getHeader()
var requestHeaders = getHeader()
#if DEBUG
printLog("网络请求头数据:" )
......@@ -175,6 +181,7 @@ class YHNetRequest: NSObject {
AF.sessionConfiguration.timeoutIntervalForRequest = 20
let encoding = (self.requestType == .get ? URLEncoding(destination: .queryString) : JSONEncoding()) as ParameterEncoding
requestHeaders.add(name:"businessCode",value: businessCode)
httpRequest = AF.request(self.url!, method: self.requestType,parameters: self.params, encoding:encoding, headers: requestHeaders, interceptor: nil, requestModifier: nil)
httpRequest?.responseString(completionHandler: { string in
......@@ -372,26 +379,26 @@ class YHNetRequest: NSObject {
}
extension YHNetRequest {
class func getRequest(url:String, params:[String:Any] = [:], successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
class func getRequest(url:String, params:[String:Any] = [:], _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
printLog("\n发起请求的URL是===> url = \(url)")
printLog("\n发起请求的参数是===> url = \(params)")
return YHNetRequest().url(url).requestType(.get).params(params).success(successBlock).failed(failBlock).startRequest()
return YHNetRequest().businessCode(businessCode).url(url).requestType(.get).params(params).success(successBlock).failed(failBlock).startRequest()
}
class func postRequest(url:String, params:[String:Any] = [:], successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
class func postRequest(url:String, params:[String:Any] = [:], _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
printLog("\n发起请求的URL是===> url = \(url)")
printLog("\n发起请求的参数是===> url = \(params)")
return YHNetRequest().url(url).requestType(.post).params(params).success(successBlock).failed(failBlock).startRequest()
return YHNetRequest().businessCode(businessCode).url(url).requestType(.post).params(params).success(successBlock).failed(failBlock).startRequest()
}
class func uplaodRequest(url:String, headers:HTTPHeaders, image: UIImage, successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
class func uplaodRequest(url:String, headers:HTTPHeaders, image: UIImage, _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
printLog("\n发起请求的URL是===> url = \(url)")
return YHNetRequest().url(url).success(successBlock).failed(failBlock).uploadRequest(headers, image)
return YHNetRequest().businessCode(businessCode).url(url).success(successBlock).failed(failBlock).uploadRequest(headers, image)
}
class func uplaodFileRequest(url:String, headers:HTTPHeaders, fileUrl: String, successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
class func uplaodFileRequest(url:String, headers:HTTPHeaders, fileUrl: String, _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
printLog("\n发起请求的URL是===> url = \(url)")
return YHNetRequest().url(url).success(successBlock).failed(failBlock).uploadFileRequest(headers, fileUrl)
return YHNetRequest().businessCode(businessCode).url(url).success(successBlock).failed(failBlock).uploadFileRequest(headers, fileUrl)
}
}
......@@ -22,6 +22,7 @@ class YHOSSModel: YHBaseModel {
class YHOSSManager: NSObject, URLSessionDelegate {
static let share = YHOSSManager()
var model: YHOSSModel = YHOSSModel()
var publicModel: YHOSSModel = YHOSSModel()
var mProvider: OSSStsTokenCredentialProvider!
var mClient: OSSClient!
var fileName: [String] = []
......@@ -59,8 +60,20 @@ class YHOSSManager: NSObject, URLSessionDelegate {
return
}
self.model = resultModel
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken)
self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider)
if let block = completionHandler {
block()
}
} failBlock: { err in
}
let _ = YHNetRequest.getRequest(url: strUrl, params: param, "5000000") { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
let dic = json.data
guard let resultModel = YHOSSModel.deserialize(from: dic as? Dictionary) else {
return
}
self.publicModel = resultModel
if let block = completionHandler {
block()
}
......@@ -75,10 +88,21 @@ class YHOSSManager: NSObject, URLSessionDelegate {
callBackBlock(nil, YHErrorModel())
return
}
if isPublic {
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.publicModel.accessKeyId, secretKeyId: self.publicModel.accessKeySecret, securityToken: self.publicModel.securityToken)
self.mClient = OSSClient(endpoint: self.publicModel.endpoint, credentialProvider: self.mProvider)
} else {
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken)
self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider)
}
DispatchQueue.global().async {
request.uploadingData = imageData
request.bucketName = self.model.bucket
if isPublic {
request.bucketName = self.publicModel.bucket
} else {
request.bucketName = self.model.bucket
}
let timestamp = Date().timeIntervalSince1970
let randomInt = Int.random(in: 1...100) // 随机生成1到10之间的整数
let name = "\(UInt64(timestamp))" + "\(randomInt)" + ".jpg"
......@@ -109,7 +133,7 @@ class YHOSSManager: NSObject, URLSessionDelegate {
let currentDateMMdd = dateFormatter.string(from: Date())
var string = ""
if isPublic {
string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "5000000" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
string = "https://" + self.publicModel.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "5000000" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
} else {
string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "4001001" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
}
......@@ -127,11 +151,21 @@ class YHOSSManager: NSObject, URLSessionDelegate {
callBackBlock(nil, YHErrorModel())
return
}
if isPublic {
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.publicModel.accessKeyId, secretKeyId: self.publicModel.accessKeySecret, securityToken: self.publicModel.securityToken)
self.mClient = OSSClient(endpoint: self.publicModel.endpoint, credentialProvider: self.mProvider)
} else {
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken)
self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider)
}
DispatchQueue.global().async {
let fileExtension = URL(fileURLWithPath: file).pathExtension.lowercased()
request.uploadingData = fileData
request.bucketName = self.model.bucket
if isPublic {
request.bucketName = self.publicModel.bucket
} else {
request.bucketName = self.model.bucket
}
let timestamp = Date().timeIntervalSince1970
let name = "\(UInt64(timestamp))" + ".\(fileExtension)"
self.fileName.append(name)
......@@ -163,7 +197,7 @@ class YHOSSManager: NSObject, URLSessionDelegate {
let currentDateMMdd = dateFormatter.string(from: Date())
var string = ""
if isPublic {
string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "5000000" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
string = "https://" + self.publicModel.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "5000000" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
} else {
string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "4001001" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
}
......@@ -176,6 +210,13 @@ class YHOSSManager: NSObject, URLSessionDelegate {
}
func getPublic(url: String, _ isPublic: Bool = false, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
if isPublic {
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.publicModel.accessKeyId, secretKeyId: self.publicModel.accessKeySecret, securityToken: self.publicModel.securityToken)
self.mClient = OSSClient(endpoint: self.publicModel.endpoint, credentialProvider: self.mProvider)
} else {
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken)
self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider)
}
DispatchQueue.global().async {
let bucketName = self.getBucket(url)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment