<?php /** * Created by PhpStorm. * User: zhonglei * Date: 2017/9/1 * Time: 16:33 */ namespace Rpc\Controller\AppNotice; use Common\Common\Constant; use Think\Log; use Com\PackageValidate; use Common\Common\TaskHelper; use Common\Service\CustomtaskService; use Common\Service\CustomtaskContentService; class DeleteDataController extends \Rpc\Controller\AbstractController { /** * DeleteData * @author zhonglei * @desc 删除应用数据 * @param String app:true 应用 * @param array app_data_ids:true 应用数据ID数组 * @return bool */ public function Index() { Log::record('params: ' . var_export($this->_params, true), Log::INFO); $post_data = $this->_params; // 验证规则 $rules = [ 'app' => 'require', 'app_data_ids' => 'require|array', ]; // 验证请求数据 $validate = new PackageValidate(); $validate->postData = $post_data; $validate->validateParams($rules); $conds = [ 'app' => $post_data['app'], 'app_data_id' => $post_data['app_data_ids'], 'content_status' => Constant::CUSTOMTASK_CONTENT_NORMAL, ]; $contentServ = new CustomtaskContentService(); $content_list = $contentServ->list_by_conds($conds); if (empty($content_list)) { Log::record('not found customtask content', Log::INFO); return false; } // 更新内容状态 $customtask_content_ids = array_column($content_list, 'customtask_content_id'); $contentServ->update_by_conds(['customtask_content_id' => $customtask_content_ids], [ 'content_status' => Constant::CUSTOMTASK_CONTENT_DELETE, ]); // 获取未开始、进行中的任务列表 $customtask_ids = array_unique(array_column($content_list, 'customtask_id')); $customtaskServ = new CustomtaskService(); $customtask_list = $customtaskServ->list_by_conds([ 'customtask_id' => array_values($customtask_ids), 'task_status' => [ // 未开始 Constant::CUSTOMTASK_STATUS_UNSTART, // 进行中 Constant::CUSTOMTASK_STATUS_PROCESS, ], ]); if (empty($customtask_list)) { Log::record('not found customtask', Log::INFO); return false; } $taskHelper = &TaskHelper::instance(); // 自动终止任务 foreach ($customtask_list as $customtask) { Log::record('stop customtask: ' . var_export($customtask, true), Log::INFO); $result = $taskHelper->stopCustomtask($customtask); Log::record("stop customtask result: {$result}", Log::INFO); } return true; } }