From e86e19e5e5909f46e09adec1df430e0214a81590 Mon Sep 17 00:00:00 2001
From: 无故事王国 <841720330@qq.com>
Date: 星期三, 18 十月 2023 18:34:19 +0800
Subject: [PATCH] 修复BUG

---
 WanPai/Root/Search/View/SearchStoreDetailHeadView.xib         |   18 
 WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift       |   27 -
 WanPai/Assets.xcassets/Btns/btn_play.imageset/Contents.json   |   22 +
 WanPai/Root/Course/VC/CourseDetailVC.swift                    |    1 
 WanPai/Root/Games/View/GamesIntruduceView.swift               |   81 ++++-
 WanPai/Root/Games/View/GamesPayView.swift                     |    6 
 WanPai/Common/View/PaymentView.xib                            |   11 
 WanPai/Root/Search/VC/SearchStoreDetailVC.swift               |   33 +
 WanPai/Root/Yard/View/YardBookingTimeView.swift               |   27 +
 WanPai/Root/Activity/VC/ActivityListVC.swift                  |    4 
 WanPai/Root/Course/VC/CourseInfoVC.xib                        |   26 +
 WanPai/Root/Other/TCell/Common_1_TCell.swift                  |    1 
 WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift       |   32 +
 WanPai/Root/Course/TCell/CourseBookingTCell.swift             |    2 
 WanPai/Network/Services.swift                                 |   29 +
 WanPai/Root/Yard/VC/YardDetailDateTimeVC.swift                |   20 +
 WanPai/Root/Activity/TCell/ActivityInfoTCell.xib              |   39 +-
 WanPai/Root/Yard/VC/YardDetailVC.swift                        |    2 
 WanPai/Common/View/PaymentView.swift                          |    5 
 WanPai/Root/Activity/VC/ActivityListVC.xib                    |   26 
 WanPai/SceneDelegate.swift                                    |    5 
 WanPai/Common/View/RatingBar.swift                            |  102 +++++++
 WanPai/Root/Games/View/GamesIntruduceView.xib                 |   20 +
 WanPai/Root/Other/View/StudentChooseView.swift                |    4 
 WanPai/Root/Games/GamesVC.xib                                 |    5 
 WanPai/Root/Search/View/SearchStoreDetailHeadView.swift       |    8 
 WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib         |   77 +---
 WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@3x.png |    0 
 WanPai/Root/Games/TCell/GamesDataSourceTCell.xib              |    6 
 WanPai/Root/Games/View/GamesPayView.xib                       |   36 ++
 WanPai/Root/Games/VC/GamesDataSourceVC.swift                  |    5 
 WanPai/Root/Course/TCell/CourseBooking_1_TCell.swift          |    2 
 WanPai/Model/CommonModels.swift                               |   15 
 WanPai/Root/Games/TCell/GamesTCell.swift                      |   34 ++
 WanPai/Root/Welfare/TCell/BillInfoTCell.swift                 |    4 
 WanPai/Config/Enums.swift                                     |    8 
 WanPai.xcodeproj/project.pbxproj                              |    4 
 WanPai/Root/Other/View/StoresChooseView.swift                 |    4 
 WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@2x.png |    0 
 WanPai/Root/Other/VC/PaymentResultVC.swift                    |   10 
 WanPai/Root/Yard/VC/YardBookingDetailVC.swift                 |    4 
 WanPai/Root/Welfare/TCell/ExchangeRecordTCell.swift           |    8 
 WanPai/Root/Games/VC/GamesListVC.swift                        |    3 
 WanPai/Root/Games/GamesVC.swift                               |   13 
 WanPai/Common/VC/CommonWebVC.swift                            |    2 
 WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift               |    8 
 WanPai/Root/Course/VC/AddStudentVC.swift                      |   10 
 WanPai/Root/Yard/VC/YardListVC.swift                          |   24 +
 48 files changed, 601 insertions(+), 232 deletions(-)

diff --git a/WanPai.xcodeproj/project.pbxproj b/WanPai.xcodeproj/project.pbxproj
index ec68f2d..c67681e 100644
--- a/WanPai.xcodeproj/project.pbxproj
+++ b/WanPai.xcodeproj/project.pbxproj
@@ -60,6 +60,7 @@
 		134BD52C2A6008BA00786819 /* YYPaymentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134BD5202A6008BA00786819 /* YYPaymentManager.swift */; };
 		134BD52D2A6008BA00786819 /* YYPaymentResultModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134BD5212A6008BA00786819 /* YYPaymentResultModel.swift */; };
 		134BD52E2A6008BA00786819 /* YYPayRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134BD5222A6008BA00786819 /* YYPayRequest.swift */; };
+		1350BF172ADFD1D9007FC49F /* RatingBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1350BF162ADFD1D9007FC49F /* RatingBar.swift */; };
 		1353D5752A56CA0A00539FCA /* Services.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1353D5732A56CA0A00539FCA /* Services.swift */; };
 		1353D5762A56CA0A00539FCA /* NetworkRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1353D5742A56CA0A00539FCA /* NetworkRequest.swift */; };
 		1355ABFA2A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1355ABF92A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift */; };
@@ -352,6 +353,7 @@
 		134BD5212A6008BA00786819 /* YYPaymentResultModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YYPaymentResultModel.swift; sourceTree = "<group>"; };
 		134BD5222A6008BA00786819 /* YYPayRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YYPayRequest.swift; sourceTree = "<group>"; };
 		134BD5332A60099B00786819 /* WanPai-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WanPai-Bridging-Header.h"; sourceTree = SOURCE_ROOT; };
+		1350BF162ADFD1D9007FC49F /* RatingBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RatingBar.swift; sourceTree = "<group>"; };
 		1353D5732A56CA0A00539FCA /* Services.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Services.swift; sourceTree = "<group>"; };
 		1353D5742A56CA0A00539FCA /* NetworkRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkRequest.swift; sourceTree = "<group>"; };
 		1355ABF92A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareCouponsSubListVC.swift; sourceTree = "<group>"; };
@@ -933,6 +935,7 @@
 				1394023E2AB456DB003CF61E /* PaymentCourseView.xib */,
 				130EC17F2AD3F6AF003CA9BA /* CommonAlertSheetView.swift */,
 				130EC1812AD3F6C0003CA9BA /* CommonAlertSheetView.xib */,
+				1350BF162ADFD1D9007FC49F /* RatingBar.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -1648,6 +1651,7 @@
 				132876682A49A4CB00FC9122 /* StudentReportVC.swift in Sources */,
 				133A61882A4E7A200066C4E6 /* CustomerSubListVC.swift in Sources */,
 				137B866F2AB3F87000C4D01B /* GamesPayView.swift in Sources */,
+				1350BF172ADFD1D9007FC49F /* RatingBar.swift in Sources */,
 				1304B8602A4EB59F000D4F2E /* SearchStoreListVC.swift in Sources */,
 				8D630BF82A31801300F0B7A8 /* SearchVC.swift in Sources */,
 				13B6BBA12ABAE44E006D0C0E /* CourseSignUpTCell.swift in Sources */,
diff --git a/WanPai/Assets.xcassets/Btns/btn_play.imageset/Contents.json b/WanPai/Assets.xcassets/Btns/btn_play.imageset/Contents.json
new file mode 100644
index 0000000..d04b5d1
--- /dev/null
+++ b/WanPai/Assets.xcassets/Btns/btn_play.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "btn_play@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "btn_play@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@2x.png b/WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@2x.png
new file mode 100644
index 0000000..4bbaa3b
--- /dev/null
+++ b/WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@2x.png
Binary files differ
diff --git a/WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@3x.png b/WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@3x.png
new file mode 100644
index 0000000..f5ea40b
--- /dev/null
+++ b/WanPai/Assets.xcassets/Btns/btn_play.imageset/btn_play@3x.png
Binary files differ
diff --git a/WanPai/Common/VC/CommonWebVC.swift b/WanPai/Common/VC/CommonWebVC.swift
index 9e127ee..246a5f0 100644
--- a/WanPai/Common/VC/CommonWebVC.swift
+++ b/WanPai/Common/VC/CommonWebVC.swift
@@ -45,7 +45,7 @@
 	}
 
 	override var preferredStatusBarStyle: UIStatusBarStyle{
-		return .default
+		return .lightContent
 	}
 
 	override var shouldAutorotate: Bool{
diff --git a/WanPai/Common/View/PaymentView.swift b/WanPai/Common/View/PaymentView.swift
index 6cb2da6..bec2a88 100644
--- a/WanPai/Common/View/PaymentView.swift
+++ b/WanPai/Common/View/PaymentView.swift
@@ -16,7 +16,8 @@
     @IBOutlet weak var btn_alipay: UIButton!
     @IBOutlet weak var btn_coin: UIButton!
     @IBOutlet weak var btn_course: UIButton!
-
+	@IBOutlet weak var label_integral: UILabel!
+	
     @IBOutlet weak var view_wechat: UIView!
     @IBOutlet weak var view_alipay: UIView!
     @IBOutlet weak var view_coin: UIView!
@@ -29,7 +30,6 @@
     @IBOutlet weak var label_courseMoney: UILabel!
 	@IBOutlet weak var btn_complete: UIButton!
 	@IBOutlet weak var btn_integral: UIButton!
-	
 
 
     private var clouse:((PayType)->Void)?
@@ -61,6 +61,7 @@
         paymentView.label_wechatMoney.text = money.wx?.currency() ?? "0"
         paymentView.label_coinMoney.text = "\(money.coin ?? 0)币"
         paymentView.label_courseMoney.text = "\(money.course ?? 0)课时"
+		paymentView.label_integral.text = "\(money.integral ?? 0)积分"
 		sceneDelegate?.window?.addSubview(paymentView)
         paymentView.cons_bottom.constant = 0
         
diff --git a/WanPai/Common/View/PaymentView.xib b/WanPai/Common/View/PaymentView.xib
index ff620b9..16c4962 100644
--- a/WanPai/Common/View/PaymentView.xib
+++ b/WanPai/Common/View/PaymentView.xib
@@ -252,7 +252,7 @@
                                                 <constraint firstAttribute="height" constant="0.40000000000000002" id="5k6-hd-aob"/>
                                             </constraints>
                                         </view>
-                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_notice" translatesAutoresizingMaskIntoConstraints="NO" id="cCG-Q7-Q0C">
+                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coin" translatesAutoresizingMaskIntoConstraints="NO" id="cCG-Q7-Q0C">
                                             <rect key="frame" x="15" y="21" width="28" height="29"/>
                                             <constraints>
                                                 <constraint firstAttribute="width" constant="28" id="0kD-VT-hw3"/>
@@ -274,6 +274,12 @@
                                                 <action selector="tapAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="zbU-Kl-1M1"/>
                                             </connections>
                                         </button>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U8u-9j-U4a">
+                                            <rect key="frame" x="132.33333333333334" y="26" width="43" height="19.333333333333329"/>
+                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                            <color key="textColor" red="0.93333333330000001" green="0.043137254899999998" blue="0.043137254899999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
                                     </subviews>
                                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                     <constraints>
@@ -284,7 +290,9 @@
                                         <constraint firstItem="fiP-vF-ya1" firstAttribute="centerY" secondItem="cCG-Q7-Q0C" secondAttribute="centerY" id="OqT-Rg-7gu"/>
                                         <constraint firstAttribute="bottom" secondItem="8Ok-2i-KOu" secondAttribute="bottom" id="dBP-Dr-OJf"/>
                                         <constraint firstAttribute="height" constant="60" id="fxz-ZW-vRj"/>
+                                        <constraint firstItem="U8u-9j-U4a" firstAttribute="centerY" secondItem="cCG-Q7-Q0C" secondAttribute="centerY" id="old-1o-5gd"/>
                                         <constraint firstAttribute="trailing" secondItem="8Ok-2i-KOu" secondAttribute="trailing" constant="14" id="rfJ-rg-rg2"/>
+                                        <constraint firstItem="U8u-9j-U4a" firstAttribute="leading" secondItem="fiP-vF-ya1" secondAttribute="trailing" constant="11" id="uoa-Ff-rZh"/>
                                         <constraint firstAttribute="trailing" secondItem="MCE-3F-QM0" secondAttribute="trailing" constant="14" id="vo5-J6-ioe"/>
                                         <constraint firstItem="MCE-3F-QM0" firstAttribute="centerY" secondItem="cCG-Q7-Q0C" secondAttribute="centerY" id="yWk-BV-nae"/>
                                     </constraints>
@@ -369,6 +377,7 @@
                 <outlet property="label_aliPayMoney" destination="uCD-UF-eto" id="1BE-9I-1Dh"/>
                 <outlet property="label_coinMoney" destination="MfR-5x-oVT" id="Rwg-Rc-14o"/>
                 <outlet property="label_courseMoney" destination="1dn-gY-wfT" id="H3V-IY-yYU"/>
+                <outlet property="label_integral" destination="U8u-9j-U4a" id="cCq-FK-gF9"/>
                 <outlet property="label_wechatMoney" destination="nW3-BN-jAP" id="HUP-W9-gDY"/>
                 <outlet property="view_alipay" destination="4Ft-AC-zgU" id="W5X-ct-zGp"/>
                 <outlet property="view_coin" destination="S7h-OF-RAr" id="0wr-zD-dLr"/>
diff --git a/WanPai/Common/View/RatingBar.swift b/WanPai/Common/View/RatingBar.swift
new file mode 100644
index 0000000..57186b1
--- /dev/null
+++ b/WanPai/Common/View/RatingBar.swift
@@ -0,0 +1,102 @@
+	//
+	//  RatingBar.swift
+	//  WanPai
+	//
+	//  Created by 无故事王国 on 2023/10/18.
+	//
+
+	//  基本原理:在这个RatingBar里面分别创建两个子View,一个覆盖另一个,每个子View创建numStars个UIImageView,然后通过修改rating的值来控制最顶层的子View可见范围来实现Rating数值变化效果
+	//  RatingBar.swift
+	//  RatingBar
+	//
+	//  Created by Sai on 15/4/22.
+	//  Copyright (c) 2015年 Sai. All rights reserved.
+	//
+
+import UIKit
+	//@IBDesignable 在视图中拖入控件可以看到渲染情况,结果出现以下错误,http://stackoverflow.com/questions/27374330/ibdesignable-error-ib-designables-failed-to-update-auto-layout-status-interf 这里也是一样情况,暂时无解
+	//error: IB Designables: Failed to update auto layout status: Interface Builder Cocoa Touch Tool crashed
+	//error: IB Designables: Failed to render instance of PlaceholderTextView: Rendering the view took longer than 200 ms. Your drawing code may suffer from slow performance.
+class RatingBar: UIView {
+
+	@IBInspectable var rating: CGFloat = 0{//当前数值
+		didSet{
+			if 0 > rating {rating = 0}
+			else if ratingMax < rating {rating = ratingMax}
+				//回调给代理
+			delegate?.ratingDidChange(ratingBar: self, rating: rating)
+
+			self.setNeedsLayout()
+		}
+	}
+	@IBInspectable var ratingMax: CGFloat = 5//总数值,必须为numStars的倍数
+	@IBInspectable var numStars: Int = 5 //星星总数
+	@IBInspectable var canAnimation: Bool = false//是否开启动画模式
+	@IBInspectable var animationTimeInterval: TimeInterval = 0.2//动画时间
+	@IBInspectable var incomplete:Bool = false//评分时是否允许不是整颗星星
+	@IBInspectable var isIndicator:Bool = false//RatingBar是否是一个指示器(用户无法进行更改)
+
+	@IBInspectable var imageLight: UIImage = UIImage(named: "icon_star")!
+	@IBInspectable var imageDark: UIImage = UIImage(named: "btn_start_u")!
+
+	var foregroundRatingView: UIView!
+	var backgroundRatingView: UIView!
+
+	var delegate: RatingBarDelegate?
+	var isDrew = false
+
+	func buildView(){
+		if isDrew {return}
+		isDrew = true
+			//创建前后两个View,作用是通过rating数值显示或者隐藏“foregroundRatingView”来改变RatingBar的星星效果
+		self.backgroundRatingView = self.createRatingView(image: imageDark)
+		self.foregroundRatingView = self.createRatingView(image: imageLight)
+		animationRatingChange()
+		self.addSubview(self.backgroundRatingView)
+		self.addSubview(self.foregroundRatingView)
+			//加入单击手势
+		let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapRateView))
+		tapGesture.numberOfTapsRequired = 1
+		self.addGestureRecognizer(tapGesture)
+	}
+	override func layoutSubviews() {
+		super.layoutSubviews()
+		buildView()
+		let animationTimeInterval = self.canAnimation ? self.animationTimeInterval : 0
+			//开启动画改变foregroundRatingView可见范围
+		UIView.animate(withDuration: animationTimeInterval, animations: {self.animationRatingChange()})
+	}
+		//改变foregroundRatingView可见范围
+	func animationRatingChange(){
+		let realRatingScore = self.rating / self.ratingMax
+		self.foregroundRatingView.frame = CGRectMake(0, 0,self.bounds.size.width * realRatingScore, self.bounds.size.height)
+
+	}
+		//根据图片名,创建一列RatingView
+	func createRatingView(image: UIImage) ->UIView{
+		let view = UIView(frame: self.bounds)
+		view.clipsToBounds = true
+		view.backgroundColor = UIColor.clear
+			//开始创建子Item,根据numStars总数
+		for position in 0 ..< numStars{
+			let imageView = UIImageView(image: image)
+			imageView.frame = CGRectMake(CGFloat(position) * self.bounds.size.width / CGFloat(numStars), 0, self.bounds.size.width / CGFloat(numStars), self.bounds.size.height)
+			imageView.contentMode = UIView.ContentMode.scaleAspectFit
+			view.addSubview(imageView)
+		}
+		return view
+	}
+		//点击编辑分数后,通过手势的x坐标来设置数值
+	@objc func tapRateView(_ sender: UITapGestureRecognizer){
+		if isIndicator {return}//如果是指示器,就不能交互
+		let tapPoint = sender.location(in: self)
+		let offset = tapPoint.x
+			//通过x坐标判断分数
+		let realRatingScore = offset / (self.bounds.size.width / ratingMax);
+		self.rating = self.incomplete ? realRatingScore : round(realRatingScore)
+
+	}
+}
+protocol RatingBarDelegate{
+	func ratingDidChange(ratingBar: RatingBar,rating: CGFloat)
+}
diff --git a/WanPai/Config/Enums.swift b/WanPai/Config/Enums.swift
index 94c77c6..4f9647c 100644
--- a/WanPai/Config/Enums.swift
+++ b/WanPai/Config/Enums.swift
@@ -198,9 +198,9 @@
 
     var strTitle:String{
         switch self {
-            case .allUser:return "全部用户参与"
-            case .vip:return "仅限年度会员参与"
-            case .student:return "仅限运动营成员参与"
+            case .allUser:return "全部用户"
+            case .vip:return "仅限年度会员"
+            case .student:return "仅限运动营成员"
         }
     }
 }
