<?php

namespace app\api\controller;

use app\common\controller\Api;
use function fast\e;
use think\Db;


/**
 * 首页接口
 */
class Index extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    /**
     * 首页
     *
     */
    public function index()
    {
        $this->success('请求成功');
    }


    /**
     * @ApiTitle    (首页接口-商品目录分类菜单)
     * @ApiSummary  (商品目录分类菜单)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/ProductList)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "class": "一级分类名",
    "id": "ID"
    }]
    })
     */
    public function ProductList()
    {
        $arr = Db::name('classa')->select();
        if (empty($arr)) {
            $data = [];
            $this->success('成功', $data);
        }
        foreach ($arr as $k => $v) {
            $return[$k]['class'] = $v['class'];
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-品牌选型品牌菜单)
     * @ApiSummary  (品牌选型品牌菜单)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/LogoList)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "logo": "品牌名",
    "id": "ID"
    }]
    })
     */
    public function LogoList()
    {
        $arr = Db::name('logo')->select();
        if (empty($arr)) {
            $data = [];
            $this->success('成功', $data);
        }
        foreach ($arr as $k => $v) {
            $return[$k]['logo'] = $v['logo'];
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }

//去除重复数组
    function second_array_unique_bykey($arr, $key)
    {
        $tmp_arr = [];
        foreach ($arr as $k => $v) {
            if (in_array($v[$key], $tmp_arr))   //搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
            {
                unset($arr[$k]); //销毁一个变量  如果$tmp_arr中已存在相同的值就删除该值
            } else {
                $tmp_arr[$k] = $v[$key];  //将不同的值放在该数组中保存
            }
        }
        sort($arr); //ksort函数对数组进行排序(保留原键值key)  sort为不保留key值
        return $arr;
    }


    /**
     * @ApiTitle    (首页接口-品牌选型-分类菜单)
     * @ApiSummary  (品牌选型-分类菜单)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/LogoClassList)
     * @ApiParams   (name="logo", type="integer", required=true, description="品牌")
     * @ApiParams   (name="isclass", type="integer", required=true, description="分类")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "first": [
    {
    "class": "分类6",
    "id": 6
    }
    "second": [
    {
    "class_con": "详细分类6",
    "id": 6
    }
    ]
    }
    })
     */
    public function LogoClassList()
    {
        $param = $this->request->param();
        if (empty($param['isclass'])) {
            $map = [];
            $map1 = [];
            if (strstr($param['logo'], ',')) {
                if (strstr($param['logo'], '0,')) {
                    $count = strpos($param['logo'], "0,");
                    $param['logo'] = substr_replace($param['logo'], "", $count, 2);
                }
                $map['l.logo_id'] = array('IN', $param['logo']);
            } else {
                if ($param['logo'] == 0) {
                    $map = [];
                } else {
                    $map['l.logo_id'] = $param['logo'];
                }
            }
            $arr = Db::name('logo_class')
                ->alias('l')
                ->join('classa c', 'c.id=l.class_id')
                ->field('c.class,c.id')
                ->where($map)
                ->select();
            if (empty($arr)) {
                $first_arr = [];
            } else {
                $first_arr = $this->second_array_unique_bykey($arr, 'id');
            }
            $return['first'] = $first_arr;
            $return['second'] = [];
            $this->success('成功', $return);
        } else {
            $map = [];
            $map1 = [];
            if (strstr($param['logo'], ',')) {
                if (strstr($param['logo'], '0,')) {
                    $count = strpos($param['logo'], "0,");
                    $param['logo'] = substr_replace($param['logo'], "", $count, 2);
                }
                $map['l.logo_id'] = array('IN', $param['logo']);
            } else {
                if ($param['logo'] == 0) {
                    $map = [];
                } else {
                    $map['l.logo_id'] = $param['logo'];
                }
            }
            if (strstr($param['isclass'], ',')) {
                if (strstr($param['isclass'], '0,')) {
                    $count = strpos($param['isclass'], "0,");
                    $param['isclass'] = substr_replace($param['isclass'], "", $count, 2);
                }
                $map1['l.class_id'] = array('IN', $param['isclass']);
            } else {
                if ($param['isclass'] == 0) {
                    $map1 = [];
                } else {
                    $map1['l.class_id'] = $param['isclass'];
                }
            }
        }
        $arr = Db::name('logo_class')
            ->alias('l')
            ->join('classa c', 'c.id=l.class_id')
            ->field('c.class,c.id')
            ->where($map)
            ->select();
        if (empty($arr)) {
            $first_arr = [];
        } else {
            $first_arr = $this->second_array_unique_bykey($arr, 'id');
        }

        $arr2 = Db::name('logo_class')
            ->alias('l')
            ->join('class_con c', 'c.id=l.class_con_id')
            ->field('c.class_con,c.id')
            ->where($map)
            ->where($map1)
            ->select();
        if (empty($arr2)) {
            $second_arr = [];
        } else {
            $second_arr = $this->second_array_unique_bykey($arr2, 'id');
        }
        $return['first'] = $first_arr;
        $return['second'] = $second_arr;
        $this->success('成功', $return);
    }

    /**
     * @ApiTitle    (首页接口-商品目录-分类菜单)
     * @ApiSummary  (商品目录-分类菜单)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/ProductClassList)
     * @ApiParams   (name="isclass", type="integer", required=true, description="分类")
     * @ApiParams   (name="class_con", type="integer", required=true, description="详细分类")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "class_con": [
    {
    "class_con": "详细分类1",
    "id":"id"

    }
    ],
    "logo": [
    {
    "logo": "品牌1",
    "id":"id"
    }
    ]
    }
    })
     */
    public function ProductClassList()
    {
        $param = $this->request->param();
        if (empty($param['class_con'])) {
            $map = [];
            $map1 = [];
            if (strstr($param['isclass'], ',')) {
                if (strstr($param['isclass'], '0,')) {
                    $count = strpos($param['isclass'], "0,");
                    $param['isclass'] = substr_replace($param['isclass'], "", $count, 2);
                }
                $map['l.class_id'] = array('IN', $param['isclass']);
            } else {
                if ($param['isclass'] == 0) {
                    $map = [];
                } else {
                    $map['l.class_id'] = $param['isclass'];
                }
            }
            $arr = Db::name('logo_class')
                ->alias('l')
                ->join('class_con c', 'c.id=l.class_con_id')
                ->field('c.class_con,c.id')
                ->where($map)
                ->select();
            if (empty($arr)) {
                $first_arr = [];
            } else {
                $first_arr = $this->second_array_unique_bykey($arr, 'id');
            }
            $return['class_con'] = $first_arr;
            $return['logo'] = [];
            $this->success('成功', $return);
        } else {
            $map = [];
            $map1 = [];
            if (strstr($param['isclass'], ',')) {
                if (strstr($param['isclass'], '0,')) {
                    $count = strpos($param['isclass'], "0,");
                    $param['isclass'] = substr_replace($param['isclass'], "", $count, 2);
                }
                $map['l.class_id'] = array('IN', $param['isclass']);
            } else {
                if ($param['isclass'] == 0) {
                    $map = [];
                } else {
                    $map['l.class_id'] = $param['isclass'];
                }
            }
            if (strstr($param['class_con'], ',')) {
                if (strstr($param['class_con'], '0,')) {
                    $count = strpos($param['class_con'], "0,");
                    $param['class_con'] = substr_replace($param['class_con'], "", $count, 2);
                }
                $map1['l.class_con_id'] = array('IN', $param['class_con']);
            } else {
                if ($param['class_con'] == 0) {
                    $map1 = [];
                } else {
                    $map1['l.class_con_id'] = $param['class_con'];
                }
            }
        }
        $arr = Db::name('logo_class')
            ->alias('l')
            ->join('class_con c', 'c.id=l.class_con_id')
            ->field('c.class_con,c.id')
            ->where($map)
            ->select();
        if (empty($arr)) {
            $first_arr = [];
        } else {
            $first_arr = $this->second_array_unique_bykey($arr, 'id');
        }

        $arr2 = Db::name('logo_class')
            ->alias('l')
            ->join('logo c', 'c.id=l.logo_id')
            ->field('c.logo,c.id')
            ->where($map)
            ->where($map1)
            ->select();
        if (empty($arr2)) {
            $second_arr = [];
        } else {
            $second_arr = $this->second_array_unique_bykey($arr2, 'id');
        }
        $return['class_con'] = $first_arr;
        $return['logo'] = $second_arr;
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-筛选)
     * @ApiSummary  (筛选)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/ProductChoose)
     * @ApiParams   (name="isclass", type="integer", required=true, description="分类")
     * @ApiParams   (name="class_con", type="integer", required=true, description="详细分类")
     * @ApiParams   (name="logo", type="integer", required=true, description="品牌")
     * @ApiParams   (name="keywords", type="string", required=true, description="搜索")
     * @ApiParams   (name="pages", type="int", required=true, description="页数")
     * @ApiParams   (name="rows", type="int", required=true, description="数据数量")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "count": 2,
    "num_count":页数
    "list": [
    {
    "avatar": "http://qco519e0n.bkt.clouddn.com/uploads/20200703/Fpi3RGA38eqT3eDk_sh99hOZ7wAA.png",
    "name": "12kf(123)+10.50v",
    "class_con": "详细分类1",
    "logo": "品牌1",
    "gradient": [
    {
    "tidu": "100",
    "price": "0.10"
    },
    {
    "tidu": "200",
    "price": "0.20"
    },
    {
    "tidu": "300",
    "price": "0.30"
    },
    {
    "tidu": "400",
    "price": "0.40"
    },
    {
    "tidu": "500",
    "price": "0.50"
    }
    ],
    "book_con": "http://qco519e0n.bkt.clouddn.com/uploads/20200629/XBS053V15R.pdf"
    },
    {
    "avatar": "http://qco519e0n.bkt.clouddn.com/uploads/20200703/Fpi3RGA38eqT3eDk_sh99hOZ7wAA.png",
    "name": "12kf(123)+10.50v",
    "class_con": "详细分类1",
    "logo": "品牌1",
    "gradient": [
    {
    "tidu": "100",
    "price": "0.10"
    },
    {
    "tidu": "200",
    "price": "0.20"
    },
    {
    "tidu": "300",
    "price": "0.30"
    },
    {
    "tidu": "400",
    "price": "0.40"
    },
    {
    "tidu": "500",
    "price": "0.50"
    }
    ],
    "book_con": "http://qco519e0n.bkt.clouddn.com/uploads/20200629/XBS053V15R.pdf"
    }
    ]
    }
    })
     */
    public function ProductChoose()
    {
        $param = $this->request->param();
        $map1 = [];
        $map2 = [];
        $map3 = [];
        $map4 = [];
        if (!empty($param['isclass']) || $param['isclass'] != null || $param['isclass'] != '') {
            if (strstr($param['isclass'], '0,')) {
                $count = strpos($param['isclass'], "0,");
                $param['isclass'] = substr_replace($param['isclass'], "", $count, 2);
            }
            if ($param['isclass'] == 0) {
                $map1 = [];
            }
            $map1['class_id'] = array('IN', $param['isclass']);
        }
        if (!empty($param['class_con']) || $param['class_con'] != null || $param['class_con'] != '') {
            if (strstr($param['class_con'], '0,')) {
                $count = strpos($param['class_con'], "0,");
                $param['class_con'] = substr_replace($param['class_con'], "", $count, 2);
            }
            if ($param['class_con'] == 0) {
                $map2 = [];
            }
            $map2['class_con_id'] = array('IN', $param['class_con']);
        }
        if (!empty($param['logo']) || $param['logo'] != null || $param['logo'] != '') {
            if (strstr($param['logo'], '0,')) {
                $count = strpos($param['logo'], "0,");
                $param['logo'] = substr_replace($param['logo'], "", $count, 2);
            }
            if ($param['logo'] == 0) {
                $map3 = [];
            }
            $map3['logo_id'] = array('IN', $param['logo']);
        }
        if (!empty($param['keywords']) || $param['keywords'] != null || $param['keywords'] != '') {
            //搜索逻辑
            $map4['a.name'] = array('LIKE', '%' . $param['keywords'] . '%');
            $product_title = Db::name('product')->where('name', 'LIKE', '%' . $param['keywords'] . '%')->find();
            if (!empty($product_title)) {
                Db::name('so_level_num')->insert(['product_id' => $product_title['id'], 'keywords' => $param['keywords'], 'createtime' => time()]);
                $so_num = Db::name('so_level')->where(['product_id' => $product_title['id']])->value('num');
                if (empty($so_num)) {
                    Db::name('so_level')->insert(['product_id' => $product_title['id'], 'num' => 1, 'createtime' => time()]);
                } else {
                    Db::name('so_level')->where('product_id', $product_title['id'])->update(['num' => $so_num + 1]);
                }
            }
            //搜索逻辑
        }
        $product_id = \db('product')
            ->alias('a')
            ->join('logo b', 'b.id=a.logo_id')
            ->join('class_con d', 'd.id=a.class_con_id')
            ->join('classa c', 'c.id=a.class_id')
            ->field('a.id,a.avatar,d.class_con,a.name,c.class,b.logo,a.fengzhuang,a.con,a.stock,a.book_avatar,a.tidu1,a.price1,a.tidu2,a.price2,a.tidu3,a.price3,a.tidu4,a.price4,a.tidu5,a.price5')
            ->where($map1)
            ->where($map2)
            ->where($map3)
            ->where($map4)
            ->page($param['pages'], $param['rows'])
            ->select();
        if (empty($product_id)) {
            $return['count'] = [];
            $return['list'] = [];
            $this->success('成功', $return);
            die;
        }
        foreach ($product_id as $k => $v) {
            $lists[$k] = $this->product_arr($v['id']);
        }
        $list = $this->three_arr($lists);
        $count = \db('product')
            ->alias('a')
            ->join('logo b', 'b.id=a.logo_id')
            ->join('class_con d', 'd.id=a.class_con_id')
            ->join('classa c', 'c.id=a.class_id')
            ->field('a.id,a.avatar,d.class_con,a.name,c.class,b.logo,a.fengzhuang,a.con,a.stock,a.book_avatar,a.tidu1,a.price1,a.tidu2,a.price2,a.tidu3,a.price3,a.tidu4,a.price4,a.tidu5,a.price5')
            ->where($map1)
            ->where($map2)
            ->where($map3)
            ->where($map4)
            ->select();
        foreach ($product_id as $k1 => $v1) {
            $list[$k1]['avatar'] = cdnurl($v1['avatar'], true);
            $list[$k1]['book_con'] = cdnurl($v1['book_avatar'], true);
        }
        foreach ($list as $k => $v) {
            $list[$k]['number'] = 100;
        }
        $return['count'] = count($count);
        $return['num_count'] = ceil($return['count'] / $param['rows']);
        $return['list'] = $list;
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-原厂目录)
     * @ApiSummary  (原厂目录)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/CricleLogoList)
     * @ApiParams   (name="logo", type="integer", required=true, description="品牌ID")
     * @ApiParams   (name="pages", type="int", required=true, description="页数")
     * @ApiParams   (name="rows", type="int", required=true, description="数据数量")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "count": 总数,
    "num_count":"页数"
    "choose": [
    {
    "choose_id": 筛选品牌ID
    }
    ],
    "con": [
    {
    "avatar": "/uploads/20200629/6f62660f0d61cc35b72ec724284d0e17d619a7bc1dbc-SuLXuH_fw658@2x.png",
    "logo": "品牌1",
    "content": "富文本",
    "web": "公司官网",
    "id": 1
    }
    ]
    }
    })
     */
    public
    function CricleLogoList()
    {
        $param = $this->request->param();
        $map = [];
        if (!empty($param['logo'])) {
            $map['id'] = array('eq', $param['logo']);
        }
        $choose_id_arr = Db::name('logo')->select();
        foreach ($choose_id_arr as $k => $v) {
            $return1[$k]['choose_id'] = $v['id'];
            $return1[$k]['logo'] = $v['logo'];
        }
        $logo_arr = Db::name('logo')->where($map)->page($param['pages'], $param['rows'])->select();
        $logo_arr2 = Db::name('logo')->where($map)->select();
        foreach ($logo_arr as $k => $v) {
            $return2[$k]['avatar'] = cdnurl($v['avatar']);
            $return2[$k]['logo'] = $v['logo'];
            $return2[$k]['content'] = $v['content'];
            $return2[$k]['web'] = $v['web'];
            $return2[$k]['id'] = $v['id'];
        }
        $return['count'] = count($logo_arr2);
        $return['num_count'] = ceil($return['count'] / $param['rows']);
//        $return['num_count'] = $return['count'] / $param['rows'];
        $return['choose'] = $return1;
        $return['con'] = $return2;
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-授权代理)
     * @ApiSummary  (授权代理)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/AuthorizedAgentLogoList)
     * @ApiParams   (name="logo", type="integer", required=true, description="品牌ID")
     * @ApiParams   (name="pages", type="int", required=true, description="页数")
     * @ApiParams   (name="rows", type="int", required=true, description="数据数量")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "count": 总数,
    "num_count":"页数"
    "choose": [
    {
    "choose_id": 筛选品牌ID
    }
    ],
    "con": [
    {
    "avatar": "/uploads/20200629/6f62660f0d61cc35b72ec724284d0e17d619a7bc1dbc-SuLXuH_fw658@2x.png",
    "logo": "品牌1",
    "content": "富文本",
    "web": "公司官网",
    "id": 1
    }
    ]
    }
    ]
    })
     */
    public
    function AuthorizedAgentLogoList()
    {
        $param = $this->request->param();
        $map = [];
        if (!empty($param['logo'])) {
            $map['id'] = array('eq', $param['logo']);
        }
        $choose_id_arr = Db::name('logo')->where(['status' => 1])->select();
        foreach ($choose_id_arr as $k => $v) {
            $return1[$k]['choose_id'] = $v['id'];
            $return1[$k]['logo'] = $v['logo'];
        }
        $logo_arr = Db::name('logo')->where($map)->where(['status' => 1])->page($param['pages'], $param['rows'])->select();
        $logo_arr2 = Db::name('logo')->where($map)->where(['status' => 1])->select();
        foreach ($logo_arr as $k => $v) {
            $return2[$k]['avatar'] = cdnurl($v['avatar']);
            $return2[$k]['logo'] = $v['logo'];
            $return2[$k]['content'] = $v['content'];
            $return2[$k]['web'] = $v['web'];
            $return2[$k]['id'] = $v['id'];
        }
        $return['count'] = count($logo_arr2);
        $return['num_count'] = ceil($return['count'] / $param['rows']);
        $return['choose'] = $return1;
        $return['con'] = $return2;
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-首页品牌展示)
     * @ApiSummary  (首页品牌展示)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/IndexLogoAvatar)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "avatar": "品牌图",
    "id": "id"
    }
    ]
    })
     */
    public
    function IndexLogoAvatar()
    {
        $logo_arr = Db::name('logo')->where(['status' => 1])->select();
        foreach ($logo_arr as $k => $v) {
            $return[$k]['avatar'] = cdnurl($v['avatar']);
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-首页轮播图)
     * @ApiSummary  (首页轮播图)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/IndexBannerImages)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "BannerList": [
    {
    "avatar": "轮播图",
    "id": 1,
    "web": 链接
    }
    ]
    },
    {
    "BackgroundlList ": [
    {
    "color": "颜色"
    }
    ]
    }
    ]
    })
     */
    public
    function IndexBannerImages()
    {
        $index_banner_img_arr = Db::name('index_banner')->order('weight desc')->select();
        foreach ($index_banner_img_arr as $k => $v) {
            $return1[$k]['avatar'] = cdnurl($v['avatar']);
            $return1[$k]['id'] = $v['id'];
            $return1[$k]['web'] = $v['web'];
            $return2[$k]['color'] = $v['color'];
        }
        $return['BannerList'] = $return1;
        $return['BackgroundlList'] = $return2;

        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-客服电话)
     * @ApiSummary  (客服电话)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/IndexKfPhone)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "phone": "客服电话",
    "id": "id"
    }
    ]
    })
     */
    public
    function IndexKfPhone()
    {
        $kf_phone_arr = Db::name('kf_phone')->select();
        foreach ($kf_phone_arr as $k => $v) {
            $return[$k]['phone'] = $v['phone'];
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-常见问题)
     * @ApiSummary  (常见问题)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/CommonProblem)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "content": "常见问题",
    "id": "id"
    }
    ]
    })
     */
    public
    function CommonProblem()
    {
        $problem = Db::name('problem')->select();
        foreach ($problem as $k => $v) {
            $return[$k]['content'] = $v['content'];
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-发票须知)
     * @ApiSummary  (发票须知)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/InvoiceInstructions)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "content": "发票须知",
    "id": "id"
    }
    ]
    })
     */
    public
    function InvoiceInstructions()
    {
        $invoice = Db::name('invoice')->select();
        foreach ($invoice as $k => $v) {
            $return[$k]['content'] = $v['content'];
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-联系我们)
     * @ApiSummary  (联系我们)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/ContactUs)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": [
    {
    "content": "联系我们",
    "id": "id"
    }
    ]
    })
     */
    public
    function ContactUs()
    {
        $contact = Db::name('contact')->select();
        foreach ($contact as $k => $v) {
            $return[$k]['content'] = $v['content'];
            $return[$k]['id'] = $v['id'];
        }
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-备案信息)
     * @ApiSummary  (备案信息)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/RecordInformation)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "RecordInformation": "备案信息"
    }
    })
     */
    public
    function RecordInformation()
    {
        $config = Db::name('config')->where(['id' => 2])->find();
        $return['RecordInformation'] = $config['value'];
        $this->success('成功', $return);
    }


    /**
     * @ApiTitle    (首页接口-搜索排行)
     * @ApiSummary  (搜索排行)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/SearchRanking)
     * @ApiParams   (name="type", type="int", required=true, description="1=日搜索排行,2=周搜索排行")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    })
     */
    public
    function SearchRanking()
    {
        $type = input('type');
        if ($type == 1) {
            $map = [];
            $beginToday = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
            $map['s.createtime'] = array('gt', $beginToday);
            $so_arr = Db::name('so_level_num')
                ->alias('s')
                ->join('product p', 'p.id = s.product_id')
                ->where($map)
                ->page(1, 10)
                ->group('s.product_id')
                ->field("count(*) as count,p.name,s.id")
                ->order('count desc')
                ->select();
            foreach ($so_arr as $k => $v) {
                $return[$k]['title'] = $v['name'];
                $return[$k]['num'] = $v['count'];
                $return[$k]['id'] = $v['id'];
            }
            if (empty($return)) {
                $return = [];
                $this->success('成功', $return);
            }
            $this->success('成功', $return);
        } else {
            $map2 = [];
            $beginWeek = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y"));
            $map2['s.createtime'] = array('GT', $beginWeek);
            $so_arr = Db::name('so_level_num')
                ->alias('s')
                ->join('product p', 'p.id = s.product_id')
                ->where($map2)
                ->page(1, 10)
                ->group('s.product_id')
                ->field("count(*) as count,p.name,s.id")
                ->order('count desc')
                ->select();
            foreach ($so_arr as $k => $v) {
                $return[$k]['title'] = $v['name'];
                $return[$k]['num'] = $v['count'];
                $return[$k]['id'] = $v['id'];
            }
            if (empty($return)) {
                $return = [];
                $this->success('成功', $return);
            }
            $this->success('成功', $return);
        }
    }


    /**
     * @ApiTitle    (首页接口-首页左侧分类)
     * @ApiSummary  (首页左侧分类)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/ClassificationOnTheLeftSideOfTheHomePage)
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "MoniList": [
    {
    "id": 1,
    "title": "分类1",
    "list": [
    {
    "id": 1,
    "title": "详细分类1"
    }
    ]
    ]
    }
    })
     */
    public function ClassificationOnTheLeftSideOfTheHomePage()
    {
        $class = Db::name('classa')->select();
        $logo = Db::name('logo')->select();
        foreach ($class as $k => $v) {
            $CL_list1[$k]['id'] = $v['id'];
            $CL_list[$k]['fid'] = $v['id'];
            $CL_list[$k]['title'] = $v['class'];
            $second_arr2 = Db::name('class_con')->where(['class_ids' => $v['id']])->select();
            if (!empty($second_arr2)) {
                foreach ($second_arr2 as $k3 => $v3) {
                    $CL_list[$k]['IsList'][$k3]['xid'] = $v3['id'];
                    $CL_list[$k]['IsList'][$k3]['title'] = $v3['class_con'];
                }
            }


        }
        foreach ($logo as $k => $v) {
            $LG_list1[$k]['id'] = $v['id'];
            $LG_list[$k]['fid'] = $v['id'];
            $LG_list[$k]['title'] = $v['logo'];
            foreach ($LG_list1 as $k1 => $v1) {
                $first_arr[$k] = Db::name('logo_class')->where(['logo_id' => $v['id']])->select();
                if (empty($first_arr[$k1])) {
                    array_splice($LG_list, $k1, $k1);
                    array_splice($LG_list1, $k1, $k1);
                }
            }
        }
        foreach ($LG_list1 as $k => $v) {
            $fitst2[$k] = Db::name('logo_class')->where(['logo_id' => $v['id']])->select();
            if (!empty($fitst2[$k])) {
                $fitst3 = $this->three_arr($fitst2);
                foreach ($fitst3 as $k1 => $v1) {
                    $fitst4[$k1] = Db::name('classa')->where(['id' => $v1['class_id']])->select();
                    $fitst5 = $this->three_arr($fitst4);
                }
                foreach ($fitst5 as $k3 => $v3) {
                    $fitst6[$k3]['xid'] = $v3['id'];
                    $fitst6[$k3]['title'] = $v3['class'];
                }
                foreach ($fitst6 as $k2 => $v2) {
                    $LG_list[$k]['IsList'] = $fitst6;
                }
            }
        }

        $MoList = array(
            array(
                'id' => 1,
                'title' => '零件分类',
                'list' => $CL_list
            ),
            array(
                'id' => 2,
                'title' => '品牌',
                'list' => $LG_list
            ),
        );
        $return['MonList'] = $MoList;
        $this->success('1', $return);
        die;
    }


    /**
     * @ApiTitle    (首页接口-左侧筛选)
     * @ApiSummary  (左侧筛选)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/Index/LeftProductChoose)
     * @ApiParams   (name="isclass", type="integer", required=true, description="分类")
     * @ApiParams   (name="class_con", type="integer", required=true, description="详细分类")
     * @ApiParams   (name="logo", type="integer", required=true, description="品牌")
     * @ApiParams   (name="pages", type="int", required=true, description="页数")
     * @ApiParams   (name="rows", type="int", required=true, description="数据数量")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturn   ({
    'code':'1',
    'msg':'返回成功'
    "data": {
    "count": 2,
    "num_count":页数
    "list": [
    {
    "avatar": "http://qco519e0n.bkt.clouddn.com/uploads/20200703/Fpi3RGA38eqT3eDk_sh99hOZ7wAA.png",
    "name": "12kf(123)+10.50v",
    "class_con": "详细分类1",
    "logo": "品牌1",
    "gradient": [
    {
    "tidu": "100",
    "price": "0.10"
    },
    {
    "tidu": "200",
    "price": "0.20"
    },
    {
    "tidu": "300",
    "price": "0.30"
    },
    {
    "tidu": "400",
    "price": "0.40"
    },
    {
    "tidu": "500",
    "price": "0.50"
    }
    ],
    "book_con": "http://qco519e0n.bkt.clouddn.com/uploads/20200629/XBS053V15R.pdf"
    },
    {
    "avatar": "http://qco519e0n.bkt.clouddn.com/uploads/20200703/Fpi3RGA38eqT3eDk_sh99hOZ7wAA.png",
    "name": "12kf(123)+10.50v",
    "class_con": "详细分类1",
    "logo": "品牌1",
    "gradient": [
    {
    "tidu": "100",
    "price": "0.10"
    },
    {
    "tidu": "200",
    "price": "0.20"
    },
    {
    "tidu": "300",
    "price": "0.30"
    },
    {
    "tidu": "400",
    "price": "0.40"
    },
    {
    "tidu": "500",
    "price": "0.50"
    }
    ],
    "book_con": "http://qco519e0n.bkt.clouddn.com/uploads/20200629/XBS053V15R.pdf"
    }
    ]
    }
    })
     */
    public function LeftProductChoose()
    {
        $param = $this->request->param();
        $map1 = [];
        $map2 = [];
        $map3 = [];
        if (!empty($param['isclass']) || $param['isclass'] != null || $param['isclass'] != '') {
            $class_id = Db::name('classa')->where(['class' => $param['isclass']])->value('id');
            if (empty($class_id)) {
                $map1 = [];
            } else {
                $map1['class_id'] = array('EQ', $class_id);
            }
        }
        if (!empty($param['class_con']) || $param['class_con'] != null || $param['class_con'] != '') {
            $class_con_id = Db::name('class_con')->where(['class_con' => $param['class_con']])->value('id');
            if (empty($class_con_id)) {
                $map2 = [];
            } else {
                $map2['class_con_id'] = array('eq', $class_con_id);
            }
        }
        if (!empty($param['logo']) || $param['logo'] != null || $param['logo'] != '') {
            $logo_id = Db::name('logo')->where(['logo' => $param['logo']])->value('id');
            if (empty($logo_id)) {
                $map3 = [];
            } else {
                $map3['logo_id'] = array('eq', $logo_id);
            }
        }
        $product_id = \db('product')
            ->alias('a')
            ->join('logo b', 'b.id=a.logo_id')
            ->join('class_con d', 'd.id=a.class_con_id')
            ->join('classa c', 'c.id=a.class_id')
            ->field('a.id,a.avatar,d.class_con,a.name,c.class,b.logo,a.fengzhuang,a.con,a.stock,a.book_avatar,a.tidu1,a.price1,a.tidu2,a.price2,a.tidu3,a.price3,a.tidu4,a.price4,a.tidu5,a.price5')
            ->where($map1)
            ->where($map2)
            ->where($map3)
            ->page($param['pages'], $param['rows'])
            ->select();
        if (empty($product_id)) {
            $return['count'] = [];
            $return['list'] = [];
            $this->success('成功', $return);
            die;
        }
        foreach ($product_id as $k => $v) {
            $lists[$k] = $this->product_arr($v['id']);
        }
        $map4['a.stock'] = ['GT', 0];
        $list = $this->three_arr($lists);
        $count = \db('product')
            ->alias('a')
            ->join('logo b', 'b.id=a.logo_id')
            ->join('class_con d', 'd.id=a.class_con_id')
            ->join('classa c', 'c.id=a.class_id')
            ->field('a.id,a.avatar,d.class_con,a.name,c.class,b.logo,a.fengzhuang,a.con,a.stock,a.book_avatar,a.tidu1,a.price1,a.tidu2,a.price2,a.tidu3,a.price3,a.tidu4,a.price4,a.tidu5,a.price5')
            ->where($map1)
            ->where($map2)
            ->where($map3)
            ->where($map4)
            ->select();
        foreach ($product_id as $k1 => $v1) {
            $list[$k1]['avatar'] = cdnurl($v1['avatar'], true);
            $list[$k1]['book_con'] = cdnurl($v1['book_avatar'], true);
        }
        foreach ($list as $k => $v) {
            $list[$k]['number'] = 100;
        }
        $return['count'] = count($count);
        $return['num_count'] = ceil($return['count'] / $param['rows']);
        $return['list'] = $list;
        $this->success('成功', $return);
    }
}