1.缺失信息提交

This commit is contained in:
2025-05-07 09:41:40 +08:00
parent e3dba3a43c
commit 066c3c3420
3 changed files with 302 additions and 0 deletions

View File

@ -0,0 +1,60 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\api\controller;
use app\api\logic\AdLogic;
class AdContentController extends BaseApiController
{
public array $notNeedLogin = ['lists'];
/**
* showdoc
* @catalog 接口/广告
* @title 获取广告列表
* @description 获取广告列表
* @method get
* @url ad/lists
* @param pid 必填 int 广告位id
* @param client 必填 int 终端,1-移动端商城2-PC端商城
* @return_param image string 广告图片
* @return_param link_type int 广告类型1-商场页面2-商品页面3-自定义类型
* @return_param link string 广告链接
* @return_param params string 参数
* @return_param is_tab int 是否tab页1-是0-否
* @remark
* @number 0
* @return {"code":1,"msg":"获取成功","data":{"lists":["http:\/\/www.likeb2b2c.com:20002\/uploads\/images\/20200706\/e4bdb.jpg","http:\/\/www.likeb2b2c.com:20002\/uploads\/images\/20200708\/893ae.jpg"]},"show":0,"time":"0.686155","debug":{"request":{"get":{"pid":"1"},"post":[],"header":{"connection":"keep-alive","accept-encoding":"gzip, deflate, br","host":"www.likeb2b2c.com:20002","postman-token":"f804bef0-b397-4590-a67f-b489830cd37b","accept":"*\/*","user-agent":"PostmanRuntime\/7.26.1","token":"ff0c66fe0c89fe1e9be591d82d551521","content-type":"","content-length":""}}}}
*/
public function lists()
{
$pid = $this->request->get('pid');
$client = $this->request->get('client', 1);
if ($pid) {
$list = AdLogic::lists($pid, $client);
} else {
$list = [];
}
$this->_success('获取成功', $list);
}
}

69
app/api/logic/AdLogic.php Normal file
View File

@ -0,0 +1,69 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\api\logic;
use app\common\model\ad\Ad;
use app\common\service\UrlServer;
use think\facade\Db;
class AdLogic
{
public static function lists($pid, $client)
{
$ad_list = Db::name('ad a')
->join('ad_position ap', 'a.pid = ap.id')
->where(['pid' => $pid, 'ap.client' => $client, 'a.status' => 1, 'a.del' => 0, 'ap.status' => 1, 'ap.del' => 0])
->field('a.*')
->order(['sort' => 'desc', 'id' => 'desc'])
->select();
$list = [];
foreach ($ad_list as $key => $ad) {
$url = $ad['link'];
$is_tab = 0;
$params = [];
switch ($ad['link_type']) {
case 1:
$page = Ad::getLinkPage($ad['client'], $ad['link']);
$url = $page['path'];
$is_tab = $page['is_tab'] ?? 0;
break;
case 2:
$goods_path = Ad::getGoodsPath($ad['client']);
$url = $goods_path;
$params = [
'id' => $ad['link'],
];
break;
}
$list[] = [
'image' => UrlServer::getFileUrl($ad['image']),
'link' => $url,
'link_type' => $ad['link_type'],
'params' => $params,
'is_tab' => $is_tab,
'sort' => $ad['sort'],
];
}
return $list;
}
}

173
app/common/model/ad/Ad.php Normal file
View File

@ -0,0 +1,173 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\ad;
use think\Model;
class Ad extends Model{
const mobile = 1;
const pc = 2;
public static function getAdTypeDesc($from = true){
$desc = [
self::mobile => '移动端商城',
self::pc => 'pc端商城',
];
if($from === true){
return $desc;
}
return $desc[$from] ?? '';
}
public static function getLinkPage($type = true,$from = true){
$page = [
self::mobile => [
[
'name' => '商品分类',
'path' => '/pages/sort/sort',
'is_tab' => 1,
],
[
'name' => '领券中心',
'path' => '/pages/user_getcoupon/user_getcoupon',
'is_tab' => 0,
],
[
'name' => '个人中心',
'path' => '/pages/user/user',
'is_tab' => 1,
],
[
'name' => '积分签到',
'path' => '/bundle/pages/user_sign/user_sign',
'is_tab' => 0,
],
[
'name' => '会员中心',
'path' => '/pages/user_vip/user_vip',
'is_tab' => 0,
],
[
'name' => '积分抽奖',
'path' => '/bundle/pages/luckly_wheel/luckly_wheel',
'is_tab' => 0,
],
[
'name' => '限时秒杀',
'path' => '/bundle/pages/goods_seckill/goods_seckill',
'is_tab' => 0,
],
[
'name' => '拼团活动',
'path' => '/bundle/pages/goods_combination/goods_combination',
'is_tab' => 0,
],
[
'name' => '砍价活动',
'path' => '/bundle/pages/bargain/bargain',
'is_tab' => 0,
],
[
'name' => '热销榜单',
'path' => '/bundle/pages/hot_list/hot_list',
'is_tab' => 0,
],
[
'name' => '商城资讯',
'path' => '/pages/news_list/news_list',
'is_tab' => 0,
],
[
'name' => '帮助中心',
'path' => '/pages/news_list/news_list?type=1',
'is_tab' => 0,
],
],
self::pc => [
[
'name' => '商品分类',
'path' => '/category',
'is_tab' => 0,
],
[
'name' => '领券中心',
'path' => '/get_coupons',
'is_tab' => 0,
],
[
'name' => '个人中心',
'path' => '/user/profile',
'is_tab' => 0,
],
[
'name' => '热销榜单',
'path' => '/goods_list/1',
'is_tab' => 0,
],
[
'name' => '新品推荐',
'path' => '/goods_list/2',
'is_tab' => 0,
],
[
'name' => '好物优选',
'path' => '/goods_list/3',
'is_tab' => 0,
],
[
'name' => '限时秒杀',
'path' => '/seckill',
'is_tab' => 0,
],
[
'name' => '商城资讯',
'path' => '/news_list',
'is_tab' => 0,
],
[
'name' => '帮助中心',
'path' => '/help_center',
'is_tab' => 0,
],
],
];
if(true !== $type){
$page = $page[$type] ?? [];
}
if(true === $from){
return $page;
}
return $page[$from] ?? [];
}
public static function getGoodsPath($from = true){
$desc = [
self::mobile => '/pages/goods_details/goods_details',
self::pc => '/goods_details',
];
if(true === $from){
return $desc;
}
return $desc[$from] ?? '';
}
}