VirusViewModel.swift 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997
  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 = "\(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. let followStatusModel = FollowStatusModel()
  39. followStatusModel.uid = communityRecommendDataModel.uid!
  40. followStatusModel.postId = communityRecommendDataModel.id
  41. followStatusModel.isFollowStatus = 1
  42. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "unlikeApi"), object: followStatusModel)
  43. completion(1)
  44. }
  45. }, fail: {_ in})
  46. }
  47. /// 喜欢/不喜欢
  48. ///
  49. /// - Parameters:
  50. /// - communityRecommendDataModel: 贴字模型
  51. /// - y: 定位置
  52. func like(communityRecommendDataModel: CommunityRecommendDataModel,y:CGFloat,tableView:UITableView) {
  53. if communityRecommendDataModel.isDislike == 0 {//喜欢
  54. CardContentUserDisLikeView.sheetDislike(postId:communityRecommendDataModel.id,dislike: 0, y: y) {
  55. [weak self,weak tableView] (view:CardContentUserDisLikeView) in
  56. self?.virueRecordAddApiLike(communityRecommendDataModel: communityRecommendDataModel, completion: { [weak tableView] (isDislike) in
  57. communityRecommendDataModel.isDislike = isDislike
  58. tableView?.reloadData()
  59. })
  60. }
  61. }else {//不喜欢
  62. CardContentUserDisLikeView.sheetDislike(postId: communityRecommendDataModel.id, dislike: 1, y: y) {
  63. (view:CardContentUserDisLikeView) in
  64. }
  65. }
  66. }
  67. /// 点赞
  68. ///
  69. /// - Parameters:
  70. /// - communityRecommendDataModel: 帖子模型
  71. /// - completion: 回调
  72. func virueRecordAddApiPraise(communityRecommendDataModel:CommunityRecommendDataModel,completion: @escaping (Int) -> Void) {
  73. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  74. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  75. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  76. if communityRecommendDataModel.isLike == 0 {
  77. virueRecordAddParameterModel.behaviorValue = 1
  78. }else {
  79. virueRecordAddParameterModel.behaviorValue = 0
  80. }
  81. virueRecordAddParameterModel.postId = communityRecommendDataModel.id
  82. virueRecordAddParameterModel.postAuthorUid = "\(communityRecommendDataModel.uid!)"
  83. if communityRecommendDataModel.title == nil || communityRecommendDataModel.title == "" {
  84. virueRecordAddParameterModel.postDesc = "\(communityRecommendDataModel.content!.prefix(20))"
  85. }else {
  86. virueRecordAddParameterModel.postDesc = communityRecommendDataModel.title
  87. }
  88. virueRecordAddParameterModel.postType = communityRecommendDataModel.type
  89. virueRecordAddParameterModel.postCover = communityRecommendDataModel.img
  90. virueRecordAddParameterModel.actionId = "\(communityRecommendDataModel.id!)"
  91. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  92. let followStatusModel = FollowStatusModel()
  93. followStatusModel.uid = communityRecommendDataModel.uid!
  94. followStatusModel.postId = communityRecommendDataModel.id
  95. if communityRecommendDataModel.isLike == 0 {
  96. followStatusModel.isFollowStatus = 1
  97. completion(1)
  98. }else {
  99. followStatusModel.isFollowStatus = 0
  100. completion(0)
  101. }
  102. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isLikeApi"), object: followStatusModel)
  103. }, fail: {_ in})
  104. }
  105. /// 点赞
  106. ///
  107. /// - Parameters:
  108. /// - communityRecommendDataModel: 帖子模型
  109. func praise(communityRecommendDataModel: CommunityRecommendDataModel,tableView:UITableView) {
  110. AudioServicesPlaySystemSound(1519)
  111. virueRecordAddApiPraise(communityRecommendDataModel: communityRecommendDataModel, completion: {[weak tableView] (isLike) in
  112. let isLike = isLike as Int
  113. var praiseCount : Int = communityRecommendDataModel.praiseCount ?? 0
  114. if isLike == 0 {
  115. praiseCount = (communityRecommendDataModel.praiseCount ?? 0) - 1
  116. }else {
  117. praiseCount = (communityRecommendDataModel.praiseCount ?? 0) + 1
  118. }
  119. communityRecommendDataModel.praiseCount = praiseCount
  120. communityRecommendDataModel.isLike = isLike
  121. tableView?.reloadData()
  122. })
  123. }
  124. /// 收藏
  125. ///
  126. /// - Parameters:
  127. /// - communityRecommendDataModel: 帖子模型
  128. /// - completion: 回调
  129. func virueRecordAddApiCollection(communityRecommendDataModel:CommunityRecommendDataModel,completion: @escaping (Int) -> Void) {
  130. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  131. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  132. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  133. if communityRecommendDataModel.isCollect == 0 {
  134. virueRecordAddParameterModel.behaviorValue = 1
  135. }else {
  136. virueRecordAddParameterModel.behaviorValue = 0
  137. }
  138. virueRecordAddParameterModel.postId = communityRecommendDataModel.id
  139. virueRecordAddParameterModel.postAuthorUid = "\(communityRecommendDataModel.uid!)"
  140. if communityRecommendDataModel.title == nil || communityRecommendDataModel.title == "" {
  141. virueRecordAddParameterModel.postDesc = "\(communityRecommendDataModel.content!.prefix(20))"
  142. }else {
  143. virueRecordAddParameterModel.postDesc = communityRecommendDataModel.title
  144. }
  145. virueRecordAddParameterModel.postType = communityRecommendDataModel.type
  146. virueRecordAddParameterModel.postCover = communityRecommendDataModel.img
  147. virueRecordAddParameterModel.actionId = "\(communityRecommendDataModel.id!)"
  148. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  149. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  150. let followStatusModel = FollowStatusModel()
  151. followStatusModel.uid = communityRecommendDataModel.uid
  152. followStatusModel.postId = communityRecommendDataModel.id
  153. if communityRecommendDataModel.isCollect == 0 {
  154. followStatusModel.isFollowStatus = 1
  155. completion(1)
  156. }else {
  157. followStatusModel.isFollowStatus = 0
  158. completion(0)
  159. }
  160. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isCollectApi"), object: followStatusModel)
  161. }, fail: {_ in})
  162. }
  163. /// 收藏
  164. ///
  165. /// - Parameters:
  166. /// - communityRecommendDataModel: 帖子模型
  167. func collection(communityRecommendDataModel: CommunityRecommendDataModel,tableView:UITableView) {
  168. AudioServicesPlaySystemSound(1519)
  169. virueRecordAddApiCollection(communityRecommendDataModel: communityRecommendDataModel, completion: {[weak tableView] (isCollect) in
  170. let isCollect = isCollect as Int
  171. communityRecommendDataModel.isCollect = isCollect
  172. tableView?.reloadData()
  173. })
  174. }
  175. }
  176. // MARK: - CommunityFollowDataModel
  177. extension VirusViewModel {
  178. /// 不喜欢
  179. ///
  180. /// - Parameters:
  181. /// - communityRecommendDataModel: 帖子模型
  182. /// - completion: 回调
  183. private func virueRecordAddApiLike(communityFollowDataModel:CommunityFollowDataModel?,completion: @escaping (Int) -> Void) {
  184. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  185. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.unlike ?? "")
  186. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.unlike.rawValue
  187. if communityFollowDataModel?.relateData?.isDislike == 0 {
  188. virueRecordAddParameterModel.behaviorValue = 1
  189. }
  190. virueRecordAddParameterModel.postId = communityFollowDataModel?.relateData?.id
  191. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel?.relateData?.uid! ?? 0)"
  192. if communityFollowDataModel?.relateData?.title == nil || communityFollowDataModel?.relateData?.title == "" {
  193. virueRecordAddParameterModel.postDesc = "\(communityFollowDataModel?.relateData?.content!.prefix(20) ?? "")"
  194. }else {
  195. virueRecordAddParameterModel.postDesc = communityFollowDataModel?.relateData?.title
  196. }
  197. virueRecordAddParameterModel.postType = communityFollowDataModel?.relateData?.type
  198. virueRecordAddParameterModel.postCover = communityFollowDataModel?.relateData?.img
  199. virueRecordAddParameterModel.actionId = "\(communityFollowDataModel?.relateData?.id ?? 0)"
  200. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  201. if communityFollowDataModel?.relateData?.isDislike == 0 {
  202. let followStatusModel = FollowStatusModel()
  203. followStatusModel.uid = communityFollowDataModel?.relateData?.uid!
  204. followStatusModel.postId = communityFollowDataModel?.relateData?.id
  205. followStatusModel.isFollowStatus = 1
  206. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "unlikeApi"), object: followStatusModel)
  207. completion(1)
  208. }
  209. }, fail: {_ in})
  210. }
  211. /// 喜欢/不喜欢
  212. ///
  213. /// - Parameters:
  214. /// - communityFollowDataModel: 贴字模型
  215. /// - y: 定位置
  216. func like(communityFollowDataModel:CommunityFollowDataModel?,y:CGFloat,tableView:UITableView) {
  217. if communityFollowDataModel?.relateData?.isDislike == 0 {//喜欢
  218. CardContentUserDisLikeView.sheetDislike(postId: communityFollowDataModel?.relateData?.id,dislike: 0, y: y) {
  219. [weak self,weak tableView] (view:CardContentUserDisLikeView) in
  220. self?.virueRecordAddApiLike(communityFollowDataModel: communityFollowDataModel, completion: { [weak tableView] (isFollow) in
  221. communityFollowDataModel?.relateData?.isDislike = isFollow
  222. tableView?.reloadData()
  223. })
  224. }
  225. }else {//不喜欢
  226. CardContentUserDisLikeView.sheetDislike(postId: communityFollowDataModel?.relateData?.id, dislike: 1, y: y) {
  227. (view:CardContentUserDisLikeView) in
  228. }
  229. }
  230. }
  231. /// 点赞
  232. ///
  233. /// - Parameters:
  234. /// - communityRecommendDataModel: 帖子模型
  235. /// - completion: 回调
  236. func virueRecordAddApiPraise(communityFollowDataModel:CommunityFollowDataModel?,completion: @escaping (Int) -> Void) {
  237. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  238. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  239. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  240. if communityFollowDataModel?.relateData?.isLike == 0 {
  241. virueRecordAddParameterModel.behaviorValue = 1
  242. }else {
  243. virueRecordAddParameterModel.behaviorValue = 0
  244. }
  245. virueRecordAddParameterModel.postId = communityFollowDataModel?.relateData?.id
  246. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel?.relateData?.uid! ?? 0)"
  247. if communityFollowDataModel?.relateData?.title == nil || communityFollowDataModel?.relateData?.title == "" {
  248. virueRecordAddParameterModel.postDesc = "\(communityFollowDataModel?.relateData?.content!.prefix(20) ?? "")"
  249. }else {
  250. virueRecordAddParameterModel.postDesc = communityFollowDataModel?.relateData?.title
  251. }
  252. virueRecordAddParameterModel.postType = communityFollowDataModel?.relateData?.type
  253. virueRecordAddParameterModel.postCover = communityFollowDataModel?.relateData?.img
  254. virueRecordAddParameterModel.actionId = "\(communityFollowDataModel?.relateData?.id ?? 0)"
  255. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  256. let followStatusModel = FollowStatusModel()
  257. followStatusModel.uid = communityFollowDataModel?.relateData?.uid!
  258. followStatusModel.postId = communityFollowDataModel?.relateData?.id
  259. if communityFollowDataModel?.relateData?.isLike == 0 {
  260. followStatusModel.isFollowStatus = 1
  261. completion(1)
  262. }else {
  263. followStatusModel.isFollowStatus = 0
  264. completion(0)
  265. }
  266. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isLikeApi"), object: followStatusModel)
  267. }, fail: {_ in})
  268. }
  269. /// 点赞
  270. ///
  271. /// - Parameters:
  272. /// - communityRecommendDataModel: 帖子模型
  273. func praise(communityFollowDataModel:CommunityFollowDataModel?,tableView:UITableView) {
  274. AudioServicesPlaySystemSound(1519)
  275. virueRecordAddApiPraise(communityFollowDataModel: communityFollowDataModel) { [weak tableView] (isLike) in
  276. let isLike = isLike as Int
  277. var praiseCount : Int = communityFollowDataModel?.relateData?.praiseCount ?? 0
  278. if isLike == 0 {
  279. praiseCount = (communityFollowDataModel?.relateData?.praiseCount ?? 0) - 1
  280. }else {
  281. praiseCount = (communityFollowDataModel?.relateData?.praiseCount ?? 0) + 1
  282. }
  283. communityFollowDataModel?.relateData?.praiseCount = praiseCount
  284. communityFollowDataModel?.relateData?.isLike = isLike
  285. tableView?.reloadData()
  286. }
  287. }
  288. /// 收藏
  289. ///
  290. /// - Parameters:
  291. /// - communityRecommendDataModel: 帖子模型
  292. /// - completion: 回调
  293. func virueRecordAddApiCollection(communityFollowDataModel:CommunityFollowDataModel?,completion: @escaping (Int) -> Void) {
  294. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  295. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  296. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  297. if communityFollowDataModel?.relateData?.isCollect == 0 {
  298. virueRecordAddParameterModel.behaviorValue = 1
  299. }else {
  300. virueRecordAddParameterModel.behaviorValue = 0
  301. }
  302. virueRecordAddParameterModel.postId = communityFollowDataModel?.relateData?.id
  303. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel?.relateData?.uid! ?? 0)"
  304. if communityFollowDataModel?.relateData?.title == nil || communityFollowDataModel?.relateData?.title == "" {
  305. virueRecordAddParameterModel.postDesc = "\(communityFollowDataModel?.relateData?.content!.prefix(20) ?? "")"
  306. }else {
  307. virueRecordAddParameterModel.postDesc = communityFollowDataModel?.relateData?.title
  308. }
  309. virueRecordAddParameterModel.postType = communityFollowDataModel?.relateData?.type
  310. virueRecordAddParameterModel.postCover = communityFollowDataModel?.relateData?.img
  311. virueRecordAddParameterModel.actionId = "\(communityFollowDataModel?.relateData?.id! ?? 0)"
  312. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  313. let followStatusModel = FollowStatusModel()
  314. followStatusModel.uid = communityFollowDataModel?.relateData?.uid
  315. followStatusModel.postId = communityFollowDataModel?.relateData?.id
  316. if communityFollowDataModel?.relateData?.isCollect == 0 {
  317. followStatusModel.isFollowStatus = 1
  318. completion(1)
  319. }else {
  320. followStatusModel.isFollowStatus = 0
  321. completion(0)
  322. }
  323. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isCollectApi"), object: followStatusModel)
  324. }, fail: {_ in})
  325. }
  326. /// 收藏
  327. ///
  328. /// - Parameters:
  329. /// - communityRecommendDataModel: 帖子模型
  330. func collection(communityFollowDataModel:CommunityFollowDataModel?,tableView:UITableView) {
  331. AudioServicesPlaySystemSound(1519)
  332. virueRecordAddApiCollection(communityFollowDataModel: communityFollowDataModel, completion: {[weak tableView] (isCollect) in
  333. let isCollect = isCollect as Int
  334. communityFollowDataModel?.relateData?.isCollect = isCollect
  335. tableView?.reloadData()
  336. })
  337. }
  338. }
  339. // MARK: - CommunityVideoItemModel
  340. extension VirusViewModel {
  341. /// 点赞
  342. ///
  343. /// - Parameters:
  344. /// - communityVideoItemModel: 帖子模型
  345. /// - completion: 回调
  346. func virueRecordAddApiPraise(communityVideoItemModel:CommunityVideoItemModel,completion: @escaping (Int) -> Void) {
  347. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  348. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  349. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  350. if communityVideoItemModel.isLike == 0 {
  351. virueRecordAddParameterModel.behaviorValue = 1
  352. }else {
  353. virueRecordAddParameterModel.behaviorValue = 0
  354. }
  355. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  356. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  357. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  358. virueRecordAddParameterModel.postDesc = String(describing: communityVideoItemModel.content!.prefix(20))
  359. virueRecordAddParameterModel.postDesc = "\(communityVideoItemModel.content!.prefix(20) )"
  360. }else {
  361. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  362. }
  363. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  364. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  365. virueRecordAddParameterModel.actionId = "\(communityVideoItemModel.id!)"
  366. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  367. let followStatusModel = FollowStatusModel()
  368. followStatusModel.uid = communityVideoItemModel.uid!
  369. followStatusModel.postId = communityVideoItemModel.id
  370. if communityVideoItemModel.isLike == 0 {
  371. followStatusModel.isFollowStatus = 1
  372. completion(1)
  373. }else {
  374. followStatusModel.isFollowStatus = 0
  375. completion(0)
  376. }
  377. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isLikeApi"), object: followStatusModel)
  378. }, fail: {_ in})
  379. }
  380. /// 点赞
  381. ///
  382. /// - Parameters:
  383. /// - communityVideoItemModel: 帖子模型
  384. func praise(communityVideoItemModel: CommunityVideoItemModel) {
  385. AudioServicesPlaySystemSound(1519)
  386. virueRecordAddApiPraise(communityVideoItemModel: communityVideoItemModel, completion: {(isLike) in
  387. let isLike = isLike as Int
  388. var praiseCount : Int = communityVideoItemModel.praiseCount ?? 0
  389. if isLike == 0 {
  390. praiseCount = (communityVideoItemModel.praiseCount ?? 0) - 1
  391. }else {
  392. praiseCount = (communityVideoItemModel.praiseCount ?? 0) + 1
  393. }
  394. communityVideoItemModel.praiseCount = praiseCount
  395. communityVideoItemModel.isLike = isLike
  396. })
  397. }
  398. /// 收藏
  399. ///
  400. /// - Parameters:
  401. /// - communityVideoItemModel: 帖子模型
  402. /// - completion: 回调
  403. func virueRecordAddApiCollection(communityVideoItemModel:CommunityVideoItemModel,completion: @escaping (Int) -> Void) {
  404. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  405. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  406. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  407. if communityVideoItemModel.isCollect == 0 {
  408. virueRecordAddParameterModel.behaviorValue = 1
  409. }else {
  410. virueRecordAddParameterModel.behaviorValue = 0
  411. }
  412. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  413. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  414. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  415. virueRecordAddParameterModel.postDesc = "\(communityVideoItemModel.content!.prefix(20))"
  416. }else {
  417. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  418. }
  419. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  420. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  421. virueRecordAddParameterModel.actionId = "\(communityVideoItemModel.id!)"
  422. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  423. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  424. let followStatusModel = FollowStatusModel()
  425. followStatusModel.uid = communityVideoItemModel.uid
  426. followStatusModel.postId = communityVideoItemModel.id
  427. if communityVideoItemModel.isCollect == 0 {
  428. followStatusModel.isFollowStatus = 1
  429. completion(1)
  430. }else {
  431. followStatusModel.isFollowStatus = 0
  432. completion(0)
  433. }
  434. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isCollectApi"), object: followStatusModel)
  435. }, fail: {_ in})
  436. }
  437. /// 收藏
  438. ///
  439. /// - Parameters:
  440. /// - communityVideoItemModel: 帖子模型
  441. func collection(communityVideoItemModel: CommunityVideoItemModel) {
  442. AudioServicesPlaySystemSound(1519)
  443. virueRecordAddApiCollection(communityVideoItemModel: communityVideoItemModel, completion: {(isCollect) in
  444. let isCollect = isCollect as Int
  445. communityVideoItemModel.isCollect = isCollect
  446. })
  447. }
  448. }
  449. // MARK: - 评论
  450. extension VirusViewModel {
  451. func comment(communityRecommendDataModel:CommunityRecommendDataModel? = nil,id:Int,content:String) {
  452. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  453. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  454. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  455. virueRecordAddParameterModel.postId = communityRecommendDataModel?.id
  456. virueRecordAddParameterModel.postAuthorUid = "\(communityRecommendDataModel?.uid ?? 0)"
  457. if communityRecommendDataModel?.title == nil || communityRecommendDataModel?.title == "" {
  458. virueRecordAddParameterModel.postDesc = "\(communityRecommendDataModel?.content!.prefix(20) ?? "")"
  459. }else {
  460. virueRecordAddParameterModel.postDesc = communityRecommendDataModel?.title
  461. }
  462. virueRecordAddParameterModel.postType = communityRecommendDataModel?.type
  463. virueRecordAddParameterModel.postCover = communityRecommendDataModel?.img
  464. virueRecordAddParameterModel.actionId = "\(id)"
  465. virueRecordAddParameterModel.commentContent = content
  466. virueRecordAddParameterModel.commentId = id
  467. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  468. }, fail: {_ in})
  469. }
  470. func comment(communityFollowDataModel:CommunityFollowDataModel? = nil,id:Int,content:String) {
  471. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  472. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  473. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  474. virueRecordAddParameterModel.postId = communityFollowDataModel?.relateData?.id
  475. virueRecordAddParameterModel.postAuthorUid = "\(communityFollowDataModel?.relateData?.uid ?? 0)"
  476. if communityFollowDataModel?.relateData?.title == nil || communityFollowDataModel?.relateData?.title == "" {
  477. virueRecordAddParameterModel.postDesc = "\(communityFollowDataModel?.relateData?.content!.prefix(20) ?? "")"
  478. }else {
  479. virueRecordAddParameterModel.postDesc = communityFollowDataModel?.relateData?.title
  480. }
  481. virueRecordAddParameterModel.postType = communityFollowDataModel?.relateData?.type
  482. virueRecordAddParameterModel.postCover = communityFollowDataModel?.relateData?.img
  483. virueRecordAddParameterModel.actionId = "\(id)"
  484. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  485. virueRecordAddParameterModel.commentContent = content
  486. virueRecordAddParameterModel.commentId = id
  487. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  488. }, fail: {_ in})
  489. }
  490. func comment(communityPostDetailModel:CommunityPostDetailModel,id:Int,content:String) {
  491. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  492. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  493. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  494. virueRecordAddParameterModel.postId = communityPostDetailModel.id
  495. virueRecordAddParameterModel.postAuthorUid = "\(communityPostDetailModel.uid!)"
  496. if communityPostDetailModel.title == nil || communityPostDetailModel.title == "" {
  497. virueRecordAddParameterModel.postDesc = "\(communityPostDetailModel.content!.prefix(20))"
  498. }else {
  499. virueRecordAddParameterModel.postDesc = communityPostDetailModel.title
  500. }
  501. virueRecordAddParameterModel.postType = communityPostDetailModel.type
  502. virueRecordAddParameterModel.postCover = communityPostDetailModel.img
  503. virueRecordAddParameterModel.actionId = "\(id)"
  504. virueRecordAddParameterModel.commentContent = content
  505. virueRecordAddParameterModel.commentId = id
  506. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  507. }, fail: {_ in})
  508. }
  509. func commentReply(communityPostDetailModel:CommunityPostDetailModel,id:Int,content:String,communityPostCommentModel:CommunityPostCommentModel? = nil) {
  510. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  511. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  512. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  513. virueRecordAddParameterModel.postId = communityPostDetailModel.id
  514. virueRecordAddParameterModel.postAuthorUid = "\(communityPostDetailModel.uid!)"
  515. if communityPostDetailModel.title == nil || communityPostDetailModel.title == "" {
  516. virueRecordAddParameterModel.postDesc = "\(communityPostDetailModel.content!.prefix(20))"
  517. }else {
  518. virueRecordAddParameterModel.postDesc = communityPostDetailModel.title
  519. }
  520. virueRecordAddParameterModel.postType = communityPostDetailModel.type
  521. virueRecordAddParameterModel.postCover = communityPostDetailModel.img
  522. virueRecordAddParameterModel.actionId = "\(id)"
  523. virueRecordAddParameterModel.parentCommentId = communityPostCommentModel?.id
  524. virueRecordAddParameterModel.parentCommentContent = communityPostCommentModel?.content
  525. virueRecordAddParameterModel.parentCommentUid = communityPostCommentModel?.uid
  526. virueRecordAddParameterModel.parentCommentTime = communityPostCommentModel?.createdAt
  527. virueRecordAddParameterModel.commentContent = content
  528. virueRecordAddParameterModel.commentId = id
  529. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  530. }, fail: {_ in})
  531. }
  532. func commentReplyAIT(communityPostDetailModel:CommunityPostDetailModel,id:Int,content:String,communityPostCommentModel:CommunityPostCommentModel? = nil,communityPostReplyModel:CommunityPostReplyModel? = nil) {
  533. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  534. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  535. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  536. virueRecordAddParameterModel.postId = communityPostDetailModel.id
  537. virueRecordAddParameterModel.postAuthorUid = "\(communityPostDetailModel.uid!)"
  538. if communityPostDetailModel.title == nil || communityPostDetailModel.title == "" {
  539. virueRecordAddParameterModel.postDesc = "\(communityPostDetailModel.content!.prefix(20))"
  540. }else {
  541. virueRecordAddParameterModel.postDesc = communityPostDetailModel.title
  542. }
  543. virueRecordAddParameterModel.postType = communityPostDetailModel.type
  544. virueRecordAddParameterModel.postCover = communityPostDetailModel.img
  545. virueRecordAddParameterModel.actionId = "\(id)"
  546. virueRecordAddParameterModel.parentCommentId = communityPostCommentModel?.id
  547. virueRecordAddParameterModel.parentCommentContent = communityPostCommentModel?.content
  548. virueRecordAddParameterModel.parentCommentUid = communityPostCommentModel?.uid
  549. virueRecordAddParameterModel.parentCommentTime = communityPostCommentModel?.createdAt
  550. virueRecordAddParameterModel.replyUid = communityPostReplyModel?.uid
  551. virueRecordAddParameterModel.replyUserName = communityPostReplyModel?.username
  552. virueRecordAddParameterModel.commentContent = content
  553. virueRecordAddParameterModel.commentId = id
  554. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  555. }, fail: {_ in})
  556. }
  557. func commentVideo(communityVideoItemModel:CommunityVideoItemModel,id:Int,content:String) {
  558. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  559. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  560. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  561. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  562. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  563. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  564. virueRecordAddParameterModel.postDesc = "\(communityVideoItemModel.content!.prefix(20))"
  565. }else {
  566. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  567. }
  568. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  569. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  570. virueRecordAddParameterModel.actionId = "\(id)"
  571. virueRecordAddParameterModel.commentContent = content
  572. virueRecordAddParameterModel.commentId = id
  573. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  574. }, fail: {_ in})
  575. }
  576. func commentVideoReply(communityVideoItemModel:CommunityVideoItemModel,id:Int,content:String,communityPostCommentModel:CommunityPostCommentModel? = nil) {
  577. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  578. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  579. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  580. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  581. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  582. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  583. virueRecordAddParameterModel.postDesc = "\(communityVideoItemModel.content!.prefix(20))"
  584. }else {
  585. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  586. }
  587. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  588. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  589. virueRecordAddParameterModel.actionId = "\(id)"
  590. virueRecordAddParameterModel.parentCommentId = communityPostCommentModel?.id
  591. virueRecordAddParameterModel.parentCommentContent = communityPostCommentModel?.content
  592. virueRecordAddParameterModel.parentCommentUid = communityPostCommentModel?.uid
  593. virueRecordAddParameterModel.parentCommentTime = communityPostCommentModel?.createdAt
  594. virueRecordAddParameterModel.commentContent = content
  595. virueRecordAddParameterModel.commentId = id
  596. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  597. }, fail: {_ in})
  598. }
  599. func commentVideoReplyAIT(communityVideoItemModel:CommunityVideoItemModel,id:Int,content:String,communityPostCommentModel:CommunityPostCommentModel? = nil,communityPostReplyModel:CommunityPostReplyModel? = nil) {
  600. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  601. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.comment ?? "")
  602. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.comment.rawValue
  603. virueRecordAddParameterModel.postId = communityVideoItemModel.id
  604. virueRecordAddParameterModel.postAuthorUid = "\(communityVideoItemModel.uid!)"
  605. if communityVideoItemModel.title == nil || communityVideoItemModel.title == "" {
  606. virueRecordAddParameterModel.postDesc = "\(communityVideoItemModel.content!.prefix(20))"
  607. }else {
  608. virueRecordAddParameterModel.postDesc = communityVideoItemModel.title
  609. }
  610. virueRecordAddParameterModel.postType = communityVideoItemModel.type
  611. virueRecordAddParameterModel.postCover = communityVideoItemModel.img
  612. virueRecordAddParameterModel.actionId = "\(id)"
  613. virueRecordAddParameterModel.parentCommentId = communityPostCommentModel?.id
  614. virueRecordAddParameterModel.parentCommentContent = communityPostCommentModel?.content
  615. virueRecordAddParameterModel.parentCommentUid = communityPostCommentModel?.uid
  616. virueRecordAddParameterModel.parentCommentTime = communityPostCommentModel?.createdAt
  617. virueRecordAddParameterModel.replyUid = communityPostReplyModel?.uid
  618. virueRecordAddParameterModel.replyUserName = communityPostReplyModel?.username
  619. virueRecordAddParameterModel.commentContent = content
  620. virueRecordAddParameterModel.commentId = id
  621. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  622. }, fail: {_ in})
  623. }
  624. }
  625. // MARK: - 帖子详情
  626. extension VirusViewModel {
  627. /// 点赞
  628. ///
  629. /// - Parameters:
  630. /// - communityVideoItemModel: 帖子模型
  631. /// - completion: 回调
  632. func virueRecordAddApiPraise(communityPostDetailModel:CommunityPostDetailModel? = nil,commentView: RecommendBottomCommentView? = nil) {
  633. AudioServicesPlaySystemSound(1519)
  634. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  635. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  636. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  637. if communityPostDetailModel?.isLike == 0 {
  638. virueRecordAddParameterModel.behaviorValue = 1
  639. }else {
  640. virueRecordAddParameterModel.behaviorValue = 0
  641. }
  642. virueRecordAddParameterModel.postId = communityPostDetailModel?.id
  643. virueRecordAddParameterModel.postAuthorUid = "\(communityPostDetailModel?.uid ?? 0)"
  644. if communityPostDetailModel?.title == nil || communityPostDetailModel?.title == "" {
  645. virueRecordAddParameterModel.postDesc = "\(communityPostDetailModel?.content!.prefix(20) ?? "")"
  646. }else {
  647. virueRecordAddParameterModel.postDesc = communityPostDetailModel?.title
  648. }
  649. virueRecordAddParameterModel.postType = communityPostDetailModel?.type
  650. virueRecordAddParameterModel.postCover = communityPostDetailModel?.img
  651. virueRecordAddParameterModel.actionId = "\(communityPostDetailModel?.id ?? 0)"
  652. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  653. let followStatusModel = FollowStatusModel()
  654. followStatusModel.uid = communityPostDetailModel?.uid
  655. followStatusModel.postId = communityPostDetailModel?.id
  656. if communityPostDetailModel?.isLike == 0 {
  657. followStatusModel.isFollowStatus = 1
  658. communityPostDetailModel?.isLike = 1
  659. communityPostDetailModel?.praiseCount = 1 + (communityPostDetailModel?.praiseCount ?? 0)
  660. }else {
  661. communityPostDetailModel?.isLike = 0
  662. followStatusModel.isFollowStatus = 0
  663. communityPostDetailModel?.praiseCount = -1 + (communityPostDetailModel?.praiseCount ?? 0)
  664. }
  665. commentView?.communityPostDetailModel = communityPostDetailModel
  666. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isLikeApi"), object: followStatusModel)
  667. }, fail: {_ in})
  668. }
  669. /// 收藏
  670. ///
  671. /// - Parameters:
  672. /// - communityVideoItemModel: 帖子模型
  673. /// - completion: 回调
  674. func virueRecordAddApiCollection(communityPostDetailModel:CommunityPostDetailModel? = nil,commentView: RecommendBottomCommentView? = nil) {
  675. AudioServicesPlaySystemSound(1519)
  676. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  677. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.collect ?? "")
  678. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.collect.rawValue
  679. if communityPostDetailModel?.isCollect == 0 {
  680. virueRecordAddParameterModel.behaviorValue = 1
  681. }else {
  682. virueRecordAddParameterModel.behaviorValue = 0
  683. }
  684. virueRecordAddParameterModel.postId = communityPostDetailModel?.id
  685. virueRecordAddParameterModel.postAuthorUid = "\(communityPostDetailModel?.uid ?? 0)"
  686. if communityPostDetailModel?.title == nil || communityPostDetailModel?.title == "" {
  687. virueRecordAddParameterModel.postDesc = "\(communityPostDetailModel?.content!.prefix(20) ?? "")"
  688. }else {
  689. virueRecordAddParameterModel.postDesc = communityPostDetailModel?.title
  690. }
  691. virueRecordAddParameterModel.postType = communityPostDetailModel?.type
  692. virueRecordAddParameterModel.postCover = communityPostDetailModel?.img
  693. virueRecordAddParameterModel.actionId = "\(communityPostDetailModel?.id ?? 0)"
  694. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  695. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  696. let followStatusModel = FollowStatusModel()
  697. followStatusModel.uid = communityPostDetailModel?.uid
  698. followStatusModel.postId = communityPostDetailModel?.id
  699. if communityPostDetailModel?.isCollect == 0 {
  700. communityPostDetailModel?.isCollect = 1
  701. communityPostDetailModel?.collectCount = 1 + (communityPostDetailModel?.collectCount ?? 0)
  702. followStatusModel.isFollowStatus = 1
  703. }else {
  704. communityPostDetailModel?.isCollect = 0
  705. communityPostDetailModel?.collectCount = -1 + (communityPostDetailModel?.collectCount ?? 0)
  706. followStatusModel.isFollowStatus = 0
  707. }
  708. commentView?.communityPostDetailModel = communityPostDetailModel
  709. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isCollectApi"), object: followStatusModel)
  710. }, fail: {_ in})
  711. }
  712. }
  713. // MARK: - 搜索点赞
  714. extension VirusViewModel {
  715. func likeVirueRecordAddApi(communityPostDataModel:CommunityPostDataModel,cell:SearchContentListCollectionCell?) {
  716. AudioServicesPlaySystemSound(1519)
  717. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  718. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.like ?? "")
  719. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.like.rawValue
  720. if communityPostDataModel.isLike == 0 {
  721. virueRecordAddParameterModel.behaviorValue = 1
  722. }else {
  723. virueRecordAddParameterModel.behaviorValue = 0
  724. }
  725. virueRecordAddParameterModel.postId = communityPostDataModel.id
  726. virueRecordAddParameterModel.postAuthorUid = "\(communityPostDataModel.uid!)"
  727. if communityPostDataModel.title == nil || communityPostDataModel.title == "" {
  728. virueRecordAddParameterModel.postDesc = "\(communityPostDataModel.content!.prefix(20))"
  729. }else {
  730. virueRecordAddParameterModel.postDesc = communityPostDataModel.title
  731. }
  732. virueRecordAddParameterModel.postCover = communityPostDataModel.img
  733. virueRecordAddParameterModel.actionId = "\(communityPostDataModel.id!)"
  734. virueRecordAddParameterModel.postType = communityPostDataModel.type
  735. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {[weak cell]
  736. (data) -> (Void) in
  737. let followStatusModel = FollowStatusModel()
  738. followStatusModel.uid = communityPostDataModel.uid
  739. followStatusModel.postId = communityPostDataModel.id
  740. if communityPostDataModel.isLike == 0 {
  741. communityPostDataModel.isLike = 1
  742. followStatusModel.isFollowStatus = 1
  743. cell?.likeBtn.isSelected = true
  744. let praiseCount = (communityPostDataModel.praiseCount ?? 0) + 1
  745. cell?.likeLabel.text = "\(praiseCount)"
  746. communityPostDataModel.praiseCount = praiseCount
  747. }else {
  748. communityPostDataModel.isLike = 0
  749. followStatusModel.isFollowStatus = 0
  750. cell?.likeBtn.isSelected = false
  751. let praiseCount = (communityPostDataModel.praiseCount ?? 0) - 1
  752. cell?.likeLabel.text = "\(praiseCount)"
  753. communityPostDataModel.praiseCount = praiseCount
  754. }
  755. cell?.likeBtn.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 5)
  756. NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isLikeApi"), object: followStatusModel)
  757. }, fail: {_ in})
  758. }
  759. }
  760. // MARK: - 阅读
  761. extension VirusViewModel {
  762. func readVirueRecordAddApi(postId:Int?,
  763. postAuthorUid:String?,
  764. postDesc:String?,
  765. postType:String?,
  766. postCover:String?,
  767. actionId:String) {
  768. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  769. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.read ?? "")
  770. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.read.rawValue
  771. virueRecordAddParameterModel.behaviorValue = 1
  772. virueRecordAddParameterModel.postId = postId
  773. virueRecordAddParameterModel.actionId = actionId
  774. virueRecordAddParameterModel.postAuthorUid = postAuthorUid
  775. virueRecordAddParameterModel.postDesc = "\(postDesc ?? "")"
  776. virueRecordAddParameterModel.postType = postType
  777. virueRecordAddParameterModel.postCover = postCover
  778. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  779. }, fail: {_ in})
  780. }
  781. }
  782. // MARK: - 转发
  783. extension VirusViewModel {
  784. func forwarVirueRecordAddApi(postId:Int?,postAuthorUid:String?,title:String?,content:String?,postType:String?,postCover:String?) {
  785. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  786. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.forward ?? "")
  787. virueRecordAddParameterModel.behaviorFlag = BehaviorFlagType.forward.rawValue
  788. virueRecordAddParameterModel.behaviorValue = 1
  789. virueRecordAddParameterModel.postId = postId
  790. virueRecordAddParameterModel.actionId = "\(postId ?? 0)"
  791. virueRecordAddParameterModel.postAuthorUid = postAuthorUid
  792. if title == "" {
  793. virueRecordAddParameterModel.postDesc = "\(content?.prefix(20) ?? "")"
  794. }else {
  795. virueRecordAddParameterModel.postDesc = title
  796. }
  797. virueRecordAddParameterModel.postType = postType
  798. virueRecordAddParameterModel.postCover = postCover
  799. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  800. }, fail: {_ in})
  801. }
  802. }
  803. // MARK: - 发布
  804. extension VirusViewModel {
  805. func publishVirueRecordAddApi(postId:Int?,postType:String?,title:String?,content:String?,postCover:String?,completion:@escaping ()->Void,fail:@escaping ()->Void) {
  806. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  807. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.publish ?? "")
  808. virueRecordAddParameterModel.behaviorFlag =
  809. BehaviorFlagType.publish.rawValue
  810. virueRecordAddParameterModel.targetId = "\((UserModel.shared().getModel()?.uid)!)"
  811. virueRecordAddParameterModel.postId = postId
  812. virueRecordAddParameterModel.actionId = "\(postId ?? 0)"
  813. if title == "" {
  814. virueRecordAddParameterModel.postDesc = "\(content?.prefix(20) ?? "")"
  815. }else {
  816. virueRecordAddParameterModel.postDesc = title
  817. }
  818. virueRecordAddParameterModel.postType = postType
  819. virueRecordAddParameterModel.postCover = postCover
  820. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  821. completion()
  822. }){ _ in
  823. fail()
  824. }
  825. }
  826. }
  827. // MARK: - 注册
  828. extension VirusViewModel {
  829. class func registeredVirueRecordAddApi(completion:@escaping ()->()) {
  830. if UserModel.shared().getModel()?.isNewMember == 1 {
  831. let virueRecordAddParameterModel = VirueRecordAddParameterModel()
  832. virueRecordAddParameterModel.behaviorId = (ConfigModel.shared.object()?.virus?.register ?? "")
  833. virueRecordAddParameterModel.behaviorFlag =
  834. BehaviorFlagType.register.rawValue
  835. virueRecordAddParameterModel.sourceId = "\(UserModel.shared().getModel()?.inviteUid ?? 0)"
  836. virueRecordAddParameterModel.actionId = BehaviorFlagType.register.rawValue
  837. SwiftMoyaNetWorkServiceVirus.shared().virueRecordAddApi(virueRecordAddParameterModel: virueRecordAddParameterModel, completion: {(data) -> (Void) in
  838. completion()
  839. }, fail: {_ in})
  840. }
  841. }
  842. }