StopCustomtaskController.class.php 1.9 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 17/6/13
 * Time: 18:13
 */

namespace Frontend\Controller\Callback;

use Common\Common\Constant;
use Common\Service\CustomtaskCronService;
use Common\Service\CustomtaskService;
use Common\Service\UserTaskService;
use Think\Log;

class StopCustomtaskController extends AbstractController
{
    /**
     * 定时停止常规任务回调接口
     * @author tangxingguo
     */
    public function Index()
    {
        Log::record('customtask stop cron callback get: ' . var_export($_GET, true), Log::INFO);
        $customtaskId = I('get.customtask_id', 0, 'intval');
        $cronId = I('get.cron_id', '', 'trim');
        if ($customtaskId == 0 || empty($cronId)) {
            exit('FAIL');
        }
        // 任务信息
        $customtaskServ = new CustomtaskService();
        $customtask = $customtaskServ->get($customtaskId);
        if (empty($customtask)) {
            Log::record('customtask stop cron callback info empty', Log::INFO);
            exit('FAIL');
        }

        // 任务状态不为进行中
        if ($customtask['task_status'] != Constant::CUSTOMTASK_STATUS_PROCESS) {
            Log::record('customtask stop cron callback info error: ' . var_export($customtask, true), Log::INFO);
            exit('FAIL');
        }

        // 任务状态改为已终止
        $customtaskServ->update($customtaskId, ['task_status' => Constant::CUSTOMTASK_STATUS_END]);

        // 未完成人员任务状态改为终止
        $userTaskServ = new UserTaskService();
        $userTaskServ->update_by_conds([
            'customtask_id' => $customtaskId,
            'task_status' => Constant::CUSTOMTASK_STATUS_PROCESS,
        ], ['task_status' => Constant::CUSTOMTASK_STATUS_END]);

        // 删除计划任务
        $cronServ = new CustomtaskCronService();
        $cronServ->deleteCron_deprecated($cronId);

        exit('SUCCESS');
    }
}