moonsflyer 5 mesiacov pred
rodič
commit
8b2936e267

+ 68 - 0
app/shopapi/controller/InfoController.php

@@ -0,0 +1,68 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeshop100%开源免费商用商城系统
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | 商业版本务必购买商业授权,以免引起法律纠纷
+// | 禁止对系统程序代码以任何目的,任何形式的再发布
+// | 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团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeshopTeam
+// +----------------------------------------------------------------------
+
+namespace app\shopapi\controller;
+
+use app\shopapi\lists\ArticleCategoryLists;
+use app\shopapi\lists\InfoLists;
+use app\shopapi\logic\InfoLogic;
+
+class InfoController extends BaseShopController
+{
+    /**
+     * 无需登录即可访问的方法
+     * @var array|string[]
+     */
+    public array $notNeedLogin = ['infoLists', 'articleCategoryLists', 'detail'];
+
+    /**
+     * @notes 信息列表
+     * @return \think\response\Json
+     * @author Tab
+     * @date 2021/7/14 14:57
+     */
+    public function infoLists()
+    {
+        return $this->dataLists(new infoLists());
+    }
+
+    /**
+     * @notes 商城资讯/帮助中心分类列表
+     * @return \think\response\Json
+     * @author Tab
+     * @date 2021/7/14 14:57
+     */
+    public function articleCategoryLists()
+    {
+        return $this->dataLists(new ArticleCategoryLists());
+    }
+
+    /**
+     * @notes 信息详情
+     * @return \think\response\Json
+     * @author Tab
+     * @date 2021/7/14 15:06
+     */
+    public function detail()
+    {
+        $params = $this->request->get();
+        $result = InfoLogic::detail($params);
+        return $this->data($result);
+    }
+}

+ 103 - 0
app/shopapi/lists/InfoLists.php

@@ -0,0 +1,103 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeshop100%开源免费商用商城系统
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | 商业版本务必购买商业授权,以免引起法律纠纷
+// | 禁止对系统程序代码以任何目的,任何形式的再发布
+// | 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团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeshopTeam
+// +----------------------------------------------------------------------
+
+namespace app\shopapi\lists;
+
+use app\common\enum\AccountLogEnum;
+use app\common\lists\ListsSearchInterface;
+use app\common\model\Article;
+use app\common\model\Info;
+use app\common\model\Banner;
+
+class InfoLists extends BaseShopDataLists
+{
+
+    public function setSearchWhere(){
+        $where[]=['is_show','=',1];
+        $params = $this->params;
+        if(isset($params['type']) && $params['type']<>''){
+            $where[] = ['type','=',$params['type']];
+        }
+        return $where;
+    }
+    /**
+     * @notes 宣传信息列表
+     * @return array
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author Tab
+     * @date 2021/7/14 9:48
+     */
+    public function lists(): array
+    {
+
+
+        $lists = Info::field('id,type,cid,title,synopsis,image,address,phone,latitude,longitude,sort,is_show,create_time')
+            ->where(['is_show'=>1])
+            ->where($this->setSearchWhere())
+            ->append(['category','type_desc','is_show_desc'])
+            ->order([
+                'sort' => 'desc',
+                'id' => 'desc'
+            ])
+            ->limit($this->limitOffset, $this->limitLength)
+            ->select()
+            ->toArray();
+        $length = count($lists);
+        if($length>0){
+            $cate_id = array_unique(array_column($lists,'cid'));
+            $zeros=[0];
+            $cate_is_Arr = array_diff($cate_id,$zeros);
+            $newlist = [];
+            if(!empty($cate_is_Arr)){
+                foreach ($cate_is_Arr as $v){
+                    foreach($lists as $lv){
+                        if($v==$lv['cid']){
+                            $newlist[$lv['category']['name']][]=$lv;
+                        }
+                    }
+                }
+                $lists = $newlist;
+            }
+        }
+
+        $data['info_list'] = $lists;
+
+        $params =  $this->params;
+        $banner_where=[];
+        if(isset($params['type']) && $params['type']<>''){
+            $banner_where[] = ['type','=',$params['type']];
+        }
+        $banner_list = Banner::where($banner_where)->select()->toArray();
+        $data['banner_list'] = $banner_list;
+        return $data;
+    }
+
+    /**
+     * @notes 文章/帮助总记录数
+     * @return int
+     * @author Tab
+     * @date 2021/7/14 9:48
+     */
+    public function count(): int
+    {
+        return Info::where($this->setSearchWhere())->count();
+    }
+}

+ 46 - 0
app/shopapi/logic/InfoLogic.php

@@ -0,0 +1,46 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeshop100%开源免费商用商城系统
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | 商业版本务必购买商业授权,以免引起法律纠纷
+// | 禁止对系统程序代码以任何目的,任何形式的再发布
+// | 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团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeshopTeam
+// +----------------------------------------------------------------------
+
+namespace app\shopapi\logic;
+
+use app\common\model\Info;
+
+class InfoLogic
+{
+    /**
+     * @notes 获取信息详情
+     * @param $params
+     * @return array
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author Tab
+     * @date 2021/7/14 15:13
+     */
+    public static function detail($params)
+    {
+        // 增加浏览量
+        $info = Info::find($params['id']);
+        $visit = $info->visit ?? 1;
+        $info->visit = $visit + 1  ;
+        $info->save();
+        return Info::field('id,cid,title,synopsis,image,address,phone,latitude,longitude,content,visit,create_time')
+                ->append(['category'])->find($params['id'])->toArray();
+    }
+}