1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace app\common\service;
- use app\common\constant\CommonConstant;
- use app\common\model\ApproveFlow;
- use app\common\model\User;
- /**
- * 审批流程服务类
- */
- class ApproveFlowService
- {
- /**
- * 获取流程
- *
- * @param integer $module 模块类型
- * @param integer $flow_item 审批流项
- * @param mixed $user 用户信息
- **/
- public static function get_data($module, $flow_item, $user)
- {
- $approve_user = [];
- $copy_user = [];
- $field = 'id,user_data';
- // 审批
- $approve = ApproveFlow::get_where($module, CommonConstant::TYPE_1, $flow_item)->field($field)->find();
- if ($approve) {
- $approve_user_data = json_decode($approve['user_data'], JSON_UNESCAPED_UNICODE);
- foreach ($approve_user_data as &$value) {
- if ($value['user_type'] == 1) {
- $value['userid'] = $user->manager_userid;
- }
- }
- $approve_user_object = array_column($approve_user_data, null, 'userid');
- $user_ids = array_keys($approve_user_object);
- $user_list = self::get_user_list($user_ids);
- if ($user_list) {
- $user_data = array_column($user_list->toArray(), null, 'userid');
- foreach ($approve_user_data as $val) {
- if (array_key_exists($val['userid'], $user_data)) {
- $approve_user[] = $user_data[$val['userid']];
- }
- }
- }
- }
- // 抄送
- $name = 'is_copy_' . $module;
- $is_copy = sysconf($name); // 是否允许用户自己添加抄送人 0=否,1=是
- $copy = ApproveFlow::get_where($module, CommonConstant::TYPE_2, $flow_item)->field($field)->find();
- if ($copy) {
- $copy_user_data = json_decode($copy['user_data'], JSON_UNESCAPED_UNICODE);
- $copy_user_data = array_column($copy_user_data, null, 'userid');
- $user_ids = array_keys($copy_user_data);
- $user_list = self::get_user_list($user_ids);
- $copy_user = $user_list;
- }
- return compact('approve_user', 'copy_user', 'is_copy');
- }
- protected static function get_user_list($user_ids)
- {
- if (!$user_ids) {
- return [];
- }
- return User::field('userid,avatar,name')->where('userid', 'in', $user_ids)->select();
- }
- }
|