@@ -406,6 +406,7 @@
 
 
 enum CardType:Int,HandyJSONEnum{
+	case none = 0
 	case subCard = 1
 	case monthCard = 2
 	case quarterCard = 3
@@ -417,6 +418,7 @@
 			case .monthCard:return "月卡"
 			case .quarterCard:return "季卡"
 			case .yearCard:return "年卡"
+			default:return ""
 		}
 	}
 }
diff --git a/WanPai/Model/CommonModels.swift b/WanPai/Model/CommonModels.swift
index c5bf0e0..7d5286f 100644
--- a/WanPai/Model/CommonModels.swift
+++ b/WanPai/Model/CommonModels.swift
@@ -217,7 +217,7 @@
 
 struct CityProfileModel:HandyJSON {
     var id  = 0
-    var code = ""
+    var code = 0
     var name = ""
 }
 
@@ -328,13 +328,15 @@
 
 }
 
-struct SiteDetailDateTimeModel:HandyJSON,Equatable{
+class SiteDetailDateTimeModel:HandyJSON,Equatable{
     var selectable = 0 //是否可选(0=否,1=是)
     var time = ""
 
     static func ==(lhs: SiteDetailDateTimeModel, rhs: SiteDetailDateTimeModel) -> Bool {
         return (lhs.selectable == rhs.selectable) && (lhs.time == rhs.time)
     }
+
+	required init() {}
 }
 
 
@@ -585,6 +587,11 @@
     var cash: Double = 0
     var startTime: String = ""
     var useStatus: UseStateType = .used
+	var cardType:CardType = .none
+	var userId:Int = 0
+	var sid = [Int]()
+	var rid = [Int]()
+
 }
 
 struct RecordsDetailModel:HandyJSON{
@@ -792,6 +799,8 @@
 	var integral = 0
 	var otherId = 0
 	var playCoin = 0
+	var video = ""
+	var intro = ""
 }
 
 struct DoorModel:HandyJSON{
@@ -811,7 +820,7 @@
 }
 
 struct OpenDoorModel:HandyJSON{
-	var sid:Int? //场馆ID,全国通用值为0
+	var sid = [Int]() //场馆ID,全国通用值为0
 	var rid = [Int]() //区域ID,单场馆和多场馆都可以放入,全国可以为空数组
 	var uid:Int? //用户ID
 	var time = [OpenDoorTimeModel]() //时间
diff --git a/WanPai/Network/Services.swift b/WanPai/Network/Services.swift
index 7ecd53f..8b535a4 100644
--- a/WanPai/Network/Services.swift
+++ b/WanPai/Network/Services.swift
@@ -17,7 +17,7 @@
 //let All_Url = "https://console-mock.apipost.cn/mock/b5b2dee0-5564-40ae-f082-a352d502a153"
 //let All_Url = "http://192.168.110.165:10393/mock/b5b2dee0-5564-40ae-f082-a352d502a153"
 #else
-let All_Url = "http://8.137.22.229"
+//let All_Url = "http://8.137.22.229"
 let Game_Url = "https://port.daowepark.com"
 #endif
 
@@ -35,6 +35,12 @@
 			.append(key: "siteId", value: spaceId)
 			.append(key: "storeId", value: storeId)
 		return NetworkRequest.request(params: params, method: .post, progress: false)
+	}
+
+	class func game_intro()->Observable<BaseResponse<String>>{
+		let params = ParamsAppender.build(url: All_Url)
+			.interface(url: "/other/api/game/getIntro")
+		return NetworkRequest.request(params: params, method: .post, progress: true)
 	}
 
 	//支付游戏
@@ -353,11 +359,12 @@
         return NetworkRequest.request(params: params, method: .post, progress: false)
     }
 
-    class func queryStoreList()->Observable<BaseResponse<[NormalSimpleModel]>>{
+	class func queryStoreList(cityCode:Int? = nil)->Observable<BaseResponse<[NormalSimpleModel]>>{
         let params = ParamsAppender.build(url: All_Url)
             .interface(url: "/other/base/store/queryStoreLists")
             .append(key: "lat", value: locationTool.currentLocation?.coordinate.latitude.string)
             .append(key: "lon", value: locationTool.currentLocation?.coordinate.longitude.string)
+			.append(key: "cityCode", value: cityCode)
         return NetworkRequest.request(params: params, method: .post, progress: false)
     }
 
@@ -588,6 +595,14 @@
         return NetworkRequest.request(params: params, method: .post, progress: false)
     }
 
+	static func lessonDetails(lessonId:Int,stuId:Int)->Observable<BaseResponse<SimpleModel>>{
+		let params = ParamsAppender.build(url: All_Url)
+			.interface(url: "/account/api/startCource/lessonDetails")
+			.append(key: "stuId", value: stuId)
+			.append(key: "lessonId", value: lessonId)
+		return NetworkRequest.request(params: params, method: .post, progress: true)
+	}
+
 
         /// 上课首页-课程列表
 	static func weeksOfCourseDetails(stuId:Int,time:Date,storeId:Int)->Observable<BaseResponse<WeeklyCourseModel>>{
@@ -724,7 +739,7 @@
     }
 
         /// 评价门店
