You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

243 lines
9.5 KiB

<?php
/**
* [Laike System] Copyright (c) 2017-2020 laiketui.com
* Laike is not a free software, it under the license terms, visited http://www.laiketui.com/ for more details.
*/
require_once('BaseAction.class.php');
class IndexAction extends BaseAction
{
// 获取小程序首页数据
public function index()
{
$db = DBAction::getInstance();
$appConfig = $this->getAppInfo();
$img = $appConfig['imageRootUrl'];
$title = $appConfig['appName'];
$logo = $appConfig['logo'];
// 查询轮播图,根据排序、轮播图id顺序排列
$sql = "select * from lkt_banner order by sort,id";
$r = $db->select($sql);
$banner = array();
foreach ($r as $k => $v) {
$result = array();
$result['id'] = $v->id; // 轮播图id
$result['image'] = $img . $v->image; // 图片
$result['url'] = $v->url; // 链接
$banner[] = $result;
unset($result); // 销毁指定变量
}
$shou = [];
$sql_cs = "select a.initial,a.id,a.product_title,a.volume,a.imgurl,c.price,a.sort
from lkt_product_list AS a RIGHT JOIN (select min(price) price,pid from lkt_configure group by pid) AS c ON a.id = c.pid
where a.status = 0 and a.num >0 and s_type like '%4%'
order by a.sort asc,a.volume desc limit 0,10";
$r_cs = $db->select($sql_cs);
if ($r_cs) {
foreach ($r_cs as $keyc => $valuec) {
$valuec->imgurl = $img . $valuec->imgurl;
$initial = unserialize($valuec->initial);
$pid = $valuec->id;
$sql_ttt = "select price,yprice from lkt_configure where pid ='$pid' order by price asc ";
$r_ttt = $db->select($sql_ttt);
$price = $r_ttt[0]->price;
$price_yh = $r_ttt[0]->yprice;
$valuec->price = $price;
$valuec->price_yh = $price_yh;
$shou[] = $valuec;
}
}
//列出等级关系
$distributor = [];
//查询商品并分类显示返回JSON至小程序
$sql_c = 'select cid,pname from lkt_product_class where sid=0 and recycle!=1 order by sort asc';
$r_c = $db->select($sql_c);
$twoList = [];
foreach ($r_c as $key => $value) {
$sql_e = 'select cid,pname,img from lkt_product_class where sid=\'' . $value->cid . '\' and recycle!=1 order by sort desc LIMIT 0,10';
$r_e = $db->select($sql_e);
$icons = [];
if ($r_e) {
foreach ($r_e as $ke => $ve) {
$imgurl = $img . $ve->img;
$icons[$ke] = array('id' => $ve->cid, 'name' => $ve->pname, 'img' => $imgurl);
}
} else {
$icons = [];
}
$ttcid = $value->cid;
$sql_s = "select a.id,a.product_title,a.volume,c.price,a.imgurl
from lkt_product_list AS a
RIGHT JOIN (select min(price) price,pid from lkt_configure group by pid) AS c
ON a.id = c.pid
where a.product_class like '%-$ttcid-%' and a.status = 0 and a.num >0
order by a.sort DESC LIMIT 0,10";
$r_s = $db->select($sql_s);
$product = [];
$r_s = empty($r_s) ? [] : ($r_s ? $r_s : []);
foreach ($r_s as $k => $v) {
$imgurl = $img . $v->imgurl;
$pid = $v->id;
$sql_ttt = "select price,yprice from lkt_configure where pid ='$pid' order by price asc ";
$r_ttt = $db->select($sql_ttt);
$price = $r_ttt[0]->price;
$price_yh = $r_ttt[0]->yprice;
$product[$k] = array('id' => $v->id, 'name' => $v->product_title, 'price' => $price, 'price_yh' => $price_yh, 'imgurl' => $imgurl, 'volume' => $v->volume);
}
$twoList['0'] = array('id' => '0', 'name' => '首页', 'count' => 1, 'twodata' => $shou, 'distributor' => $distributor);
$twoList[$key + 1] = array('id' => $value->cid, 'name' => $value->pname, 'count' => 1, 'twodata' => $product, 'icons' => $icons);
}
$sql = "select * from lkt_background_color where status = 1";
$r = $db->select($sql);
if ($r) {
$bgcolor = $r[0]->color;
} else {
$bgcolor = '#FF6347';
}
// 查询插件表里,状态为启用的插件
$sql = "select * from lkt_plug_ins where status = 1 and type = 0 and software_id = 3";
$plug = $db->select($sql);
if ($plug) {
foreach ($plug as $k => $v) {
$v->image = $img . $v->image;
}
}
$pmd = [];
$lkt_set_notice = "select id,name from lkt_set_notice order by time desc";
$notice = [];
$res_notice = $db->select($lkt_set_notice);//公告
if ($res_notice) {
foreach ($res_notice as $key => $value) {
$notice[$key] = array('url' => $value->id, 'title' => $value->name);
}
}
echo json_encode(array('banner' => $banner, 'notice' => $notice, 'djname' => '', 'twoList' => $twoList, 'bgcolor' => $bgcolor, 'plug' => $plug, 'title' => $title, 'logo' => $logo, 'list' => $pmd));
exit();
}
// 加载更多商品
public function get_more()
{
$db = DBAction::getInstance();
$request = $this->getContext()->getRequest();
$paegr = addslashes(trim($request->getParameter('page'))); // '显示位置'
$index = addslashes(trim($request->getParameter('index'))); // '分类ID'
$appConfig = $this->getAppInfo();
$img = $appConfig['imageRootUrl'];
if (!$paegr) {
$paegr = 1;
}
$start = 10 * $paegr;
$end = 10;
$product = array();
//查询商品并分类显示返回JSON至小程序
if ($index == 0) {
$sql_cs = "select a.initial,a.id,a.product_title,a.volume,a.imgurl,c.price,a.sort
from lkt_product_list AS a RIGHT JOIN (select min(price) price,pid from lkt_configure group by pid) AS c ON a.id = c.pid
where a.status = 0 and a.num >0 and s_type like '%4%'
order by a.sort asc,a.volume desc limit $start,$end";
$r_cs = $db->select($sql_cs);
if ($r_cs) {
foreach ($r_cs as $keyc => $valuec) {
$pid = $valuec->id;
$sql_ttt = "select price,yprice from lkt_configure where pid ='$pid' order by price asc ";
$r_ttt = $db->select($sql_ttt);
$price = $r_ttt[0]->price;
$price_yh = $r_ttt[0]->yprice;
$valuec->imgurl = $img . $valuec->imgurl;
$product[] = array('id' => $valuec->id, 'product_title' => $valuec->product_title, 'price' => $price, 'price_yh' => $price_yh, 'imgurl' => $valuec->imgurl, 'volume' => $valuec->volume);
}
}
echo json_encode(array('prolist' => $product, 'status' => 1));
exit;
} else if (!$index) {
echo json_encode(array('prolist' => [], 'status' => 0));
exit;
} else {
//查询商品并分类显示返回JSON至小程序
$sql_t = "select a.initial,a.id,a.product_title,a.volume,a.imgurl,c.price,a.sort
from lkt_product_list AS a RIGHT JOIN (select min(price) price,pid from lkt_configure group by pid) AS c ON a.id = c.pid
where a.status = 0 and a.num >0 and s_type like '%-$index-%'
order by a.sort asc,a.volume desc limit $start,$end";
$r_s = $db->select($sql_t);
$product = [];
if ($r_s) {
foreach ($r_s as $k => $v) {
$imgurl = $img . $v->imgurl;/* end 保存*/
$pid = $v->id;
$sql_ttt = "select price,yprice from lkt_configure where pid ='$pid' order by price asc ";
$r_ttt = $db->select($sql_ttt);
$price = $r_ttt[0]->price;
$price_yh = $r_ttt[0]->yprice;
$product[$k] = array('id' => $v->id, 'product_title' => $v->product_title, 'price' => $price, 'price_yh' => $price_yh, 'imgurl' => $imgurl, 'volume' => $v->volume);
}
echo json_encode(array('prolist' => $product, 'status' => 1));
exit;
} else {
echo json_encode(array('prolist' => $product, 'status' => 0));
exit;
}
}
}
public function class_sort($product_class)//根据类别查询下一级
{
$db = DBAction::getInstance();
$typestr = trim($product_class, '-');
$typeArr = explode('-', $typestr);
// 取数组最后一个元素 并查询分类名称
$cid = end($typeArr);//找到本级ID
$k[] = '-' . $product_class . '-';
if (!empty($cid)) {//循环下一级
$sql_e = "select cid,pname from lkt_product_class where recycle = 0 and sid = $cid";
$r_e = $db->select($sql_e);
if ($r_e) {
foreach ($r_e as $k01 => $v01) {//循环第三级
$k[] = '-' . $product_class . '-' . $v01->cid . '-';
$sql_e01 = "select cid,pname from lkt_product_class where recycle = 0 and sid = $v01->cid";
$r_e01 = $db->select($sql_e01);
if ($r_e01) {
foreach ($r_e01 as $k02 => $v02) {
$k[] = '-' . $product_class . '-' . $v01->cid . '-' . $v02->cid . '-';
}
}
}
}
}
return $k;
}
}
?>