38 37
         let file = FileModel(fileName: name, fileData: data)
39 38
         let uploadResource = UploadResource<[PhotoItem]>(path: .photoUpload,
40 39
                                                        parameter: ["user_id": ShareUserId,

+ 9 - 21
PaiAi/PaiaiDataKit/DataLayer/Repositories/Remote/GuestUserInfoRemoteAPI.swift

@@ -11,28 +11,24 @@ import RxSwift
11 11
 
12 12
 struct GuestUserInfoRemoteAPI: UserInfoRemoteAPI {
13 13
     
14
-    typealias Model = UserInfo
15
-    
16
-    var path: Interfaces { return .guestLogin }
17
-    var parameter: Parameter = [:]
18
-    
19
-    init() {
20
-        parameter = ["uuid": getUUID()]
14
+    private func parse(_ json: JSON) -> UserInfo? {
15
+        guard let data  = json["data"] as? [String: AnyObject] else { return nil }
16
+        return UserInfo(json: data)
21 17
     }
22 18
     
23 19
     func login() -> Single<UserInfo> {
24
-        return Single.create(subscribe: { (observer) in
25
-            observer(.success(UserInfo(json: ["user_id": "fiDz2Ms" as AnyObject, "userName": "郑剑飞" as AnyObject, "photoPath": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJibSYLgvXpMakvD9FaCqfiaWqcMiaiaz905YxWPuO4hy8F2lGheV7kVr9vKKXFgmL1S5s4QJgxwuwtVw/132" as AnyObject])))
26
-            return Disposables.create()
27
-        })
20
+        let contentResource = ContentResource(path: .guestLogin,
21
+                                              parameter: ["uuid": getUUID()],
22
+                                              parseJSON: parse)
23
+        return contentResource.loadContent()
28 24
     }
29 25
     
30 26
     func getUUID() -> String {
31 27
         let keyChainDic = NSMutableDictionary()
32 28
         keyChainDic.setObject(String(kSecClassGenericPassword), forKey: kSecClass as! NSCopying)
33 29
         keyChainDic.setObject("uuid", forKey: kSecAttrAccount as! NSCopying)
34
-        keyChainDic.setObject(kCFBooleanTrue, forKey: kSecReturnAttributes as! NSCopying)
35
-        keyChainDic.setObject(kCFBooleanTrue, forKey: kSecReturnData as! NSCopying)
30
+        keyChainDic.setObject(kCFBooleanTrue as Any, forKey: kSecReturnAttributes as! NSCopying)
31
+        keyChainDic.setObject(kCFBooleanTrue as Any, forKey: kSecReturnData as! NSCopying)
36 32
         
37 33
         var result: AnyObject?
38 34
         var uuid: String? = nil
@@ -51,11 +47,3 @@ struct GuestUserInfoRemoteAPI: UserInfoRemoteAPI {
51 47
         return uuidStr
52 48
     }
53 49
 }
54
-
55
-//extension GuestUserInfoRemoteAPI {
56
-//    func parse(_ json: JSON) -> UserInfo? {
57
-//        guard let result = json["data"] as? [String: AnyObject] else { return nil }
58
-//        return UserInfo(json: result)
59
-//    }
60
-//
61
-//}

+ 4 - 0
PaiAi/PaiaiDataKit/DataLayer/Repositories/Remote/WXUserInfoRemoteAPI.swift

@@ -45,6 +45,10 @@ class WXUserInfoRemoteAPI: UserInfoRemoteAPI {
45 45
     }
46 46
     
47 47
     func login() -> Single<UserInfo> {
48
+        return Single.create(subscribe: { (observer) in
49
+            observer(.success(UserInfo(json: ["user_id": "fiDz2Ms" as AnyObject, "userName": "郑剑飞" as AnyObject, "photoPath": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJibSYLgvXpMakvD9FaCqfiaWqcMiaiaz905YxWPuO4hy8F2lGheV7kVr9vKKXFgmL1S5s4QJgxwuwtVw/132" as AnyObject])))
50
+            return Disposables.create()
51
+        })
48 52
         return Single.create(subscribe: { (observer) -> Disposable in
49 53
             
50 54
 //            let wxLoginObserver = self.addWXLoginDidFinish()

+ 1 - 1
PaiAi/PaiaiUIKit/Reusable/UIKit/PageViewController/PageViewController.swift

@@ -177,7 +177,7 @@ fileprivate extension PageViewController {
177 177
         setSliderViewDetail()
178 178
     }
179 179
     
180
-    fileprivate func setSliderViewDetail() {
180
+    func setSliderViewDetail() {
181 181
         guard let label = menuView.viewWithTag(baseTag) else { return }
182 182
         sliderConstraint = sliderView.centerXAnchor
183 183
             .constraint(equalTo: label.centerXAnchor)

kodo - Gogs: Go Git Service

Sin Descripción

joinus.html 2.6KB

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title>拍爱 PAI.AI 加入拍爱</title> <meta name="keywords" content="摄影 图片 影像 分享 交流 社交 交友 摄影师 女性 孩子 亲子 旅行 旅游 约拍 iphone android app" /> <link href="css/layout.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/jquery.min.js"></script> </head> <body> <div id="header"> <div class="content"> <a href="index.html" target="_self" class="logo"></a> <div class="navigation"> <a href="contactus.html" target="_self" >联系我们</a> <a href="joinus.html" target="_self" class="current" >加入拍爱</a> <a href="aboutus.html" target="_self" >关于我们</a> <a href="index.html" target="_self" >首页</a> </div> </div> </div> <div id="container" ><div class="content joinus"> <p> 在我们这里,你可以参与到一个火热的创业项目,未来很有可能看到自己作品满大街的人都在使用...如果您喜欢摄影...除了会有各种相机把玩,还会有同好可以畅聊...最重要的,你还会发现...... 你将成为——软件工程师中最懂摄影的人 来和我们一起做一份激动人心的事业吧 </p> <p> <strong>职位名称:iOS软件工程师</strong><br> <strong>岗位职责:</strong><br> 负责iOS平台下应用的开发<br> <strong>任职要求:</strong><br> 1、至少1年的iOS平台开发经验;<br> 2、具备扎实的数据结构、算法等技术功底;<br> 3、具备良好的编程风格与团队合作意识,可承担较大的工作压力;<br> 4、正直、优秀、有上进心,经验丰富的同时没有丧失开发NB产品的热情;<br> 5、年轻;<br> 6、期待您喜欢摄影,喜欢相机;<br> </p> <p> <strong>职位名称:专利工程师</strong><br> <strong>岗位职责:</strong><br> 1、撰写高质量的专利申请文件、答复审查意见;<br> 2、专利检索咨询、专利挖掘、以及撰写专利分析报告。<br> <strong>任职要求:</strong><br> 1、具有一年以上独立撰写专利文件经验,熟悉专利申请相关知识;<br> 2、理工科,大学本科以上毕业,物理、数学、电子、通讯、互联网等技术专业背景之一;<br> 3、有专利代理人资格证优先考虑;<br> 4、期待您喜欢摄影,喜欢相机; </p> </div></div> <div id="footer"> <div class="content foot"> <a href="aboutus.html" target="_self" >关于我们</a> <span>|</span> <a href="contactus.html" target="_self" >联系我们</a> ©2016 拍爱 PAI.AI 琼ICP备16000076号 </div> </div> </body> </html>