Commit 786288f5f6e784ce9daa250c4cbfb825eb79cd1c

Authored by niudaojian
1 parent 60ab037a

身份列表接口对接, 引入 WCDB做数据存储

metaCode.xcodeproj/project.pbxproj
@@ -62,7 +62,9 @@ @@ -62,7 +62,9 @@
62 7C4931342A307B58000E44B4 /* slide_down.gif in Resources */ = {isa = PBXBuildFile; fileRef = 7C4931332A307B58000E44B4 /* slide_down.gif */; }; 62 7C4931342A307B58000E44B4 /* slide_down.gif in Resources */ = {isa = PBXBuildFile; fileRef = 7C4931332A307B58000E44B4 /* slide_down.gif */; };
63 7C4931362A307B60000E44B4 /* slide_up.gif in Resources */ = {isa = PBXBuildFile; fileRef = 7C4931352A307B60000E44B4 /* slide_up.gif */; }; 63 7C4931362A307B60000E44B4 /* slide_up.gif in Resources */ = {isa = PBXBuildFile; fileRef = 7C4931352A307B60000E44B4 /* slide_up.gif */; };
64 7C4931382A307BDB000E44B4 /* CNHomePageGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C4931372A307BDB000E44B4 /* CNHomePageGuideView.swift */; }; 64 7C4931382A307BDB000E44B4 /* CNHomePageGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C4931372A307BDB000E44B4 /* CNHomePageGuideView.swift */; };
65 - 7C7C62F62A4D72E9007A912E /* CNMetaCodeDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C7C62F52A4D72E9007A912E /* CNMetaCodeDB.swift */; }; 65 + 7C7C62F62A4D72E9007A912E /* CNIdentityDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C7C62F52A4D72E9007A912E /* CNIdentityDB.swift */; };
  66 + 7C83B43E2A52B8BA004BF4A4 /* CNHomePageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C83B43D2A52B8BA004BF4A4 /* CNHomePageViewModel.swift */; };
  67 + 7C83B4402A52BB2B004BF4A4 /* CNGlobalEnum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C83B43F2A52BB2B004BF4A4 /* CNGlobalEnum.swift */; };
