包含“q”的产品文档
魔方云系统使用文档>11. 关于三方对接>WHMCS对接弹性IP
弹性IP分配原则:依据魔方云的IP分配原则,如果弹性IP所在IP分组适用于A节点,则该弹性IP就可以与A节点下的实例关联注意事项魔方云主控版本需要 >= 3.7.18模块包:zjmfclouddisk模块的data目录需要给写入权限,用于缓存操作步骤1、添加弹性IP的服务器接口服务器hash参数说明:<zjmfdir>admin</zjmfdir>  // 二级目录<user_prefix>xxx</user_prefix> // 用户前缀,用于区分不同平台对接<username>uid</username>  // 创建用户名类型,uid=用户ID,其他=邮箱/手机号注意:hash参数需要和关联的魔方云模块一致,否则可能会出现用户不一致的情况,username建议使用uid 2、添加弹性IP产品,模块名称选择魔方云弹性IP 3、设置产品参数,此处可以直接设置,也可以设置可选配置项可选配置选项:node_group|节点分组ID、area|区域ID、node|节点ID、ip_group|IP分组ID、in_bw|进带宽、bw|带宽 4、保存后,可以到前台会员中心购买相关产品 5、产品订购后,可以进入产品内页,关联云主机 6、也可以进入云主机内页,直接将弹性IP分配给该云主机  
业务系统开发文档>插件开发
quot;\\addon\\idcsmart_ticket\\controller\\clientarea\\TicketController@ticketList&quot;)->append(['_plugin'=>'idcsmart_ticket','_controller'=>'ticket','_action'=>'ticket_list']);# 带上默认参数,可以使用继承控制器app\admin\controller\PluginBaseController的一些通用方法,也可以不追加这些参数(_plugin插件名称C风格,_controller控制器名称C风格,_action方法名称C风格)})->middleware(\app\http\middleware\ParamFilter::class)->middleware(\app\http\middleware\CheckHome::class);#前台需要登录就使用此中间件后台路由:Route::group(DIR_ADMIN . '/v1',function (){ Route::get('ticket',&quot;\\addon\idcsmart_ticket\controller\TicketController@ticketList&quot;)->append(['_plugin'=>'idcsmart_ticket','_controller'=>'ticket','_action'=>'ticket_list']);})->middleware(\app\http\middleware\ParamFilter::class)->middleware(\app\http\middleware\CheckAdmin::class);#后台需要登录就使用此中间件 6、插件多语言①创建语言文件lang/zh-cn.php,返回如下格式的数组:return [    'success_message' => '请求成功',    'ticket_title_require' => '请输入工单标题','ticket_log_client_create_ticket' => '{client}新建工单:{ticket_id}',] ②使用lang_plugins('语言标识',$param=[])实现多语言,$param为语言文件中参数,格式['{client}'=>'wyh'],如:lang_plugins('ticket_log_client_create_ticket',['{client}'=>'wyh','{ticket_id}'=>1]);③前端多语言文件  前台语言文件:在template/clientarea/lang/目录下index.js文件;  后台语言文件:在template/admin/lang目录下(function () {  const module_lang = {    &quot;zh-cn&quot;: {      add: &quot;添加&quot;,    },    &quot;zh-hk&quot;: {      add: &quot;添加&quot;,    },    &quot;en-us&quot;: {      add: &quot;Add&quot;,    },  };  const DEFAULT_LANG = localStorage.getItem(&quot;backLang&quot;) || &quot;zh-cn&quot;;  window.module_lang = module_lang[DEFAULT_LANG];})();    具体参考idcsmart_ticket工单插件 7、插件后台导航①导航默认会创建在插件导航之下,默认链接:plugin/插件名/index.html,对应template/admin/index.php文件,同时需要在lang/下的语言文件创建如下格式的语言,nav_plugin_addon_插件名:'nav_plugin_addon_idcsmart_ticket' => '工单', ②自定义导航,若是一级导航,会增加在插件导航之上,管理导航之下,在插件根目录下创建sidebar.php,示例:/* *  自定义后台导航菜单(仅支持一二级),注意系统会在插件导航下默认创建url为&quot;plugin/插件名称/index.html&quot;的导航,因此需要在template/admin/目录下创建index.php文件作为插件入口 */return [    [ # 一级导航        'name' => 'nav_plugin_addon_ticket', # 导航名称,不要与系统冲突(参考idcsmart_nav表中name字段),同时需要在lang/目录下定义语言        'url'  => '', # 为空表示一级导航,不需要链接        'icon' => 'tools', # 图标,获取图标:https://tdesign.tencent.com/vue/components/icon        'in' => '', # 一级导航,此值为空        'child' => [ # 二级导航            [                'name' => 'nav_plugin_addon_ticket_list', # 导航名称                'url' => 'ticket', # 链接格式,会自动加上.html                'in' => 'nav_user_management', # 可定义导航在某个一级导航之下,默认会放置在此一级导航最后的位置(获取方式:idcsmart_nav表中的parent_id==0的name字段)                'icon' => '', # 图标,获取图标:https://tdesign.tencent.com/vue/components/icon            ],            [                'name' => 'nav_plugin_addon_ticket_internal_list', # 导航名称                'url' => 'ticket_internal', # 链接格式,会自动加上.html                'in' => '', # 可定义导航在某个一级导航之下,默认会放置在此一级导航最后的位置                'icon' => '', # 图标,获取图标:https://tdesign.tencent.com/vue/components/icon            ],        ]    ],]; 8、插件前台导航①导航默认会创建在插件导航之下,默认链接:plugin/插件名/index.html;②自定义导航,会增加在插件导航之上,管理导航之下,在插件根目录下创建sidebar_clientarea.php,示例:/* *  自定义前台导航菜单(仅支持一二级) */return [    [        'name' => 'nav_plugin_addon_ticket', # 链接名称,同时需要在lang/目录下定义语言        'url'  => '', # 链接格式,会自动加上.html        'icon' => '', # 图标        'child' => [ # 二级菜单            [                'name' => 'nav_plugin_addon_ticket_list',                'url' => 'ticket',                'icon' => '', # 图标            ],        ]    ],];  9、插件后台权限管理在插件根目录下创建auth.php,示例如下(注意定义语言):<?php/* *  定义权限,系统会默认插入名称为插件名的一级权限,以下仅需定义二级/三级权限;(首先,要使用二级权限,插件后台控制器需要继承app\event\controller\PluginAdminBaseController基类控制器) */return [    [        'title' => 'auth_plugin_addon_ticket_list', # y用户工单        'url' => 'ticket',        'child' => [ # 操作权限            [                'title' => 'auth_plugin_addon_ticket_view', # 工单查看                'url' => '',                'auth_rule' => 'TicketController::ticketList',  # 工单列表具体控制器方法                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_list'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_receive',                'url' => '',                'auth_rule' => 'TicketController::receive',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_receive'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_resolved',                'url' => '',                'auth_rule' => 'TicketController::resolved',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_resolved'  # 具体权限名称            ],        ]    ],    [        'title' => 'auth_plugin_addon_ticket_detail', # 工单详情        'url' => 'ticket_detail',        'child' => [            [                'title' => 'auth_plugin_addon_ticket_view',                'url' => '',                'auth_rule' => 'TicketController::index',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_index'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_reply',                'url' => '',                'auth_rule' => 'TicketController::reply',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_reply'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_download',                'url' => '',                'auth_rule' => 'TicketController::download',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_download'  # 具体权限名称            ],        ]    ],    [        'title' => 'auth_plugin_addon_ticket_internal_list', # 内部工单        'url' => 'ticket_internal',        'child' => [            [                'title' => 'auth_plugin_addon_ticket_view',                'url' => '',                'auth_rule' => 'TicketInternalController::ticketInternalList',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_list'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_view',                'url' => '',                'auth_rule' => 'TicketInternalController::index',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_index'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_add',                'url' => '',                'auth_rule' => 'TicketInternalController::create',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_create'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_receive',                'url' => '',                'auth_rule' => 'TicketInternalController::receive',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_receive'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_resolved',                'url' => '',                'auth_rule' => 'TicketInternalController::resolved',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_resolved'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_reply',                'url' => '',                'auth_rule' => 'TicketInternalController::reply',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_reply'  # 具体权限名称            ],            [                'title' => 'auth_plugin_addon_ticket_forward',                'url' => '',                'auth_rule' => 'TicketInternalController::forward',                'auth_rule_title' => 'auth_rule_plugin_addon_ticket_internal_forward'  # 具体权限名称            ],        ]    ],]; 10、插件接口内部调用使用plugin_api($addon,$controller,$action,$param=[])函数可内部调用插件API,需要开发者提供插件API开发文档,具体格式参考系统API文档 * @param string addon - 插件 require * @param string controller - 控制器前缀 require * @param string action - 方法 require * @param array param - 传入的参数 四、示例具体可参考智简魔方工单插件public\plugins\addon\idcsmart_ticket\ 
业务系统开发文档>v10开发规范
quot;msg&quot;:&quot;success message&quot;,&quot;data&quot;:{}}6、控制器的函数中不要写参数8、php使用7.49、注意不要使用php 语言结构或函数 来作为方法、变量;10、公共语言 写在后台的语言文件; 键值 小写+下划线;11、语言文件写法:success_message => ‘请求成功’字段统一备注字段统一用 notes varchar(1000)支付字段统一用 gateway产品id统一用 product_id用户id统一用 client_id计费周期字段统一用 billing_cycle 
业务系统使用文档>11、系统迁移>魔方财务迁移v10
一、环境搭建搭建一套新的V10后,按以下步骤操作:在插件列表处点击同步插件,安装下面标记了需手动安装的插件,其他未标记的插件系统安装好后自带基础插件。(开源版用户如需迁移非系统自带对应插件数据需要到应用商店购买插件并安装)V10安装插件:帮助中心 新闻中心 用户工单 续费 实名认证 提现插件 文件上传下载插件 退款 用户等级(需手动安装) 发票(需手动安装) 用户自定义字段(需手动安装) 销售插件(需手动安装) 合同插件(需手动安装) 推介计划(需手动安装)二、迁移步骤1.在魔方会员中心--资源中心--文件下载--v10业务系统板块下载魔方财务迁移工具(全数据迁移).zip 工具包2.解压工具包到本地,把move.php放在魔方财务 public目录下;  访问:财务地址/move.php,选择导出,下一步,开始,等待导出数据库文件成功即可3.将move.php文件和财务的导出包放在V10的 public目录下  访问:V10地址/move.php,选择导入,选择财务的导出包,下一步,开始,等待提示到导入数据完成即可。
业务系统使用文档>2、系统设置>2.5、导航管理>2.5.1 如何添加前台自定义导航
1.点击系统设置导航设设置 -选择前台导航管理-新建页面 2.页面类型选择自定义 输入URL链接网址  设置自定义导航名称 设置完成 点击保存注意:无法进行后台自定义导航添加   
DCIM使用文档>5.装机常见问题>5.5 解决debian+ubuntu16以上开机脚本不生效
qdisc=fq' > /etc/sysctl.d/custom.conf 上面的命令,只会有touch 成功创建文件,echo 不会成功的2、sed 不能向空文件写入内容,这是sed的问题,不是ubuntu的问题解决办法利用可使用的shell 指令,完成文件的创建和内容的写入 比如 cp sed 等等不创建新文件,让ubuntu 18 安装完成后开启bbr sed -i '$a\net.ipv4.tcp_ecn = 1' /etc/sysctl.conf sed -i '$a\net.core.default_qdisc = fq' /etc/sysctl.conf sed -i '$a\net.ipv4.tcp_congestion_control = bbr' /etc/sysctl.conf创建 新文件,让ubuntu 18 安装完成后开启bbr,您可以参考这样的写法 cp -a /etc/hosts /etc/sysctl.d/custom.conf sed -i '2,$d' /etc/sysctl.d/custom.conf sed -i '1s\.*\net.ipv4.tcp_ecn = 1\' /etc/sysctl.d/custom.conf sed -i '$a\net.core.default_qdisc = fq' /etc/sysctl.d/custom.conf sed -i '$a\net.ipv4.tcp_congestion_control = bbr' /etc/sysctl.d/custom.conf
业务系统使用文档>8、商品管理>如何对接魔方云资源包
V10业务管理系统对接魔方云资源包,是使用的魔方云(自定义配置)的模块,但是需要配置hash来作为区分 操作步骤 1、v10管理员后台添加接口l 模块类型:选择魔方云(自定义配置)l 地址填写:魔方云地址/userl 用户名和密码:需要填写魔方云代理商的账号密码l Hash:必须添加account_type=agent,如下图: 2、添加商品,接口类型选择步骤1添加的接口  3、进行商品配置,用户前台购买时,可以选择的配置 4、其他配置中,代理商对接,资源包ID需要填写商品接口中填写的代理商名下的资源包ID(魔方云平台可以查看)  5、当资源包配置多个时,用户在前台订购商品时,可以选择机器开在哪一个资源包下,如果选择的资源包资源不足时,会提示:资源包XXX不足 
业务系统开发文档>对象存储开发文档
quot;file_path&quot;:&quot;/test/&quot;,&quot;file_name&quot;:&quot;test.png&quot;}参数说明:file_path:文件保存路径file_name:文件名返回:data.url:文件访问地址⑦必须实现‘目录名大驼峰+Download’方法,参数param(此参数为数组,示例json方便显示):{&quot;file_path&quot;:&quot;/test/&quot;,&quot;file_name&quot;:&quot;test.png&quot;,&quot;action&quot;:&quot;preview&quot;}参数说明:file_path:文件保存路径file_name:文件名action: 动作,preview预览,download下载返回:data.url:文件下载地址 3、确定是否需要后台配置文件,如果需要,在对象存储根目录下加上config.php,示例:<?phpreturn [    'module_name'          => [// 在后台插件配置表单中的键名 ,会是config[text]        'title' => '名称', // 表单的label标题        'type'  => 'text', // 表单的类型:text,password,textarea,checkbox,radio,select等        'value' => '腾讯云对象存储', // 表单的默认值        'tip'   => '友好的显示名称', //表单的帮助提示    ],    'secret_id'  => [                       // 在后台插件配置表单中的键名 ,会是config[text]        'title' => 'Secret ID',             // 表单的label标题        'type'  => 'text',              // 表单的类型:text,password,textarea,checkbox,radio,select等        'value' => '',                  // 表单的默认值        'tip'   => 'Client ID', //表单的帮助提示    ],    'secert_key'    => [        'title' => 'Secret Key',        'type'  => 'text',        'value' => '',        'tip'   => 'Secret Key',    ],    'bucket'    => [        'title' => 'Bucket',        'type'  => 'text',        'value' => '',        'tip'   => '存储桶名称',    ],    'region'    => [        'title' => 'Region',        'type'  => 'text',        'value' => '',        'tip'   => 'Bucket 所在区域',    ],]; 4、到后台存储对象接口管理界面刷新就会看到新添加的存储对象接口,安装、配置即可使用。 四、示例参考腾讯云对象存储tencentcloud_oss 五、常见问题
业务系统使用文档>12、应用管理>插件功能>提现
一、功能介绍提现应用,针对智简魔方业务系统定制开发,用于实现客户将账户余额提现至微信、支付宝、银行卡等平台账户,方便用户更好地掌控平台资产。 二、功能特性·自定义提现方式,支持微信、支付宝、银行卡、比特币、现金等类型·支持自动提现和人工审核提现方式·支持设置冻结金额·支持设置单次提现最小额度与最大额度·支持设置提现次数限制·支持设置手续费比例以及最低手续费·提现成功后,后台自动添加交易流水三、安装1.完成支付后,在当前页面单击 “立即安装” 。2.在弹窗页面输入后台管理地址,即可一键安装本应用。例如,后台地址为https://idcsmat.com/admin,请在弹窗中输入admin。注:如果安装失败,请点击 “下载安装包” 手动安装,安装包请保存至 /public/plugins/addon 。3.完成文件下载后,请登录管理后台,在左侧导航栏点击 “插件” - “插件列表”,在列表中找到 “提现” 应用,点击右侧操作栏中的 “安装” 即可。四、配置及应用1.首先需要在提现设置添加提现方式,如下图2.然后在余额提现设置处设置余额提现规则3.客户前台发起申请后,可以在申请列表查看提现申请并审核