122 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.2 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, Member};
 | |
| 
 | |
| /**
 | |
|  * 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 {
 | |
|             $data =  Member::getAgentAll();
 | |
|             return $this->json(0 , 'success', $data);
 | |
|         } 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);
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
| } |