News.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <?php
  2. namespace Content\V1;
  3. use Dever;
  4. use Content\Lib\Base;
  5. class News extends Base
  6. {
  7. //*@ apiSampleRequest /v1/news.index 暂时不添加测试接口,这里需要域名和跨域支持
  8. /**
  9. * @api {get} v1/news.index 首页接口
  10. * @apiVersion 1.0.0
  11. * @apiName api.index
  12. * @apiGroup Data
  13. *
  14. * @apiDescription 小程序的首页接口
  15. *
  16. * apiSampleRequest /v1/news.index
  17. *
  18. * @apiParam {Number} appid 小程序id
  19. *
  20. * @apiSuccess {Object[]} info 小程序基本信息
  21. * @apiSuccess {Number} info.id 小程序id
  22. * @apiSuccess {String} info.name 小程序名称
  23. * @apiSuccess {Number} info.cate_id 小程序所属栏目id
  24. * @apiSuccess {String} info.logo 小程序logo
  25. * @apiSuccess {String} info.title 首页标题
  26. * @apiSuccess {String} info.pic 首页头图
  27. *
  28. * @apiSuccess {Object[]} cate 主栏目信息
  29. * @apiSuccess {Number} cate.id 栏目id
  30. * @apiSuccess {String} cate.name 栏目名称
  31. *
  32. * @apiSuccess {Object[]} cate_child 子栏目信息
  33. * @apiSuccess {Number} cate_child.id 栏目id
  34. * @apiSuccess {String} cate_child.name 栏目名称
  35. * @apiSuccess {String} cate_child.pic 栏目图片
  36. * @apiSuccess {Number} cate_child.cate_id 上级栏目id
  37. *
  38. * @apiSuccess {Object[]} cate_child.news 资讯信息
  39. * @apiSuccess {Number} cate_child.news.id 资讯id
  40. * @apiSuccess {String} cate_child.news.name 资讯标题
  41. * @apiSuccess {String} cate_child.news.reading 资讯导读
  42. * @apiSuccess {String} cate_child.news.content 资讯内容
  43. * @apiSuccess {String} cate_child.news.num_view 阅读数
  44. * @apiSuccess {String} cate_child.news.num_review 评论数
  45. * @apiSuccess {String} cate_child.news.num_up 赞数
  46. * @apiSuccess {String} cate_child.news.cdate 时间
  47. *
  48. * @apiSuccess {Object[]} cate_child.news.author 作者信息
  49. * @apiSuccess {Number} cate_child.news.author.id 作者id
  50. * @apiSuccess {String} cate_child.news.author.name 作者姓名
  51. * @apiSuccess {String} cate_child.news.author.pic 作者头像
  52. *
  53. * @apiSuccessExample 操作成功
  54. * {"status":1,"code":1,"msg":"success","data":{"info":{"id":"1","name":"\u7279\u8272\u5c0f\u9547\u600e\u4e48\u641e","cate_id":"1","logo":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg","title":"test","pic":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/da31b5d54d15192fea10406f77f4b0cb.jpg","state":"1","cdate":"1521858466"},"cate":{"id":"1","name":"\u7279\u8272\u5c0f\u9547\u4e0d\u5f97\u4e0d\u5b66\u4e60\u7cfb\u5217","cate_id":"-1","reorder":"1","state":"1","cdate":"1521814022"},"cate_child":[{"id":"3","name":"\u5341\u5927\u6848\u4f8b","cate_id":"1","reorder":"1","state":"1","cdate":"1521858511","news":[{"id":"1","name":"\u4e07\u8fbe\u57ce\u521b\u65b0\u4e1a\u6001\u7814\u7a76\u62a5\u544a","pic":["http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg"],"top":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/da31b5d54d15192fea10406f77f4b0cb.jpg","cate_id":"3","info_id":"1","author_id":"1","content":"<p>\u5730\u65b9\u5927\u5e45\u5ea6\u53d1<\/p>","num_view":"0","cdate":"9\u5c0f\u65f6\u524d","author":{"id":"1","name":"\u7a0b\u8302","pic":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg","state":"1","cdate":"1521858481"}}]},{"id":"2","name":"\u5341\u5927\u680f\u76ee","cate_id":"1","reorder":"1","state":"1","cdate":"1521858505"}]},"page":{"total":"1","current_page":1,"total_page":1,"next_page":1,"prev_page":1,"html":"","status":0}}
  55. *
  56. * @apiErrorExample 操作失败
  57. * {"status":2,"code":1,"msg":"\u9519\u8bef\u7684\u5c0f\u7a0b\u5e8fid"}
  58. */
  59. public function index_api()
  60. {
  61. # 获取一条主栏目
  62. $this->data['cate'] = Dever::load('set/cate-one', $this->data['info']['cate_id']);
  63. if ($this->data['cate']) {
  64. # 获取焦点图
  65. //$this->focus($this->data['cate']['id']);
  66. $this->data['cate_child'] = Dever::load('set/cate-getAll', array('option_cate_id' => $this->data['cate']['id']));
  67. foreach($this->data['cate_child'] as $k => $v) {
  68. $this->data['cate_child'][$k]['pic'] = $this->replacePic($v['pic']);
  69. }
  70. if ($this->data['cate_child'] && isset($this->data['cate_child'][0])) {
  71. $news = Dever::load('content/news-getAll', array('option_info_id' => $this->data['info']['id'], 'option_cate_id' => $this->data['cate_child'][0]['id']));
  72. if ($news) {
  73. foreach ($news as $k => $v) {
  74. $v['cdate'] = date('m-d', $v['cdate']);
  75. $this->data['cate_child'][0]['news'][$k] = $this->one($v, 2);
  76. }
  77. }
  78. }
  79. }
  80. return $this->data;
  81. }
  82. private function focus($cate)
  83. {
  84. $this->data['focus'] = Dever::load('content/focus-getAll', array('option_cate_id_parent' => $cate));
  85. if ($this->data['focus']) {
  86. foreach ($this->data['focus'] as $k => $v) {
  87. $this->data['focus'][$k]['pic'] = $this->replacePic($v['pic']);
  88. }
  89. }
  90. }
  91. /**
  92. * @api {get} v1/news.list 资讯列表
  93. * @apiVersion 1.0.0
  94. * @apiName news.list
  95. * @apiGroup Data
  96. *
  97. * @apiDescription 小程序的资讯列表接口
  98. *
  99. * @apiParam {Number} appid 小程序id
  100. * @apiParam {Number} cateid 子栏目id
  101. *
  102. * @apiSuccess {Object[]} info 小程序基本信息
  103. * @apiSuccess {Number} info.id 小程序id
  104. * @apiSuccess {String} info.name 小程序名称
  105. * @apiSuccess {Number} info.cate_id 小程序所属栏目id
  106. * @apiSuccess {String} info.logo 小程序logo
  107. * @apiSuccess {String} info.title 首页标题
  108. * @apiSuccess {String} info.pic 首页头图
  109. *
  110. * @apiSuccess {Object[]} news 资讯信息
  111. * @apiSuccess {Number} news.id 资讯id
  112. * @apiSuccess {String} news.name 资讯标题
  113. * @apiSuccess {String} news.reading 资讯导读
  114. * @apiSuccess {String} news.name 资讯子标题
  115. * @apiSuccess {String} news.content 资讯内容
  116. * @apiSuccess {String} news.num_view 阅读数
  117. * @apiSuccess {String} news.num_review 评论数
  118. * @apiSuccess {String} news.num_up 赞数
  119. * @apiSuccess {String} news.cdate 时间
  120. *
  121. * @apiSuccess {Object[]} news.author 作者信息
  122. * @apiSuccess {Number} news.author.id 作者id
  123. * @apiSuccess {String} news.author.name 作者姓名
  124. * @apiSuccess {String} news.author.pic 作者头像
  125. *
  126. * @apiSuccessExample 操作成功
  127. * {"status":1,"code":1,"msg":"success","data":{"info":{"id":"1","name":"\u7279\u8272\u5c0f\u9547\u600e\u4e48\u641e","cate_id":"1","logo":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg","title":"test","pic":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/da31b5d54d15192fea10406f77f4b0cb.jpg","state":"1","cdate":"1521858466"},"news":[{"id":"1","name":"\u4e07\u8fbe\u57ce\u521b\u65b0\u4e1a\u6001\u7814\u7a76\u62a5\u544a","pic":["http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg"],"top":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/da31b5d54d15192fea10406f77f4b0cb.jpg","cate_id":"3","info_id":"1","author_id":"1","content":"<p>\u5730\u65b9\u5927\u5e45\u5ea6\u53d1<\/p>","num_view":"0","cdate":"9\u5c0f\u65f6\u524d","author":{"id":"1","name":"\u7a0b\u8302","pic":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg","state":"1","cdate":"1521858481"}}]},"page":{"total":"1","current_page":1,"total_page":1,"next_page":1,"prev_page":1,"html":"","status":0}}
  128. *
  129. * @apiErrorExample 操作失败
  130. * {"status":2,"code":1,"msg":"\u9519\u8bef\u7684\u5c0f\u7a0b\u5e8fid"}
  131. */
  132. public function list_api()
  133. {
  134. $cateid = Dever::input('cateid');
  135. if ($cateid > 0) {
  136. $cate = Dever::load('set/cate-one', $cateid);
  137. $this->data['news'] = array();
  138. if ($cate) {
  139. $this->data['news'] = Dever::load('content/news-getAll', array('option_info_id' => $this->data['info']['id'], 'option_cate_id' => $cate['id']));
  140. if ($this->data['news']) {
  141. foreach ($this->data['news'] as $k => $v) {
  142. $this->data['news'][$k] = $this->one($v, 2);
  143. }
  144. }
  145. }
  146. }
  147. return $this->data;
  148. }
  149. /**
  150. * @api {get} v1/news.view 资讯详情
  151. * @apiVersion 1.0.0
  152. * @apiName news.view
  153. * @apiGroup Data
  154. *
  155. * @apiDescription 小程序的资讯详情接口
  156. *
  157. * @apiParam {Number} appid 小程序id
  158. * @apiParam {Number} id 资讯id
  159. *
  160. * @apiSuccess {Object[]} info 小程序基本信息
  161. * @apiSuccess {Number} info.id 小程序id
  162. * @apiSuccess {String} info.name 小程序名称
  163. * @apiSuccess {Number} info.cate_id 小程序所属栏目id
  164. * @apiSuccess {String} info.logo 小程序logo
  165. * @apiSuccess {String} info.title 首页标题
  166. * @apiSuccess {String} info.pic 首页头图
  167. *
  168. * @apiSuccess {Object[]} news 资讯信息
  169. * @apiSuccess {Number} news.id 资讯id
  170. * @apiSuccess {String} news.name 资讯标题
  171. * @apiSuccess {String} news.reading 资讯导读
  172. * @apiSuccess {String} news.content 资讯内容
  173. * @apiSuccess {String} news.num_view 阅读数
  174. * @apiSuccess {String} news.num_review 评论数
  175. * @apiSuccess {String} news.num_up 赞数
  176. * @apiSuccess {String} news.cdate 时间
  177. *
  178. * @apiSuccess {Object[]} news.author 作者信息
  179. * @apiSuccess {Number} news.author.id 作者id
  180. * @apiSuccess {String} news.author.name 作者姓名
  181. * @apiSuccess {String} news.author.pic 作者头像
  182. *
  183. * @apiSuccessExample 操作成功
  184. * {"status":1,"code":1,"msg":"success","data":{"info":{"id":"1","name":"\u7279\u8272\u5c0f\u9547\u600e\u4e48\u641e","cate_id":"1","logo":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg","title":"test","pic":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/da31b5d54d15192fea10406f77f4b0cb.jpg","state":"1","cdate":"1521858466"},"news":{"id":"1","name":"\u4e07\u8fbe\u57ce\u521b\u65b0\u4e1a\u6001\u7814\u7a76\u62a5\u544a","info_id":"1","author_id":"1","cate_id_parent":"1","cate_id":"3","num_add_view":"0","num_up":"0","num_view":"0","num_review":"0","pic":["http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg"],"top":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/da31b5d54d15192fea10406f77f4b0cb.jpg","content":"<p>\u5730\u65b9\u5927\u5e45\u5ea6\u53d1<\/p>","reorder":"1","state":"1","cdate":"9\u5c0f\u65f6\u524d","author":{"id":"1","name":"\u7a0b\u8302","pic":"http:\/\/192.168.33.10\/plant\/data\/upload\/1\/2018\/03\/24\/1e493a87d4cdddde7fd06ad9762694d2.jpg","state":"1","cdate":"1521858481"}}}}
  185. *
  186. * @apiErrorExample 操作失败
  187. * {"status":2,"code":1,"msg":"\u9519\u8bef\u7684\u5c0f\u7a0b\u5e8fid"}
  188. */
  189. public function view_api()
  190. {
  191. $id = Dever::input('id');
  192. if ($id > 0) {
  193. $this->data['news'] = Dever::load('content/news-one', $id);
  194. if ($this->data['news']) {
  195. $this->data['news'] = $this->one($this->data['news'], 2);
  196. # 增加阅读量
  197. Dever::load('content/news-addView', $id);
  198. } else {
  199. Dever::alert('错误的资讯id');
  200. }
  201. } else {
  202. Dever::alert('错误的资讯id');
  203. }
  204. $this->data['vote'] = $this->vote(1, $id);
  205. return $this->data;
  206. }
  207. }