完善API商城快讯

This commit is contained in:
wangxiaowei 2024-07-24 16:17:52 +08:00
parent 67f5104046
commit 5dd2440209
2 changed files with 69 additions and 7 deletions

@ -19,4 +19,15 @@ class MallNews extends Api
return JsonServer::error('请求方式错误'); 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('请求方式错误');
}
}
} }

@ -3,25 +3,33 @@
namespace app\api\logic; namespace app\api\logic;
use app\common\basics\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 think\facade\Db;
use app\common\model\MallNews;
use app\common\model\MallNewsFile;
class MallNewsLogic extends Logic class MallNewsLogic extends Logic
{ {
private static $FILE_VIDEO_PATH = 'mall_news/video';
public static function lists($page, $size) 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]) ->where(['is_top' => 0, 'delete_time' => 0])
->field('title, desc')
->order('sort desc, create_time desc') ->order('sort desc, create_time desc')
->page($page,$size) ->page($page,$size)
->select(); ->select();
self::content($list);
$count = Db::name('mall_news') $count = MallNews::where(['is_top' => 0, 'delete_time' => 0])->count();
->where(['is_top' => 0, 'delete_time' => 0])
->field('title, desc')
->count();
$more = is_more($count, $page, $size); //是否有下一页 $more = is_more($count, $page, $size); //是否有下一页
@ -34,4 +42,47 @@ class MallNewsLogic extends Logic
'top' => $top, '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'];
}
}
}
}
}
} }