vr-shopxo-plugin/shopxo/app/service/DiyApiService.php

1199 lines
53 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://opensource.org/licenses/mit-license.php )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\service;
use think\facade\Db;
use app\service\SystemBaseService;
use app\service\ResourcesService;
use app\service\AttachmentCategoryService;
use app\service\GoodsCategoryService;
use app\service\ArticleCategoryService;
use app\service\BrandCategoryService;
use app\service\BrandService;
use app\service\GoodsService;
use app\service\UserService;
use app\service\OrderService;
use app\service\GoodsFavorService;
use app\service\GoodsBrowseService;
use app\service\MessageService;
use app\service\IntegralService;
use app\service\StoreService;
/**
* DiyApi服务层
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-18
* @desc description
*/
class DiyApiService
{
/**
* 公共初始化
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function Init($params = [])
{
// 文章分类
$article_category = ArticleCategoryService::ArticleCategoryList(['field'=>'id,name']);
// 品牌分类
$brand_category = BrandCategoryService::BrandCategoryList(['field'=>'id,name']);
// 返回数据
$data = [
'config' => self::ConfigData(),
// 附件分类
'attachment_category' => AttachmentCategoryService::AttachmentCategoryAll($params),
// 文章分类
'article_category' => $article_category['data'],
// 品牌分类
'brand_category' => $brand_category['data'],
// 品牌列表
'brand_list' => BrandService::CategoryBrand(),
// 商品分类
'goods_category' => GoodsCategoryService::GoodsCategoryAll($params),
// 页面链接
'page_link_list' => self::PageLinkList(),
// 模块组件
'module_list' => self::ModuleList(),
// 品牌排序类型
'brand_order_by_type_list' => MyConst('common_brand_order_by_type_list'),
// 文章排序类型
'article_order_by_type_list' => MyConst('common_article_order_by_type_list'),
// 商品排序类型
'goods_order_by_type_list' => MyConst('common_goods_order_by_type_list'),
// 数据排序规则
'data_order_by_rule_list' => MyConst('common_data_order_by_rule_list'),
// 插件
'plugins' => [],
];
// 钩子
$hook_name = 'plugins_service_diyapi_init_data';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'params' => $params,
'data' => &$data,
]);
return DataReturn('success', 0, $data);
}
/**
* 配置数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-09-04
* @desc description
* @param [array] $params [输入参数]
*/
public static function ConfigData($params = [])
{
return [
// 站点信息
'site_name' => MyC('home_site_name'),
'site_logo' => AttachmentPathViewHandle(MyC('home_site_logo')),
'site_logo_wap' => AttachmentPathViewHandle(MyC('home_site_logo_wap')),
'site_logo_app' => AttachmentPathViewHandle(MyC('home_site_logo_app')),
'site_logo_square' => AttachmentPathViewHandle(MyC('home_site_logo_square')),
// 地图密钥
'common_map_type' => MyC('common_map_type', 'baidu', true),
'common_baidu_map_ak' => MyC('common_baidu_map_ak', null, true),
'common_amap_map_ak' => MyC('common_amap_map_ak', null, true),
'common_amap_map_safety_ak' => MyC('common_amap_map_safety_ak', null, true),
'common_tencent_map_ak' => MyC('common_tencent_map_ak', null, true),
'common_tianditu_map_ak' => MyC('common_tianditu_map_ak', null, true),
// 商店diy下载地址
'store_diy_url' => StoreService::StoreDiyUrl(),
// 货币符号
'currency_symbol' => ResourcesService::CurrencyDataSymbol(),
// 附件host地址
'attachment_host' => SystemBaseService::AttachmentHost(),
// 上传组件配置
'ueditor' => [
'image_suffix' => MyConfig('ueditor.imageAllowFiles'),
'video_suffix' => MyConfig('ueditor.videoAllowFiles'),
'file_suffix' => MyConfig('ueditor.fileAllowFiles'),
],
// 附件分类权限
'attachment_category_operate' => [
'is_add' => 1,
'is_edit' => 1,
'is_del' => 1,
],
// 附件管理权限
'attachment_operate' => [
'is_move' => 1,
'is_upload' => 1,
'is_edit' => 1,
'is_del' => 1,
],
// diy基础操作权限
'diy_config_operate' => [
// 修改基础数据
'is_base_data' => 1,
// 附件上传管理
'is_upload_admin' => 1,
// 保存
'is_save_button' => 1,
// 保存并关闭
'is_save_close_button' => 1,
],
// 预览地址
'preview_url' => MyUrl('admin/diy/preview'),
// Diy装修 - 详情
'diy_detail_url' => MyUrl('admin/diyapi/diydetail'),
// Diy装修 - 保存
'diy_save_url' => MyUrl('admin/diyapi/diysave'),
// Diy装修 - 导入
'diy_upload_url' => MyUrl('admin/diyapi/diyupload'),
// Diy装修 - 导出
'diy_download_url' => MyUrl('admin/diyapi/diydownload'),
// Diy装修 - 安装
'diy_install_url' => MyUrl('admin/diyapi/diyinstall'),
// Diy装修 - 模板市场
'diy_market_url' => MyUrl('admin/diyapi/diymarket'),
// 底部菜单保存
'app_tabbar_save_url' => MyUrl('admin/diyapi/apptabbarsave'),
// 底部菜单数据
'app_tabbar_data_url' => MyUrl('admin/diyapi/apptabbardata'),
];
}
/**
* 模块组件
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-08-30
* @desc description
* @param [array] $params [输入参数]
*/
public static function ModuleList($params = [])
{
return [
[
'name' => '基础组件',
'key' => 'base',
'data' => [
['key' => 'tabs', 'name' => '选项卡'],
['key' => 'tabs-carousel', 'name' => '选项卡轮播'],
['key' => 'tabs-magic', 'name' => '选项卡魔方'],
['key' => 'carousel', 'name' => '轮播图'],
['key' => 'search', 'name' => '搜索框'],
['key' => 'user-info', 'name' => '用户信息'],
['key' => 'nav-group', 'name' => '导航组'],
['key' => 'notice', 'name' => '公告'],
['key' => 'video', 'name' => '视频'],
['key' => 'article-list', 'name' => '文章列表'],
['key' => 'article-tabs', 'name' => '文章选项卡'],
['key' => 'goods-list', 'name' => '商品列表'],
['key' => 'goods-tabs', 'name' => '商品选项卡'],
['key' => 'goods-magic', 'name' => '商品魔方'],
['key' => 'img-magic', 'name' => '图片魔方'],
['key' => 'data-magic', 'name' => '数据魔方'],
['key' => 'data-tabs', 'name' => '数据选项卡'],
['key' => 'hot-zone', 'name' => '热区'],
['key' => 'custom', 'name' => '自定义'],
]
],
[
'name' => '插件',
'key' => 'plugins',
'data' => []
],
[
'name' => '工具组件',
'key' => 'tool',
'data' => [
['key' => 'title', 'name' => '标题'],
['key' => 'float-window', 'name' => '悬浮按钮'],
['key' => 'auxiliary-blank', 'name' => '辅助空白'],
['key' => 'row-line', 'name' => '横线'],
['key' => 'rich-text', 'name' => '富文本'],
]
]
];
}
/**
* 页面链接
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-23
* @desc description
* @param [array] $params [输入参数]
*/
public static function PageLinkList($params = [])
{
return [
[
'name' => '商城链接',
'type' => 'shop',
'is_show' => 1,
'data' => [
[
'name' => '基础链接',
'type' => 'base',
'data' => [
['name'=>'商城首页', 'page'=>'/pages/index/index'],
['name'=>'商品分类', 'page'=>'/pages/goods-category/goods-category'],
['name'=>'商品搜索开始', 'page'=>'/pages/goods-search-start/goods-search-start'],
['name'=>'商品搜索', 'page'=>'/pages/goods-search/goods-search'],
['name'=>'购物车', 'page'=>'/pages/cart/cart'],
['name'=>'购物车单页', 'page'=>'/pages/cart-page/cart-page'],
['name'=>'登录页面', 'page'=>'/pages/login/login'],
['name'=>'文章列表', 'page'=>'/pages/article-category/article-category'],
['name'=>'系统扫码', 'page'=>'scan://system'],
],
],
[
'name' => '用户中心',
'type' => 'user',
'data' => [
['name'=>'用户中心', 'page'=>'/pages/user/user'],
['name'=>'订单列表', 'page'=>'/pages/user-order/user-order'],
['name'=>'订单售后', 'page'=>'/pages/user-orderaftersale/user-orderaftersale'],
['name'=>'商品收藏', 'page'=>'/pages/user-favor/user-favor'],
['name'=>'商品评论', 'page'=>'/pages/user-goods-comments/user-goods-comments'],
['name'=>'我的地址', 'page'=>'/pages/user-address/user-address'],
['name'=>'我的积分', 'page'=>'/pages/user-integral/user-integral'],
['name'=>'我的消息', 'page'=>'/pages/message/message'],
['name'=>'我的足迹', 'page'=>'/pages/user-goods-browse/user-goods-browse'],
['name'=>'设置中心', 'page'=>'/pages/setup/setup'],
['name'=>'关于我们', 'page'=>'/pages/about/about'],
],
],
],
],
[
'name' => '商品分类',
'type' => 'goods-category',
'is_show' => 1,
'data' => null,
],
[
'name' => '商品搜索',
'type' => 'goods-search',
'is_show' => 1,
'data' => null,
],
[
'name' => '商品页面',
'type' => 'goods',
'is_show' => 1,
'url' => MyUrl('api/diyapi/goodslist'),
'data' => null,
],
[
'name' => '文章页面',
'type' => 'article',
'is_show' => 1,
'url' => MyUrl('api/diyapi/articlelist'),
'data' => null,
],
[
'name' => 'DIY页面',
'type' => 'diy',
'is_show' => 1,
'url' => MyUrl('api/diyapi/diylist'),
'data' => null,
],
[
'name' => '页面设计',
'type' => 'design',
'is_show' => 1,
'url' => MyUrl('api/diyapi/designlist'),
'data' => null,
],
[
'name' => '自定义页面',
'type' => 'custom-view',
'is_show' => 1,
'url' => MyUrl('api/diyapi/customviewlist'),
'data' => null,
],
[
'name' => '品牌',
'type' => 'brand',
'is_show' => 1,
'url' => MyUrl('api/diyapi/brandlist'),
'data' => null,
],
[
'name' => '自定义链接',
'type' => 'custom-url',
'is_show' => 1,
'data' => null,
],
[
'name' => '插件',
'type' => 'plugins',
'is_show' => 1,
'data' => [],
]
];
}
/**
* 商品指定数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function GoodsAppointData($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'goods_ids',
'error_msg' => '请选择商品',
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 获取商品
$result = GoodsService::AppointGoodsList($params);
return DataReturn('success', 0, $result);
}
/**
* 商品自动数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function GoodsAutoData($params = [])
{
$result = GoodsService::AutoGoodsList($params);
return DataReturn('success', 0, $result);
}
/**
* 文章指定数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleAppointData($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'article_ids',
'error_msg' => '请选择文章',
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 获取文章
$result = ArticleService::AppointArticleList($params);
return DataReturn('success', 0, $result);
}
/**
* 文章自动数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function ArticleAutoData($params = [])
{
$result = ArticleService::AutoArticleList($params);
return DataReturn('success', 0, $result);
}
/**
* 品牌指定数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function BrandAppointData($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'brand_ids',
'error_msg' => '请选择品牌',
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
return DataReturn($ret, -1);
}
// 获取品牌
$result = BrandService::AppointBrandList($params);
return DataReturn('success', 0, $result);
}
/**
* 品牌自动数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function BrandAutoData($params = [])
{
$result = BrandService::AutoBrandList($params);
return DataReturn('success', 0, $result);
}
/**
* 用户头部数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function UserHeadData($params = [])
{
static $diyapi_user_info_data = null;
if($diyapi_user_info_data === null)
{
$user = UserService::LoginUserInfo();
$data = [
'user_avatar' => empty($user) ? UserDefaultAvatar() : $user['avatar'],
'user_name_view' => empty($user) ? '用户名称' : $user['user_name_view'],
'user_number_code' => empty($user) ? '' : $user['number_code'],
'order_count' => 0,
'goods_favor_count' => 0,
'goods_browse_count' => 0,
'message_unread_count' => 0,
'integral_number' => 0,
];
if(!empty($user))
{
// 基础条件
$base_where = [
['user_id', '=', $user['id']],
];
// 订单总数
$data['order_count'] = OrderService::OrderTotal(array_merge($base_where, [
['is_delete_time', '=', 0],
['user_is_delete_time', '=', 0],
]));
// 商品收藏总数
$data['goods_favor_count'] = GoodsFavorService::GoodsFavorTotal($base_where);
// 商品浏览总数
$data['goods_browse_count'] = GoodsBrowseService::GoodsBrowseTotal($base_where);
// 用户积分
$integral = IntegralService::UserIntegral($user['id']);
$data['integral_number'] = (!empty($integral) && !empty($integral['integral'])) ? $integral['integral'] : 0;
// 未读消息总数
$data['message_unread_count'] = MessageService::UserMessageTotal([
'user' => $user,
'is_more' => 1,
'is_read' => 0,
]);
}
// diy用户头数据钩子
$hook_name = 'plugins_service_diyapi_user_head_data';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'data' => &$data,
'user' => $user,
'params' => $params,
]);
// 赋值常亮变量
$diyapi_user_info_data = $data;
}
return DataReturn('success', 0, $diyapi_user_info_data);
}
/**
* 商品收藏自动数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function GoodsFavorAutoData($params = [])
{
$result = GoodsFavorService::AutoGoodsFavorList($params);
return DataReturn('success', 0, $result);
}
/**
* 商品浏览自动数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function GoodsBrowseAutoData($params = [])
{
$result = GoodsBrowseService::AutoGoodsBrowseList($params);
return DataReturn('success', 0, $result);
}
/**
* 自定义初始化
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function CustomInit($params = [])
{
// 返回数据
$data = [
// 数据源
'data_source' => [
[
'name' => '用户信息',
'type' => 'user-info',
'appoint_data' => [
'user_avatar' => UserDefaultAvatar(),
'user_name_view' => '用户名称',
'user_number_code' => '用户会员码',
'order_count' => 0,
'goods_favor_count' => 0,
'goods_browse_count' => 0,
'message_unread_count' => 0,
'integral_number' => 0,
],
'data' => [
['name'=>'用户头像', 'field'=>'user_avatar', 'type'=>'images'],
['name'=>'用户名称', 'field'=>'user_name_view', 'type'=>'text'],
['name'=>'用户会员码', 'field'=>'user_number_code', 'type'=>'text'],
['name'=>'订单总数', 'field'=>'order_count', 'type'=>'text'],
['name'=>'商品收藏', 'field'=>'goods_favor_count', 'type'=>'text'],
['name'=>'我的足迹', 'field'=>'goods_browse_count', 'type'=>'text'],
['name'=>'未读消息', 'field'=>'message_unread_count', 'type'=>'text'],
['name'=>'我的积分', 'field'=>'integral_number', 'type'=>'text'],
],
],
[
'name' => '商品',
'type' => 'goods',
'data' => [
['name'=>'数据索引', 'field'=>'data_index', 'type'=>'text'],
['name'=>'商品URL', 'field' =>'goods_url', 'type'=>'link'],
['name'=>'商品ID', 'field' =>'id', 'type'=>'text'],
['name'=>'标题', 'field' =>'title', 'type'=>'text'],
['name'=>'标题颜色', 'field' =>'title_color', 'type'=>'text'],
['name'=>'简述', 'field' =>'simple_desc', 'type'=>'text'],
['name'=>'型号', 'field' =>'model', 'type'=>'text'],
['name'=>'品牌', 'field' =>'brand_name', 'type'=>'text'],
['name'=>'品牌商品URL', 'field' =>'brand_goods_url', 'type'=>'link'],
['name'=>'生产地', 'field' =>'produce_region_name', 'type'=>'text'],
['name'=>'库存', 'field' =>'inventory', 'type'=>'text'],
['name'=>'计量单位', 'field' =>'inventory_unit', 'type'=>'text'],
['name'=>'封面图片', 'field' =>'images', 'type'=>'images'],
['name'=>'原价', 'field' =>'original_price', 'type'=>'text'],
['name'=>'最低原价', 'field' =>'min_original_price', 'type'=>'text'],
['name'=>'最高原价', 'field' =>'max_original_price', 'type'=>'text'],
['name'=>'售价', 'field' =>'price', 'type'=>'text'],
['name'=>'最低售价', 'field' =>'min_price', 'type'=>'text'],
['name'=>'最高售价', 'field' =>'max_price', 'type'=>'text'],
['name'=>'起购数', 'field' =>'buy_min_number', 'type'=>'text'],
['name'=>'限购数', 'field' =>'buy_max_number', 'type'=>'text'],
['name'=>'详情内容', 'field' =>'content_web', 'type'=>'text'],
['name'=>'销量', 'field' =>'sales_count', 'type'=>'text'],
['name'=>'访问量', 'field' =>'access_count', 'type'=>'text'],
['name'=>'原价标题', 'field' =>'show_field_original_price_text', 'type'=>'text'],
['name'=>'原价符号', 'field' =>'show_original_price_symbol', 'type'=>'text'],
['name'=>'原价单位', 'field' =>'show_original_price_unit', 'type'=>'text'],
['name'=>'售价标题', 'field' =>'show_field_price_text', 'type'=>'text'],
['name'=>'售价符号', 'field' =>'show_price_symbol', 'type'=>'text'],
['name'=>'售价单位', 'field' =>'show_price_unit', 'type'=>'text'],
['name'=>'添加时间', 'field' =>'add_time', 'type'=>'text'],
['name'=>'更新时间', 'field' =>'upd_time', 'type'=>'text'],
['name'=>'商品相册', 'field' =>'photo', 'type'=>'custom-data-list', 'data'=>[
['name'=>'相册图片', 'field' =>'images', 'type'=>'images'],
]],
],
'custom_config' => [
'appoint_config' => [
'data_url' => MyUrl('api/diyapi/goodslist'),
'is_multiple' => 1,
'show_data' => [
'data_key' => 'id',
'data_name' => 'title',
'data_logo' => 'images',
],
'popup_title' => '商品选择',
'header' => [
[
'field' => 'id',
'name' => '商品ID',
'width' => 120,
],
[
'field' => 'images',
'name' => '图片',
'type' => 'images',
'width' => 100,
],
[
'field' => 'title',
'name' => '标题',
],
[
'field' => 'category_text',
'name' => '分类',
],
],
'search_filter_form_config' => [
[
'type' => 'select',
'config' => [
'placeholder' => '请选择商品分类',
'is_level' => 1,
'is_multiple' => 1,
'children' => 'items',
],
'title' => '商品分类',
'form_name' => 'category_ids',
'const_key' => 'goods_category',
],
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'keywords',
]
],
],
'filter_config' => [
'data_url' => MyUrl('api/diyapi/goodsautodata'),
'filter_form_config' => [
[
'type' => 'select',
'config' => [
'placeholder' => '请选择商品分类',
'is_level' => 1,
'is_multiple' => 1,
'children' => 'items',
],
'title' => '商品分类',
'form_name' => 'goods_category_ids',
'const_key' => 'goods_category',
],
[
'type' => 'select',
'config' => [
'is_multiple' => 1,
],
'title' => '指定品牌',
'form_name' => 'goods_brand_ids',
'const_key' => 'brand_list',
],
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'goods_keywords',
],
[
'type' => 'input',
'config' => [
'default' => 4,
'type' => 'number',
],
'title' => '显示数量',
'form_name' => 'goods_number',
],
[
'type' => 'radio',
'title' => '排序类型',
'form_name' => 'goods_order_by_type',
'data' => MyConst('common_goods_order_by_type_list'),
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
[
'type' => 'radio',
'title' => '排序规则',
'form_name' => 'goods_order_by_rule',
'data' => MyConst('common_data_order_by_rule_list'),
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
],
],
],
],
[
'name' => '文章',
'type' => 'article',
'data' => [
['name'=>'数据索引', 'field'=>'data_index', 'type'=>'text'],
['name'=>'文章URL', 'field' =>'url', 'type'=>'link'],
['name'=>'文章ID','field'=>'id', 'type'=>'text'],
['name'=>'标题','field'=>'title', 'type'=>'text'],
['name'=>'分类名称','field'=>'article_category_name', 'type'=>'text'],
['name'=>'描述','field'=>'describe', 'type'=>'text'],
['name'=>'详情内容','field'=>'content', 'type'=>'text'],
['name'=>'封面图片', 'field'=>'cover', 'type'=>'images'],
['name'=>'访问量','field'=>'access_count', 'type'=>'text'],
['name'=>'添加时间','field'=>'add_time', 'type'=>'text'],
['name'=>'更新时间','field'=>'upd_time', 'type'=>'text'],
],
'custom_config' => [
'appoint_config' => [
'data_url' => MyUrl('api/diyapi/articlelist'),
'is_multiple' => 1,
'show_data' => [
'data_key' => 'id',
'data_name' => 'title',
'data_logo' => 'cover',
],
'popup_title' => '文章选择',
'header' => [
[
'field' => 'id',
'name' => '文章ID',
'width' => 120,
],
[
'field' => 'cover',
'name' => '封面',
'type' => 'images',
'width' => 100,
],
[
'field' => 'title',
'name' => '标题',
],
[
'field' => 'article_category_name',
'name' => '分类',
],
],
'search_filter_form_config' => [
[
'type' => 'select',
'config' => [
'placeholder' => '请选择文章分类',
'is_multiple' => 1,
'children' => 'items',
],
'title' => '文章分类',
'form_name' => 'category_ids',
'const_key' => 'article_category',
],
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'keywords',
]
],
],
'filter_config' => [
'data_url' => MyUrl('api/diyapi/articleautodata'),
'filter_form_config' => [
[
'type' => 'select',
'config' => [
'is_multiple' => 1,
],
'title' => '文章分类',
'form_name' => 'article_category_ids',
'const_key' => 'article_category',
],
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'article_keywords',
],
[
'type' => 'input',
'config' => [
'default' => 4,
'type' => 'number',
],
'title' => '显示数量',
'form_name' => 'article_number',
],
[
'type' => 'radio',
'title' => '排序类型',
'form_name' => 'article_order_by_type',
'const_key' => 'article_order_by_type_list',
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
[
'type' => 'radio',
'title' => '排序规则',
'form_name' => 'article_order_by_rule',
'const_key' => 'data_order_by_rule_list',
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
[
'type' => 'switch',
'title' => '封面图片',
'form_name' => 'article_is_cover',
],
],
],
],
],
[
'name' => '品牌',
'type' => 'brand',
'data' => [
['name'=>'数据索引', 'field'=>'data_index', 'type'=>'text'],
['name'=>'品牌URL', 'field' =>'url', 'type'=>'link'],
['name'=>'品牌ID', 'field'=>'id', 'type'=>'text'],
['name'=>'LOGO', 'field'=>'logo', 'type'=>'images'],
['name'=>'名称', 'field'=>'name', 'type'=>'text'],
['name'=>'描述', 'field'=>'describe', 'type'=>'text'],
['name'=>'所属分类', 'field'=>'brand_category_text', 'type'=>'text'],
['name'=>'添加时间', 'field'=>'add_time', 'type'=>'text'],
['name'=>'更新时间', 'field'=>'upd_time', 'type'=>'text'],
],
'custom_config' => [
'appoint_config' => [
'data_url' => MyUrl('api/diyapi/brandlist'),
'is_multiple' => 1,
'show_data' => [
'data_key' => 'id',
'data_name' => 'name',
'data_logo' => 'logo',
],
'popup_title' => '品牌选择',
'header' => [
[
'field' => 'id',
'name' => '品牌ID',
'width' => 120,
],
[
'field' => 'logo',
'name' => 'LOGO',
'type' => 'images',
'width' => 100,
],
[
'field' => 'name',
'name' => '名称',
],
[
'field' => 'brand_category_text',
'name' => '分类',
],
],
'search_filter_form_config' => [
[
'type' => 'select',
'config' => [
'placeholder' => '请选择品牌分类',
'is_multiple' => 1,
'children' => 'items',
],
'title' => '品牌分类',
'form_name' => 'category_ids',
'const_key' => 'brand_category',
],
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'keywords',
]
],
],
'filter_config' => [
'data_url' => MyUrl('api/diyapi/brandautodata'),
'filter_form_config' => [
[
'type' => 'select',
'config' => [
'is_multiple' => 1,
],
'title' => '品牌分类',
'form_name' => 'brand_category_ids',
'const_key' => 'brand_category',
],
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'brand_keywords',
],
[
'type' => 'input',
'config' => [
'default' => 4,
'type' => 'number',
],
'title' => '显示数量',
'form_name' => 'brand_number',
],
[
'type' => 'radio',
'title' => '排序类型',
'form_name' => 'brand_order_by_type',
'const_key' => 'brand_order_by_type_list',
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
[
'type' => 'radio',
'title' => '排序规则',
'form_name' => 'brand_order_by_rule',
'const_key' => 'data_order_by_rule_list',
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
],
],
],
],
],
];
// diy自定义初始化钩子
$hook_name = 'plugins_service_diyapi_custom_init';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'data' => &$data,
'params' => $params,
]);
return DataReturn('success', 0, $data);
}
/**
* 商品魔方初始化
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-19
* @desc description
* @param [array] $params [输入参数]
*/
public static function GoodsMagicInit($params = [])
{
// 返回数据
$data = [
// 数据源
'data_source' => [
[
'name' => '用户商品收藏',
'type' => 'user-goods-favor',
'custom_config' => [
'data_type' => [1],
'is_type_show' => 0,
'filter_config' => [
'data_url' => MyUrl('api/diyapi/goodsfavorautodata'),
'filter_form_config' => [
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'goods_keywords',
],
[
'type' => 'input',
'config' => [
'default' => 4,
'type' => 'number',
],
'title' => '显示数量',
'form_name' => 'goods_number',
],
[
'type' => 'radio',
'title' => '排序类型',
'form_name' => 'goods_order_by_type',
'data' => MyConst('common_goods_favor_order_by_type_list'),
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
[
'type' => 'radio',
'title' => '排序规则',
'form_name' => 'goods_order_by_rule',
'data' => MyConst('common_data_order_by_rule_list'),
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
],
],
],
],
[
'name' => '用户商品浏览',
'type' => 'user-goods-browse',
'custom_config' => [
'data_type' => [1],
'is_type_show' => 0,
'filter_config' => [
'data_url' => MyUrl('api/diyapi/goodsbrowseautodata'),
'filter_form_config' => [
[
'type' => 'input',
'config' => [
'placeholder' => '请输入关键字',
'type' => 'text',
],
'title' => '关键字',
'form_name' => 'goods_keywords',
],
[
'type' => 'input',
'config' => [
'default' => 4,
'type' => 'number',
],
'title' => '显示数量',
'form_name' => 'goods_number',
],
[
'type' => 'radio',
'title' => '排序类型',
'form_name' => 'goods_order_by_type',
'data' => MyConst('common_goods_browse_order_by_type_list'),
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
[
'type' => 'radio',
'title' => '排序规则',
'form_name' => 'goods_order_by_rule',
'data' => MyConst('common_data_order_by_rule_list'),
'data_key' => 'index',
'data_name' => 'name',
'config' => [
'default' => 0,
]
],
],
],
],
],
],
];
// diy商品魔方初始化钩子
$hook_name = 'plugins_service_diyapi_goods_magic_init';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'data' => &$data,
'params' => $params,
]);
return DataReturn('success', 0, $data);
}
}
?>