-    static func evaluationStore(id:Int,content:String,imgs:String,score:Int)->Observable<BaseResponse<SimpleModel>>{
+    static func evaluationStore(id:Int,content:String,imgs:String,score:Double)->Observable<BaseResponse<SimpleModel>>{
         let params = ParamsAppender.build(url: All_Url)
             .interface(url: "/other/base/storeEvaluation/saveEvaluation")
             .append(key: "storeId", value: id)
@@ -839,7 +854,7 @@
     }
 
         /// 获取场地列表
-	static func querySiteList(pageNum:Int,pageSize:Int,siteTypeId:Int?,cityCode:String?,storeId:Int?,startTime:String?,endTime:String?,search:String?)->Observable<BaseResponse<[SiteItemModel]>>{
+	static func querySiteList(pageNum:Int,pageSize:Int,siteTypeId:Int?,cityCode:Int?,storeId:Int?,startTime:String?,endTime:String?,search:String?)->Observable<BaseResponse<[SiteItemModel]>>{
         let params = ParamsAppender.build(url: All_Url)
             .interface(url: "/other/base/site/querySiteList")
             .append(key: "pageNum", value: pageNum)
@@ -981,7 +996,7 @@
 extension Services{
 
         /// 获取赛事列表
-    class func queryCompetitionList(cityCode:String?,content:String?,heat:SortType?,registerCondition:Int?)->Observable<BaseResponse<[ActivityListModel]>>{
+    class func queryCompetitionList(cityCode:Int?,content:String?,heat:SortType?,registerCondition:Int?)->Observable<BaseResponse<[ActivityListModel]>>{
         let params = ParamsAppender.build(url: All_Url)
             .interface(url: "/competition/base/competition/queryCompetitionList")
             .append(key: "cityCode", value: cityCode)
@@ -1103,7 +1118,7 @@
     }
 
         /// 获取省市数据
-    class func queryProvinceAndCity(pcode:String? = nil)->Observable<BaseResponse<[CityProfileModel]>>{
+    class func queryProvinceAndCity(pcode:Int? = nil)->Observable<BaseResponse<[CityProfileModel]>>{
         let params = ParamsAppender.build(url: All_Url)
             .interface(url: "/other/base/store/queryProvinceAndCity")
             .append(key: "pcode", value: pcode)
@@ -1111,7 +1126,7 @@
     }
 
         /// 获取城市code获取门店
-    class func queryStoreAtCity(cityCode:String)->Observable<BaseResponse<[CityProfileModel]>>{
+    class func queryStoreAtCity(cityCode:Int)->Observable<BaseResponse<[CityProfileModel]>>{
         let params = ParamsAppender.build(url: All_Url)
             .interface(url: "/other/base/store/queryStoreByCityCode")
             .append(key: "cityCode", value: cityCode)
diff --git a/WanPai/Root/Activity/TCell/ActivityInfoTCell.xib b/WanPai/Root/Activity/TCell/ActivityInfoTCell.xib
index 01f5c63..75a310b 100644
--- a/WanPai/Root/Activity/TCell/ActivityInfoTCell.xib
+++ b/WanPai/Root/Activity/TCell/ActivityInfoTCell.xib
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -12,11 +12,11 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_ActivityInfoTCell" rowHeight="185" id="KGk-i7-Jjw" customClass="ActivityInfoTCell" customModule="WanPai" customModuleProvider="target">
-            <rect key="frame" x="0.0" y="0.0" width="489" height="185"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_ActivityInfoTCell" rowHeight="169" id="KGk-i7-Jjw" customClass="ActivityInfoTCell" customModule="WanPai" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="489" height="169"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
-                <rect key="frame" x="0.0" y="0.0" width="489" height="185"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="489" height="169"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="lCa-en-qcl">
@@ -33,10 +33,10 @@
                             </userDefinedRuntimeAttribute>
                         </userDefinedRuntimeAttributes>
                     </imageView>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rom-jP-xgQ">
-                        <rect key="frame" x="131" y="21" width="42.666666666666657" height="22"/>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="750" verticalHuggingPriority="251" horizontalCompressionResistancePriority="250" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rom-jP-xgQ">
+                        <rect key="frame" x="130.99999999999997" y="21" width="303.33333333333326" height="22"/>
                         <constraints>
-                            <constraint firstAttribute="height" constant="22" id="AOB-7s-rct"/>
+                            <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="22" id="AOB-7s-rct"/>
                         </constraints>
                         <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
                         <nil key="textColor"/>
@@ -51,7 +51,7 @@
                         <color key="textColor" red="0.99607843137254903" green="0.47843137254901957" blue="0.011764705882352941" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6i5-yn-dMM">
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6i5-yn-dMM">
                         <rect key="frame" x="131" y="69" width="347" height="13.333333333333329"/>
                         <fontDescription key="fontDescription" type="system" pointSize="11"/>
                         <color key="textColor" red="0.23921568627450979" green="0.24313725490196078" blue="0.27058823529411763" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/>
@@ -76,14 +76,14 @@
                         <nil key="highlightedColor"/>
                     </label>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kwa-Xn-64L">
-                        <rect key="frame" x="14" y="183" width="461" height="0.33333333333334281"/>
+                        <rect key="frame" x="14" y="167.33333333333334" width="461" height="0.33333333333334281"/>
                         <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="0.40000000000000002" id="bBX-ct-nwS"/>
                         </constraints>
                     </view>
                     <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sdT-Zi-Mxo">
-                        <rect key="frame" x="390" y="130" width="86" height="31"/>
+                        <rect key="frame" x="390" y="111.33333333333333" width="86" height="30.999999999999986"/>
                         <color key="backgroundColor" name="FE6E0D"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="31" id="FIY-uM-c4A"/>
@@ -99,13 +99,13 @@
                             </userDefinedRuntimeAttribute>
                         </userDefinedRuntimeAttributes>
                     </button>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dC6-S9-Yzg">
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dC6-S9-Yzg">
                         <rect key="frame" x="465.33333333333331" y="21.666666666666671" width="11.666666666666686" height="21"/>
                         <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
                         <color key="textColor" red="0.89411764705882346" green="0.10980392156862745" blue="0.10980392156862745" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_hot" translatesAutoresizingMaskIntoConstraints="NO" id="aDx-6g-Fwl">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" image="icon_hot" translatesAutoresizingMaskIntoConstraints="NO" id="aDx-6g-Fwl">
                         <rect key="frame" x="445.33333333333331" y="22.666666666666671" width="15" height="19"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="19" id="Qxp-GM-F7m"/>
@@ -125,21 +125,23 @@
                     </label>
                 </subviews>
                 <constraints>
+                    <constraint firstItem="kwa-Xn-64L" firstAttribute="top" secondItem="sdT-Zi-Mxo" secondAttribute="bottom" constant="25" id="2OB-8g-bsb"/>
                     <constraint firstItem="dC6-S9-Yzg" firstAttribute="leading" secondItem="aDx-6g-Fwl" secondAttribute="trailing" constant="5" id="49l-cA-GUT"/>
                     <constraint firstItem="lCa-en-qcl" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="21" id="4g6-br-OY3"/>
                     <constraint firstItem="6i5-yn-dMM" firstAttribute="top" secondItem="Pj9-n0-bRl" secondAttribute="bottom" constant="4" id="7ej-b0-vBO"/>
                     <constraint firstItem="rom-jP-xgQ" firstAttribute="leading" secondItem="lCa-en-qcl" secondAttribute="trailing" constant="11" id="88c-FP-Ox9"/>
                     <constraint firstItem="ymb-ff-rLX" firstAttribute="top" secondItem="9O5-p4-WaJ" secondAttribute="bottom" constant="4" id="93j-rN-wOR"/>
+                    <constraint firstItem="aDx-6g-Fwl" firstAttribute="leading" secondItem="rom-jP-xgQ" secondAttribute="trailing" constant="11" id="971-Mu-sgq"/>
                     <constraint firstAttribute="trailing" secondItem="kwa-Xn-64L" secondAttribute="trailing" constant="14" id="9hY-ie-aoz"/>
                     <constraint firstItem="kwa-Xn-64L" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="FW7-kP-lHi"/>
                     <constraint firstAttribute="trailingMargin" secondItem="9O5-p4-WaJ" secondAttribute="trailing" constant="11" id="LU8-oF-vfP"/>
                     <constraint firstItem="dC6-S9-Yzg" firstAttribute="centerY" secondItem="rom-jP-xgQ" secondAttribute="centerY" id="OIo-0u-Hwn"/>
                     <constraint firstItem="Pj9-n0-bRl" firstAttribute="top" secondItem="rom-jP-xgQ" secondAttribute="bottom" constant="5" id="QWi-tj-XVf"/>
                     <constraint firstAttribute="trailing" secondItem="dC6-S9-Yzg" secondAttribute="trailing" constant="12" id="SLq-Dk-htR"/>
-                    <constraint firstAttribute="bottom" secondItem="kwa-Xn-64L" secondAttribute="bottom" id="YVS-p4-IkB"/>
+                    <constraint firstAttribute="bottom" secondItem="kwa-Xn-64L" secondAttribute="bottom" priority="250" id="YVS-p4-IkB"/>
+                    <constraint firstItem="sdT-Zi-Mxo" firstAttribute="top" secondItem="9O5-p4-WaJ" secondAttribute="bottom" constant="8" id="Ytl-BS-4pD"/>
                     <constraint firstAttribute="trailing" secondItem="6i5-yn-dMM" secondAttribute="trailing" constant="11" id="ZnT-0m-CmR"/>
                     <constraint firstAttribute="trailing" secondItem="sdT-Zi-Mxo" secondAttribute="trailing" constant="13" id="bHK-4G-2Fj"/>
-                    <constraint firstItem="kwa-Xn-64L" firstAttribute="top" secondItem="lCa-en-qcl" secondAttribute="bottom" constant="22" id="eca-E7-5au"/>
                     <constraint firstItem="lCa-en-qcl" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="grf-S5-jdp"/>
                     <constraint firstItem="dDz-PN-B0q" firstAttribute="top" secondItem="lCa-en-qcl" secondAttribute="top" id="iGi-57-VJl"/>
                     <constraint firstItem="Pj9-n0-bRl" firstAttribute="leading" secondItem="rom-jP-xgQ" secondAttribute="leading" id="kEB-9C-sEM"/>
@@ -148,7 +150,6 @@
                     <constraint firstItem="9O5-p4-WaJ" firstAttribute="leading" secondItem="6i5-yn-dMM" secondAttribute="leading" id="lAg-Y0-FLs"/>
                     <constraint firstItem="dDz-PN-B0q" firstAttribute="leading" secondItem="lCa-en-qcl" secondAttribute="leading" id="nQH-fU-x7b"/>
                     <constraint firstItem="9O5-p4-WaJ" firstAttribute="top" secondItem="6i5-yn-dMM" secondAttribute="bottom" constant="4" id="rNR-EU-0EI"/>
-                    <constraint firstItem="sdT-Zi-Mxo" firstAttribute="bottom" secondItem="lCa-en-qcl" secondAttribute="bottom" id="tVB-6o-iso"/>
                     <constraint firstItem="6i5-yn-dMM" firstAttribute="leading" secondItem="rom-jP-xgQ" secondAttribute="leading" id="wv7-BV-JSf"/>
                     <constraint firstItem="rom-jP-xgQ" firstAttribute="top" secondItem="lCa-en-qcl" secondAttribute="top" id="xDW-fU-NYJ"/>
                 </constraints>
@@ -164,7 +165,7 @@
                 <outlet property="label_state" destination="dDz-PN-B0q" id="MxD-ut-Nvh"/>
                 <outlet property="label_title" destination="rom-jP-xgQ" id="9sb-b0-rvH"/>
             </connections>
-            <point key="canvasLocation" x="168.70229007633588" y="70.070422535211264"/>
+            <point key="canvasLocation" x="168.70229007633588" y="63.028169014084511"/>
         </tableViewCell>
     </objects>
     <resources>
@@ -173,7 +174,7 @@
             <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </namedColor>
         <systemColor name="systemGray6Color">
-            <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <color red="0.94901960780000005" green="0.94901960780000005" blue="0.96862745100000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </systemColor>
     </resources>
 </document>
diff --git a/WanPai/Root/Activity/VC/ActivityListVC.swift b/WanPai/Root/Activity/VC/ActivityListVC.swift
index d8215ac..36bef91 100644
--- a/WanPai/Root/Activity/VC/ActivityListVC.swift
+++ b/WanPai/Root/Activity/VC/ActivityListVC.swift
@@ -12,7 +12,7 @@
 
 class ActivityListViewModel:RefreshModel<ActivityListModel>{
 
-    var cityCode = BehaviorRelay<String?>(value:nil)
+    var cityCode = BehaviorRelay<Int?>(value:nil)
     var content = BehaviorRelay<String>(value: "")
     var heat = BehaviorRelay<SortType?>(value:nil)
     var registerCondition = BehaviorRelay<RegisterAcitivyType?>(value:nil)
@@ -93,7 +93,7 @@
         hiddenMenu()
         sender.isSelected = true
         var items = Array<NormalSimpleModel>()
-        items.append(NormalSimpleModel(id: 1, name: "全部用户"))
+        items.append(NormalSimpleModel(id: 1, name: "全部用户参与"))
         items.append(NormalSimpleModel(id: 2, name: "仅限年度会员参与"))
         items.append(NormalSimpleModel(id: 3, name: "仅限运动营成员参与"))
         courseSubTypeView = CourseSubTypeView.show(inView: self.view, afterView: btn_joinCondition, items: items,selectModel: selectSignupConditionModel) { [weak self] m in
diff --git a/WanPai/Root/Activity/VC/ActivityListVC.xib b/WanPai/Root/Activity/VC/ActivityListVC.xib
index 1340dd4..ae92244 100644
--- a/WanPai/Root/Activity/VC/ActivityListVC.xib
+++ b/WanPai/Root/Activity/VC/ActivityListVC.xib
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -35,7 +35,7 @@
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_search" translatesAutoresizingMaskIntoConstraints="NO" id="EWk-iy-k27">
                                     <rect key="frame" x="4" y="10.666666666666671" width="17" height="17"/>
                                 </imageView>
-                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入课程名称,门店名称" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="EI5-wd-5bK" customClass="QMUITextField">
+                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="输入赛事名称" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="EI5-wd-5bK" customClass="QMUITextField">
                                     <rect key="frame" x="25" y="0.0" width="291" height="38"/>
                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                     <textInputTraits key="textInputTraits" returnKeyType="search"/>
@@ -74,10 +74,10 @@
                             </connections>
                         </button>
                         <stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" spacing="34" translatesAutoresizingMaskIntoConstraints="NO" id="C5c-IL-ihi">
-                            <rect key="frame" x="14" y="53" width="300" height="52"/>
+                            <rect key="frame" x="14" y="53" width="268" height="52"/>
                             <subviews>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rto-cM-8TA" customClass="QMUIButton">
-                                    <rect key="frame" x="0.0" y="0.0" width="86" height="52"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="79" height="52"/>
                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <state key="normal" title="举办城市" image="icon_down_arrow">
@@ -91,7 +91,7 @@
                                     </connections>
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IUE-I2-25f" customClass="QMUIButton">
-                                    <rect key="frame" x="120" y="0.0" width="86" height="52"/>
+                                    <rect key="frame" x="113" y="0.0" width="79" height="52"/>
                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <state key="normal" title="报名条件" image="icon_down_arrow">
@@ -105,7 +105,7 @@
                                     </connections>
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="93Z-rq-u2S" customClass="QMUIButton">
-                                    <rect key="frame" x="240" y="0.0" width="60" height="52"/>
+                                    <rect key="frame" x="226" y="0.0" width="42" height="52"/>
                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                     <state key="normal" title="热度" image="icon_sort_normal">
@@ -146,7 +146,7 @@
                     </userDefinedRuntimeAttributes>
                 </view>
                 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="oPv-XK-by8" customClass="BaseTableView" customModule="WanPai" customModuleProvider="target">
-                    <rect key="frame" x="0.0" y="174" width="393" height="644"/>
+                    <rect key="frame" x="0.0" y="174" width="393" height="586"/>
                     <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                 </tableView>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SAi-a4-ThB">
@@ -174,19 +174,19 @@
                 <constraint firstItem="oPv-XK-by8" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="LVH-gv-S08"/>
                 <constraint firstItem="oPv-XK-by8" firstAttribute="top" secondItem="lxS-3O-LKA" secondAttribute="bottom" constant="10" id="LhC-Y3-Mp6"/>
                 <constraint firstItem="SAi-a4-ThB" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="S11-lN-ZCo"/>
+                <constraint firstItem="SAi-a4-ThB" firstAttribute="top" secondItem="oPv-XK-by8" secondAttribute="bottom" constant="10" id="W15-SB-E9l"/>
                 <constraint firstItem="lxS-3O-LKA" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="hfP-l9-atC"/>
-                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="oPv-XK-by8" secondAttribute="bottom" id="vsz-9f-M98"/>
                 <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="SAi-a4-ThB" secondAttribute="trailing" id="wtG-nE-Ka9"/>
                 <constraint firstAttribute="trailing" secondItem="lxS-3O-LKA" secondAttribute="trailing" id="yq3-DX-WWU"/>
             </constraints>
-            <point key="canvasLocation" x="138" y="21"/>
+            <point key="canvasLocation" x="136.64122137404578" y="20.422535211267608"/>
         </view>
     </objects>
     <resources>
-        <image name="icon_down_arrow" width="20" height="14"/>
-        <image name="icon_down_arrow_s" width="20" height="14"/>
+        <image name="icon_down_arrow" width="13" height="8"/>
+        <image name="icon_down_arrow_s" width="13" height="8"/>
         <image name="icon_search" width="17" height="17"/>
-        <image name="icon_sort_normal" width="27" height="30"/>
+        <image name="icon_sort_normal" width="9" height="12"/>
         <namedColor name="FE6E0D">
             <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </namedColor>
diff --git a/WanPai/Root/Course/TCell/CourseBookingTCell.swift b/WanPai/Root/Course/TCell/CourseBookingTCell.swift
index a7808ac..9ddf432 100644
--- a/WanPai/Root/Course/TCell/CourseBookingTCell.swift
+++ b/WanPai/Root/Course/TCell/CourseBookingTCell.swift
@@ -13,7 +13,7 @@
         didSet{
             label_title.text = weeklyCourseItemModel.name
 			label_time.text = weeklyCourseItemModel.time.joined(separator: "|")
-            label_info.text = weeklyCourseItemModel.intro
+			label_info.text = String(format: "%@/会员扣%ld课时", weeklyCourseItemModel.money.currency(),weeklyCourseItemModel.num)
 
 			if weeklyCourseItemModel.type == 1{
 				btn_handle.setTitle("请假", for: .normal)
diff --git a/WanPai/Root/Course/TCell/CourseBooking_1_TCell.swift b/WanPai/Root/Course/TCell/CourseBooking_1_TCell.swift
index e6f8bc0..9711ac2 100644
--- a/WanPai/Root/Course/TCell/CourseBooking_1_TCell.swift
+++ b/WanPai/Root/Course/TCell/CourseBooking_1_TCell.swift
@@ -86,7 +86,7 @@
 			let endTime = Date.jq_StringToTimeInterval(String(format: "%@ %@", date!,b1[index]),"yyyy.MM.dd HH:mm:ss")
 			times.append(OpenDoorTimeModel(start_time: startTime, end_time: endTime))
 		}
-		let openDoorModel = OpenDoorModel(sid: studentAppointModel.siteId, rid: studentAppointModel.ids , uid: studentAppointModel.userId, time: times, type: 2)
+		let openDoorModel = OpenDoorModel(sid: [studentAppointModel.siteId], rid: studentAppointModel.ids , uid: studentAppointModel.userId, time: times, type: 2)
 		if let modelStr = openDoorModel.toJSONString(){
 			QRPreview.show(modelStr)
 		}
diff --git a/WanPai/Root/Course/VC/AddStudentVC.swift b/WanPai/Root/Course/VC/AddStudentVC.swift
index a13959b..bf74633 100644
--- a/WanPai/Root/Course/VC/AddStudentVC.swift
+++ b/WanPai/Root/Course/VC/AddStudentVC.swift
@@ -44,6 +44,11 @@
             title = "添加运动营成员"
 			if studentInfo != nil{
 				title = "编辑运动营成员"
+				tf_name.placeholder = "请输入运动营成员姓名"
+				tf_height.placeholder = "请输入运动营成员身高"
+				tf_weight.placeholder = "请输入运动营成员体重"
+				tf_phone.placeholder = "请输入运动营成员联系方式"
+				tf_idCard.placeholder = "请输入运动营成员身份证号"
 				tf_name.text = studentInfo!.stuName
 				tf_idCard.text = studentInfo!.idCard
 				tf_height.text = String(format: "%.0lf", studentInfo!.stuHeight)
@@ -56,6 +61,11 @@
 			}
         }else{
             title = "添加人员"
+			tf_name.placeholder = "请输入人员姓名"
+			tf_height.placeholder = "请输入人员身高"
+			tf_weight.placeholder = "请输入人员体重"
+			tf_phone.placeholder = "请输入人员联系方式"
+			tf_idCard.placeholder = "请输入人员身份证号"
         }
         
         let idCardView = IDCardView()
diff --git a/WanPai/Root/Course/VC/CourseDetailVC.swift b/WanPai/Root/Course/VC/CourseDetailVC.swift
index c4adcd6..5111c84 100644
--- a/WanPai/Root/Course/VC/CourseDetailVC.swift
+++ b/WanPai/Root/Course/VC/CourseDetailVC.swift
@@ -102,6 +102,7 @@
 					label_originPrice.alpha = 0
 					label_vipPrice.alpha = 0
 					view_listen.alpha = 0
+					view_listen.isHidden = true
 					label_price.isHidden = (m.list.first?.paymentPrice ?? 0) == 0
 				}
 
diff --git a/WanPai/Root/Course/VC/CourseInfoVC.xib b/WanPai/Root/Course/VC/CourseInfoVC.xib
index f6c7027..2856906 100644
--- a/WanPai/Root/Course/VC/CourseInfoVC.xib
+++ b/WanPai/Root/Course/VC/CourseInfoVC.xib
@@ -292,16 +292,13 @@
                                                                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                                     <nil key="highlightedColor"/>
                                                                 </label>
-                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rpx-zm-bba">
+                                                                <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rpx-zm-bba">
                                                                     <rect key="frame" x="37.333333333333343" y="27.333333333333314" width="56.666666666666657" height="27"/>
                                                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                                                     <state key="normal" title="续费">
                                                                         <color key="titleColor" red="0.9882352941176471" green="0.94901960784313721" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                                     </state>
-                                                                    <connections>
-                                                                        <action selector="detailAction:" destination="-1" eventType="touchUpInside" id="8x0-Dp-LPp"/>
-                                                                    </connections>
                                                                 </button>
                                                             </subviews>
                                                             <constraints>
@@ -322,16 +319,13 @@
                                                                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                                     <nil key="highlightedColor"/>
                                                                 </label>
-                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4FR-g7-qm9">
+                                                                <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4FR-g7-qm9">
                                                                     <rect key="frame" x="31" y="27.333333333333314" width="69" height="27"/>
                                                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                                                     <state key="normal" title="详情">
                                                                         <color key="titleColor" red="0.98823529409999999" green="0.94901960780000005" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                                     </state>
-                                                                    <connections>
-                                                                        <action selector="detailAction:" destination="-1" eventType="touchUpInside" id="udl-hr-etv"/>
-                                                                    </connections>
                                                                 </button>
                                                             </subviews>
                                                             <constraints>
@@ -352,16 +346,13 @@
                                                                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                                     <nil key="highlightedColor"/>
                                                                 </label>
-                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eg1-Jb-LxV">
+                                                                <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eg1-Jb-LxV">
                                                                     <rect key="frame" x="31" y="27.333333333333314" width="69" height="27"/>
                                                                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                                                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                                                     <state key="normal" title="续费">
                                                                         <color key="titleColor" red="0.98823529409999999" green="0.94901960780000005" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                                     </state>
-                                                                    <connections>
-                                                                        <action selector="detailAction:" destination="-1" eventType="touchUpInside" id="kWq-Fd-bYv"/>
-                                                                    </connections>
                                                                 </button>
                                                             </subviews>
                                                             <constraints>
@@ -375,13 +366,24 @@
                                                         </view>
                                                     </subviews>
                                                 </stackView>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="640-q8-Cdv">
+                                                    <rect key="frame" x="0.0" y="0.0" width="393" height="61"/>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <connections>
+                                                        <action selector="detailAction:" destination="-1" eventType="touchUpInside" id="szP-fb-sh5"/>
+                                                    </connections>
+                                                </button>
                                             </subviews>
                                             <color key="backgroundColor" name="FE6E0D"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="61" id="0pN-vy-q6R"/>
                                                 <constraint firstAttribute="trailing" secondItem="8jh-Rx-lWh" secondAttribute="trailing" id="3vg-YM-95J"/>
                                                 <constraint firstAttribute="bottom" secondItem="8jh-Rx-lWh" secondAttribute="bottom" id="5Gr-nb-ZpF"/>
+                                                <constraint firstItem="640-q8-Cdv" firstAttribute="leading" secondItem="wDl-8F-uHt" secondAttribute="leading" id="EcQ-m1-ofc"/>
+                                                <constraint firstAttribute="trailing" secondItem="640-q8-Cdv" secondAttribute="trailing" id="Smf-EY-i9E"/>
+                                                <constraint firstItem="640-q8-Cdv" firstAttribute="top" secondItem="wDl-8F-uHt" secondAttribute="top" id="aSI-vi-oef"/>
                                                 <constraint firstItem="8jh-Rx-lWh" firstAttribute="top" secondItem="wDl-8F-uHt" secondAttribute="top" id="ljX-c0-ETU"/>
+                                                <constraint firstAttribute="bottom" secondItem="640-q8-Cdv" secondAttribute="bottom" id="qDO-Op-ID4"/>
                                                 <constraint firstItem="8jh-Rx-lWh" firstAttribute="leading" secondItem="wDl-8F-uHt" secondAttribute="leading" id="usj-W6-dwc"/>
                                             </constraints>
                                         </view>
diff --git a/WanPai/Root/Games/GamesVC.swift b/WanPai/Root/Games/GamesVC.swift
index 251bf8f..b809990 100644
--- a/WanPai/Root/Games/GamesVC.swift
+++ b/WanPai/Root/Games/GamesVC.swift
@@ -91,5 +91,18 @@
 		let vc = GamesDataSourceVC()
 		push(vc: vc)
 	}
+
+	@IBAction func introAction(_ sender: UIButton) {
+		Services.game_intro().subscribe(onNext: {data in
+			let vc = CommonWebVC(type: .other, content: data.data)
+			vc.title = "步骤说明"
+			self.push(vc: vc)
+
+		}) { error in
+
+		}.disposed(by: disposeBag)
+
+	}
+	
 }
 
diff --git a/WanPai/Root/Games/GamesVC.xib b/WanPai/Root/Games/GamesVC.xib
index 0ea966f..1b81759 100644
--- a/WanPai/Root/Games/GamesVC.xib
+++ b/WanPai/Root/Games/GamesVC.xib
@@ -3,7 +3,7 @@
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22129"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -51,6 +51,9 @@
                             <state key="normal" title="步骤说明">
                                 <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                             </state>
+                            <connections>
+                                <action selector="introAction:" destination="-1" eventType="touchUpInside" id="hv2-Fc-4kE"/>
+                            </connections>
                         </button>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qbM-g9-Y9Z">
                             <rect key="frame" x="153.66666666666666" y="509" width="58" height="29"/>
diff --git a/WanPai/Root/Games/TCell/GamesDataSourceTCell.xib b/WanPai/Root/Games/TCell/GamesDataSourceTCell.xib
index ae46de1..c8c9c48 100644
--- a/WanPai/Root/Games/TCell/GamesDataSourceTCell.xib
+++ b/WanPai/Root/Games/TCell/GamesDataSourceTCell.xib
@@ -30,7 +30,7 @@
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游戏名称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kan-n5-x6Y">
                                                 <rect key="frame" x="0.0" y="1.333333333333333" width="49.333333333333336" height="14.333333333333336"/>
                                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
-                                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JC0-fu-Ikf">
@@ -55,7 +55,7 @@
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游戏时间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Urs-ko-JX5">
                                                 <rect key="frame" x="0.0" y="1.3333333333333366" width="49.333333333333336" height="14.333333333333336"/>
                                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
-                                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JNb-qy-xgC">
@@ -80,7 +80,7 @@
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="得分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R7d-nP-2Sb">
                                                 <rect key="frame" x="0.0" y="1.3333333333333295" width="24.666666666666668" height="14.333333333333336"/>
                                                 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
-                                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aQt-6B-IPi">
diff --git a/WanPai/Root/Games/TCell/GamesTCell.swift b/WanPai/Root/Games/TCell/GamesTCell.swift
index 4ef4d3a..21eecca 100644
--- a/WanPai/Root/Games/TCell/GamesTCell.swift
+++ b/WanPai/Root/Games/TCell/GamesTCell.swift
@@ -8,6 +8,7 @@
 import UIKit
 import RxSwift
 import RxRelay
+import JQTools
 
 class GamesTCell: UITableViewCell {
 
@@ -32,7 +33,7 @@
     }
 
 	@IBAction func intruduceAction(_ sender: UIButton) {
-		GamesIntruduceView.show()
+		GamesIntruduceView.show(url: gameListModel.video, content: gameListModel.intro)
 	}
 
 	@IBAction func launchGameAction(_ sender: UIButton) {
@@ -47,18 +48,39 @@
 							case .aliPay:
 								YYPaymentManager.shared.sendPaymentRequest(YYAlipayRequest(orderString: data.data?.orderString ?? "")) { result in
 									switch result {
-										case .success:alertSuccess(msg: "支付成功")
+										case .success:
+											let vc = PaymentResultVC(result: .success, objType: .games)
+											vc.modalPresentationStyle = .fullScreen
+											JQ_currentViewController().present(vc, animated: true)
 										case .cancel:alert(msg: "支付已取消")
-										case .failure(let error):alert(msg: error.localizedDescription)
+										case .failure(let error):
+
+											alert(msg: error.localizedDescription)
 									}
 								}
-							default:alert(msg: "启动成功")
+							default:
+								let vc = PaymentResultVC(result: .success, objType: .games)
+								vc.modalPresentationStyle = .fullScreen
+								JQ_currentViewController().present(vc, animated: true)
 						}
 					}else{
-						alert(msg: data.msg)
+						let vc = PaymentResultVC(result: .fail(data.msg), objType: .games)
+						vc.modalPresentationStyle = .fullScreen
+						JQ_currentViewController().present(vc, animated: true)
 					}
 				}) { error in
-					alert(msg: error.localizedDescription)
+					if let er = error as? NetworkRequest.NetRequestError{
+						switch er {
+							case .Other(_,let string):
+								let vc = PaymentResultVC(result: .fail(string), objType: .games)
+								vc.modalPresentationStyle = .fullScreen
+								JQ_currentViewController().present(vc, animated: true)
+							default:
+								let vc = PaymentResultVC(result: .fail("支付失败"), objType: .games)
+								vc.modalPresentationStyle = .fullScreen
+								JQ_currentViewController().present(vc, animated: true)
+						}
+					}
 				}.disposed(by: weakSelf.disposeBag)
 			}
 		}
diff --git a/WanPai/Root/Games/VC/GamesDataSourceVC.swift b/WanPai/Root/Games/VC/GamesDataSourceVC.swift
index 777513a..5d11af1 100644
--- a/WanPai/Root/Games/VC/GamesDataSourceVC.swift
+++ b/WanPai/Root/Games/VC/GamesDataSourceVC.swift
@@ -19,7 +19,7 @@
 		pageMenu.setTrackerHeight(3, cornerRadius: 1.5)
 		pageMenu.tracker.backgroundColor = Def_ThemeColor
 		pageMenu.trackerFollowingMode = .always
-		pageMenu.contentInset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14)
+		pageMenu.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
 
 			// 分割线
 		pageMenu.dividingLine.backgroundColor = .clear
@@ -28,7 +28,8 @@
 			// item
 		pageMenu.spacing = 20.0
 		pageMenu.permutationWay = .notScrollEqualWidths
-		pageMenu.setItems(["单机游戏","跨城赛","90°准度赛"], selectedItemIndex: 0)
+//		pageMenu.setItems(["单机游戏","跨城赛","90°准度赛"], selectedItemIndex: 0)
+		pageMenu.setItems(["单机游戏"], selectedItemIndex: 0)
 
 			// 字体
 		pageMenu.selectedItemTitleFont = UIFont.systemFont(ofSize: 14, weight: .semibold)
diff --git a/WanPai/Root/Games/VC/GamesListVC.swift b/WanPai/Root/Games/VC/GamesListVC.swift
index 5c0f3a1..1696915 100644
--- a/WanPai/Root/Games/VC/GamesListVC.swift
+++ b/WanPai/Root/Games/VC/GamesListVC.swift
@@ -21,7 +21,8 @@
 		pageMenu.tracker.backgroundColor = .clear
 		pageMenu.trackerFollowingMode = .always
 		pageMenu.contentInset = UIEdgeInsets(top: 0, left: 19, bottom: 0, right: 19)
-		pageMenu.setItems(["单机游戏","互联游戏"], selectedItemIndex: 0)
+//		pageMenu.setItems(["单机游戏","互联游戏"], selectedItemIndex: 0)
+		pageMenu.setItems(["单机游戏"], selectedItemIndex: 0)
 
 			// 分割线
 		pageMenu.dividingLine.backgroundColor = .clear
diff --git a/WanPai/Root/Games/View/GamesIntruduceView.swift b/WanPai/Root/Games/View/GamesIntruduceView.swift
index ee6d037..376e51e 100644
--- a/WanPai/Root/Games/View/GamesIntruduceView.swift
+++ b/WanPai/Root/Games/View/GamesIntruduceView.swift
@@ -1,19 +1,23 @@
-//
-//  GamesIntruduceView.swift
-//  WanPai
-//
-//  Created by 无故事王国 on 2023/9/15.
-//
+	//
+	//  GamesIntruduceView.swift
+	//  WanPai
+	//
+	//  Created by 无故事王国 on 2023/9/15.
+	//
 
 import UIKit
 import JQTools
+import AVKit
 
 class GamesIntruduceView: UIView,JQNibView{
 
 	@IBOutlet weak var img_profile: UIImageView!
 	@IBOutlet weak var label_content: UILabel!
 	@IBOutlet weak var view_container: UIView!
-	
+	@IBOutlet weak var btn_play: UIButton!
+
+	private var videoUrl:String?
+
 	override func awakeFromNib() {
 		super.awakeFromNib()
 		view_container.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
@@ -21,27 +25,62 @@
 		layoutIfNeeded()
 	}
 
-	static func show(){
+	static func show(url:String,content:String){
 		let intruduceView = GamesIntruduceView.jq_loadNibView()
 		intruduceView.frame = sceneDelegate?.window?.frame ?? .zero
 		sceneDelegate?.window?.addSubview(intruduceView)
+		intruduceView.label_content.text = content
 
-		UIView.animate(withDuration: 0.5) {
-			intruduceView.alpha = 1
-			intruduceView.view_container.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
-		} completion: { _ in
+		if url.lowercased().contains("jpg") || url.lowercased().contains("png") || url.lowercased().contains("jpeg"){
+			intruduceView.img_profile.sd_setImage(with: URL(string: url))
+			intruduceView.btn_play.isHidden = true
+		}else{
+			intruduceView.btn_play.isHidden = false
+			intruduceView.videoUrl = url
+			guard !url.isEmpty else {return}
+			guard let Url = URL(string: url) else { return }
+			DispatchQueue.global(qos: .utility).async {
+				do {
+					let asset = AVURLAsset.init(url:  Url)
+					let gen = AVAssetImageGenerator.init(asset: asset)
+					gen.appliesPreferredTrackTransform = true
+					let time = CMTimeMakeWithSeconds(0.0, preferredTimescale: 1)
+					var actualTime : CMTime = CMTimeMakeWithSeconds(0, preferredTimescale: 0)
+					let image = try gen.copyCGImage(at: time, actualTime: &actualTime)
 
+					DispatchQueue.main.async {
+						intruduceView.img_profile.image = UIImage.init(cgImage: image)
+					}
+				} catch  {
+					print("错误")
+				}
+			}
 		}
-	}
 
+			UIView.animate(withDuration: 0.5) {
+				intruduceView.alpha = 1
+				intruduceView.view_container.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
+			} completion: { _ in
 
-	@IBAction func closeAction(_ sender: UIButton) {
-		UIView.animate(withDuration: 0.5) {
-			self.alpha = 0
-			self.view_container.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
-		} completion: { _ in
-			self.removeFromSuperview()
+			}
 		}
+
+		@IBAction func playAction(_ sender: UIButton) {
+			let playerVC = AVPlayerViewController()
+			playerVC.allowsPictureInPicturePlayback = false
+			playerVC.player = AVPlayer(url: URL(string: videoUrl)!)
+			playerVC.player?.play()
+
+			JQ_currentViewController().present(playerVC, animated: true)
+		}
+
+		@IBAction func closeAction(_ sender: UIButton) {
+			UIView.animate(withDuration: 0.5) {
+				self.alpha = 0
+				self.view_container.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
+			} completion: { _ in
+				self.removeFromSuperview()
+			}
+		}
+
 	}
-	
-}
diff --git a/WanPai/Root/Games/View/GamesIntruduceView.xib b/WanPai/Root/Games/View/GamesIntruduceView.xib
index efd1e11..aa5f542 100644
--- a/WanPai/Root/Games/View/GamesIntruduceView.xib
+++ b/WanPai/Root/Games/View/GamesIntruduceView.xib
@@ -3,7 +3,7 @@
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22129"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -37,9 +37,21 @@
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gvg-hN-QSP">
                             <rect key="frame" x="0.0" y="55.000000000000014" width="363" height="181.33333333333337"/>
                             <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Pjc-TT-Gr7">
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Pjc-TT-Gr7">
                                     <rect key="frame" x="0.0" y="0.0" width="363" height="181.33333333333334"/>
                                 </imageView>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RpO-dN-soW">
+                                    <rect key="frame" x="151.66666666666666" y="60.666666666666686" width="60" height="60"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="60" id="5IN-KV-uZ0"/>
+                                        <constraint firstAttribute="width" constant="60" id="AJb-Hu-1ik"/>
+                                    </constraints>
+                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                    <state key="normal" image="btn_play"/>
+                                    <connections>
+                                        <action selector="playAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="BQn-1T-GsT"/>
+                                    </connections>
+                                </button>
                             </subviews>
                             <color key="backgroundColor" systemColor="underPageBackgroundColor"/>
                             <constraints>
@@ -47,6 +59,8 @@
                                 <constraint firstAttribute="bottom" secondItem="Pjc-TT-Gr7" secondAttribute="bottom" id="8aj-ey-XLF"/>
                                 <constraint firstItem="Pjc-TT-Gr7" firstAttribute="leading" secondItem="gvg-hN-QSP" secondAttribute="leading" id="CHb-7H-3Zx"/>
                                 <constraint firstAttribute="width" secondItem="gvg-hN-QSP" secondAttribute="height" multiplier="1:0.5" id="Emh-7O-Byi"/>
+                                <constraint firstItem="RpO-dN-soW" firstAttribute="centerY" secondItem="Pjc-TT-Gr7" secondAttribute="centerY" id="VEz-N3-izc"/>
+                                <constraint firstItem="RpO-dN-soW" firstAttribute="centerX" secondItem="Pjc-TT-Gr7" secondAttribute="centerX" id="hbA-j4-VOb"/>
                                 <constraint firstItem="Pjc-TT-Gr7" firstAttribute="top" secondItem="gvg-hN-QSP" secondAttribute="top" id="jRW-hh-xZ9"/>
                             </constraints>
                         </view>
@@ -87,6 +101,7 @@
                 <constraint firstAttribute="trailing" secondItem="Ija-B4-tPM" secondAttribute="trailing" constant="15" id="xOX-aW-FZ1"/>
             </constraints>
             <connections>
+                <outlet property="btn_play" destination="RpO-dN-soW" id="2o8-y1-T6q"/>
                 <outlet property="img_profile" destination="Pjc-TT-Gr7" id="ZGo-oN-xUb"/>
                 <outlet property="label_content" destination="m5u-Hy-qXS" id="Zei-Sj-yo8"/>
                 <outlet property="view_container" destination="Ija-B4-tPM" id="TJ3-LP-M4s"/>
@@ -96,6 +111,7 @@
     </objects>
     <resources>
         <image name="btn_close_2" width="20" height="20"/>
+        <image name="btn_play" width="40" height="40"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>
diff --git a/WanPai/Root/Games/View/GamesPayView.swift b/WanPai/Root/Games/View/GamesPayView.swift
index 8c9ff6e..9d6dbd4 100644
--- a/WanPai/Root/Games/View/GamesPayView.swift
+++ b/WanPai/Root/Games/View/GamesPayView.swift
@@ -38,18 +38,18 @@
 		gamesPayView.integral = integral
 		gamesPayView.needPay = needPay
 
-		if price != 0{
+		if price != 0 && price != 0{
 			gamesPayView.label_price.isHidden = false
 			gamesPayView.label_price.attributedText	= AttributedStringbuilder.build().add(string: "游玩价格:", withFont: UIFont.systemFont(ofSize: 16, weight: .medium), withColor: .black.withAlphaComponent(0.8)).add(string: price.currency(), withFont: UIFont.systemFont(ofSize: 16, weight: .medium), withColor: Def_ThemeColor).mutableAttributedString
 		}
 
 
-		if coin != nil{
+		if coin != nil && coin != 0{
 			gamesPayView.label_coin.isHidden = false
 			gamesPayView.label_coin.attributedText	= AttributedStringbuilder.build().add(string: "玩湃币:", withFont: UIFont.systemFont(ofSize: 16, weight: .medium), withColor: .black.withAlphaComponent(0.8)).add(string: "\(coin!)币", withFont: UIFont.systemFont(ofSize: 16, weight: .medium), withColor: Def_ThemeColor).mutableAttributedString
 		}
 
-		if integral != nil{
+		if integral != nil && integral != 0{
 			gamesPayView.label_integral.isHidden = false
 			gamesPayView.label_integral.attributedText	= AttributedStringbuilder.build().add(string: "积分:", withFont: UIFont.systemFont(ofSize: 16, weight: .medium), withColor: .black.withAlphaComponent(0.8)).add(string: "\(integral!)", withFont: UIFont.systemFont(ofSize: 16, weight: .medium), withColor: Def_ThemeColor).mutableAttributedString
 		}
diff --git a/WanPai/Root/Games/View/GamesPayView.xib b/WanPai/Root/Games/View/GamesPayView.xib
index 6ef4eec..b04e235 100644
--- a/WanPai/Root/Games/View/GamesPayView.xib
+++ b/WanPai/Root/Games/View/GamesPayView.xib
@@ -17,32 +17,47 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NhD-L8-tag">
-                    <rect key="frame" x="45" y="286.66666666666669" width="303" height="304.00000000000006"/>
+                    <rect key="frame" x="45" y="288" width="303" height="301"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="支付" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Rrk-nd-S2C">
-                            <rect key="frame" x="133" y="24" width="37" height="21.666666666666671"/>
+                            <rect key="frame" x="133" y="24" width="37" height="18"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="18" id="lSb-Vu-Tsm"/>
+                            </constraints>
                             <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
-                            <nil key="textColor"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="说明:支付后可进行游戏" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7bY-nF-3cy">
-                            <rect key="frame" x="10" y="74.666666666666629" width="283" height="19.333333333333329"/>
+                            <rect key="frame" x="10" y="71" width="283" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="P8A-bW-CQg"/>
+                            </constraints>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
-                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
+                            <color key="textColor" red="0.3529411764705882" green="0.3529411764705882" blue="0.3529411764705882" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ClC-PT-9qa">
-                            <rect key="frame" x="161.66666666666666" y="241.99999999999994" width="121.33333333333334" height="40"/>
+                            <rect key="frame" x="161.66666666666666" y="239" width="121.33333333333334" height="40"/>
                             <color key="backgroundColor" name="FE6E0D"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="40" id="8av-Fz-RtD"/>
+                            </constraints>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <state key="normal" title="去支付"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
+                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                    <real key="value" value="20"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
                             <connections>
                                 <action selector="payAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="IWA-hK-358"/>
                             </connections>
                         </button>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YwI-CF-a9z">
-                            <rect key="frame" x="20.000000000000007" y="241.99999999999994" width="121.66666666666669" height="40"/>
+                            <rect key="frame" x="20.000000000000007" y="239" width="121.66666666666669" height="40"/>
                             <color key="backgroundColor" red="0.75294117647058822" green="0.75294117647058822" blue="0.75294117647058822" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="40" id="sib-43-x2L"/>
@@ -50,12 +65,17 @@
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <state key="normal" title="关闭"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
+                                    <real key="value" value="20"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
                             <connections>
                                 <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Wld-yq-U5m"/>
                             </connections>
                         </button>
                         <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="14" translatesAutoresizingMaskIntoConstraints="NO" id="lN2-O5-10B">
-                            <rect key="frame" x="103.33333333333334" y="115" width="96.333333333333343" height="88"/>
+                            <rect key="frame" x="103.33333333333334" y="112" width="96.333333333333343" height="88"/>
                             <subviews>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游玩价格:--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Agf-Eq-DTG">
                                     <rect key="frame" x="0.0" y="0.0" width="96.333333333333329" height="20"/>
diff --git a/WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift b/WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift
index b6a6501..1203cb4 100644
--- a/WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift
+++ b/WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift
@@ -35,7 +35,13 @@
     
     
     @IBAction func joinAction(_ sender: QMUIButton) {
-		PaymentView.show(money: (ali:199,wx:199,coin:nil,course:nil,integral:nil)) { type in
+
+		var price = 0.01
+#if !DEBUG
+		price = 199
+#endif
+
+		PaymentView.show(money: (ali:price,wx:price,coin:nil,course:nil,integral:nil)) { type in
             Services.enrollMember(paytype: type).subscribe(onNext: {data in
                 switch type {
                     case .aliPay:
diff --git a/WanPai/Root/Other/TCell/Common_1_TCell.swift b/WanPai/Root/Other/TCell/Common_1_TCell.swift
index a499644..0a44f18 100644
--- a/WanPai/Root/Other/TCell/Common_1_TCell.swift
+++ b/WanPai/Root/Other/TCell/Common_1_TCell.swift
@@ -19,6 +19,7 @@
     override var isSelected: Bool{
         didSet{
             img_select.image = isSelected ? UIImage(named: "btn_choose_s"):UIImage(named: "btn_choose")
+			label_content.textColor = isSelected ? Def_ThemeColor : .black.withAlphaComponent(0.56)
         }
     }
 }
diff --git a/WanPai/Root/Other/VC/PaymentResultVC.swift b/WanPai/Root/Other/VC/PaymentResultVC.swift
index 05af06c..81ce035 100644
--- a/WanPai/Root/Other/VC/PaymentResultVC.swift
+++ b/WanPai/Root/Other/VC/PaymentResultVC.swift
@@ -137,17 +137,19 @@
 				collectionView.isHidden =  true
 				switch result {
 					case .fail(let str):
+						label_title.text = "支付失败"
 						btn_again.setTitle("再次支付", for: .normal)
 						btn_back.setTitle("返回", for: .normal)
 						img_paymentState.image = UIImage(named: "icon_fail")
 						label_content.text = str
 					case .success:
+						label_title.text = "支付成功"
 						btn_again.isHidden = true
 						btn_back.setTitleColor(.white, for: .normal)
 						btn_back.backgroundColor = Def_ThemeColor
-						btn_back.setTitle("选择游戏", for: .normal)
+						btn_back.setTitle("我的数据", for: .normal)
 						img_paymentState.image = UIImage(named: "icon_success")
-						label_content.text = "支付成功,请选择游戏!"
+						label_content.text = "支付成功"
 					case .none:break
 				}
 
@@ -189,7 +191,9 @@
 		if let handleVC{
 			handleVC.navigationController?.popToRootViewController(animated: true)
 		}
-		dismiss(animated: true)
+		dismiss(animated: true) {
+			JQ_currentViewController().jq_push(vc: GamesDataSourceVC())
+		}
     }
 }
 
diff --git a/WanPai/Root/Other/View/StoresChooseView.swift b/WanPai/Root/Other/View/StoresChooseView.swift
index 9c651bf..909cdde 100644
--- a/WanPai/Root/Other/View/StoresChooseView.swift
+++ b/WanPai/Root/Other/View/StoresChooseView.swift
@@ -51,7 +51,7 @@
         }
     }
 
-    private func getData(_ provinceId:String? = nil){
+    private func getData(_ provinceId:Int? = nil){
         Services.queryProvinceAndCity(pcode: provinceId).subscribe(onNext: { [weak self] data in
             guard let weakSelf = self else { return }
             if provinceId == nil{
@@ -62,7 +62,7 @@
         }).disposed(by: disposeBag)
     }
 
-    private func getStore(_ cityCode:String){
+    private func getStore(_ cityCode:Int){
         Services.queryStoreAtCity(cityCode: cityCode).subscribe(onNext: { [weak self] data in
             guard let weakSelf = self else { return }
             weakSelf.storesModel = data.data ?? []
diff --git a/WanPai/Root/Other/View/StudentChooseView.swift b/WanPai/Root/Other/View/StudentChooseView.swift
index 302d59c..25ec2d0 100644
--- a/WanPai/Root/Other/View/StudentChooseView.swift
+++ b/WanPai/Root/Other/View/StudentChooseView.swift
@@ -68,10 +68,12 @@
         }
         if itemType == .course{
             studentChooseView.tableView.register(UINib(nibName: "StudentInfoTCell", bundle: nil), forCellReuseIdentifier: "_StudentInfoTCell")
+			studentChooseView.btn_add.setTitle("添加运动营成员", for: .normal)
         }else if itemType == .activity{
             studentChooseView.tableView.register(UINib(nibName: "StudentInfo_2_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_2_TCell")
+			studentChooseView.btn_add.setTitle("添加人员", for: .normal)
         }
-        
+
         studentChooseView.frame = sceneDelegate?.window?.frame ?? .zero
         studentChooseView.itemType = itemType
         studentChooseView.clickClouse = clickClouse
diff --git a/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift b/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift
index 826c685..3e728de 100644
--- a/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift
+++ b/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.swift
@@ -10,15 +10,19 @@
 import Photos
 import QMUIKit
 
-class SearchStoreDetailFeedbackVC: BaseVC {
+class SearchStoreDetailFeedbackVC: BaseVC, RatingBarDelegate {
+	func ratingDidChange(ratingBar: RatingBar, rating: CGFloat) {
+		score = rating.double
+	}
 
-    @IBOutlet weak var stackView: UIStackView!
+	@IBOutlet weak var view_start: RatingBar!
     @IBOutlet weak var collectionView: UICollectionView!
     @IBOutlet weak var textView: QMUITextView!
     private var id:Int!
     private var items = NSMutableArray()
     private var imgs = [UIImage]()
     private var imgUrls = [String]()
+	private var score = 0.0
 
     init(id:Int) {
         super.init(nibName: nil, bundle: nil)
@@ -37,18 +41,11 @@
         collectionView.register(UINib(nibName: "UploadImgCCell", bundle: nil), forCellWithReuseIdentifier: "_UploadImgCCell")
         items.add("Empty")
         collectionView.reloadData()
-    }
-
-    @IBAction func startAction(_ sender: UIButton) {
-        let tag = sender.tag
-
-        for v in (stackView.arrangedSubviews as! [UIButton]){
-            v.isSelected = v.tag <= tag
-        }
+		view_start.delegate = self
     }
 
     @IBAction func addAction(_ sender: UIButton) {
-        let score = ((stackView.arrangedSubviews as! [UIButton]).filter({$0.isSelected}).last?.tag ?? 9) - 9
+
         guard score != 0 else {alertError(msg: "请先为门店评分");return}
 
         guard !textView.text.isEmpty else {
@@ -59,17 +56,17 @@
             showHUD("图片上传中")
             imgs.uploadImgToService(needCompress: true).subscribe { texts in
                 self.imgUrls = texts
-                self.uploadData(score: score)
+				self.uploadData(score: self.score)
             } onError: { error in
                 alert(msg: error.localizedDescription)
             }.disposed(by: disposeBag)
         }else{
-            self.uploadData(score: score)
+			self.uploadData(score: self.score)
         }
     }
 
-    private func uploadData(score:Int){
-        Services.evaluationStore(id: id, content: textView.text, imgs: imgUrls.joined(separator: ","), score: score).subscribe(onNext: {data in
+    private func uploadData(score:Double){
+		Services.evaluationStore(id: id, content: textView.text, imgs: imgUrls.joined(separator: ","), score: score).subscribe(onNext: {data in
             alertSuccess(msg: "评价成功")
             DispatchQueue.main.asyncAfter(deadline: .now()+1) {
                 self.navigationController?.popViewController(animated: true)
diff --git a/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib b/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib
index 9785abe..f71b651 100644
--- a/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib
+++ b/WanPai/Root/Search/VC/SearchStoreDetailFeedbackVC.xib
@@ -13,9 +13,9 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SearchStoreDetailFeedbackVC" customModule="WanPai" customModuleProvider="target">
             <connections>
                 <outlet property="collectionView" destination="Bdf-BC-sQU" id="6At-sV-EKq"/>
-                <outlet property="stackView" destination="eVR-tY-BNf" id="bu9-4c-oDW"/>
                 <outlet property="textView" destination="DZE-7p-bin" id="rKH-5k-SVF"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+                <outlet property="view_start" destination="QB9-mQ-hr0" id="Hva-SE-AVB"/>
             </connections>
         </placeholder>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -29,56 +29,6 @@
                     <nil key="textColor"/>
                     <nil key="highlightedColor"/>
                 </label>
-                <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="eVR-tY-BNf">
-                    <rect key="frame" x="88.666666666666686" y="76.666666666666671" width="110" height="22"/>
-                    <subviews>
-                        <button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UoP-cT-TEF">
-                            <rect key="frame" x="0.0" y="0.0" width="18" height="22"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" image="btn_start_u"/>
-                            <state key="selected" image="btn_start"/>
-                            <connections>
-                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="Jr1-xo-EUj"/>
-                            </connections>
-                        </button>
-                        <button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GFD-em-bLY">
-                            <rect key="frame" x="23" y="0.0" width="18" height="22"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" image="btn_start_u"/>
-                            <state key="selected" image="btn_start"/>
-                            <connections>
-                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="RNK-J1-NbV"/>
-                            </connections>
-                        </button>
-                        <button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zc9-Uc-1xK">
-                            <rect key="frame" x="45.999999999999986" y="0.0" width="18" height="22"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" image="btn_start_u"/>
-                            <state key="selected" image="btn_start"/>
-                            <connections>
-                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="yew-Vq-oWc"/>
-                            </connections>
-                        </button>
-                        <button opaque="NO" tag="13" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yHm-w0-pr4">
-                            <rect key="frame" x="68.999999999999986" y="0.0" width="18" height="22"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" image="btn_start_u"/>
-                            <state key="selected" image="btn_start"/>
-                            <connections>
-                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="6jh-L5-DD2"/>
-                            </connections>
-                        </button>
-                        <button opaque="NO" tag="14" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ub1-EE-3Ax">
-                            <rect key="frame" x="91.999999999999986" y="0.0" width="18" height="22"/>
-                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                            <state key="normal" image="btn_start_u"/>
-                            <state key="selected" image="btn_start"/>
-                            <connections>
-                                <action selector="startAction:" destination="-1" eventType="touchUpInside" id="gRh-95-SGw"/>
-                            </connections>
-                        </button>
-                    </subviews>
-                </stackView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评价内容:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4n5-rh-U3q">
                     <rect key="frame" x="14" y="114" width="71.666666666666671" height="17"/>
                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
@@ -163,6 +113,27 @@
                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.51000000000000001" colorSpace="custom" customColorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QB9-mQ-hr0" customClass="RatingBar" customModule="WanPai" customModuleProvider="target">
+                    <rect key="frame" x="88.666666666666686" y="78.666666666666671" width="110" height="18"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="110" id="M8E-1I-8xS"/>
+                        <constraint firstAttribute="height" constant="18" id="OFm-6Q-geJ"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="ratingMax">
+                            <real key="value" value="5"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="number" keyPath="rating">
+                            <real key="value" value="0.0"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="canAnimation" value="YES"/>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="incomplete" value="YES"/>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="isIndicator" value="NO"/>
+                        <userDefinedRuntimeAttribute type="image" keyPath="imageLight" value="btn_start"/>
+                        <userDefinedRuntimeAttribute type="image" keyPath="imageDark" value="btn_start_u"/>
+                    </userDefinedRuntimeAttributes>
+                </view>
             </subviews>
             <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -173,6 +144,7 @@
                 <constraint firstItem="Bdf-BC-sQU" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="FQn-ws-DNf"/>
                 <constraint firstItem="aSi-ik-NOd" firstAttribute="centerY" secondItem="aOL-oD-g8G" secondAttribute="centerY" id="GHJ-Ej-MGt"/>
                 <constraint firstItem="Bdf-BC-sQU" firstAttribute="top" secondItem="aOL-oD-g8G" secondAttribute="bottom" constant="6" id="MOi-6C-9JU"/>
+                <constraint firstItem="QB9-mQ-hr0" firstAttribute="centerY" secondItem="JaJ-JT-dcZ" secondAttribute="centerY" id="Mdc-Xv-PJu"/>
                 <constraint firstItem="JaJ-JT-dcZ" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="PnD-Zo-hhG"/>
                 <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="h50-S0-pKG" secondAttribute="trailing" constant="100" id="S7d-6d-nzt"/>
                 <constraint firstItem="aOL-oD-g8G" firstAttribute="top" secondItem="oDM-kN-KPX" secondAttribute="bottom" constant="22" id="XXj-4r-mQ1"/>
@@ -180,12 +152,11 @@
                 <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="h50-S0-pKG" secondAttribute="bottom" constant="23" id="cUd-i8-fBz"/>
                 <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="Bdf-BC-sQU" secondAttribute="trailing" constant="14" id="eYU-ax-TcF"/>
                 <constraint firstItem="JaJ-JT-dcZ" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" constant="20" id="h3p-DZ-GDN"/>
-                <constraint firstItem="eVR-tY-BNf" firstAttribute="leading" secondItem="JaJ-JT-dcZ" secondAttribute="trailing" constant="3" id="ksM-IT-LLv"/>
+                <constraint firstItem="QB9-mQ-hr0" firstAttribute="leading" secondItem="JaJ-JT-dcZ" secondAttribute="trailing" constant="3" id="hKo-jk-aqM"/>
                 <constraint firstItem="aOL-oD-g8G" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="m1D-88-DgM"/>
                 <constraint firstItem="4n5-rh-U3q" firstAttribute="top" secondItem="JaJ-JT-dcZ" secondAttribute="bottom" constant="18" id="pJa-s8-fh0"/>
                 <constraint firstItem="oDM-kN-KPX" firstAttribute="top" secondItem="4n5-rh-U3q" secondAttribute="bottom" constant="12" id="rHe-pF-tKV"/>
                 <constraint firstItem="4n5-rh-U3q" firstAttribute="leading" secondItem="JaJ-JT-dcZ" secondAttribute="leading" id="usU-rf-zql"/>
-                <constraint firstItem="eVR-tY-BNf" firstAttribute="centerY" secondItem="JaJ-JT-dcZ" secondAttribute="centerY" id="w8g-vQ-ggi"/>
             </constraints>
             <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
         </view>
diff --git a/WanPai/Root/Search/VC/SearchStoreDetailVC.swift b/WanPai/Root/Search/VC/SearchStoreDetailVC.swift
index cb4f9cc..0778383 100644
--- a/WanPai/Root/Search/VC/SearchStoreDetailVC.swift
+++ b/WanPai/Root/Search/VC/SearchStoreDetailVC.swift
@@ -15,7 +15,16 @@
         didSet{
             if let m = searchStoreDetailModel{
                 headView.searchStoreDetailModel = m
-                tableView.reloadData()
+
+				DispatchQueue.main.async {
+					self.headView.cons_labelHeiCons.constant = String.jq_getHeight(text: m.storeInfo, width: self.view.width - 100, font: 14)
+					self.headView.layoutIfNeeded()
+					self.headView.layoutSubviews()
+					self.tableView.reloadData()
+					let height = self.headView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
+					self.headView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: height)
+					self.tableView.tableHeaderView = self.headView
+				}
             }
         }
     }
@@ -45,18 +54,26 @@
         super.viewDidLoad()
         title = "门店详情"
 
-        DispatchQueue.main.async {
-            self.headView.layoutIfNeeded()
-            self.headView.layoutSubviews()
-            let height = self.headView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
-            self.headView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: height)
-            self.tableView.tableHeaderView = self.headView
-        }
+//        DispatchQueue.main.async {
+//            self.headView.layoutIfNeeded()
+//            self.headView.layoutSubviews()
+//            let height = self.headView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
+//            self.headView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: height)
+//            self.tableView.tableHeaderView = self.headView
+//        }
 
         Services.exploreStoreDetail(storeId: id).subscribe(onNext: {[weak self] data in
             if let model = data.data{
                 self?.searchStoreDetailModel = model
 
+//				DispatchQueue.main.async {
+//					self?.headView.layoutIfNeeded()
+//					self?.headView.layoutSubviews()
+//					let height = self!.headView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
+//					self?.headView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: height)
+//					self?.tableView.tableHeaderView = self!.headView
+//				}
+
 //					DispatchQueue.main.asyncAfter(deadline: .now()+1.5){
 //						self?.tableView.tableHeaderView?.height = 500
 //				}
diff --git a/WanPai/Root/Search/View/SearchStoreDetailHeadView.swift b/WanPai/Root/Search/View/SearchStoreDetailHeadView.swift
index 7a47bea..6737306 100644
--- a/WanPai/Root/Search/View/SearchStoreDetailHeadView.swift
+++ b/WanPai/Root/Search/View/SearchStoreDetailHeadView.swift
@@ -35,7 +35,8 @@
     @IBOutlet weak var btn_location: QMUIButton!
     @IBOutlet weak var btn_phone: QMUIButton!
     @IBOutlet weak var view_banner: UIView!
-
+	@IBOutlet weak var cons_labelHeiCons: NSLayoutConstraint!
+	
     private lazy var bannerView:CommonBannerView = {
         let banner = CommonBannerView()
         return banner
@@ -46,21 +47,16 @@
         btn_feedback.spacingBetweenImageAndTitle = 3
         btn_location.spacingBetweenImageAndTitle = 5
         btn_phone.spacingBetweenImageAndTitle = 4
-
-
     }
 
-    
     @IBAction func feedbackAction(_ sender: UIButton) {
         let vc = SearchStoreDetailFeedbackVC(id: searchStoreDetailModel.storeId)
         JQ_currentViewController().jq_push(vc: vc)
     }
 
-
     @IBAction func navAction(_ sender: QMUIButton) {
         JQ_MapNavigationTool.startNav(CLLocationCoordinate2D(latitude: searchStoreDetailModel.lat, longitude: searchStoreDetailModel.lon), distanceName: searchStoreDetailModel.storeAddress, scheme: "weparklife")
     }
-
 
     @IBAction func phoneAction(_ sender: QMUIButton) {
         UIApplication.shared.open(URL(string: "tel://\(searchStoreDetailModel.phone)")!)
diff --git a/WanPai/Root/Search/View/SearchStoreDetailHeadView.xib b/WanPai/Root/Search/View/SearchStoreDetailHeadView.xib
index 21b3f18..d74a072 100644
--- a/WanPai/Root/Search/View/SearchStoreDetailHeadView.xib
+++ b/WanPai/Root/Search/View/SearchStoreDetailHeadView.xib
@@ -12,7 +12,7 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="SearchStoreDetailHeadView" customModule="WanPai" customModuleProvider="target">
-            <rect key="frame" x="0.0" y="0.0" width="393" height="740"/>
+            <rect key="frame" x="0.0" y="0.0" width="393" height="398"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fnG-1M-O7B">
@@ -32,7 +32,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Qij-Fp-PqX">
-                    <rect key="frame" x="319" y="230" width="60" height="98"/>
+                    <rect key="frame" x="319" y="234" width="60" height="98"/>
                     <subviews>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mrd-r7-x2d" customClass="QMUIButton">
                             <rect key="frame" x="0.0" y="0.0" width="60" height="26"/>
@@ -151,13 +151,16 @@
                     </constraints>
                 </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WSq-v8-MBS">
-                    <rect key="frame" x="14" y="357.66666666666674" width="365" height="367.33333333333326"/>
+                    <rect key="frame" x="14" y="357.66666666666669" width="365" height="25.333333333333314"/>
+                    <constraints>
+                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="VAx-XQ-pas"/>
+                    </constraints>
                     <fontDescription key="fontDescription" type="system" pointSize="14"/>
                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F7r-jD-foF">
-                    <rect key="frame" x="13" y="739" width="380" height="1"/>
+                    <rect key="frame" x="13" y="397" width="380" height="1"/>
                     <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="1" id="Vvf-kb-2Im"/>
@@ -188,24 +191,25 @@
                 <constraint firstItem="BLD-qG-SkK" firstAttribute="top" secondItem="fnG-1M-O7B" secondAttribute="bottom" constant="14" id="f0m-Id-Egu"/>
                 <constraint firstItem="oRn-Uj-bSc" firstAttribute="top" secondItem="yAu-Fs-X4T" secondAttribute="bottom" constant="25" id="fMP-VR-7mi"/>
                 <constraint firstItem="fnG-1M-O7B" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="jV7-9G-KFS"/>
-                <constraint firstItem="Qij-Fp-PqX" firstAttribute="top" secondItem="fnG-1M-O7B" secondAttribute="bottom" constant="10" id="lyl-OX-49M"/>
                 <constraint firstAttribute="trailing" secondItem="Qij-Fp-PqX" secondAttribute="trailing" constant="14" id="oBZ-zg-7Bo"/>
                 <constraint firstItem="fnG-1M-O7B" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="obN-m7-bch"/>
+                <constraint firstItem="Qij-Fp-PqX" firstAttribute="top" secondItem="BLD-qG-SkK" secondAttribute="top" id="tbg-bl-dth"/>
                 <constraint firstItem="yAu-Fs-X4T" firstAttribute="leading" secondItem="26L-GM-v2t" secondAttribute="trailing" constant="5" id="y8r-SN-pQA"/>
-                <constraint firstItem="F7r-jD-foF" firstAttribute="top" secondItem="WSq-v8-MBS" secondAttribute="bottom" priority="750" constant="14" id="z9Q-xj-dc3"/>
+                <constraint firstItem="F7r-jD-foF" firstAttribute="top" secondItem="WSq-v8-MBS" secondAttribute="bottom" constant="14" id="z9Q-xj-dc3"/>
             </constraints>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
                 <outlet property="btn_feedback" destination="Mrd-r7-x2d" id="EvO-B6-le4"/>
                 <outlet property="btn_location" destination="nPR-en-u9G" id="APm-w8-Hil"/>
                 <outlet property="btn_phone" destination="zjV-pe-qxa" id="YWR-WN-RAW"/>
+                <outlet property="cons_labelHeiCons" destination="VAx-XQ-pas" id="vUr-As-Yx7"/>
                 <outlet property="label_address" destination="yAu-Fs-X4T" id="l1C-mA-o7N"/>
                 <outlet property="label_info" destination="WSq-v8-MBS" id="3vg-Bx-VmW"/>
                 <outlet property="label_title" destination="BLD-qG-SkK" id="bqE-QF-ran"/>
                 <outlet property="label_workTime" destination="YGq-0Z-lO5" id="sCn-jn-Yd0"/>
                 <outlet property="view_banner" destination="fnG-1M-O7B" id="sVO-t7-A10"/>
             </connections>
-            <point key="canvasLocation" x="61.832061068702288" y="11.267605633802818"/>
+            <point key="canvasLocation" x="61.832061068702288" y="-109.1549295774648"/>
         </view>
     </objects>
     <resources>
diff --git a/WanPai/Root/Welfare/TCell/BillInfoTCell.swift b/WanPai/Root/Welfare/TCell/BillInfoTCell.swift
index 842dd46..f4a2775 100644
--- a/WanPai/Root/Welfare/TCell/BillInfoTCell.swift
+++ b/WanPai/Root/Welfare/TCell/BillInfoTCell.swift
@@ -16,10 +16,10 @@
             label_datetime.text = billingModel.consumeTime
             label_price.text = billingModel.consumeAmount.currency()
 			if billingModel.detailsType == .positive{
-                label_price.text = "+\(billingModel.consumeAmount.jq_formatFloat)"
+                label_price.text = billingModel.consumeAmount.jq_formatFloat
                 label_price.textColor = UIColor(hexStr: "#2AA60B")
             }else{
-                label_price.text = "\(billingModel.consumeAmount.jq_formatFloat)"
+                label_price.text = billingModel.consumeAmount.jq_formatFloat
                 label_price.textColor = UIColor(hexStr: "#FD2A02")
             }
         }
diff --git a/WanPai/Root/Welfare/TCell/ExchangeRecordTCell.swift b/WanPai/Root/Welfare/TCell/ExchangeRecordTCell.swift
index 881f528..3b9ea79 100644
--- a/WanPai/Root/Welfare/TCell/ExchangeRecordTCell.swift
+++ b/WanPai/Root/Welfare/TCell/ExchangeRecordTCell.swift
@@ -52,6 +52,12 @@
 
 
 	@IBAction func QRCodeAction(_ sender: UIButton) {
-		QRPreview.show("test")
+		var time = OpenDoorTimeModel()
+		time.start_time = Date.jq_StringToTimeInterval((recordsModel.startTime + " 00:00"), "yyyy-MM-dd HH:mm")
+		time.end_time = Date.jq_StringToTimeInterval((recordsModel.endTime + " 00:00"), "yyyy-MM-dd HH:mm")
+		let model = OpenDoorModel(sid: recordsModel.sid, rid: recordsModel.rid, uid: recordsModel.userId, time: [time], type: 2)
+		if let string = model.toJSONString(){
+			QRPreview.show(string)
+		}
 	}
 }
diff --git a/WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift b/WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift
index 53d30e7..a28cdce 100644
--- a/WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift
+++ b/WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift
@@ -236,12 +236,21 @@
 
 			if weakSelf.exchangeGoodsModel!.exchangeType == .coin{
 				Services.exchangeOperation(exchangeType: .coin, goodsId: weakSelf.exchangeGoodsModel!.goodId, goodsType: weakSelf.exchangeGoodsModel!.goodType, num: num, payType: nil, stuIds: weakSelf.studentModels.map({"\($0.id)"}).joined(separator: ","),storeId: weakSelf.selectStoreModel?.storeId).subscribe(onNext: {[weak self] data in
-					if data.code == 200{
-						CommonAlertView.show(title: "提示", content: "兑换成功!") {[weak self] _ in
-							self?.exchangeSuccessUI()
+					CommonAlertView.show(title: "提示", content: "兑换成功!") {[weak self] _ in
+						self?.exchangeSuccessUI()
+					}
+				},onError: { error in
+					if let er = error as? NetworkRequest.NetRequestError{
+						switch er {
+							case .Other(_,let string):
+								CommonAlertView.show(title: "兑换商品", content: string) { _ in
+
+								}
+							default:
+								CommonAlertView.show(title: "兑换商品", content: "兑换失败") { _ in
+
+								}
 						}
-					}else{
-						alertError(msg: data.msg)
 					}
 				}).disposed(by: weakSelf.disposeBag)
 			}else {
@@ -270,6 +279,19 @@
 								case .integral:break
 							}
 						}
+					},onError: { error in
+						if let er = error as? NetworkRequest.NetRequestError{
+							switch er {
+								case .Other(_,let string):
+									CommonAlertView.show(title: "兑换商品", content: string) { _ in
+
+									}
+								default:
+									CommonAlertView.show(title: "兑换商品", content: "兑换失败") { _ in
+
+									}
+							}
+						}
 					}).disposed(by: weakSelf.disposeBag)
 				}
 			}
diff --git a/WanPai/Root/Yard/VC/YardBookingDetailVC.swift b/WanPai/Root/Yard/VC/YardBookingDetailVC.swift
index 9159332..e37afcf 100644
--- a/WanPai/Root/Yard/VC/YardBookingDetailVC.swift
+++ b/WanPai/Root/Yard/VC/YardBookingDetailVC.swift
@@ -100,7 +100,7 @@
 						self?.showQRCode(model, ids: data.data?.ids ?? [])
 					case .pending:
 						self?.btn_payment.isHidden = true
-						self?.btn_cancel.isHidden = true
+						self?.btn_cancel.isHidden = false
 						self?.showQRCode(model, ids: data.data?.ids ?? [])
 						fallthrough
 					default:
@@ -133,7 +133,7 @@
 
 		if let m = yardBookingDetailDataModel{
 			let t = OpenDoorTimeModel(start_time: TimeInterval(model.startTime / 1000), end_time: TimeInterval(model.endTime / 1000))
-			let openDoorModel = OpenDoorModel(sid: m.siteId, rid: ids, uid: m.appUserId, time: [t], type: 2)
+			let openDoorModel = OpenDoorModel(sid: [m.siteId], rid: ids, uid: m.appUserId, time: [t], type: 2)
 			if let modelStr = openDoorModel.toJSONString(){
 				img_QRCode.image = QRCodeImage(string: modelStr, size: 132 * sceneDelegate!.window!.screen.scale)
 			}
diff --git a/WanPai/Root/Yard/VC/YardDetailDateTimeVC.swift b/WanPai/Root/Yard/VC/YardDetailDateTimeVC.swift
index ba1423b..a914524 100644
--- a/WanPai/Root/Yard/VC/YardDetailDateTimeVC.swift
+++ b/WanPai/Root/Yard/VC/YardDetailDateTimeVC.swift
@@ -62,6 +62,16 @@
             if let models = data.data{
                 guard let weakSelf = self else { return }
                 weakSelf.items = models
+				for item in weakSelf.items {
+					if item.selectable == 1{
+						let d = weakSelf.date.jq_format("yyyy-MM-dd ") + item.time.components(separatedBy: "-").last!
+						let interval = Date.jq_StringToTimeInterval(d, "yyyy-MM-dd HH:mm")
+						let canSelect = Date().timeIntervalSince1970 < interval
+						item.selectable = canSelect ? 1:0
+					}
+				}
+
+
                 weakSelf.collectionView.reloadData()
                 weakSelf.innerHeight = ceil(Double(models.count) / 3.0) * cellH + floor(Double(models.count) / 3.0) * 1.0
                 weakSelf.clouse?(weakSelf.innerHeight,weakSelf.currentPage)
@@ -156,12 +166,12 @@
         let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_CalendarDateTimeTCell", for: indexPath) as! CalendarDateTimeTCell
         let m = items[indexPath.row]
         cell.label_content.text = m.time
-		let d = date.jq_format("yyyy-MM-dd ") + m.time.components(separatedBy: "-").last!
-		let interval = Date.jq_StringToTimeInterval(d, "yyyy-MM-dd HH:mm")
+//		let d = date.jq_format("yyyy-MM-dd ") + m.time.components(separatedBy: "-").last!
+//		let interval = Date.jq_StringToTimeInterval(d, "yyyy-MM-dd HH:mm")
+//
+//		let canSelect = Date().timeIntervalSince1970 < interval
 
-		let canSelect = Date().timeIntervalSince1970 < interval
-
-		if canSelect && m.selectable == 1{
+		if m.selectable == 1{
 			cell.contentView.backgroundColor = UIColor.white
 			cell.label_content.textColor = UIColor(hexStr: "#323232")
 		}else{
diff --git a/WanPai/Root/Yard/VC/YardDetailVC.swift b/WanPai/Root/Yard/VC/YardDetailVC.swift
index 954333c..74f5a86 100644
--- a/WanPai/Root/Yard/VC/YardDetailVC.swift
+++ b/WanPai/Root/Yard/VC/YardDetailVC.swift
@@ -330,7 +330,7 @@
 			isHalf = btn_fullYard.isSelected ? 2:1
 		}
 
-		if siteDetailModel.nextName.count > 0{
+		if siteDetailModel.nextName.count > 0 && isHalf == 1{
 			nextName = siteDetailModel.nextName[yardIndex]
 		}
 
diff --git a/WanPai/Root/Yard/VC/YardListVC.swift b/WanPai/Root/Yard/VC/YardListVC.swift
index 2863cce..9a026dc 100644
--- a/WanPai/Root/Yard/VC/YardListVC.swift
+++ b/WanPai/Root/Yard/VC/YardListVC.swift
@@ -62,13 +62,8 @@
             }
         }).disposed(by: disposeBag)
 
-        Services.queryStoreList().subscribe(onNext: {data in
-            if let models = data.data{
-                self.storeItems.append(NormalSimpleModel(id: 0, name: "全部"))
-                self.storeItems.append(contentsOf: models)
-            }
-        }).disposed(by: disposeBag)
 
+		getStoreList()
         viewModel.configure(tableView)
         viewModel.beginRefresh()
 
@@ -94,6 +89,17 @@
 		btn_stores.setTitle(viewModel.selectStore.value?.name ?? "所在门店", for: .normal)
     }
 
+
+	private func getStoreList(){
+		Services.queryStoreList(cityCode: viewModel.city.value?.code).subscribe(onNext: {data in
+			if let models = data.data{
+				self.storeItems.removeAll()
+				self.storeItems.append(NormalSimpleModel(id: 0, name: "全部"))
+				self.storeItems.append(contentsOf: models)
+			}
+		}).disposed(by: disposeBag)
+	}
+
     override func setRx() {
         tf_search.rx.text.orEmpty.bind(to: viewModel.search).disposed(by: disposeBag)
     }
@@ -113,7 +119,7 @@
         guard !sender.isSelected else {return}
         closeAction()
         sender.isSelected = true
-        yardBookingTimeView = YardBookingTimeView.show(inView: self.view, afterView: view_top) { [weak self] t1, t2 in
+		yardBookingTimeView = YardBookingTimeView.show(inView: self.view, afterView: view_top,defaultStarTime: viewModel.startDate.value,defaultEndTime: viewModel.endDate.value) { [weak self] t1, t2 in
             self?.viewModel.startDate.accept(t1)
             self?.viewModel.endDate.accept(t2)
             self?.viewModel.beginRefresh()
@@ -149,6 +155,10 @@
             self?.viewModel.city.accept(model)
             sender.setTitle(model.name, for: .normal)
             sender.isSelected = false
+			self?.viewModel.siteType.accept(nil)
+			self?.viewModel.selectStore.accept(nil)
+			self?.btn_stores.setTitle("所在门店", for: .normal)
+			self?.getStoreList()
             self?.viewModel.beginRefresh()
         } closeClouse: {
             sender.isSelected = false
diff --git a/WanPai/Root/Yard/View/YardBookingTimeView.swift b/WanPai/Root/Yard/View/YardBookingTimeView.swift
index bd4ffd5..2eff145 100644
--- a/WanPai/Root/Yard/View/YardBookingTimeView.swift
+++ b/WanPai/Root/Yard/View/YardBookingTimeView.swift
@@ -13,6 +13,8 @@
     @IBOutlet weak var cons_viewTop: NSLayoutConstraint!
     @IBOutlet weak var tf_startTime: UITextField!
     @IBOutlet weak var tf_endTime: UITextField!
+	private var defaultStarTime:String?
+	private var defaultEndTime:String?
 
     private var closeClouse:((String,String)->Void)?
 
@@ -24,10 +26,14 @@
     }
 
     @discardableResult
-    static func show(inView:UIView,afterView:UIView,closeClouse:@escaping (String,String)->Void)->YardBookingTimeView{
+	static func show(inView:UIView,afterView:UIView,defaultStarTime:String? = nil,defaultEndTime:String? = nil,closeClouse:@escaping (String,String)->Void)->YardBookingTimeView{
         let yardBookingTimeView = YardBookingTimeView.jq_loadNibView()
         inView.addSubview(yardBookingTimeView)
         yardBookingTimeView.closeClouse = closeClouse
+		yardBookingTimeView.defaultStarTime = defaultStarTime
+		yardBookingTimeView.defaultEndTime = defaultEndTime
+		yardBookingTimeView.tf_startTime.text = defaultStarTime
+		yardBookingTimeView.tf_endTime.text = defaultEndTime
         yardBookingTimeView.snp.makeConstraints { make in
             make.top.equalTo(afterView.snp.bottom)
             make.left.right.bottom.equalTo(inView)
@@ -43,19 +49,38 @@
 
 
     @IBAction func startTimeAction(_ sender: Any) {
+		tf_endTime.text = ""
         CommonDatePickerView.show(type: .HHmm) {[weak self] _, _, _,hour,minute in
             self?.tf_startTime.text = String(format: "%02ld:%02ld", hour!,minute!)
         }
     }
 
     @IBAction func endTimeAction(_ sender: Any) {
+		if tf_startTime.text == ""{
+			alert(msg: "请先选择开始时间");return
+		}
         CommonDatePickerView.show(type: .HHmm) { [weak self] _, _, _,hour,minute in
+			if hour ?? 0 < self?.tf_startTime.text!.components(separatedBy: ":").first?.int ?? 0{
+				alert(msg: "结束时间不能小于开始时间");return
+			}
             self?.tf_endTime.text = String(format: "%02ld:%02ld", hour!,minute!)
+
+			self?.cons_viewTop.constant = -133
+			UIView.animate(withDuration: 0.4) {
+				self!.alpha = 0
+				self!.layoutIfNeeded()
+			} completion: { _ in
+				let startDate = self!.tf_startTime.text!
+				let endDate = self!.tf_endTime.text!
+				self!.closeClouse?(startDate,endDate)
+				self!.removeFromSuperview()
+			}
         }
     }
 
 
     @IBAction func closeAction(_ sender: Any) {
+		//以下,点击空白收回,可能废弃
         cons_viewTop.constant = -133
         UIView.animate(withDuration: 0.4) {
             self.alpha = 0
diff --git a/WanPai/SceneDelegate.swift b/WanPai/SceneDelegate.swift
index fb1f744..9107a2e 100644
--- a/WanPai/SceneDelegate.swift
+++ b/WanPai/SceneDelegate.swift
@@ -76,6 +76,11 @@
 			}
 		}
 
+		if ((URLContexts.first?.url.absoluteString.contains("weparklife://safepay")) != nil){
+			let url = URLContexts.first!.url
+			YYPaymentManager.shared.handleApplication(UIApplication.shared, open: url, options: [:])
+		}
+
 		if URLContexts.first!.url.host == "resendContextReqByScheme"{
 			WXApi.handleOpen(URLContexts.first!.url, delegate: YYPaymentManager.shared)
 		}

--
Gitblit v1.7.1