Article.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace app\api\controller;
  3. use think\facade\Lang;
  4. /**
  5. * ============================================================================
  6. * DSMall多用户商城
  7. * ============================================================================
  8. * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
  9. * 网站地址: http://www.csdeshang.com
  10. * ----------------------------------------------------------------------------
  11. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
  12. * 不允许对程序代码以任何形式任何目的的再发布。
  13. * ============================================================================
  14. * 文章控制器
  15. */
  16. class Article extends MobileMall {
  17. public function initialize() {
  18. parent::initialize();
  19. Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/article.lang.php');
  20. }
  21. /**
  22. * @api {POST} api/Article/article_list 文章列表
  23. * @apiVersion 1.0.0
  24. * @apiGroup Article
  25. *
  26. * @apiParam {Int} ac_id 文章分类
  27. *
  28. * @apiSuccess {String} code 返回码,10000为成功
  29. * @apiSuccess {String} message 返回消息
  30. * @apiSuccess {Object} result 返回数据
  31. * @apiSuccess {Object[]} result.article_list 文章列表
  32. * @apiSuccess {Int} result.article_list.ac_id 分类ID
  33. * @apiSuccess {String} result.article_list.article_content 文章内容
  34. * @apiSuccess {Int} result.article_list.article_id 文章ID
  35. * @apiSuccess {String} result.article_list.article_pic 文章图片
  36. * @apiSuccess {Int} result.article_list.article_show 是否显示 0否1是
  37. * @apiSuccess {Int} result.article_list.article_sort 排序
  38. * @apiSuccess {Int} result.article_list.article_time 添加时间(Unix时间戳)
  39. * @apiSuccess {String} result.article_list.article_title 文章标题
  40. * @apiSuccess {String} result.article_list.article_url 文章跳转链接
  41. * @apiSuccess {String} result.article_type_name 分类名称
  42. */
  43. public function article_list() {
  44. $ac_id = intval(input('param.ac_id'));
  45. if ($ac_id > 0) {
  46. $articleclass_model = model('articleclass');
  47. $article_model = model('article');
  48. $condition = array();
  49. $child_class_list = $articleclass_model->getChildClass($ac_id);
  50. $ac_ids = array();
  51. if (!empty($child_class_list) && is_array($child_class_list)) {
  52. foreach ($child_class_list as $v) {
  53. $ac_ids[] = $v['ac_id'];
  54. }
  55. }
  56. $ac_ids = implode(',', $ac_ids);
  57. $condition[] = array('ac_id', 'in', $ac_ids);
  58. $condition[] = array('article_show', '=', '1');
  59. $result['article_list'] = $article_model->getArticleList($condition,20);
  60. $result['article_type_name'] = $this->article_type_name($ac_ids);
  61. $result = array_merge(array('article_list' => $result['article_list'], 'article_type_name' => $result['article_type_name']), mobile_page(is_object($article_model->page_info) ? $article_model->page_info : ''));
  62. ds_json_encode(10000, '', $result);
  63. } else {
  64. ds_json_encode(10001, lang('param_error'));
  65. }
  66. }
  67. /**
  68. * 根据类别编号获取文章类别信息
  69. */
  70. private function article_type_name() {
  71. $ac_id = intval(input('param.ac_id'));
  72. if ($ac_id > 0) {
  73. $articleclass_model = model('articleclass');
  74. $article_class = $articleclass_model->getOneArticleclass($ac_id);
  75. return ($article_class['ac_name']);
  76. } else {
  77. return (lang('param_error'));
  78. }
  79. }
  80. /**
  81. * @api {POST} api/Article/article_show 单篇文章显示
  82. * @apiVersion 1.0.0
  83. * @apiGroup Article
  84. *
  85. * @apiParam {Int} article_id 文章ID
  86. *
  87. * @apiSuccess {String} code 返回码,10000为成功
  88. * @apiSuccess {String} message 返回消息
  89. * @apiSuccess {Object} result 返回数据
  90. * @apiSuccess {Int} result.ac_id 分类ID
  91. * @apiSuccess {String} result.article_content 文章内容
  92. * @apiSuccess {Int} result.article_id 文章ID
  93. * @apiSuccess {String} result.article_pic 文章图片
  94. * @apiSuccess {Int} result.article_show 是否显示 0否1是
  95. * @apiSuccess {Int} result.article_sort 排序
  96. * @apiSuccess {Int} result.article_time 添加时间(Unix时间戳)
  97. * @apiSuccess {String} result.article_title 文章标题
  98. * @apiSuccess {String} result.article_url 文章跳转链接
  99. */
  100. public function article_show() {
  101. $article_model = model('article');
  102. $article_id = intval(input('param.article_id'));
  103. if ($article_id > 0) {
  104. $prefix = 'api-article-show-';
  105. $article = rcache($article_id, $prefix);
  106. if (empty($article)) {
  107. $condition = array();
  108. $condition[] = array('article_id','=',$article_id);
  109. $article = $article_model->getOneArticle($condition);
  110. wcache($article_id, $article, $prefix, 3600);
  111. }
  112. if (empty($article)) {
  113. ds_json_encode(10001, lang('article_show_not_exists'));
  114. } else {
  115. $article['article_content'] = htmlspecialchars_decode($article['article_content']);
  116. ds_json_encode(10000, '', $article);
  117. }
  118. } else {
  119. ds_json_encode(10001, lang('param_error'));
  120. }
  121. }
  122. }