66 7CD675292A270F6A008354C1 /* WJColorChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CD675282A270F6A008354C1 /* WJColorChange.m */; }; 68 7CD675292A270F6A008354C1 /* WJColorChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CD675282A270F6A008354C1 /* WJColorChange.m */; };
67 7CD6753C2A2740B0008354C1 /* CNUpSlideViewRemindView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD675372A2740B0008354C1 /* CNUpSlideViewRemindView.swift */; }; 69 7CD6753C2A2740B0008354C1 /* CNUpSlideViewRemindView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD675372A2740B0008354C1 /* CNUpSlideViewRemindView.swift */; };
68 7CD6753D2A2740B0008354C1 /* CNMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD675382A2740B0008354C1 /* CNMainView.swift */; }; 70 7CD6753D2A2740B0008354C1 /* CNMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD675382A2740B0008354C1 /* CNMainView.swift */; };
@@ -159,7 +161,9 @@ @@ -159,7 +161,9 @@
159 7C4931332A307B58000E44B4 /* slide_down.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = slide_down.gif; sourceTree = "<group>"; }; 161 7C4931332A307B58000E44B4 /* slide_down.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = slide_down.gif; sourceTree = "<group>"; };
160 7C4931352A307B60000E44B4 /* slide_up.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = slide_up.gif; sourceTree = "<group>"; }; 162 7C4931352A307B60000E44B4 /* slide_up.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = slide_up.gif; sourceTree = "<group>"; };
161 7C4931372A307BDB000E44B4 /* CNHomePageGuideView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNHomePageGuideView.swift; sourceTree = "<group>"; }; 163 7C4931372A307BDB000E44B4 /* CNHomePageGuideView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNHomePageGuideView.swift; sourceTree = "<group>"; };
162 - 7C7C62F52A4D72E9007A912E /* CNMetaCodeDB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNMetaCodeDB.swift; sourceTree = "<group>"; }; 164 + 7C7C62F52A4D72E9007A912E /* CNIdentityDB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNIdentityDB.swift; sourceTree = "<group>"; };
  165 + 7C83B43D2A52B8BA004BF4A4 /* CNHomePageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNHomePageViewModel.swift; sourceTree = "<group>"; };
  166 + 7C83B43F2A52BB2B004BF4A4 /* CNGlobalEnum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNGlobalEnum.swift; sourceTree = "<group>"; };
163 7CD675262A270F69008354C1 /* metaCode-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "metaCode-Bridging-Header.h"; sourceTree = "<group>"; }; 167 7CD675262A270F69008354C1 /* metaCode-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "metaCode-Bridging-Header.h"; sourceTree = "<group>"; };
164 7CD675272A270F6A008354C1 /* WJColorChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WJColorChange.h; sourceTree = "<group>"; }; 168 7CD675272A270F6A008354C1 /* WJColorChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WJColorChange.h; sourceTree = "<group>"; };
165 7CD675282A270F6A008354C1 /* WJColorChange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WJColorChange.m; sourceTree = "<group>"; }; 169 7CD675282A270F6A008354C1 /* WJColorChange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WJColorChange.m; sourceTree = "<group>"; };
@@ -329,9 +333,8 @@ @@ -329,9 +333,8 @@
329 7963988A2A260B3300D045EB /* Classes */ = { 333 7963988A2A260B3300D045EB /* Classes */ = {
330 isa = PBXGroup; 334 isa = PBXGroup;
331 children = ( 335 children = (
332 - 7C7C62F42A4D72BA007A912E /* DB */,  
333 7C2703342A3AFD130061EC50 /* Environment */, 336 7C2703342A3AFD130061EC50 /* Environment */,
334 - 7C2703312A36CC430061EC50 /* GlobalBlock */, 337 + 7C2703312A36CC430061EC50 /* Global */,
335 798A44F32A3077ED00815935 /* CustomView */, 338 798A44F32A3077ED00815935 /* CustomView */,
336 790D01832A2D89E100C5978D /* Extensions */, 339 790D01832A2D89E100C5978D /* Extensions */,
337 7CD675502A29C036008354C1 /* Constant */, 340 7CD675502A29C036008354C1 /* Constant */,
@@ -457,12 +460,13 @@ @@ -457,12 +460,13 @@
457 path = CustomView; 460 path = CustomView;
458 sourceTree = "<group>"; 461 sourceTree = "<group>";
459 }; 462 };
460 - 7C2703312A36CC430061EC50 /* GlobalBlock */ = { 463 + 7C2703312A36CC430061EC50 /* Global */ = {
461 isa = PBXGroup; 464 isa = PBXGroup;
462 children = ( 465 children = (
463 7C2703322A36CC660061EC50 /* CNLiveGlobalBlock.swift */, 466 7C2703322A36CC660061EC50 /* CNLiveGlobalBlock.swift */,
  467 + 7C83B43F2A52BB2B004BF4A4 /* CNGlobalEnum.swift */,
464 ); 468 );
465 - path = GlobalBlock; 469 + path = Global;
466 sourceTree = "<group>"; 470 sourceTree = "<group>";
467 }; 471 };
468 7C2703342A3AFD130061EC50 /* Environment */ = { 472 7C2703342A3AFD130061EC50 /* Environment */ = {
@@ -476,14 +480,25 @@ @@ -476,14 +480,25 @@
476 7C7C62F42A4D72BA007A912E /* DB */ = { 480 7C7C62F42A4D72BA007A912E /* DB */ = {
477 isa = PBXGroup; 481 isa = PBXGroup;
478 children = ( 482 children = (
479 - 7C7C62F52A4D72E9007A912E /* CNMetaCodeDB.swift */, 483 + 7C7C62F52A4D72E9007A912E /* CNIdentityDB.swift */,
480 ); 484 );
481 path = DB; 485 path = DB;
482 sourceTree = "<group>"; 486 sourceTree = "<group>";
483 }; 487 };
  488 + 7C83B43C2A52B899004BF4A4 /* ViewModel */ = {
  489 + isa = PBXGroup;
  490 + children = (
  491 + 7C83B43D2A52B8BA004BF4A4 /* CNHomePageViewModel.swift */,
  492 + );
  493 + name = ViewModel;
  494 + path = HomePage/ViewModel;
  495 + sourceTree = "<group>";
  496 + };
484 7CD675212A26F844008354C1 /* HomePage */ = { 497 7CD675212A26F844008354C1 /* HomePage */ = {
485 isa = PBXGroup; 498 isa = PBXGroup;
486 children = ( 499 children = (
  500 + 7C7C62F42A4D72BA007A912E /* DB */,
  501 + 7C83B43C2A52B899004BF4A4 /* ViewModel */,
487 7CD6754D2A2840B9008354C1 /* Controller */, 502 7CD6754D2A2840B9008354C1 /* Controller */,
488 7CD675232A26F8F8008354C1 /* View */, 503 7CD675232A26F8F8008354C1 /* View */,
489 ); 504 );
@@ -838,15 +853,17 @@ @@ -838,15 +853,17 @@
838 790B1FB82A41B6A60074CF00 /* CNLiveMineMessageViewController.swift in Sources */, 853 790B1FB82A41B6A60074CF00 /* CNLiveMineMessageViewController.swift in Sources */,
839 798A44F22A30674200815935 /* CNLiveMineSubBodyListView.swift in Sources */, 854 798A44F22A30674200815935 /* CNLiveMineSubBodyListView.swift in Sources */,
840 790D01822A2D88FC00C5978D /* CNLiveConfigMacro.swift in Sources */, 855 790D01822A2D88FC00C5978D /* CNLiveConfigMacro.swift in Sources */,
  856 + 7C83B4402A52BB2B004BF4A4 /* CNGlobalEnum.swift in Sources */,
841 7CD675482A274167008354C1 /* PGIndexBannerSubiew.m in Sources */, 857 7CD675482A274167008354C1 /* PGIndexBannerSubiew.m in Sources */,
842 790D019F2A2DD66E00C5978D /* CNLiveLoginViewModel.swift in Sources */, 858 790D019F2A2DD66E00C5978D /* CNLiveLoginViewModel.swift in Sources */,
843 - 7C7C62F62A4D72E9007A912E /* CNMetaCodeDB.swift in Sources */, 859 + 7C7C62F62A4D72E9007A912E /* CNIdentityDB.swift in Sources */,
844 790B1FB62A41938F0074CF00 /* UIImage+CNLiveColorImage.swift in Sources */, 860 790B1FB62A41938F0074CF00 /* UIImage+CNLiveColorImage.swift in Sources */,
845 790D019D2A2DCBD000C5978D /* UIView+CNGradient.swift in Sources */, 861 790D019D2A2DCBD000C5978D /* UIView+CNGradient.swift in Sources */,
846 798A44F72A3077ED00815935 /* CNLiveHotButton.swift in Sources */, 862 798A44F72A3077ED00815935 /* CNLiveHotButton.swift in Sources */,
847 7CD6753D2A2740B0008354C1 /* CNMainView.swift in Sources */, 863 7CD6753D2A2740B0008354C1 /* CNMainView.swift in Sources */,
848 7CD675522A29C04B008354C1 /* CNLiveConstant.swift in Sources */, 864 7CD675522A29C04B008354C1 /* CNLiveConstant.swift in Sources */,
849 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */, 865 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */,
  866 + 7C83B43E2A52B8BA004BF4A4 /* CNHomePageViewModel.swift in Sources */,
850 7C4931382A307BDB000E44B4 /* CNHomePageGuideView.swift in Sources */, 867 7C4931382A307BDB000E44B4 /* CNHomePageGuideView.swift in Sources */,
851 7CD6753E2A2740B0008354C1 /* CNUpSlideView.swift in Sources */, 868 7CD6753E2A2740B0008354C1 /* CNUpSlideView.swift in Sources */,
852 7CD675402A2740B0008354C1 /* CNDownSlideView.swift in Sources */, 869 7CD675402A2740B0008354C1 /* CNDownSlideView.swift in Sources */,
metaCode/Classes/DB/CNMetaCodeDB.swift deleted 100644 → 0
1 -//  
2 -// CNMetaCodeDB.swift  
3 -// metaCode  
4 -// 数据库  
5 -// Created by daojian on 2023/6/29.  
6 -//  
7 -  
8 -import Foundation  
9 -  
metaCode/Classes/Environment/CNLiveEnvironment.swift
@@ -11,8 +11,8 @@ import Foundation @@ -11,8 +11,8 @@ import Foundation
11 let APPId: String = CNLiveEnvironmentManager.shared.appId 11 let APPId: String = CNLiveEnvironmentManager.shared.appId
12 ///当前应用的APPKey 12 ///当前应用的APPKey
13 let APPKey: String = CNLiveEnvironmentManager.shared.appKey 13 let APPKey: String = CNLiveEnvironmentManager.shared.appKey
14 -///当前应用的网络请求域名  
15 -let APPBaseUrl: String! = CNLiveEnvironmentManager.shared.baseUrl 14 +///当前应用的登录请求域名
  15 +let APPLoginHost: String! = CNLiveEnvironmentManager.shared.loginHost
16 ///当前应用的Secret 16 ///当前应用的Secret
17 let APPSecret: String = CNLiveEnvironmentManager.shared.appSecret 17 let APPSecret: String = CNLiveEnvironmentManager.shared.appSecret
18 ///当前应用的部分请求接口 18 ///当前应用的部分请求接口
@@ -46,12 +46,14 @@ class CNLiveEnvironmentManager: NSObject{ @@ -46,12 +46,14 @@ class CNLiveEnvironmentManager: NSObject{
46 46
47 var appId: String 47 var appId: String
48 var appKey: String 48 var appKey: String
49 - var baseUrl: String  
50 var appSecret: String 49 var appSecret: String
  50 + ///登录接口域名
  51 + var loginHost: String
  52 + /// 码云项目的主域名
51 var base_mc_url: String 53 var base_mc_url: String
  54 + /// 获取IM token 请求域名
52 var img_token_url: String 55 var img_token_url: String
53 56
54 -  
55 ///当前环境 57 ///当前环境
56 var currentEnvironment: CNLiveEnvironment 58 var currentEnvironment: CNLiveEnvironment
57 59
@@ -59,7 +61,7 @@ class CNLiveEnvironmentManager: NSObject{ @@ -59,7 +61,7 @@ class CNLiveEnvironmentManager: NSObject{
59 private override init() { 61 private override init() {
60 self.appId = "" 62 self.appId = ""
61 self.appKey = "" 63 self.appKey = ""
62 - self.baseUrl = "" 64 + self.loginHost = ""
63 self.appSecret = "" 65 self.appSecret = ""
64 self.base_mc_url = "" 66 self.base_mc_url = ""
65 self.img_token_url = "" 67 self.img_token_url = ""
@@ -94,7 +96,7 @@ class CNLiveEnvironmentManager: NSObject{ @@ -94,7 +96,7 @@ class CNLiveEnvironmentManager: NSObject{
94 self.appId = "802_li40qhp922" 96 self.appId = "802_li40qhp922"
95 self.appKey = "ae3a7ad3e4b9beb7cfe2078db648ebb89aa249ca2e82ac" 97 self.appKey = "ae3a7ad3e4b9beb7cfe2078db648ebb89aa249ca2e82ac"
96 self.appSecret = "3cc9f12db322a3d3656012ef929604cf6d6847471535f9" 98 self.appSecret = "3cc9f12db322a3d3656012ef929604cf6d6847471535f9"
97 - self.baseUrl = "https://api.cnlive.com" 99 + self.loginHost = "https://api.cnlive.com"
98 self.img_token_url = "https://api.cnlive.com/open/api2" 100 self.img_token_url = "https://api.cnlive.com/open/api2"
99 self.base_mc_url = "https://metacode.cnlive.com/api" 101 self.base_mc_url = "https://metacode.cnlive.com/api"
100 } 102 }
@@ -103,7 +105,7 @@ class CNLiveEnvironmentManager: NSObject{ @@ -103,7 +105,7 @@ class CNLiveEnvironmentManager: NSObject{
103 self.appId = "802_li40qhp922" 105 self.appId = "802_li40qhp922"
104 self.appKey = "ae3a7ad3e4b9beb7cfe2078db648ebb89aa249ca2e82ac" 106 self.appKey = "ae3a7ad3e4b9beb7cfe2078db648ebb89aa249ca2e82ac"
105 self.appSecret = "3cc9f12db322a3d3656012ef929604cf6d6847471535f9" 107 self.appSecret = "3cc9f12db322a3d3656012ef929604cf6d6847471535f9"
106 - self.baseUrl = "https://api.cnlive.com" 108 + self.loginHost = "https://api.cnlive.com"
107 self.img_token_url = "https://api.cnlive.com/open/api2" 109 self.img_token_url = "https://api.cnlive.com/open/api2"
108 self.base_mc_url = "https://metacode.cnlive.com/api" 110 self.base_mc_url = "https://metacode.cnlive.com/api"
109 } 111 }
@@ -112,7 +114,7 @@ class CNLiveEnvironmentManager: NSObject{ @@ -112,7 +114,7 @@ class CNLiveEnvironmentManager: NSObject{
112 self.appId = "769_li40lrkt53" 114 self.appId = "769_li40lrkt53"
113 self.appKey = "064f392f84dfe7bbe9f1eabeda53ea02044213019b0406" 115 self.appKey = "064f392f84dfe7bbe9f1eabeda53ea02044213019b0406"
114 self.appSecret = "68b5cc42fbdb466d56c2e22b00b1494feec8149f9dd32e" 116 self.appSecret = "68b5cc42fbdb466d56c2e22b00b1494feec8149f9dd32e"
115 - self.baseUrl = "https://api.cnlive.com" 117 + self.loginHost = "https://api.cnlive.com"
116 self.img_token_url = "https://api.cnlive.com/open/api2" 118 self.img_token_url = "https://api.cnlive.com/open/api2"
117 self.base_mc_url = "https://metacode.cnlive.com/api" 119 self.base_mc_url = "https://metacode.cnlive.com/api"
118 } 120 }
metaCode/Classes/Global/CNGlobalEnum.swift 0 → 100644
  1 +//
  2 +// CNGlobalEnum.swift
  3 +// metaCode
  4 +//
  5 +// Created by daojian on 2023/7/3.
  6 +//
  7 +
  8 +import Foundation
  9 +///网络请求响应状态
  10 +enum CNNetworkingResponseType {
  11 + ///成功
  12 + case success
  13 + ///失败
  14 + case failed
  15 + ///无网
  16 + case noNetwork
  17 +}
metaCode/Classes/GlobalBlock/CNLiveGlobalBlock.swift renamed to metaCode/Classes/Global/CNLiveGlobalBlock.swift
metaCode/Classes/Main/DB/CNIdentityDB.swift 0 → 100644
  1 +//
  2 +// CNMetaCodeDB.swift
  3 +// metaCode
  4 +// 数据库
  5 +// Created by daojian on 2023/6/29.
  6 +//
  7 +
  8 +import Foundation
  9 +import WCDBSwift
  10 +
  11 +///身份认证表名
  12 +let CNIdentityTableName = "CNIdentityTable"
  13 +
  14 +///身份model
  15 +class CNIdentityModel: BaseModel,TableCodable {
  16 + var id: String = ""
  17 + var name: String?
  18 + var icon: String?
  19 + var createTime: String?
  20 + var enable: Bool?
  21 +
  22 + enum CodingKeys: String, CodingTableKey {
  23 + typealias Root = CNIdentityModel
  24 + static let objectRelationalMapping = TableBinding(CodingKeys.self){
  25 + //设置表的主键key为id,用来区分数据唯一性, 如果id为int类型,可以按实现按顺序递增
  26 + BindColumnConstraint(id, isPrimary: true)
  27 + }
  28 + case id //不修改数据库字段名,和属性名保持一直
  29 + case name //不修改数据库字段名,和属性名保持一直
  30 + case icon
  31 + case createTime
  32 + case enable
  33 + }
  34 +
  35 +}
  36 +
  37 +///身份列表数据库
  38 +class CNIdentityDB :NSObject{
  39 +
  40 + ///数据库
  41 + var database:Database
  42 +
  43 + //重新init方法为私有,不让外部调用
  44 + override init() {
  45 +
  46 + //数据库地址
  47 + let filePath = NSHomeDirectory() + "/Documents/DB/CNIdentity.db"
  48 + database = Database(at: filePath)
  49 +
  50 + super.init()
  51 + self.createTable(name: CNIdentityTableName, classType: CNIdentityModel.self)
  52 + }
  53 +
  54 + /// 创建表
  55 + /// - Parameters:
  56 + /// - name: 表名
  57 + /// - classType: class类型,当前class需要实现 TableCodable
  58 + private func createTable<Root:TableDecodable>(name:String, classType: Root.Type){
  59 + do{
  60 + try database.create(table: name, of: classType)
  61 + }
  62 + catch{
  63 + print("创建失败")
  64 + }
  65 +
  66 + }
  67 +
  68 + /// 新增一条数据
  69 + /// - Parameter object: 数据
  70 + func insterObject(object: CNIdentityModel){
  71 + let array: [CNIdentityModel] = [object]
  72 + self.insterObjects(objects: array)
  73 + }
  74 +
  75 + ///新增多条数据
  76 + func insterObjects(objects: Array<CNIdentityModel>){
  77 + do{
  78 + try database.insert(objects, intoTable: CNIdentityTableName)
  79 + }
  80 + catch{
  81 + print("增加一条数据失败")
  82 + }
  83 + }
  84 +
  85 + /// 删除一条数据
  86 + /// - Parameter delete: 被删除的数据
  87 + func deleteObject(delete: CNIdentityModel){
  88 +
  89 + do{
  90 + try database.delete(fromTable: CNIdentityTableName, where: CNIdentityModel.Properties.id == delete.id)
  91 + }
  92 + catch{
  93 + print("删除一条数据失败")
  94 + }
  95 + }
  96 +
  97 + ///更新一条数据
  98 + func updateObject(newObject:CNIdentityModel){
  99 + do{
  100 + //需要更新的字段
  101 + let updateProperties = [CNIdentityModel.Properties.name,
  102 + CNIdentityModel.Properties.icon,
  103 + CNIdentityModel.Properties.createTime,
  104 + CNIdentityModel.Properties.enable]
  105 +
  106 + try database.update(table: CNIdentityTableName, on:updateProperties, with: newObject,where: CNIdentityModel.Properties.id == newObject.id)
  107 + }
  108 + catch{
  109 + print("更新一条数据失败")
  110 + }
  111 + }
  112 +
  113 + ///获取所有数据
  114 + func searchAllObject()-> Array<CNIdentityModel>{
  115 + do{
  116 + let allData: [CNIdentityModel] = try database.getObjects(fromTable: CNIdentityTableName)
  117 + return allData
  118 + }
  119 + catch{
  120 + print("获取失败")
  121 + return []
  122 + }
  123 +
  124 +
  125 + }
  126 +
  127 +}
  128 +
  129 +
  130 +
metaCode/Classes/Main/HomePage/Controller/CNMetaCodeHomePageController.swift
@@ -9,6 +9,7 @@ import Foundation @@ -9,6 +9,7 @@ import Foundation
9 import UIKit 9 import UIKit
10 import YYCategories 10 import YYCategories
11 import SwiftGifOrigin 11 import SwiftGifOrigin
  12 +import CNLiveRequestBastKit
12 13
13 let Width: CGFloat = UIScreen.main.bounds.size.width 14 let Width: CGFloat = UIScreen.main.bounds.size.width
14 let Height: CGFloat = UIScreen.main.bounds.size.height 15 let Height: CGFloat = UIScreen.main.bounds.size.height
@@ -98,7 +99,7 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -98,7 +99,7 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
98 private var tabBarY:CGFloat = 0.0 99 private var tabBarY:CGFloat = 0.0
99 100
100 ///用户身份认证状态 101 ///用户身份认证状态
101 - private var identityStatus: UserIdentityStatus = .haveBeenCertified 102 + private var identityStatus: UserIdentityStatus = .notCertified
102 103
103 // MARK: - 懒加载 104 // MARK: - 懒加载
104 ///数据源 105 ///数据源
@@ -139,9 +140,11 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -139,9 +140,11 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
139 self.tabBarY = (self.tabBarController?.tabBar.top)! 140 self.tabBarY = (self.tabBarController?.tabBar.top)!
140 141
141 142
142 - for i in (0..<5) {  
143 - self.dataArray.add("122")  
144 - } 143 +// for i in (0..<5) {
  144 +// self.dataArray.add("122")
  145 +// }
  146 +
  147 + self.getUserIdentityApi()
145 148
146 self.setupUI() 149 self.setupUI()
147 150
@@ -154,14 +157,52 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -154,14 +157,52 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
154 157
155 print("uid = ",UserInfoManager.shared.userInfo.uid) 158 print("uid = ",UserInfoManager.shared.userInfo.uid)
156 print("1111") 159 print("1111")
  160 +
  161 +// let db = CNIdentityDB()
  162 +//
  163 +//
  164 +// let model = CNIdentityModel()
  165 +// model.id = "q_123"
  166 +// model.name = "小米"
  167 +// db.insterObject(object: model)
  168 +//
  169 +// let model2 = CNIdentityModel()
  170 +// model2.id = "a_451"
  171 +// model2.name = "小明"
  172 +// db.insterObject(object: model2)
  173 +//
  174 +// let model4 = CNIdentityModel()
  175 +// model4.id = "3_234"
  176 +// model4.name = "小张"
  177 +// db.insterObject(object: model4)
  178 +//
  179 +//
  180 +// let time:DispatchTime = DispatchTime.now() + 2.0
  181 +// DispatchQueue.main.asyncAfter(deadline: time, execute: DispatchWorkItem(block: {
  182 +//
  183 +// let modelNew = CNIdentityModel()
  184 +// modelNew.id = "a_451"
  185 +// modelNew.name = "小张"
  186 +// modelNew.icon = "http://apple.com"
  187 +// modelNew.createTime = "1234555223"
  188 +// modelNew.enable = true
  189 +// db.updateObject(newObject: modelNew)
  190 +//
  191 +// let allData = CNIdentityDB().searchAllObject()
  192 +// print(allData)
  193 +//
  194 +// }))
  195 +
  196 +
157 } 197 }
158 override func viewDidAppear(_ animated: Bool) { 198 override func viewDidAppear(_ animated: Bool) {
159 super.viewDidAppear(animated) 199 super.viewDidAppear(animated)
160 self.view.height = KSreenHeight 200 self.view.height = KSreenHeight
161 201
162 self.topNavView.isHidden = true 202 self.topNavView.isHidden = true
163 -  
164 } 203 }
  204 +
  205 +
165 // MARK: - 添加UI 206 // MARK: - 添加UI
166 func setupUI(){ 207 func setupUI(){
167 self.view.backgroundColor = KVCBackgroupColor 208 self.view.backgroundColor = KVCBackgroupColor
@@ -344,5 +385,27 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -344,5 +385,27 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
344 } 385 }
345 } 386 }
346 } 387 }
  388 + //MARK: - 网络请求
  389 + func getUserIdentityApi(){
  390 + CNHomePageViewModel.getUserIdentityApi { listArray, responseType, errorMsg in
  391 + switch responseType{
  392 + case .success:
  393 + if(listArray.count>0){
  394 + self.addCertificationView.isHidden = true
  395 + self.addCertificationView.removeFromSuperview()
  396 + self.dataArray.addObjects(from: listArray)
  397 + self.addPageView()
  398 + self.identityStatus = .haveBeenCertified
  399 + }else{
  400 + self.identityStatus = .notCertified
  401 + }
  402 +
  403 + case .failed:
  404 + showMessage(message: errorMsg)
  405 + case .noNetwork:
  406 + showMessage(message: "网络未连接")
  407 + }
  408 + }
  409 + }
347 410
348 } 411 }
metaCode/Classes/Main/HomePage/ViewModel/CNHomePageViewModel.swift 0 → 100644
  1 +//
  2 +// CNHomePageViewModel.swift
  3 +// metaCode
  4 +//
  5 +// Created by daojian on 2023/7/3.
  6 +//
  7 +
  8 +import Foundation
  9 +import CNLiveRequestBastKit
  10 +
  11 +///请求响应回调
  12 +typealias responseBlock = (_ listArray:Array<CNIdentityModel>, _ responseType:CNNetworkingResponseType, _ errorMsg:String) -> Void
  13 +
  14 +class CNHomePageViewModel:NSObject {
  15 +
  16 + /// 获取身份列表
  17 + class func getUserIdentityApi(resultBlock:@escaping responseBlock){
  18 +
  19 + //先从本地获取,本地有直接返回
  20 + let db = CNIdentityDB()
  21 + let allDbArray = db.searchAllObject()
  22 + if(allDbArray.count > 0){
  23 + resultBlock(allDbArray,.success,"")
  24 + return
  25 + }
  26 +
  27 + //从网络获取
  28 + CNLiveNetworking.setAllowRequestDefaultArgument(false)
  29 + CNLiveNetworking.setupShowDataResult(false)
  30 + CNLiveNetworking.requestNetwork(with: .GET, urlString: "\(APPBaseMCUrl)/identityApi/list?sid=\(UserInfoManager.shared.userInfo.uid)&page=1&pageSize=1000", param: nil, cacheType: .networkOnly) { task , result, error in
  31 +
  32 + if((error) != nil){
  33 + //网络请求失败
  34 + if CNLiveNetworking.isNetworking(){
  35 + resultBlock([],.failed,error?.localizedDescription ?? "请求失败")
  36 + }else{
  37 + resultBlock([],.noNetwork,"无网络连接")
  38 + }
  39 + return
  40 + }
  41 +
  42 + let resultDic:NSDictionary = result as! NSDictionary
  43 +
  44 + let errorCode:String = "\(resultDic["errorCode"]!)"
  45 + if (errorCode == "0"){
  46 + let data:NSDictionary = resultDic["data"] as! NSDictionary
  47 + let list:NSArray = data["list"] as! NSArray
  48 +
  49 + //list数据转CNIdentityModel, 并把model存入本地
  50 +
  51 + var array:Array = Array<CNIdentityModel>()
  52 + for index in 0..<list.count{
  53 + let item = dictionaryToModel(list[index] as! [String : Any], CNIdentityModel.self, "")
  54 + array.append(item as! CNIdentityModel)
  55 + //存入数据库
  56 + db.insterObject(object: item as! CNIdentityModel)
  57 + }
  58 + resultBlock(array,.success,"")
  59 + }
  60 + else{
  61 + let errorMessage:String = resultDic["errorMessage"] as! String
  62 + showMessage(message: errorMessage)
  63 + resultBlock([],.failed,errorMessage)
  64 + }
  65 +
  66 + }
  67 +
  68 + }
  69 +
  70 +
  71 +}
metaCode/Classes/Other/AppDelegate.swift
@@ -57,7 +57,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { @@ -57,7 +57,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
57 CNLiveNetworking.setupSignKey(APPKey) 57 CNLiveNetworking.setupSignKey(APPKey)
58 CNLiveNetworking.setAllowRequestDefaultArgument(true) 58 CNLiveNetworking.setAllowRequestDefaultArgument(true)
59 CNLiveNetworking.setResponseSerializerType(.JSON) 59 CNLiveNetworking.setResponseSerializerType(.JSON)
60 - CNLiveNetworking.setupBaseURL(APPBaseUrl) 60 + CNLiveNetworking.setupBaseURL(APPLoginHost)
61 } 61 }
62 62
63 63