NewsController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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', 'title'])->orderBy('sort', 'desc')->get();
  24. foreach ($list as $value){
  25. $value->{'image'}='http://'.env('APP_HOST_API').$value->{'image'};
  26. }
  27. RedisDataServer::creatServer()->setData('banner_list', $list->toArray(), 'json');
  28. }
  29. return $this->apiResponseSuccess('获取成功', $list);
  30. }
  31. /**
  32. * 获取公告列表
  33. * @return \Illuminate\Http\JsonResponse
  34. */
  35. function notice()
  36. {
  37. $list = RedisDataServer::creatServer()->getData('notice_list', 'json');
  38. if (empty($list)) {
  39. $list = Notice::where('show', '1')->select(['id', 'title', 'new', 'created_at','content'])->orderBy('sort', 'desc')->get();
  40. $m_id = request()->member['id'];
  41. foreach ($list as $value) {
  42. $value->{'created_date'} = Carbon::parse($value->{'created_at'}, config('app.timezone'))->format('Y-m-d H:i');
  43. $value['is_read'] = $value->getIsRead($m_id);
  44. }
  45. RedisDataServer::creatServer()->setData('notice_list', $list->toArray(), 'json');
  46. }
  47. return $this->apiResponseSuccess('获取成功', $list);
  48. }
  49. /**
  50. * 获取公告详情
  51. * @return \Illuminate\Http\JsonResponse
  52. */
  53. function noticeDetails()
  54. {
  55. $id = request()->get('id', '1');
  56. if (empty($id)) {
  57. return $this->apiResponseError('缺少必要参数');
  58. }
  59. $info = Notice::where('show', '1')->where('id', $id)->select(['id', 'title', 'new', 'created_at', 'content'])->first();
  60. if (empty($info)) {
  61. return $this->apiResponseError('信息不存在');
  62. }
  63. $m_id = request()->member['id'];
  64. $info->setRead($m_id);
  65. $info->{'created_date'} = Carbon::parse($info->{'created_at'}, config('app.timezone'))->format('Y-m-d H:i');
  66. return $this->apiResponseSuccess('获取信息成功', $info);
  67. }
  68. /**
  69. * 获取关于我们
  70. */
  71. function getAboutUs(){
  72. $info=CommonServer::creatServer()->getConfigValue('about_us');
  73. return $this->apiResponseSuccess('获取数据成功',['info'=>$info]);
  74. }
  75. }