Commit ff8c99b1 authored by pete谢兆麟's avatar pete谢兆麟

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

parents e2c6c7b8 f241c731
......@@ -21,6 +21,7 @@ import HyphenateChat
@main
class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
private lazy var liveViewModel = YHLiveSalesViewModel()
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
......@@ -69,7 +70,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
YHOSSManager.share.getOSSID()
AGCInstance.startUp()
AGCAppLinking.instance().handle { (link, error) in
AGCAppLinking.instance().handle { [weak self] (link, error) in
guard let self = self else {
return
}
if let deepLink = link?.deepLink,deepLink.contains(YhConstant.DeepLink.compareUrl) {
if let url = URL(string: deepLink) {
let components = URLComponents(url: url, resolvingAgainstBaseURL: false)
......@@ -92,6 +96,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
}
//直播 - 获取它对应的参数
if let liveId = arrItems["LiveID"] as? String {
if let userId = arrItems["fromUserId"] as? String, let sourceType = arrItems["sourceType"] as? String {
self.liveViewModel.postLiveViewRecords(id: liveId.intValue(), userId: userId, sourceType: sourceType.intValue()) { _, _ in
//
}
}
let playbackInfo = YHPlayerManager.PlaybackInfo(id: liveId.intValue(), isLive: true, isFromSaleDetail: false)
YHPlayerManager.shared.enterLive(from: nil, playbackInfo: playbackInfo)
}
......
......@@ -539,7 +539,9 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
} else {
oldUrl = oldUrl + "?appDeepLink=\(tmpT)"
}
if let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 {
oldUrl += "&sourceType=1&fromUserId=\(userId)"
}
YHShareAlertView.show(image: liveModel.live_image, title: "@" + liveModel.account, subMessage: liveModel.live_title, linkUrl: oldUrl, isLive: true, fromAiSale: true)
return
}
......
......@@ -329,6 +329,28 @@ extension YHLiveSalesViewModel {
}
}
func postLiveViewRecords(id: Int, userId: String, sourceType: Int, callback: @escaping (_ success: Bool, _ error: YHErrorModel?) -> Void) {
let params: [String: Any] = ["live_id": id,
"from_user_id": userId,
"view_port": 1,
"source_type": sourceType,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.LiveSales.viewRecords
_ = YHNetRequest.postRequest(url: strUrl, params: params) { json, _ in
// 1. json字符串 转 对象
printLog("model 是 ==> \(json)")
if json.code == 200 {
callback(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback(false, err)
}
} failBlock: { err in
callback(false, err)
}
}
}
private extension String {
......
......@@ -120,7 +120,7 @@ class YHMemberCenterViewController: YHBaseViewController {
make.left.equalToSuperview()
make.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom)
make.bottom.equalToSuperview()
}
tableView.tableHeaderView = headerView
tableView.tableFooterView = footerView
......@@ -185,7 +185,7 @@ class YHMemberCenterViewController: YHBaseViewController {
switch currentLevel {
case .normal:
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.customerService, .pointsConsumption, .afternoonTea, .offlineSalons, .onSiteConsultation]
let ids: [String] = [memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.specialIntegralConsumption.giftId, memberCenterInfo.luxuryTea.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId]
details = ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
......@@ -196,8 +196,11 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(row)
}
case .gold:
if memberCenterInfo.currentLevel < currentLevel.rawValue {
datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel))
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
}
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.luxuryTea.giftId,
......@@ -215,8 +218,11 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(row)
}
case .platinum:
if memberCenterInfo.currentLevel < currentLevel.rawValue {
datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel))
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
}
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.crossBorder, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.carTransfer.giftId,
memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
......@@ -236,8 +242,11 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(row)
}
case .diamond:
if memberCenterInfo.currentLevel < currentLevel.rawValue {
datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel))
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
}
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.highEndMeeting, .crossBorder, .hkTravel,.drivingLicense, .schoolSelection, .brandPlanning, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highEndPrivilege.giftId,
memberCenterInfo.carTransfer.giftId,
......@@ -297,7 +306,7 @@ class YHMemberCenterViewController: YHBaseViewController {
@objc private func didShareButtonClicked() {
YHAnalytics.track("Membership_Privileges_Page_Share")
let url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/center"
YHShareManager.shared.sendLinkContent("分享会员中心", "", UIImage(named: "AppIcon") ?? UIImage(), link: url)
YHShareManager.shared.sendLinkContent("银河会员等级", "查看特色福利,享会员特权", UIImage(named: "AppIcon") ?? UIImage(), link: url)
}
private func gotoYinheStore() {
......@@ -408,7 +417,9 @@ class YHMemberCenterViewController: YHBaseViewController {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0, let navigationController = UIViewController.current?.navigationController else {
return
}
YHHUD.show(.progress(message: "加载中..."))
YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { _ in
YHHUD.hide()
})
}
......
......@@ -135,6 +135,23 @@ class YHVipLevelRightViewController: YHBaseViewController, UITableViewDataSource
make.width.equalTo(12)
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
autoScrollToOwnVipRight()
}
func autoScrollToOwnVipRight() {
var offSetX = 0.0
if self.level == .normal || self.level == .gold {
offSetX = 0.0
} else if self.level == .platinum || self.level == .diamond {
offSetX = KScreenWidth * 2.0 / 3.0
}
printLog("&&&@ \(offSetX)")
self.scrollView.contentOffset = CGPointMake(offSetX, 0)
self.titleView.scrollView.contentOffset = CGPointMake(offSetX, 0)
}
}
extension YHVipLevelRightViewController {
......
......@@ -75,7 +75,7 @@ enum YHMemberCenterCellContent: String, CaseIterable {
case .afternoonTea:
return 65.0 / 311.0
case .offlineSalons:
return 126.0 / 311.0
return 180.0 / 311.0
case .onSiteConsultation:
return 180.0 / 311.0
case .customerService:
......
......@@ -54,6 +54,7 @@ class YHMemberCenterActionCell: YHResignDocumentCell {
}
private func setupUI() {
subContainerView.radius = 4
updateCellCorner(.single)
subContainerView.addSubview(leftLabel)
subContainerView.addSubview(rightLabel)
......
......@@ -125,10 +125,12 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
make.right.lessThanOrEqualTo(upgradeButton.snp.left).offset(-26)
}
let progressViewWidth = KScreenWidth >= 375 ? 158 : 120
progressView.snp.makeConstraints { make in
make.left.equalTo(bannerTitleLabel)
make.bottom.equalTo(tipsLabel.snp.top).offset(-6)
make.right.equalTo(upgradeButton.snp.left).offset(-26)
make.width.equalTo(progressViewWidth)
// make.right.equalTo(upgradeButton.snp.left).offset(-26)
make.height.equalTo(2)
}
......
......@@ -50,7 +50,7 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
private lazy var privilegeLabel: UILabel = {
let label = UILabel()
label.text = "高端权益兑换"
label.font = .PFSC_R(ofSize: 12)
label.font = .PFSC_R(ofSize: 13)
label.textColor = .mainTextColor
return label
}()
......@@ -100,6 +100,7 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
}
private func setupUI() {
subContainerView.radius = 4
updateCellCorner(.single)
subContainerView.addSubview(midLabel)
subContainerView.addSubview(leftIcon)
......
......@@ -50,13 +50,15 @@ class YHMembershipGrowthGuideView: UIView {
view.backgroundColor = .clear
view.showsVerticalScrollIndicator = false
view.showsHorizontalScrollIndicator = false
view.isScrollEnabled = true
view.isUserInteractionEnabled = true
return view
}()
lazy var bkgImageV: UIImageView = {
let imageV = UIImageView()
imageV.image = UIImage(named: "membership_growth_guide")
imageV.contentMode = .scaleAspectFit
imageV.contentMode = .scaleAspectFill
imageV.clipsToBounds = true
return imageV
}()
......@@ -81,7 +83,7 @@ extension YHMembershipGrowthGuideView {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
UIView.animate(withDuration: 0.5) {
let whiteHeight = KScreenHeight - k_Height_NavigationtBarAndStatuBar
let whiteHeight = KScreenHeight - 120
self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight)
}
}
......@@ -113,7 +115,7 @@ private extension YHMembershipGrowthGuideView {
make.edges.equalToSuperview()
}
let whiteHeight = KScreenHeight - k_Height_NavigationtBarAndStatuBar
let whiteHeight = KScreenHeight - 120
whiteContentView.frame = CGRect(x: 0, y: KScreenHeight, width: KScreenWidth, height: whiteHeight)
whiteContentView.addSubview(topTitleLabel)
whiteContentView.addSubview(closeButton)
......@@ -134,15 +136,15 @@ private extension YHMembershipGrowthGuideView {
make.top.equalToSuperview().offset(52)
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.height.equalTo(1)
}
whiteContentView.addSubview(myScrollView)
myScrollView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(54)
make.top.equalToSuperview().offset(73)
make.left.equalToSuperview()
make.right.equalToSuperview()
make.width.equalTo(KScreenWidth)
make.height.equalTo(whiteHeight - 54)
make.height.equalTo(whiteHeight - 73)
}
if let _ = UIImage(named: "membership_growth_guide") {
......@@ -152,11 +154,10 @@ private extension YHMembershipGrowthGuideView {
bkgImageV.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalToSuperview().offset(margin)
make.right.equalToSuperview().offset(-margin)
make.width.equalTo(333.0)
make.height.equalTo(333.0 * radio)
make.width.equalTo((KScreenWidth - 2 * margin))
make.height.equalTo((KScreenWidth - 2 * margin) * radio)
}
myScrollView.contentSize = CGSize(width: KScreenWidth, height: 333.0 * radio)
myScrollView.contentSize = CGSize(width: KScreenWidth, height: (KScreenWidth - 2 * margin) * radio + 34)
}
}
}
......@@ -732,6 +732,8 @@ class YHAllApiName {
static let shareLive = "super-app/live/share-live"
// app直播间状态
static let liveStatus = "super-app/live/live-status"
// 查看浏览记录
static let viewRecords = "super-app/live/viewing-records"
}
struct AIChat {
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_afternoonTea@2x.png",
"filename" : "银河体验中心下午茶@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_afternoonTea@3x.png",
"filename" : "银河体验中心下午茶@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_brandPlanning@2x.png",
"filename" : "品牌策划方案@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_brandPlanning@3x.png",
"filename" : "品牌策划方案@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_crossBorder@2x.png",
"filename" : "深港跨境出行预约@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_crossBorder@3x.png",
"filename" : "深港跨境出行预约@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_customerService@2x.png",
"filename" : "专属客服服务@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_customerService@3x.png",
"filename" : "专属客服服务@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_drivingLicense@2x.png",
"filename" : "国际驾照续期@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_drivingLicense@3x.png",
"filename" : "国际驾照续期@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_highEndMeeting@2x.png",
"filename" : "高端私董会@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_highEndMeeting@3x.png",
"filename" : "高端私董会@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_hkTravel@2x.png",
"filename" : "香港境内出行预约@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_hkTravel@3x.png",
"filename" : "香港境内出行预约@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_kidsbay@2x.png",
"filename" : "kidsbay高端早教盒子@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_kidsbay@3x.png",
"filename" : "kidsbay高端早教盒子@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_luxury@2x.png",
"filename" : "体验中心图@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_luxury@3x.png",
"filename" : "体验中心图@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_offlineSalons@2x.png",
"filename" : "特色线下沙龙&分享会@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_offlineSalons@3x.png",
"filename" : "特色线下沙龙&分享会@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_onSiteConsultation@2x.png",
"filename" : "截屏2024-07-05 上午10.54.23 1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_onSiteConsultation@3x.png",
"filename" : "截屏2024-07-05 上午10.54.23 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_pointsConsumption@2x.png",
"filename" : "专属积分商城消费@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_pointsConsumption@3x.png",
"filename" : "专属积分商城消费@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_cell_schoolSelection@2x.png",
"filename" : "香港择校规划@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_cell_schoolSelection@3x.png",
"filename" : "香港择校规划@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_bg_diamond@2x.png",
"filename" : "头图-钻石会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_bg_diamond@3x.png",
"filename" : "头图-钻石会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_bg_gold@2x.png",
"filename" : "头图-黄金会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_bg_gold@3x.png",
"filename" : "头图-黄金会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_bg_normal@2x.png",
"filename" : "头图-大众会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_bg_normal@3x.png",
"filename" : "头图-大众会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_bg_platinum@2x.png",
"filename" : "头图-铂金会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_bg_platinum@3x.png",
"filename" : "头图-铂金会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_card_diamond@2x.png",
"filename" : "钻石会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_card_diamond@3x.png",
"filename" : "钻石会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_card_gold@2x.png",
"filename" : "黄金会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_card_gold@3x.png",
"filename" : "黄金会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_card_normal@2x.png",
"filename" : "大众会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_card_normal@3x.png",
"filename" : "大众会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "member_center_card_platinum@2x.png",
"filename" : "铂金会员@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "member_center_card_platinum@3x.png",
"filename" : "铂金会员@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment