| 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 [];    }}
 |