550 lines
18 KiB
PHP
Executable File
550 lines
18 KiB
PHP
Executable File
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
||
// +----------------------------------------------------------------------
|
||
|
||
// | Author: HcyShop-竹
|
||
// +----------------------------------------------------------------------
|
||
namespace app\api\logic;
|
||
use app\api\model\Goods;
|
||
use app\common\model\Ad;
|
||
use app\common\server\ConfigServer;
|
||
use app\common\server\UrlServer;
|
||
use think\Db;
|
||
|
||
class PcLogic{
|
||
|
||
/**
|
||
* Notes:惠藏百件分类
|
||
* @return array
|
||
* @author:kiki
|
||
*/
|
||
public static function baijian_goods_category(){
|
||
$category_list = Db::name('goods_category')
|
||
->where(['del'=>0,'is_recommend'=>1])
|
||
->order('sort desc')
|
||
->field('id,name')
|
||
->select();
|
||
return $category_list;
|
||
}
|
||
/**
|
||
* Notes:pc端首页接口
|
||
* @return array
|
||
* @author:kiki
|
||
*/
|
||
public static function pcLists(){
|
||
//新品上架
|
||
$new_list = Db::name('goods g')
|
||
->where(['g.del'=>0,'g.status'=>1,'g.is_new'=>1])
|
||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name')
|
||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||
->join('supplier s', 'g.supplier_id = s.id')
|
||
->order('g.id desc,g.sort desc')
|
||
->limit(10)
|
||
->select();
|
||
|
||
$ad_list = Db::name('ad a')
|
||
->join('ad_position ap', 'a.pid = ap.id')
|
||
->where(['pid' =>[2],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||
->order('a.id desc')
|
||
->field('a.*')
|
||
->select();
|
||
|
||
|
||
$index_ad = []; //首页轮播图广告
|
||
foreach ($ad_list as $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;
|
||
}
|
||
//首页轮播图广告
|
||
if(empty($index_ad) && 2 == $ad['pid']){
|
||
$index_ad = [
|
||
'image' => UrlServer::getFileUrl($ad['image']),
|
||
'link' => $url,
|
||
'link_type' => $ad['link_type'],
|
||
'params' => $params,
|
||
'is_tab' => $is_tab,
|
||
];
|
||
}
|
||
}
|
||
|
||
//紫砂资讯
|
||
$article = Db::name('article')
|
||
->where(['del'=>0,'is_notice'=>1,'is_show'=>1])
|
||
->order('create_time desc')
|
||
->field('id,title,synopsis,image,create_time')
|
||
->limit(4)
|
||
->select();
|
||
foreach ($article as $key => $v1){
|
||
$article[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
$article[$key]['create_time'] = date('Y-m-d', $v1['create_time']);
|
||
}
|
||
|
||
//专家信息
|
||
$supplier = Db::name('supplier')
|
||
->where(['del'=>0,'is_notice'=>1])
|
||
->order('create_time desc')
|
||
->field('id,name,remark,avatar')
|
||
->limit(6)
|
||
->select();
|
||
foreach ($supplier as $key => $v2){
|
||
$supplier[$key]['avatar']=UrlServer::getFileUrl($v2['avatar']);
|
||
}
|
||
|
||
//门店信息
|
||
$store = Db::name('store')
|
||
->where(['del'=>0,'is_show'=>1])
|
||
->order('create_time desc')
|
||
->field('id,title,address,image,business,traffic,contact')
|
||
->limit(4)
|
||
->select();
|
||
foreach ($store as $key => $v2){
|
||
$store[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
|
||
$list = [
|
||
'new_list' => $new_list,
|
||
'index_ad' => $index_ad,
|
||
'article' => $article,
|
||
'supplier' => $supplier,
|
||
'store' => $store
|
||
];
|
||
return $list;
|
||
}
|
||
|
||
|
||
//专家信息
|
||
public static function supplierclssList(){
|
||
$supplier_category = new \app\admin\model\SupplierCategory();
|
||
$supplier_category_list = $supplier_category
|
||
->where(['del'=>0, 'is_show'=>1])
|
||
->field('id,name')
|
||
->select();
|
||
$category_list = [];
|
||
foreach ($supplier_category_list as $key => $supplier_category){
|
||
$supplier_list = Db::name('supplier')
|
||
->where(['cid'=>$supplier_category['id'],'del'=>0])
|
||
->field('id,name')
|
||
->select();
|
||
if(!$supplier_list){
|
||
continue;
|
||
}
|
||
$category_list[] = [
|
||
'id' => $supplier_category['id'],
|
||
'name' => $supplier_category['name'],
|
||
'supplier_list'=> $supplier_list,
|
||
];
|
||
}
|
||
return $category_list;
|
||
}
|
||
|
||
|
||
/**
|
||
* Notes:获取专家列表
|
||
* @param $page int 页码
|
||
* @param $size int 每页数量
|
||
* @param $cid int 分类id
|
||
* @return array
|
||
* @author: kiki
|
||
*/
|
||
public static function supplierList($page,$size,$cid){
|
||
|
||
$where[] = ['del','=',0];
|
||
//按商品分类搜索
|
||
if($cid){
|
||
$where[] = ['cid','=',$cid];
|
||
}
|
||
$count =Db::name('supplier')
|
||
->field('id,name,remark,avatar')
|
||
->where($where)
|
||
->count();
|
||
|
||
$list =Db::name('supplier')
|
||
->order('create_time desc')
|
||
->field('id,name,remark,avatar')
|
||
->where($where)
|
||
->page($page, $size)
|
||
->select();
|
||
$more = is_more($count, $page, $size); //是否有下一页
|
||
return [
|
||
'list' => $list,
|
||
'page' => $page,
|
||
'size' => $size,
|
||
'count' => $count,
|
||
'more' => $more
|
||
];
|
||
}
|
||
|
||
|
||
/**
|
||
* Notes:获取专家详情
|
||
* @param $cid int 专家id
|
||
* @return array
|
||
* @author: kiki
|
||
*/
|
||
public static function getsupplierDetail($id){
|
||
|
||
$where[] = ['del','=',0];
|
||
$where[] = ['id','=',$id];
|
||
$info =Db::name('supplier')
|
||
->order('create_time desc')
|
||
->field('id,name,remark,avatar,honor,position')
|
||
->where($where)
|
||
->find();
|
||
|
||
$goods_list=Db::name('goods g')
|
||
->where(['g.del'=>0,'g.status'=>1,'g.supplier_id'=>$info['id']])
|
||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name')
|
||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||
->join('supplier s', 'g.supplier_id = s.id')
|
||
->order('g.id desc,g.sort desc')
|
||
->select();
|
||
return [
|
||
'info' => $info,
|
||
'goods_list' => $goods_list,
|
||
];
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* Notes:pc端获取公共数据
|
||
* @param $user_id int 用户id
|
||
* @return array
|
||
* @author: kiki
|
||
*/
|
||
public static function commonData($user_id){
|
||
$nickname = '';
|
||
|
||
if($user_id){
|
||
$nickname = Db::name('user')->where(['id'=>$user_id])->value('nickname');
|
||
}
|
||
$help_category_list = DB::name('help_category')
|
||
->where('is_show', 1)
|
||
->where(['del' => 0])
|
||
->field('id,name')
|
||
->select();
|
||
$h_category_list = [];
|
||
foreach ($help_category_list as $key => $help_category){
|
||
$help_list = Db::name('help')
|
||
->where(['cid'=>$help_category['id'],'del'=>0])
|
||
->field('id,title')
|
||
->select();
|
||
$h_category_list[] = [
|
||
'id' => $help_category['id'],
|
||
'name' => $help_category['name'],
|
||
'help_list'=> $help_list,
|
||
];
|
||
}
|
||
return [
|
||
'logo' => UrlServer::getFileUrl(ConfigServer::get('website', 'pc_logo')),
|
||
'name' => ConfigServer::get('website', 'name',''),
|
||
'nickname' => $nickname,
|
||
'kfphone' => ConfigServer::get('service','phone',''),
|
||
'kf_qr_code' => UrlServer::getFileUrl(ConfigServer::get('service','image','')),
|
||
'oa_qr_code' => UrlServer::getFileUrl(ConfigServer::get('oa', 'qr_code', '')),
|
||
'h_category_list'=>$h_category_list,
|
||
];
|
||
}
|
||
|
||
/**
|
||
* Notes:惠藏藏品列表
|
||
* @author: kiki
|
||
*/
|
||
public static function cangpingoods(){
|
||
|
||
$ad_list = Db::name('ad a')
|
||
->join('ad_position ap', 'a.pid = ap.id')
|
||
->where(['pid' =>[24],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||
->order('a.id desc')
|
||
->field('a.*')
|
||
->select();
|
||
|
||
|
||
$ad = []; //广告
|
||
foreach ($ad_list as $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;
|
||
}
|
||
//广告
|
||
if(empty($tiemai_tup_ad) && 24 == $ad['pid']){
|
||
$tiemai_tup_ad = [
|
||
'image' => UrlServer::getFileUrl($ad['image']),
|
||
'link' => $url,
|
||
'link_type' => $ad['link_type'],
|
||
'params' => $params,
|
||
'is_tab' => $is_tab,
|
||
];
|
||
}
|
||
}
|
||
|
||
|
||
$where[] = ['g.del','=',0];
|
||
$where[] = ['g.status','=',1];
|
||
//藏品捡宝
|
||
$where1[] = ['is_jiantreasure','=',1];
|
||
//镇店藏品
|
||
$where2[] = ['is_zdtreasure','=',1];
|
||
|
||
$jiantreasure_list =Db::name('goods g')
|
||
->field('g.id as goods_id,g.name as goods_name,g.image,remark')
|
||
->where($where)
|
||
->where($where1)
|
||
->page(0,7)
|
||
->select();
|
||
foreach ($jiantreasure_list as $key => $v1){
|
||
$jiantreasure_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
|
||
$zdtreasure_list =Db::name('goods g')
|
||
->field('g.id as goods_id,g.name as goods_name,g.image,remark')
|
||
->where($where)
|
||
->where($where2)
|
||
->page(0,7)
|
||
->select();
|
||
foreach ($zdtreasure_list as $key => $v1){
|
||
$zdtreasure_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
return [
|
||
'ad' => $tiemai_tup_ad,//广告
|
||
'jiantreasure_list' => $jiantreasure_list,//藏品捡宝
|
||
'zdtreasure_list' => $zdtreasure_list,//镇店藏品
|
||
];
|
||
}
|
||
|
||
/**
|
||
* Notes:特卖商品列表
|
||
* @author: kiki
|
||
*/
|
||
public static function temaigoods(){
|
||
|
||
$ad_list = Db::name('ad a')
|
||
->join('ad_position ap', 'a.pid = ap.id')
|
||
->where(['pid' =>[16,21],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||
->order('a.id desc')
|
||
->field('a.*')
|
||
->select();
|
||
|
||
$tiemai_tup_ad = []; //特卖大图广告
|
||
$tiemai_bott_ad = []; //特卖小图广告
|
||
foreach ($ad_list as $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;
|
||
}
|
||
//特卖大图广告
|
||
if(empty($tiemai_tup_ad) && 21 == $ad['pid']){
|
||
$tiemai_tup_ad = [
|
||
'image' => UrlServer::getFileUrl($ad['image']),
|
||
'link' => $url,
|
||
'link_type' => $ad['link_type'],
|
||
'params' => $params,
|
||
'is_tab' => $is_tab,
|
||
];
|
||
}
|
||
//特卖小图广告
|
||
if(16 == $ad['pid']){
|
||
$tiemai_bott_ad[] = [
|
||
'image' => UrlServer::getFileUrl($ad['image']),
|
||
'link' => $url,
|
||
'link_type' => $ad['link_type'],
|
||
'params' => $params,
|
||
'is_tab' => $is_tab,
|
||
];
|
||
}
|
||
}
|
||
|
||
|
||
$where[] = ['g.del','=',0];
|
||
$where[] = ['g.status','=',1];
|
||
//新品上架
|
||
$where1[] = ['is_new','=',1];
|
||
//精品推荐
|
||
$where2[] = ['is_best','=',1];
|
||
//今日促销
|
||
$where3[] = ['is_like','=',1];
|
||
|
||
$xinpin_list =Db::name('goods g')
|
||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,s.name as supplier_name')
|
||
->join('supplier s', 'g.supplier_id = s.id')
|
||
->where($where)
|
||
->where($where1)
|
||
->page(0,7)
|
||
->select();
|
||
foreach ($xinpin_list as $key => $v1){
|
||
$xinpin_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
|
||
$jingpin_list =Db::name('goods g')
|
||
->field('g.id as goods_id,g.name as goods_name,g.image,min_price as price')
|
||
->where($where)
|
||
->where($where2)
|
||
->page(0,6)
|
||
->select();
|
||
foreach ($jingpin_list as $key => $v1){
|
||
$jingpin_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
|
||
$cuxiao_list =Db::name('goods g')
|
||
->field('g.id as goods_id,g.name as goods_name,g.image,min_price as price')
|
||
->where($where)
|
||
->where($where3)
|
||
->page(0,6)
|
||
->select();
|
||
foreach ($cuxiao_list as $key => $v1){
|
||
$cuxiao_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
|
||
return [
|
||
'da_ad' => $tiemai_tup_ad,//大图
|
||
'xiao_ad' => $tiemai_bott_ad,//4小图
|
||
'xinpin_list' => $xinpin_list,//新品
|
||
'jingpin_list' => $jingpin_list,//精品
|
||
'cuxiao_list' => $cuxiao_list//促销
|
||
];
|
||
}
|
||
|
||
/**
|
||
* Notes:获取商品列表
|
||
* @param $page int 页码
|
||
* @param $size int 每页数量
|
||
* @param $name string 商品名称
|
||
* @param $category_id int 分类id
|
||
* @param $type int 类型:1-热销榜单;2-新品推荐;3-好物优选
|
||
* @param $sort_type string 筛选类型:sales_sum-销量筛选;price-价格筛选
|
||
* @param $sort string 排序方式:desc-降序;asc-升序
|
||
* @return array
|
||
* @author: kiki
|
||
*/
|
||
public static function goodsList($page,$size,$name,$category_id,$type,$sort_type,$sort){
|
||
|
||
$where[] = ['g.del','=',0];
|
||
$where[] = ['g.status','=',1];
|
||
//按商品名称搜索
|
||
if($name){
|
||
$where[] = ['g.name','like','%'.$name.'%'];
|
||
|
||
}
|
||
//按商品分类搜索
|
||
if($category_id){
|
||
$where[] = ['first_category_id|second_category_id|third_category_id','=',$category_id];
|
||
}
|
||
//按类型筛选
|
||
if(1 != $type){
|
||
switch ($type){
|
||
case 2:
|
||
//新品上架
|
||
$where[] = ['is_new','=',1];
|
||
break;
|
||
case 3:
|
||
//精品推荐
|
||
$where[] = ['is_best','=',1];
|
||
break;
|
||
case 4:
|
||
//今日促销
|
||
$where[] = ['is_like','=',1];
|
||
break;
|
||
case 5:
|
||
//藏品捡宝
|
||
$where[] = ['is_jiantreasure','=',1];
|
||
break;
|
||
case 6:
|
||
//镇店藏品
|
||
$where[] = ['is_zdtreasure','=',1];
|
||
break;
|
||
}
|
||
}
|
||
//按排序条件显示
|
||
$order = [];
|
||
if($sort_type && $sort){
|
||
$order = [$sort_type=>$sort];
|
||
}
|
||
$goods = new Goods();
|
||
$count =Db::name('goods g')
|
||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||
->join('supplier s', 'g.supplier_id = s.id')
|
||
->where($where)
|
||
->count();
|
||
|
||
$list =Db::name('goods g')
|
||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name')
|
||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||
->join('supplier s', 'g.supplier_id = s.id')
|
||
->where($where)
|
||
->order($order)
|
||
->page($page, $size)
|
||
->select();
|
||
foreach ($list as $key => $v1){
|
||
$list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||
}
|
||
$more = is_more($count, $page, $size); //是否有下一页
|
||
|
||
return [
|
||
'list' => $list,
|
||
'page' => $page,
|
||
'size' => $size,
|
||
'count' => $count,
|
||
'more' => $more
|
||
];
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Notes:修改用户信息
|
||
* @param $post array 用户信息
|
||
* @return int|string
|
||
* @throws \think\Exception
|
||
* @throws \think\exception\PDOException
|
||
* @author: kiki
|
||
*/
|
||
public static function changeUserInfo($post){
|
||
$data = [
|
||
'nickname' => $post['nickname'],
|
||
'sex' => $post['sex'],
|
||
'create_time' => time(),
|
||
];
|
||
return Db::name('user')->where(['id'=>$post['user_id']])->update($data);
|
||
}
|
||
} |