更新:代理商列表接口

master
zwesy 2021-11-29 13:59:29 +08:00
parent 491703e67a
commit d30a7ede93
5 changed files with 145 additions and 8 deletions

View File

@ -554,19 +554,31 @@ if (!function_exists('getFilesize')) {
if (!function_exists('arrayNullToString')) {
/**
* 数组中null值转为空字符串
* 数组|或数据集中null值转为空字符串,并以数组格式返回
* 通常用于api json 返回内容null转换
*
* @param array $data
* @param array $data 【array|collection】
* @return array
*/
function arrayNullToString(array $data): array
function arrayNullToString($data)
{
foreach ($data as $key => $val) {
if (is_array($val)) {
$data[$key] = arrayNullToString($val);
} elseif ($val === null) {
$data[$key] = '';
if ($data instanceof Collection) {
$data = $data->toArray();
}
// 判断是否可以遍历
if (is_iterable($data)) {
foreach ($data as $key => $val) {
if ($val instanceof Collection) {
$val = $val->toArray();
}
if (is_iterable($val)) {
$data[$key] = arrayNullToString($val);
} elseif ($val === null) {
$data[$key] = '';
}
}
} else {
$data = [];
}
return $data;
}

View File

@ -3,6 +3,7 @@
namespace app\controller\api;
use app\controller\BaseController;
use think\response\Json;
/**
* API控制器基础类
@ -27,4 +28,24 @@ class Base extends BaseController
{
return $this->json(4004, 'error request!');
}
/**
* 返回封装后的API数据到客户端(对返回内容进行null转空字符串过滤)
* 以json格式抛出异常
* @access protected
* @param integer $code 返回的code
* @param mixed $msg 提示信息
* @param mixed $data 要返回的数据
* @return Json
*/
protected function json(int $code = 0, $msg = '操作成功', $data = []): Json
{
$result = [
'code' => $code,
'msg' => $msg,
'data' => arrayNullToString($data)
];
return json($result);
}
}

View File

@ -0,0 +1,89 @@
<?php
namespace app\controller\api;
use app\exception\RepositoryException;
use app\repository\BusinessRepository;
use think\response\Json;
use app\model\{
Business as BusinessModel
};
/**
* APP 数据字典
*
* Class Dictionary
* @package app\controller\api
*/
class Dictionary extends Base
{
protected $noNeedLogin = [
'getDistanceList',
'getAgencyList',
];
/**
* 获取距离(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);
}
/**
* 获取商圈列表
* TODO 待确认是否需要这个接口
*/
public function getBusinessCircle()
{
}
/**
* 获取代理机构(渠道代理商)列表
* (来源商家表中的渠道代理商)
*
* $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', []);
}
}
}

View File

@ -12,6 +12,12 @@ use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
use Exception;
use think\response\Json;
/**
* 用户相关
*
* Class User
* @package app\controller\api
*/
class User extends Base
{
protected $noNeedLogin = [

View File

@ -135,4 +135,13 @@ class BusinessRepository extends Repository
}
return $Flow;
}
/**
* 获取所有的商圈数据
* TODO
*/
public function getAllBusinessCircleList()
{
}
}