Browse Source

修改 bug

master
王泽彦 6 months ago
parent
commit
45a1056082
  1. 6686
      admin/yarn.lock
  2. 88
      niucloud/app/api/controller/Dashboard.php
  3. 2
      uniapp/manifest.json

6686
admin/yarn.lock

File diff suppressed because it is too large

88
niucloud/app/api/controller/Dashboard.php

@ -3,6 +3,7 @@
namespace app\api\controller; namespace app\api\controller;
use app\service\api\member\MemberService; use app\service\api\member\MemberService;
use app\service\api\login\LoginService;
use core\base\BaseApiController; use core\base\BaseApiController;
use think\facade\View; use think\facade\View;
use think\facade\Db; use think\facade\Db;
@ -51,17 +52,82 @@ class Dashboard extends BaseApiController
*/ */
private function getUserInfo($token) private function getUserInfo($token)
{ {
// TODO: 实现token验证逻辑,这里暂时使用测试数据 try {
// 根据教务系统角色使用指南,需要支持市场人员和管理者角色 // 使用 LoginService 验证 token
return [ $loginService = new LoginService();
'id' => 7, // 麒麟老师,市场人员 $tokenInfo = $loginService->parsePersonnelToken($token);
'name' => '麒麟老师',
'role' => 'market_staff', // 根据 token 中的用户信息查询完整的用户数据
'campus_id' => 1, $userId = $tokenInfo['user_id'] ?? $tokenInfo['id'] ?? 0;
'dept_id' => 1,
'is_manager' => false, if (empty($userId)) {
'staff_id' => 7 throw new \Exception('Token 中缺少用户ID信息');
}
// 查询员工信息
$personnel = Db::table('school_personnel')
->where('id', $userId)
->where('status', 2) // 状态2表示正常
->where('deleted_at', 0)
->find();
if (empty($personnel)) {
throw new \Exception('用户不存在或状态异常');
}
// 查询用户角色和部门信息
$roleInfo = Db::table('school_campus_person_role cpr')
->leftJoin('school_departments d', 'cpr.dept_id = d.id')
->leftJoin('school_sys_role r', 'cpr.role_id = r.id')
->where('cpr.person_id', $userId)
->where('cpr.deleted_at', 0)
->field('cpr.campus_id, cpr.dept_id, cpr.role_id, d.department_name, r.role_name')
->find();
// 判断是否为管理者(校长或总裁)
$isManager = false;
if ($roleInfo && in_array($roleInfo['dept_id'], [22])) { // 22为总裁部
$isManager = true;
}
return [
'id' => $personnel['id'],
'name' => $personnel['name'] ?: $personnel['real_name'],
'role' => $this->getRoleType($roleInfo['dept_id'] ?? 1),
'campus_id' => $roleInfo['campus_id'] ?? 1,
'dept_id' => $roleInfo['dept_id'] ?? 1,
'role_id' => $roleInfo['role_id'] ?? 0,
'is_manager' => $isManager,
'staff_id' => $personnel['id'],
'phone' => $personnel['phone'],
'dept_name' => $roleInfo['department_name'] ?? '',
'role_name' => $roleInfo['role_name'] ?? ''
];
} catch (\Exception $e) {
// Token 验证失败,抛出异常让上层处理
throw new \Exception('Token 验证失败: ' . $e->getMessage());
}
}
/**
* 根据部门ID获取角色类型
*/
private function getRoleType($deptId)
{
$roleMap = [
1 => 'market_staff', // 市场部门
2 => 'education_staff', // 教务部门
3 => 'sales_staff', // 销售部门
21 => 'finance_staff', // 财务部门
22 => 'manager', // 总裁部(校长、总裁)
24 => 'coach_staff', // 教练部
25 => 'operation_staff', // 运营中心
26 => 'hr_staff', // 人力资源
27 => 'finance_staff' // 财务部
]; ];
return $roleMap[$deptId] ?? 'staff';
} }
/** /**
@ -763,7 +829,7 @@ class Dashboard extends BaseApiController
$comparison = []; $comparison = [];
foreach ($depts as $dept) { foreach ($depts as $dept) {
$performance = Db::table('school_order_table') $performance = Db::table('school_order_table o')
->join('school_customer_resources r', 'r.id = o.resource_id') ->join('school_customer_resources r', 'r.id = o.resource_id')
->where('o.campus_id', $campusId) ->where('o.campus_id', $campusId)
->where('r.consultant', '!=', '') ->where('r.consultant', '!=', '')

2
uniapp/manifest.json

@ -1,6 +1,6 @@
{ {
"name" : "智慧教务", "name" : "智慧教务",
"appid" : "__UNI__70E6889", "appid" : "__UNI__CB66601",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : "100",

Loading…
Cancel
Save