Files
oms/back/application/api/controller_74GYL3/Story.php
2026-03-10 18:45:36 +08:00

301 lines
9.9 KiB
PHP

<?php
namespace app\api\controller;
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'] = '';
$ret = [];
for ($i=0; $i<count($members); $i++)
{
$user_info = $user->GetUserInfoByLoginId($members[$i]);
$ret[] = $user_info['name'];
}
$opStory['story_members'] = implode(',', $ret);
$opStory['story_managers'] = '';
if ($opStory['story_manager'] !== null) {
$user_info = $user->GetUserInfoByLoginId($opStory['story_manager']);
$opStory['story_managers'] = $user_info['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');
$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) {
$user = new User();
$story_info_member = explode(',', $story_info['story_member']);
foreach ($story_info_member as $memberId) {
$user_info = $user->GetUserInfoByLoginId($memberId);
$item['id'] = $user_info['id'];
$item['staff_name'] = $user_info['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;
$ProjectInfoList = db('work_task_info')->insert($insert_info);
return $this->sendSuccess($ProjectInfoList);
}
//获取项目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']);
$opTasks[$i]['task_processor_name'] = $user_info['name'];
}
return $this->sendSuccess($opTasks);
}
}
public function UpdateStoryInfo()
{
$param = request()->param();
if($param)
{
$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) {
$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('修改失败');
}
}
}
}