ActivityModel.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace app\index\model\activity;
  3. use app\index\model\BaseModel;
  4. class ActivityModel extends BaseModel
  5. {
  6. protected $table='activity';
  7. protected $connection = 'db_activity';
  8. /**
  9. * 给前端页面显示所用 主要是活动列表+活动所收藏的人
  10. * @param $where
  11. * @param $order
  12. * @param int $limit
  13. * @return false|\PDOStatement|string|\think\Collection
  14. */
  15. public function getListAndCollection($where,$order='sort desc,activity_id desc',$limit=100){
  16. return $this->field('activity.*,count(collection.id) as collection_num')
  17. ->join("collection","activity.activity_id = collection.activity_id","LEFT")
  18. ->where($where)->order($order)->limit($limit)->group('activity.activity_id')->select();
  19. }
  20. /**
  21. * 获取当前用户所关注的收藏列表
  22. * @param $user_id
  23. * @return array
  24. */
  25. public function getCurrentUserCollectionList($user_id){
  26. $collectionModel = new CollectionModel();
  27. $collectList = $collectionModel->getList(['user_id'=>$user_id,'status'=>0],"",1000);
  28. $collectionActivityIds = [];
  29. foreach($collectList as $item){
  30. $collectionActivityIds[$item['activity_id']] = 0;
  31. }
  32. return $collectionActivityIds;
  33. }
  34. /**
  35. * 获取当前用户是否收藏了该活动
  36. * @param $user_id
  37. * @param $activity_id
  38. * @return array
  39. */
  40. public function getCurrentUserIsCollection($user_id,$activity_id){
  41. $collectionModel = new CollectionModel();
  42. $collect = $collectionModel->getOne([
  43. 'user_id'=>$user_id,
  44. 'activity_id'=>$activity_id,
  45. 'status'=>0
  46. ]);
  47. return $collect;
  48. }
  49. /**
  50. * 获取该活动收藏数目
  51. * @param $activity_id
  52. * @return array
  53. */
  54. public function getCollectionCount($activity_id){
  55. $collectionModel = new CollectionModel();
  56. $collect_count = $collectionModel->where([
  57. 'activity_id'=>$activity_id,
  58. 'status'=>0
  59. ])->count();
  60. return $collect_count;
  61. }
  62. }