财务系统开发文档>服务器模块(server module)
ction modulename_MetaData(){ return ['DisplayName'=>'test', 'APIVersion'=>'1.1',’HelpDoc’=>’帮助文档’];}DisplayName 显示的模块名称APIVersion API版本HelpDoc 帮助文档url地址3. 配置选项 此功能定义可以针对模块针对每个产品配置的设置。此函数的名称必须为modulename_ConfigOptions支持的配置字段类型包括: text 文本password密码yesno是/否复选框dropdown下拉菜单radio单选按钮textarea文字区以下是每种字段类型的可用参数示例。供应模块最多支持以此方式定义的24个选项。key可以指定默认参数,如果产品可配置选项没有对应key,模块参数中的可配置选项会读取对应模块的key 参考:function test_ConfigOptions(){ return [ [ 'type'=>'text', 'name'=>'姓名', 'placeholder'=>'请输入姓名', 'description'=>'输入姓名', 'default'=>'hh', 'key'=>'name' ], [ 'type'=>'password', 'name'=>'密码', 'placeholder'=>'请输入密码', 'description'=>'请输入密码', 'default'=>'', 'key'=>'password' ], [ 'type'=>'yesno', 'name'=>'你好吗', 'description'=>'不好', 'default'=>'1', 'key'=>'howareyou' ], [ 'type'=>'radio', 'name'=>'性别', 'description'=>'性别', 'options'=>'男,女', 'default'=>'', 'key'=>'sex' ], [ 'type'=>'dropdown', 'name'=>'下拉选择', 'description'=>'这是下拉', 'options'=>[ 'hh'=>'哈哈', 'cc'=>'cc' ], 'default'=>'cc', 'key'=>'cc' ], [ 'type'=>'textarea', 'name'=>'文本域', 'placeholder'=>'请输入密码', 'description'=>'这是文本域', 'default'=>'ccasd...', 'rows'=>5, 'cols'=>10, 'key'=>'text' ], ];} 4.默认内置支持方法方法都是可选的,如果不用请不要定义,所有的方法都带有前缀 modulename_方法返回return ‘ok’;return ‘success’;return [‘status’=>’success’]; 都表示成功返回其他字符串视为错误原因,或者 return [‘status’=>’error’,’msg’=>’原因’]; 表示失败如果不确定返回字符串的值,建议返回数组返回空,视为成功 CreateAccount 开通后台会输出开通按钮,产品开通时会执行此方法 SuspendAccount 暂停后台会输出暂停按钮,执行成功后会暂停产品 UnsuspendAccount 解除暂停后台会输出解除暂停按钮,执行成功后会解除暂停产品 TerminateAccount 删除后台会输出删除按钮,执行成功后会删除产品 Renew 续费每当对应模块产品续费成功时会调用该方法 ChangePackage 升降级每当对应模块产品升降级后会调用该方法CreateTicket当前台用户发工单,并指定产品时,会调用该方法 ReplyTicket当用户回复工单并工单有产品, 前台/后台回复完成后都会调用该方法 On 开机前后台都会输出开机按钮 Off 关机前后台都会输出关机按钮 Reboot 重启前后台都会输出重启按钮 HardOff 硬关机前后台都会输出硬关机按钮 HardReboot 硬重启前后台都会输出硬关机按钮 Reinstall 重装系统前后台都会输出重装系统按钮, 操作系统使用产品可配置选项中定义为操作系统类型的选项 CrackPassword 破解密码前后台都会输出破解密码按钮 RescueSystem 救援系统前后台都会输出救援系统按钮 Vnc vnc前台会输出在控制台选项上,后台输出vnc按钮可以返回一个url,成功会打开该url Sync 同步后台输出同步按钮 5. ClientArea 前台自定义输出该方法支持用来定义前台自定义选项卡页面,非常重要function modulename_ClientArea($params){ return [ 'test'=>[ 'name'=>'测试', //选项卡名称 ] ];} ClientAreaOutput 自定义输出内容function modulename_ClientAreaOutput($params, $key){ if($key == 'test'){ // 获取相关内容 return [ 'template'=>'templates/test.html', //模板路径 'vars'=>[ //模板参数 'a'=>'你好' ] ]; }}该方法用于输出自定义页面内容,可以使用数组使用模板来返回html内容,使用thinkphp默认模板引擎,也可以直接返回字符串,使用模板会有$MODULE_CUSTOM_API变量,就是自定义方法的请求地址,默认使用POST,func传入自定义方法名称就可以访问自定义方法,如果是前台必须带上jwt验证头才可 AllowFunction 用于定义可以访问的方法function modulename_AllowFunction(){ return [ 'client'=>['CreateSnap], // 前台可以调用的方法‘admin’=>[] // 后台可以调用的方法 ];}定义之后在定义对应方法即可function module_CreateSnap($params){ }6. Status 获取机器状态成功返回如下$result[‘status’] = ‘success’;$result[‘data’][‘status’] = ‘on’; // 状态标识支持 on,off,suspend,waiting,process,unknown$result[‘data’][‘des’] = ‘开机’; // 状态描述 7. UsageUpdate 用量更新参数与其他方法不同,参数是该模块所有可用的hostID,方法会定时调用 8. ClientButton 前台自定义按钮输出自定义方法的时候,保证不要和系统方法冲突例如function modulename_ClientButton($params){ $button = [ 'test'=>[ 'place'=>'control', // 支持control和console 分别输出在控制和控制台 'name'=>'测试' // 按钮名称 ] ]; return $button;}点击会调用 modulename_test方法9. 图表需要先定义图表配置function modulename_Chart(){ return [ 'disk'=>[ // 图表type 'title'=>'磁盘IO', // 标题 'select'=>[ //右侧选项(可选) [ 'name'=>'系统盘', //选项显示 'value'=>'vda' //选项值,用于判断 ], [ 'name'=>'数据盘', 'value'=>'vdb' ], ] ], ];} 图表数据方法function modulename_ChartData($params){If($params[‘chart’][‘type’] == ‘disk’){ If($params[‘chart’][‘select’] == ‘vda’){//获取数据逻辑}else if($params[‘chart’][‘select’] == ‘vdb’){ }}// chart // 成功需要返回数据$result[‘status’] = ‘success’; // 失败返回error$result[‘data’][‘unit’] = ‘kb/s’; //单位$result[‘data’][‘chart_type] = ‘line’; //支持 line线形,area区域填充$result[‘data’][‘label’] = [‘读取速度’,’写入速度’]; //对应每条线的label$result[‘data’][‘list’] = [[{‘time’:’2020-07-07 12:00:00’, //横坐标‘value’:’0.5’ //纵坐标值}], //第一条线的数据[ ], //第二条线的数据];} 10.可用参数hostid shd_host表idproductid 产品ID shd_products表IDuid 用户idserverid 接口设置中的服务器IDregdate 开通时间domain 主机名payment 支付方式billingcycle 付款周期nextduedate 到期时间nextinvoicedate 下次生成账单时间termination_date 删除时间domainstatus 产品状态username 主机用户名password 主机密码notes 备注promoid 优惠码IDsuspendreason 暂停原因overideautosuspend 是否自动修改暂停时间overidesuspenduntil 不要暂停直到dedicatedip IP地址assignedips 分配的IPtype 产品类型name 产品名称config_optionX X=1-24对应模块配置值server_ip 接口服务器IPserver_host 接口服务器域名server_username 接口服务器用户名server_password 接口服务器密码accesshash 接口服务器hashsecure 接口服务器sslport 接口服务器端口module_type 模块名user_info 用户相关信息customfields 自定义字段configoptions 可配置选项reinstall_os 重装的操作系统IDold_configoptions 原来的可配置选项(升降级方法会有该参数) 自定义和可配置选项如果产品和模块关联,模块中定义了modulename_ConfigOptions方法, 当可配置选项没有对应key时,会读取对应产品所选模块配置值