Maintain.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?php
  2. namespace app\api\controller\worker;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. * 保修
  7. */
  8. class Maintain extends Api
  9. {
  10. protected $noNeedLogin = ['*'];
  11. protected $noNeedRight = ['*'];
  12. public function lists(){
  13. $status = input('status',0);
  14. $map = [
  15. 'worker_id' => $this->auth->id,
  16. 'status' => $status,
  17. ];
  18. $list = Db::name('maintain')->field('id,orderno,createtime,info,filedata,status,eva_time')
  19. ->where($map)->order('id desc')
  20. ->autopage()->select();
  21. if(!empty($list)){
  22. foreach($list as $key => $val){
  23. $list[$key]['status_text'] = $this->status_data($val['status']);
  24. }
  25. }
  26. $this->success(1,$list);
  27. }
  28. public function info(){
  29. $id = input('id',0);
  30. $map = [
  31. 'worker_id' => $this->auth->id,
  32. 'id' => $id,
  33. ];
  34. $info = Db::name('maintain')
  35. ->where($map)
  36. ->find();
  37. $info['status_text'] = $this->status_data($info['status']);
  38. //追加进度
  39. $jindu = Db::name('maintain_jindu')->field('id,title,createtime')->where('order_id',$id)->order('id desc')->select();
  40. $info['jindu'] = $jindu;
  41. $this->success(1, $info);
  42. }
  43. //申请材料
  44. public function shenqingcailiao(){
  45. $order_id = input('order_id',0);
  46. $data = input('data','','htmlspecialchars_decode');
  47. $data = json_decode($data,true);
  48. if(empty($data)){
  49. $this->error();
  50. }
  51. //订单
  52. $map = [
  53. 'worker_id' => $this->auth->id,
  54. 'id' => $order_id,
  55. ];
  56. $info = Db::name('maintain')->where($map)->find();
  57. if(empty($info)){
  58. $this->error('不存在的订单');
  59. }
  60. if($info['status'] != 50){
  61. $this->error('状态不正确,请刷新重试');
  62. }
  63. //准备数据
  64. foreach($data as $key => $val){
  65. $val['order_id'] = $info['id'];
  66. $val['company_id'] = $info['company_id'];
  67. $val['user_id'] = $info['user_id'];
  68. $val['worker_id'] = $info['worker_id'];
  69. $val['createtime'] = time();
  70. $data[$key] = $val;
  71. }
  72. Db::startTrans();
  73. $id = Db::name('maintain_cailiao')->insertAll($data);
  74. if(!$id){
  75. Db::rollback();
  76. $this->error('申请失败');
  77. }
  78. $update = [
  79. 'status' => 60,
  80. 'updatetime' => time(),
  81. 'cailiao_time' => time(), //材料申请时间
  82. ];
  83. $rs2 = Db::name('maintain')->where('id',$order_id)->update($update);
  84. if($rs2 === false){
  85. Db::rollback();
  86. $this->error('申请失败');
  87. }
  88. Db::commit();
  89. $this->success('申请成功');
  90. }
  91. //材料计量单位
  92. public function cailiao_danwei(){
  93. $data = [
  94. '个',
  95. '把',
  96. '只',
  97. ];
  98. $this->success(1,$data);
  99. }
  100. //领取材料
  101. public function lingqucailiao(){
  102. $order_id = input('order_id',0);
  103. $images = input('images','','trim');
  104. if(empty($images)){
  105. $this->error();
  106. }
  107. //订单
  108. $map = [
  109. 'worker_id' => $this->auth->id,
  110. 'id' => $order_id,
  111. ];
  112. $info = Db::name('maintain')->where($map)->find();
  113. if(empty($info)){
  114. $this->error('不存在的订单');
  115. }
  116. if($info['status'] != 60){
  117. $this->error('状态不正确,请刷新重试');
  118. }
  119. //
  120. $update = [
  121. 'status' => 70,
  122. 'updatetime' => time(),
  123. 'lingqu_time' => time(), //材料申请时间
  124. 'lingqu_images' => $images,
  125. ];
  126. $rs2 = Db::name('maintain')->where('id',$order_id)->update($update);
  127. if($rs2 === false){
  128. $this->error('领取失败');
  129. }
  130. $this->success('领取成功');
  131. }
  132. //////////////////////////////循环开始///////////////////////
  133. //立即上门
  134. public function shangmen(){
  135. }
  136. //新增维修进度
  137. public function jindu_add(){
  138. }
  139. //确认完成
  140. public function finish(){
  141. }
  142. //////////////////////////////循环结束///////////////////////
  143. //状态枚举
  144. private function status_data($status){
  145. $data = [
  146. 0 => '待报价', //等待初次报价 或 直接给指派师傅
  147. 2 => '已取消',
  148. 20 => '报价待审', //通过就去30,驳回就到22
  149. 22 => '报价审核驳回', //等待再次报价
  150. 30 => '用户待审', //通过就去40,驳回就到32
  151. 32 => '用户审核驳回',//等待再次报价
  152. 40 => '待指派', //报价都审核过了,可派师傅了
  153. 50 => '已选师傅',
  154. 60 => '材料已申请待领取',
  155. 70 => '材料已领取待上门', //待上门
  156. 80 => '已上门',
  157. 85 => '维修进度',
  158. 90 => '待验收',
  159. 92 => '验收驳回',//待二次上门
  160. 100 => '验收通过已完成',
  161. ];
  162. return $data[$status];
  163. }
  164. }