勾股OA在线文档

勾股OA5.0常用【PHP助手】函数集(待发布)

一、系统相关

1、设置缓存

set_cache($key='', $value='', $date = 86400);

2、读取缓存

get_cache($key='');

3、清空缓存

clear_cache($key='');

4、读取文件配置

get_config($key);

5、读取系统配置

get_system_config($name='', $key = '');

6、设置系统配置

set_system_config($name, $key, $value='');

7、获取url参数,$key为空时返回所有参数数组

get_params($key = "");

8、判断系统是否已安装

is_installed();

9、判断系统是否存在模板

isTemplate($url='');

10、判断模块是否禁用

isModule($name);

11、是否有某模块的数据权限,>1即有权限,$name模块名称

isAuth($uid,$name);

12、菜单节点权限判断

check_auth($rule, $uid);

13、返回json数据,用于接口

to_assign($code = 0, $msg = "操作成功", $data = [], $action = '', $url = '', $httpCode = 200, $header = [], $options = []);

14、适配layui的table数据列表的返回数据方法,用于接口

table_assign($code = 0, $msg = '请求成功', $data = [], $httpCode = 200, $header = [], $options = []);

15、写入操作日

add_log($type, $param_id = '', $param = [] ,$subject='');

16、发送站内信

send_message($user_id, $template, $data=[]);

17、消息链接信息转换

get_message_link($template,$action_id);

18、发送邮件

send_email($to, $subject = '', $content = '');

二、员工相关

1、获取指定用户的信息

get_admin($uid);

2、获取指定部门所有的员工信息($son=1,包含子部门)

get_department_admin($did=0,$son=0);

3、获取岗位职称列表

get_position();

4、页面模板快速获取当前登录人信息。如:

{$login_admin.id}

三、部门相关

1、获取部门列表

get_department();

2、读取部门名称

//$dids可是数字,字符串,数组。如:1、2,3、[1,2,3]
get_department_name($dids);

3、获取某部门的子部门ids,($is_self=1,包含自己)

get_department_son($did = 0, $is_self = 1);

4、获取某员工所在主部门的负责人(pid=1,上一级部门负责人)

get_department_leader($uid=0,$pid=0);

5、获取某负责人所负责的部门的数据集(ids)【包括部门负责人所在的部门+其子部门】

//传入部门负责人id,由于部门支持设置多个负责人,所以输出的是部门ids数组,如:['1,2,3,1,5']
get_department_role($uid = 0);

6、格式化附件展示($view,不为空即是仅查看)

file_card($file_array,$view='')

四、常规数据获取

1、读取基础数据,$table=数据表名(不要加表前缀)

get_base_data($table);

2、读取模块基础数据,$table=数据表名(不要加表前缀),$type=类型(,,2,3…)

get_base_type_data($table,$type);

3、读取所属地区名称

get_region_name($id);

4、根据附件表的id返回附件的url地址

get_file($id);

5、读取分类子分类ids,返回id数组

get_cate_son($table='',$id=0,$is_self = 1);

五、工具函数

1、生成一个不会重复的字符串

make_token()

2、随机字符串,默认长度10

set_salt($num = 10);

3、密码加密

set_password($pwd, $salt);

4、去除空格

trim_space($str='');

5、隐藏电话号码(邮箱)中间4位

hidetel($phone);

6、间隔时间段格式化,$time 时间戳,$format 格式 【d:显示到天 i显示到分钟 s显示到秒】

time_trans($time='', $format = 'd');

7、时间戳格式化为正常的日期格式,默认我们用PHP自带的date函数,但是涉及到有些数据可能为0的情况,所以我们写了一个to_date的方法,对0的情况默认输出是空字符。

to_date($time = NULL, $format = 'Y-m-d H:i:s');

在页面模板中可以使用:

{$detail.begin_time|to_date='Y-m-d'}

8、计算按相差天数

count_days($a=0, $b = 0);

9、人民币转大写

cny($amount);

10、金额展示,规则:超过1万时以万为单位,低于1万时以千为单位,低于1千时以元为单位

format_money($money);

11、金额保留两位小数

sprintf("%.2f",$money);

12、 二维数组排序
@param $array 要进行排序的select结果集
@param $field 排序的字段
@param $order 排序方式1降序2升序

sort_array($array = [], $field='', $order = 1);

13、查找数组索引,支持一维数组,二维数组查找

array_search_plus($array, $searchFor);

14、根据数据库查询出来二维数组获取某个字段拼接字符串

split_array_field($array = [], $field = '',$separator=',');

15、数组转换字符串

array_to_string($array=[],$separator=',');

16、字符串转换数组

string_to_array($string='',$separator=',');

17、文件大小格式化

to_size($size);

六、校验相关

1、判断是否是手机浏览器

is_mobile();

2、验证输入的邮件地址是否合法

is_email($user_email);

七、其他

if(!empty($param['end_time'])){
    $param['end_time'] = strtotime($param['end_time']);
}
if (!empty($param['range_time'])) {
    $range_time =explode('~', $param['range_time']);
    $where[] = ['start_time', 'between',[strtotime(urldecode($range_time[0])),strtotime(urldecode($range_time[1]))]];
}