ソースを参照

feat: 调整潜在用户的协议

陈文艺 4 週間 前
コミット
1e570b6c9c

+ 23 - 0
Lanu/Localizable.xcstrings

@@ -10161,6 +10161,29 @@
         }
       }
     },
+    "B00123" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Chat"
+          }
+        },
+        "id" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Pribadi"
+          }
+        },
+        "zh-Hans" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "私聊"
+          }
+        }
+      }
+    },
     "C00001" : {
       "extractionState" : "manual",
       "localizations" : {

+ 2 - 10
Lanu/Manager/GameMate/LNGameMateManager.swift

@@ -446,21 +446,13 @@ extension LNGameMateManager {
 
 // MARK: 潜在用户
 extension LNGameMateManager {
-   func getPotentialUsers(nextTag: String?, queue: DispatchQueue = .main, handler: @escaping (LNPotentialUsersResponse?) -> Void) {
-       LNHttpManager.shared.getPotentialUsers(size: 30, nextTag: nextTag ?? "") { res, err in
+   func getPotentialUsers(queue: DispatchQueue = .main, handler: @escaping (LNPotentialUsersResponse?) -> Void) {
+       LNHttpManager.shared.getPotentialUsers(size: 5) { res, err in
            queue.asyncIfNotGlobal {
                handler(res)
            }
        }
    }
-   
-   func sendHelloToUser(uid: String, queue: DispatchQueue = .main, handler: @escaping (Bool) -> Void) {
-       LNHttpManager.shared.sendHelloToUser(uid: uid) { err in
-           queue.asyncIfNotGlobal {
-               handler(err == nil)
-           }
-       }
-   }
 }
 
 

+ 3 - 4
Lanu/Manager/GameMate/Network/LNGameMateResponse.swift

@@ -498,15 +498,14 @@ class LNAutoReplyResponse: Decodable {
 
 @AutoCodable
 class LNPotentialUserVO: Decodable {
+    var userNo: String = ""
     var avatar: String = ""
     var nickname: String = ""
-    var userNo: String = ""
     var age: Int = 0
     var gender: LNUserGender = .unknow
-    var isnew: Bool = false
+    var newRegister: Bool = false
     var online: Bool = false
-    
-    var hasSend = false
+    var contacted: Bool = false
 }
 
 @AutoCodable

+ 3 - 13
Lanu/Manager/GameMate/Network/LNHttpManager+GameMate.swift

@@ -45,8 +45,7 @@ private let kNetPath_GameMate_AutoReply_Update = "/playmate/welcome/update"
 private let kNetPath_GameMate_AutoReply_Delete = "/playmate/welcome/list"
 private let kNetPath_GameMate_AutoReply_Send = "/playmate/welcome/trigger"
 
-private let kNetPath_GameMate_PotentialUsers_List = ""
-private let kNetPath_GameMate_PotentialUsers_Hello = ""
+private let kNetPath_GameMate_PotentialUsers_List = "/playmate/push/list"
 
 enum LNGameMateAgeRange: Int, CaseIterable {
     case all = -1
@@ -395,18 +394,9 @@ extension LNHttpManager {
 
 // MARK: 潜在用户
 extension LNHttpManager {
-    func getPotentialUsers(size: Int, nextTag: String, completion: @escaping (LNPotentialUsersResponse?, LNHttpError?) -> Void) {
+    func getPotentialUsers(size: Int, completion: @escaping (LNPotentialUsersResponse?, LNHttpError?) -> Void) {
         post(path: kNetPath_GameMate_PotentialUsers_List, params: [
-            "page": [
-                "size": size,
-                "next": nextTag,
-            ]
-        ], completion: completion)
-    }
-    
-    func sendHelloToUser(uid: String, completion: @escaping (LNHttpError?) -> Void) {
-        post(path: kNetPath_GameMate_PotentialUsers_Hello, params: [
-            "id": uid
+            "size": size,
         ], completion: completion)
     }
 }

+ 8 - 27
Lanu/Views/Game/OrderCenter/LNPotentialUserViewController.swift

@@ -21,7 +21,6 @@ class LNPotentialUserViewController: LNViewController {
     private let emptyView = LNNoMoreDataView()
     private let tableView = UITableView()
     private var users: [LNPotentialUserVO] = []
-    private var nextTag: String?
     private var isLoading = false
     
     override func viewDidLoad() {
@@ -52,25 +51,15 @@ extension LNPotentialUserViewController: UITableViewDataSource, UITableViewDeleg
 extension LNPotentialUserViewController {
     private func setupViews() {
         title = .init(key: "B00116")
-        view.backgroundColor = .primary_1
         
         let header = MJRefreshNormalHeader { [weak self] in
             guard let self else { return }
-            self.nextTag = nil
             self.loadList()
         }
         header.lastUpdatedTimeLabel?.isHidden = true
         header.stateLabel?.isHidden = true
         tableView.mj_header = header
         
-        let footer = MJRefreshAutoNormalFooter { [weak self] in
-            guard let self else { return }
-            self.loadList()
-        }
-        footer.setTitle("", for: .noMoreData)
-        footer.setTitle(.init(key: "A00046"), for: .idle)
-        tableView.mj_footer = footer
-        
         tableView.delegate = self
         tableView.dataSource = self
         tableView.separatorStyle = .none
@@ -95,15 +84,11 @@ extension LNPotentialUserViewController {
         guard !isLoading else { return }
         isLoading = true
         
-        LNGameMateManager.shared.getPotentialUsers(nextTag: nextTag) { [weak self] res in
+        LNGameMateManager.shared.getPotentialUsers { [weak self] res in
             guard let self else { return }
             isLoading = false
             if let list = res?.list {
-                if nextTag?.isEmpty != false {
-                    users.removeAll()
-                }
-                users.append(contentsOf: list)
-                self.nextTag = nextTag
+                users = list
                 tableView.reloadData()
                 
                 if users.isEmpty {
@@ -118,11 +103,6 @@ extension LNPotentialUserViewController {
             }
             
             self.tableView.mj_header?.endRefreshing()
-            if nextTag?.isEmpty != false {
-                tableView.mj_footer?.endRefreshingWithNoMoreData()
-            } else {
-                tableView.mj_footer?.endRefreshing()
-            }
         }
     }
 }
@@ -152,13 +132,13 @@ private class LNPotentialUserItemCell: UITableViewCell {
         nameLabel.text = item.nickname
         genderView.update(item.gender, item.age)
         
-        newTag.isHidden = !item.isnew
+        newTag.isHidden = !item.newRegister
         onlineView.isHidden = !item.online
         
-        if item.hasSend {
+        if item.contacted {
             chatButton.setTitle(.init(key: "B00117"), for: .normal)
         } else {
-            chatButton.setTitle(.init(key: "A00042"), for: .normal)
+            chatButton.setTitle(.init(key: "B00123"), for: .normal)
         }
         
         curItem = item
@@ -196,6 +176,7 @@ private extension LNPotentialUserItemCell {
         infoView.axis = .vertical
         infoView.spacing = 4
         infoView.isUserInteractionEnabled = false
+        infoView.alignment = .leading
         container.addSubview(infoView)
         infoView.snp.makeConstraints { make in
             make.leading.equalTo(avatar.snp.trailing).offset(13)
@@ -235,7 +216,7 @@ private extension LNPotentialUserItemCell {
         }
         
         chatButton.setBackgroundImage(.primary_7, for: .normal)
-        chatButton.setTitle(.init(key: "A00042"), for: .normal)
+        chatButton.setTitle(.init(key: "B00123"), for: .normal)
         chatButton.titleLabel?.font = .heading_h5
         chatButton.setTitleColor(.text_1, for: .normal)
         chatButton.layer.cornerRadius = 11
@@ -246,7 +227,7 @@ private extension LNPotentialUserItemCell {
             guard let self else { return }
             guard let curItem else { return }
             pushToChat(uid: curItem.userNo)
-            curItem.hasSend = true
+            curItem.contacted = true
             update(curItem)
         }), for: .touchUpInside)
         container.addSubview(chatButton)

+ 1 - 1
Lanu/Views/Profile/Mine/LNMineOrderRecordView.swift

@@ -128,7 +128,7 @@ extension LNMineOrderRecordView {
         stackView.addArrangedSubview(buildInCome())
         stackView.addArrangedSubview(buildLine())
         stackView.addArrangedSubview(buildDataItemView(.init(key: "B00073"), contentLabel: exposureLabel))
-        stackView.addArrangedSubview(buildDataItemView(.init(key: "B00074"), contentLabel: visitorLabel))
+        stackView.addArrangedSubview(buildDataItemView(.init(key: "B00116"), contentLabel: visitorLabel))
         
         return stackView
     }