Files
CompanyProject/金壶/ydyd_service/application/common/AppConstant.php
2024-09-27 01:32:49 +08:00

112 lines
3.9 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: HIAPAD
* Date: 2018/9/6
* Time: 9:50
*/
namespace app\common;
use think\facade\Cache;
use think\Db;
class AppConstant
{
public function getAreaData()
{
//获取地区数据缓存
$app_area_data = Cache::get("APP_AREA_DATA");
if (!$app_area_data) {
$this->makeAreaData();
$app_area_data = Cache::get("APP_AREA_DATA");
}
return $app_area_data;
}
public function getAreaList()
{
//获取地区数据缓存
$app_area_list = Cache::get("APP_AREA_LIST");
if (!$app_area_list) {
$this->makeAreaData();
$app_area_list = Cache::get("APP_AREA_LIST");
}
return $app_area_list;
}
private function makeAreaData()
{
//方便理解,暂写为三次查询
$area_data = [];
$area_list = [];
//第一级
$list_1 = Db::name('area')->where('parent_area_id','=',0)->field('id,area_name')->order('list_order')->select();
$tmp_id_list=[];
foreach ($list_1 as $k => $v) {
$area_data[$v['id']]=$v;
$area_data[$v['id']]['child_area']=[];
$area_list[$v['id']]=$v;
$tmp_id_list[]=$v['id'];
}
//第二级
$list_2 = Db::name('area')->where('parent_area_id','in',$tmp_id_list)->field('id,parent_area_id,area_name')->order('list_order')->select();
$tmp_id_list=[];
foreach ($list_2 as $k => $v) {
$area_data[$v['parent_area_id']]['child_area'][$v['id']]=$v;
$area_data[$v['parent_area_id']]['child_area'][$v['id']]['child_area']=[];
$area_list[$v['id']]=$v;
$tmp_id_list[]=$v['id'];
}
//第三级
$list_3 = Db::name('area')->where('parent_area_id','in',$tmp_id_list)->field('id,parent_area_id,area_name')->order('list_order')->select();
foreach ($list_3 as $k => $v) {
$grand_pa_id=$area_list[$v['parent_area_id']]['parent_area_id'];
$area_data[$grand_pa_id]['child_area'][$v['parent_area_id']]['child_area'][$v['id']]=$v;
$area_list[$v['id']]=$v;
$area_list[$v['id']]['grand_pa_id']=$grand_pa_id;
}
Cache::set('APP_AREA_DATA', $area_data,3600);
Cache::set('APP_AREA_LIST', $area_list,3600);
}
//首页产品分类数据
public function getIndexGoodsCateData()
{
$cate_menu = Cache::get('INDEX_GOODS_CATE_MENU_DATA');
$cate_menu = null;
if (!$cate_menu) {
//$where[]=['index_show_flag','=',1];
//$order['index_show_order']='desc';
$where[] = ['list_show_flag','=',1];
$order['list_show_order']='desc';
$cate_menu = Db::name('goods_cate')->where($where)->order($order)->column('cate_id,nid,name,pid,index_show_flag,index_show_order,list_show_flag,list_show_order,description,icon_url','cate_id');
$cate_menu = transform_goods_cate_tree($cate_menu);
Cache::set('GOODS_CATE_MENU_DATA', $cate_menu, 120);
}
return $cate_menu;
}
//app专用
public function getAppIndexGoodsCateData()
{
$cate_menu = Cache::get('INDEX_GOODS_CATE_MENU_DATA_APP');
$cate_menu = null;
if (!$cate_menu) {
//pc首页
//$where[]=['index_show_flag','=',1];
//$order['index_show_order']='desc';
//app分类
$where[] = ['list_show_flag','=',1];
$order['list_show_order']='desc';
$cate_menu = Db::name('goods_cate')->where($where)->order($order)->column('cate_id,nid,name,pid,index_show_flag,index_show_order,list_show_flag,list_show_order,description,icon_url','cate_id');
$cate_menu = transform_goods_cate_tree($cate_menu);
Cache::set('GOODS_CATE_MENU_DATA_APP', $cate_menu, 120);
}
return $cate_menu;
}
}