358 lines
12 KiB
PHP
358 lines
12 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller;
|
|
|
|
use DateTime;
|
|
use think\Config;
|
|
use think\Controller;
|
|
use think\Db;
|
|
use think\Log;
|
|
use think\Model;
|
|
use think\Request;
|
|
use think\cache\driver\Memcache;
|
|
use app\api\controller\User;
|
|
|
|
|
|
header("Access-Control-Allow-Origin:*");
|
|
header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");
|
|
header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding");
|
|
|
|
|
|
class Story extends Common
|
|
{
|
|
|
|
//获取Story列表
|
|
public function GetStoryInfoList()
|
|
{
|
|
$param = request()->post();
|
|
if (!isset($param['id'])) {
|
|
return $this->sendError('缺少必要参数: id');
|
|
}
|
|
|
|
$opStories = db('work_story_info')->alias('os')
|
|
->join('work_story_state ps','os.story_state = ps.id','left')
|
|
->where('os.work_id', $param['id'])
|
|
->where('os.story_type', $param['story_type'])
|
|
->field('os.*, ps.desp as story_state_desp')
|
|
->select();
|
|
if(!$opStories){
|
|
return $this->sendSuccess($opStories);
|
|
}
|
|
if (empty($opStories)) {
|
|
return $this->sendError('未找到相关故事信息');
|
|
}
|
|
|
|
$result = [];
|
|
|
|
$user = new User();
|
|
foreach ($opStories as $opStory) {
|
|
$members = explode(',', $opStory['story_member']);
|
|
$opStory['story_members'] = '';
|
|
|
|
|
|
$opStory['story_members'] = '';
|
|
if (count($members)>0)
|
|
{
|
|
$ret = db('system_user')->alias('u')
|
|
->join('hr_staff s','s.staff_id=u.user_id', 'left')
|
|
->where('u.user_type', 1)
|
|
->where('u.id', 'in', $members)
|
|
->column('s.staff_name');
|
|
|
|
$opStory['story_members'] = implode(',', $ret); //数组转字符串
|
|
}
|
|
$opStory['story_managername'] = '';
|
|
|
|
$ret = db('system_user')->alias('u')
|
|
->join('hr_staff s','s.staff_id=u.user_id', 'left')
|
|
->where('u.user_type', 1)
|
|
->where('u.id', $opStory['story_manager'])
|
|
->find();
|
|
if (null != $ret)
|
|
{
|
|
$opStory['story_managername'] = $ret['staff_name'];
|
|
}
|
|
|
|
|
|
$result[] = $opStory;
|
|
}
|
|
|
|
return $this->sendSuccess($result);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//添加项目Story
|
|
public function AddStoryInfo()
|
|
{
|
|
|
|
$param = request()->post();
|
|
if($param){
|
|
$insert_info = [];
|
|
$insert_info['story_name'] = $param['story_name'];
|
|
$insert_info['story_intro'] = $param['story_intro'];
|
|
$insert_info['story_state'] = $param['story_state'];
|
|
$insert_info['story_type'] = $param['story_type'];
|
|
$insert_info['work_id'] = $param['work_id'];
|
|
$insert_info['story_manager'] = $param['story_manager'];
|
|
$insert_info['story_member'] = implode(',', $param['story_member']);
|
|
$insert_info['create_time'] = date('Y-m-d H:i:s');
|
|
$date = new DateTime($param['plan_close_time']);
|
|
$insert_info['plan_close_time'] = $date->format('Y-m-d H:i:s');
|
|
$ret = db('work_story_info')->insert($insert_info);
|
|
if($ret){
|
|
return $this->sendSuccess('添加成功');
|
|
}else{
|
|
return $this->sendError('','添加失败');
|
|
}
|
|
}
|
|
}
|
|
|
|
//添加项目Task
|
|
/*public function AddStoryTaskInfo()
|
|
{
|
|
$param = request()->post();
|
|
|
|
$insert_info = [];
|
|
$insert_info['story_id'] = $param['story_id'];
|
|
$insert_info['task_name'] = $param['task_name'];
|
|
$insert_info['task_intro'] = $param['task_intro'];
|
|
$insert_info['create_time'] = $param['create_time'];
|
|
$insert_info['task_processor'] = $param['task_processor'];
|
|
$insert_info['task_state'] = 1;
|
|
|
|
$ProjectInfoList = db('project_task')->insert($insert_info);
|
|
|
|
return $this->sendSuccess($ProjectInfoList);
|
|
}*/
|
|
|
|
|
|
//添加项目Task
|
|
public function GetStoryTaskInfo()
|
|
{
|
|
$param = request()->post();
|
|
$story_id = $param['story_id'];
|
|
|
|
$ret = db('work_story_info')->alias('y')
|
|
->join('system_user u', 'u.id = y.story_manager', 'left')
|
|
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
|
->join('hr_staff h', 'h.staff_id =u.user_id', 'left')
|
|
->where('y.story_id', $story_id)
|
|
->field('y.*, h.staff_name as story_manager_name, p.desp as story_state_desp')
|
|
->find();
|
|
|
|
return $this->sendSuccess($ret);
|
|
}
|
|
|
|
public function upStoryType()
|
|
{
|
|
$param = request()->post();
|
|
if ($param){
|
|
$ret = db('work_story_info')->where('story_id',$param['story_id'])->update(['story_state'=>$param['story_type']]);
|
|
if ($ret){
|
|
return $this->sendSuccess('修改成功');
|
|
}else{
|
|
return $this->sendError('','修改失败');
|
|
}
|
|
}else{
|
|
return $this->sendError('','修改失败');
|
|
}
|
|
}
|
|
|
|
/*public function GetTaskTypeList()
|
|
{
|
|
$ret = db('project_task_state')->select();
|
|
return $this->sendSuccess($ret);
|
|
}*/
|
|
|
|
public function upTaskType()
|
|
{
|
|
$param = request()->post();
|
|
if($param){
|
|
$ret = db('project_task')->where('task_id',$param['task_id'])->update(['task_state'=>$param['task_type']]);
|
|
if($ret){
|
|
return $this->sendSuccess('修改成功');
|
|
}else{
|
|
return $this->sendError('','修改失败');
|
|
}
|
|
}
|
|
}
|
|
|
|
public function GetStoryMemberList()
|
|
{
|
|
$param = request()->post();
|
|
|
|
if ($param) {
|
|
// 初始化 $array 为空数组
|
|
$array = [];
|
|
$story_info_member = [];
|
|
$story_info = db('work_story_info')
|
|
->where('story_id', $param['story_id'])
|
|
->find();
|
|
if ($story_info) {
|
|
$story_info_member = explode(',', $story_info['story_member']);
|
|
foreach ($story_info_member as $memberId) {
|
|
$ret = db('system_user')->alias('u')
|
|
->join('hr_staff s','s.staff_id=u.user_id', 'left')
|
|
->where('u.user_type', 1)
|
|
->where('u.id', $memberId)
|
|
->find();
|
|
$item['id'] = $memberId;
|
|
$item['staff_name'] = $ret['staff_name'];
|
|
$array[] = $item;
|
|
}
|
|
}
|
|
|
|
return $this->sendSuccess($array);
|
|
}
|
|
}
|
|
|
|
public function AddStoryTaskInfo()
|
|
{
|
|
$param = request()->post();
|
|
|
|
$insert_info = [];
|
|
$insert_info['story_id'] = $param['story_id'];
|
|
$insert_info['task_intro'] = $param['task_intro'];
|
|
$insert_info['create_time'] = date('Y-m-d H:i:s');
|
|
$insert_info['task_processor'] = $param['task_processor'];
|
|
$insert_info['task_state'] = 1;
|
|
$insert_info['plan_start_time'] = $param['plan_start_time'];
|
|
$insert_info['plan_close_time'] = $param['plan_close_time'];
|
|
|
|
$ProjectInfoList = db('work_task_info')->insert($insert_info);
|
|
if($ProjectInfoList){
|
|
return $this->sendSuccess('添加成功');
|
|
}else{
|
|
return $this->sendError('','添加失败');
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//获取项目Story列表
|
|
public function GetStoryTaskList()
|
|
{
|
|
$param = request()->post();
|
|
if ($param)
|
|
{
|
|
$opTasks = db('work_task_info')->alias('ot')
|
|
->join('work_task_state p', 'p.id =ot.task_state', 'left')
|
|
->where('ot.story_id', $param['story_id'])
|
|
->field('ot.*, p.desp as task_state_desp')
|
|
->select();
|
|
$user = new User();
|
|
for ($i=0; $i<count($opTasks);$i++)
|
|
{
|
|
// $user_info = $user->GetUserInfoByLoginId($opTasks[$i]['task_processor']);
|
|
$ret = db('system_user')->alias('u')
|
|
->join('hr_staff s','s.staff_id=u.user_id', 'left')
|
|
->where('u.user_type', 1)
|
|
->where('u.id', $opTasks[$i]['task_processor'])
|
|
->find();
|
|
$opTasks[$i]['task_processor_name'] = $ret['staff_name'];
|
|
}
|
|
return $this->sendSuccess($opTasks);
|
|
}
|
|
}
|
|
|
|
public function UpdateStoryInfo()
|
|
{
|
|
$param = request()->param();
|
|
if($param)
|
|
{
|
|
if($param['story_state'] === 4){
|
|
$param['real_close_time'] = date('Y-m-d H:i:s');
|
|
}
|
|
$param['story_member'] = implode(',', $param['story_member']); //数组转字符串
|
|
$ret = db('work_story_info')->where('story_id',$param['story_id'])->update($param);
|
|
if($ret){
|
|
return $this->sendSuccess('修改成功');
|
|
}else{
|
|
return $this->sendError('','修改失败');
|
|
}
|
|
}
|
|
}
|
|
|
|
public function DeleteStory()
|
|
{
|
|
$param = request()->param();
|
|
if($param){
|
|
$ret = db('work_story_info')->where('story_id',$param['story_id'])->delete();
|
|
if($ret){
|
|
return $this->sendSuccess('删除成功');
|
|
}else{
|
|
return $this->sendError('','删除失败');
|
|
}
|
|
}
|
|
}
|
|
|
|
public function GetStoryStateList()
|
|
{
|
|
$ret = db('work_story_state')->select();
|
|
return $this->sendSuccess($ret);
|
|
}
|
|
|
|
public function GetTaskStateList()
|
|
{
|
|
$ret = db('work_task_state')->select();
|
|
return $this->sendSuccess($ret);
|
|
}
|
|
|
|
public function UpdateTaskState()
|
|
{
|
|
$param = request()->post();
|
|
if ($param) {
|
|
$updateData = ['task_state' => $param['task_state']];
|
|
if ($param['task_state'] == 4) {
|
|
$updateData['real_close_time'] = date('Y-m-d H:i:s');
|
|
$task_info = db('work_task_info')->where('task_id', $param['task_id'])->find();
|
|
if ($task_info) {
|
|
$createTime = $task_info['create_time'];
|
|
$createTimestamp = strtotime($createTime);
|
|
$currentTimestamp = time();
|
|
$timeDifference = $currentTimestamp - $createTimestamp;
|
|
$updateData['consuming_time'] = $timeDifference;
|
|
}
|
|
}
|
|
$ret = db('work_task_info')->where('task_id', $param['task_id'])->update($updateData);
|
|
if ($ret) {
|
|
return $this->sendSuccess('修改成功');
|
|
} else {
|
|
return $this->sendError('修改失败');
|
|
}
|
|
}
|
|
}
|
|
|
|
public function UpdateTaskInfo()
|
|
{
|
|
$param = request()->post();
|
|
if($param)
|
|
{
|
|
$update = [];
|
|
$task_info = db('work_task_info')->where('task_id',$param['task_id'])->find();
|
|
if($task_info )
|
|
{
|
|
$update['task_intro'] = $param['task_intro'];
|
|
$update['task_processor'] = $param['task_processor'];
|
|
|
|
if (isset($param['plan_start_time']))
|
|
{
|
|
$update['plan_start_time'] = $param['plan_start_time'];
|
|
$update['plan_close_time'] = $param['plan_close_time'];
|
|
}
|
|
$ret = db('work_task_info')->where('task_id',$param['task_id'])->update($update);
|
|
return $this->sendSuccess('修改成功');
|
|
|
|
}
|
|
else
|
|
{
|
|
return $this->sendError('','更新失败,任务不存在');
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
} |