Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
projecttwo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangtao
projecttwo
Commits
6698a57c
Commit
6698a57c
authored
Jun 20, 2025
by
wangzhengwen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目编辑,项目超时定时任务
parent
cfb0f1f2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
118 additions
and
0 deletions
+118
-0
Project.php
app/api/controller/manage/Project.php
+11
-0
Project.php
app/api/controller/task/Project.php
+14
-0
ProjectService.php
app/api/service/ProjectService.php
+93
-0
No files found.
app/api/controller/manage/Project.php
View file @
6698a57c
...
...
@@ -316,6 +316,17 @@ class Project extends BaseController
unset
(
$data
[
'project_id'
]);
$data
[
'put_end_time'
]
=
strtotime
(
$data
[
'put_end_time'
]);
$project
=
ProjectModel
::
where
([
'id'
=>
$id
,
'user_id'
=>
$request
->
userId
])
->
find
();
if
(
!
$project
)
{
return
$this
->
returnMsg
(
'项目不存在'
);
}
if
(
$project
->
sh_status
==
2
)
{
return
$this
->
returnMsg
(
'项目已审核不能编辑'
);
}
$res
=
ProjectModel
::
where
([
'id'
=>
$id
,
'user_id'
=>
$request
->
userId
])
->
update
(
$data
);
return
$this
->
returnMsg
(
'success'
,
1
,
$res
);
...
...
app/api/controller/task/Project.php
0 → 100644
View file @
6698a57c
<?php
namespace
app\api\controller\task
;
use
app\api\service\ProjectService
;
class
Project
{
public
function
run
()
{
$res
=
ProjectService
::
handleProjectAfterTimeout
();;
return
json
([
'code'
=>
1
,
'msg'
=>
$res
]);
}
}
\ No newline at end of file
app/api/service/ProjectService.php
View file @
6698a57c
...
...
@@ -103,4 +103,97 @@ class ProjectService
}
}
//订单招募超时
public
static
function
handleProjectAfterTimeout
()
{
// 初始化返回数据和日志
$result
=
[
'status'
=>
true
,
'code'
=>
200
,
'message'
=>
'操作成功'
,
'data'
=>
[
'processed_count'
=>
0
,
'success_count'
=>
0
]
];
try
{
// 获取当前时间戳
$currentTime
=
time
();
// 记录开始日志
trace
(
'开始执行项目招募超时处理,当前时间:'
.
date
(
'Y-m-d H:i:s'
,
$currentTime
),
'project'
);
// 查询符合条件的项目
$projects
=
Project
::
where
(
'status'
,
1
)
->
where
(
'put_end_time'
,
'<'
,
$currentTime
)
->
select
();
$totalCount
=
$projects
->
count
();
$result
[
'data'
][
'processed_count'
]
=
$totalCount
;
// 记录查询到的项目数量
trace
(
"共找到
{
$totalCount
}
个需要处理的超时项目"
,
'project'
);
// 如果没有符合条件的项目,直接返回
if
(
$totalCount
===
0
)
{
$result
[
'message'
]
=
'没有需要处理的超时项目'
;
trace
(
'没有需要处理的超时项目,任务结束'
,
'project'
);
return
$result
;
}
$successCount
=
0
;
// 遍历并更新项目状态
foreach
(
$projects
as
$project
)
{
try
{
$project
->
status
=
6
;
// 项目招募已结束
$project
->
updatetime
=
$currentTime
;
if
(
$project
->
save
())
{
$successCount
++
;
// 记录单个项目处理成功日志
trace
(
"项目ID:
{
$project
->
id
}
处理成功,状态已更新为招募结束"
,
'project'
);
// 这里可以添加其他逻辑,比如发送通知等
// $this->sendNotification($project);
}
else
{
// 记录单个项目处理失败日志
trace
(
"项目ID:
{
$project
->
id
}
处理失败,保存时出错"
,
'error'
);
}
}
catch
(
\Exception
$e
)
{
// 记录单个项目处理异常日志
trace
(
"项目ID:
{
$project
->
id
}
处理异常:"
.
$e
->
getMessage
(),
'error'
);
}
}
$result
[
'data'
][
'success_count'
]
=
$successCount
;
// 如果有部分失败的情况
if
(
$successCount
<
$totalCount
)
{
$failCount
=
$totalCount
-
$successCount
;
$result
[
'message'
]
=
"处理完成,成功
{
$successCount
}
个,失败
{
$failCount
}
个"
;
trace
(
"处理完成,成功
{
$successCount
}
个,失败
{
$failCount
}
个"
,
'project'
);
}
else
{
$result
[
'message'
]
=
"所有
{
$successCount
}
个项目处理成功"
;
trace
(
"所有
{
$successCount
}
个项目处理成功"
,
'project'
);
}
}
catch
(
\Exception
$e
)
{
// 记录全局异常
trace
(
"项目招募超时处理出现全局异常:"
.
$e
->
getMessage
(),
'error'
);
$result
=
[
'status'
=>
false
,
'code'
=>
500
,
'message'
=>
'处理过程中出现异常:'
.
$e
->
getMessage
(),
'data'
=>
$result
[
'data'
]
];
}
trace
(
'项目招募超时处理任务结束'
,
'project'
);
return
$result
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment