<?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); } }