NewsController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\FrontController;
  4. use App\Models\Banner;
  5. use App\Models\Notice;
  6. use App\Servers\CommonServer;
  7. use App\Servers\RedisDataServer;
  8. use Carbon\Carbon;
  9. class NewsController extends FrontController
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. /**
  16. * 获取轮播列表(数据缓存60秒)
  17. * @return \Illuminate\Http\JsonResponse
  18. */
  19. function banner()
  20. {
  21. $list = RedisDataServer::creatServer()->getData('banner_list', 'json');
  22. if (empty($list)) {
  23. $list = Banner::where('show', '1')->select(['id', 'image', 'type', 'title'])->orderBy('sort', 'desc')->get();
  24. RedisDataServer::creatServer()->setData('banner_list', $list->toArray(), 'json');
  25. }
  26. return $this->apiResponseSuccess('获取成功', $list);
  27. }
  28. /**
  29. * 获取公告列表
  30. * @return \Illuminate\Http\JsonResponse
  31. */
  32. function notice()
  33. {
  34. $list = RedisDataServer::creatServer()->getData('notice_list', 'json');
  35. if (empty($list)) {
  36. $list = Notice::where('show', '1')->select(['id', 'title', 'new', 'created_at','content'])->orderBy('sort', 'desc')->get();
  37. $m_id = request()->member['id'];
  38. foreach ($list as $value) {
  39. $value->{'created_date'} = Carbon::parse($value->{'created_at'}, config('app.timezone'))->format('Y-m-d H:i');
  40. $value['is_read'] = $value->getIsRead($m_id);
  41. }
  42. RedisDataServer::creatServer()->setData('notice_list', $list->toArray(), 'json');
  43. }
  44. return $this->apiResponseSuccess('获取成功', $list);
  45. }
  46. /**
  47. * 获取公告详情
  48. * @return \Illuminate\Http\JsonResponse
  49. */
  50. function noticeDetails()
  51. {
  52. $id = request()->get('id', '1');
  53. if (empty($id)) {
  54. return $this->apiResponseError('缺少必要参数');
  55. }
  56. $info = Notice::where('show', '1')->where('id', $id)->select(['id', 'title', 'new', 'created_at', 'content'])->first();
  57. if (empty($info)) {
  58. return $this->apiResponseError('信息不存在');
  59. }
  60. $m_id = request()->member['id'];
  61. $info->setRead($m_id);
  62. $info->{'created_date'} = Carbon::parse($info->{'created_at'}, config('app.timezone'))->format('Y-m-d H:i');
  63. return $this->apiResponseSuccess('获取信息成功', $info);
  64. }
  65. /**
  66. * 获取关于我们
  67. */
  68. function getAboutUs(){
  69. $info=CommonServer::creatServer()->getConfigValue('about_us');
  70. return $this->apiResponseSuccess('获取数据成功',['info'=>$info]);
  71. }
  72. }