103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| namespace app\repository;
 | |
| 
 | |
| 
 | |
| use app\model\BusinessCircle;
 | |
| use app\model\Category;
 | |
| use app\model\Model;
 | |
| use app\service\Repository;
 | |
| use think\Collection;
 | |
| 
 | |
| /**
 | |
|  * 数据字典域 相关
 | |
|  *
 | |
|  * Class DictionaryRepository
 | |
|  * @package app\repository
 | |
|  * @method self getInstance(Model $model = null) static
 | |
|  */
 | |
| class DictionaryRepository extends Repository
 | |
| {
 | |
|     /**
 | |
|      * 上下级按children进行递归分组
 | |
|      * @param $items
 | |
|      * @param int $pid
 | |
|      * @param string $pidField 上下级关联字段
 | |
|      * @param string $primaryField 关联关系字段
 | |
|      * @return array
 | |
|      */
 | |
|     public function recursionChildrenList($items, int $pid=0, string $pidField = 'pid', string $primaryField='id'): array
 | |
|     {
 | |
|         $list = [];
 | |
|         foreach ($items as $ki => $item) {
 | |
|             if ($item[$pidField] == $pid) {
 | |
|                 unset($items[$ki]);
 | |
|                 $item['children']   = $this->recursionChildrenList($items, $item[$primaryField], $pidField, $primaryField);
 | |
|                 $list[] = $item;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return $list;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取所有的商圈数据
 | |
|      */
 | |
|     public function getAllBusinessCircleList(array $fields=[])
 | |
|     {
 | |
|         try {
 | |
|             return BusinessCircle::field($fields)
 | |
|                 ->order(['sort'=>'desc', 'id'=>'asc'])
 | |
|                 ->select();
 | |
|         } catch (\Exception $e) {
 | |
|             return new Collection();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取商圈详情
 | |
|      *
 | |
|      * @param int $id
 | |
|      * @param array $fields
 | |
|      * @param callable|null $call
 | |
|      * @return array|\think\Model|null
 | |
|      */
 | |
|     public function findBusinessCircleById(int $id, array $fields = [], callable $call = null)
 | |
|     {
 | |
|         try {
 | |
|             return BusinessCircle::findById($id, $fields, $call);
 | |
|         } catch (\Exception $e) {
 | |
|             return null;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * 获取商家分类数据
 | |
|      */
 | |
|     public function getBusinessTypeList(array $where=[], array $fields = [], callable $call=null, array $order = [])
 | |
|     {
 | |
|         try {
 | |
|             $res = Category::findList($where, $fields, 1, 0, $call, $order);
 | |
|             return $res['list'];
 | |
|         } catch (\Exception $e) {
 | |
|             return new Collection();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取商家分类详情
 | |
|      * @param int $id
 | |
|      * @param array $fields
 | |
|      * @param callable|null $call
 | |
|      * @return array|\think\Model|null
 | |
|      */
 | |
|     public function findBusinessTypeById(int $id, array $fields = [], callable $call = null)
 | |
|     {
 | |
|         try {
 | |
|             return Category::findById($id, $fields, $call);
 | |
|         } catch (\Exception $e) {
 | |
|             return null;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| } |