123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- // +----------------------------------------------------------------------
- // | Niucloud-admin 企业快速开发的saas管理平台
- // +----------------------------------------------------------------------
- // | 官方网址:https://www.niucloud.com
- // +----------------------------------------------------------------------
- // | niucloud团队 版权所有 开源版本可自由商用
- // +----------------------------------------------------------------------
- // | Author: Niucloud Team
- // +----------------------------------------------------------------------
- namespace app\service\api\diy;
- use app\dict\diy\PagesDict;
- use app\model\diy\Diy;
- use core\base\BaseApiService;
- /**
- * 自定义页面服务层
- * Class DiyService
- * @package app\service\api\diy
- */
- class DiyService extends BaseApiService
- {
- public function __construct()
- {
- parent::__construct();
- $this->model = new Diy();
- }
- /**
- * 获取自定义页面信息
- * @param array $params
- * @return array
- */
- public function getInfo(array $params = [])
- {
- $condition = [];
- $site_id = $params[ 'site_id' ] ?? 0;
- $condition[] = [ 'site_id', '=', $site_id ];
- if (!empty($params[ 'id' ])) {
- $condition[] = [ 'id', '=', $params[ 'id' ] ];
- } elseif (!empty($params[ 'name' ])) {
- $condition[] = [ 'name', '=', $params[ 'name' ] ];
- $condition[] = [ 'is_default', '=', 1 ];
- }
- $field = 'id,site_id,title,name,type,template, mode,value,is_default,share,visit_count';
- $info = $this->model->field($field)->where($condition)->findOrEmpty()->toArray();
- if (empty($info)) {
- // 查询默认页面数据
- if (!empty($params[ 'name' ])) {
- $page_data = $this->getFirstPageData($params[ 'name' ]);
- if (!empty($page_data)) {
- $info = [
- 'site_id' => $site_id,
- 'title' => $page_data[ 'title' ],
- 'name' => $page_data[ 'type' ],
- 'type' => $page_data[ 'type' ],
- 'template' => $page_data[ 'template' ],
- 'mode' => $page_data[ 'mode' ],
- 'value' => json_encode($page_data[ 'data' ], JSON_UNESCAPED_UNICODE),
- 'is_default' => 1,
- 'share' => '',
- 'visit_count' => 0
- ];
- }
- }
- }
- return $info;
- }
- /**
- * 获取默认页面数据
- * @param $type
- * @return array|mixed
- */
- public function getFirstPageData($type)
- {
- $pages = PagesDict::getPages([ 'type' => $type ]);
- if (!empty($pages)) {
- $template = array_key_last($pages);
- $page = array_pop($pages);
- $page[ 'template' ] = $template;
- $page[ 'type' ] = $type;
- return $page;
- }
- return [];
- }
- }
|