<?php
|
|
namespace app\api\controller\supplier;
|
|
use app\api\controller\Controller;
|
use app\api\model\supplier\page\Page as AppPage;
|
use app\api\model\settings\Setting as SettingModel;
|
use app\api\model\supplier\Supplier;
|
use app\common\enum\settings\SettingEnum;
|
use app\common\model\app\AppUpdate as AppUpdateModel;
|
use app\common\model\supplier\Service as ServiceModel;
|
use app\api\model\plus\chat\Chat as ChatModel;
|
use app\common\model\settings\Region as RegionModel;
|
use app\common\model\store\Store as StoreModel;
|
/**
|
* 页面控制器
|
*/
|
class Page extends Controller
|
{
|
/**
|
* 首页
|
*/
|
public function index($page_id = null, $url = '',$shop_supplier_id)
|
{
|
$shop_supplier=Supplier::detail($shop_supplier_id);
|
if (!$shop_supplier) {
|
return $this->renderError('供应商不存在');
|
}
|
$page=(new AppPage())
|
->where('is_default',1)
|
->where('page_type',10)
|
->where('shop_supplier_id',$shop_supplier_id)
|
->find();
|
if (!$page) {
|
$page=(new AppPage())
|
->where('page_type',10)
|
->where('shop_supplier_id',$shop_supplier_id)
|
->find();
|
}
|
if ($page){
|
$page_id=$page['page_id'];
|
}
|
// 页面元素
|
$data = AppPage::getPageData($this->getUser(false), $page_id,'',$shop_supplier_id);
|
|
//消息条数
|
$Chat = new ChatModel;
|
$data['msgNum'] = $Chat->mCount($this->getUser(false));
|
$data['setting'] = array(
|
'collection' => SettingModel::getItem('collection'),
|
'officia' => SettingModel::getItem('officia'),
|
'homepush' => SettingModel::getItem('homepush'),
|
'store' => SettingModel::getItem('store'),
|
);
|
// 扫一扫参数
|
$data['signPackage'] = $this->getScanParams($url)['signPackage'];
|
$data['vars'] = SettingModel::getItem(SettingEnum::NAV.'_'.$shop_supplier_id,$this->app_id,$shop_supplier_id);
|
return $this->renderSuccess('', $data);
|
}
|
|
/**
|
* 单独获取首页数据
|
*/
|
public function getPageData($page_id = null,$city_supplier_ids='')
|
{
|
// 页面元素
|
$data = AppPage::getPageData($this->getUser(false), $page_id,$city_supplier_ids);
|
return $this->renderSuccess('', $data);
|
}
|
|
/**
|
* 首页
|
*/
|
public function diy($page_id = null, $url = '')
|
{
|
// 页面元素
|
$data = AppPage::getPageData($this->getUser(false), $page_id);
|
// 微信公众号分享参数
|
$data['share'] = $this->getShareParams($url, $data['page']['params']['share_title'], $data['page']['params']['share_title'], '/pages/diy-page/diy-page', $data['page']['style']['toplogo']);
|
return $this->renderSuccess('', $data);
|
}
|
|
// 公众号客服
|
public function mpService($shop_supplier_id)
|
{
|
$mp_service = ServiceModel::detail($shop_supplier_id);
|
return $this->renderSuccess('', compact('mp_service'));
|
}
|
|
//底部导航
|
public function nav($shop_supplier_id)
|
{
|
$data['vars'] = SettingModel::getItem(SettingEnum::NAV.'_'.$shop_supplier_id,$this->app_id,$shop_supplier_id);
|
$data['theme'] = SettingModel::getItem(SettingEnum::THEME);
|
$data['points_name'] = SettingModel::getPointsName();
|
return $this->renderSuccess('', $data);
|
}
|
|
// app更新
|
public function update($name, $version, $platform)
|
{
|
$result = [
|
'update' => false,
|
'wgtUrl' => '',
|
'pkgUrl' => '',
|
];
|
try {
|
$model = AppUpdateModel::getLast();
|
if($platform == 'android'){
|
$compare_version = $model['version_android'];
|
}else{
|
$compare_version = $model['version_ios'];
|
}
|
// 这里简单判定下,不相等就是有更新。
|
if($model && $version != $compare_version){
|
$currentVersions = explode('.', $version);
|
$resultVersions = explode('.', $compare_version);
|
|
if ($currentVersions[0] < $resultVersions[0]) {
|
// 说明有大版本更新
|
$result['update'] = true;
|
$result['pkgUrl'] = $platform == 'android' ? $model['pkg_url_android'] : $model['pkg_url_ios'];
|
log_write('大版本');
|
} else {
|
// 其它情况均认为是小版本更新
|
$result['update'] = true;
|
$result['wgtUrl'] = $model['wgt_url'];
|
log_write('小版本'.$result['wgtUrl']);
|
}
|
}
|
} catch (\Exception $e) {
|
|
}
|
return $this->renderSuccess('', compact('result'));
|
}
|
//坐标解析站点并根据站点获取匹配的商户
|
public function getCitySupplierBycity($city)
|
{
|
$city_id = RegionModel::getIdByCityName($city, 2);
|
$storeData = StoreModel::where('city_id', '=', $city_id)->select()->toArray();
|
$supplier_ids = array_column($storeData,'shop_supplier_id');
|
$name = $city;
|
$level = 2;
|
return $this->renderSuccess('', compact('supplier_ids', 'city', 'name', 'level'));
|
}
|
//坐标解析站点并根据站点获取匹配的商户 by yj
|
public function getCitySupplierByRegion($city)
|
{
|
$region_id = RegionModel::getIdByCityName($city, 3);
|
$storeData = StoreModel::where('region_id','=',$region_id)->select()->toArray();
|
$supplier_ids = array_column($storeData,'shop_supplier_id');
|
$name = RegionModel::getParentNameById($region_id);
|
$level = 3;
|
return $this->renderSuccess('', compact('supplier_ids','city', 'name', 'level'));
|
}
|
//坐标解析站点并根据站点获取匹配的商户
|
public function getCitySupplier($longitude,$latitude)
|
{
|
//$city=$this->getAddress($longitude,$latitude);
|
$address = $this->getAddress($longitude,$latitude);//省
|
$name = $address["city"];
|
$city = $address["district"];
|
$region_id = RegionModel::getIdByCityName($city,3);
|
$storeData = StoreModel::where('region_id','=',$region_id)->select()->toArray();
|
|
/*$city=$address["city"];
|
$city_id = RegionModel::getIdByCityName($city,2);
|
if(empty($storeData)){
|
$storeData=StoreModel::where('city_id','=',$city_id)->select()->toArray();
|
}*/
|
$supplier_ids = array_column($storeData,'shop_supplier_id');
|
$level = 3;
|
return $this->renderSuccess('',compact('supplier_ids', 'city', 'name', 'level'));
|
}
|
//输入经纬度获取地址(腾讯地图)
|
function getAddress($longitude,$latitude) {
|
header("Content-type:text/html;charset=utf-8");
|
$ak = 'LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR';//你腾讯地图的k值
|
$url = "http://apis.map.qq.com/ws/geocoder/v1/?location={$latitude},{$longitude}&key={$ak}";
|
$json = file_get_contents($url);
|
$data = json_decode($json,TRUE);
|
//return $data['result']['ad_info']['city'];//获取地址
|
return $data['result']['ad_info'];//获取地址
|
}
|
//坐标解析站点并根据站点获取匹配的商户
|
public function getCityData()
|
{
|
$formData = SettingModel::getItem('store');
|
$citysData = array();
|
if(!empty($formData['citysData'])){
|
$citysData = unserialize($formData['citysData']);
|
}
|
return $this->renderSuccess('', $citysData);
|
}
|
|
//坐标解析站点并根据站点获取匹配的商户
|
public function getCityList()
|
{
|
$formData = SettingModel::getItem('store');
|
$citysData = array();
|
if(!empty($formData['citysData'])){
|
$citysData = unserialize($formData['citysData']);
|
}
|
// 整理数据 by lyzflash
|
$cityList = array();
|
foreach ($citysData as $row) {
|
$cityList = array_merge($cityList, $row['citys']);
|
}
|
$cityList = array_values(array_sort($cityList, 'pinyin'));
|
// 字母列表
|
$alphabet = array_unique(array_merge(['area', 'record'], array_column($cityList, 'first')));
|
return $this->renderSuccess('', compact('cityList', 'alphabet'));
|
}
|
//调用接口执行定时器
|
public function ss(){
|
event('AgentOrder');
|
}
|
}
|