Commit 841f3095 authored by Steven杜宇's avatar Steven杜宇

// AI

parent 43f328da
...@@ -272,43 +272,43 @@ extension YHAIRequestManager { ...@@ -272,43 +272,43 @@ extension YHAIRequestManager {
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
} }
func getSubRobotChatConversationId(robotId: String, completion:((String)->())?) { func getSubRobotChatConversationId(listItemId: String, completion:((String)->())?) {
let localConversationId = getLobalSubRobotConversationId(robotId: robotId) let localConversationId = getLobalSubRobotConversationId(listItemId: listItemId)
if !localConversationId.isEmpty { if !localConversationId.isEmpty {
completion?(localConversationId) completion?(localConversationId)
return return
} }
self.viewModel.requestConversationId { sessionId in self.viewModel.requestConversationId { sessionId in
self.saveLobalSubRobotConversationId(sessionId, robotId: robotId) self.saveLobalSubRobotConversationId(sessionId, listItemId: listItemId)
completion?(sessionId) completion?(sessionId)
} }
} }
func getLobalSubRobotConversationId(robotId: String) -> String { func getLobalSubRobotConversationId(listItemId: String) -> String {
let userId = YHLoginManager.shared.userModel?.id ?? "" let userId = YHLoginManager.shared.userModel?.id ?? ""
let key = Self.subrobotConversationConfigKey + userId let key = Self.subrobotConversationConfigKey + userId
if let dict = UserDefaults.standard.dictionary(forKey: key) { if let dict = UserDefaults.standard.dictionary(forKey: key) {
if let conversationId = dict["\(robotId)"] as? String, !conversationId.isEmpty { if let conversationId = dict["\(listItemId)"] as? String, !conversationId.isEmpty {
return conversationId return conversationId
} }
} }
return "" return ""
} }
func saveLobalSubRobotConversationId(_ converId: String, robotId: String) { func saveLobalSubRobotConversationId(_ converId: String, listItemId: String) {
let userId = YHLoginManager.shared.userModel?.id ?? "" let userId = YHLoginManager.shared.userModel?.id ?? ""
let key = Self.subrobotConversationConfigKey + userId let key = Self.subrobotConversationConfigKey + userId
var dict:[String : Any] = [:] var dict:[String : Any] = [:]
if let config = UserDefaults.standard.dictionary(forKey: key) { if let config = UserDefaults.standard.dictionary(forKey: key) {
dict = config dict = config
} }
dict["\(robotId)"] = converId dict["\(listItemId)"] = converId
UserDefaults.standard.set(dict, forKey: key) UserDefaults.standard.set(dict, forKey: key)
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
} }
func clearLobalSubRobotConversationIdForRobotId(_ robotId: String) { func clearLobalSubRobotConversationIdForListItemId(_ listItemId: String) {
saveLobalSubRobotConversationId("", robotId: robotId) saveLobalSubRobotConversationId("", listItemId: listItemId)
} }
} }
...@@ -14,11 +14,12 @@ class YHAIRobotChatViewController: YHBaseViewController { ...@@ -14,11 +14,12 @@ class YHAIRobotChatViewController: YHBaseViewController {
var myTitle: String = "" var myTitle: String = ""
var robotId: String = "" var robotId: String = ""
var listItemId: Int = 0
var conversationId: String = "" var conversationId: String = ""
var messages:[YHAIChatMessage] = [] var messages:[YHAIChatMessage] = []
var historyLastMessageId: String = "" var historyLastMessageId: String = ""
var isNeedShowBannerHeader: Bool = false var isNeedShowBannerHeader: Bool = false
var robotType: Int = 0 var robotType: String = ""
let manager = YHAIRequestManager() let manager = YHAIRequestManager()
let viewModel = YHAIViewModel() let viewModel = YHAIViewModel()
...@@ -215,11 +216,11 @@ class YHAIRobotChatViewController: YHBaseViewController { ...@@ -215,11 +216,11 @@ class YHAIRobotChatViewController: YHBaseViewController {
YHCommonAlertView.show("删除历史记录", "删除后记录无法恢复", "取消", "删除", fullGuestureEnable: false) { YHCommonAlertView.show("删除历史记录", "删除后记录无法恢复", "取消", "删除", fullGuestureEnable: false) {
} callBack: { } callBack: {
self.manager.clearLobalSubRobotConversationIdForRobotId(self.robotId) self.manager.clearLobalSubRobotConversationIdForListItemId("\(self.listItemId)")
self.viewModel.requestConversationId { sessionId in self.viewModel.requestConversationId { sessionId in
if !sessionId.isEmpty { if !sessionId.isEmpty {
self.conversationId = sessionId self.conversationId = sessionId
self.manager.saveLobalSubRobotConversationId(sessionId, robotId: self.robotId) self.manager.saveLobalSubRobotConversationId(sessionId, listItemId: "\(self.listItemId)")
self.messages.removeAll() self.messages.removeAll()
self.tableView.reloadData() self.tableView.reloadData()
YHHUD.flash(message: "清除成功") YHHUD.flash(message: "清除成功")
...@@ -230,10 +231,10 @@ class YHAIRobotChatViewController: YHBaseViewController { ...@@ -230,10 +231,10 @@ class YHAIRobotChatViewController: YHBaseViewController {
func getFlowMessages() -> [String] { func getFlowMessages() -> [String] {
if robotType == YHAYRobotType.education.rawValue { if robotType == YHAIRobotType.education.rawValue {
return ["香港教育有哪些优势?", "去香港读书有哪些条件?", "申请香港学校费用是多少?", "了解银河教育插班服务流程", "了解银河教育插班录取率"] return ["香港教育有哪些优势?", "去香港读书有哪些条件?", "申请香港学校费用是多少?", "了解银河教育插班服务流程", "了解银河教育插班录取率"]
} else if robotType == YHAYRobotType.sale.rawValue { } else if robotType == YHAIRobotType.sale.rawValue {
return ["优才学历加分要求是什么?", "优才现在要怎么申请?", "墨尔本大学是优才合资格大学吗?", "推荐一些优才产品"] return ["优才学历加分要求是什么?", "优才现在要怎么申请?", "墨尔本大学是优才合资格大学吗?", "推荐一些优才产品"]
} }
...@@ -241,20 +242,22 @@ class YHAIRobotChatViewController: YHBaseViewController { ...@@ -241,20 +242,22 @@ class YHAIRobotChatViewController: YHBaseViewController {
} }
func getHeaderTitle() -> String { func getHeaderTitle() -> String {
if robotType == YHAYRobotType.education.rawValue {
if robotType == YHAIRobotType.education.rawValue {
return "Hello,我是香港教育宝" return "Hello,我是香港教育宝"
} else if robotType == YHAYRobotType.sale.rawValue { } else if robotType == YHAIRobotType.sale.rawValue {
return "Hello,我是新港生活规划师" return "Hello,我是新港生活规划师"
} }
return "" return ""
} }
func getHeaderDesc() -> String { func getHeaderDesc() -> String {
if robotType == YHAYRobotType.education.rawValue {
if robotType == YHAIRobotType.education.rawValue {
return "有香港教育的问题尽管问我" return "有香港教育的问题尽管问我"
} else if robotType == YHAYRobotType.sale.rawValue { } else if robotType == YHAIRobotType.sale.rawValue {
return "香港身份办理问题可以找我" return "香港身份办理问题可以找我"
} }
return "" return ""
...@@ -390,14 +393,15 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc ...@@ -390,14 +393,15 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
return view return view
} }
func getBannerForRobotType(_ robotType: Int) -> [YHAIChatBannerItem] { func getBannerForRobotType(_ robotType: String) -> [YHAIChatBannerItem] {
if robotType == YHAYRobotType.sale.rawValue {
if robotType == YHAIRobotType.sale.rawValue {
return [YHAIChatBannerItem(id: 0, title: "了解银河集团", desc: "香港身份生活一站式服务平台", msg: "银河集团,能够为我提供什么?"), return [YHAIChatBannerItem(id: 0, title: "了解银河集团", desc: "香港身份生活一站式服务平台", msg: "银河集团,能够为我提供什么?"),
YHAIChatBannerItem(id: 1, title: "香港身份智能评估", desc: "60s快速评估,了解自身条件是否符合", msg: "开始身份办理评估"), YHAIChatBannerItem(id: 1, title: "香港身份智能评估", desc: "60s快速评估,了解自身条件是否符合", msg: "开始身份办理评估"),
YHAIChatBannerItem(id: 2, title: "银河产品矩阵", desc: "香港身份、生活多样产品", msg: "介绍一下银河的产品"),] YHAIChatBannerItem(id: 2, title: "银河产品矩阵", desc: "香港身份、生活多样产品", msg: "介绍一下银河的产品"),]
} }
if robotType == YHAYRobotType.education.rawValue { if robotType == YHAIRobotType.education.rawValue {
return [YHAIChatBannerItem(id: 0, title: "幼中小学升学", desc: "去香港插班需要考核哪些"), return [YHAIChatBannerItem(id: 0, title: "幼中小学升学", desc: "去香港插班需要考核哪些"),
YHAIChatBannerItem(id: 1, title: "大学升学", desc: "DSE分数和Alevel的换算关系"), YHAIChatBannerItem(id: 1, title: "大学升学", desc: "DSE分数和Alevel的换算关系"),
YHAIChatBannerItem(id: 2, title: "银河教育服务", desc: "银河教育插班成功率如何?"),] YHAIChatBannerItem(id: 2, title: "银河教育服务", desc: "银河教育插班成功率如何?"),]
......
...@@ -171,15 +171,23 @@ extension YHAIServiceListViewController: UICollectionViewDelegate, UICollectionV ...@@ -171,15 +171,23 @@ extension YHAIServiceListViewController: UICollectionViewDelegate, UICollectionV
} else if model.redirectMode == 3 { // agent } else if model.redirectMode == 3 { // agent
self.manager.getSubRobotChatConversationId(robotId: model.redirectPath) { if model.businessType == YHAIRobotType.main.rawValue {
sesseionId in // 切到主Robot
let vc = YHAIRobotChatViewController() NotificationCenter.default.post(name: YhConstant.YhNotification.didSwitchToAIChatNotification, object: nil)
vc.isNeedShowBannerHeader = model.isNeedShowBannerHeader()
vc.myTitle = model.title } else {
vc.robotId = model.redirectPath
vc.conversationId = sesseionId self.manager.getSubRobotChatConversationId(listItemId: "\(model.id)") {
vc.robotType = model.botType sesseionId in
self.navigationController?.pushViewController(vc, animated: true) let vc = YHAIRobotChatViewController()
vc.isNeedShowBannerHeader = model.isNeedShowBannerHeader()
vc.myTitle = model.title
vc.robotId = model.redirectPath
vc.listItemId = model.id
vc.conversationId = sesseionId
vc.robotType = model.businessType
self.navigationController?.pushViewController(vc, animated: true)
}
} }
} }
} }
......
...@@ -19,10 +19,10 @@ class YHAIListModel: SmartCodable { ...@@ -19,10 +19,10 @@ class YHAIListModel: SmartCodable {
} }
} }
enum YHAYRobotType: Int { enum YHAIRobotType: String {
case house = 1 case main = "mainBot"
case education = 2 case education = "educationBot"
case sale = 3 case sale = "saleBot"
} }
class YHEntranceconfigModel: SmartCodable { class YHEntranceconfigModel: SmartCodable {
...@@ -34,11 +34,11 @@ class YHEntranceconfigModel: SmartCodable { ...@@ -34,11 +34,11 @@ class YHEntranceconfigModel: SmartCodable {
var description: String = "" var description: String = ""
var btnText: String = "" var btnText: String = ""
var redirectMode: Int = 0 var redirectMode: Int = 0
var botType: Int = 0 // 1:房产 2:教育 3:销售 var businessType: String = ""
var redirectPath: String = "" var redirectPath: String = ""
func isNeedShowBannerHeader() -> Bool { func isNeedShowBannerHeader() -> Bool {
if botType == YHAYRobotType.education.rawValue || botType == YHAYRobotType.sale.rawValue { if businessType == YHAIRobotType.education.rawValue || businessType == YHAIRobotType.sale.rawValue {
return true return true
} }
return false return false
......
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