Commit 51c65e92 authored by David黄金龙's avatar David黄金龙

代码合并

parents d19e8dd7 8329c0a4
......@@ -70,7 +70,7 @@ target 'galaxy' do
#导航栏、手势
pod 'GKNavigationBarSwift','1.6.5'
#crash统计
pod 'Bugly','2.5.93'
pod 'Bugly','2.6.1'
#神策数据分析
pod 'SensorsAnalyticsSDK','4.6.0'
#主流APP分类切换滚动视图
......
......@@ -15,13 +15,18 @@ class YHButlerServiceViewModel {
let params: [String : Any] = ["yh_id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.QiYu.userInfomation
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let data = json.data?.peel as? [String : Any], let dataString = data.yh_toJSONString() else {
if json.code == 200 {
guard let data = json.data?.peel, JSONSerialization.isValidJSONObject(data), let jsonData = try? JSONSerialization.data(withJSONObject: data, options: []), let dataString = jsonData.string(encoding: .utf8) else {
callBackBlock(nil, nil, YHErrorModel())
return
}
let avatar = self?.getAvatarFromJsonObject(data)
callBackBlock(dataString, avatar, nil)
} else {
let err : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, nil,err)
}
} failBlock: { err in
callBackBlock(nil, nil, err)
}
......
......@@ -8,6 +8,7 @@
import UIKit
import IQKeyboardManagerSwift
import SafariServices
class YHButlerServiceManager: NSObject {
......@@ -18,9 +19,15 @@ class YHButlerServiceManager: NSObject {
// 调整UI
private weak var customUIConfig = QYSDK.shared().customUIConfig()
// 点击事件处理
private weak var customActionConfig = QYSDK.shared().customActionConfig()
private lazy var getUserInfoViewModel: YHButlerServiceViewModel = YHButlerServiceViewModel()
var lastMessage: YHButlerServiceMessage?
var lastMessage: YHButlerServiceMessage? {
getLastMessage()
}
var unreadCount: Int {
allUnreadCount()
}
......@@ -42,6 +49,7 @@ class YHButlerServiceManager: NSObject {
let qyOption = QYSDKOption(appKey: YhConstant.QiYuSDK.appKey)
qyOption.appName = YhConstant.QiYuSDK.appName
QYSDK.shared().register(with: qyOption)
updateActionConfig()
/*
QYSDK.shared().registerPushMessageNotification { pushMessage in
os_log("#####registerPushMessageNotification %@ %ld %f", (pushMessage?.text ?? ""), (pushMessage?.type.rawValue ?? 0), (pushMessage?.time ?? 0))
......@@ -83,6 +91,7 @@ class YHButlerServiceManager: NSObject {
getUserInfoViewModel.getUserInfomation(userId) { [weak self] dataString, avatar, error in
// 改变头像
self?.customUIConfig?.customerHeadImageUrl = avatar
self?.customUIConfig?.showServiceNickName = true
self?.updateUserInfo(userId: userId, userData: dataString ?? "", completion: { success in
gotoSessionVC()
})
......@@ -90,6 +99,28 @@ class YHButlerServiceManager: NSObject {
}
}
extension YHButlerServiceManager {
// MARK: - customActionConfig
private func updateActionConfig() {
// 账号登录后是否拉取漫游消息
customActionConfig?.pullRoamMessage = true
// 拉取漫游消息条数,默认20条,最大100条
customActionConfig?.roamMessageLimit = 100
customActionConfig?.linkClickBlock = { linkAddress in
guard let linkAddress = linkAddress, (linkAddress.isValidHttpUrl || linkAddress.isValidHttpsUrl || linkAddress.isValidFileUrl), let url = URL(string: linkAddress) else {
return QYLinkClickActionPolicy.open
}
let safariViewController = SFSafariViewController(url: url)
safariViewController.dismissButtonStyle = .close
safariViewController.modalPresentationStyle = .fullScreen
UIViewController.current?.present(safariViewController, animated: true, completion: nil)
return QYLinkClickActionPolicy.cancel
}
}
}
extension YHButlerServiceManager {
// MARK: - 常用公开方法
......@@ -97,14 +128,12 @@ extension YHButlerServiceManager {
/// 灰度打开
func isUatAllowed() -> Bool {
let allowed = YHUatHelper.shared.getUatModuleStatusBy(module: .QiYu_Service) == 1
//TODO: for test Alex
return allowed || true
return allowed
}
/// 初始化SDK用户信息
func initSDKAccountAndLastMessage() {
updateSDKAccountInfo(completion: { [weak self] _ in
self?.lastMessage = self?.getLastMessage()
updateSDKAccountInfo(completion: { _ in
})
}
......@@ -164,6 +193,7 @@ extension YHButlerServiceManager {
getUserInfoViewModel.getUserInfomation(userId) { [weak self] dataString, avatar, error in
// 改变头像
self?.customUIConfig?.customerHeadImageUrl = avatar
self?.customUIConfig?.showServiceNickName = true
self?.updateUserInfo(userId: userId, userData: dataString ?? "", completion: { success in
completion(success)
})
......@@ -224,7 +254,6 @@ extension YHButlerServiceManager {
func clearUnreadCount() {
conversationManager?.clearUnreadCount()
// 清空已读消息后刷新最新消息状态
lastMessage = getLastMessage()
printLog("$$$$clearUnreadCount")
//unreadCount = 0
NotificationCenter.default.post(name: YhConstant.YhNotification.didQiYuUnReadMsgCountChangeNotification, object: nil)
......@@ -241,7 +270,6 @@ extension YHButlerServiceManager: QYConversationManagerDelegate {
guard let message = sessionList.first else {
return
}
lastMessage = YHButlerServiceMessageHandler.handleSessionMessage(sessionMessage: message)
NotificationCenter.default.post(name: YhConstant.YhNotification.didQiYuReceiveNewMsgNotification, object: nil)
}
......
......@@ -34,6 +34,8 @@ extension YHButlerServiceMessageHandler {
switch type {
case .audio:
text = "[语音]"
/*
// 规则存在问题后续确认后打开
if let audioMessage = nimMessage?.messageObject as? NIMAudioObject {
let duration = audioMessage.duration
if duration > 0 {
......@@ -41,6 +43,7 @@ extension YHButlerServiceMessageHandler {
text += "\(seconds)″"
}
}
*/
case .text:
text = originalText ?? ""
case .image:
......
......@@ -204,6 +204,18 @@ class YHCommunityViewController: YHBaseViewController {
make.left.equalTo(self.friendsBtn.snp.right).offset(-8)
make.top.equalTo(self.friendsBtn.snp.top).offset(-8)
}
segmentedView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_safeAreaInsetsTop())
make.height.equalTo(48.0)
}
listContainerView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_safeAreaInsetsTop() + 48.0)
make.bottom.equalTo(-k_Height_TabBar)
}
}
override func viewWillAppear(_ animated: Bool) {
......@@ -220,13 +232,6 @@ class YHCommunityViewController: YHBaseViewController {
navigationController?.interactivePopGestureRecognizer?.isEnabled = true
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
segmentedView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: view.bounds.size.width, height: 48)
listContainerView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop() + 48, width: view.bounds.size.width, height: view.bounds.size.height - 48 - k_Height_safeAreaInsetsTop())
}
func requestFriendRequest() {
if YHLoginManager.shared.isLogin() {
self.friendViewModel.getMyFriendList { success, error in
......
......@@ -166,7 +166,7 @@ class YHMatchUserViewController: YHBaseViewController {
bgImgV.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(-k_Height_statusBar()-48.0)
make.bottom.equalToSuperview()
make.bottom.equalToSuperview().offset(k_Height_TabBar)
}
launchLottieView.snp.makeConstraints { make in
......@@ -200,7 +200,7 @@ class YHMatchUserViewController: YHBaseViewController {
make.left.equalTo(24)
make.right.equalTo(-24)
make.height.equalTo(48.0)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom()-48-60)
make.bottom.equalTo(-60)
}
self.bottomLabel.snp.makeConstraints { make in
......
......@@ -27,6 +27,8 @@ class YHHomePageViewController: YHBaseViewController {
var homeHeaderViewHeight : CGFloat = 0.0 // = self.homeHeaderView.getHomeHeadViewH(showTips: false)
private var isGoYHManagerFlag : Bool = false
lazy var homeCollectView = {
// 设置布局方向
......@@ -83,9 +85,22 @@ class YHHomePageViewController: YHBaseViewController {
lazy var homeHeaderView: YHHomeHeadView = {
let view = YHHomeHeadView()
view.orderTipsViewClickEvent = {
goTabBarBy(tabType: .service)
}
view.galaxyManagerItemClickEvent = { [weak self] in
guard let self = self else {
return
}
if self.isGoYHManagerFlag {
return
}
self.isGoYHManagerFlag = true
YHHUD.show(.progress(message: "加载中..."))
self?.gotoYinHeManager(completion: { [weak self] success in
self.gotoYinHeManager(completion: { [weak self] success in
self?.isGoYHManagerFlag = false
guard let self = self else {
return
}
......@@ -107,13 +122,16 @@ private extension YHHomePageViewController {
guard isViewLoaded, homeHeaderView.superview != nil else {
return
}
guard YHButlerServiceManager.shared.isUatAllowed(), YHLoginManager.shared.isLogin() else {
guard YHLoginManager.shared.isLogin() else {
return
}
guard YHButlerServiceManager.shared.isUatAllowed() else {
self.homeHeaderView.orderTipsView.customerServiceMessage = YHButlerServiceHomeInfoMessage(showButler: false, serviceMessage: nil)
return
}
needUpdateMgrItem = false
let showButler = true
// 不获取最新消息内容了
// let serviceMessage = YHButlerServiceManager.shared.getLastMessage()
let serviceMessage = YHButlerServiceMessage()
serviceMessage.content = "一对一专属服务"
......
......@@ -20,6 +20,7 @@ class YHHomeHeadView: UIView {
}
var galaxyManagerItemClickEvent: (() -> Void)?
var orderTipsViewClickEvent: (() -> Void)?
//获取headView的具体高度
func getHomeHeadViewH(showTips : Bool) -> CGFloat {
......@@ -64,6 +65,9 @@ class YHHomeHeadView: UIView {
view.galaxyManagerItemClickEvent = { [weak self] in
self?.galaxyManagerItemClickEvent?()
}
view.buttonClickEvent = { [weak self] in
self?.orderTipsViewClickEvent?()
}
view.isHidden = true
return view
}()
......
......@@ -32,6 +32,7 @@ class YHOrderTipsView: UIView {
fileprivate static let viewH : CGFloat = 84.0
fileprivate static let viewH2 : CGFloat = 154.0
fileprivate static let viewH3 : CGFloat = 218.0
var buttonClickEvent: (() -> Void)?
private var orderTipsViewStyle: YHOrderTipsViewStyleType = .none {
didSet {
......@@ -51,6 +52,9 @@ class YHOrderTipsView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
let tap : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapButton(gestureRecognizer:)))
addGestureRecognizer(tap)
}
var dataModelForBasicInfo : YHSignerInfoModel? {
......@@ -290,4 +294,9 @@ private extension YHOrderTipsView {
layoutIfNeeded()
setNeedsLayout()
}
@objc func tapButton(gestureRecognizer:UITapGestureRecognizer) {
buttonClickEvent?()
}
}
......@@ -29,7 +29,7 @@ class YHHKPlanItemView: UIView {
private lazy var numberLabel : UILabel = {
let view = UILabel()
view.text = "--/300"
view.text = "--/100"
view.font = UIFont.PFSC_R(ofSize: 12)
view.textColor = UIColor.placeHolderColor
view.textAlignment = .right
......@@ -77,8 +77,8 @@ class YHHKPlanItemView: UIView {
//提示文字
var tipsTxt : String = "请输入,300字内"
// var maxNumbler : Int = 300
var maxNumbler : Int = 300 {
// var maxNumbler : Int = 100
var maxNumbler : Int = 100 {
didSet {
tipsTxt = "请输入," + maxNumbler.string + "字内"
}
......@@ -217,12 +217,12 @@ private extension YHHKPlanItemView {
}
if model.type == .planOther {
maxNumbler = 300
maxNumbler = 100
tipsTxt = "在此补充其他信息,非必填"
iconImageV.isHidden = true
} else {
maxNumbler = 300
maxNumbler = 100
iconImageV.isHidden = false
}
......@@ -408,8 +408,9 @@ extension YHHKPlanItemView : UITextViewDelegate {
return true
}
let newLength = calcTextLength(string: textView.text)
return newLength <= maxNumbler - 1
let tempTxt = textView.text + text
let newLength = calcTextLength(string: tempTxt)
return newLength <= maxNumbler
}
func textViewDidChange(_ textView: UITextView) {
......
......@@ -360,9 +360,6 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "1、主要事业成就"
tModel.content = model.career_achievement.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 100 {
// tModel.content = tModel.content.slicing(from: 0, length: 100) ?? ""
// }
tModel.type = .planDocQuestion1
tModel.isFirstData = true
arrHKPlanData.append(tModel)
......@@ -373,9 +370,6 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "2、专业技能成就"
tModel.content = model.professional_skills.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 100 {
// tModel.content = tModel.content.slicing(from: 0, length: 100) ?? ""
// }
tModel.type = .planDocQuestion2
arrHKPlanData.append(tModel)
......@@ -386,11 +380,7 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "3、学业成就"
tModel.content = model.academic_achievement.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 100 {
// tModel.content = tModel.content.slicing(from: 0, length: 100) ?? ""
// }
tModel.type = .planDocQuestion3
arrHKPlanData.append(tModel)
}
......@@ -399,9 +389,6 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "4、未来发展计划"
tModel.content = model.plan_detail.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 100 {
// tModel.content = tModel.content.slicing(from: 0, length: 100) ?? ""
// }
tModel.type = .planDocQuestion4
arrHKPlanData.append(tModel)
......@@ -412,9 +399,6 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "5、专业资格及奖项"
tModel.content = model.qualifications_and_awards.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 100 {
// tModel.content = tModel.content.slicing(from: 0, length: 100) ?? ""
// }
tModel.type = .planDocQuestion5
arrHKPlanData.append(tModel)
......@@ -425,9 +409,6 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "6、其他材料"
tModel.content = model.other.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 100 {
// tModel.content = tModel.content.slicing(from: 0, length: 100) ?? ""
// }
tModel.type = .planDocQuestion6
arrHKPlanData.append(tModel)
......@@ -437,9 +418,6 @@ private extension YHMyDocumentsDetailViewModel {
let tModel = YHHKPlanDocModel()
tModel.title = "7、备注"
tModel.content = model.remark.defaultStringIfEmpty(detaultValue: "")
// if tModel.content.count > 500 {
// tModel.content = tModel.content.slicing(from: 0, length: 500) ?? ""
// }
tModel.type = .planOther
tModel.isLastData = true
......
......@@ -55,12 +55,15 @@ class YHImageResultViewController: YHBaseViewController {
YHHUD.hide()
if let block = self.successHandlerBlock {
block(model?.content ?? "")
// let mineVC = YHWorkExperienceViewController()
var targetVC : UIViewController?
for controller in self.navigationController!.viewControllers {
if controller.isKind(of: YHWorkExperienceViewController.self) {
targetVC = controller
}
if controller.isKind(of: YHWorkIntroductionViewController.self) {
targetVC = controller
}
}
if let targetVC = targetVC {
self.navigationController?.popToViewController(targetVC, animated: true)
......
......@@ -253,6 +253,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
guard let self = self else { return }
self.dataSource.project_highlights = result
self.messageTextField.text = result
self.isShowPromptsLabel()
}
self.navigationController?.pushViewController(clipperVC, animated: true)
}
......
......@@ -17,6 +17,8 @@ class YHMessageListVC: YHBaseViewController {
return model
}()
private var isGoYHManagerFlag : Bool = false
private let serviceCenterViewModel : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel()
var isNotifyEnabled = false
......@@ -82,6 +84,17 @@ class YHMessageListVC: YHBaseViewController {
return view
}()
lazy var managerSession: YHMessageInfoModel = {
let mgrMsg = YHMessageInfoModel()
mgrMsg.type = YHMessageType.yinheManager.rawValue
mgrMsg.unreadCount = YHButlerServiceManager.shared.unreadCount
if let lastMsg = YHButlerServiceManager.shared.getLastMessage() {
mgrMsg.lastMessage = lastMsg.content
mgrMsg.lastMessageTime = Int64(lastMsg.timeStamp)
}
return mgrMsg
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
......@@ -97,6 +110,7 @@ class YHMessageListVC: YHBaseViewController {
}
func setupUI() {
addObservers()
gk_navigationBar.isHidden = true
view.backgroundColor = .white
......@@ -105,14 +119,7 @@ class YHMessageListVC: YHBaseViewController {
// 银河管家 始终放在第一位
if YHButlerServiceManager.shared.isUatAllowed() {
let mgrMsg = YHMessageInfoModel()
mgrMsg.type = YHMessageType.yinheManager.rawValue
mgrMsg.unreadCount = YHButlerServiceManager.shared.unreadCount
if let lastMsg = YHButlerServiceManager.shared.getLastMessage() {
mgrMsg.lastMessage = lastMsg.content
mgrMsg.lastMessageTime = Int64(lastMsg.timeStamp)
}
msgArr.append(mgrMsg)
msgArr.append(self.managerSession)
}
self.tableView.reloadData()
......@@ -125,8 +132,8 @@ class YHMessageListVC: YHBaseViewController {
tableView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalToSuperview().offset(4)
make.bottom.equalToSuperview().offset(-k_Height_TabBar)
make.top.equalToSuperview().offset(14)
make.bottom.equalToSuperview()
}
}
......@@ -184,11 +191,11 @@ class YHMessageListVC: YHBaseViewController {
guard let self = self else { return }
// 保留第一个元素银河管家,删除其他元素
if msgArr.count > 1 {
msgArr.removeSubrange(1..<msgArr.count)
msgArr.removeAll()
if YHButlerServiceManager.shared.isUatAllowed() {
msgArr.append(self.managerSession)
}
if success {
var hasUnreadMsg = false
......@@ -353,6 +360,7 @@ extension YHMessageListVC {
private func gotoYinHeManager(completion: @escaping (Bool) -> Void) {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
completion(false)
return
}
YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { success in
......@@ -365,16 +373,11 @@ extension YHMessageListVC {
return
}
for msg in msgArr {
if msg.type == YHMessageType.yinheManager.rawValue { // 银河管家
msg.unreadCount = YHButlerServiceManager.shared.unreadCount
self.managerSession.unreadCount = YHButlerServiceManager.shared.unreadCount
if let lastMsg = YHButlerServiceManager.shared.getLastMessage() {
msg.lastMessage = lastMsg.content
msg.lastMessageTime = Int64(lastMsg.timeStamp)
self.managerSession.lastMessage = lastMsg.content
self.managerSession.lastMessageTime = Int64(lastMsg.timeStamp)
self.tableView.reloadData()
break
}
}
}
}
}
......@@ -426,17 +429,20 @@ extension YHMessageListVC: UITableViewDelegate, UITableViewDataSource {
let msgItem = msgArr[indexPath.row]
if msgItem.type == YHMessageType.yinheManager.rawValue { // 进银河管家
self.gotoYinHeManager { success in
if isGoYHManagerFlag {
return
}
isGoYHManagerFlag = true
self.gotoYinHeManager { success in
self.isGoYHManagerFlag = false
YHHUD.hide()
if success {
//YHButlerServiceManager.shared.clearUnreadCount()
if let managerSession = self.msgArr.first, managerSession.type == YHMessageType.yinheManager.rawValue {
managerSession.unreadCount = 0
self.managerSession.unreadCount = 0
self.tableView.reloadData()
}
}
}
return
}
let vc = YHMessageDetailListVC()
......
......@@ -149,10 +149,11 @@ extension YHUatHelper {
viewModel.getUatList { success, error in
if success {
self.isDataOk = true
NotificationCenter.default.post(name: YhConstant.YhNotification.didRevUatParam, object: nil)
} else {
self.isDataOk = false
}
NotificationCenter.default.post(name: YhConstant.YhNotification.didRevUatParam, object: nil)
}
}
}
......
......@@ -81,17 +81,17 @@ class YHWholeScreenTipsView: UIView {
case .nameCardWorkExperience:
return "该栏目已对好友隐藏,若需重新开启,请前往信息授权处更新设置"
case .hkPlanQ1:
return "请以不超过300字简介你的主要事业成就,包括你在主要工作项目上曾担当的角色、你工作期间曾服务的知名机构/单位或你对有关工作项目及机构的重大贡献"
return "请以不超过100字简介你的主要事业成就,包括你在主要工作项目上曾担当的角色、你工作期间曾服务的知名机构/单位或你对有关工作项目及机构的重大贡献"
case .hkPlanQ2:
return "请以不超过300字简介你的专业技能或人才清单内相关专业的成就,以及有关技能/专业如何对香港经济或社会做出重大贡献"
return "请以不超过100字简介你的专业技能或人才清单内相关专业的成就,以及有关技能/专业如何对香港经济或社会做出重大贡献"
case .hkPlanQ3:
return "请以不超过300字简介你的学业成就,包括你的学业成绩或曾取得的奖项(如有)"
return "请以不超过100字简介你的学业成就,包括你的学业成绩或曾取得的奖项(如有)"
case .hkPlanQ4:
return "请以不超过300字简介你未来在香港发展事业的计划,包括你与本地商业或学业机构联系及合作的详情(如有)"
return "请以不超过100字简介你未来在香港发展事业的计划,包括你与本地商业或学业机构联系及合作的详情(如有)"
case .hkPlanQ5:
return "请以不超过300字简介你所属的专业界别内曾获取由国家或国际认可/著名团体颁奖的专业资格,及曾取得的奖项(如有)"
return "请以不超过100字简介你所属的专业界别内曾获取由国家或国际认可/著名团体颁奖的专业资格,及曾取得的奖项(如有)"
case .hkPlanQ6:
return "请以不超过300字简介你认为对评核你的申请非常重要的其他材料"
return "请以不超过100字简介你认为对评核你的申请非常重要的其他材料"
case .hkPlanQ7:
return "您可以在此输入因为字数限制无法输入的内容"
default:
......
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