Files
fdesk/app/controller/IndexController.php
T

152 lines
4.7 KiB
PHP
Raw Normal View History

2025-07-01 19:39:13 +08:00
<?php
namespace app\controller;
2025-08-04 14:03:57 +08:00
use app\common\model\InquiryLog;
use app\common\model\User;
use app\common\model\UserRoles;
use app\common\model\UserSystems;
2025-08-20 19:14:27 +08:00
use app\common\service\MessageNotificationsService;
2025-08-06 18:55:37 +08:00
use app\common\traits\DataPermission;
2025-08-04 14:03:57 +08:00
use app\common\utils\email\MailSend;
2025-07-29 09:00:04 +08:00
use app\common\utils\scaffold\Generate;
2025-07-01 19:39:13 +08:00
use support\Request;
use support\Db;
use support\Cache;
2025-07-29 09:00:04 +08:00
use app\inquiry\service\InquiryLogService;
2025-08-04 14:03:57 +08:00
use Illuminate\Support\Facades\Mail;
2025-09-04 10:26:28 +08:00
use support\Redis;
2025-07-01 19:39:13 +08:00
class IndexController
{
2025-07-11 18:01:23 +08:00
2025-07-29 09:00:04 +08:00
protected $noNeedLogin = ['index', 'view', 'perm', 'createResource', 'test'];
protected $noNeedHeaderData = ['index', 'view', 'perm', 'createResource', 'test'];
2025-07-11 18:01:23 +08:00
2025-07-01 19:39:13 +08:00
public function index(Request $request)
{
2025-07-11 18:01:23 +08:00
return htmlpage();
2025-07-01 19:39:13 +08:00
}
2025-07-29 09:00:04 +08:00
/**
* 调试飞书
*/
2025-07-01 19:39:13 +08:00
public function view(Request $request)
{
2025-07-11 18:01:23 +08:00
return view('index/qrcode', ['name' => 'webman']);
2025-07-01 19:39:13 +08:00
}
2025-07-29 09:00:04 +08:00
/**
* 临时增加用户权限
*/
public function perm(Request $request)
{
try {
$data = $request->get();
if (Db::table('user_roles')->where('user_id', $data['user_id'])->first()) {
Db::table('user_roles')->where('user_id', $data['user_id'])->update([
'role_id' => $data['role_id']
]);
} else {
Db::table('user_roles')->insert([
'user_id' => $data['user_id'],
'role_id' => $data['role_id']
]);
}
if (!Db::table('user_systems')->where('user_id', $data['user_id'])->where('system_id', $data['system_id'])->first()) {
Db::table('user_systems')->where('user_id', $data['user_id'])->insert([
'user_id' => $data['user_id'],
'system_id' => $data['system_id'],
'created_at' => time()
]);
}
2025-07-14 12:00:36 +08:00
Cache::delete("user_resources_{$data['user_id']}");
return json(['code' => 0, 'msg' => 'success']);
} catch (\Throwable $e) {
return json(['code' => 1, 'msg' => $e->getMessage()]);
}
}
2025-07-15 10:23:05 +08:00
2025-07-29 09:00:04 +08:00
/**
* 生成资源
*/
public function createResource()
{
$options = [
2025-09-04 10:26:28 +08:00
// 'controller' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
2025-07-29 09:00:04 +08:00
'model' => [
2025-09-04 10:26:28 +08:00
'module' => 'approval',
'name' => 'approval_records'
],
2025-09-04 10:26:28 +08:00
// 'service' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
// 'logic' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
// 'validate' => [
// 'module' => 'common',
// 'name' => 'stock_orders'
// ],
'table' => 'approval_records'
2025-07-29 09:00:04 +08:00
];
2025-07-15 10:23:05 +08:00
2025-07-29 09:00:04 +08:00
$result = (new Generate($options))->doGenerate();
return $result;
}
public function test()
2025-07-15 10:23:05 +08:00
{
2025-09-04 10:26:28 +08:00
$data = [
'id' => 1,
'user_id' => 1,
'leave_type_id' => 1,
'start_date' => '2019-01-01',
'end_date' => '2019-01-02',
'reason' => 'test',
'status' => 1
2025-09-01 14:00:44 +08:00
];
2025-09-04 10:26:28 +08:00
$code = $this->submitLeaveApplication(1, $data);
return $code;
}
// 假设这是你的业务逻辑
public function submitLeaveApplication(int $bizId, $leaveData) {
// 1. 保存业务数据
// $bizId = DB::table('leave_applications')->insertGetId($leaveData);
// 2. 启动审批流程
$service = new \app\common\approval\service\ApprovalFlowService();
try {
$result = $service->start(
'leave', // 流程类型,对应 approval_flows.type
'leave_application', // 业务类型标识
$bizId, // 业务ID
$leaveData, // 表单数据快照
$_SESSION['user_id'] ?? 1 // 发起人ID
);
// 3. 将审批实例ID关联回业务表
DB::table('leave_applications')
->where('id', $bizId)
->update(['approval_instance_id' => $result['instance_id']]);
return ['status' => 'success', 'message' => '申请已提交,等待审批'];
} catch (\Exception $e) {
// 处理错误,可能需要回滚业务数据插入
return ['status' => 'error', 'message' => $e->getMessage()];
}
2025-07-15 10:23:05 +08:00
}
2025-07-11 18:01:23 +08:00
}