Newfill.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace app\bug\controller;
  3. use app\bug\model\CompanyItem;use think\App;
  4. use think\facade\Db;use think\facade\Validate;
  5. class Newfill extends Base
  6. {
  7. public function __construct(App $app)
  8. {
  9. parent::__construct($app);
  10. }
  11. public function list()
  12. {
  13. $param = $this->request->param(["pid"=>0,"name"=>'',"nickname"=>""],"post","trim");
  14. $condition=[];
  15. $depart []=['is_del',"=",0];
  16. $condition[] = ['is_del',"=",0];
  17. if($param['pid']!==""){
  18. $condition[]=["pid","=",$param['pid']];
  19. }
  20. if($param['name']!=""){
  21. $condition[]=["name","like","%{$param['name']}%"];
  22. }
  23. if($param['nickname']!=""){
  24. $is= \app\bug\model\DepartUser::where([['nickname','like',"%{$param['nickname']}%"]])->column('itemid');
  25. $condition[]=["id","in",$is];
  26. }
  27. $pidlist = CompanyItem::where($condition)->column("pid");
  28. if(!empty($pidlist)){
  29. $depart[]=[["itemid","in",$pidlist]];
  30. }else{
  31. if($param['pid']===""){
  32. $depart[]=['itemid','=',0];
  33. }else{
  34. $depart[]=['itemid','=',$param['pid']];
  35. }
  36. }
  37. $item = \app\bug\model\DepartUser::where($depart)->select();
  38. $list = CompanyItem::where($condition)->select();
  39. return success("获取成功",["depart"=>$list,"item"=>$item]);
  40. }
  41. /*状态*/
  42. public function stat(){
  43. $id = $this->request->post("id/d");
  44. $s = CompanyItem::where(["id"=>$id])->findOrEmpty();
  45. if( $s->isEmpty()){
  46. return error("未找到部门");
  47. }
  48. $s->status= $s['status']==0? '1':'0';
  49. $s->save();
  50. return success("更新成功");
  51. }
  52. /*职位*/
  53. public function userp(){
  54. $post = $this->request->post(['id'=>"","position"=>""],"post","trim");
  55. $valid=Validate::rule([
  56. 'id|主键id'=>'number|gt:0',
  57. 'position|职位'=>'require|number|in:1,2',
  58. ]);
  59. if($valid->check($post)==false) return error($valid->getError());
  60. $t = \app\bug\model\DepartUser::where(["id"=>$post['id'],"is_del"=>0])->findOrEmpty();
  61. if($t->isEmpty())return error("未找到用户");
  62. if($post['position']==2){
  63. $f = \app\bug\model\DepartUser::where([['itemid',"=",$t['itemid']],["is_del",'=',0],['id','<>',$post['id']],["position",'=',2]])
  64. ->findOrEmpty();
  65. if($f->isEmpty()==false){
  66. $f->position=1;
  67. $f->save();
  68. }
  69. }
  70. $t->position=$post['position'];
  71. $t->save();
  72. return success('更新成功');
  73. }
  74. public function add(){
  75. $param = $this->request->param(["name"=>"","pid"=>0,"weight"=>1],"post","trim");
  76. $valid = Validate::rule([
  77. "name|部门名称"=>"require|max:255|unique:company_item,name^is_del",
  78. "pid|父级id"=>"require|number|egt:0",
  79. "weight|排序权重"=>"require|number|egt:0"
  80. ]);
  81. if($valid->check($param)==false)return error($valid->getError());
  82. $depart_link="";
  83. if($param['pid']!=0){
  84. $parent = CompanyItem::where("id",$param['pid'])->findOrEmpty();
  85. if($parent->isEmpty()) return error("父级数据不存在");
  86. $depart_link=$parent->depart_link;
  87. }
  88. $level = count(array_filter(explode("-",$depart_link)))+1;
  89. CompanyItem::startTrans();
  90. try{
  91. $data=[
  92. "name"=>$param['name'],
  93. "pid"=>$param['pid'],
  94. "level"=>$level,
  95. "weight"=>$param['weight'],
  96. "depart_link"=>$depart_link. CompanyItem::getLastInsID()."-"
  97. ];
  98. CompanyItem::create($data);
  99. CompanyItem::commit();
  100. return success("创建成功");
  101. }catch (\Exception $e){
  102. CompanyItem::rollback();
  103. return error($e->getMessage());
  104. }
  105. }
  106. public function refresh(){
  107. $param= $this->request->param(["id"=>"","pid"=>0,"weight"=>"","name"=>""],"post","trim");
  108. $valid=Validate::rule([
  109. 'id|部门主键id'=>'require|number|gt:0',
  110. 'name|部门名称'=>"require|max:255|unique:company_item,name,{$param['id']}",
  111. 'weight|权重'=>'max:255',
  112. 'pid|父级id'=>'require|number',
  113. ]);
  114. if($valid->check($param)==false) return error($valid->getError());
  115. $items = CompanyItem::where(['id'=>$param['id'],'is_del'=>0])->findOrEmpty();
  116. if($items->isEmpty())return error("部门信息不存在");
  117. $spid=['depart_link'=>""];
  118. if($param['pid']!=0){
  119. $spid = CompanyItem::where(['id'=>$param['pid'],'is_del'=>0])->findOrEmpty();
  120. if($spid->isEmpty()) return error("父级数据不能为空");
  121. }
  122. $depart_link=$spid['depart_link']."{$items->id}-";
  123. $itemlevel =explode('-',$depart_link);
  124. $itemlevel = array_filter($itemlevel);
  125. $itemlevel= count($itemlevel);
  126. $items->name=$param['name'];
  127. $items->pid=$param['pid'];
  128. $items->weight=$param['weight'];
  129. $items->depart_link=$depart_link;
  130. $items->level=$itemlevel;
  131. $re= $items->save();
  132. return $re ? success("信息更新成功"): error("信息更新失败");
  133. }
  134. /*查询*/
  135. public function query(){
  136. return success("获取成功",(new CompanyItem())->GetTree());
  137. }
  138. public function itemdel(){
  139. $id = $this->request->post("id/d");
  140. $items =CompanyItem::where(['is_del'=>0,'id'=>$id])->findOrEmpty();
  141. if($items->isEmpty())return error("部门信息不存在");
  142. $items->is_del =1;
  143. $result= $items->save();
  144. return $result ? success("删除成功"): error("删除失败");
  145. }
  146. }