|
@@ -15,7 +15,17 @@ enum MyFollowAndFanType {
|
|
|
|
|
|
class MyFollowAndFanViewController: BaseViewController {
|
|
|
|
|
|
+
|
|
|
+ /// 类型
|
|
|
var myfollowAndFanType : MyFollowAndFanType?
|
|
|
+ /// 关注数组
|
|
|
+ var userFollowModels = Array<UserFollowModel>()
|
|
|
+ /// 粉丝数组
|
|
|
+ var userFanModels = Array<UserFanModel>()
|
|
|
+ /// 用户信息
|
|
|
+ var userDetailModel : UserDetailModel?
|
|
|
+ /// 默认图
|
|
|
+ var emptyView : DIYEmptyView?
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
super.viewDidLoad()
|
|
@@ -38,31 +48,28 @@ class MyFollowAndFanViewController: BaseViewController {
|
|
|
|
|
|
override func setupData() {
|
|
|
|
|
|
- var emptyView : DIYEmptyView?
|
|
|
-
|
|
|
if myfollowAndFanType == .follow {
|
|
|
tableView.tableHeaderView = followHeaderView
|
|
|
- emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_fans", titleStr: nil, detailStr: "发布动态,让更多人去认识你", btnTitleStr: "发布动态") {
|
|
|
+ emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_kept", titleStr: nil, detailStr: "关注其他彩虹居民后\n可以在这里浏览他们的美好瞬间!", btnTitleStr: "找朋友") {
|
|
|
[weak self] in
|
|
|
- self?.tabBarController?.selectedIndex = 2
|
|
|
- self?.navigationController?.popToRootViewController(animated: false)
|
|
|
+
|
|
|
+ let vc = CommunityFindFriendsViewController()
|
|
|
+ self?.navigationController?.pushViewController(vc, animated: true)
|
|
|
|
|
|
}
|
|
|
emptyView?.actionBtnHorizontalMargin = 58
|
|
|
emptyView?.contentViewY = kScaleValue(value: 164)
|
|
|
-
|
|
|
+
|
|
|
}else if myfollowAndFanType == .fan {
|
|
|
tableView.tableHeaderView = fanHeaderView
|
|
|
- emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_kept", titleStr: nil, detailStr: "关注其他彩虹居民后\n可以在这里浏览他们的美好瞬间!", btnTitleStr: "找朋友") {
|
|
|
+ emptyView = DIYEmptyView.emptyActionView(withImageStr: "default_page_fans", titleStr: nil, detailStr: "发布动态,让更多人去认识你", btnTitleStr: "发布动态") {
|
|
|
[weak self] in
|
|
|
-
|
|
|
- let vc = CommunityFindFriendsViewController()
|
|
|
- self?.navigationController?.pushViewController(vc, animated: true)
|
|
|
+ self?.tabBarController?.selectedIndex = 2
|
|
|
+ self?.navigationController?.popToRootViewController(animated: false)
|
|
|
|
|
|
}
|
|
|
emptyView?.actionBtnHorizontalMargin = 66
|
|
|
emptyView?.contentViewY = kScaleValue(value: 151)
|
|
|
-
|
|
|
}
|
|
|
|
|
|
emptyView?.subViewMargin = 20
|
|
@@ -74,6 +81,17 @@ class MyFollowAndFanViewController: BaseViewController {
|
|
|
tableView.ly_emptyView = emptyView
|
|
|
tableView.ly_startLoading()
|
|
|
|
|
|
+ /// 上拉刷新
|
|
|
+ tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) {
|
|
|
+ [weak self] (page) in
|
|
|
+ self?.userFollowsFans(page:page)
|
|
|
+ }
|
|
|
+ /// 下拉加载
|
|
|
+ tableView.addFooterWithWithHeader(withAutomaticallyRefresh: false) {
|
|
|
+ [weak self] (page) in
|
|
|
+ self?.userFollowsFans(page:page)
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private lazy var tableView: UITableView = {
|
|
@@ -89,6 +107,7 @@ class MyFollowAndFanViewController: BaseViewController {
|
|
|
private lazy var followHeaderView: MyFollowAndFanHeaderView = {
|
|
|
let followHeaderView = MyFollowAndFanHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 36))
|
|
|
followHeaderView.titleLabel.isHidden = false
|
|
|
+ followHeaderView.userDetailModel = self.userDetailModel
|
|
|
return followHeaderView
|
|
|
}()
|
|
|
|
|
@@ -99,6 +118,83 @@ class MyFollowAndFanViewController: BaseViewController {
|
|
|
}()
|
|
|
}
|
|
|
|
|
|
+extension MyFollowAndFanViewController {
|
|
|
+
|
|
|
+
|
|
|
+ /// 获取关注列表 / 获取粉丝列表
|
|
|
+ ///
|
|
|
+ /// - Parameter page: 分页
|
|
|
+ func userFollowsFans(page:Int = 1) {
|
|
|
+ if myfollowAndFanType == .follow {
|
|
|
+ userFollows(page: page)
|
|
|
+
|
|
|
+ }else if myfollowAndFanType == .fan {
|
|
|
+ userFans(page: page)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 获取关注列表
|
|
|
+ func userFollows(page:Int = 1) {
|
|
|
+ SwiftMoyaNetWorkServiceUser.shared().userFollowsApi(uid: self.userDetailModel?.uid ?? 0, page: page) {[weak self] (userFollowsModel) -> (Void) in
|
|
|
+ let userFollowsModel = userFollowsModel as? UserFollowsModel
|
|
|
+ if userFollowsModel?.pagination?.currentPage ?? 1 <= userFollowsModel?.pagination?.totalPages ?? 1 {
|
|
|
+ if userFollowsModel?.pagination?.currentPage == 1{
|
|
|
+ self?.userFollowModels.removeAll()
|
|
|
+ }
|
|
|
+ self?.userFollowModels = (self?.userFollowModels)! + (userFollowsModel?.data!)!
|
|
|
+ self?.tableView.reloadData()
|
|
|
+ if self?.userFollowModels.count ?? 0 <= userFollowsModel?.pagination?.perPage ?? 0 {
|
|
|
+ self?.tableView.isHiddenFooter(true)
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ self?.tableView.endFooterNoMoreData()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 获取粉丝列表
|
|
|
+ func userFans(page:Int = 1) {
|
|
|
+ SwiftMoyaNetWorkServiceUser.shared().userFansApi(uid: self.userDetailModel?.uid ?? 0, page: page) {[weak self] (userFansModel) -> (Void) in
|
|
|
+ let userFansModel = userFansModel as? UserFansModel
|
|
|
+ if userFansModel?.pagination?.currentPage ?? 1 <= userFansModel?.pagination?.totalPages ?? 1 {
|
|
|
+ if userFansModel?.pagination?.currentPage == 1{
|
|
|
+ self?.userFanModels.removeAll()
|
|
|
+ }
|
|
|
+ self?.userFanModels = (self?.userFanModels)! + (userFansModel?.data!)!
|
|
|
+ self?.tableView.reloadData()
|
|
|
+ if self?.userFanModels.count ?? 0 <= userFansModel?.pagination?.perPage ?? 0 {
|
|
|
+ self?.tableView.isHiddenFooter(true)
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ self?.tableView.endFooterNoMoreData()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 关注
|
|
|
+ func userFollow(followUid:Int,completion: @escaping (Int) -> Void) {
|
|
|
+ SwiftMoyaNetWorkServiceUser.shared().userFollowApi(followUid: followUid) {[weak self] (data) -> (Void) in
|
|
|
+ self?.userFollowCheckStatus(followUid: followUid, uid: self?.userDetailModel?.uid ?? 0, completion: completion)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 取消关注
|
|
|
+ func userCancelFollow(followUid:Int,completion: @escaping (Int) -> Void) {
|
|
|
+ SwiftMoyaNetWorkServiceUser.shared().userCancelFollowApi(followUid: followUid) {
|
|
|
+ [weak self] (data) -> (Void) in
|
|
|
+ self?.userFollowCheckStatus(followUid: followUid, uid: self?.userDetailModel?.uid ?? 0, completion: completion)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 检查用户关注状态
|
|
|
+ func userFollowCheckStatus(followUid:Int,uid:Int,completion: @escaping (Int) -> Void) {
|
|
|
+ SwiftMoyaNetWorkServiceUser.shared().userFollowCheckStatus(followUid: followUid, uid: uid) {(isFollow) -> (Void) in
|
|
|
+ let isFollow = isFollow as? Int
|
|
|
+ completion(isFollow ?? 0)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// MARK: - tableView dataSource && delegate
|
|
|
extension MyFollowAndFanViewController: UITableViewDataSource, UITableViewDelegate {
|
|
|
|
|
@@ -107,12 +203,51 @@ extension MyFollowAndFanViewController: UITableViewDataSource, UITableViewDelega
|
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
|
- return 10
|
|
|
+ if myfollowAndFanType == .follow {
|
|
|
+ return userFollowModels.isEmpty ? 0 : userFollowModels.count
|
|
|
+
|
|
|
+ }else if myfollowAndFanType == .fan {
|
|
|
+ return userFanModels.isEmpty ? 0 : userFanModels.count
|
|
|
+ }
|
|
|
+ return 0
|
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
|
let cell = SearchUserLitTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
|
|
|
- cell.followType = .alreadyFollow
|
|
|
+ if myfollowAndFanType == .follow {
|
|
|
+ cell.userFollowModel = userFollowModels[indexPath.row]
|
|
|
+ }else if myfollowAndFanType == .fan {
|
|
|
+ cell.userFanModel = userFanModels[indexPath.row]
|
|
|
+ }
|
|
|
+ cell.followButtonClosure = {
|
|
|
+ [weak self] in
|
|
|
+ if self?.myfollowAndFanType == .follow {
|
|
|
+ if cell.userFollowModel?.isFollowStatus == 0 { //加关注
|
|
|
+ self?.userFollow(followUid: cell.userFollowModel?.followUid ?? 0, completion: { (isFollow) -> Void in
|
|
|
+ cell.userFanModel?.isFollowStatus = isFollow
|
|
|
+ self?.tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
|
|
|
+ })
|
|
|
+ }else { //取消关注
|
|
|
+ self?.userCancelFollow(followUid: cell.userFollowModel?.followUid ?? 0, completion: { (isFollow) -> Void in
|
|
|
+ cell.userFanModel?.isFollowStatus = isFollow
|
|
|
+ self?.tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ }else if self?.myfollowAndFanType == .fan {
|
|
|
+ if cell.userFanModel?.isFollowStatus == 0 {//加关注
|
|
|
+ self?.userFollow(followUid: cell.userFanModel?.fanUid ?? 0, completion: { (isFollow) -> Void in
|
|
|
+ cell.userFanModel?.isFollowStatus = isFollow
|
|
|
+ self?.tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
|
|
|
+ })
|
|
|
+ }else {//取消关注
|
|
|
+ self?.userCancelFollow(followUid: cell.userFanModel?.fanUid ?? 0, completion: { (isFollow) -> Void in
|
|
|
+ cell.userFanModel?.isFollowStatus = isFollow
|
|
|
+ self?.tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return cell
|
|
|
}
|
|
|
|