From 6912d657ec6bb1db9683d5b5be8f0777f001ba11 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期六, 14 九月 2024 18:24:10 +0800
Subject: [PATCH] fix API

---
 XQMuse/Root/Course/VC/CourseDetialVC.swift             |    1 
 XQMuse/Root/Me/VC/UserProfileVC.swift                  |   61 ++++++++-
 XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib   |    2 
 XQMuse/Root/Me/MeVC.xib                                |   39 ++++--
 XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift |    3 
 XQMuse/Root/Home/VC/HomeItemListVC.swift               |    1 
 XQMuse/Root/Course/VC/CourseMenuVC.swift               |    1 
 XQMuse/Root/Pavilion/PavilionVC.swift                  |    2 
 XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift      |    1 
 XQMuse/Config/Def.swift                                |    1 
 XQMuse/Root/Plans/PlanGuideVC.swift                    |   11 +
 XQMuse/Root/Home/HomeVC.swift                          |    4 
 XQMuse/Root/Me/MeVC.swift                              |   59 +++++++++
 XQMuse/Config/Enums/Enums.swift                        |   27 +++
 XQMuse/Root/Plans/PlanGuide_2_VC.swift                 |   19 +++
 XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib     |    2 
 XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift    |    1 
 XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift   |    1 
 XQMuse/Root/Me/VC/UserProfileVC.xib                    |   10 +
 XQMuse/Root/Network/Models.swift                       |   27 ++++
 XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift         |    1 
 XQMuse/Root/Plans/PlanGuide_3_VC.swift                 |   30 +++-
 XQMuse/Root/Network/Services.swift                     |   50 +++++++
 23 files changed, 299 insertions(+), 55 deletions(-)

diff --git a/XQMuse/Config/Def.swift b/XQMuse/Config/Def.swift
index d0457be..13afa07 100644
--- a/XQMuse/Config/Def.swift
+++ b/XQMuse/Config/Def.swift
@@ -12,6 +12,7 @@
 import QMUIKit
 import OSLog
 
+//https://dummyimage.com/100x100
 
 let app = UIApplication.shared.delegate as! AppDelegate
 
diff --git a/XQMuse/Config/Enums/Enums.swift b/XQMuse/Config/Enums/Enums.swift
index 3b6b37a..b5027ba 100644
--- a/XQMuse/Config/Enums/Enums.swift
+++ b/XQMuse/Config/Enums/Enums.swift
@@ -13,11 +13,6 @@
 				case line = 1 //顺序播放
 }
 
-enum GenderType:Int,HandyJSONEnum{
-				case none = 0
-				case  man = 1
-				case  woman = 2
-}
 
 enum DisplayType:Int,HandyJSONEnum{
 				case horizontal = 1 //横
@@ -116,3 +111,25 @@
 				case increase = 1
 				case decreate = 2
 }
+
+enum GenderType:Int,HandyJSONEnum,Codable{
+				case man = 1
+				case woman = 2
+				case encrypt = 3
+
+				var rawTitle:String{
+								switch self {
+												case .man:return "男"
+												case .woman:return "女"
+												case .encrypt:return "保密"
+								}
+				}
+
+				static func GenderBy(_ str:String)->GenderType{
+								switch str {
+												case "男":return .man
+												case "女":return .woman
+												default:return .encrypt
+								}
+				}
+}
diff --git a/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
index 822f1de..11417a0 100644
--- a/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
+++ b/XQMuse/Root/Course/CCell/CourseOfficialItemCCell.swift
@@ -19,7 +19,8 @@
 				func setItem(_ item:TitleItem){
 
 								if let localImage = item.coverImage{
-												img_cover.image = UIImage(named: localImage)
+//												img_cover.image = UIImage(named: localImage)
+												img_cover.sd_setImage(with: URL(string: localImage))
 								}
 
 								label_title.text = item.title
diff --git a/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
index 7c04393..cfcf5a8 100644
--- a/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
+++ b/XQMuse/Root/Course/TCell/CourseDetail_3_TCell.swift
@@ -45,7 +45,6 @@
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
 								cell.setCourseModel(items[indexPath.row])
-								cell.backgroundColor = .jq_randomColor
 								return cell
 				}
 
diff --git a/XQMuse/Root/Course/VC/CourseDetialVC.swift b/XQMuse/Root/Course/VC/CourseDetialVC.swift
index 8417269..27558db 100644
--- a/XQMuse/Root/Course/VC/CourseDetialVC.swift
+++ b/XQMuse/Root/Course/VC/CourseDetialVC.swift
@@ -270,7 +270,6 @@
 								if cell == nil{
 												cell = UITableViewCell(style: .value1, reuseIdentifier: "cell")
 								}
-								cell?.backgroundColor = .jq_randomColor
 								return cell!
 				}
 
diff --git a/XQMuse/Root/Course/VC/CourseMenuVC.swift b/XQMuse/Root/Course/VC/CourseMenuVC.swift
index 3d992ff..65b7fcc 100644
--- a/XQMuse/Root/Course/VC/CourseMenuVC.swift
+++ b/XQMuse/Root/Course/VC/CourseMenuVC.swift
@@ -102,7 +102,6 @@
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 								let model = viewModel.dataSource.value!.list[indexPath.row]
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_1_CCell", for: indexPath) as! HomeRelaxBanner_2_1_CCell
-								cell.backgroundColor = .jq_randomColor
 								cell.setCourseModel(model)
 								return cell
 				}
diff --git a/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift b/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
index 0518eb6..593cece 100644
--- a/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
+++ b/XQMuse/Root/Course/VC/CourseVCOfficalCommentVC.swift
@@ -118,7 +118,6 @@
 								}
 								let model = viewModel.dataSource.value!.list[indexPath.row]
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
-								cell.backgroundColor = .jq_randomColor
 								cell.setCourseModel(model)
 								return cell
 				}
diff --git a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib
index 0a0c40f..7a76534 100644
--- a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib
+++ b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_1_CCell.xib
@@ -17,7 +17,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="160" height="196"/>
                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="VwD-36-ent">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="VwD-36-ent">
                         <rect key="frame" x="0.0" y="0.0" width="160" height="196"/>
                     </imageView>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nyj-tV-0t4">
diff --git a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib
index de03781..4844006 100644
--- a/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib
+++ b/XQMuse/Root/Home/CCell/HomeRelaxBanner_2_CCell.xib
@@ -16,7 +16,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="178" height="301"/>
                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="cCC-0f-GSV">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="cCC-0f-GSV">
                         <rect key="frame" x="0.0" y="0.0" width="178" height="301"/>
                     </imageView>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Fb9-IV-vVk">
diff --git a/XQMuse/Root/Home/HomeVC.swift b/XQMuse/Root/Home/HomeVC.swift
index 3af08cb..ca8efef 100644
--- a/XQMuse/Root/Home/HomeVC.swift
+++ b/XQMuse/Root/Home/HomeVC.swift
@@ -132,6 +132,10 @@
 								NotificationCenter.default.rx.notification(SetBGMSuccess_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
 												self.topMenuView.resetTopImage()
 								}).disposed(by: disposeBag)
+
+								NotificationCenter.default.rx.notification(PlantGuideQuit_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
+												self.getData()
+								}).disposed(by: disposeBag)
 				}
 
 				private func getData(){
diff --git a/XQMuse/Root/Home/VC/HomeItemListVC.swift b/XQMuse/Root/Home/VC/HomeItemListVC.swift
index 1d2c234..e4007fa 100644
--- a/XQMuse/Root/Home/VC/HomeItemListVC.swift
+++ b/XQMuse/Root/Home/VC/HomeItemListVC.swift
@@ -69,7 +69,6 @@
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeRelaxBanner_2_CCell", for: indexPath) as! HomeRelaxBanner_2_CCell
 								let model = viewModel.dataSource.value!.list[indexPath.row]
-								cell.backgroundColor = .jq_randomColor
 								cell.setMeditationModel(model)
 								return cell
 				}
diff --git a/XQMuse/Root/Me/MeVC.swift b/XQMuse/Root/Me/MeVC.swift
index 3f3227b..e47d95f 100644
--- a/XQMuse/Root/Me/MeVC.swift
+++ b/XQMuse/Root/Me/MeVC.swift
@@ -21,6 +21,17 @@
 				@IBOutlet weak var btn_setting: QMUIButton!
 				@IBOutlet weak var btn_share: QMUIButton!
 				@IBOutlet weak var view_rank: GradientView!
