VirusViewModel.swift 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. //
  2. // VirusViewModel.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/7/2.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. class VirusViewModel: NSObject {
  10. static let shared : VirusViewModel = VirusViewModel()
  11. }
  12. // MARK: - CommunityRecommendDataModel
  13. extension VirusViewModel {
  14. /// 不喜欢
  15. ///
  16. /// - Parameters:
  17. /// - communityRecommendDataModel: 帖子模型
  18. /// - completion: 回调
  19. private func virueRecordAddApiLike(communityRecommendDataModel:CommunityRecommendDataModel,completion: @escaping (Int) -> Void) {
  20. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  21. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.unlike ?? "")
  22. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.unlike.rawValue
  23. if communityRecommendDataModel.isDislike == 0 {
  24. virueRecordAddParameterModel.behaviorValue = 1
  25. }
  26. virueRecordAddParameterModel.postId = communityRecommendDataModel.id
  27. virueRecordAddParameterModel.postAuthorUid = "\(communityRecommendDataModel.uid!)"
  28. if communityRecommendDataModel.title == nil || communityRecommendDataModel.title == "" {
  29. virueRecordAddParameterModel.postDesc = String(describing: communityRecommendDataModel.content!.prefix(20))
  30. }else {
  31. virueRecordAddParameterModel.postDesc = communityRecommendDataModel.title
  32. }
  33. virueRecordAddParameterModel.postType = communityRecommendDataModel.type
  34. virueRecordAddParameterModel.postCover = communityRecommendDataModel.img
  35. virueRecordAddParameterModel.actionId = "\(communityRecommendDataModel.id!)"
  36. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  37. if communityRecommendDataModel.isDislike == 0 {
  38. completion(1)
  39. }
  40. })
  41. }
  42. /// 喜欢/不喜欢
  43. ///
  44. /// - Parameters:
  45. /// - communityRecommendDataModel: 贴字模型
  46. /// - y: 定位置
  47. func like(communityRecommendDataModel: CommunityRecommendDataModel,y:CGFloat,tableView:UITableView) {
  48. if communityRecommendDataModel.isDislike == 0 {//喜欢
  49. AlertSheetView.sheetDislike(dislike: 0, y: y) {
  50. [weak self] (view:CardContentUserDisLikeView) in
  51. self?.virueRecordAddApiLike(communityRecommendDataModel: communityRecommendDataModel, completion: { (isFollow) in
  52. communityRecommendDataModel.isDislike = isFollow
  53. tableView.reloadData()
  54. })
  55. }
  56. }else {//不喜欢
  57. AlertSheetView.sheetDislike(dislike: 1, y: y) {
  58. (view:CardContentUserDisLikeView) in
  59. }
  60. }
  61. }
  62. /// 点赞
  63. ///
  64. /// - Parameters:
  65. /// - communityRecommendDataModel: 帖子模型
  66. /// - completion: 回调
  67. func virueRecordAddApiPraise(communityRecommendDataModel:CommunityRecommendDataModel,completion: @escaping (Int) -> Void) {
  68. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  69. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  70. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  71. if communityRecommendDataModel.isLike == 0 {
  72. virueRecordAddParameterModel.behaviorValue = 1
  73. }else {
  74. virueRecordAddParameterModel.behaviorValue = 0
  75. }
  76. virueRecordAddParameterModel.postId = communityRecommendDataModel.id
  77. virueRecordAddParameterModel.postAuthorUid = "\(communityRecommendDataModel.uid!)"
  78. if communityRecommendDataModel.title == nil || communityRecommendDataModel.title == "" {
  79. virueRecordAddParameterModel.postDesc = String(describing: communityRecommendDataModel.content!.prefix(20))
  80. }else {
  81. virueRecordAddParameterModel.postDesc = communityRecommendDataModel.title
  82. }
  83. virueRecordAddParameterModel.postType = communityRecommendDataModel.type
  84. virueRecordAddParameterModel.postCover = communityRecommendDataModel.img
  85. virueRecordAddParameterModel.actionId = "\(communityRecommendDataModel.id!)"
  86. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  87. if communityRecommendDataModel.isLike == 0 {
  88. completion(1)
  89. }else {
  90. completion(0)
  91. }
  92. })
  93. }
  94. /// 点赞
  95. ///
  96. /// - Parameters:
  97. /// - communityRecommendDataModel: 帖子模型
  98. func praise(communityRecommendDataModel: CommunityRecommendDataModel,tableView:UITableView) {
  99. virueRecordAddApiPraise(communityRecommendDataModel: communityRecommendDataModel, completion: {(isLike) in
  100. let isLike = isLike as Int
  101. var praiseCount : Int = communityRecommendDataModel.praiseCount ?? 0
  102. if isLike == 0 {
  103. praiseCount = (communityRecommendDataModel.praiseCount ?? 0) - 1
  104. }else {
  105. praiseCount = (communityRecommendDataModel.praiseCount ?? 0) + 1
  106. }
  107. communityRecommendDataModel.praiseCount = praiseCount
  108. communityRecommendDataModel.isLike = isLike
  109. tableView.reloadData()
  110. })
  111. }
  112. /// 收藏
  113. ///
  114. /// - Parameters:
  115. /// - communityRecommendDataModel: 帖子模型
  116. /// - completion: 回调
  117. func virueRecordAddApiCollection(communityRecommendDataModel:CommunityRecommendDataModel,completion: @escaping (Int) -> Void) {
  118. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  119. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  120. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  121. if communityRecommendDataModel.isCollect == 0 {
  122. virueRecordAddParameterModel.behaviorValue = 1
  123. }else {
  124. virueRecordAddParameterModel.behaviorValue = 0
  125. }
  126. virueRecordAddParameterModel.postId = communityRecommendDataModel.id
  127. virueRecordAddParameterModel.postAuthorUid = "\(communityRecommendDataModel.uid!)"
  128. if communityRecommendDataModel.title == nil || communityRecommendDataModel.title == "" {
  129. virueRecordAddParameterModel.postDesc = String(describing: communityRecommendDataModel.content!.prefix(20))
  130. }else {
  131. virueRecordAddParameterModel.postDesc = communityRecommendDataModel.title
  132. }
  133. virueRecordAddParameterModel.postType = communityRecommendDataModel.type
  134. virueRecordAddParameterModel.postCover = communityRecommendDataModel.img
  135. virueRecordAddParameterModel.actionId = "\(communityRecommendDataModel.id!)"
  136. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  137. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  138. if communityRecommendDataModel.isCollect == 0 {
  139. completion(1)
  140. }else {
  141. completion(0)
  142. }
  143. })
  144. }
  145. /// 收藏
  146. ///
  147. /// - Parameters:
  148. /// - communityRecommendDataModel: 帖子模型
  149. func collection(communityRecommendDataModel: CommunityRecommendDataModel,tableView:UITableView) {
  150. virueRecordAddApiCollection(communityRecommendDataModel: communityRecommendDataModel, completion: {(isCollect) in
  151. let isCollect = isCollect as Int
  152. communityRecommendDataModel.isCollect = isCollect
  153. tableView.reloadData()
  154. })
  155. }
  156. }
  157. // MARK: - CommunityFollowDataModel
  158. extension VirusViewModel {
  159. /// 不喜欢
  160. ///
  161. /// - Parameters:
  162. /// - communityRecommendDataModel: 帖子模型
  163. /// - completion: 回调
  164. private func virueRecordAddApiLike(communityFollowDataModel:CommunityFollowDataModel,completion: @escaping (Int) -> Void) {
  165. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  166. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.unlike ?? "")
  167. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.unlike.rawValue
  168. if communityFollowDataModel.relateData?.isDislike == 0 {
  169. virueRecordAddParameterModel.behaviorValue = 1
  170. }
  171. virueRecordAddParameterModel.postId = communityFollowDataModel.relateData?.id
  172. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel.relateData?.uid! ?? 0)"
  173. if communityFollowDataModel.relateData?.title == nil || communityFollowDataModel.relateData?.title == "" {
  174. virueRecordAddParameterModel.postDesc = String(describing: communityFollowDataModel.relateData?.content!.prefix(20))
  175. }else {
  176. virueRecordAddParameterModel.postDesc = communityFollowDataModel.relateData?.title
  177. }
  178. virueRecordAddParameterModel.postType = communityFollowDataModel.relateData?.type
  179. virueRecordAddParameterModel.postCover = communityFollowDataModel.relateData?.img
  180. virueRecordAddParameterModel.actionId = "\(communityFollowDataModel.relateData?.id ?? 0)"
  181. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  182. if communityFollowDataModel.relateData?.isDislike == 0 {
  183. completion(1)
  184. }
  185. })
  186. }
  187. /// 喜欢/不喜欢
  188. ///
  189. /// - Parameters:
  190. /// - communityFollowDataModel: 贴字模型
  191. /// - y: 定位置
  192. func like(communityFollowDataModel:CommunityFollowDataModel,y:CGFloat,tableView:UITableView) {
  193. if communityFollowDataModel.relateData?.isDislike == 0 {//喜欢
  194. AlertSheetView.sheetDislike(dislike: 0, y: y) {
  195. [weak self] (view:CardContentUserDisLikeView) in
  196. self?.virueRecordAddApiLike(communityFollowDataModel: communityFollowDataModel, completion: { (isFollow) in
  197. communityFollowDataModel.relateData?.isDislike = isFollow
  198. tableView.reloadData()
  199. })
  200. }
  201. }else {//不喜欢
  202. AlertSheetView.sheetDislike(dislike: 1, y: y) {
  203. (view:CardContentUserDisLikeView) in
  204. }
  205. }
  206. }
  207. /// 点赞
  208. ///
  209. /// - Parameters:
  210. /// - communityRecommendDataModel: 帖子模型
  211. /// - completion: 回调
  212. func virueRecordAddApiPraise(communityFollowDataModel:CommunityFollowDataModel,completion: @escaping (Int) -> Void) {
  213. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  214. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  215. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  216. if communityFollowDataModel.relateData?.isLike == 0 {
  217. virueRecordAddParameterModel.behaviorValue = 1
  218. }else {
  219. virueRecordAddParameterModel.behaviorValue = 0
  220. }
  221. virueRecordAddParameterModel.postId = communityFollowDataModel.relateData?.id
  222. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel.relateData?.uid! ?? 0)"
  223. if communityFollowDataModel.relateData?.title == nil || communityFollowDataModel.relateData?.title == "" {
  224. virueRecordAddParameterModel.postDesc = String(describing: communityFollowDataModel.relateData?.content!.prefix(20))
  225. }else {
  226. virueRecordAddParameterModel.postDesc = communityFollowDataModel.relateData?.title
  227. }
  228. virueRecordAddParameterModel.postType = communityFollowDataModel.relateData?.type
  229. virueRecordAddParameterModel.postCover = communityFollowDataModel.relateData?.img
  230. virueRecordAddParameterModel.actionId = "\(communityFollowDataModel.relateData?.id ?? 0)"
  231. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  232. if communityFollowDataModel.relateData?.isLike == 0 {
  233. completion(1)
  234. }else {
  235. completion(0)
  236. }
  237. })
  238. }
  239. /// 点赞
  240. ///
  241. /// - Parameters:
  242. /// - communityRecommendDataModel: 帖子模型
  243. func praise(communityFollowDataModel:CommunityFollowDataModel,tableView:UITableView) {
  244. virueRecordAddApiPraise(communityFollowDataModel: communityFollowDataModel) { (isLike) in
  245. let isLike = isLike as Int
  246. var praiseCount : Int = communityFollowDataModel.relateData?.praiseCount ?? 0
  247. if isLike == 0 {
  248. praiseCount = (communityFollowDataModel.relateData?.praiseCount ?? 0) - 1
  249. }else {
  250. praiseCount = (communityFollowDataModel.relateData?.praiseCount ?? 0) + 1
  251. }
  252. communityFollowDataModel.relateData?.praiseCount = praiseCount
  253. communityFollowDataModel.relateData?.isLike = isLike
  254. tableView.reloadData()
  255. }
  256. }
  257. /// 收藏
  258. ///
  259. /// - Parameters:
  260. /// - communityRecommendDataModel: 帖子模型
  261. /// - completion: 回调
  262. func virueRecordAddApiCollection(communityFollowDataModel:CommunityFollowDataModel,completion: @escaping (Int) -> Void) {
  263. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  264. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  265. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  266. if communityFollowDataModel.relateData?.isCollect == 0 {
  267. virueRecordAddParameterModel.behaviorValue = 1
  268. }else {
  269. virueRecordAddParameterModel.behaviorValue = 0
  270. }
  271. virueRecordAddParameterModel.postId = communityFollowDataModel.relateData?.id
  272. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel.relateData?.uid! ?? 0)"
  273. if communityFollowDataModel.relateData?.title == nil || communityFollowDataModel.relateData?.title == "" {
  274. virueRecordAddParameterModel.postDesc = String(describing: communityFollowDataModel.relateData?.content!.prefix(20))
  275. }else {
  276. virueRecordAddParameterModel.postDesc = communityFollowDataModel.relateData?.title
  277. }
  278. virueRecordAddParameterModel.postType = communityFollowDataModel.relateData?.type
  279. virueRecordAddParameterModel.postCover = communityFollowDataModel.relateData?.img
  280. virueRecordAddParameterModel.actionId = "\(communityFollowDataModel.relateData?.id! ?? 0)"
  281. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  282. if communityFollowDataModel.relateData?.isCollect == 0 {
  283. completion(1)
  284. }else {
  285. completion(0)
  286. }
  287. })
  288. }
  289. /// 收藏
  290. ///
  291. /// - Parameters:
  292. /// - communityRecommendDataModel: 帖子模型
  293. func collection(communityFollowDataModel:CommunityFollowDataModel,tableView:UITableView) {
  294. virueRecordAddApiCollection(communityFollowDataModel: communityFollowDataModel, completion: {(isCollect) in
  295. let isCollect = isCollect as Int
  296. communityFollowDataModel.relateData?.isCollect = isCollect
  297. tableView.reloadData()
  298. })
  299. }
  300. }
  301. // MARK: - CommunityVideoItemModel
  302. extension VirusViewModel {
  303. /// 点赞
  304. ///
  305. /// - Parameters:
  306. /// - communityVideoItemModel: 帖子模型
  307. /// - completion: 回调
  308. func virueRecordAddApiPraise(communityVideoItemModel:CommunityVideoItemModel,completion: @escaping (Int) -> Void) {
  309. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  310. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  311. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  312. if communityVideoItemModel.isLike == 0 {
  313. virueRecordAddParameterModel.behaviorValue = 1
  314. }else {
  315. virueRecordAddParameterModel.behaviorValue = 0
  316. }
  317. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  318. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  319. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  320. virueRecordAddParameterModel.postDesc = String(describing: communityVideoItemModel.content!.prefix(20))
  321. }else {
  322. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  323. }
  324. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  325. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  326. virueRecordAddParameterModel.actionId = "\(communityVideoItemModel.id!)"
  327. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  328. if communityVideoItemModel.isLike == 0 {
  329. completion(1)
  330. }else {
  331. completion(0)
  332. }
  333. })
  334. }
  335. /// 点赞
  336. ///
  337. /// - Parameters:
  338. /// - communityVideoItemModel: 帖子模型
  339. func praise(communityVideoItemModel: CommunityVideoItemModel) {
  340. virueRecordAddApiPraise(communityVideoItemModel: communityVideoItemModel, completion: {(isLike) in
  341. let isLike = isLike as Int
  342. var praiseCount : Int = communityVideoItemModel.praiseCount ?? 0
  343. if isLike == 0 {
  344. praiseCount = (communityVideoItemModel.praiseCount ?? 0) - 1
  345. }else {
  346. praiseCount = (communityVideoItemModel.praiseCount ?? 0) + 1
  347. }
  348. communityVideoItemModel.praiseCount = praiseCount
  349. communityVideoItemModel.isLike = isLike
  350. })
  351. }
  352. /// 收藏
  353. ///
  354. /// - Parameters:
  355. /// - communityVideoItemModel: 帖子模型
  356. /// - completion: 回调
  357. func virueRecordAddApiCollection(communityVideoItemModel:CommunityVideoItemModel,completion: @escaping (Int) -> Void) {
  358. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  359. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  360. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  361. if communityVideoItemModel.isCollect == 0 {
  362. virueRecordAddParameterModel.behaviorValue = 1
  363. }else {
  364. virueRecordAddParameterModel.behaviorValue = 0
  365. }
  366. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  367. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  368. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  369. virueRecordAddParameterModel.postDesc = String(describing: communityVideoItemModel.content!.prefix(20))
  370. }else {
  371. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  372. }
  373. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  374. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  375. virueRecordAddParameterModel.actionId = "\(communityVideoItemModel.id!)"
  376. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  377. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  378. if communityVideoItemModel.isCollect == 0 {
  379. completion(1)
  380. }else {
  381. completion(0)
  382. }
  383. })
  384. }
  385. /// 收藏
  386. ///
  387. /// - Parameters:
  388. /// - communityVideoItemModel: 帖子模型
  389. func collection(communityVideoItemModel: CommunityVideoItemModel) {
  390. virueRecordAddApiCollection(communityVideoItemModel: communityVideoItemModel, completion: {(isCollect) in
  391. let isCollect = isCollect as Int
  392. communityVideoItemModel.isCollect = isCollect
  393. })
  394. }
  395. }