bingyu-duanxinwangzhan/message-code/message_api/application/index/controller/MessageTask.php

251 lines
10 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: lock
* Date: 2020/11/10
* Time: 6:24 PM
*/
namespace app\index\controller;
use app\index\model\EmailTask;
use app\index\model\Task;
use app\index\model\TaskContentRelation;
class MessageTask extends Common
{
/**
* lists
* @return \think\response\Json
*/
public function lists()
{
if(self::$result[self::$error_code_name] == 0)
{
$task_model = new Task();
$field_arr = array(
array('field_name' => $task_model::USER_ID,'rule' => 'number'),
array('field_name' => $task_model::TITLE,'rule' => ''),
array('field_name' => $task_model::TYPE,'rule' => 'number'),
array('field_name' => $task_model::STATUS,'rule' => 'number'),
array('field_name' => 'page','rule' => 'require|number'),
array('field_name' => 'pageSize','rule' => 'require|number')
);
$check_arr = $this->checkHave($field_arr);
if($check_arr[self::$error_code_name] == 0)
{
$where = self::returnWhere($field_arr,$check_arr[self::$data_name]);
if (array_key_exists($task_model::TITLE,$check_arr[self::$data_name]))
{
$where[$task_model::TITLE] = array('like','%'.$check_arr[self::$data_name][$task_model::TITLE].'%');
}
unset($where['page']);
unset($where['pageSize']);
unset($where[$task_model::TITLE]);
$lists = $task_model->modelLists($task_model,$check_arr[self::$data_name]['page'],$check_arr[self::$data_name]['pageSize'],$where);
if (!empty($lists))
{
if (array_key_exists($task_model::STATUS,$check_arr[self::$data_name]))
{
if ($check_arr[self::$data_name][$task_model::STATUS] == 0)
{
$data = array();
$data[$task_model::STATUS] = 1;
$task_model->updateByWhere($task_model,$where,$data);
}
}
}
self::$result['lists'] = $lists;
}else{
if($check_arr[self::$error_code_name] == 1)
{
self::$result[self::$error_code_name] = 10004;
self::$result[self::$error_message] = $check_arr[self::$error_message];
}else{
self::$result[self::$error_code_name] = 10001;
}
}
}
return json(self::$result);
}
/**
* addData
* @return \think\response\Json
*/
public function addData()
{
if(self::$result[self::$error_code_name] == 0)
{
$task_model = new Task();
$field_arr = array(
array('field_name' => $task_model::TITLE,'rule' => ''),
array('field_name' => $task_model::USER_ID,'rule' => 'require'),
array('field_name' => $task_model::TYPE,'rule' => 'require'),
array('field_name' => $task_model::CONTENT,'rule' => 'require'),
array('field_name' => $task_model::STATUS,'rule' => ''),
);
$check_arr = $this->checkHave($field_arr);
if($check_arr[self::$error_code_name] == 0)
{
$add_rs = $task_model->addInsertData($task_model,$check_arr[self::$data_name]);
if(!$add_rs)
{
self::$result[self::$error_code_name] = 10002;
}else{
self::$result[self::$insert_id] = $add_rs;
}
}else{
if($check_arr[self::$error_code_name] == 1)
{
self::$result[self::$error_code_name] = 10004;
self::$result[self::$error_message] = $check_arr[self::$error_message];
}else{
self::$result[self::$error_code_name] = 10001;
}
}
}
return json(self::$result);
}
/**
* @return \think\response\Json
*/
public function updateData()
{
if(self::$result[self::$error_code_name] == 0)
{
$task_model = new Task();
$field_arr = array(
array('field_name' => $task_model::AUTO_ID,'rule' => 'require|number'),
array('field_name' => $task_model::USER_ID,'rule' => ''),
array('field_name' => $task_model::TITLE,'rule' => ''),
array('field_name' => $task_model::TYPE,'rule' => ''),
array('field_name' => $task_model::CONTENT,'rule' => ''),
array('field_name' => $task_model::STATUS,'rule' => ''),
);
$check_arr = $this->checkHave($field_arr);
if($check_arr[self::$error_code_name] == 0)
{
$where = array();
$where[$task_model::AUTO_ID] = $check_arr[self::$data_name][$task_model::AUTO_ID];
$info = $task_model->getOneById($task_model,$where);
$data = $check_arr[self::$data_name];
unset($data[$task_model::AUTO_ID]);
$update_rs = $task_model->updateByWhere($task_model,$where,$data);
if(!$update_rs)
{
self::$result[self::$error_code_name] = 10002;
}else
{
if (array_key_exists($task_model::STATUS,$check_arr[self::$data_name]))
{
if ($check_arr[self::$data_name][$task_model::STATUS] == 4)
{
if (in_array($info[$task_model::TYPE],[6,7]))
{
$content_arr = json_decode($info[$task_model::CONTENT],true);
$task_content_relation_model = new TaskContentRelation();
$task_content_relation_where = array();
$task_content_relation_where[$task_content_relation_model::TASK_ID] = $info[$task_model::AUTO_ID];
$task_content_relation_list = $task_content_relation_model->modelAllLists($task_content_relation_model,$task_content_relation_where);
$content_id_arr = array();
if (!empty($task_content_relation_list))
{
foreach ($task_content_relation_list as $task_each_v)
{
$content_id_arr[] = $task_each_v[$task_content_relation_model::CONTENT_ID];
}
$email_task_model = new EmailTask();
$email_task_data = array();
$email_task_data[$email_task_model::CONTENT] = json_encode($content_id_arr);
$email_task_data[$email_task_model::EMAIL] = $content_arr['email'];
$email_task_model->addMoreData($email_task_model,$email_task_data);
}
}
}
}
}
}else{
if($check_arr[self::$error_code_name] == 1)
{
self::$result[self::$error_code_name] = 10004;
self::$result[self::$error_message] = $check_arr[self::$error_message];
}else{
self::$result[self::$error_code_name] = 10001;
}
}
}
return json(self::$result);
}
/**
* getOne
* @return \think\response\Json
*/
public function getOne()
{
if(self::$result[self::$error_code_name] == 0)
{
$task_model = new Task();
$field_arr = array(
array('field_name' => $task_model::AUTO_ID,'rule' => 'require|number')
);
$check_arr = $this->checkHave($field_arr);
if($check_arr[self::$error_code_name] == 0)
{
$where = array();
if(array_key_exists(self::$data_name,$check_arr))
{
$where = self::returnWhere($field_arr,$check_arr[self::$data_name]);
}
$info = $task_model->getOneById($task_model,$where);
self::$result['info'] = $info;
}else{
if($check_arr[self::$error_code_name] == 1)
{
self::$result[self::$error_code_name] = 10004;
self::$result[self::$error_message] = $check_arr[self::$error_message];
}else{
self::$result[self::$error_code_name] = 10001;
}
}
}
return json(self::$result);
}
/**
* deleteOne
* @return \think\response\Json
*/
public function deleteOne()
{
if(self::$result[self::$error_code_name] == 0)
{
$task_model = new Task();
$field_arr = array(
array('field_name' => $task_model::AUTO_ID,'rule' => 'require')
);
$check_arr = $this->checkHave($field_arr);
if($check_arr[self::$error_code_name] == 0)
{
$where = array();
$where[$task_model::AUTO_ID] = array('IN',explode(',',$check_arr[self::$data_name][$task_model::AUTO_ID]));
$delete_rs = $task_model->deleteByWhere($task_model,$where);
if(!$delete_rs){
self::$result[self::$error_code_name] = 10001;
}
}else{
if($check_arr[self::$error_code_name] == 1)
{
self::$result[self::$error_code_name] = 10004;
self::$result[self::$error_message] = $check_arr[self::$error_message];
}else{
self::$result[self::$error_code_name] = 10001;
}
}
}
return json(self::$result);
}
}