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

// AI

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