|
@@ -184,320 +184,6 @@ class KMRequestServerManager: NSObject {
|
|
|
|
|
|
//MARK: - 会员
|
|
//MARK: - 会员
|
|
extension KMRequestServerManager {
|
|
extension KMRequestServerManager {
|
|
- /**
|
|
|
|
- @abstract 获取验证码
|
|
|
|
- @param verifyCodeType 验证入口类型
|
|
|
|
- @param email 邮箱
|
|
|
|
- */
|
|
|
|
- func getVerifyCode(verifyCodeType: KMVerifyCodeType, email: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/getVerifyCode"
|
|
|
|
- let params: [String: Any] = ["action": verifyCodeType.rawValue,
|
|
|
|
- "appId": "16",
|
|
|
|
- "receiver": email,
|
|
|
|
- "type": "0"]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 注册
|
|
|
|
- @param userName 用户账号(邮箱)
|
|
|
|
- @param verifyCode 验证码
|
|
|
|
- */
|
|
|
|
- func register(userName: String, password: String, verifyCode: String, complete: @escaping (_ success: Bool, _ requestData: KMLightMemberToken?, _ result: Result) -> Void) {
|
|
|
|
- let uuid: String = GetHardwareUUID() ?? ""
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/emailRegister"
|
|
|
|
- let params: [String: Any] = ["appId": "16",
|
|
|
|
- "deviceSign": uuid,
|
|
|
|
- "password": password,
|
|
|
|
- "platformType": "0",
|
|
|
|
- "username": userName,
|
|
|
|
- "verifyCode": verifyCode,
|
|
|
|
- "model": "Mac"]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] task, responseObject, error in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- //解析数据
|
|
|
|
- KMLightMemberToken.parseData(data: result.result) { data in
|
|
|
|
- //登录成功
|
|
|
|
- KMLightMemberManager.manager.logIn()
|
|
|
|
- complete(true, data, result)
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- complete(false, nil, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 注销
|
|
|
|
- @param verifyCode 验证码
|
|
|
|
- */
|
|
|
|
- func logOff(verifyCode: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/user/logOffForUser"
|
|
|
|
-// let params = ["code":verifyCode]
|
|
|
|
- urlString = urlString + (NSString(format: "?code=%@&appId=%@", verifyCode, "16") as String)
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: nil) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- //登出
|
|
|
|
- KMLightMemberCache.cache.clean()
|
|
|
|
- KMLightMemberManager.manager.logOut()
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 登录
|
|
|
|
- @param email 邮箱
|
|
|
|
- @param password 密码
|
|
|
|
- */
|
|
|
|
- func login(email: String, password: String, complete: @escaping (_ success: Bool, _ requestData: KMLightMemberToken?, _ result: Result?) -> Void) {
|
|
|
|
- var urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/emailLogin"
|
|
|
|
- let uuid: String = GetHardwareUUID() ?? ""
|
|
|
|
-// let params: [String: String] = ["appId": "16",
|
|
|
|
-// "deviceSign": uuid,
|
|
|
|
-// "email": email,
|
|
|
|
-// "password": password,
|
|
|
|
-// "platformType": "0"]
|
|
|
|
-
|
|
|
|
- urlString = urlString + (NSString(format: "?appId=16&deviceSign=%@&email=%@&password=%@&platformType=0&model=%@", uuid, email, password, "Mac") as String)
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: nil) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- //解析数据
|
|
|
|
- KMLightMemberToken.parseData(data: result.result) { data in
|
|
|
|
- //登录成功
|
|
|
|
- KMLightMemberManager.manager.logIn()
|
|
|
|
- complete(true, data, nil)
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- complete(false, nil, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 登出
|
|
|
|
- */
|
|
|
|
- func logout(complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- let uuid: String = GetHardwareUUID() ?? ""
|
|
|
|
- var urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/user/logout"
|
|
|
|
-
|
|
|
|
-// let params: [String: Any] = ["deviceSign": uuid,
|
|
|
|
-// "appId": "16"]
|
|
|
|
-
|
|
|
|
- urlString = urlString + (NSString(format: "?appId=16&deviceSign=%@", uuid) as String)
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: nil) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- //登出成功
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- //登出
|
|
|
|
- KMLightMemberManager.manager.logOut()
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 修改密码
|
|
|
|
- @param url 源文件url
|
|
|
|
- @param data 数据
|
|
|
|
- @retrun document
|
|
|
|
- */
|
|
|
|
- func resetPassword(account: String, firstPassword: String, secondPassword: String, verifyCode: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/resetPassword"
|
|
|
|
- let params: [String: Any] = ["account": account,
|
|
|
|
- "appId": "16",
|
|
|
|
- "firstPassword": firstPassword,
|
|
|
|
- "platformType": "0",
|
|
|
|
- "secondPassword": secondPassword,
|
|
|
|
- "verifyCode": verifyCode]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 获取用户信息
|
|
|
|
- */
|
|
|
|
- func getUserInfo(complete: @escaping (_ success: Bool, _ data: KMLightMemberUserInfo?, _ result: Result?, _ isLocal: Bool) -> Void) {
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- complete(false , nil, Result(message: "token 不存在", code: 304), false)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //先拿缓存数据 再请求新数据
|
|
|
|
- let cacheData = KMLightMemberCache.cache.readData()
|
|
|
|
- if cacheData.count != 0 {
|
|
|
|
- KMLightMemberUserInfo.parseData(data: cacheData, needSave: false) { data in
|
|
|
|
- complete(true ,data, nil, true)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/user/me"
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- //解析数据
|
|
|
|
- KMLightMemberUserInfo.parseData(data: responseObject as! NSDictionary) { data in
|
|
|
|
- KMLightMemberManager.manager.reloadUserInfo()
|
|
|
|
- complete(true, data, nil, false)
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- complete(false, nil, result, false)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func getUserInfo2() async throws -> (Bool, Result) {
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- return (false, Result())
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if #available(macOS 10.15, *) {
|
|
|
|
- return try await withCheckedThrowingContinuation { continuation in
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/user/me"
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- DispatchQueue.main.async {
|
|
|
|
- if result.code == 200 {
|
|
|
|
- //解析数据
|
|
|
|
- KMLightMemberUserInfo.parseData(data: responseObject as! NSDictionary) { data in
|
|
|
|
- KMLightMemberManager.manager.reloadUserInfo()
|
|
|
|
- continuation.resume(returning: (true, result))
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- continuation.resume(returning: (false, result))
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- // Fallback on earlier versions
|
|
|
|
- return (true, Result())
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 验证码验证是否正确
|
|
|
|
- @param account 用户账号(邮箱)
|
|
|
|
- @param verifyCode 验证码
|
|
|
|
- @retrun verifyCodeType 验证码入口类型
|
|
|
|
- */
|
|
|
|
- func verificationCode(account: String, verifyCode: String, verifyCodeType: KMVerifyCodeType, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/isEmailCodeValid"
|
|
|
|
- let params: [String: Any] = ["account": account,
|
|
|
|
- "code": verifyCode,
|
|
|
|
- "type": verifyCodeType.rawValue,
|
|
|
|
- "appId": "16"]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 邮箱验证
|
|
|
|
- @param account 用户账号(邮箱)
|
|
|
|
- @param verifyCodeType 验证码
|
|
|
|
- @retrun verifyCodeType 验证码入口类型
|
|
|
|
- */
|
|
|
|
- func verificationEmail(userName: String, verifyEmailType: KMVerifyEmailType, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/validUser"
|
|
|
|
- let params: [String: Any] = ["appId": "16",
|
|
|
|
- "username": userName,
|
|
|
|
- "platformType": "0",
|
|
|
|
- "validType": verifyEmailType.rawValue]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func getDeviceRetensionCoupon(complete: @escaping KMRequestServerDateComplete) {
|
|
|
|
-
|
|
|
|
- let urlString = AIInfoConfig().aiActionURL + "api/devices/getRetensionCoupon"
|
|
|
|
- let params: [String:Any] = ["unique_sn": self.uuid(),
|
|
|
|
- "platform": "DMG"]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 && result.error != nil && result.message != "unknown error" {
|
|
|
|
- complete(true, responseObject as? NSDictionary)
|
|
|
|
- } else {
|
|
|
|
- complete(false, responseObject as? NSDictionary)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
//MARK: Private Method
|
|
//MARK: Private Method
|
|
private func uuid() -> String {
|
|
private func uuid() -> String {
|
|
@@ -505,364 +191,10 @@ extension KMRequestServerManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-//MARK: - 订阅
|
|
|
|
-extension KMRequestServerManager {
|
|
|
|
- //创建订单
|
|
|
|
- func createOrder(productId: String, userId: String, complete: @escaping (_ success: Bool, _ orderId: String?, _ result: Result?) -> Void) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreCreateOrder"
|
|
|
|
- let params: [String: Any] = ["productId": productId,
|
|
|
|
- "paymentMethod": "APPLE_PAY",
|
|
|
|
- "userId": userId,
|
|
|
|
- "appId": "16"]
|
|
|
|
-
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- complete(false, "", Result())
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result.result["id"] as! String, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, "", result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //
|
|
|
|
- func restore(productId: String, userId: String, complete: @escaping (_ success: Bool, _ orderId: String?, _ result: Result?) -> Void) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreCreateOrder"
|
|
|
|
- let params: [String: Any] = ["productId": productId,
|
|
|
|
- "paymentMethod": "APPLE_PAY",
|
|
|
|
- "userId": userId,
|
|
|
|
- "appId": "16"]
|
|
|
|
-
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- complete(false, "", Result())
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result.result["id"] as! String, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, "", result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func parseVerification(applePayProductId: String, orderId: String, receipt: String, restore: Int = 0, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreOrderSucceed"
|
|
|
|
- let params: [String: Any] = ["applePayProductId": applePayProductId,
|
|
|
|
- "orderId": orderId,
|
|
|
|
- "receipt": receipt,
|
|
|
|
- "restore": restore]
|
|
|
|
- KMPrint("二次验证上传数据:\(params)")
|
|
|
|
- let token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- complete(false, Result())
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func checkDeviceStatus(complete: @escaping KMRequestServerComplete) {
|
|
|
|
- var urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-sso/auth/checkDeviceStatus"
|
|
|
|
-
|
|
|
|
- let uuid: String = GetHardwareUUID() ?? ""
|
|
|
|
-// let params: [String: Any] = ["appId": "16",
|
|
|
|
-// "deviceSign": uuid]
|
|
|
|
- urlString = urlString + (NSString(format: "?appId=16&deviceSign=%@", uuid) as String)
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: nil) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func appStoreEquityVerification(applePayProductId: String, receipt: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreEquityVerification"
|
|
|
|
-
|
|
|
|
- let params: [String: Any] = ["applePayProductId": applePayProductId,
|
|
|
|
- "paymentMethod": "APPLE_PAY",
|
|
|
|
- "receipt": receipt
|
|
|
|
- ]
|
|
|
|
- KMPrint("票据信息上传数据:\(params)")
|
|
|
|
- var token: String = KMLightMemberManager.manager.token.access_token
|
|
|
|
- if token == "" {
|
|
|
|
- complete(false, Result())
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func appStoreBuyComplete(applePayProductId: String, receipt: String, isPurchase: Bool = false, complete: @escaping KMRequestServerComplete) {
|
|
|
|
- let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreBuyComplete"
|
|
|
|
- let userId = KMLightMemberManager.manager.info.id
|
|
|
|
- let params: [String: Any] = ["applePayProductId": applePayProductId,
|
|
|
|
- "paymentMethod": "APPLE_PAY",
|
|
|
|
- "receipt": receipt,
|
|
|
|
- "appId": "16",
|
|
|
|
- "productId": "21",
|
|
|
|
- "userId": userId
|
|
|
|
- ]
|
|
|
|
- KMPrint("票据信息上传数据:\(params)")
|
|
|
|
- KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { [unowned self] (task, responseObject, error) in
|
|
|
|
- let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
|
|
|
|
//MARK: - AI
|
|
//MARK: - AI
|
|
extension KMRequestServerManager {
|
|
extension KMRequestServerManager {
|
|
- /**
|
|
|
|
- @abstract 翻译上传
|
|
|
|
- @param file 文件路径
|
|
|
|
- @param version 版本号
|
|
|
|
- */
|
|
|
|
- func aiTranslationFileUpload(file: String, version: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
-
|
|
|
|
- let infoDictionary = Bundle .main.infoDictionary!
|
|
|
|
- let userInfo = KMLightMemberCache.cache.readData(type: .info)
|
|
|
|
- let majorVersion = infoDictionary["CFBundleShortVersionString"]
|
|
|
|
- let urlString = KMAIServerConfig().aiTranslationURL + "/v1/translate/fileUpload"
|
|
|
|
- let fileData = FileManager.default.contents(atPath: file)
|
|
|
|
- let params: [String: Any] = ["file": fileData,
|
|
|
|
- "projectId": "2",
|
|
|
|
- "version": version,
|
|
|
|
- "userId": userInfo["id"] as Any]
|
|
|
|
- KMRequestServer.requestServer.aiTranslation(urlString: urlString, params: params) { formData in
|
|
|
|
- let fileURL = URL(fileURLWithPath: file)
|
|
|
|
- try? formData.appendPart(withFileURL: fileURL, name: "file", fileName: fileURL.lastPathComponent, mimeType: "application/octet-stream")
|
|
|
|
- } requestSerializer: { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { task, responseObject, error in
|
|
|
|
- if responseObject != nil {
|
|
|
|
- let data: NSDictionary = responseObject!["data"] as? NSDictionary ?? [:]
|
|
|
|
- let code: String = responseObject!["code"] as? String ?? "06005"
|
|
|
|
- let message: String = responseObject!["msg"] as? String ?? "unknown error"
|
|
|
|
- let error = NSError(domain: message, code: Int(code)!)
|
|
|
|
- let result = Result(result: data,message: message,code: Int(code)!, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- let error = NSError(domain: "unknown error", code: 404)
|
|
|
|
- let result = Result(result: [:],message: "unknown error",code: 404, error: error)
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 文件翻译
|
|
|
|
- @param fileKey 文件Key
|
|
|
|
- @param from 初始语言
|
|
|
|
- @param to 结束语言
|
|
|
|
- @param version 应用版本
|
|
|
|
- */
|
|
|
|
- func aiTranslationFileTranslateHandle(fileKey: String, from: String, to: String, version: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
-
|
|
|
|
- let infoDictionary = Bundle .main.infoDictionary!
|
|
|
|
- let userInfo = KMLightMemberCache.cache.readData(type: .info)
|
|
|
|
- let majorVersion = infoDictionary["CFBundleShortVersionString"]
|
|
|
|
- let urlString = KMAIServerConfig().aiTranslationURL + "/v1/translate/fileTranslateHandle"
|
|
|
|
- if userInfo.count > 0 {
|
|
|
|
- var semaphore = DispatchSemaphore (value: 0)
|
|
|
|
-
|
|
|
|
- let parameters = String(format: "{\r\n \"fileKey\": \"%@\",\r\n \"from\": \"%@\",\r\n \"to\": \"%@\",\r\n \"version\": \"%@\",\r\n \"projectId\": \"2\",\r\n \"userId\": \"%@\"\r\n}", fileKey, from, to, version, userInfo["id"] as! String)
|
|
|
|
- let postData = parameters.data(using: .utf8)
|
|
|
|
-
|
|
|
|
- var request = URLRequest(url: URL(string: urlString)!,timeoutInterval: Double.infinity)
|
|
|
|
- request.addValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- request.addValue("application/json", forHTTPHeaderField: "Content-Type")
|
|
|
|
-
|
|
|
|
- request.httpMethod = "POST"
|
|
|
|
- request.httpBody = postData
|
|
|
|
-
|
|
|
|
- let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
|
|
|
- guard let data = data else {
|
|
|
|
- KMPrint(String(describing: error))
|
|
|
|
- semaphore.signal()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- let jsonObject = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary ?? [:]
|
|
|
|
- if jsonObject != nil {
|
|
|
|
- let data1: NSDictionary = jsonObject!["data"] as? NSDictionary ?? [:]
|
|
|
|
- let code: String = jsonObject!["code"] as? String ?? "06005"
|
|
|
|
- let message: String = jsonObject!["msg"] as? String ?? "unknown error"
|
|
|
|
- let error = NSError(domain: message, code: Int(code)!)
|
|
|
|
- let result = Result(result: data1,message: message,code: Int(code)!, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- let error = NSError(domain: "unknown error", code: 404)
|
|
|
|
- let result = Result(result: [:],message: "unknown error",code: 404, error: error)
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- semaphore.signal()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- task.resume()
|
|
|
|
- semaphore.wait()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract 内容翻译
|
|
|
|
- @param q 选中
|
|
|
|
- @param from 初始语言
|
|
|
|
- @param to 结束语言
|
|
|
|
- @param version 应用版本
|
|
|
|
- */
|
|
|
|
- func aiTranslationTextTrans(q: String, from: String, to: String, version: String, complete: @escaping KMRequestServerComplete) {
|
|
|
|
-
|
|
|
|
- let infoDictionary = Bundle .main.infoDictionary!
|
|
|
|
- let userInfo = KMLightMemberCache.cache.readData(type: .info)
|
|
|
|
- let majorVersion = infoDictionary["CFBundleShortVersionString"]
|
|
|
|
- let urlString = KMAIServerConfig().aiTranslationURL + "/v1/translate/textTrans"
|
|
|
|
- if userInfo.count > 0 {
|
|
|
|
- var semaphore = DispatchSemaphore (value: 0)
|
|
|
|
-
|
|
|
|
- var escapedString = q
|
|
|
|
- if q.contains("\n") || q.contains("\r") {
|
|
|
|
- escapedString = q.replacingOccurrences(of: "\n", with: "\\n")
|
|
|
|
- escapedString = escapedString.replacingOccurrences(of: "\r", with: "\\r")
|
|
|
|
- } else if q.contains("\u{2028}") {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- escapedString = String(data: escapedString.data(using: .utf8)!, encoding: .utf8)!
|
|
|
|
- // let escapedString = String(data: q.data(using: .utf8)!, encoding: .utf8)!
|
|
|
|
- let parameters = String(format: "{\r\n \"q\": \"%@\",\r\n \"from\": \"%@\",\r\n \"to\": \"%@\",\r\n \"version\": \"%@\",\r\n \"projectId\": \"2\",\r\n \"userId\": \"%@\"\r\n}", escapedString, from, to, version, userInfo["id"] as! String)
|
|
|
|
-
|
|
|
|
- let postData = parameters.data(using: .utf8)
|
|
|
|
-
|
|
|
|
- var request = URLRequest(url: URL(string: urlString)!,timeoutInterval: Double.infinity)
|
|
|
|
- request.addValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- request.addValue("application/json", forHTTPHeaderField: "Content-Type")
|
|
|
|
-
|
|
|
|
- request.httpMethod = "POST"
|
|
|
|
- request.httpBody = postData
|
|
|
|
-
|
|
|
|
- let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
|
|
|
- guard let data = data else {
|
|
|
|
- KMPrint(String(describing: error))
|
|
|
|
- semaphore.signal()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- let jsonObject = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary ?? [:]
|
|
|
|
- if jsonObject != nil {
|
|
|
|
- let data1: NSDictionary = jsonObject!["data"] as? NSDictionary ?? [:]
|
|
|
|
- let code: String = jsonObject!["code"] as? String ?? "06005"
|
|
|
|
- let message: String = jsonObject!["msg"] as? String ?? "unknown error"
|
|
|
|
- let error = NSError(domain: message, code: Int(code)!)
|
|
|
|
- let result = Result(result: data1,message: message,code: Int(code)!, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- let error = NSError(domain: "unknown error", code: 404)
|
|
|
|
- let result = Result(result: [:],message: "unknown error",code: 404, error: error)
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- semaphore.signal()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- task.resume()
|
|
|
|
- semaphore.wait()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- @abstract重写 & 纠错
|
|
|
|
- @param content 内容
|
|
|
|
- @param version 版本号
|
|
|
|
- */
|
|
|
|
- func aiRewriting(content: String, version: String, state: KMAIRewritingState, complete: @escaping KMRequestServerComplete) {
|
|
|
|
-
|
|
|
|
- let userInfo = KMLightMemberCache.cache.readData(type: .info)
|
|
|
|
- var urlString = KMAIServerConfig().aiRewritingURL + "/api/rewrite"
|
|
|
|
-// if state == .AIErrorCorrection {
|
|
|
|
-// urlString = KMAIServerConfig().aiRewritingURL + "/api/correct-typos"
|
|
|
|
-// }
|
|
|
|
- let params: [String: Any] = ["project_id": 2,
|
|
|
|
- "content": content,
|
|
|
|
- "version": version,
|
|
|
|
- "user_id": userInfo["id"] as Any]
|
|
|
|
-
|
|
|
|
- KMRequestServer.requestServer.aiRewriting(urlString: urlString, params: params) { formData in
|
|
|
|
-
|
|
|
|
- } requestSerializer: { requestSerializer in
|
|
|
|
- requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
|
- } completion: { task, responseObject, error in
|
|
|
|
- if responseObject != nil {
|
|
|
|
- let data: NSDictionary = responseObject!["data"] as? NSDictionary ?? [:]
|
|
|
|
- let code: String = responseObject!["code"] as? String ?? "06005"
|
|
|
|
- let message: String = responseObject!["message"] as? String ?? "unknown error"
|
|
|
|
- let error = NSError(domain: message, code: Int(code)!)
|
|
|
|
- let result = Result(result: data,message: message,code: Int(code)!, error: error)
|
|
|
|
- if result.code == 200 {
|
|
|
|
- complete(true, result)
|
|
|
|
- } else {
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- let error = NSError(domain: "unknown error", code: 404)
|
|
|
|
- let result = Result(result: [:],message: "unknown error",code: 404, error: error)
|
|
|
|
- complete(false, result)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
//MARK: - 数据处理
|
|
//MARK: - 数据处理
|
|
@@ -919,9 +251,7 @@ extension KMRequestServerManager {
|
|
}
|
|
}
|
|
|
|
|
|
if code == 304 {
|
|
if code == 304 {
|
|
- self.checkDeviceStatus { success, result in
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
if code == 330 {
|
|
if code == 330 {
|
|
@@ -936,9 +266,7 @@ extension KMRequestServerManager {
|
|
if window != nil {
|
|
if window != nil {
|
|
loginAlert?.beginSheetModal(for: window) { result in
|
|
loginAlert?.beginSheetModal(for: window) { result in
|
|
if (result == .alertFirstButtonReturn) {
|
|
if (result == .alertFirstButtonReturn) {
|
|
- if KMLoginWindowController.fetchSampleController() == nil {
|
|
|
|
- KMLoginWindowController.show(window: window)
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
} else if result == .alertSecondButtonReturn {
|
|
} else if result == .alertSecondButtonReturn {
|
|
self.loginAlert = nil
|
|
self.loginAlert = nil
|
|
return
|
|
return
|
|
@@ -955,9 +283,7 @@ extension KMRequestServerManager {
|
|
if code == 343 {
|
|
if code == 343 {
|
|
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2, execute: { [unowned self] in
|
|
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2, execute: { [unowned self] in
|
|
var window = NSWindow.currentWindow()
|
|
var window = NSWindow.currentWindow()
|
|
- let _ = KMAccountExceptionWindowController.show(window: window)
|
|
|
|
- KMLightMemberManager.manager.logOut()
|
|
|
|
- })
|
|
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
|
|
// if code == 500 {
|
|
// if code == 500 {
|