143 lines
4.0 KiB
PHP
143 lines
4.0 KiB
PHP
<?php
|
|
namespace app\controller\api;
|
|
|
|
use app\exception\RepositoryException;
|
|
use app\repository\BusinessRepository;
|
|
use app\repository\CouponRepository;
|
|
use app\repository\DictionaryRepository;
|
|
use think\response\Json;
|
|
use app\model\{
|
|
Business as BusinessModel
|
|
};
|
|
|
|
/**
|
|
* APP 数据字典
|
|
*
|
|
* Class Dictionary
|
|
* @package app\controller\api
|
|
*/
|
|
class Dictionary extends Base
|
|
{
|
|
protected $noNeedLogin = [
|
|
'getDistanceList',
|
|
'getBusinessCircle',
|
|
'getAgencyList',
|
|
'getBusinessTypeList',
|
|
'getCouponTypeList',
|
|
];
|
|
|
|
/**
|
|
* 获取距离(distance)列表
|
|
* @return Json
|
|
*/
|
|
public function getDisList(): Json
|
|
{
|
|
$list = [
|
|
['id' => 1, 'name'=> "1km", 'value' => 1],
|
|
['id' => 3, 'name'=> "3km", 'value' => 3],
|
|
['id' => 5, 'name'=> "5km", 'value' => 5],
|
|
['id' => 10, 'name'=> "10km", 'value' => 10],
|
|
];
|
|
|
|
return $this->json(0, 'success', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取商圈列表
|
|
* @return Json
|
|
*/
|
|
public function getBusinessCircle(): Json
|
|
{
|
|
$items = DictionaryRepository::getInstance()->getAllBusinessCircleList();
|
|
$items->each(function ($item) {
|
|
$areaText = '';
|
|
if (!empty($item['province_text'])) {
|
|
$areaText = $item['province_text'].'·';
|
|
}
|
|
if (!empty($item['city_text']) && $item['city_text'] != '市辖区') {
|
|
$areaText .= $item['city_text'].'·';
|
|
}
|
|
if (!empty($item['county_text'])) {
|
|
$areaText .= $item['county_text'];
|
|
}
|
|
|
|
$item['name_text'] = $item['name'];
|
|
if (!empty($areaText)) {
|
|
$item['name_text'] = $item['name'] . '「'.$areaText.'」';
|
|
}
|
|
|
|
return $item;
|
|
});
|
|
return $this->json(0, 'success', $items);
|
|
}
|
|
|
|
/**
|
|
* 获取代理机构(代理商)关联的商家列表
|
|
* (来源商家表中的代理商)
|
|
*
|
|
* $size 0 表示不分页,获取所有数据
|
|
*
|
|
*/
|
|
public function getAgencyList(): Json
|
|
{
|
|
try {
|
|
$page = $this->request->param('page/d', 1);
|
|
$size = $this->request->param('size/d', 10);
|
|
|
|
$whereMap = [];
|
|
$whereMap[] = ['is_agency', '=', self::BOOL_TRUE];
|
|
$whereMap[] = ['is_delete', '=', self::BOOL_FALSE];
|
|
$whereMap[] = ['state', '=', BusinessModel::state_on];
|
|
$whereMap[] = ['enable', '=', self::BOOL_FALSE];
|
|
|
|
$sortOrder = ['id'=>"asc"];
|
|
$fields = ['id', 'code', 'business_name', 'business_subtitle', 'business_license',
|
|
'lat', 'lng', 'business_address', 'contact_name', 'contact_phone',
|
|
'create_time', 'type', 'type_name', 'characteristic', 'intro',
|
|
'business_circle', 'business_circle_id', 'background', 'score',
|
|
];
|
|
|
|
$repo = BusinessRepository::getInstance();
|
|
$res = $repo->findList($whereMap, $fields, $page, $size, null, $sortOrder);
|
|
|
|
return $this->json(0 , 'success', $res);
|
|
} catch (RepositoryException | \Exception $e) {
|
|
|
|
return $this->json(0 , 'success', []);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取商家分类
|
|
*/
|
|
public function getBusinessTypeList(): Json
|
|
{
|
|
$pid = $this->request->param('pid/d', 0);
|
|
|
|
$whereMap = [];
|
|
if ($pid > 0) {
|
|
$whereMap[] = ['pid', '=', $pid];
|
|
}
|
|
|
|
$repo = DictionaryRepository::getInstance();
|
|
$items = $repo->getBusinessTypeList($whereMap, [], null, ['pid'=>'asc']);
|
|
|
|
$list = $items->toArray();
|
|
$list = $repo->recursionChildrenList($list, $pid, 'pid', 'id');
|
|
|
|
return $this->json(0, 'success', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取优惠卷类型列表
|
|
* @return Json
|
|
*/
|
|
public function getCouponTypeList(): Json
|
|
{
|
|
$items = CouponRepository::getInstance()->getCouponTypeAll(['id', 'name'],['id'=>'asc']);
|
|
return $this->json(0, 'success', $items);
|
|
}
|
|
|
|
|
|
|
|
} |