Manange.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace app\bug\controller;
  3. use app\bug\model\Moudel;use app\bug\model\NoteLog;use app\user\model\Account;use think\App;
  4. use think\facade\Config;
  5. use think\facade\Db;use think\facade\Validate;
  6. class Manange extends Base
  7. {
  8. public function __construct(App $app)
  9. {
  10. parent::__construct($app);
  11. $this->model = new \app\bug\model\Manange();
  12. }
  13. public function create()
  14. {
  15. $param= $this->request->param(["id"=>[],"company_id"=>""],"post","trim");
  16. $valid =Validate::rule(["id|工单处理人主键id"=>"require|array","company_id|公司平台id"=>"require|number|gt:0"]);
  17. if($valid->check($param)==false)return error($valid->getError());
  18. $manager =$this->model->where(['company_id' => $param['company_id'],'is_del' => 0])->column("manange_id");
  19. $managerNew = array_diff($param['id'], $manager);
  20. $datain=[];
  21. if (!empty($managerNew)) {
  22. $managerInfo = Account::with(['userInfo'])->whereIn('id',$managerNew)->select();
  23. foreach ($managerInfo as $value){
  24. $temp=[];
  25. $temp['manange_name'] = $value['nickname'];
  26. $temp['manange_id'] = $value['id'];
  27. $temp['phone'] = $value['mobile'];
  28. $temp['company_id'] = $param['company_id'];
  29. $datain[]=$temp;
  30. }
  31. }
  32. $st = array_diff($manager,$param['id']);
  33. $itep = \app\bug\model\Deal::where(['deal_id'=>$st,'is_del'=>0])->select();
  34. if(!$itep->isEmpty()){
  35. $uin = array_unique(array_column($itep->toArray(),'deal_id'));
  36. $infe=$this->model->where(['manange_id'=>$uin,"is_del"=>0,'company_id'=>$param['company_id']])->column('manange_id,manange_name');
  37. if(!empty($infe)) return error("处理人已绑定任务无法删除",10002,$infe);
  38. }
  39. $this->model->startTrans();
  40. try{
  41. if(!empty($st)){
  42. $inf=$this->model->where(['manange_id'=>$st,"is_del"=>0,'company_id'=>$param['company_id']])->save(["is_del"=>1]);
  43. if( $inf==false) throw new \Exception("更新失败");
  44. }
  45. if(!empty($datain)){
  46. $datainfo = $this->model->insertAll($datain);
  47. if ($datainfo<=0)throw new \Exception('更新失败');
  48. }
  49. $this->model->commit();
  50. return success("新建成功");
  51. }catch (\Exception $e){
  52. $this->model->rollback();
  53. return error($e->getMessage());
  54. }
  55. }
  56. public function del(){
  57. $id = $this->request->post("id/d");
  58. $info=$this->model->where(['id'=>$id,'is_del'=>0])->findOrEmpty();
  59. if($info->isEmpty()){
  60. return error("未找到数据");
  61. }
  62. $info->is_del=1;
  63. $info->save();
  64. return success("删除成功");
  65. }
  66. public function list(){
  67. $param=$this->request->param(["manange_name"=>"","manange_id"=>"","company_id"=>"","phone"=>"","status"=>""],"post","trim");
  68. $where =[['is_del','=',0]];
  69. if ($param['manange_name'] !== "") {
  70. $where[]= ['manange_name',"like","%{$param['manange_name']}%"];
  71. }
  72. if ($param['manange_id']!== "") {
  73. $where[]= ['manange_id',"=",$param['manange_id']];
  74. }
  75. if ($param['company_id'] !== "") {
  76. $where[]= ['company_id',"=",$param['company_id']];
  77. }
  78. if ($param['phone'] !== "") {
  79. $where[]= ['phone',"like","%{$param['phone']}%"];
  80. }
  81. if ($param['status'] !== "") {
  82. $where[]= ['status',"=",$param['status']];
  83. }
  84. $list=$this->model->where($where)->order("id desc")->select();
  85. return success("获取成功",$list);
  86. }
  87. public function loglist(){
  88. $param=$this->request->param(['page'=>1,'size'=>15,'bugNo'=>''],'post','trim');
  89. $where=[];
  90. if($param['bugNo']!=""){
  91. $where[]=['bugNo',"like","%{$param['bugNo']}%"];
  92. }
  93. $conf=Config::get('note');
  94. $list = NoteLog::with(["noteInfo"])->where($where)->order('id desc')->paginate(["list_rows"=>$param['size'],
  95. "page"=>$param['page']]);
  96. foreach ($list->items() as &$value){
  97. $value['type_cn'] = $value['type']==2?'编辑':'新建';
  98. if(array_key_exists($value['handle_name'],$conf['field_value'])){
  99. $field_value=$conf['field_value'][$value['handle_name']];
  100. $value['action_item'] = isset($field_value[$value['action_item']]) ?$field_value[$value['action_item']]:$value['action_item'];
  101. $value['action_after'] = isset($field_value[$value['action_after']]) ?$field_value[$value['action_after']]:$value['action_after'];
  102. }else{
  103. if($value['handle_name']=='model_id'){
  104. $model1 =$value['action_item']!==''?Moudel::GetModelByCid($value['action_item'],$value['company_type']):[];
  105. $model2 = Moudel::GetModelByCid($value['action_after'],$value['company_type']);
  106. $value['action_item'] = empty($model1)?'': implode("/",array_column($model1,'rename'));
  107. $value['action_after'] = empty($model2)?'': implode("/",array_column($model2,'rename'));
  108. }
  109. }
  110. $value['handle_name'] = $conf['field'][$value['handle_name']];
  111. }
  112. return success("获取成功",['list'=>$list->items(),'count'=>$list->total()]);
  113. }
  114. }