Files
fdesk/app/common/logic/UserDashboardRuleLogic.php
T
2025-12-04 17:54:40 +08:00

46 lines
1.4 KiB
PHP

<?php
namespace app\common\logic;
use app\common\model\User;
use app\common\model\UserGroup;
use app\common\model\UserGroupMembers;
use app\common\traits\crud\CrudLogicTrait;
use app\common\model\UserDashboardRule;
class UserDashboardRuleLogic
{
use CrudLogicTrait;
/**
* 指定当前要操作的模型
*/
protected string $modelClass = UserDashboardRule::class;
public function getUserDashboard($userId)
{
$user = User::with('reportToInfo')->find($userId);;
//获取用户所在分组
$ugm = UserGroupMembers::where('user_id', $userId)->where('status', 1)->get();
$roleRule = UserDashboardRule::orWhere(function ($query) use ($user) {
$query->whereIn('related', $user->roles->pluck('id'))
->where('rule_type', 'role');
})
->orWhere(function ($query) use ($userId) {
$query->where('related', $userId)
->where('rule_type', 'user');
})
->orWhere(function ($query) use ($ugm) {
$query->where('related', $ugm->group_id)
->where('rule_type', 'group');
})
->orderBy('weight','desc')
->orderBy('rule_type','desc')
->first();
$resources_id = $roleRule?$roleRule->resources_id:null;
return $resources_id;
}
}