Tasklable.php 5.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Description: 任务标签及基础
  4. // +----------------------------------------------------------------------
  5. // | Author: yykun
  6. // +----------------------------------------------------------------------
  7. namespace app\work\controller;
  8. use think\Request;
  9. use think\Session;
  10. use think\Hook;
  11. use think\Db;
  12. use app\admin\controller\ApiCommon;
  13. class Tasklable extends ApiCommon
  14. {
  15. /**
  16. * 用于判断权限
  17. * @permission 无限制
  18. * @allow 登录用户可访问
  19. * @other 其他根据系统设置
  20. **/
  21. public function _initialize()
  22. {
  23. $action = [
  24. 'permission'=>[''],
  25. 'allow'=>['index','getwoklist','grouplist','save','update','delete','read']
  26. ];
  27. Hook::listen('check_auth',$action);
  28. $request = Request::instance();
  29. $a = strtolower($request->action());
  30. if (!in_array($a, $action['permission'])) {
  31. parent::_initialize();
  32. }
  33. }
  34. /**
  35. * 添加新标签
  36. * @author yykun
  37. * @return
  38. */
  39. public function save()
  40. {
  41. $param = $this->param;
  42. $lableModel = model('WorkLable');
  43. $userInfo = $this->userInfo;
  44. $param['create_user_id'] = $userInfo['id'];
  45. $flag = $lableModel->createData($param);
  46. if ($flag) {
  47. return resultArray(['data'=>'添加成功']);
  48. } else {
  49. return resultArray(['error'=>$lableModel->getError()]);
  50. }
  51. }
  52. /**
  53. * 标签列表
  54. * @author yykun
  55. * @return
  56. */
  57. public function index()
  58. {
  59. $lableModel = model('WorkLable');
  60. $list = $lableModel->getDataList();
  61. return resultArray(['data'=>$list]);
  62. }
  63. /**
  64. * 根据标签获取项目及任务
  65. * @author yykun
  66. * @return
  67. */
  68. public function getWokList()
  69. {
  70. $param = $this->param;
  71. $userInfo = $this->userInfo;
  72. if (!$param['lable_id']) {
  73. return resultArray(['error'=>'参数错误']);
  74. }
  75. $taskModel = model('Task');
  76. $adminTypes = adminGroupTypes($userInfo['id']);
  77. if (!in_array(1,$adminTypes) && !in_array(7,$adminTypes)) {
  78. $str = ','.$userInfo['id'].',';
  79. $param['whereStr'] = ' ( task.create_user_id ='.$userInfo['id'].' or ( task.owner_user_id like "%'.$str.'%") or ( task.main_user_id = '.$userInfo['id'].' ) )';
  80. }
  81. # 标签列表只查询项目下的任务
  82. $param['work_id'] = ['neq', 0];
  83. $resData = $taskModel->getTaskList($param);
  84. $taskList = $resData['list'] ? : [];
  85. $workArr = [];
  86. $workGroupList = $taskList ? $this->group_same_key($taskList) : [];
  87. return resultArray(['data'=>$workGroupList]);
  88. }
  89. public function group_same_key($arr)
  90. {
  91. $new_arr = array();
  92. foreach ($arr as $k => $v) {
  93. $new_arr[$v['work_id']]['work_name'] = $v['work_name'] ? : '我的任务';
  94. $new_arr[$v['work_id']]['color'] = $v['color'] ? : '#4AB8B8';
  95. $new_arr[$v['work_id']]['work_id'] = $v['work_id'];
  96. $new_arr[$v['work_id']]['list'][] = $v;
  97. }
  98. $ListArr = $new_arr ? sort_select(array_merge($new_arr), 'work_id', 2) : [];
  99. return $ListArr;
  100. }
  101. /**
  102. * 分组列表
  103. * @author yykun
  104. * @return
  105. */
  106. public function groupList()
  107. {
  108. $lableModel = model('WorkLable');
  109. $workList = $this->field('name,work_id')->select();
  110. $temp = array();
  111. foreach ($workList as $key => $value) {
  112. $temp = array();
  113. $taskList = Db::name('Task')->field('task_id,lable_id')->where('work_id ='.$value['work_id'])->select();
  114. foreach ($taskList as $k => $v) {
  115. $temp_temp = $lableModel->getDataByStr($v['lable_id']);
  116. $temp = array_merge($temp,$temp_temp);
  117. }
  118. $temp = array_filter(array_unique($temp));
  119. $workList[$key]['taskList'] = $temp;
  120. }
  121. return resultArray(['data' => $workList]);
  122. }
  123. /**
  124. * 编辑标签
  125. * @author yykun
  126. * @return
  127. */
  128. public function update()
  129. {
  130. $param = $this->param;
  131. $lableModel = model('WorkLable');
  132. if (!$param['lable_id']) {
  133. return resultArray(['error'=>'参数错误']);
  134. }
  135. $userInfo = $this->userInfo;
  136. $param['create_user_id'] = $userInfo['id'];
  137. $flag = $lableModel->updateDataById($param);
  138. if ($flag) {
  139. return resultArray(['data'=>'编辑成功']);
  140. } else {
  141. return resultArray(['error'=>$lableModel->getError()]);
  142. }
  143. }
  144. /**
  145. * 删除标签
  146. * @author yykun
  147. * @return
  148. */
  149. public function delete()
  150. {
  151. $param = $this->param;
  152. $taskLableModel = model('WorkLable');
  153. if (!$param['lable_id']) {
  154. return resultArray(['error'=>'参数错误']);
  155. }
  156. $userInfo = $this->userInfo;
  157. $param['create_user_id'] = $userInfo['id'];
  158. $flag = $taskLableModel->delDataById($param);
  159. if ($flag) {
  160. return resultArray(['data'=>'删除成功']);
  161. } else {
  162. return resultArray(['error'=>$taskLableModel->getError()]);
  163. }
  164. }
  165. /**
  166. * 标签详情
  167. * @author Michael_xu
  168. * @return
  169. */
  170. public function read()
  171. {
  172. $param = $this->param;
  173. if (!$param['lable_id']) return resultArray(['error'=>'参数错误']);
  174. $taskLableModel = model('WorkLable');
  175. $data = $taskLableModel->getDataById($param['lable_id']);
  176. return resultArray(['data'=>$data]);
  177. }
  178. }