Notes.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * Index.php
  4. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  5. * =========================================================
  6. * Copy right 2015-2025 杭州牛之云科技有限公司, 保留所有权利。
  7. * ----------------------------------------------
  8. * 官方网址: https://www.niushop.com
  9. * =========================================================
  10. * @author : niuteam
  11. * @date : 2022.8.8
  12. * @version : v5.0.0.1
  13. */
  14. namespace addon\notes\api\controller;
  15. use addon\notes\model\Group;
  16. use app\api\controller\BaseApi;
  17. use addon\notes\model\Notes as NotesModel;
  18. use addon\notes\model\Record as RecordModel;
  19. class Notes extends BaseApi
  20. {
  21. /**
  22. * 获取笔记分组
  23. */
  24. public function group()
  25. {
  26. $model = new Group();
  27. $list = $model->getNotesGroupList([['site_id', '=', $this->site_id]], 'group_id,group_name,notes_num,release_num', 'sort asc');
  28. return $this->response($list);
  29. }
  30. /**
  31. * 获取文章分页列表
  32. */
  33. public function page()
  34. {
  35. $token = $this->checkToken();
  36. $page = isset($this->params['page']) ? $this->params['page'] : 1;
  37. $page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
  38. $group_id = isset($this->params['group_id']) ? $this->params['group_id'] : '';
  39. $note_id_arr = isset($this->params['note_id_arr']) ? $this->params['note_id_arr'] : '';
  40. $condition[] = ['pn.site_id', '=', $this->site_id];
  41. if ($group_id) {
  42. $condition[] = ['pn.group_id', '=', $group_id];
  43. }
  44. if(!empty($note_id_arr)){
  45. $condition[] = ['pn.note_id', 'in', $note_id_arr];
  46. }
  47. $note_model = new NotesModel();
  48. $list_result = $note_model->getNotesPageList($condition, $page, $page_size);
  49. if($token['code'] >= 0){
  50. $list = $list_result['data']['list'];
  51. $record_model = new RecordModel();
  52. foreach($list as $k=>$v){
  53. //获取用户是否点赞
  54. $is_dianzan = $record_model->getIsDianzan($v['note_id'],$this->member_id);
  55. $list[$k]['is_dianzan'] = $is_dianzan['data'];
  56. }
  57. $list_result['data']['list'] = $list;
  58. }
  59. return $this->response($list_result);
  60. }
  61. /**
  62. * 获取文章列表
  63. */
  64. public function lists()
  65. {
  66. $token = $this->checkToken();
  67. $num = isset($this->params['num']) ? $this->params['num'] : 0;
  68. $group_id = isset($this->params['group_id']) ? $this->params['group_id'] : '';
  69. $note_id_arr = isset($this->params['note_id_arr']) ? $this->params['note_id_arr'] : '';
  70. $condition[] = ['pn.site_id', '=', $this->site_id];
  71. if ($group_id) {
  72. $condition[] = ['pn.group_id', '=', $group_id];
  73. }
  74. if(!empty($note_id_arr)){
  75. $condition[] = ['pn.note_id', 'in', $note_id_arr];
  76. }
  77. $field = 'pn.*,png.group_name';
  78. $alias = 'pn';
  79. $join = [
  80. [
  81. 'notes_group png',
  82. 'png.group_id = pn.group_id',
  83. 'left'
  84. ]
  85. ];
  86. $note_model = new NotesModel();
  87. $list_result = $note_model->getNotesList($condition,$field,'pn.sort asc', $num, $alias, $join);
  88. if($token['code'] >= 0){
  89. $list = $list_result['data'];
  90. $record_model = new RecordModel();
  91. $note_type = $note_model->getNoteType();
  92. $note_type = array_column($note_type, 'name', 'type');
  93. foreach($list as $k=>$v){
  94. //获取用户是否点赞
  95. $is_dianzan = $record_model->getIsDianzan($v['note_id'],$this->member_id);
  96. $list[$k]['is_dianzan'] = $is_dianzan['data'];
  97. $list[$k]['note_type_name'] = $note_type[$v['note_type']];
  98. }
  99. $list_result['data'] = $list;
  100. }
  101. return $this->response($list_result);
  102. }
  103. /**
  104. * 文章详情
  105. */
  106. public function detail()
  107. {
  108. $token = $this->checkToken();
  109. $note_id = isset($this->params['note_id']) ? $this->params['note_id'] : '';
  110. if (empty($note_id)) {
  111. return $this->response($this->error('', 'REQUEST_NOTE_ID'));
  112. }
  113. $condition = [
  114. ['site_id', '=', $this->site_id],
  115. ['note_id', '=', $note_id]
  116. ];
  117. $note_model = new NotesModel();
  118. $info_result = $note_model->getNotesDetailInfo($condition, '*', 2);
  119. if($token['code'] >= 0){
  120. $info = $info_result['data'];
  121. $record_model = new RecordModel();
  122. $is_dianzan = $record_model->getIsDianzan($info['note_id'],$this->member_id);
  123. $info['is_dianzan'] = $is_dianzan['data'];
  124. $info_result['data'] = $info;
  125. }
  126. return $this->response($info_result);
  127. }
  128. }