Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
pidan
/
FuSiLive
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
a8cfe1a3
authored
Mar 09, 2026
by
ludi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成首页推荐
parent
9b29687f
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
406 additions
and
48 deletions
DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/DataShare/FUSCacheDataShare.m
DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/DataShare/FUSSwiftCacheDataShare.swift
DevelopmentPods/FUSCommon/FUSCommon/FUSRouter/Routers/LiveRouter/FUSLiveRouterProtocol.h
FuSiLive.xcodeproj/project.pbxproj
Modules/FUSShowRoomModule/FUSShowRoomModule.xcodeproj/project.pbxproj
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/FUSHomePageViewController.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/AlertView/FUSSevenDayCheckinAlertView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/AlertView/ViewModel/FUSNewUserSevenDayCheckInControl.swift
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/FUSHomeView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/Main/View/Other/FUSBaoFangBroadcastView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/OpenScreenPush/Other/FUSOpenScreenPushHelp.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/ViewModel/FUSHomeViewViewModel.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Controller/FUSLiveMainViewController.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSGetSuccessRecommendResultModel.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSGetSuccessRecommendResultModel.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHelper.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHelper.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSSwiftLiveHelper.swift
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/EndView/FUSVideoEndedView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSBulletsView/FUSBulletMessageGlobalView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSBulletsView/FUSBulletMessageNormalView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSBulletsView/FUSBulletMessageSystemView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSLiveFunctionView.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Router/FUSShowRoomRouter.m
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/Login/Other/FUSLoginHttpHelper.m
DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/DataShare/FUSCacheDataShare.m
View file @
a8cfe1a3
...
@@ -252,4 +252,9 @@
...
@@ -252,4 +252,9 @@
return
[
NSDate
date
].
timeIntervalSince1970
-
downloadDate
;
return
[
NSDate
date
].
timeIntervalSince1970
-
downloadDate
;
}
}
-
(
void
)
setSettingInitDataModel
:
(
FUSSettingInitDataModel
*
)
settingInitDataModel
{
_settingInitDataModel
=
settingInitDataModel
;
[
FUSSwiftCacheDataShare
share
].
oc_settingInitDataModel
=
settingInitDataModel
;
}
@end
@end
DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/DataShare/FUSSwiftCacheDataShare.swift
View file @
a8cfe1a3
...
@@ -31,6 +31,11 @@ import SwiftyJSON
...
@@ -31,6 +31,11 @@ import SwiftyJSON
get
{
FUSSwiftCacheDataShare
.
share
.
settingData
.
value
}
get
{
FUSSwiftCacheDataShare
.
share
.
settingData
.
value
}
set
{
FUSSwiftCacheDataShare
.
share
.
settingData
.
accept
(
newValue
)
}
set
{
FUSSwiftCacheDataShare
.
share
.
settingData
.
accept
(
newValue
)
}
}
}
/// 启动缓存的一些信息
@objc
public
var
oc_settingInitDataModel
:
FUSSettingInitDataModel
?
{
get
{
self
.
settingInitDataModel
.
value
}
set
{
self
.
settingInitDataModel
.
accept
(
newValue
)
}
}
/// 用户信息未填写提醒
/// 用户信息未填写提醒
@objc
public
var
oc_remindToData
:
FUSRemindToDataModel
?
{
@objc
public
var
oc_remindToData
:
FUSRemindToDataModel
?
{
get
{
FUSSwiftCacheDataShare
.
share
.
remindToData
.
value
}
get
{
FUSSwiftCacheDataShare
.
share
.
remindToData
.
value
}
...
@@ -101,6 +106,8 @@ import SwiftyJSON
...
@@ -101,6 +106,8 @@ import SwiftyJSON
public
let
userInfo
:
BehaviorRelay
<
FUSUserInfosModel
?
>
=
.
init
(
value
:
nil
)
public
let
userInfo
:
BehaviorRelay
<
FUSUserInfosModel
?
>
=
.
init
(
value
:
nil
)
/// 用户设置,现在暂时只做了部分属性的跟踪,如定位,其他属性需要做到的时候补全
/// 用户设置,现在暂时只做了部分属性的跟踪,如定位,其他属性需要做到的时候补全
public
let
settingData
:
BehaviorRelay
<
FUSSettingDataModel
?
>
=
.
init
(
value
:
nil
)
public
let
settingData
:
BehaviorRelay
<
FUSSettingDataModel
?
>
=
.
init
(
value
:
nil
)
/// 启动缓存的一些信息
public
let
settingInitDataModel
:
BehaviorRelay
<
FUSSettingInitDataModel
?
>
=
.
init
(
value
:
nil
)
/// 用户信息未填写提醒
/// 用户信息未填写提醒
public
let
remindToData
:
BehaviorRelay
<
FUSRemindToDataModel
?
>
=
.
init
(
value
:
nil
)
public
let
remindToData
:
BehaviorRelay
<
FUSRemindToDataModel
?
>
=
.
init
(
value
:
nil
)
/// 校验是否已更新账号资料
/// 校验是否已更新账号资料
...
@@ -203,6 +210,13 @@ import SwiftyJSON
...
@@ -203,6 +210,13 @@ import SwiftyJSON
/// 网页或者其他地方分享的 类型,配合recommendRoomId使用
/// 网页或者其他地方分享的 类型,配合recommendRoomId使用
@objc
public
var
recommendReqEventType
:
Int
=
0
@objc
public
var
recommendReqEventType
:
Int
=
0
/// 今天是否点击过领取7天签到
public
var
todayDidClickedSevenDayCheckin
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
@objc
public
var
oc_todayDidClickedSevenDayCheckin
:
Bool
{
get
{
self
.
todayDidClickedSevenDayCheckin
.
value
}
set
{
self
.
todayDidClickedSevenDayCheckin
.
accept
(
newValue
)
}
}
// - base
// - base
public
override
init
()
{
public
override
init
()
{
super
.
init
()
super
.
init
()
...
...
DevelopmentPods/FUSCommon/FUSCommon/FUSRouter/Routers/LiveRouter/FUSLiveRouterProtocol.h
View file @
a8cfe1a3
...
@@ -61,8 +61,10 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -61,8 +61,10 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Public Methods
#pragma mark - Public Methods
-
(
void
)
fus_enterLiveRoom
:(
NSString
*
)
roomId
;
-
(
void
)
fus_enterLiveRoom
:(
NSString
*
)
roomId
;
-
(
void
)
fus_enterLiveRoom
:(
NSString
*
)
roomId
behaviorSrc
:(
NSString
*
)
behaviorSrc
;
-
(
void
)
fus_enterLiveRoom
:(
NSString
*
)
roomId
behaviorSrc
:(
NSString
*
)
behaviorSrc
;
-
(
void
)
fus_enterLiveRoom
:(
NSString
*
)
roomId
behaviorSrc
:(
NSString
*
)
behaviorSrc
otherInfo
:(
NSDictionary
*
__nullable
)
otherInfo
;
-
(
void
)
fus_enterLiveRoomWithModel
:(
FUSRoomInfoModel
*
)
model
;
-
(
void
)
fus_enterLiveRoomWithModel
:(
FUSRoomInfoModel
*
)
model
;
-
(
void
)
fus_enterLiveRoomWithModel
:(
FUSRoomInfoModel
*
)
model
behaviorSrc
:(
NSString
*
)
behaviorSrc
;
-
(
void
)
fus_enterLiveRoomWithModel
:(
FUSRoomInfoModel
*
)
model
behaviorSrc
:(
NSString
*
)
behaviorSrc
;
-
(
void
)
fus_enterLiveRoomWithModel
:(
FUSRoomInfoModel
*
)
model
behaviorSrc
:(
NSString
*
)
behaviorSrc
otherInfo
:(
NSDictionary
*
__nullable
)
otherInfo
;
/**
/**
结束观看直播
结束观看直播
*/
*/
...
@@ -105,6 +107,8 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -105,6 +107,8 @@ NS_ASSUME_NONNULL_BEGIN
-
(
void
)
fus_setLaunchCompleteRecommendLiveRoom
:(
NSInteger
)
tag
;
-
(
void
)
fus_setLaunchCompleteRecommendLiveRoom
:(
NSInteger
)
tag
;
/// 第一次启动的时候,完成了网页分享房间的操作,0=初始化,1= 有网页分享并进入,2=没有网页分享并且完成了
/// 第一次启动的时候,完成了网页分享房间的操作,0=初始化,1= 有网页分享并进入,2=没有网页分享并且完成了
-
(
void
)
fus_setLaunchCompleteWebShareLiveRoom
:(
NSInteger
)
tag
;
-
(
void
)
fus_setLaunchCompleteWebShareLiveRoom
:(
NSInteger
)
tag
;
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
-
(
void
)
fus_setIsManualLoginBehavior
:(
BOOL
)
action
;
#pragma mark - HTTP
#pragma mark - HTTP
/**
/**
...
...
FuSiLive.xcodeproj/project.pbxproj
View file @
a8cfe1a3
...
@@ -673,7 +673,7 @@
...
@@ -673,7 +673,7 @@
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CODE_SIGN_ENTITLEMENTS
=
FuSiLive/FuSiLive.entitlements
;
CODE_SIGN_ENTITLEMENTS
=
FuSiLive/FuSiLive.entitlements
;
CODE_SIGN_STYLE
=
Automatic
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
20250626003
3
;
CURRENT_PROJECT_VERSION
=
20250626003
4
;
DEFINES_MODULE
=
YES
;
DEFINES_MODULE
=
YES
;
DEVELOPMENT_TEAM
=
6GG26BHUMC
;
DEVELOPMENT_TEAM
=
6GG26BHUMC
;
ENABLE_ON_DEMAND_RESOURCES
=
NO
;
ENABLE_ON_DEMAND_RESOURCES
=
NO
;
...
@@ -938,7 +938,7 @@
...
@@ -938,7 +938,7 @@
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CODE_SIGN_ENTITLEMENTS
=
FuSiLive/FuSiLive.entitlements
;
CODE_SIGN_ENTITLEMENTS
=
FuSiLive/FuSiLive.entitlements
;
CODE_SIGN_STYLE
=
Automatic
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
20250626003
3
;
CURRENT_PROJECT_VERSION
=
20250626003
4
;
DEFINES_MODULE
=
YES
;
DEFINES_MODULE
=
YES
;
DEVELOPMENT_TEAM
=
6GG26BHUMC
;
DEVELOPMENT_TEAM
=
6GG26BHUMC
;
ENABLE_ON_DEMAND_RESOURCES
=
NO
;
ENABLE_ON_DEMAND_RESOURCES
=
NO
;
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule.xcodeproj/project.pbxproj
View file @
a8cfe1a3
...
@@ -50,6 +50,9 @@
...
@@ -50,6 +50,9 @@
004773222F5C0C2000E46A79
/* fus_home_navi_startLive_animate.webp in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773212F5C0C2000E46A79
/* fus_home_navi_startLive_animate.webp */
;
};
004773222F5C0C2000E46A79
/* fus_home_navi_startLive_animate.webp in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773212F5C0C2000E46A79
/* fus_home_navi_startLive_animate.webp */
;
};
004773242F5C262300E46A79
/* home_list_pk_show_type1_anim.webp in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773232F5C262300E46A79
/* home_list_pk_show_type1_anim.webp */
;
};
004773242F5C262300E46A79
/* home_list_pk_show_type1_anim.webp in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773232F5C262300E46A79
/* home_list_pk_show_type1_anim.webp */
;
};
004773262F5C281300E46A79
/* liveRoom_newComer_gift_animate.webp in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773252F5C281300E46A79
/* liveRoom_newComer_gift_animate.webp */
;
};
004773262F5C281300E46A79
/* liveRoom_newComer_gift_animate.webp in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773252F5C281300E46A79
/* liveRoom_newComer_gift_animate.webp */
;
};
004773382F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773362F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.h */
;
};
004773392F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773372F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.m */
;
};
004773412F5EBADE00E46A79
/* FUSNewUserSevenDayCheckInControl.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
004773402F5EBADE00E46A79
/* FUSNewUserSevenDayCheckInControl.swift */
;
};
0089F9552D1979A900714CE3
/* FUSRegalValueUpgradeView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0089FD702D13F3460030DAA7
/* FUSRegalValueUpgradeView.xib */
;
};
0089F9552D1979A900714CE3
/* FUSRegalValueUpgradeView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0089FD702D13F3460030DAA7
/* FUSRegalValueUpgradeView.xib */
;
};
0089FD732D13F3460030DAA7
/* FUSLiveParcelGiftAndPropsCollectionViewCell.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0089FD612D13F3460030DAA7
/* FUSLiveParcelGiftAndPropsCollectionViewCell.h */
;
};
0089FD732D13F3460030DAA7
/* FUSLiveParcelGiftAndPropsCollectionViewCell.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0089FD612D13F3460030DAA7
/* FUSLiveParcelGiftAndPropsCollectionViewCell.h */
;
};
0089FD742D13F3460030DAA7
/* FUSLiveParcelPropsView.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0089FD672D13F3460030DAA7
/* FUSLiveParcelPropsView.h */
;
};
0089FD742D13F3460030DAA7
/* FUSLiveParcelPropsView.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0089FD672D13F3460030DAA7
/* FUSLiveParcelPropsView.h */
;
};
...
@@ -2395,6 +2398,9 @@
...
@@ -2395,6 +2398,9 @@
004773212F5C0C2000E46A79
/* fus_home_navi_startLive_animate.webp */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
fus_home_navi_startLive_animate.webp
;
sourceTree
=
"<group>"
;
};
004773212F5C0C2000E46A79
/* fus_home_navi_startLive_animate.webp */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
fus_home_navi_startLive_animate.webp
;
sourceTree
=
"<group>"
;
};
004773232F5C262300E46A79
/* home_list_pk_show_type1_anim.webp */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
home_list_pk_show_type1_anim.webp
;
sourceTree
=
"<group>"
;
};
004773232F5C262300E46A79
/* home_list_pk_show_type1_anim.webp */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
home_list_pk_show_type1_anim.webp
;
sourceTree
=
"<group>"
;
};
004773252F5C281300E46A79
/* liveRoom_newComer_gift_animate.webp */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
liveRoom_newComer_gift_animate.webp
;
sourceTree
=
"<group>"
;
};
004773252F5C281300E46A79
/* liveRoom_newComer_gift_animate.webp */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
file
;
path
=
liveRoom_newComer_gift_animate.webp
;
sourceTree
=
"<group>"
;
};
004773362F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
FUSGetSuccessRecommendResultModel.h
;
sourceTree
=
"<group>"
;
};
004773372F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
FUSGetSuccessRecommendResultModel.m
;
sourceTree
=
"<group>"
;
};
004773402F5EBADE00E46A79
/* FUSNewUserSevenDayCheckInControl.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FUSNewUserSevenDayCheckInControl.swift
;
sourceTree
=
"<group>"
;
};
0089FD4A2D13F3460030DAA7
/* FUSGiftNumSelectView.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
FUSGiftNumSelectView.h
;
sourceTree
=
"<group>"
;
};
0089FD4A2D13F3460030DAA7
/* FUSGiftNumSelectView.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
FUSGiftNumSelectView.h
;
sourceTree
=
"<group>"
;
};
0089FD4B2D13F3460030DAA7
/* FUSGiftNumSelectView.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
FUSGiftNumSelectView.m
;
sourceTree
=
"<group>"
;
};
0089FD4B2D13F3460030DAA7
/* FUSGiftNumSelectView.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
FUSGiftNumSelectView.m
;
sourceTree
=
"<group>"
;
};
0089FD4C2D13F3460030DAA7
/* FUSGiftSegmentControl.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FUSGiftSegmentControl.swift
;
sourceTree
=
"<group>"
;
};
0089FD4C2D13F3460030DAA7
/* FUSGiftSegmentControl.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FUSGiftSegmentControl.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -4768,6 +4774,14 @@
...
@@ -4768,6 +4774,14 @@
path
=
PK_Cover_Animation
;
path
=
PK_Cover_Animation
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
0047733F2F5EBAAF00E46A79
/* ViewModel */
=
{
isa
=
PBXGroup
;
children
=
(
004773402F5EBADE00E46A79
/* FUSNewUserSevenDayCheckInControl.swift */
,
);
path
=
ViewModel
;
sourceTree
=
"<group>"
;
};
0089FD722D13F3460030DAA7
/* FFGiftView */
=
{
0089FD722D13F3460030DAA7
/* FFGiftView */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
...
@@ -4866,6 +4880,7 @@
...
@@ -4866,6 +4880,7 @@
00AD7DF12CA1623100E02376
/* AlertView */
=
{
00AD7DF12CA1623100E02376
/* AlertView */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
0047733F2F5EBAAF00E46A79
/* ViewModel */
,
00A516B12CA2976F0022DE40
/* View */
,
00A516B12CA2976F0022DE40
/* View */
,
00AD7DF62CA1801000E02376
/* Model */
,
00AD7DF62CA1801000E02376
/* Model */
,
00AD7DF22CA1626B00E02376
/* FUSSevenDayCheckinAlertView.h */
,
00AD7DF22CA1626B00E02376
/* FUSSevenDayCheckinAlertView.h */
,
...
@@ -6554,6 +6569,8 @@
...
@@ -6554,6 +6569,8 @@
BECF744F2D30C7BF00F5ABBC
/* FUSBeforeLiveCondModel.m */
,
BECF744F2D30C7BF00F5ABBC
/* FUSBeforeLiveCondModel.m */
,
00E6CD8F2F52FA3900B63797
/* FUSLiveChatTableClickTypeRangeModel.h */
,
00E6CD8F2F52FA3900B63797
/* FUSLiveChatTableClickTypeRangeModel.h */
,
00E6CD902F52FA3900B63797
/* FUSLiveChatTableClickTypeRangeModel.m */
,
00E6CD902F52FA3900B63797
/* FUSLiveChatTableClickTypeRangeModel.m */
,
004773362F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.h */
,
004773372F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.m */
,
);
);
path
=
Model
;
path
=
Model
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -8780,6 +8797,7 @@
...
@@ -8780,6 +8797,7 @@
BED658E72C5B745E00668116
/* FUSFilterItemCell.h in Headers */
,
BED658E72C5B745E00668116
/* FUSFilterItemCell.h in Headers */
,
00A3AB702CB665EA007646E1
/* FUSLiveQuickChatSetCell.h in Headers */
,
00A3AB702CB665EA007646E1
/* FUSLiveQuickChatSetCell.h in Headers */
,
BED65A3B2C5B745F00668116
/* FUSTreasureBoxOptionModel.h in Headers */
,
BED65A3B2C5B745F00668116
/* FUSTreasureBoxOptionModel.h in Headers */
,
004773382F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.h in Headers */
,
BED65AC62C5B745F00668116
/* FUSBroadcastModel.h in Headers */
,
BED65AC62C5B745F00668116
/* FUSBroadcastModel.h in Headers */
,
BED65B042C5B746000668116
/* FUSBaoFangTagView.h in Headers */
,
BED65B042C5B746000668116
/* FUSBaoFangTagView.h in Headers */
,
BE189E132C733B460008418B
/* FSREffectdictGiftShowRoomRoomGuarderView.h in Headers */
,
BE189E132C733B460008418B
/* FSREffectdictGiftShowRoomRoomGuarderView.h in Headers */
,
...
@@ -10581,6 +10599,7 @@
...
@@ -10581,6 +10599,7 @@
BED659E42C5B745F00668116
/* FUSPKHttpHelper.m in Sources */
,
BED659E42C5B745F00668116
/* FUSPKHttpHelper.m in Sources */
,
BED658BA2C5B745E00668116
/* FUSHalfWebViewCollectionViewCell.m in Sources */
,
BED658BA2C5B745E00668116
/* FUSHalfWebViewCollectionViewCell.m in Sources */
,
BED65A7A2C5B745F00668116
/* FUSLiveFunctionView.m in Sources */
,
BED65A7A2C5B745F00668116
/* FUSLiveFunctionView.m in Sources */
,
004773412F5EBADE00E46A79
/* FUSNewUserSevenDayCheckInControl.swift in Sources */
,
BED658FF2C5B745E00668116
/* FUSLiveChatInputBulletsListCell.m in Sources */
,
BED658FF2C5B745E00668116
/* FUSLiveChatInputBulletsListCell.m in Sources */
,
BED6599A2C5B745E00668116
/* FUSAgoraHelper.m in Sources */
,
BED6599A2C5B745E00668116
/* FUSAgoraHelper.m in Sources */
,
BED658DF2C5B745E00668116
/* FUSAudiencePopView.m in Sources */
,
BED658DF2C5B745E00668116
/* FUSAudiencePopView.m in Sources */
,
...
@@ -10735,6 +10754,7 @@
...
@@ -10735,6 +10754,7 @@
00A516B62CA29A990022DE40
/* FUSNewUserRewardItemCell.swift in Sources */
,
00A516B62CA29A990022DE40
/* FUSNewUserRewardItemCell.swift in Sources */
,
BED659C62C5B745F00668116
/* FUSLiveScrollView.m in Sources */
,
BED659C62C5B745F00668116
/* FUSLiveScrollView.m in Sources */
,
BECF743F2D2FBC4500F5ABBC
/* FUSLiveBitrateModel.swift in Sources */
,
BECF743F2D2FBC4500F5ABBC
/* FUSLiveBitrateModel.swift in Sources */
,
004773392F5E7E7800E46A79
/* FUSGetSuccessRecommendResultModel.m in Sources */
,
BED6590F2C5B745E00668116
/* FUSLiveShareView.m in Sources */
,
BED6590F2C5B745E00668116
/* FUSLiveShareView.m in Sources */
,
BE189DC02C733B460008418B
/* FSRActiveMotorEffectViewController.m in Sources */
,
BE189DC02C733B460008418B
/* FSRActiveMotorEffectViewController.m in Sources */
,
BEB504702D2E8C2E00EA6E6F
/* FUSLiveThemeModel+FUSRequest.m in Sources */
,
BEB504702D2E8C2E00EA6E6F
/* FUSLiveThemeModel+FUSRequest.m in Sources */
,
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/FUSHomePageViewController.m
View file @
a8cfe1a3
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
// 导入通知框架
// 导入通知框架
#import <UserNotifications/UserNotifications.h>
#import <UserNotifications/UserNotifications.h>
#import <FUSCommon/FUSCommon-Swift.h>
#import <FUSCommon/FUSCommon-Swift.h>
#import <FUSShowRoomModule/FUSShowRoomModule-Swift.h>
@interface
FUSHomePageViewController
()
<
UIScrollViewDelegate
,
FUSFloatTabbarViewDelegate
,
FUSHomeViewBaseDelegate
>
@interface
FUSHomePageViewController
()
<
UIScrollViewDelegate
,
FUSFloatTabbarViewDelegate
,
FUSHomeViewBaseDelegate
>
...
@@ -38,10 +39,17 @@
...
@@ -38,10 +39,17 @@
@property
(
nonatomic
,
assign
)
BOOL
isShowOpenScreenPush
;
@property
(
nonatomic
,
assign
)
BOOL
isShowOpenScreenPush
;
@property
(
nonatomic
,
assign
)
BOOL
isShowNewUserAlert
;
@property
(
nonatomic
,
assign
)
BOOL
isShowNewUserAlert
;
/// 七天签到控制
@property
(
nonatomic
,
strong
)
FUSNewUserSevenDayCheckInControl
*
sevenDayCheckinControl
;
/// 是否加载过AppStartPush,因为这个东西有socket相关,需要socket连接成功才行
/// 是否加载过AppStartPush,因为这个东西有socket相关,需要socket连接成功才行
@property
(
nonatomic
,
assign
)
BOOL
isLoadAppStartPush
;
@property
(
nonatomic
,
assign
)
BOOL
isLoadAppStartPush
;
/// 完成了绑定推荐人的操作
@property
(
nonatomic
,
assign
)
BOOL
showBindAgentComplete
;
/// 当前这一次的登录已经显示过七天签到了
@property
(
nonatomic
,
assign
)
BOOL
loginDidShowSeventCheckin
;
@end
@end
@implementation
FUSHomePageViewController
@implementation
FUSHomePageViewController
...
@@ -52,11 +60,14 @@
...
@@ -52,11 +60,14 @@
self
.
hiddenNavigationBar
=
YES
;
self
.
hiddenNavigationBar
=
YES
;
self
.
homeTabbarShouldScrollToHide
=
NO
;
self
.
homeTabbarShouldScrollToHide
=
NO
;
self
.
firstLoad
=
YES
;
self
.
firstLoad
=
YES
;
self
.
showBindAgentComplete
=
NO
;
self
.
loginDidShowSeventCheckin
=
NO
;
self
.
isShowNewUserAlert
=
NO
;
self
.
isShowNewUserAlert
=
NO
;
self
.
isLoadAppStartPush
=
NO
;
self
.
isLoadAppStartPush
=
NO
;
[
self
fus_createTabbarView
];
[
self
fus_createTabbarView
];
[
self
fus_createHomeScrollView
];
[
self
fus_createHomeScrollView
];
[
self
fus_initSevenDayCheckinBtn
];
[
self
.
view
bringSubviewToFront
:
self
.
tabbarView
];
[
self
.
view
bringSubviewToFront
:
self
.
tabbarView
];
MJWeakSelf
MJWeakSelf
...
@@ -124,12 +135,30 @@
...
@@ -124,12 +135,30 @@
[
self
.
tabbarView
fus_setSelect
:
1
autoCall
:
NO
];
[
self
.
tabbarView
fus_setSelect
:
1
autoCall
:
NO
];
}
}
-
(
void
)
fus_initSevenDayCheckinBtn
{
self
.
sevenDayCheckinControl
=
[[
FUSNewUserSevenDayCheckInControl
alloc
]
init
];
MJWeakSelf
self
.
sevenDayCheckinControl
.
launchEnterRoomCompelte
=
^
{
[
weakSelf
fus_launchCompleteCheckAndShowSevenDayCheckinView
];
};
}
-
(
void
)
viewWillAppear
:
(
BOOL
)
animated
{
-
(
void
)
viewWillAppear
:
(
BOOL
)
animated
{
[
super
viewWillAppear
:
animated
];
[
super
viewWillAppear
:
animated
];
if
(
!
self
.
firstLoad
)
{
if
(
!
self
.
firstLoad
)
{
[
self
.
contentViewList
[
self
.
tabbarView
.
currentIndex
]
fus_viewWillShow
];
[
self
.
contentViewList
[
self
.
tabbarView
.
currentIndex
]
fus_viewWillShow
];
[
self
fus_showSevenDayCheckinAlertViewIfInNeedWithType
:
FUSSevenDayCheckinTypeBackToHomePage
];
if
([[
UIViewController
fus_topViewController
]
isKindOfClass
:[
self
class
]])
{
if
(
self
.
sevenDayCheckinControl
.
launchEnterLiveRoomComplete
==
NO
)
{
// 进入房间的操作还没加载完
return
;
}
[
self
fus_showSevenDayCheckinAlertViewIfInNeedWithType
:
FUSSevenDayCheckinTypeBackToHomePage
];
}
}
}
self
.
firstLoad
=
NO
;
self
.
firstLoad
=
NO
;
...
@@ -154,6 +183,31 @@
...
@@ -154,6 +183,31 @@
}];
}];
}
}
}
}
-
(
void
)
fus_launchCompleteCheckAndShowSevenDayCheckinView
{
if
(
self
.
sevenDayCheckinControl
.
launchCompleteShouldShow
==
YES
)
{
// 完成检测网页分享直播间
[
self
fus_checkAndShowSevenDayCheckinView
];
}
}
-
(
void
)
fus_checkAndShowSevenDayCheckinView
{
if
(
self
.
showBindAgentComplete
!=
YES
)
{
// 没有完成显示绑定经纪人
//以上情况都还不能显示
return
;
}
if
(
self
.
loginDidShowSeventCheckin
==
YES
)
{
// 这次登录已经显示过了就不显示了
return
;
}
self
.
loginDidShowSeventCheckin
=
YES
;
[
self
fus_showSevenDayCheckinAlertViewIfInNeedWithType
:
FUSSevenDayCheckinTypeLogin
];
}
/// 开屏页相关,ff有,但是fusi没有,后续需要注意一下
/// 开屏页相关,ff有,但是fusi没有,后续需要注意一下
-
(
void
)
fus_getAppStartPush
{
-
(
void
)
fus_getAppStartPush
{
//TODO: 这个ff有相关的东西,但是fusi没有,后续得跟进一下
//TODO: 这个ff有相关的东西,但是fusi没有,后续得跟进一下
...
@@ -308,6 +362,7 @@
...
@@ -308,6 +362,7 @@
NSArray
*
array
=
notification
.
object
;
NSArray
*
array
=
notification
.
object
;
FUSZhaixinRecommendedViewController
*
remVc
=
[[
FUSZhaixinRecommendedViewController
alloc
]
initWithDataArray
:
array
];
FUSZhaixinRecommendedViewController
*
remVc
=
[[
FUSZhaixinRecommendedViewController
alloc
]
initWithDataArray
:
array
];
remVc
.
modalPresentationStyle
=
UIModalPresentationOverFullScreen
;
UINavigationController
*
remNav
=
[[
UINavigationController
alloc
]
initWithRootViewController
:
remVc
];
UINavigationController
*
remNav
=
[[
UINavigationController
alloc
]
initWithRootViewController
:
remVc
];
if
(
remVc
)
{
if
(
remVc
)
{
BOOL
isNew
=
[[[
NSUserDefaults
standardUserDefaults
]
objectForKey
:
FUSUserUDKeys
.
fus_NEW_USER_REGIST
]
boolValue
];
BOOL
isNew
=
[[[
NSUserDefaults
standardUserDefaults
]
objectForKey
:
FUSUserUDKeys
.
fus_NEW_USER_REGIST
]
boolValue
];
...
@@ -319,7 +374,9 @@
...
@@ -319,7 +374,9 @@
MJWeakSelf
MJWeakSelf
remVc
.
deallocBlock
=
^
{
remVc
.
deallocBlock
=
^
{
[[
FUSRouter
userRouter
]
fus_showBindAgentSuccessPopViewWithSuccess
:
^
{
[[
FUSRouter
userRouter
]
fus_showBindAgentSuccessPopViewWithSuccess
:
^
{
[
weakSelf
fus_showSevenDayCheckinAlertViewIfInNeedWithType
:
FUSSevenDayCheckinTypeLogin
];
// [weakSelf fus_showSevenDayCheckinAlertViewIfInNeedWithType:FUSSevenDayCheckinTypeLogin];
weakSelf
.
showBindAgentComplete
=
YES
;
[
FUSSwiftLiveHelper
shared
].
oc_loginAlertViewIsComplete
=
YES
;
}];
}];
};
};
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/AlertView/FUSSevenDayCheckinAlertView.m
View file @
a8cfe1a3
...
@@ -229,6 +229,7 @@
...
@@ -229,6 +229,7 @@
NSUserDefaults
*
userDefault
=
[[
NSUserDefaults
alloc
]
initWithSuiteName
:[
FUSCacheDataShare
shareStore
].
userDetailInfo
.
uid
];
NSUserDefaults
*
userDefault
=
[[
NSUserDefaults
alloc
]
initWithSuiteName
:[
FUSCacheDataShare
shareStore
].
userDetailInfo
.
uid
];
NSInteger
currentTime
=
(
NSInteger
)[[
NSDate
date
]
timeIntervalSince1970
];
NSInteger
currentTime
=
(
NSInteger
)[[
NSDate
date
]
timeIntervalSince1970
];
[
userDefault
setInteger
:
currentTime
+
model
.
nextTime
forKey
:
FUSSevenDayCheckinStore_nextCheckInTimeUDKey
];
[
userDefault
setInteger
:
currentTime
+
model
.
nextTime
forKey
:
FUSSevenDayCheckinStore_nextCheckInTimeUDKey
];
[
FUSSwiftCacheDataShare
share
].
oc_todayDidClickedSevenDayCheckin
=
YES
;
if
(
weakSelf
.
dismissHandler
)
{
if
(
weakSelf
.
dismissHandler
)
{
weakSelf
.
dismissHandler
();
weakSelf
.
dismissHandler
();
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/AlertView/ViewModel/FUSNewUserSevenDayCheckInControl.swift
0 → 100644
View file @
a8cfe1a3
//
// FUSNewUserSevenDayCheckInControl.swift
// FUSShowRoomModule
//
// Created by aaa on 2026/3/9.
//
import
UIKit
import
RxSwift
import
RxCocoa
@objcMembers
public
class
FUSNewUserSevenDayCheckInControl
:
NSObject
{
@objc
public
var
showTypeDidChangeHandle
:
((
Bool
)
->
Void
)?
/// 加载进入房间的逻辑完成的回调
@objc
public
var
launchEnterRoomCompelte
:(()
->
Void
)?
/// 是否需要显示
@objc
public
var
oc_shouldShow
:
Bool
{
return
shouldShow
.
value
}
/// app加载完成的时候,是否需要显示
@objc
public
var
launchCompleteShouldShow
:
Bool
=
false
/// 登录进入房间操作都操作完了
@objc
public
var
launchEnterLiveRoomComplete
:
Bool
=
false
let
shouldShow
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
let
disposed
=
DisposeBag
()
public
override
init
()
{
super
.
init
()
ff_setup
()
}
func
ff_setup
(){
let
settingInitData
=
FUSSwiftCacheDataShare
.
share
.
settingInitDataModel
let
todayDidClicked
=
FUSSwiftCacheDataShare
.
share
.
todayDidClickedSevenDayCheckin
Observable
.
combineLatest
(
settingInitData
,
todayDidClicked
)
.
subscribe
(
onNext
:
{[
weak
self
]
settingInitData
,
todayDidClicked
in
var
canShow
=
false
if
(
settingInitData
?
.
haveNoviceCheckIn
??
0
)
==
1
&&
todayDidClicked
==
false
{
canShow
=
true
}
self
?
.
shouldShow
.
accept
(
canShow
)
})
.
disposed
(
by
:
disposed
)
self
.
shouldShow
.
distinctUntilChanged
()
.
subscribe
(
onNext
:
{[
weak
self
]
shouldShow
in
self
?
.
showTypeDidChangeHandle
?(
shouldShow
)
})
.
disposed
(
by
:
disposed
)
let
launchCompleteWebShareLiveRoom
=
FUSSwiftLiveHelper
.
shared
.
launchCompleteWebShareLiveRoom
let
launchCompleteRecommendLiveRoom
=
FUSSwiftLiveHelper
.
shared
.
launchCompleteRecommendLiveRoom
Observable
.
combineLatest
(
launchCompleteWebShareLiveRoom
,
launchCompleteRecommendLiveRoom
)
.
subscribe
(
onNext
:
{[
weak
self
]
launchCompleteWebShareLiveRoom
,
launchCompleteRecommendLiveRoom
in
guard
let
self
=
self
else
{
return
}
if
launchCompleteWebShareLiveRoom
!=
0
&&
launchCompleteRecommendLiveRoom
!=
0
{
// 都有结果了才有讨论的空间
if
launchCompleteWebShareLiveRoom
==
2
&&
launchCompleteRecommendLiveRoom
==
2
{
// 都没有进入直播间才能直接显示
self
.
launchCompleteShouldShow
=
true
}
if
todayDidClicked
.
value
==
true
{
// 如果今天点击过了,那也不应该再显示了
self
.
launchCompleteShouldShow
=
false
}
self
.
launchEnterLiveRoomComplete
=
true
self
.
launchEnterRoomCompelte
?()
}
})
.
disposed
(
by
:
disposed
)
}
}
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/FUSHomeView.m
View file @
a8cfe1a3
...
@@ -190,7 +190,7 @@
...
@@ -190,7 +190,7 @@
[
FUSLiveHelper
shareInstance
].
rooms
=
self
.
viewModel
.
onlyLiveRoomList
;
[
FUSLiveHelper
shareInstance
].
rooms
=
self
.
viewModel
.
onlyLiveRoomList
;
}
}
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
model
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
model
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
1
reqEventType
:
-
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
anchor
.
roomId
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
1
reqEventType
:
-
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
anchor
.
roomId
];
}
}
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/Main/View/Other/FUSBaoFangBroadcastView.m
View file @
a8cfe1a3
...
@@ -104,7 +104,7 @@
...
@@ -104,7 +104,7 @@
if
(
roomModel
.
roomId
.
intValue
==
0
)
{
if
(
roomModel
.
roomId
.
intValue
==
0
)
{
return
;
return
;
}
}
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
}
else
if
(
self
.
model
.
clickType
==
2
)
{
}
else
if
(
self
.
model
.
clickType
==
2
)
{
// 跳转到空间
// 跳转到空间
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/View/OpenScreenPush/Other/FUSOpenScreenPushHelp.m
View file @
a8cfe1a3
...
@@ -181,7 +181,7 @@ typedef NS_ENUM(NSUInteger,JumpType) {
...
@@ -181,7 +181,7 @@ typedef NS_ENUM(NSUInteger,JumpType) {
if
(
roomModel
.
roomId
.
integerValue
==
[
FUSCacheDataShare
shareStore
].
userDetailInfo
.
uid
.
integerValue
)
{
if
(
roomModel
.
roomId
.
integerValue
==
[
FUSCacheDataShare
shareStore
].
userDetailInfo
.
uid
.
integerValue
)
{
[
FUSLiveHelper
fus_pushLive
];
[
FUSLiveHelper
fus_pushLive
];
}
else
{
}
else
{
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
}
}
// Firebase 统计
// Firebase 统计
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/HomePage/ViewModel/FUSHomeViewViewModel.m
View file @
a8cfe1a3
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
#import "FUSHomeViewViewModel.h"
#import "FUSHomeViewViewModel.h"
#import "FUSBaoFangCacheOperate.h"
#import "FUSBaoFangCacheOperate.h"
#import <FUSShowRoomModule/FUSShowRoomModule-Swift.h>
...
@@ -129,6 +130,10 @@
...
@@ -129,6 +130,10 @@
}
}
[
self
fus_sortDataListAutoCall
:
autoCall
];
[
self
fus_sortDataListAutoCall
:
autoCall
];
if
([
FUSSwiftLiveHelper
shared
].
oc_liveRoomsDataDidLoaded
==
NO
)
{
[
FUSSwiftLiveHelper
shared
].
oc_liveRoomsDataDidLoaded
=
YES
;
}
}
failure
:^
(
NSString
*
msg
,
int
code
)
{
}
failure
:^
(
NSString
*
msg
,
int
code
)
{
[
FUSDialogView
fus_showDialog
:
msg
];
[
FUSDialogView
fus_showDialog
:
msg
];
self
.
loadingCount
--
;
self
.
loadingCount
--
;
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Controller/FUSLiveMainViewController.m
View file @
a8cfe1a3
...
@@ -739,7 +739,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
...
@@ -739,7 +739,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
//服务器启动推流
//服务器启动推流
[
FUSLiveHttpHelper
fus_startPushStreamWithRoomId
:[[[
FUSLiveHelper
shareInstance
]
roomInfoModel
]
roomId
]
vdoid
:[[[
FUSLiveHelper
shareInstance
]
streamModel
]
vdoid
]
livingWay
:
@"0"
liveScope
:
[
FUSLiveHelper
shareInstance
].
roomScopeType
success
:^
(
NSDictionary
*
dict
){
[
FUSLiveHttpHelper
fus_startPushStreamWithRoomId
:[[[
FUSLiveHelper
shareInstance
]
roomInfoModel
]
roomId
]
vdoid
:[[[
FUSLiveHelper
shareInstance
]
streamModel
]
vdoid
]
livingWay
:
@"0"
liveScope
:
[
FUSLiveHelper
shareInstance
].
roomScopeType
success
:^
(
NSDictionary
*
dict
){
[
FUSLiveHttpHelper
fus_enterRoomWithRoomId
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
vdoid
:[
FUSLiveHelper
shareInstance
].
streamModel
.
vdoid
behaviorSrc
:
@""
password
:
@""
success
:^
(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
)
{
[
FUSLiveHttpHelper
fus_enterRoomWithRoomId
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
vdoid
:[
FUSLiveHelper
shareInstance
].
streamModel
.
vdoid
behaviorSrc
:
@""
password
:
@""
otherInfo
:
nil
success
:^
(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
)
{
if
(
!
[
roomInfoModel
.
roomId
isEqualToString
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
])
{
if
(
!
[
roomInfoModel
.
roomId
isEqualToString
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
])
{
FUSLogInfo
(
@"不是当前包房"
);
FUSLogInfo
(
@"不是当前包房"
);
...
@@ -1002,7 +1002,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
...
@@ -1002,7 +1002,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[
weakSelf
.
liveFunctionView
.
chatTableView
fus_addEnterRoomSystemTipMessage
];
[
weakSelf
.
liveFunctionView
.
chatTableView
fus_addEnterRoomSystemTipMessage
];
[
weakSelf
.
liveFunctionView
.
pusherChatTableView
fus_addEnterRoomSystemTipMessage
];
[
weakSelf
.
liveFunctionView
.
pusherChatTableView
fus_addEnterRoomSystemTipMessage
];
[
FUSLiveHttpHelper
fus_enterRoomWithRoomId
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
vdoid
:[
FUSLiveHelper
shareInstance
].
streamModel
.
vdoid
behaviorSrc
:
@""
password
:
@""
success
:^
(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
)
{
[
FUSLiveHttpHelper
fus_enterRoomWithRoomId
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
vdoid
:[
FUSLiveHelper
shareInstance
].
streamModel
.
vdoid
behaviorSrc
:
@""
password
:
@""
otherInfo
:
nil
success
:^
(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
)
{
if
(
!
[
roomInfoModel
.
roomId
isEqualToString
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
])
{
if
(
!
[
roomInfoModel
.
roomId
isEqualToString
:[
FUSLiveHelper
shareInstance
].
roomInfoModel
.
roomId
])
{
FUSLogInfo
(
@"不是当前包房"
);
FUSLogInfo
(
@"不是当前包房"
);
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSGetSuccessRecommendResultModel.h
0 → 100644
View file @
a8cfe1a3
//
// FUSGetSuccessRecommendResultModel.h
// FUSShowRoomModule
//
// Created by aaa on 2026/3/9.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class
FUSGetSuccessRecommendResultRecommendRoomModel
;
@interface
FUSGetSuccessRecommendResultModel
:
FUSBaseModel
/// 直播间ID
@property
(
nonatomic
,
copy
)
NSString
*
roomId
;
/// 直播间拉流地址
@property
(
nonatomic
,
copy
)
NSString
*
pullFlowUrl
;
/// 进入room
@property
(
nonatomic
,
strong
)
FUSGetSuccessRecommendResultRecommendRoomModel
*
__nullable
recommendRoom
;
@end
@interface
FUSGetSuccessRecommendResultRecommendRoomModel
:
FUSBaseModel
/// 主播ID
@property
(
nonatomic
,
copy
)
NSString
*
roomId
;
/// 主播类型
@property
(
nonatomic
,
copy
)
NSString
*
recommendType
;
/// 主播直播流地址
@property
(
nonatomic
,
copy
)
NSString
*
pullFlowUrl
;
@end
NS_ASSUME_NONNULL_END
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSGetSuccessRecommendResultModel.m
0 → 100644
View file @
a8cfe1a3
//
// FUSGetSuccessRecommendResultModel.m
// FUSShowRoomModule
//
// Created by aaa on 2026/3/9.
//
#import "FUSGetSuccessRecommendResultModel.h"
@implementation
FUSGetSuccessRecommendResultModel
+
(
NSDictionary
<
NSString
*
,
id
>
*
)
modelContainerPropertyGenericClass
{
return
@{
@"recommendRoom"
:
[
FUSGetSuccessRecommendResultRecommendRoomModel
class
]};
}
@end
@implementation
FUSGetSuccessRecommendResultRecommendRoomModel
@end
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHelper.h
View file @
a8cfe1a3
...
@@ -260,6 +260,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) {
...
@@ -260,6 +260,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) {
*/
*/
+
(
void
)
fus_playLiveWithRoomInfoModel
:(
FUSRoomInfoModel
*
_Nullable
)
roomInfoModel
+
(
void
)
fus_playLiveWithRoomInfoModel
:(
FUSRoomInfoModel
*
_Nullable
)
roomInfoModel
behaviorSrc
:(
NSString
*
_Nullable
)
behaviorSrc
behaviorSrc
:(
NSString
*
_Nullable
)
behaviorSrc
otherInfo
:(
NSDictionary
*
_Nullable
)
otherInfo
success
:(
void
(
^
_Nullable
)(
void
))
success
success
:(
void
(
^
_Nullable
)(
void
))
success
failure
:(
void
(
^
_Nullable
)(
void
))
failure
;
failure
:(
void
(
^
_Nullable
)(
void
))
failure
;
...
@@ -286,6 +287,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) {
...
@@ -286,6 +287,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) {
*/
*/
-
(
void
)
fus_switchRoomWithRoomInfoModel
:(
nonnull
FUSRoomInfoModel
*
)
roomInfoModel
-
(
void
)
fus_switchRoomWithRoomInfoModel
:(
nonnull
FUSRoomInfoModel
*
)
roomInfoModel
behaviorSrc
:(
NSString
*
_Nullable
)
behaviorSrc
behaviorSrc
:(
NSString
*
_Nullable
)
behaviorSrc
otherInfo
:(
NSDictionary
*
_Nullable
)
otherInfo
success
:(
void
(
^
_Nullable
)(
void
))
success
success
:(
void
(
^
_Nullable
)(
void
))
success
failure
:(
void
(
^
_Nullable
)(
void
))
failure
;
failure
:(
void
(
^
_Nullable
)(
void
))
failure
;
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHelper.m
View file @
a8cfe1a3
This diff is collapsed.
Click to expand it.
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.h
View file @
a8cfe1a3
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#import "FUSFansMemberModel.h"
#import "FUSFansMemberModel.h"
#import "FUSAssessQualityInfoModel.h"
#import "FUSAssessQualityInfoModel.h"
#import "FUSUserLiveAssessHistoryModel.h"
#import "FUSUserLiveAssessHistoryModel.h"
#import "FUSGetSuccessRecommendResultModel.h"
#import "FUSLiveGameModel.h"
#import "FUSLiveGameModel.h"
#import "FUSLivePopularRankModel.h"
#import "FUSLivePopularRankModel.h"
...
@@ -103,6 +104,7 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -103,6 +104,7 @@ NS_ASSUME_NONNULL_BEGIN
vdoid
:(
NSString
*
)
vdoid
vdoid
:(
NSString
*
)
vdoid
behaviorSrc
:(
NSString
*
)
behaviorSrc
behaviorSrc
:(
NSString
*
)
behaviorSrc
password
:(
NSString
*
)
password
password
:(
NSString
*
)
password
otherInfo
:(
NSDictionary
*
__nullable
)
otherInfo
success
:(
void
(
^
)(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
))
success
success
:(
void
(
^
)(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
))
success
failure
:(
void
(
^
)(
NSDictionary
*
errorDict
,
NSString
*
msg
,
int
code
))
failure
;
failure
:(
void
(
^
)(
NSDictionary
*
errorDict
,
NSString
*
msg
,
int
code
))
failure
;
...
@@ -381,9 +383,9 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -381,9 +383,9 @@ NS_ASSUME_NONNULL_BEGIN
@param success 成功回调
@param success 成功回调
@param failure 失败回调
@param failure 失败回调
*/
*/
+
(
void
)
fus_requestRecommendedListWithRoomId
:(
NSString
*
)
roomId
//
+ (void)fus_requestRecommendedListWithRoomId:(NSString *)roomId
success
:(
void
(
^
)(
NSArray
*
recommendArray
))
success
//
success:(void(^)(NSArray *recommendArray))success
failure
:(
void
(
^
)(
NSString
*
msg
,
int
code
,
NSDictionary
*
errorDict
))
failure
;
//
failure:(void(^)(NSString *msg, int code, NSDictionary *errorDict))failure;
#pragma mark - Other
#pragma mark - Other
...
@@ -1041,6 +1043,14 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -1041,6 +1043,14 @@ NS_ASSUME_NONNULL_BEGIN
succeed
:(
void
(
^
)(
void
))
succeed
succeed
:(
void
(
^
)(
void
))
succeed
failure
:(
void
(
^
)(
NSString
*
msg
,
NSInteger
code
))
failure
;
failure
:(
void
(
^
)(
NSString
*
msg
,
NSInteger
code
))
failure
;
/// 获取首页自动跳转直播间
/// @param roomId 客户端携带有的分享主播ID(非必填)
/// @param succeed 1
/// @param failure 0
+
(
void
)
fus_requestIndexGetSuccessRecommendResultWithRoomId
:(
NSString
*
__nullable
)
roomId
succeed
:(
void
(
^
)(
FUSGetSuccessRecommendResultModel
*
model
))
succeed
failure
:(
void
(
^
)(
NSString
*
msg
,
NSInteger
code
))
failure
;
@end
@end
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_END
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.m
View file @
a8cfe1a3
...
@@ -417,11 +417,12 @@
...
@@ -417,11 +417,12 @@
@param failure 失败回调
@param failure 失败回调
*/
*/
+
(
void
)
fus_enterRoomWithRoomId
:(
NSString
*
)
roomId
+
(
void
)
fus_enterRoomWithRoomId
:(
NSString
*
)
roomId
vdoid
:(
NSString
*
)
vdoid
vdoid
:(
NSString
*
)
vdoid
behaviorSrc
:(
NSString
*
)
behaviorSrc
behaviorSrc
:(
NSString
*
)
behaviorSrc
password
:(
NSString
*
)
password
password
:(
NSString
*
)
password
success
:(
void
(
^
)(
FUSRoomInfoModel
*
roomInfoModel
,
BOOL
micMode
,
NSString
*
streamUrl
,
NSString
*
pkInfo
))
success
otherInfo
:(
NSDictionary
*
)
otherInfo
failure
:(
void
(
^
)(
NSDictionary
*
errorDict
,
NSString
*
msg
,
int
code
))
failure
success
:(
void
(
^
)(
FUSRoomInfoModel
*
_Nonnull
,
BOOL
,
NSString
*
_Nonnull
,
NSString
*
_Nonnull
))
success
failure
:(
void
(
^
)(
NSDictionary
*
_Nonnull
,
NSString
*
_Nonnull
,
int
))
failure
{
{
// 空值校验
// 空值校验
if
([
NSString
isNullWithString
:
roomId
])
{
if
([
NSString
isNullWithString
:
roomId
])
{
...
@@ -444,6 +445,14 @@
...
@@ -444,6 +445,14 @@
params
[
@"behaviorSrc"
]
=
behaviorSrc
;
params
[
@"behaviorSrc"
]
=
behaviorSrc
;
}
}
if
(
otherInfo
!=
nil
&&
otherInfo
.
allKeys
.
count
>
0
)
{
NSString
*
recommendType
=
[
otherInfo
[
@"recommendType"
]
description
];
if
(
recommendType
!=
nil
&&
recommendType
.
length
>
0
)
{
params
[
@"recommendType"
]
=
recommendType
;
}
}
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSShowRoomURLs
.
fus_URL_LIVE_ENTER_ROOM
params
:
params
success
:^
(
NSDictionary
*
dataDict
,
int
code
)
{
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSShowRoomURLs
.
fus_URL_LIVE_ENTER_ROOM
params
:
params
success
:^
(
NSDictionary
*
dataDict
,
int
code
)
{
FUSLogVerbose
(
@""
);
FUSLogVerbose
(
@""
);
...
@@ -2923,4 +2932,20 @@
...
@@ -2923,4 +2932,20 @@
}];
}];
}
}
+
(
void
)
fus_requestIndexGetSuccessRecommendResultWithRoomId
:
(
NSString
*
)
roomId
succeed
:
(
void
(
^
)(
FUSGetSuccessRecommendResultModel
*
_Nonnull
))
succeed
failure
:
(
void
(
^
)(
NSString
*
_Nonnull
,
NSInteger
))
failure
{
NSDictionary
*
parm
=
@{};
if
(
roomId
!=
nil
&&
roomId
.
length
>
0
)
{
parm
=
@{
@"roomId"
:
roomId
};
}
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSShowRoomURLs
.
fus_URL_indexGetSuccessRecommendResult
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
if
(
succeed
)
{
succeed
([
FUSGetSuccessRecommendResultModel
fus_modelWithDict
:
dataDict
]);
}
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
if
(
failure
)
failure
(
dataDict
[
@"msg"
],
code
);
}];
}
@end
@end
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSSwiftLiveHelper.swift
View file @
a8cfe1a3
...
@@ -59,7 +59,7 @@ import RxSwift
...
@@ -59,7 +59,7 @@ import RxSwift
// 当每一次房间列表从未加载变成加载完成的状态
// 当每一次房间列表从未加载变成加载完成的状态
if
self
.
isManualLoginBehavior
.
value
==
true
{
if
self
.
isManualLoginBehavior
.
value
==
true
{
// 是手动登录的
// 是手动登录的
// Mediator.HomeList?.ff
_getSuccessRecommendResult()
self
.
fus
_getSuccessRecommendResult
()
}
}
else
{
else
{
// 不是手动登录的,所以不会触发推荐房间,那么检查一下是否有分享房间的缓存
// 不是手动登录的,所以不会触发推荐房间,那么检查一下是否有分享房间的缓存
...
@@ -247,8 +247,16 @@ import RxSwift
...
@@ -247,8 +247,16 @@ import RxSwift
// 这里控制着几个非常复杂的逻辑,要求的过程是在登录期间:1.首页信息加载完成+弹窗弹完了--->2.检查是否能进入推荐房间,并且进入。--->3.如果没有推荐进入房间,则立刻弹出7天签到,如果进入了推荐房间,则退出推荐房间再进行7天签到
// 这里控制着几个非常复杂的逻辑,要求的过程是在登录期间:1.首页信息加载完成+弹窗弹完了--->2.检查是否能进入推荐房间,并且进入。--->3.如果没有推荐进入房间,则立刻弹出7天签到,如果进入了推荐房间,则退出推荐房间再进行7天签到
/// 直播间房间已经加载过
/// 直播间房间已经加载过
public
let
liveRoomsDataDidLoaded
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
public
let
liveRoomsDataDidLoaded
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
@objc
public
var
oc_liveRoomsDataDidLoaded
:
Bool
{
get
{
self
.
liveRoomsDataDidLoaded
.
value
}
set
{
self
.
liveRoomsDataDidLoaded
.
accept
(
newValue
)
}
}
/// 登录期间,弹窗已经弹完了
/// 登录期间,弹窗已经弹完了
public
let
loginAlertViewIsComplete
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
public
let
loginAlertViewIsComplete
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
@objc
public
var
oc_loginAlertViewIsComplete
:
Bool
{
get
{
self
.
loginAlertViewIsComplete
.
value
}
set
{
self
.
loginAlertViewIsComplete
.
accept
(
newValue
)
}
}
/// 第一次启动的时候,完成了推荐分享房间的操作,0=初始化,1= 有推荐分享并进入,2=没有推荐分享并且完成了
/// 第一次启动的时候,完成了推荐分享房间的操作,0=初始化,1= 有推荐分享并进入,2=没有推荐分享并且完成了
public
let
launchCompleteRecommendLiveRoom
:
BehaviorRelay
<
Int
>
=
.
init
(
value
:
0
)
public
let
launchCompleteRecommendLiveRoom
:
BehaviorRelay
<
Int
>
=
.
init
(
value
:
0
)
@objc
public
var
oc_launchCompleteRecommendLiveRoom
:
Int
{
@objc
public
var
oc_launchCompleteRecommendLiveRoom
:
Int
{
...
@@ -266,6 +274,11 @@ import RxSwift
...
@@ -266,6 +274,11 @@ import RxSwift
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
public
let
isManualLoginBehavior
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
public
let
isManualLoginBehavior
:
BehaviorRelay
<
Bool
>
=
.
init
(
value
:
false
)
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
@objc
public
var
oc_isManualLoginBehavior
:
Bool
{
get
{
self
.
isManualLoginBehavior
.
value
}
set
{
self
.
isManualLoginBehavior
.
accept
(
newValue
)
}
}
/// 当前的推流 View
/// 当前的推流 View
...
@@ -507,8 +520,7 @@ import RxSwift
...
@@ -507,8 +520,7 @@ import RxSwift
otherInfo
:
[
AnyHashable
:
Any
]?,
otherInfo
:
[
AnyHashable
:
Any
]?,
success
:(()
->
Void
)?,
success
:(()
->
Void
)?,
failure
:(()
->
Void
)?)
{
failure
:(()
->
Void
)?)
{
// TODO: 这个otherInfo后期需要补上
FUSLiveHelper
.
fus_playLive
(
with
:
roomInfoModel
,
behaviorSrc
:
behaviorSrc
,
otherInfo
:
otherInfo
,
success
:
success
,
failure
:
failure
)
FUSLiveHelper
.
fus_playLive
(
with
:
roomInfoModel
,
behaviorSrc
:
behaviorSrc
,
success
:
success
,
failure
:
failure
)
}
}
...
@@ -554,10 +566,10 @@ import RxSwift
...
@@ -554,10 +566,10 @@ import RxSwift
@objc
public
func
switchRoom
(
roomInfoModel
:
FUSRoomInfoModel
,
@objc
public
func
switchRoom
(
roomInfoModel
:
FUSRoomInfoModel
,
hasPreloadVideo
:
Bool
,
hasPreloadVideo
:
Bool
,
behaviorSrc
:
String
,
behaviorSrc
:
String
,
otherInfo
:
[
AnyHashable
:
Any
]?,
success
:(()
->
Void
)?,
success
:(()
->
Void
)?,
failure
:(()
->
Void
)?)
{
failure
:(()
->
Void
)?)
{
// TODO: 这里是否是少了两个参数?还是不要?皮蛋最后一版本就没有
FUSLiveHelper
.
shareInstance
()
.
fus_switchRoom
(
with
:
roomInfoModel
,
behaviorSrc
:
behaviorSrc
,
otherInfo
:
otherInfo
,
success
:
success
,
failure
:
failure
)
FUSLiveHelper
.
shareInstance
()
.
fus_switchRoom
(
with
:
roomInfoModel
,
behaviorSrc
:
behaviorSrc
,
success
:
success
,
failure
:
failure
)
}
}
...
@@ -570,7 +582,7 @@ import RxSwift
...
@@ -570,7 +582,7 @@ import RxSwift
hasPreloadVideo
:
Bool
,
hasPreloadVideo
:
Bool
,
success
:(()
->
Void
)?,
success
:(()
->
Void
)?,
failure
:(()
->
Void
)?)
{
failure
:(()
->
Void
)?)
{
self
.
switchRoom
(
roomInfoModel
:
roomInfoModel
,
hasPreloadVideo
:
hasPreloadVideo
,
behaviorSrc
:
""
,
success
:
success
,
failure
:
failure
)
self
.
switchRoom
(
roomInfoModel
:
roomInfoModel
,
hasPreloadVideo
:
hasPreloadVideo
,
behaviorSrc
:
""
,
otherInfo
:
nil
,
success
:
success
,
failure
:
failure
)
}
}
...
@@ -704,6 +716,48 @@ import RxSwift
...
@@ -704,6 +716,48 @@ import RxSwift
self
.
processThermalState
.
accept
(
currentThermalState
)
self
.
processThermalState
.
accept
(
currentThermalState
)
}
}
// MARK: METOD
/// 获取首页自动跳转直播间
public
func
fus_getSuccessRecommendResult
()
{
let
checkVersionStatus
=
FUSConfig
.
sharedInstanced
()
.
devConfigs
.
appStatus
if
checkVersionStatus
==
true
{
// sh状态没有
return
}
FUSLiveHttpHelper
.
fus_requestIndexGetSuccessRecommendResult
(
withRoomId
:
FUSSwiftCacheDataShare
.
share
.
recommendRoomId
)
{[
weak
self
]
model
in
guard
let
self
=
self
else
{
return
}
if
let
roomId
=
model
.
recommendRoom
?
.
roomId
,
roomId
.
count
>
0
{
// 如果有推荐,则直接走推荐
// if let preloadRoomList = Mediator.Live?.preloadRoomList{
// Mediator.Live?.roomList = preloadRoomList
// }
FUSRouter
.
live
()
.
fus_enterLiveRoom
(
roomId
,
behaviorSrc
:
"5"
,
otherInfo
:
[
"recommendType"
:
model
.
recommendRoom
?
.
recommendType
.
description
??
""
])
FUSDataStatisticsManager
.
fus_behaviorJoinRoomLog
(
withReqType
:
4
,
reqEventType
:
-
1
,
extraInfo
:
""
,
extraJson
:
""
,
roomId
:
roomId
)
// 直播间:推荐进入,然后网页就确定不能进入了
self
.
launchCompleteRecommendLiveRoom
.
accept
(
1
)
self
.
launchCompleteWebShareLiveRoom
.
accept
(
2
)
}
else
{
// 如果没有推荐,则走直接进入流程
let
_
=
FUSHandleEventHelper
.
fus_checkAndEnterWebShareLiveRoom
(
isEnter
:
true
)
}
// 完成了所有推荐的任务,清空数据,以防干扰
FUSSwiftCacheDataShare
.
share
.
recommendRoomId
=
nil
FUSSwiftCacheDataShare
.
share
.
recommendExtraJson
=
nil
FUSSwiftCacheDataShare
.
share
.
recommendReqEventType
=
0
}
failure
:
{
msg
,
code
in
}
}
deinit
{
deinit
{
/// 虽然这个是个单利,这没什么用,但是还是写一写
/// 虽然这个是个单利,这没什么用,但是还是写一写
NotificationCenter
.
default
.
removeObserver
(
self
,
name
:
ProcessInfo
.
thermalStateDidChangeNotification
,
object
:
nil
)
NotificationCenter
.
default
.
removeObserver
(
self
,
name
:
ProcessInfo
.
thermalStateDidChangeNotification
,
object
:
nil
)
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/EndView/FUSVideoEndedView.m
View file @
a8cfe1a3
...
@@ -164,7 +164,7 @@
...
@@ -164,7 +164,7 @@
FUSRoomInfoModel
*
roomInfoModel
=
[
FUSRoomInfoModel
modelWithDictionary
:[
anchorModel
fus_getDictionary
]];
FUSRoomInfoModel
*
roomInfoModel
=
[
FUSRoomInfoModel
modelWithDictionary
:[
anchorModel
fus_getDictionary
]];
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomInfoModel
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomInfoModel
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
}
}
#pragma mark - UICollectionViewDelegateFlowLayout
#pragma mark - UICollectionViewDelegateFlowLayout
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSBulletsView/FUSBulletMessageGlobalView.m
View file @
a8cfe1a3
...
@@ -190,7 +190,7 @@
...
@@ -190,7 +190,7 @@
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
roomModel
.
roomId
=
self
.
currentModel
.
toUid
;
roomModel
.
roomId
=
self
.
currentModel
.
toUid
;
roomModel
.
face
=
self
.
currentModel
.
toFace
;
roomModel
.
face
=
self
.
currentModel
.
toFace
;
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomModel
behaviorSrc
:
@"
"
success
:
nil
failure
:
nil
];
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomModel
behaviorSrc
:
@"
6"
otherInfo
:
nil
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
currentModel
.
toUid
key
:
currentModel
.
keyId
keySort
:
currentModel
.
keySort
source
:
1
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
currentModel
.
toUid
key
:
currentModel
.
keyId
keySort
:
currentModel
.
keySort
source
:
1
success
:
nil
failure
:
nil
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
currentModel
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
currentModel
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSBulletsView/FUSBulletMessageNormalView.m
View file @
a8cfe1a3
...
@@ -139,7 +139,7 @@
...
@@ -139,7 +139,7 @@
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
roomModel
.
roomId
=
self
.
currentModel
.
toUid
;
roomModel
.
roomId
=
self
.
currentModel
.
toUid
;
roomModel
.
face
=
self
.
currentModel
.
toFace
;
roomModel
.
face
=
self
.
currentModel
.
toFace
;
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
currentModel
.
toUid
key
:
currentModel
.
keyId
keySort
:
currentModel
.
keySort
source
:
1
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
currentModel
.
toUid
key
:
currentModel
.
keyId
keySort
:
currentModel
.
keySort
source
:
1
success
:
nil
failure
:
nil
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
currentModel
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
currentModel
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSBulletsView/FUSBulletMessageSystemView.m
View file @
a8cfe1a3
...
@@ -139,7 +139,7 @@
...
@@ -139,7 +139,7 @@
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
roomModel
.
roomId
=
self
.
currentModel
.
toUid
;
roomModel
.
roomId
=
self
.
currentModel
.
toUid
;
roomModel
.
face
=
self
.
currentModel
.
toFace
;
roomModel
.
face
=
self
.
currentModel
.
toFace
;
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[[
FUSLiveHelper
shareInstance
]
fus_switchRoomWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
currentModel
.
toUid
key
:
currentModel
.
keyId
keySort
:
currentModel
.
keySort
source
:
1
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
currentModel
.
toUid
key
:
currentModel
.
keyId
keySort
:
currentModel
.
keySort
source
:
1
success
:
nil
failure
:
nil
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
currentModel
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
currentModel
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FunctionView/FUSLiveFunctionView.m
View file @
a8cfe1a3
...
@@ -1126,7 +1126,7 @@ BDAlphaPlayerMetalViewDelegate
...
@@ -1126,7 +1126,7 @@ BDAlphaPlayerMetalViewDelegate
roomModel
.
face
=
model
.
toFace
;
roomModel
.
face
=
model
.
toFace
;
// [FFSwiftLiveHelper.shared switchRoomWithRoomInfoModel:roomModel success:nil failure:nil];
// [FFSwiftLiveHelper.shared switchRoomWithRoomInfoModel:roomModel success:nil failure:nil];
NSString
*
behaviorSrc
=
model
.
barrageType
.
integerValue
==
FUSbarrageTypeGlobal
?
@"6"
:
@"7"
;
NSString
*
behaviorSrc
=
model
.
barrageType
.
integerValue
==
FUSbarrageTypeGlobal
?
@"6"
:
@"7"
;
[[
FUSSwiftLiveHelper
shared
]
switchRoomWithRoomInfoModel
:
roomModel
hasPreloadVideo
:
NO
behaviorSrc
:
behaviorSrc
success
:
nil
failure
:
nil
];
[[
FUSSwiftLiveHelper
shared
]
switchRoomWithRoomInfoModel
:
roomModel
hasPreloadVideo
:
NO
behaviorSrc
:
behaviorSrc
otherInfo
:
nil
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
model
.
toUid
key
:
model
.
keyId
keySort
:
model
.
keySort
source
:
2
success
:
nil
failure
:
nil
];
[
FUSLiveHttpHelper
fus_requestJumpToRoomStatFlowDataWithToRoomId
:
model
.
toUid
key
:
model
.
keyId
keySort
:
model
.
keySort
source
:
2
success
:
nil
failure
:
nil
];
// 等于1的时候是系统弹幕也就是发宝箱
// 等于1的时候是系统弹幕也就是发宝箱
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
model
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
[
FUSDataStatisticsManager
fus_behaviorJoinRoomLogWithReqType
:
7
reqEventType
:[
model
.
msgType
.
description
isEqualToString
:
@"1"
]
?
2
:
1
extraInfo
:
@""
extraJson
:
@""
roomId
:
roomModel
.
roomId
];
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.h
View file @
a8cfe1a3
...
@@ -542,6 +542,9 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -542,6 +542,9 @@ NS_ASSUME_NONNULL_BEGIN
/// PK主播领取奖励
/// PK主播领取奖励
+
(
NSString
*
)
fus_URL_vsHostdataRewardBatchGet
;
+
(
NSString
*
)
fus_URL_vsHostdataRewardBatchGet
;
/// 获取首页自动跳转直播间
+
(
NSString
*
)
fus_URL_indexGetSuccessRecommendResult
;
@end
@end
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.m
View file @
a8cfe1a3
...
@@ -876,6 +876,10 @@
...
@@ -876,6 +876,10 @@
+
(
NSString
*
)
fus_URL_vsHostdataRewardBatchGet
{
+
(
NSString
*
)
fus_URL_vsHostdataRewardBatchGet
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/vs/hostdata/reward/batch/get"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/vs/hostdata/reward/batch/get"
];
}
}
/// 获取首页自动跳转直播间
+
(
NSString
*
)
fus_URL_indexGetSuccessRecommendResult
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/index/getSuccessRecommendResult.html"
];
}
@end
@end
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Router/FUSShowRoomRouter.m
View file @
a8cfe1a3
...
@@ -145,7 +145,11 @@
...
@@ -145,7 +145,11 @@
}
}
-
(
void
)
fus_enterLiveRoomWithModel
:
(
FUSRoomInfoModel
*
)
roomModel
behaviorSrc
:
(
nonnull
NSString
*
)
behaviorSrc
{
-
(
void
)
fus_enterLiveRoomWithModel
:
(
FUSRoomInfoModel
*
)
roomModel
behaviorSrc
:
(
nonnull
NSString
*
)
behaviorSrc
{
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
behaviorSrc
success
:
nil
failure
:
nil
];
[
self
fus_enterLiveRoomWithModel
:
roomModel
behaviorSrc
:
behaviorSrc
otherInfo
:
nil
];
}
-
(
void
)
fus_enterLiveRoomWithModel
:
(
FUSRoomInfoModel
*
)
model
behaviorSrc
:
(
NSString
*
)
behaviorSrc
otherInfo
:
(
NSDictionary
*
)
otherInfo
{
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
model
behaviorSrc
:
behaviorSrc
otherInfo
:
otherInfo
success
:
nil
failure
:
nil
];
}
}
/// 发送弹幕
/// 发送弹幕
...
@@ -194,9 +198,12 @@
...
@@ -194,9 +198,12 @@
[
self
fus_enterLiveRoom
:
roomId
behaviorSrc
:
@""
];
[
self
fus_enterLiveRoom
:
roomId
behaviorSrc
:
@""
];
}
}
-
(
void
)
fus_enterLiveRoom
:
(
NSString
*
)
roomId
behaviorSrc
:
(
nonnull
NSString
*
)
behaviorSrc
{
-
(
void
)
fus_enterLiveRoom
:
(
NSString
*
)
roomId
behaviorSrc
:
(
nonnull
NSString
*
)
behaviorSrc
{
[
self
fus_enterLiveRoom
:
roomId
behaviorSrc
:
behaviorSrc
otherInfo
:
nil
];
}
-
(
void
)
fus_enterLiveRoom
:
(
NSString
*
)
roomId
behaviorSrc
:
(
NSString
*
)
behaviorSrc
otherInfo
:
(
NSDictionary
*
)
otherInfo
{
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
FUSRoomInfoModel
*
roomModel
=
[[
FUSRoomInfoModel
alloc
]
init
];
roomModel
.
roomId
=
roomId
;
roomModel
.
roomId
=
roomId
;
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
behaviorSrc
success
:
nil
failure
:
nil
];
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
behaviorSrc
otherInfo
:
otherInfo
success
:
nil
failure
:
nil
];
}
}
/**
/**
...
@@ -289,7 +296,7 @@
...
@@ -289,7 +296,7 @@
[
FUSTalkingData
fus_trackEvent
:
FUSLiveEventTrackParams
.
fus_EVENT_ROOM_ENTER_SOURCE
label
:
@""
parameters
:
@{
@"source"
:
@"push"
,
[
FUSTalkingData
fus_trackEvent
:
FUSLiveEventTrackParams
.
fus_EVENT_ROOM_ENTER_SOURCE
label
:
@""
parameters
:
@{
@"source"
:
@"push"
,
@"room_id"
:
model
.
roomId
@"room_id"
:
model
.
roomId
}];
}];
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
model
behaviorSrc
:
@""
success
:
nil
failure
:
nil
];
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
model
behaviorSrc
:
@""
otherInfo
:
nil
success
:
nil
failure
:
nil
];
[
FUSLiveHelper
shareInstance
].
pushUID
=
nil
;
[
FUSLiveHelper
shareInstance
].
pushUID
=
nil
;
// Firebase 统计
// Firebase 统计
[
FIRAnalytics
logEventWithName
:
@"enterroom"
parameters
:@{
@"source"
:
@"other"
,
[
FIRAnalytics
logEventWithName
:
@"enterroom"
parameters
:@{
@"source"
:
@"other"
,
...
@@ -397,7 +404,7 @@
...
@@ -397,7 +404,7 @@
FUSRoomInfoModel
*
roomModel
=
[
FUSRoomInfoModel
new
];
FUSRoomInfoModel
*
roomModel
=
[
FUSRoomInfoModel
new
];
roomModel
.
roomType
=
@"2"
;
roomModel
.
roomType
=
@"2"
;
roomModel
.
roomId
=
[
FUSCacheDataShare
shareStore
].
userDetailInfo
.
uid
;
roomModel
.
roomId
=
[
FUSCacheDataShare
shareStore
].
userDetailInfo
.
uid
;
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
success
:^
{
[
FUSLiveHelper
fus_playLiveWithRoomInfoModel
:
roomModel
behaviorSrc
:
@""
otherInfo
:
nil
success
:^
{
FUSLogDebug
(
@""
);
FUSLogDebug
(
@""
);
}
failure
:^
{
}
failure
:^
{
FUSLogDebug
(
@""
);
FUSLogDebug
(
@""
);
...
@@ -650,6 +657,10 @@
...
@@ -650,6 +657,10 @@
[
FUSSwiftLiveHelper
shared
].
oc_launchCompleteWebShareLiveRoom
=
tag
;
[
FUSSwiftLiveHelper
shared
].
oc_launchCompleteWebShareLiveRoom
=
tag
;
}
}
-
(
void
)
fus_setIsManualLoginBehavior
:
(
BOOL
)
action
{
[
FUSSwiftLiveHelper
shared
].
oc_isManualLoginBehavior
=
action
;
}
#pragma mark - HTTP
#pragma mark - HTTP
/**
/**
* 追踪包房
* 追踪包房
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/Login/Other/FUSLoginHttpHelper.m
View file @
a8cfe1a3
...
@@ -69,6 +69,8 @@
...
@@ -69,6 +69,8 @@
// 登录账号、密码存储到本地
// 登录账号、密码存储到本地
[[
FUSAccountStore
shareStore
]
fus_addAccountWithAccount
:
acount
yaboID
:
uid
password
:
pwd
countryCode
:
countryCode
countryName
:
countryName
];
[[
FUSAccountStore
shareStore
]
fus_addAccountWithAccount
:
acount
yaboID
:
uid
password
:
pwd
countryCode
:
countryCode
countryName
:
countryName
];
[[
FUSRouter
liveRouter
]
fus_setIsManualLoginBehavior
:
YES
];
if
(
success
)
success
(
dataDict
,
code
);
if
(
success
)
success
(
dataDict
,
code
);
}
failure
:^
(
NSDictionary
*
dataDict
,
int
code
)
{
}
failure
:^
(
NSDictionary
*
dataDict
,
int
code
)
{
...
@@ -335,6 +337,7 @@
...
@@ -335,6 +337,7 @@
[
FUSCacheDataShare
shareStore
].
originType
=
nil
;
[
FUSCacheDataShare
shareStore
].
originType
=
nil
;
[
FUSCacheDataShare
shareStore
].
agentCode
=
nil
;
[
FUSCacheDataShare
shareStore
].
agentCode
=
nil
;
[
FUSSwiftCacheDataShare
share
].
oc_isNewRegister
=
YES
;
[
FUSSwiftCacheDataShare
share
].
oc_isNewRegister
=
YES
;
[[
FUSRouter
liveRouter
]
fus_setIsManualLoginBehavior
:
YES
];
if
(
success
)
success
(
dataDict
);
if
(
success
)
success
(
dataDict
);
}
failure
:^
(
NSDictionary
*
dataDict
,
int
code
)
{
}
failure
:^
(
NSDictionary
*
dataDict
,
int
code
)
{
if
(
code
==
-
911
&&
skip
==
0
)
{
if
(
code
==
-
911
&&
skip
==
0
)
{
...
@@ -644,6 +647,8 @@
...
@@ -644,6 +647,8 @@
// 登录验证信息存储到本地
// 登录验证信息存储到本地
[
FUSHistoryLoginStore
fus_addHistoryLoginVerifyWithModel
:
userVerifyModel
];
[
FUSHistoryLoginStore
fus_addHistoryLoginVerifyWithModel
:
userVerifyModel
];
[[
FUSRouter
liveRouter
]
fus_setIsManualLoginBehavior
:
YES
];
if
(
success
)
success
(
dataDict
);
if
(
success
)
success
(
dataDict
);
}
failure
:^
(
NSDictionary
*
dataDict
,
int
errorCode
)
{
}
failure
:^
(
NSDictionary
*
dataDict
,
int
errorCode
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment