From 5dd24402090e56c2a05d0923cbb107865c8ae630 Mon Sep 17 00:00:00 2001 From: wangxiaowei Date: Wed, 24 Jul 2024 16:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84API=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E5=BF=AB=E8=AE=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/MallNews.php | 11 ++++++ app/api/logic/MallNewsLogic.php | 65 +++++++++++++++++++++++++++++---- 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/app/api/controller/MallNews.php b/app/api/controller/MallNews.php index 957354b2..0f4675de 100644 --- a/app/api/controller/MallNews.php +++ b/app/api/controller/MallNews.php @@ -19,4 +19,15 @@ class MallNews extends Api return JsonServer::error('请求方式错误'); } } + + public function details() + { + if($this->request->isGet()) { + $id = $this->request->get('id'); + $data = MallNewsLogic::detail($id); + return JsonServer::success('获取成功', $data); + }else{ + return JsonServer::error('请求方式错误'); + } + } } \ No newline at end of file diff --git a/app/api/logic/MallNewsLogic.php b/app/api/logic/MallNewsLogic.php index 328059ca..2deb1321 100644 --- a/app/api/logic/MallNewsLogic.php +++ b/app/api/logic/MallNewsLogic.php @@ -3,25 +3,33 @@ namespace app\api\logic; use app\common\basics\Logic; +use app\common\model\goods\Goods; +use app\common\server\UrlServer; +use think\facade\Config; use think\facade\Db; +use app\common\model\MallNews; +use app\common\model\MallNewsFile; class MallNewsLogic extends Logic { + private static $FILE_VIDEO_PATH = 'mall_news/video'; + public static function lists($page, $size) { - $top = Db::name('mall_news')->where(['is_top' => 1, 'delete_time' => 0])->field('title, desc')->select(); + $top = MallNews::with('files') + ->where(['is_top' => 1, 'delete_time' => 0]) + ->order('sort desc, create_time desc') + ->select(); + self::content($top); - $list = Db::name('mall_news') + $list = MallNews::with('files') ->where(['is_top' => 0, 'delete_time' => 0]) - ->field('title, desc') ->order('sort desc, create_time desc') ->page($page,$size) ->select(); + self::content($list); - $count = Db::name('mall_news') - ->where(['is_top' => 0, 'delete_time' => 0]) - ->field('title, desc') - ->count(); + $count = MallNews::where(['is_top' => 0, 'delete_time' => 0])->count(); $more = is_more($count, $page, $size); //是否有下一页 @@ -34,4 +42,47 @@ class MallNewsLogic extends Logic 'top' => $top, ]; } + + public static function detail($id) + { + $mall_news = MallNews::with('files') + ->where(['id' => $id, 'delete_time' => 0]) + ->find()->toArray(); + + if ($mall_news['shop_id'] > 0) { + $mall_news['shop'] = Goods::where(['id' => $mall_news['shop_id']])->field('name, image, min_price')->find()->toArray(); + } + + if (isset($mall_news['files'])) { + foreach ($mall_news['files'] as &$v) { + if ($mall_news['type'] == 0) { + $v['src'] = UrlServer::getFileUrl('uploads/images/' . $v['src']); + } else { + $v['src'] = Config::get('aliyunoss.domain') . self::$FILE_VIDEO_PATH . '/'. $v['src']; + } + } + } + + return $mall_news; + } + + private static function content(&$arg) + { + foreach ($arg as &$v) { + if ($v['shop_id'] > 0) { + + $v['shop'] = Goods::field('name, image, min_price')->find($v['shop_id']); + } + + if (isset($v['files'])) { + foreach ($v['files'] as &$v1) { + if ($v['type'] == 0) { + $v1['src'] = UrlServer::getFileUrl('uploads/images/' . $v1['src']); + } else { + $v1['src'] = Config::get('aliyunoss.domain') . self::$FILE_VIDEO_PATH . '/'. $v1['src']; + } + } + } + } + } } \ No newline at end of file