使用框架:TP6
根据时间段下发任务到用户,就是后台管理设定本月份要上报资料,然后用户在这个月的时间段里面就要上报指定资料。
我完全没有思路,不知道有没有什么大神提供一下思路给我!!!
我试过了订阅推送,但实际操作不太懂,也没有什么概念!
使用框架:TP6
根据时间段下发任务到用户,就是后台管理设定本月份要上报资料,然后用户在这个月的时间段里面就要上报指定资料。
我完全没有思路,不知道有没有什么大神提供一下思路给我!!!
我试过了订阅推送,但实际操作不太懂,也没有什么概念!
2 回答2.4k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
1 回答828 阅读✓ 已解决
904 阅读
1 回答666 阅读
1 回答656 阅读
数据库设计
sql
CREATE TABLE
task
(id
int(11) NOT NULL AUTO_INCREMENT,title
varchar(255) NOT NULL COMMENT '任务标题',description
text COMMENT '任务描述',start_time
datetime NOT NULL COMMENT '任务开始时间',end_time
datetime NOT NULL COMMENT '任务结束时间',status
tinyint(1) DEFAULT '1' COMMENT '状态:1-启用,0-禁用',created_at
datetime DEFAULT NULL COMMENT '创建时间',updated_at
datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (
id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务表';
sql
CREATE TABLE
user_task
(id
int(11) NOT NULL AUTO_INCREMENT,user_id
int(11) NOT NULL COMMENT '用户ID',task_id
int(11) NOT NULL COMMENT '任务ID',status
tinyint(1) DEFAULT '0' COMMENT '状态:0-未完成,1-已完成',report_content
text COMMENT '上报内容',report_time
datetime DEFAULT NULL COMMENT '上报时间',created_at
datetime DEFAULT NULL COMMENT '创建时间',updated_at
datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (
id
),KEY
user_id
(user_id
),KEY
task_id
(task_id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户任务关联表';
<?php
namespace app\admin\controller;
use think\facade\View;
use think\Request;
use app\common\model\Task as TaskModel;
class TaskController
{
}
<?php
namespace app\admin\validate;
use think\Validate;
class Task extends Validate
{
}
<?php
namespace app\controller;
use think\facade\View;
use think\Request;
use app\common\model\Task as TaskModel;
use app\common\model\UserTask as UserTaskModel;
class UserTaskController
{
}
Task.php (任务模型)
<?php
namespace app\common\model;
use think\Model;
class Task extends Model
{
}
UserTask.php (用户任务模型)
<?php
namespace app\common\model;
use think\Model;
class UserTask extends Model
{
}
前端页面示例
任务列表页面 (admin/task/index.html)
<!-- 省略HTML结构 -->
{$tasks|raw}
<script>
function deleteTask(id) {
}
</script>
用户任务上报页面 (user/task/index.html)
<!-- 省略HTML结构 -->
<div class="task-list">
{volist name="tasks" id="task"}
<div class="task-item">
</div>
{/volist}
</div>
<script>
$(function() {
});
</script>
定时任务检查
可以添加一个定时任务,每天检查是否有新任务需要下发:
// 在 app/command/TaskCheck.php 中创建命令
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use app\common\model\Task;
use app\common\model\User;
class TaskCheck extends Command
{
}
然后在 crontab 中添加:
0 0 * php think task:check