You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.5 KiB

преди 3 години
  1. <?php
  2. namespace Api\Controller;
  3. use Think\Controller;
  4. /*
  5. 团队管理
  6. */
  7. class TeamController extends BaseController {
  8. //添加和编辑
  9. public function save(){
  10. $login_user = $this->checkLogin();
  11. $team_name = I("team_name");
  12. $id = I("id/d");
  13. if ($id) {
  14. D("Team")->where(" id = '$id' ")->save(array("team_name"=>$team_name));
  15. }else{
  16. $data['username'] = $login_user['username'] ;
  17. $data['uid'] = $login_user['uid'] ;
  18. $data['team_name'] = $team_name ;
  19. $data['addtime'] = time() ;
  20. $id = D("Team")->add($data);
  21. }
  22. $return = D("Team")->where(" id = '$id' ")->find();
  23. if (!$return) {
  24. $return['error_code'] = 10103 ;
  25. $return['error_message'] = 'request fail' ;
  26. }
  27. $this->sendResult($return);
  28. }
  29. //获取列表
  30. public function getList(){
  31. $login_user = $this->checkLogin();
  32. if ($login_user['uid'] > 0 ) {
  33. $ret = D("Team")->where(" uid = '$login_user[uid]' ")->order(" addtime desc ")->select();
  34. }
  35. if ($ret) {
  36. foreach ($ret as $key => &$value) {
  37. //获取该团队成员数
  38. $value['memberCount'] = D("TeamMember")->where(" team_id = '$value[id]' ")->count();
  39. //获取该团队涉及项目数
  40. $value['itemCount'] = D("TeamItem")->where(" team_id = '$value[id]' ")->count();
  41. $value['addtime'] = date("Y-m-d H:i:s" , $value['addtime']);
  42. }
  43. $this->sendResult($ret);
  44. }else{
  45. $this->sendResult(array());
  46. }
  47. }
  48. //删除
  49. public function delete(){
  50. $id = I("id/d")? I("id/d") : 0;
  51. $login_user = $this->checkLogin();
  52. if ($id && $login_user['uid']) {
  53. $ret = D("Team")->where(" id = '$id' and uid = '$login_user[uid]'")->delete();
  54. }
  55. if ($ret) {
  56. D("TeamItem")->where(" team_id = '$id' ")->delete();
  57. D("TeamItemMember")->where(" team_id = '$id' ")->delete();
  58. D("TeamMember")->where(" team_id = '$id' ")->delete();
  59. $this->sendResult($ret);
  60. }else{
  61. $return['error_code'] = 10103 ;
  62. $return['error_message'] = 'request fail' ;
  63. $this->sendResult($return);
  64. }
  65. }
  66. //转让团队
  67. public function attorn(){
  68. $login_user = $this->checkLogin();
  69. $username = I("username");
  70. $team_id = I("team_id/d");
  71. $password = I("password");
  72. $team = D("Team")->where("id = '$team_id' and uid = '$login_user[uid]' ")->find();
  73. if (!$team) {
  74. $this->sendError(10101);
  75. return ;
  76. }
  77. if(! D("User")-> checkLogin($login_user['username'],$password)){
  78. $this->sendError(10208);
  79. return ;
  80. }
  81. $member = D("User")->where(" username = '%s' ",array($username))->find();
  82. if (!$member) {
  83. $this->sendError(10209);
  84. return ;
  85. }
  86. $data = array() ;
  87. $data['username'] = $member['username'] ;
  88. $data['uid'] = $member['uid'] ;
  89. D("Team")->where(" id = '$team_id' ")->save($data);
  90. //读取出该团队下的所有项目,准备转让
  91. $items = D("TeamItem")->where(" team_id = '$team_id' ")->select() ;
  92. foreach ($items as $key => $value) {
  93. D("Item")->where(" item_id = '$value[item_id]' ")->save($data);
  94. }
  95. $this->sendResult($return);
  96. }
  97. }