+				@IBOutlet weak var image_vipBg: UIImageView!
+				@IBOutlet weak var label_expirtTime: UILabel!
+				@IBOutlet weak var label_sustainDay: UILabel!
+				@IBOutlet weak var label_today: UILabel!
+				@IBOutlet weak var image_medal: UIImageView!
+				
+				@IBOutlet weak var image_userAvatar: UIImageView!
+				@IBOutlet weak var label_userName: UILabel!
+				@IBOutlet weak var label_phone: UILabel!
+				@IBOutlet weak var label_vipInfo: UILabel!
+				@IBOutlet weak var label_totalDay: UILabel!
 				
 				override func viewDidLoad() {
         super.viewDidLoad()
@@ -28,6 +39,8 @@
 								let tap = UITapGestureRecognizer(target: self, action: #selector(rankAction))
 								view_rank.isUserInteractionEnabled = true
 								view_rank.addGestureRecognizer(tap)
+
+								getData()
     }
 
 				override func setUI() {
@@ -46,6 +59,52 @@
 								btn_share.imagePosition = .top
 				}
 
+				override func setRx() {
+								NotificationCenter.default.rx.notification(UpdateUserProfile_Noti, object: nil).take(until: self.rx.deallocated).subscribe(onNext: { _ in
+												self.getData()
+								}).disposed(by: disposeBag)
+				}
+
+
+				private func getData(){
+								Services.getUserDetail().subscribe(onNext: {data in
+												if let model = data.data{
+																UserViewModel.saveAvatarInfo(model)
+												}
+								}).disposed(by: self.disposeBag)
+
+
+								Services.getUserInfo().subscribe(onNext: {data in
+												if let model = data.data{
+																self.image_userAvatar.sd_setImage(with: URL(string: model.avatar))
+																self.label_userName.text = model.nickname
+																self.label_phone.text = model.cellPhone.jq_blotOutPhone()
+
+																self.label_totalDay.attributedText = AttributedStringbuilder.build().add(string: "\(model.cumulative)", withFont: UIFont.init(name: "PingFang-SC-Regular", size: 60)!, withColor: UIColor(hexString: "#152715")!).add(string: "天", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+																self.label_sustainDay.attributedText = AttributedStringbuilder.build().add(string: "\(model.continuity)", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "天", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+																self.image_medal.sd_setImage(with: URL(string: model.levelIcon))
+
+																let timeTurple = Date.jq_formateToTime_tuple(model.today * 60)
+
+																self.label_today.attributedText = AttributedStringbuilder.build().add(string: "\(timeTurple.hour)", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "时", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).add(string: "\(timeTurple.minute)", withFont: .systemFont(ofSize: 23), withColor: UIColor(hexString: "#152715")!).add(string: "分", withFont: .systemFont(ofSize: 12), withColor: UIColor(hexString: "#152715")!).mutableAttributedString
+
+
+
+																if model.isVip == .yes{
+																				self.image_vipBg.image = UIImage(named: "bg_vip")
+																				self.label_vipInfo.text = "你已是高级会员"
+																				self.label_expirtTime.text = model.vipExpireTime + "到期"
+																}else{
+																				self.image_vipBg.image = UIImage(named: "bg_vip_u")
+																				self.label_vipInfo.text = "升级为高级会员,解锁全部体验"
+																				self.label_expirtTime.text = "你还未开通会员服务"
+																}
+												}
+								}).disposed(by: disposeBag)
+				}
+
 				@objc func rankAction(){
 								let vc = WebVC()
 								vc.title = "爱心榜单"
diff --git a/XQMuse/Root/Me/MeVC.xib b/XQMuse/Root/Me/MeVC.xib
index 6abb0c3..46d4b99 100644
--- a/XQMuse/Root/Me/MeVC.xib
+++ b/XQMuse/Root/Me/MeVC.xib
@@ -18,6 +18,16 @@
                 <outlet property="btn_record" destination="ohz-jh-MYr" id="I71-ch-fvw"/>
                 <outlet property="btn_setting" destination="gCl-Xh-n2C" id="QuC-zj-2x4"/>
                 <outlet property="btn_share" destination="503-ii-Lw9" id="v1J-Bx-FQ7"/>
+                <outlet property="image_medal" destination="dut-7H-aMv" id="7p1-yV-vbS"/>
+                <outlet property="image_userAvatar" destination="dFl-Si-mEi" id="j1A-z8-kad"/>
+                <outlet property="image_vipBg" destination="lQe-up-4F0" id="pBK-QF-IFs"/>
+                <outlet property="label_expirtTime" destination="IcP-op-38A" id="Hxh-C2-qn1"/>
+                <outlet property="label_phone" destination="xL7-Qf-iI2" id="R7I-kg-vh2"/>
+                <outlet property="label_sustainDay" destination="8j2-ya-Clo" id="kPr-q8-A4K"/>
+                <outlet property="label_today" destination="zZP-3q-D6G" id="SA1-hV-SxE"/>
+                <outlet property="label_totalDay" destination="YPb-vk-RCa" id="NPs-ta-7BS"/>
+                <outlet property="label_userName" destination="Xiq-PE-zPH" id="vAC-Zm-SdG"/>
+                <outlet property="label_vipInfo" destination="pJK-nH-NXm" id="cHp-Kf-9fB"/>
                 <outlet property="scrollView" destination="eKy-w2-ydR" id="uh0-OR-U8m"/>
                 <outlet property="view" destination="iN0-l3-epB" id="xwB-6q-ebc"/>
                 <outlet property="view_rank" destination="4fN-Be-XLG" id="3h6-0r-QKI"/>
@@ -69,8 +79,8 @@
                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_vip_u" translatesAutoresizingMaskIntoConstraints="NO" id="lQe-up-4F0">
                                             <rect key="frame" x="0.0" y="0.0" width="368" height="114.33333333333333"/>
                                         </imageView>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cy9-se-bLv">
-                                            <rect key="frame" x="19.333333333333336" y="23.666666666666671" width="19.666666666666664" height="26.333333333333329"/>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="心泉·疗愈会员" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cy9-se-bLv">
+                                            <rect key="frame" x="19.333333333333329" y="23.666666666666671" width="150.66666666666669" height="26.333333333333329"/>
                                             <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="22"/>
                                             <color key="textColor" red="0.039215686274509803" green="0.25882352941176467" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                             <nil key="highlightedColor"/>
@@ -163,29 +173,32 @@
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0天" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YPb-vk-RCa">
-                                                    <rect key="frame" x="131.66666666666669" y="192" width="104.66666666666669" height="71.666666666666686"/>
-                                                    <fontDescription key="fontDescription" type="system" pointSize="60"/>
+                                                    <rect key="frame" x="136" y="192" width="96" height="45"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="45" id="Ma8-cs-j54"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" name="PingFangSC-Light" family="PingFang SC" pointSize="60"/>
                                                     <color key="textColor" red="0.082352941176470587" green="0.15294117647058825" blue="0.082352941176470587" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                     <nil key="highlightedColor"/>
                                                 </label>
                                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ho-wk-mFw">
-                                                    <rect key="frame" x="21.333333333333343" y="326.66666666666663" width="325" height="71"/>
+                                                    <rect key="frame" x="21.333333333333343" y="300" width="325" height="71"/>
                                                     <subviews>
                                                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XmC-Kd-dmq">
-                                                            <rect key="frame" x="162" y="20.666666666666742" width="1" height="30"/>
+                                                            <rect key="frame" x="162" y="20.666666666666629" width="1" height="30"/>
                                                             <color key="backgroundColor" red="0.94509803921568625" green="0.95294117647058818" blue="0.94901960784313721" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="1" id="hXb-BI-vs2"/>
                                                             </constraints>
                                                         </view>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0小时0分" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zZP-3q-D6G">
-                                                            <rect key="frame" x="163" y="38.666666666666742" width="162" height="18"/>
+                                                            <rect key="frame" x="163" y="38.666666666666629" width="162" height="18"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                                             <nil key="textColor"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0天" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8j2-ya-Clo">
-                                                            <rect key="frame" x="0.0" y="38.666666666666742" width="162" height="18"/>
+                                                            <rect key="frame" x="0.0" y="38.666666666666629" width="162" height="18"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                                             <nil key="textColor"/>
                                                             <nil key="highlightedColor"/>
@@ -254,25 +267,25 @@
                                                     </constraints>
                                                 </view>
                                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n62-aO-gnS" customClass="TapBtn" customModule="XQMuse" customModuleProvider="target">
-                                                    <rect key="frame" x="21.333333333333343" y="413.33333333333337" width="325" height="50.333333333333314"/>
+                                                    <rect key="frame" x="21.333333333333343" y="386.66666666666663" width="325" height="50.333333333333314"/>
                                                     <subviews>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="疗愈等级" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z63-U0-xCY">
-                                                            <rect key="frame" x="4.6666666666666607" y="16.666666666666629" width="57.333333333333343" height="17"/>
+                                                            <rect key="frame" x="4.6666666666666607" y="16.666666666666742" width="57.333333333333343" height="17"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                             <color key="textColor" red="0.13725490196078433" green="0.13725490196078433" blue="0.13725490196078433" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_vip_level" translatesAutoresizingMaskIntoConstraints="NO" id="dut-7H-aMv">
-                                                            <rect key="frame" x="72" y="11.333333333333259" width="95.666666666666686" height="27.666666666666671"/>
+                                                            <rect key="frame" x="72" y="11.333333333333373" width="95.666666666666686" height="27.666666666666671"/>
                                                         </imageView>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="查看详情" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="flg-Hv-HHC">
-                                                            <rect key="frame" x="265.66666666666669" y="18.666666666666629" width="45" height="13.333333333333336"/>
+                                                            <rect key="frame" x="265.66666666666669" y="18.666666666666742" width="45" height="13.333333333333336"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.40392156862745099" green="0.40392156862745099" blue="0.40392156862745099" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                             <nil key="highlightedColor"/>
                                                         </label>
                                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="IKY-cB-8Vd">
-                                                            <rect key="frame" x="316.66666666666669" y="20.333333333333258" width="5.3333333333333144" height="10"/>
+                                                            <rect key="frame" x="316.66666666666669" y="20.333333333333371" width="5.3333333333333144" height="10"/>
                                                             <constraints>
                                                                 <constraint firstAttribute="width" constant="5.5" id="UAN-uc-0l9"/>
                                                                 <constraint firstAttribute="height" constant="10" id="mje-aH-Ehd"/>
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.swift b/XQMuse/Root/Me/VC/UserProfileVC.swift
index 995c1e1..ad050c8 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.swift
+++ b/XQMuse/Root/Me/VC/UserProfileVC.swift
@@ -10,11 +10,24 @@
 import JQTools
 import TZImagePickerController
 
+
+let UpdateUserProfile_Noti = Notification.Name.init("UpdateUserProfile_Noti")
+
 class UserProfileVC: BaseVC {
 
 				@IBOutlet weak var image_user: UIImageView!
+				@IBOutlet weak var tf_nickName: QMUITextField!
+				@IBOutlet weak var tf_realName: QMUITextField!
+				@IBOutlet weak var tf_sign: QMUITextField!
 				@IBOutlet weak var tf_gender: QMUITextField!
 				@IBOutlet weak var tf_birthday: QMUITextField!
+				@IBOutlet weak var tf_degree: QMUITextField!
+				@IBOutlet weak var tf_industry: QMUITextField!
+				@IBOutlet weak var tf_company: QMUITextField!
+				@IBOutlet weak var tf_job: QMUITextField!
+				@IBOutlet weak var tf_address: QMUITextField!
+				@IBOutlet weak var tf_birthland: QMUITextField!
+				@IBOutlet weak var tf_email: QMUITextField!
 
 				private var clipSize = CGSize(width: JQ_ScreenW, height: JQ_ScreenW) //裁剪大小
 				private var clipFrame:CGRect{
@@ -33,6 +46,42 @@
 				override func viewDidLoad() {
 								super.viewDidLoad()
 								title = "个人资料"
+
+								tf_nickName.text = UserViewModel.getAvatarInfo().nickname
+								tf_realName.text = UserViewModel.getAvatarInfo().realname
+								tf_sign.text = UserViewModel.getAvatarInfo().signature
+								tf_gender.text = UserViewModel.getAvatarInfo().gender.rawTitle
+								tf_birthday.text = UserViewModel.getAvatarInfo().birthday
+								tf_degree.text = UserViewModel.getAvatarInfo().education
+								tf_industry.text = UserViewModel.getAvatarInfo().industry
+								tf_company.text = UserViewModel.getAvatarInfo().company
+								tf_job.text = UserViewModel.getAvatarInfo().occupation
+								tf_address.text = UserViewModel.getAvatarInfo().location
+								tf_birthland.text = UserViewModel.getAvatarInfo().hometown
+								tf_email.text = UserViewModel.getAvatarInfo().email
+				}
+
+				override func viewDidDisappear(_ animated: Bool) {
+								super.viewDidDisappear(animated)
+
+								let nickname = tf_nickName.text == UserViewModel.getAvatarInfo().nickname ? nil:tf_nickName.text
+								let realname = tf_realName.text == UserViewModel.getAvatarInfo().realname ? nil:tf_realName.text
+								let signature = tf_sign.text == UserViewModel.getAvatarInfo().signature ? nil:tf_sign.text
+								let gender = tf_gender.text == UserViewModel.getAvatarInfo().gender.rawTitle ? nil:GenderType.GenderBy(tf_gender.text!)
+								let birthday = tf_birthday.text == UserViewModel.getAvatarInfo().birthday ? nil:tf_birthday.text
+								let education = tf_degree.text == UserViewModel.getAvatarInfo().education ? nil:tf_degree.text
+								let industry = tf_industry.text == UserViewModel.getAvatarInfo().industry ? nil:tf_industry.text
+								let company = tf_company.text == UserViewModel.getAvatarInfo().company ? nil:tf_company.text
+								let occupation = tf_job.text == UserViewModel.getAvatarInfo().occupation ? nil:tf_job.text
+								let location = tf_address.text == UserViewModel.getAvatarInfo().location ? nil:tf_address.text
+								let hometown = tf_birthland.text == UserViewModel.getAvatarInfo().hometown ? nil:tf_birthland.text
+								let email = tf_email.text == UserViewModel.getAvatarInfo().email ? nil:tf_email.text
+
+								if nickname != nil || realname != nil || signature != nil || gender != nil || birthday != nil || education != nil || industry != nil || company != nil || occupation != nil || location != nil || hometown != nil || email != nil{
+												Services.updateUserInfo(birthday: birthday, company: company, education: education, email: email, gender: gender, hometown: hometown, industry: industry, location: location, nickname: nickname, realname: realname, occupation: occupation, signature: signature).subscribe(onNext: {data in
+																NotificationCenter.default.post(name: UpdateUserProfile_Noti, object: nil)
+												}).disposed(by: disposeBag)
+								}
 				}
 
 				override func setUI() {
@@ -83,16 +132,9 @@
 
 								if textField == tf_gender{
 												let items = ["男","女","保密"]
-												CommonAlertSheetView.show(items: items) {[weak self] index in
-																guard let weakSelf = self else { return }
+												CommonAlertSheetView.show(items: items) { index in
 																guard textField.text != items[index] else {return}
 																textField.text = items[index]
-																var gender:GenderType!
-																if index == 0{
-																				gender = .man
-																}else{
-																				gender = .woman
-																}
 												}
 								}
 
@@ -101,9 +143,6 @@
 												BitrhdayPickerView.show(title: "", type: .YMD) { date in
 																
 												}
-//												CommonDatePickerView.show(before: 60, after: 0, type: .YMD) { year, month, day,_,_ in
-//																textField.text = String(format: "%ld-%02ld-%02ld", year!,month!,day!)
-//												}
 												return false
 								}
 
diff --git a/XQMuse/Root/Me/VC/UserProfileVC.xib b/XQMuse/Root/Me/VC/UserProfileVC.xib
index d4f1124..85c6143 100644
--- a/XQMuse/Root/Me/VC/UserProfileVC.xib
+++ b/XQMuse/Root/Me/VC/UserProfileVC.xib
@@ -11,8 +11,18 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UserProfileVC" customModule="XQMuse" customModuleProvider="target">
             <connections>
                 <outlet property="image_user" destination="Qz0-bC-W38" id="eCy-hk-a42"/>
+                <outlet property="tf_address" destination="apd-WL-Sql" id="m57-Gx-rtg"/>
                 <outlet property="tf_birthday" destination="mG1-O5-m2h" id="QhO-j1-4Id"/>
+                <outlet property="tf_birthland" destination="8Mk-n3-NN5" id="84g-kg-wrt"/>
+                <outlet property="tf_company" destination="oBn-y6-tL8" id="DSm-9v-SmX"/>
+                <outlet property="tf_degree" destination="NG9-8J-4PE" id="8HI-YX-gv2"/>
+                <outlet property="tf_email" destination="S2r-9H-Zt2" id="ECV-Od-3Q8"/>
                 <outlet property="tf_gender" destination="eyM-56-9BV" id="dX4-by-LUg"/>
+                <outlet property="tf_industry" destination="OLk-lo-tWN" id="fMb-Kq-cQn"/>
+                <outlet property="tf_job" destination="Shq-k9-lMd" id="xBA-bw-XbQ"/>
+                <outlet property="tf_nickName" destination="xDs-61-9P0" id="dKw-c6-6r8"/>
+                <outlet property="tf_realName" destination="7Wv-tW-0JD" id="E1t-zc-26s"/>
+                <outlet property="tf_sign" destination="HRg-rk-jcD" id="O8Q-AD-caV"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
diff --git a/XQMuse/Root/Network/Models.swift b/XQMuse/Root/Network/Models.swift
index 57fc391..4168d21 100644
--- a/XQMuse/Root/Network/Models.swift
+++ b/XQMuse/Root/Network/Models.swift
@@ -222,7 +222,7 @@
 				var email: String = ""
 				var freezingOperator: String = ""
 				var freezingReason: String = ""
-				var gender: Int = 0
+				var gender: GenderType = .encrypt
 				var hometown: String = ""
 				var id: Int = 0
 				var income: Int = 0
@@ -233,6 +233,7 @@
 				var location: String = ""
 				var logoutTime: String = ""
 				var nickname: String = ""
+				var realname:String = ""
 				var occupation: String = ""
 				var registerTime: String = ""
 				var sanskritFlag: Int = 0
@@ -247,6 +248,13 @@
 				var vipExpireTime: String = ""
 				var isVip:ConditionType = .no
 				var wxOpenId: String = ""
+
+				var continuity: Int = 0
+				var cumulative: Int = 0
+				var level: Int = 0
+				var levelIcon: String?
+				var levelName: String?
+				var today: Int = 0
 }
 
 struct TutorInfoModel:HandyJSON{
@@ -328,6 +336,23 @@
 				var code:String = ""
 }
 
+struct TagModel:HandyJSON,Hashable{
+				var id = 0
+				var tagName = ""
+
+				var indexPath:IndexPath?
+}
+
+struct ResponseUserAnswerModel:HandyJSON{
+				var tagsId = "" //问题二 多个tagId使用英文逗号拼接字符串
+				var userAnswerOneDTOList = [ResponseUserAnswerDTOModel]()
+}
+
+struct ResponseUserAnswerDTOModel:HandyJSON{
+				var answer = "" //问题一 答案 1:是2:否3:偶尔,其他补充说明
+				var type = 0 //问题一 问题类型 1:您是否内心纠结敏感多疑?2:您是否辗转反侧彻夜难眠?3:您是否情绪失控暴躁易怒?4:您是否沉迷情感倍受伤害?5:您是否人生迷茫踌躇彷徨?6:其它补充说明
+}
+
 
 
 
diff --git a/XQMuse/Root/Network/Services.swift b/XQMuse/Root/Network/Services.swift
index f2ac2f7..d5fc93e 100644
--- a/XQMuse/Root/Network/Services.swift
+++ b/XQMuse/Root/Network/Services.swift
@@ -133,7 +133,7 @@
 
 				class func getMeditationPage(_ cateId:Int,page:Int,pageSize:Int = 20)->Observable<BaseResponse<BaseResponseList<MeditationModel>>>{
 								let params = ParamsAppender.build(url: All_Url)
-								params.interface(url: "/meditation/client/meditation/home/getMeditationAndCateList")
+								params.interface(url: "/meditation/client/meditation/home/getMeditationPageByCateId")
 												.append(key: "cateId", value: cateId)
 												.append(key: "pageCurr", value: page)
 												.append(key: "pageSize", value: pageSize)
@@ -285,10 +285,38 @@
 				}
 
 				/// 获取用户信息
+				class func getUserDetail()->Observable<BaseResponse<UserInfoModel>>{
+								let params = ParamsAppender.build(url: All_Url)
+								params.interface(url: "/user/client/app-user/getUserDetail")
+												.append(key: "apipost_id", value: "2fc350e9799588")
+								return NetworkRequest.request(params: params, method: .post, progress: false)
+				}
+
+				/// 获取用户信息
 				class func getUserInfo()->Observable<BaseResponse<UserInfoModel>>{
 								let params = ParamsAppender.build(url: All_Url)
-								params.interface(url: "/user/client/app-user/getCurrentUser")
-												.append(key: "apipost_id", value: "2e763463799132")
+								params.interface(url: "/user/client/app-user/getUserInfo")
+												.append(key: "apipost_id", value: "300079e039993f")
+								return NetworkRequest.request(params: params, method: .post, progress: false)
+				}
+
+				class func updateUserInfo(avatar:String? = nil,birthday:String? = nil,company:String? = nil,education:String? = nil,email:String? = nil,gender:GenderType? = nil,hometown:String? = nil,industry:String? = nil,location:String? = nil,nickname:String? = nil,realname:String? = nil,occupation:String? = nil,signature:String? = nil)->Observable<BaseResponse<SimpleModel>>{
+								let params = ParamsAppender.build(url: All_Url)
+								params.interface(url: "/user/client/app-user/updateUserDetail")
+												.append(key: "avatar", value: avatar)
+												.append(key: "birthday", value: birthday)
+												.append(key: "company", value: company)
+												.append(key: "education", value: education)
+												.append(key: "email", value: email)
+												.append(key: "gender", value: gender?.rawValue)
+												.append(key: "hometown", value: hometown)
+												.append(key: "industry", value: industry)
+												.append(key: "location", value: location)
+												.append(key: "nickname", value: nickname)
+												.append(key: "realname", value: realname)
+												.append(key: "occupation", value: occupation)
+												.append(key: "signature", value: signature)
+												.append(key: "apipost_id", value: "2fc350e9b99599")
 								return NetworkRequest.request(params: params, method: .post, progress: false)
 				}
 
@@ -307,6 +335,22 @@
 												.append(key: "apipost_id", value: "2e763463799134")
 								return NetworkRequest.request(params: params, method: .post, progress: false)
 				}
+
+				//获取个性化设置的标签
+				class func getTag()->Observable<BaseResponse<[TagModel]>>{
+								let params = ParamsAppender.build(url: All_Url)
+								params.interface(url: "/user/client/app-user/getTagList")
+												.append(key: "apipost_id", value: "25c3dab9f0e024")
+								return NetworkRequest.request(params: params, method: .post, progress: true)
+				}
+
+				class func saveUserAnswers(_ model:ResponseUserAnswerModel)->Observable<BaseResponse<SimpleModel>>{
+								let params = ParamsAppender.build(url: All_Url)
+								params.interface(url: "/user/client/app-user/saveUserAnswers")
+												.append(dic: model.toJSON()!)
+												.append(key: "apipost_id", value: "25c3dab9f0e025")
+								return NetworkRequest.request(params: params, method: .post, progress: true)
+				}
 }
 
 
diff --git a/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
index d8a0cb2..2c6414c 100644
--- a/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
+++ b/XQMuse/Root/Pavilion/CCell/PavilionItemCell.swift
@@ -21,7 +21,6 @@
 				
 				override func awakeFromNib() {
         super.awakeFromNib()
-        
     }
 
 				func setPavilionDetailModel(_ model:PavilionDetailModel){
diff --git a/XQMuse/Root/Pavilion/PavilionVC.swift b/XQMuse/Root/Pavilion/PavilionVC.swift
index e10327f..01f1293 100644
--- a/XQMuse/Root/Pavilion/PavilionVC.swift
+++ b/XQMuse/Root/Pavilion/PavilionVC.swift
@@ -72,7 +72,7 @@
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 								let model = viewModel.dataSource.value!.list[indexPath.row]
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_PavilionItemCell", for: indexPath) as! PavilionItemCell
-								cell.backgroundColor = .jq_randomColor
+								cell.backgroundColor = .white
 								cell.jq_cornerRadius = 16
 								cell.setPavilionDetailModel(model)
 								return cell
diff --git a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
index d7ae81c..dd92200 100644
--- a/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
+++ b/XQMuse/Root/Pavilion/VC/PavilionDetailVC.swift
@@ -40,7 +40,6 @@
         super.viewDidLoad()
 								title = "疗愈馆详情"
 								scrollView.contentInsetAdjustmentBehavior = .never
-								view_bannerBg.backgroundColor = .jq_randomColor
 								webView.scrollView.isScrollEnabled = false
 
 								Services.getPavlilonDetail(id: id).subscribe(onNext: {data in
diff --git a/XQMuse/Root/Plans/PlanGuideVC.swift b/XQMuse/Root/Plans/PlanGuideVC.swift
index f32a7dd..3d0d788 100644
--- a/XQMuse/Root/Plans/PlanGuideVC.swift
+++ b/XQMuse/Root/Plans/PlanGuideVC.swift
@@ -38,6 +38,16 @@
 
 				}
 
+				override func viewWillAppear(_ animated: Bool) {
+								super.viewWillAppear(animated)
+								player.play()
+				}
+
+				override func viewDidDisappear(_ animated: Bool) {
+								super.viewDidDisappear(animated)
+								player.pause()
+				}
+
 				override func setUI() {
 
 								label_title.font = Def_FlyFlowerSong(fontSize: 35)
@@ -58,7 +68,6 @@
 
 								playerLayer.player = player
 								view.layer.addSublayer(playerLayer)
-								player.play()
 								playerLayer.zPosition = -999
 				}
 
diff --git a/XQMuse/Root/Plans/PlanGuide_2_VC.swift b/XQMuse/Root/Plans/PlanGuide_2_VC.swift
index 44a2441..84a14b1 100644
--- a/XQMuse/Root/Plans/PlanGuide_2_VC.swift
+++ b/XQMuse/Root/Plans/PlanGuide_2_VC.swift
@@ -21,6 +21,8 @@
 				private var questions = [String]()
 				private var questionIndex = -1
 
+				private var responseUserAnswerModel = ResponseUserAnswerModel()
+
 				override func viewDidLoad() {
         super.viewDidLoad()
 
@@ -102,6 +104,17 @@
 								btn_deny.isSelected = sender.tag == btn_deny.tag
 								btn_OnceInAWel.isSelected = sender.tag == btn_OnceInAWel.tag
 
+								var answer:String = ""
+								if btn_sure.isSelected{
+												answer = "1"
+								}else if btn_deny.isSelected{
+												answer = "2"
+								}else{
+												answer = "3"
+								}
+
+								responseUserAnswerModel.userAnswerOneDTOList.append(ResponseUserAnswerDTOModel(answer: answer, type: questionIndex))
+
 								btn_sure.backgroundColor = btn_sure.isSelected ? UIColor(hexString: "#5E9456"):.clear
 								btn_deny.backgroundColor = btn_deny.isSelected ? UIColor(hexString: "#5E9456"):.clear
 								btn_OnceInAWel.backgroundColor = btn_OnceInAWel.isSelected ? UIColor(hexString: "#5E9456"):.clear
@@ -123,10 +136,14 @@
 												self.btn_OnceInAWel.alpha = 0
 								}
 
-								DispatchQueue.main.asyncAfter(delay: 1.8) {
+								DispatchQueue.main.asyncAfter(delay: 1.5) {
 												if self.questionIndex == self.questions.count - 1{
 																PlanGuidePromptSupplyView.show { text in
+																				if	text != nil{
+																								self.responseUserAnswerModel.userAnswerOneDTOList.append(ResponseUserAnswerDTOModel(answer: text!, type: 6))
+																				}
 																				let vc = PlanGuide_3_VC()
+																				vc.responseUserAnswerModel = self.responseUserAnswerModel
 																				self.push(vc: vc)
 																}
 												}else{
diff --git a/XQMuse/Root/Plans/PlanGuide_3_VC.swift b/XQMuse/Root/Plans/PlanGuide_3_VC.swift
index 5e7dac1..6ecd191 100644
--- a/XQMuse/Root/Plans/PlanGuide_3_VC.swift
+++ b/XQMuse/Root/Plans/PlanGuide_3_VC.swift
@@ -15,9 +15,10 @@
 				@IBOutlet weak var btn_next: UIButton!
 				@IBOutlet weak var view_content: UIView!
 				@IBOutlet weak var collectionVIew: UICollectionView!
-				private var setIndex = Set<IndexPath>()
+				private var selectModels = Set<TagModel>()
 
-				private var items = [["原生家庭","亲子关系","夫妻关系"],["情感纠结","思念亲人","优质睡眠","提升能量"],["高维智慧","清理净化","情绪稳定"]]
+				var responseUserAnswerModel:ResponseUserAnswerModel!
+				private var items = [[TagModel]?]()
 
 
 				override func viewWillAppear(_ animated: Bool) {
@@ -29,6 +30,11 @@
 				override func viewDidLoad() {
 								super.viewDidLoad()
 
+								var topIndex = 0
+								Services.getTag().subscribe(onNext: { data in
+												self.items = Array<TagModel>.splitArray((data.data ?? []), subArraySize: 3)
+												self.collectionVIew.reloadData()
+								}).disposed(by: disposeBag)
 				}
 
 				override func setUI() {
@@ -51,7 +57,10 @@
 				}
 
 				@IBAction func nextAction(_ sender: UIButton) {
-								NotificationCenter.default.post(name: PlantGuideQuit_Noti, object: true)
+								responseUserAnswerModel.tagsId = selectModels.map({"\($0.id)"}).joined(separator: ",")
+								Services.saveUserAnswers(responseUserAnswerModel).subscribe(onNext: { data in
+												NotificationCenter.default.post(name: PlantGuideQuit_Noti, object: true)
+								}).disposed(by: disposeBag)
 				}
 
 				@IBAction func previousAction(_ sender: UIButton) {
@@ -67,16 +76,18 @@
 extension PlanGuide_3_VC:UICollectionViewDelegate & UICollectionViewDataSource{
 
 				func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-								if setIndex.contains(indexPath){
-												setIndex.remove(indexPath)
+								let m = items[indexPath.section]![indexPath.row]
+
+								if selectModels.contains(m){
+												selectModels.remove(m)
 								}else{
-												setIndex.insert(indexPath)
+												selectModels.insert(m)
 								}
 								collectionView.reloadData()
 				}
 
 				func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-								return items[section].count
+								return items[section]?.count ?? 0
 				}
 
 				func numberOfSections(in collectionView: UICollectionView) -> Int {
@@ -85,8 +96,9 @@
 
 				func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 								let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! Planguide_3_CCell
-								cell.label_title.text = items[indexPath.section][indexPath.row]
-								cell.isSelect(setIndex.contains(indexPath))
+								let m = items[indexPath.section]![indexPath.row]
+								cell.label_title.text = m.tagName
+								cell.isSelect(selectModels.contains(m))
 								return cell
 				}
 }

--
Gitblit v1.7.1