diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php index 76569fecb..3bc2ff3cd 100755 --- a/app/Http/Controllers/Api/SystemController.php +++ b/app/Http/Controllers/Api/SystemController.php @@ -75,6 +75,8 @@ class SystemController extends AbstractController 'image_save_local', 'start_home', 'file_upload_limit', + 'unclaimed_task_reminder', + 'unclaimed_task_reminder_time', ])) { unset($all[$key]); } @@ -116,6 +118,8 @@ class SystemController extends AbstractController $setting['image_save_local'] = $setting['image_save_local'] ?: 'open'; $setting['start_home'] = $setting['start_home'] ?: 'close'; $setting['file_upload_limit'] = $setting['file_upload_limit'] ?: ''; + $setting['unclaimed_task_reminder'] = $setting['unclaimed_task_reminder'] ?: 'close'; + $setting['unclaimed_task_reminder_time'] = $setting['unclaimed_task_reminder_time'] ?: ''; // return Base::retSuccess('success', $setting ?: json_decode('{}')); } diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 3c09664b4..175e92eda 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -2,25 +2,26 @@ namespace App\Http\Controllers; -use App\Models\File; -use App\Module\Base; -use App\Module\Extranet; -use App\Module\RandomColor; -use App\Tasks\AppPushTask; -use App\Tasks\AutoArchivedTask; -use App\Tasks\CheckinRemindTask; -use App\Tasks\DeleteBotMsgTask; -use App\Tasks\DeleteTmpTask; -use App\Tasks\EmailNoticeTask; -use App\Tasks\JokeSoupTask; -use App\Tasks\LoopTask; use Arr; use Cache; -use Hhxsv5\LaravelS\Swoole\Task\Task; -use LasseRafn\InitialAvatarGenerator\InitialAvatar; -use Redirect; use Request; +use Redirect; use Response; +use App\Models\File; +use App\Module\Base; +use App\Tasks\LoopTask; +use App\Module\Extranet; +use App\Tasks\AppPushTask; +use App\Module\RandomColor; +use App\Tasks\JokeSoupTask; +use App\Tasks\DeleteTmpTask; +use App\Tasks\EmailNoticeTask; +use App\Tasks\AutoArchivedTask; +use App\Tasks\DeleteBotMsgTask; +use App\Tasks\CheckinRemindTask; +use Hhxsv5\LaravelS\Swoole\Task\Task; +use App\Tasks\UnclaimedTaskRemindTask; +use LasseRafn\InitialAvatarGenerator\InitialAvatar; /** @@ -203,6 +204,8 @@ class IndexController extends InvokeController Task::deliver(new CheckinRemindTask()); // 获取笑话/心灵鸡汤 Task::deliver(new JokeSoupTask()); + // 未领取任务通知 + Task::deliver(new UnclaimedTaskRemindTask()); return "success"; } diff --git a/app/Tasks/UnclaimedTaskRemindTask.php b/app/Tasks/UnclaimedTaskRemindTask.php new file mode 100644 index 000000000..a91ce6032 --- /dev/null +++ b/app/Tasks/UnclaimedTaskRemindTask.php @@ -0,0 +1,82 @@ += $reminderTimes[1] - 1 && $times[1] <= $reminderTimes[1] + 1){ + // + Cache::put("UnclaimedTaskRemindTask:His", date('H:i:s'), Carbon::now()->addMinutes(5)); + // + Project::whereNull('deleted_at')->whereNull('archived_at')->chunk(100,function($projects) { + foreach ($projects as $project) { + // + $count = ProjectTask::query() + ->leftJoin('project_task_users', function ($query) { + $query->on('project_tasks.id', '=', 'project_task_users.task_id'); + }) + ->where('project_tasks.project_id',$project->id) + ->whereNull('project_tasks.deleted_at') + ->whereNull('project_tasks.archived_at') + ->whereNull('project_task_users.id') + ->count(); + if($count > 0){ + $botUser = User::botGetOrCreate('task-alert'); + if (empty($botUser)) { + return; + } + if (!ProjectUser::whereUserid($botUser->userid)->whereProjectId($project->id)->exists()) { + $project->joinProject($botUser->userid); + $project->syncDialogUser(); + } + WebSocketDialogMsg::sendMsg(null, $project->dialog_id , 'text', [ + 'text' => "当前存在{$count}个未领取任务" + ], $botUser->userid); + } + } + }); + } + } + + public function end() + { + + } + +} diff --git a/language/original-web.txt b/language/original-web.txt index 16397127e..98749ea71 100644 --- a/language/original-web.txt +++ b/language/original-web.txt @@ -1392,4 +1392,6 @@ APP推送 打包列表 使用独立的发送按钮 开启后,键盘上的发送按钮会被替换成换行 -仅我的 \ No newline at end of file +仅我的 +未领任务提醒 +开启后每天按设定的提醒时间在项目群聊中发送未领取任务通知。 \ No newline at end of file diff --git a/resources/assets/js/pages/manage/setting/components/SystemSetting.vue b/resources/assets/js/pages/manage/setting/components/SystemSetting.vue index 4dd8bb5c6..857c7f778 100644 --- a/resources/assets/js/pages/manage/setting/components/SystemSetting.vue +++ b/resources/assets/js/pages/manage/setting/components/SystemSetting.vue @@ -100,6 +100,18 @@ transfer/>
{{$L('添加任务计划时间默认时分。')}}
+ + + {{$L('开启')}} + {{$L('关闭')}} + +
{{$L('开启后每天按设定的提醒时间在项目群聊中发送未领取任务通知。')}}
+ +
@@ -223,6 +235,10 @@ export default { this.formDatum = { ...this.formDatum, auto_archived: value }; }, + formTaskReminder(value) { + this.formDatum = { ...this.formDatum, unclaimed_task_reminder: value }; + }, + systemSetting(save) { this.loadIng++; this.$store.dispatch("call", { diff --git a/resources/assets/sass/pages/common.scss b/resources/assets/sass/pages/common.scss index d2ad3194d..02011b5e2 100755 --- a/resources/assets/sass/pages/common.scss +++ b/resources/assets/sass/pages/common.scss @@ -17,6 +17,7 @@ body { color: $primary-desc-color; line-height: 22px; padding: 5px 0; + word-break:break-all; &.red { color: #ED4014; } diff --git a/resources/assets/sass/pages/page-setting.scss b/resources/assets/sass/pages/page-setting.scss index 1472979cb..d81f9633f 100755 --- a/resources/assets/sass/pages/page-setting.scss +++ b/resources/assets/sass/pages/page-setting.scss @@ -429,6 +429,11 @@ body.window-portrait { line-height: 38px; } } + &.submit { + .ivu-tabs{ + padding: 0 16px 16px 12px; + } + } } } }